From 9b279f68b5af8a15ab11f147189457eb7cd95611 Mon Sep 17 00:00:00 2001 From: zzzzrrr Date: Sun, 17 Jan 2010 11:41:09 -0500 Subject: [PATCH] checked in c++ code --- poly2tri/common/shapes.cc | 333 + poly2tri/common/shapes.h | 277 + poly2tri/common/utils.h | 98 + poly2tri/poly2tri.h | 2 + poly2tri/sweep/advancing_front.cc | 95 + poly2tri/sweep/advancing_front.h | 98 + poly2tri/sweep/cdt.cc | 54 + poly2tri/sweep/cdt.h | 58 + poly2tri/sweep/mesh.cc | 49 + poly2tri/sweep/mesh.h | 50 + poly2tri/sweep/sweep.cc | 882 +++ poly2tri/sweep/sweep.h | 118 + poly2tri/sweep/sweep_context.cc | 164 + poly2tri/sweep/sweep_context.h | 158 + testbed/data/2.dat | 60 + testbed/data/bird.dat | 275 + testbed/data/custom.dat | 7 + testbed/data/debug.dat | 200 + testbed/data/debug2.dat | 10000 ++++++++++++++++++++++++++++ testbed/data/diamond.dat | 10 + testbed/data/dude.dat | 94 + testbed/data/funny.dat | 100 + testbed/data/nazca_heron.dat | 1036 +++ testbed/data/nazca_monkey.dat | 1204 ++++ testbed/data/polygon.dae | 82 + testbed/data/sketchup.dat | 319 + testbed/data/star.dat | 10 + testbed/data/strange.dat | 16 + testbed/data/tank.dat | 55 + testbed/data/test.dat | 6 + testbed/main.cc | 244 + waf | Bin 0 -> 87926 bytes wscript | 69 + 33 files changed, 16223 insertions(+) create mode 100644 poly2tri/common/shapes.cc create mode 100644 poly2tri/common/shapes.h create mode 100644 poly2tri/common/utils.h create mode 100644 poly2tri/poly2tri.h create mode 100644 poly2tri/sweep/advancing_front.cc create mode 100644 poly2tri/sweep/advancing_front.h create mode 100644 poly2tri/sweep/cdt.cc create mode 100644 poly2tri/sweep/cdt.h create mode 100644 poly2tri/sweep/mesh.cc create mode 100644 poly2tri/sweep/mesh.h create mode 100644 poly2tri/sweep/sweep.cc create mode 100644 poly2tri/sweep/sweep.h create mode 100644 poly2tri/sweep/sweep_context.cc create mode 100644 poly2tri/sweep/sweep_context.h create mode 100644 testbed/data/2.dat create mode 100644 testbed/data/bird.dat create mode 100644 testbed/data/custom.dat create mode 100644 testbed/data/debug.dat create mode 100644 testbed/data/debug2.dat create mode 100644 testbed/data/diamond.dat create mode 100644 testbed/data/dude.dat create mode 100644 testbed/data/funny.dat create mode 100644 testbed/data/nazca_heron.dat create mode 100644 testbed/data/nazca_monkey.dat create mode 100644 testbed/data/polygon.dae create mode 100644 testbed/data/sketchup.dat create mode 100644 testbed/data/star.dat create mode 100644 testbed/data/strange.dat create mode 100644 testbed/data/tank.dat create mode 100644 testbed/data/test.dat create mode 100644 testbed/main.cc create mode 100644 waf create mode 100644 wscript diff --git a/poly2tri/common/shapes.cc b/poly2tri/common/shapes.cc new file mode 100644 index 0000000..0349a93 --- /dev/null +++ b/poly2tri/common/shapes.cc @@ -0,0 +1,333 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "shapes.h" + +Triangle::Triangle(Point& a, Point& b, Point& c) { + + points_[0] = &a; points_[1] = &b; points_[2] = &c; + neighbors_[0] = NULL; neighbors_[1] = NULL; neighbors_[2] = NULL; + constrained_edge[0] = constrained_edge[1] = constrained_edge[2] = false; + delaunay_edge[0] = delaunay_edge[1] = delaunay_edge[2] = false; + interior = false; +} + +Triangle::~Triangle() { + printf("bye triangle\n"); +} + +// Update neighbor pointers +void Triangle::MarkNeighbor(Point* p1, Point* p2, Triangle* t) { + + if((p1 == points_[2] && p2 == points_[1]) || (p1 == points_[1] && p2 == points_[2])) + neighbors_[0] = t; + else if((p1 == points_[0] && p2 == points_[2]) || (p1 == points_[2] && p2 == points_[0])) + neighbors_[1] = t; + else if((p1 == points_[0] && p2 == points_[1]) || (p1 == points_[1] && p2 == points_[0])) + neighbors_[2] = t; + else + assert(0); +} + +// Exhaustive search to update neighbor pointers +void Triangle::MarkNeighbor(Triangle& t) { + + if (t.Contains(points_[1], points_[2])) { + neighbors_[0] = &t; + t.MarkNeighbor(points_[1], points_[2], this); + } else if(t.Contains(points_[0], points_[2])) { + neighbors_[1] = &t; + t.MarkNeighbor(points_[0], points_[2], this); + } else if (t.Contains(points_[0], points_[1])) { + neighbors_[2] = &t; + t.MarkNeighbor(points_[0], points_[1], this); + } +} + +void Triangle::ClearNeighbors() { + neighbors_[0] = NULL; + neighbors_[1] = NULL; + neighbors_[2] = NULL; +} + +void Triangle::ClearDelunayEdges() { + delaunay_edge[0] = delaunay_edge[1] = delaunay_edge[2] = false; +} + +Point* Triangle::OppositePoint(Triangle& t, Point& p) { + + Point *cw = t.PointCW(p); + double x = cw->x; + double y = cw->y; + x = p.x; + y = p.y; + Point* ham = PointCW(*cw); + return PointCW(*cw); +} + +// Legalized triangle by rotating clockwise around point(0) +void Triangle::Legalize(Point& point) { + + points_[1] = points_[0]; + points_[0] = points_[2]; + points_[2] = &point; +} + +// Legalize triagnle by rotating clockwise around oPoint +void Triangle::Legalize(Point& opoint, Point& npoint) { + + if(&opoint == points_[0]) { + points_[1] = points_[0]; + points_[0] = points_[2]; + points_[2] = &npoint; + } else if (&opoint == points_[1]) { + points_[2] = points_[1]; + points_[1] = points_[0]; + points_[0] = &npoint; + } else if (&opoint == points_[2]) { + points_[0] = points_[2]; + points_[2] = points_[1]; + points_[1] = &npoint; + } else { + assert(0); + } +} + +int Triangle::Index(const Point* p) { + + if(p == points_[0]) { + return 0; + } else if(p == points_[1]) { + return 1; + } else if(p == points_[2]) { + return 2; + } + assert(0); +} + +int Triangle::EdgeIndex(const Point* p1, const Point* p2) { + + if(points_[0] == p1) { + if(points_[1] == p2){ + return 2; + } else if(points_[2] == p2){ + return 1; + } + } + else if(points_[1] == p1) { + if(points_[2] == p2) { + return 0; + } else if(points_[0] == p2) { + return 2; + } + } else if(points_[2] == p1) { + if(points_[0] == p2 ) { + return 1; + } else if(points_[1] == p2) { + return 0; + } + } + return -1; +} + +void Triangle::MarkConstrainedEdge(const int index) { + constrained_edge[index] = true; +} + +void Triangle::MarkConstrainedEdge(Edge& edge) { + + MarkConstrainedEdge(edge.p, edge.q); + if((edge.q == points_[0] && edge.p == points_[1]) || (edge.q == points_[1] && edge.p == points_[0])) { + constrained_edge[2] = true; + } else if((edge.q == points_[0] && edge.p == points_[2]) || (edge.q == points_[2] && edge.p == points_[0])) { + constrained_edge[1] = true; + } else if(( edge.q == points_[1] && edge.p == points_[2]) || (edge.q == points_[2] && edge.p == points_[1])) { + constrained_edge[0] = true; + } + +} + +// Mark edge as constrained +void Triangle::MarkConstrainedEdge(Point* p, Point* q) { + + if((q == points_[0] && p == points_[1] ) || (q == points_[1] && p == points_[0])) { + constrained_edge[2] = true; + } else if((q == points_[0] && p == points_[2] ) || (q == points_[2] && p == points_[0])) { + constrained_edge[1] = true; + } else if((q == points_[1] && p == points_[2] ) || (q == points_[2] && p == points_[1])) { + constrained_edge[0] = true; + } + +} + +// The point counter-clockwise to given point +Point* Triangle::PointCW(Point& point) { + + if(&point == points_[0]) { + return points_[2]; + } else if(&point == points_[1]) { + return points_[0]; + } else if(&point == points_[2]) { + return points_[1]; + } + assert(0); +} + +// The point counter-clockwise to given point +Point* Triangle::PointCCW(Point& point) { + + if(&point == points_[0]) { + return points_[1]; + } else if(&point == points_[1]) { + return points_[2]; + } else if(&point == points_[2]) { + return points_[0]; + } + assert(0); +} + +// The neighbor clockwise to given point +Triangle* Triangle::NeighborCW(Point& point) { + + if(&point == points_[0]) { + return neighbors_[1]; + } else if(&point == points_[1]) { + return neighbors_[2]; + } + return neighbors_[0]; +} + +// The neighbor counter-clockwise to given point +Triangle* Triangle::NeighborCCW(Point& point) { + + if(&point == points_[0]) { + return neighbors_[2]; + } else if(&point == points_[1]) { + return neighbors_[0]; + } + return neighbors_[1]; +} + +bool Triangle::GetConstrainedEdgeCCW(Point& p) { + + if(&p == points_[0]) { + return constrained_edge[2]; + } else if(&p == points_[1]) { + return constrained_edge[0]; + } + return constrained_edge[1]; +} + +bool Triangle::GetConstrainedEdgeCW(Point& p) { + + if(&p == points_[0]) { + return constrained_edge[1]; + } else if(&p == points_[1]) { + return constrained_edge[2]; + } + return constrained_edge[0]; +} + +void Triangle::SetConstrainedEdgeCCW(Point& p, bool ce) { + + if(&p == points_[0]) { + constrained_edge[2] = ce; + } else if(&p == points_[1]) { + constrained_edge[0] = ce; + } else { + constrained_edge[1] = ce; + } +} + +void Triangle::SetConstrainedEdgeCW(Point& p, bool ce) { + + if(&p == points_[0]) { + constrained_edge[1] = ce; + } else if(&p == points_[1]) { + constrained_edge[2] = ce; + } else { + constrained_edge[0] = ce; + } +} + +bool Triangle::GetDelunayEdgeCCW(Point& p) { + + if(&p == points_[0]){ + return delaunay_edge[2]; + } else if(&p == points_[1]) { + return delaunay_edge[0]; + } + return delaunay_edge[1]; +} + +bool Triangle::GetDelunayEdgeCW(Point& p) { + + if(&p == points_[0]) { + return delaunay_edge[1]; + } else if(&p == points_[1]) { + return delaunay_edge[2]; + } + return delaunay_edge[0]; +} + +void Triangle::SetDelunayEdgeCCW(Point& p, bool e) { + + if(&p == points_[0]) { + delaunay_edge[2] = e; + } else if(&p == points_[1]) { + delaunay_edge[0] = e; + } else { + delaunay_edge[1] = e; + } +} + +void Triangle::SetDelunayEdgeCW(Point& p, bool e) { + + if(&p == points_[0]) { + delaunay_edge[1] = e; + } else if(&p == points_[1]) { + delaunay_edge[2] = e; + } else { + delaunay_edge[0] = e; + } +} + +// The neighbor across to given point +Triangle& Triangle::NeighborAcross(Point& opoint) { + if(&opoint == points_[0]) { + return *neighbors_[0]; + } else if(&opoint == points_[1]) { + return *neighbors_[1]; + } + return *neighbors_[2]; +} + + + diff --git a/poly2tri/common/shapes.h b/poly2tri/common/shapes.h new file mode 100644 index 0000000..0aaaee7 --- /dev/null +++ b/poly2tri/common/shapes.h @@ -0,0 +1,277 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// Include guard +#ifndef SHAPES_H +#define SHAPES_H + +#include +#include +#include +#include +#include +#include + +struct Node; +struct Edge; + +struct Point { + + double x, y; + + /// Default constructor does nothing (for performance). + Point() {} + /// The edges this point constitutes an upper ending point + std::vector edge_list; + + /// Construct using coordinates. + Point(double x, double y) : x(x), y(y) {} + + /// Set this point to all zeros. + void set_zero() { x = 0.0f; y = 0.0f; } + + /// Set this point to some specified coordinates. + void set(double x_, double y_) { x = x_; y = y_; } + + /// Negate this point. + Point operator -() const { Point v; v.set(-x, -y); return v; } + + /// Add a point to this point. + void operator += (const Point& v) { + x += v.x; y += v.y; + } + + /// Subtract a point from this point. + void operator -= (const Point& v) { + x -= v.x; y -= v.y; + } + + /// Multiply this point by a scalar. + void operator *= (double a) { + x *= a; y *= a; + } + + /// Get the length of this point (the norm). + double Length() const { + return sqrt(x * x + y * y); + } + + /// Convert this point into a unit point. Returns the Length. + double Normalize() { + double len = Length(); + x /= len; + y /= len; + return len; + } + +}; + +// Represents a simple polygon's edge +struct Edge { + + Point* p, *q; + + /// Constructor + Edge(Point& p1, Point& p2) : p(&p1), q(&p2) { + + if(p1.y > p2.y) { + q = &p1; + p = &p2; + } else if(p1.y == p2.y) { + if(p1.x > p2.x) { + q = &p1; + p = &p2; + } else if(p1.x == p2.x) { + assert(false); + } + } + + q->edge_list.push_back(*this); + + } + +}; + +// Triangle-based data structures are know to have better performance than quad-edge structures +// See: J. Shewchuk, "Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator" +// "Triangulations in CGAL" +class Triangle { + +public: + + /// Constructor + Triangle(Point& a, Point& b, Point& c); + // Destroctor + ~Triangle(); + + /// Flags to determine if an edge is a Constrained edge + bool constrained_edge[3]; + /// Flags to determine if an edge is a Delauney edge + bool delaunay_edge[3]; + /// Has this triangle been marked as an interior triangle? + bool interior; + + Point* GetPoint(const int& index); + Point* PointCW(Point& point); + Point* PointCCW(Point& point); + Point* OppositePoint(Triangle& t, Point& p); + + Triangle* GetNeighbor(const int& index); + void MarkNeighbor(Point* p1, Point* p2, Triangle* t); + void MarkNeighbor(Triangle& t); + + void MarkConstrainedEdge(const int index); + void MarkConstrainedEdge(Edge& edge); + void MarkConstrainedEdge(Point* p, Point* q); + + int Index(const Point* p); + int EdgeIndex(const Point* p1, const Point* p2); + + Triangle* NeighborCW(Point& point); + Triangle* NeighborCCW(Point& point); + bool GetConstrainedEdgeCCW(Point& p); + bool GetConstrainedEdgeCW(Point& p); + void SetConstrainedEdgeCCW(Point& p, bool ce); + void SetConstrainedEdgeCW(Point& p, bool ce); + bool GetDelunayEdgeCCW(Point& p); + bool GetDelunayEdgeCW(Point& p); + void SetDelunayEdgeCCW(Point& p, bool e); + void SetDelunayEdgeCW(Point& p, bool e); + + bool Contains(Point* p); + bool Contains(const Edge& e); + bool Contains(Point* p, Point* q); + void Legalize(Point& point); + void Legalize(Point& opoint, Point& npoint); + void ClearNeighbors(); + void ClearDelunayEdges(); + + Triangle& NeighborAcross(Point& opoint); + +private: + + /// Triangle points + Point* points_[3]; + /// Neighbor list + Triangle* neighbors_[3]; + +}; + +inline bool operator < (const Point& a, const Point& b) { + if (a.y < b.y) { + return true; + } else if (a.y == b.y) { + // Make sure q is point with greater x value + if(a.x < b.x) { + return true; + } else if (a.x > b.x) { + return false; + } else { + // Repeat point + //std::cout << "Repeat points not alowed: "; + //std::cout << a.x << "," << a.y << " " << b.x << "," << b.y << std::endl; + //assert(false); + } + } + return false; +} + +/// Add two points_ component-wise. +inline Point operator + (const Point& a, const Point& b) { + return Point(a.x + b.x, a.y + b.y); +} + +/// Subtract two points_ component-wise. +inline Point operator - (const Point& a, const Point& b) { + return Point(a.x - b.x, a.y - b.y); +} + +/// Multiply point by scalar +inline Point operator * (double s, const Point& a) { + return Point(s * a.x, s * a.y); +} + +inline bool operator == (const Point& a, const Point& b) { + return a.x == b.x && a.y == b.y; +} + +inline bool operator != (const Point& a, const Point& b) { + return a.x != b.x && a.y != b.y; +} + +inline bool operator != (const Node& a, const Node& b) { + return a != b; +} + +/// Peform the dot product on two vectors. +inline double Dot(const Point& a, const Point& b) { + return a.x * b.x + a.y * b.y; +} + +/// Perform the cross product on two vectors. In 2D this produces a scalar. +inline double Cross(const Point& a, const Point& b) { + return a.x * b.y - a.y * b.x; +} + +/// Perform the cross product on a point and a scalar. In 2D this produces +/// a point. +inline Point Cross(const Point& a, double s) { + return Point(s * a.y, -s * a.x); +} + +/// Perform the cross product on a scalar and a point. In 2D this produces +/// a point. +inline Point Cross(const double s, const Point& a) { + return Point(-s * a.y, s * a.x); +} + +inline Point* Triangle::GetPoint(const int& index) { + return points_[index]; +} + +inline Triangle* Triangle::GetNeighbor(const int& index) { + return neighbors_[index]; +} + +inline bool Triangle::Contains(Point* p) { + return p == points_[0] || p == points_[1] || p == points_[2]; +} + +inline bool Triangle::Contains(const Edge& e) { + return Contains(e.p) && Contains(e.q); +} + +inline bool Triangle::Contains(Point* p, Point* q) { + return Contains(p) && Contains(q); +} + +#endif + diff --git a/poly2tri/common/utils.h b/poly2tri/common/utils.h new file mode 100644 index 0000000..01c5857 --- /dev/null +++ b/poly2tri/common/utils.h @@ -0,0 +1,98 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include + +#include "shapes.h" + +template +int array_length(T(&)[size]){return size;} + +const double PI_3div4 = 3*M_PI/4; +const double EPSILON = 1e-12; + +enum Orientation { CW, CCW, COLLINEAR }; + +/** + * Forumla to calculate signed area
+ * Positive if CCW
+ * Negative if CW
+ * 0 if collinear
+ *
+ * A[P1,P2,P3]  =  (x1*y2 - y1*x2) + (x2*y3 - y2*x3) + (x3*y1 - y3*x1)
+ *              =  (x1-x3)*(y2-y3) - (y1-y3)*(x2-x3)
+ * 
+ */ +Orientation Orient2d(Point& pa, Point& pb, Point& pc ) { + + double detleft = (pa.x - pc.x) * (pb.y - pc.y); + double detright = (pa.y - pc.y) * (pb.x - pc.x); + double val = detleft - detright; + if( val > -EPSILON && val < EPSILON ) { + return COLLINEAR; + } else if( val > 0 ) { + return CCW; + } + return CW; + +} + +bool InScanArea(Point& pa, Point& pb, Point& pc, Point& pd) { + + const double pdx = pd.x; + const double pdy = pd.y; + const double adx = pa.x - pdx; + const double ady = pa.y - pdy; + const double bdx = pb.x - pdx; + const double bdy = pb.y - pdy; + + const double adxbdy = adx * bdy; + const double bdxady = bdx * ady; + const double oabd = adxbdy - bdxady; + + if(oabd <= 0) { + return false; + } + + const double cdx = pc.x - pdx; + const double cdy = pc.y - pdy; + + const double cdxady = cdx * ady; + const double adxcdy = adx * cdy; + const double ocad = cdxady - adxcdy; + + if(ocad <= 0) { + return false; + } + + return true; +} + diff --git a/poly2tri/poly2tri.h b/poly2tri/poly2tri.h new file mode 100644 index 0000000..843ea33 --- /dev/null +++ b/poly2tri/poly2tri.h @@ -0,0 +1,2 @@ +#include "common/shapes.h" +#include "sweep/cdt.h" diff --git a/poly2tri/sweep/advancing_front.cc b/poly2tri/sweep/advancing_front.cc new file mode 100644 index 0000000..fbc2efd --- /dev/null +++ b/poly2tri/sweep/advancing_front.cc @@ -0,0 +1,95 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "advancing_front.h" + +Node* AdvancingFront::Locate(const double& x) { + + Node* node = search_node_; + + if(x < node->value) { + while((node = node->prev) != NULL) { + if(x >= node->value) { + search_node_ = node; + return node; + } + } + } else { + while((node = node->next) != NULL) { + if(x < node->value) { + search_node_ = node->prev; + return node->prev; + } + } + } + return NULL; +} + +Node* AdvancingFront::FindSearchNode(const double& x) { + // TODO: implement BST index + return search_node_; +} + +Node* AdvancingFront::LocatePoint(Point* point) { + + const double px = point->x; + Node* node = FindSearchNode(px); + const double nx = node->point->x; + + if(px == nx) { + if(point != node->point) { + // We might have two nodes with same x value for a short time + if(point == node->prev->point) { + node = node->prev; + } else if(point == node->next->point) { + node = node->next; + } else { + assert(0); + } + } + } else if(px < nx) { + while((node = node->prev) != NULL) { + if(point == node->point) { + break; + } + } + } else { + while((node = node->next) != NULL) { + if(point == node->point) + break; + } + } + search_node_ = node; + return node; +} + +AdvancingFront::~AdvancingFront() { + delete head_; search_node_; tail_; +} diff --git a/poly2tri/sweep/advancing_front.h b/poly2tri/sweep/advancing_front.h new file mode 100644 index 0000000..871c549 --- /dev/null +++ b/poly2tri/sweep/advancing_front.h @@ -0,0 +1,98 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "../common/shapes.h" + +struct Node; + +// Advancing front node +struct Node { + + Point* point; + Triangle* triangle; + + Node* next; + Node* prev; + + double value; + + Node(Point& p) : point(&p), triangle(NULL), value(p.x), next(NULL), prev(NULL) {} + + Node(Point& p, Triangle& t) : point(&p), triangle(&t), value(p.x), + next(NULL), prev(NULL) {} + + /* + ~Node() { + printf("going... "); + printf("bye node"); + printf(" ... gone!\n"); + } + */ + +}; + +// Advancing front +class AdvancingFront { + +public: + + // Destructor + ~AdvancingFront(); + + Node* head(); + void set_head(Node* node); + Node* tail(); + void set_tail(Node* node); + Node* search(); + void set_search(Node* node); + + /// Locate insertion point along advancing front + Node* Locate(const double& x); + + Node* LocatePoint(Point* point); + +private: + + Node* head_, *tail_, *search_node_; + + Node* FindSearchNode(const double& x); + +}; + +inline Node* AdvancingFront::head() { return head_; } +inline void AdvancingFront::set_head(Node* node) { head_ = node; } + +inline Node* AdvancingFront::tail() { return tail_; } +inline void AdvancingFront::set_tail(Node* node) { tail_ = node; } + +inline Node* AdvancingFront::search() { return search_node_; } + +inline void AdvancingFront::set_search(Node* node) { search_node_ = node; } + diff --git a/poly2tri/sweep/cdt.cc b/poly2tri/sweep/cdt.cc new file mode 100644 index 0000000..6b19528 --- /dev/null +++ b/poly2tri/sweep/cdt.cc @@ -0,0 +1,54 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "cdt.h" + +CDT::CDT(Point polyline[], const int& point_count) { + sweep_context_ = new SweepContext(polyline, point_count); + sweep_ = new Sweep; +} + +void CDT::AddHole(const Point poly_line[], const int point_count) { + +} + +void CDT::Triangulate() { + sweep_->Triangulate(*sweep_context_); +} + +std::list CDT::GetTriangles() { + return sweep_context_->GetTriangles(); +} + +CDT::~CDT() { + delete sweep_context_; + delete sweep_; +} + diff --git a/poly2tri/sweep/cdt.h b/poly2tri/sweep/cdt.h new file mode 100644 index 0000000..a8f089b --- /dev/null +++ b/poly2tri/sweep/cdt.h @@ -0,0 +1,58 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "advancing_front.h" +#include "mesh.h" +#include "sweep_context.h" +#include "sweep.h" + +class CDT +{ + +public: + + /// Constructor + CDT(Point poly_line[], const int& point_count); + /// Add a hole + void AddHole(const Point poly_line[], const int point_count); + /// Triangulate points + void Triangulate(); + /// Get Delaunay triangles + std::list GetTriangles(); + +private: + + SweepContext* sweep_context_; + Sweep* sweep_; + + /// Destructor + ~CDT(); + +}; diff --git a/poly2tri/sweep/mesh.cc b/poly2tri/sweep/mesh.cc new file mode 100644 index 0000000..1dc71f1 --- /dev/null +++ b/poly2tri/sweep/mesh.cc @@ -0,0 +1,49 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "mesh.h" + +// Recursively collect interior triangles and clean the mesh +// Excludes exterior triangles outside constrained edges +// Depth first search + +void Mesh::clean(Triangle& triangle) +{ + /* + if(triangle != NULL && !triangle.interior) + { + triangle.interior = true; + triangles += triangle; + for(i <- 0 until 3) + if(!triangle.edges(i)) + clean(triangle.neighbors(i)); + } + */ +} diff --git a/poly2tri/sweep/mesh.h b/poly2tri/sweep/mesh.h new file mode 100644 index 0000000..895e726 --- /dev/null +++ b/poly2tri/sweep/mesh.h @@ -0,0 +1,50 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +using namespace std; + +class Triangle; + +class Mesh +{ + +public: + + /// Triangles that constitute the mesh + vector map; + + // Debug triangles + //val debug = new ArrayBuffer[Triangle] + //val triangles = new ArrayBuffer[Triangle] + + void clean(Triangle& triangle); + +}; diff --git a/poly2tri/sweep/sweep.cc b/poly2tri/sweep/sweep.cc new file mode 100644 index 0000000..674b800 --- /dev/null +++ b/poly2tri/sweep/sweep.cc @@ -0,0 +1,882 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include "sweep.h" +#include "sweep_context.h" +#include "advancing_front.h" +#include "../common/utils.h" + + // Triangulate simple polygon with holes +void Sweep::Triangulate(SweepContext& tcx) { + + tcx.CreateAdvancingFront(); + + // Sweep points; build mesh + SweepPoints(tcx); + + /* + // Finalize triangulation + if( tcx.getTriangulationMode() == TriangulationMode.Polygon ) { + finalizationPolygon( tcx ); + } else { + finalizationConvexHull( tcx ); + } + */ + +} + +void Sweep::SweepPoints(SweepContext& tcx ) { + + for(int i = 1; i < tcx.point_count(); i++ ) { + + Point& point = *tcx.GetPoint(i); + Node& node = PointEvent(tcx, point); + + for(int i = 0; i < point.edge_list.size(); i++) { + EdgeEvent(tcx, point.edge_list[i], node ); + } + } + +} + +/** + * Find closes node to the left of the new point and + * create a new triangle. If needed new holes and basins + * will be filled to. + * + * @param tcx + * @param point + * @return + */ +Node& Sweep::PointEvent(SweepContext& tcx, Point& point) { + + Node& node = tcx.LocateNode(point); + Node& new_node = NewFrontTriangle(tcx, point, node); + + // Only need to check +epsilon since point never have smaller + // x value than node due to how we fetch nodes from the front + if(point.x <= node.point->x + EPSILON) { + Fill(tcx, node); + } + + //tcx.AddNode(new_node); + + FillAdvancingFront(tcx, new_node); + return new_node; +} + +void Sweep::EdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + tcx.edge_event.constrained_edge = &edge; + tcx.edge_event.right = edge.p->x > edge.q->x; + + if(IsEdgeSideOfTriangle(*node.triangle, *edge.p, *edge.q)){ + return; + } + + // For now we will do all needed filling + // TODO: integrate with flip process might give some better performance + // but for now this avoid the issue with cases that needs both flips and fills + FillEdgeEvent(tcx, edge, node); + EdgeEvent(tcx, *edge.p, *edge.q , node.triangle, *edge.q); + +} + +void Sweep::EdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle* triangle, Point& point) { + + if(IsEdgeSideOfTriangle(*triangle, ep, eq)) { + return; + } + + Point* p1 = triangle->PointCCW(point); + Orientation o1 = Orient2d(eq, *p1, ep); + if(o1 == COLLINEAR) { + //throw new RuntimeException( "EdgeEvent - Collinear not supported" ); + assert(false); + } + + Point* p2 = triangle->PointCW(point); + Orientation o2 = Orient2d(eq, *p2, ep); + if(o2 == COLLINEAR) { + //throw new RuntimeException( "EdgeEvent - Collinear not supported" ); + assert(false); + } + + if(o1 == o2) { + // Need to decide if we are rotating CW or CCW to get to a triangle + // that will cross edge + if(o1 == CW) { + triangle = triangle->NeighborCCW(point); + } else { + triangle = triangle->NeighborCW(point); + } + EdgeEvent(tcx, ep, eq, triangle, point); + } else { + // This triangle crosses constraint so lets flippin start! + FlipEdgeEvent(tcx, ep, eq, *triangle, point); + } + +} + +bool Sweep::IsEdgeSideOfTriangle(Triangle& triangle, Point& ep, Point& eq) { + + int index = triangle.EdgeIndex(&ep, &eq); + if(index != -1) { + triangle.MarkConstrainedEdge(index); + Triangle* t = triangle.GetNeighbor(index); + if(t){ + t->MarkConstrainedEdge(&ep, &eq); + } + return true; + } + return false; +} + +Node& Sweep::NewFrontTriangle(SweepContext& tcx, Point& point, Node& node ) { + + Triangle* triangle = new Triangle(point, *node.point, *node.next->point); + + triangle->MarkNeighbor(*node.triangle); + tcx.AddToMap(triangle); + + Node* new_node = new Node(point); + new_node->next = node.next; + new_node->prev = &node; + node.next->prev = new_node; + node.next = new_node; + + if(!Legalize(tcx, *triangle)) { + tcx.MapTriangleToNodes(*triangle); + } + + return *new_node; +} + +/** + * Adds a triangle to the advancing front to fill a hole. + * @param tcx + * @param node - middle node, that is the bottom of the hole + */ +void Sweep::Fill(SweepContext& tcx, Node& node) { + + Triangle* triangle = new Triangle(*node.prev->point, *node.point, + *node.next->point); + + // TODO: should copy the constrained_edge value from neighbor triangles + // for now constrained_edge values are copied during the legalize + triangle->MarkNeighbor(*node.prev->triangle); + triangle->MarkNeighbor(*node.triangle); + + tcx.AddToMap(triangle); + + // Update the advancing front + node.prev->next = node.next; + node.next->prev = node.prev; + + // If it was legalized the triangle has already been mapped + if(!Legalize(tcx, *triangle)) { + tcx.MapTriangleToNodes(*triangle); + } + + // TODO: delete node from memory + //tcx.RemoveNode(node); + +} + +/** + * Fills holes in the Advancing Front + * + * + * @param tcx + * @param n + */ +void Sweep::FillAdvancingFront(SweepContext& tcx, Node& n) { + + // Fill right holes + Node* node = n.next; + + while(node->next) { + double angle = HoleAngle(*node); + if(angle > M_PI_2 || angle < -M_PI_2) break; + Fill(tcx, *node); + node = node->next; + } + + // Fill left holes + node = n.prev; + + while(node->prev) { + double angle = HoleAngle(*node); + if(angle > M_PI_2 || angle < -M_PI_2) break; + Fill(tcx, *node); + node = node->prev; + } + + // Fill right basins + if(n.next && n.next->next) { + double angle = BasinAngle(n); + if(angle < PI_3div4) { + FillBasin(tcx, n); + } + } + +} + +double Sweep::BasinAngle(Node& node) { + double ax = node.point->x - node.next->next->point->x; + double ay = node.point->y - node.next->next->point->y; + return atan2(ay, ax); +} + +/** + * + * @param node - middle node + * @return the angle between 3 front nodes + */ +double Sweep::HoleAngle(Node& node) { + + /* Complex plane + * ab = cosA +i*sinA + * ab = (ax + ay*i)(bx + by*i) = (ax*bx + ay*by) + i(ax*by-ay*bx) + * atan2(y,x) computes the principal value of the argument function + * applied to the complex number x+iy + * Where x = ax*bx + ay*by + * y = ax*by - ay*bx + */ + double ax = node.next->point->x - node.point->x; + double ay = node.next->point->y - node.point->y; + double bx = node.prev->point->x - node.point->x; + double by = node.prev->point->y - node.point->y; + return atan2(ax*by - ay*bx, ax*bx + ay*by); +} + +/** + * Returns true if triangle was legalized + */ +bool Sweep::Legalize(SweepContext& tcx, Triangle& t) { + + // To legalize a triangle we start by finding if any of the three edges + // violate the Delaunay condition + for(int i=0; i<3; i++) { + + if(t.delaunay_edge[i]) + continue; + + Triangle* ot = t.GetNeighbor(i); + + if(ot) { + + Point* p = t.GetPoint(i); + Point* op = ot->OppositePoint(t, *p); + int oi = ot->Index(op); + + // If this is a Constrained Edge or a Delaunay Edge(only during recursive legalization) + // then we should not try to legalize + if(ot->constrained_edge[oi] || ot->delaunay_edge[oi]) { + t.constrained_edge[i] = ot->constrained_edge[oi]; + continue; + } + + bool inside = Incircle(*p, *t.PointCCW(*p), *t.PointCW(*p), *op); + + if(inside) { + + // Lets mark this shared edge as Delaunay + t.delaunay_edge[i] = true; + ot->delaunay_edge[oi] = true; + + // Lets rotate shared edge one vertex CW to legalize it + RotateTrianglePair(t, *p, *ot, *op); + + // We now got one valid Delaunay Edge shared by two triangles + // This gives us 4 new edges to check for Delaunay + + // Make sure that triangle to node mapping is done only one time for a specific triangle + bool not_legalized = !Legalize(tcx, t); + if(not_legalized) { + tcx.MapTriangleToNodes(t); + } + + not_legalized = !Legalize(tcx, *ot); + if(not_legalized) + tcx.MapTriangleToNodes(*ot); + + // Reset the Delaunay edges, since they only are valid Delaunay edges + // until we add a new triangle or point. + // XXX: need to think about this. Can these edges be tried after we + // return to previous recursive level? + t.delaunay_edge[i] = false; + ot->delaunay_edge[oi] = false; + + // If triangle have been legalized no need to check the other edges since + // the recursive legalization will handles those so we can end here. + return true; + } + } + } + return false; +} + +/** + * Requirement:
+ * 1. a,b and c form a triangle.
+ * 2. a and d is know to be on opposite side of bc
+ *
+ *                a
+ *                +
+ *               / \
+ *              /   \
+ *            b/     \c
+ *            +-------+ 
+ *           /    d    \  
+ *          /           \ 
+ * 
+ * Fact: d has to be in area B to have a chance to be inside the circle formed by + * a,b and c
+ * d is outside B if orient2d(a,b,d) or orient2d(c,a,d) is CW
+ * This preknowledge gives us a way to optimize the incircle test + * @param a - triangle point, opposite d + * @param b - triangle point + * @param c - triangle point + * @param d - point opposite a + * @return true if d is inside circle, false if on circle edge + */ +bool Sweep::Incircle(Point& pa, Point& pb, Point& pc, Point& pd) { + + double adx = pa.x - pd.x; + double ady = pa.y - pd.y; + double bdx = pb.x - pd.x; + double bdy = pb.y - pd.y; + + double adxbdy = adx * bdy; + double bdxady = bdx * ady; + double oabd = adxbdy - bdxady; + + if( oabd <= 0 ) + return false; + + double cdx = pc.x - pd.x; + double cdy = pc.y - pd.y; + + double cdxady = cdx * ady; + double adxcdy = adx * cdy; + double ocad = cdxady - adxcdy; + + if( ocad <= 0 ) + return false; + + double bdxcdy = bdx * cdy; + double cdxbdy = cdx * bdy; + + double alift = adx * adx + ady * ady; + double blift = bdx * bdx + bdy * bdy; + double clift = cdx * cdx + cdy * cdy; + + double det = alift * ( bdxcdy - cdxbdy ) + blift * ocad + clift * oabd; + + return det > 0; +} + +/** + * Rotates a triangle pair one vertex CW + *
+ *       n2                    n2
+ *  P +-----+             P +-----+
+ *    | t  /|               |\  t |  
+ *    |   / |               | \   |
+ *  n1|  /  |n3           n1|  \  |n3
+ *    | /   |    after CW   |   \ |
+ *    |/ oT |               | oT \|
+ *    +-----+ oP            +-----+
+ *       n4                    n4
+ * 
+ */ +void Sweep::RotateTrianglePair(Triangle& t, Point& p, Triangle& ot, Point& op) { + + Triangle* n1, *n2, *n3, *n4; + n1 = t.NeighborCCW(p); + n2 = t.NeighborCW(p); + n3 = ot.NeighborCCW(op); + n4 = ot.NeighborCW(op); + + bool ce1,ce2,ce3,ce4; + ce1 = t.GetConstrainedEdgeCCW(p); + ce2 = t.GetConstrainedEdgeCW(p); + ce3 = ot.GetConstrainedEdgeCCW(op); + ce4 = ot.GetConstrainedEdgeCW(op); + + bool de1,de2,de3,de4; + de1 = t.GetDelunayEdgeCCW(p); + de2 = t.GetDelunayEdgeCW(p); + de3 = ot.GetDelunayEdgeCCW(op); + de4 = ot.GetDelunayEdgeCW(op); + + t.Legalize(p, op); + ot.Legalize(op, p); + + // Remap delaunay_edge + ot.SetDelunayEdgeCCW(p, de1); + t.SetDelunayEdgeCW(p, de2); + t.SetDelunayEdgeCCW(op, de3); + ot.SetDelunayEdgeCW(op, de4); + + // Remap constrained_edge + ot.SetConstrainedEdgeCCW(p, ce1); + t.SetConstrainedEdgeCW(p, ce2); + t.SetConstrainedEdgeCCW(op, ce3); + ot.SetConstrainedEdgeCW(op, ce4); + + // Remap neighbors + // XXX: might optimize the markNeighbor by keeping track of + // what side should be assigned to what neighbor after the + // rotation. Now mark neighbor does lots of testing to find + // the right side. + t.ClearNeighbors(); + ot.ClearNeighbors(); + if(n1 != NULL) ot.MarkNeighbor(*n1); + if(n2 != NULL) t.MarkNeighbor(*n2); + if(n3 != NULL) t.MarkNeighbor(*n3); + if(n4 != NULL) ot.MarkNeighbor(*n4); + t.MarkNeighbor(ot); +} + +/** +* Fills a basin that has formed on the Advancing Front to the right +* of given node.
+* First we decide a left,bottom and right node that forms the +* boundaries of the basin. Then we do a reqursive fill. +* +* @param tcx +* @param node - starting node, this or next node will be left node +*/ +void Sweep::FillBasin(SweepContext& tcx, Node& node) { + + if(Orient2d(*node.point, *node.next->point, *node.next->next->point ) == CCW) { + tcx.basin.left_node = node.next->next; + } else { + tcx.basin.left_node = node.next; + } + + // Find the bottom and right node + tcx.basin.bottom_node = tcx.basin.left_node; + while(tcx.basin.bottom_node->next + && tcx.basin.bottom_node->point->y >= tcx.basin.bottom_node->next->point->y) { + tcx.basin.bottom_node = tcx.basin.bottom_node->next; + } + if(tcx.basin.bottom_node == tcx.basin.left_node) { + // No valid basin + return; + } + + tcx.basin.right_node = tcx.basin.bottom_node; + while(tcx.basin.right_node->next + && tcx.basin.right_node->point->y < tcx.basin.right_node->next->point->y) { + tcx.basin.right_node = tcx.basin.right_node->next; + } + if(tcx.basin.right_node == tcx.basin.bottom_node) { + // No valid basins + return; + } + + tcx.basin.width = tcx.basin.right_node->point->x - tcx.basin.left_node->point->x; + tcx.basin.left_highest = tcx.basin.left_node->point->y > tcx.basin.right_node->point->y; + + FillBasinReq(tcx, *tcx.basin.bottom_node); + +} + +/** +* Recursive algorithm to fill a Basin with triangles +* +* @param tcx +* @param node - bottom_node +* @param cnt - counter used to alternate on even and odd numbers +*/ +void Sweep::FillBasinReq(SweepContext& tcx, Node& node) { + + // if shallow stop filling + if(IsShallow(tcx, node)) { + return; + } + + Fill(tcx, node); + + if(node.prev == tcx.basin.left_node && node.next == tcx.basin.right_node) { + return; + } else if(node.prev == tcx.basin.left_node) { + Orientation o = Orient2d(*node.point, *node.next->point, *node.next->next->point ); + if(o == CW) { + return; + } + node = *node.next; + } else if(node.next == tcx.basin.right_node) { + Orientation o = Orient2d(*node.point, *node.prev->point, *node.prev->prev->point); + if(o == CCW) { + return; + } + node = *node.prev; + } else { + // Continue with the neighbor node with lowest Y value + if(node.prev->point->y < node.next->point->y) { + node = *node.prev; + } else { + node = *node.next; + } + } + + FillBasinReq(tcx, node); + +} + +bool Sweep::IsShallow(SweepContext& tcx, Node& node) { + + double height; + + if(tcx.basin.left_highest) { + height = tcx.basin.left_node->point->y - node.point->y; + } else { + height = tcx.basin.right_node->point->y - node.point->y; + } + + // if shallow stop filling + if(tcx.basin.width > height) { + return true; + } + return false; +} + +void Sweep::FinalizationConvexHull(SweepContext& tcx) { + + Node& n1 = *tcx.front()->head()->next; + Node& n2 = *n1.next; + Node& n3 = *n2.next; + Point& first = *n1.point; + + TurnAdvancingFrontConvex(tcx, n2, n3); + + // TODO: implement ConvexHull for lower right and left boundary + // Lower right boundary + first = *tcx.front()->head()->point; + n2 = *tcx.front()->tail()->prev; + Triangle& t1 = *n2.triangle; + Point& p1 = *n2.point; + + do { + tcx.RemoveFromMap(&t1); + p1 = *t1.PointCCW(p1); + if(p1 == first) break; + t1 = *t1.NeighborCCW(p1); + } while(true); + + // Lower left boundary + first = *tcx.front()->head()->next->point; + p1 = *t1.PointCW(*tcx.front()->head()->point); + t1 = *t1.NeighborCW(*tcx.front()->head()->point); + do { + tcx.RemoveFromMap(&t1); + p1 = *t1.PointCCW(p1); + t1 = *t1.NeighborCCW(p1); + } while(p1 != first); + + //tcx.FinalizeTriangulation(); + +} + +void Sweep::TurnAdvancingFrontConvex(SweepContext& tcx, Node& b, Node& c) { + + Node& first = b; + + while(c != *tcx.front()->tail()) { + + if(Orient2d(*b.point, *c.point, *c.next->point) == CCW) { + // [b,c,d] Concave - fill around c + Fill(tcx, c); + c = *c.next; + } else { + // [b,c,d] Convex + if(b != first && Orient2d(*b.prev->point, *b.point, *c.point) == CCW) { + // [a,b,c] Concave - fill around b + Fill(tcx, b); + b = *b.prev; + } else { + // [a,b,c] Convex - nothing to fill + b = c; + c = *c.next; + } + } + } +} + +void Sweep::FillEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + if(tcx.edge_event.right) { + FillRightAboveEdgeEvent(tcx, edge, node); + } else { + FillLeftAboveEdgeEvent(tcx, edge, node); + } + +} + +void Sweep::FillRightAboveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + while(node.next->point->x < edge.p->x) { + // Check if next node is below the edge + if(Orient2d(*edge.q, *node.next->point, *edge.p) == CCW) { + FillRightBelowEdgeEvent(tcx, edge, node); + } else { + node = *node.next; + } + } + +} + +void Sweep::FillRightBelowEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + if(node.point->x < edge.p->x) { + if(Orient2d(*node.point, *node.next->point, *node.next->next->point ) == CCW ) { + // Concave + FillRightConcaveEdgeEvent(tcx, edge, node ); + } else { + // Convex + FillRightConvexEdgeEvent(tcx, edge, node ); + // Retry this one + FillRightBelowEdgeEvent(tcx, edge, node ); + } + } + +} + +void Sweep::FillRightConcaveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + Fill(tcx, *node.next); + if(node.next->point != edge.p) { + // Next above or below edge? + if(Orient2d(*edge.q, *node.next->point, *edge.p) == CCW) { + // Below + if(Orient2d(*node.point, *node.next->point, *node.next->next->point) == CCW) { + // Next is concave + FillRightConcaveEdgeEvent(tcx, edge, node); + } else { + // Next is convex + } + } + } + +} + +void Sweep::FillRightConvexEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + // Next concave or convex? + if(Orient2d(*node.next->point, *node.next->next->point, *node.next->next->next->point ) == CCW) { + // Concave + FillRightConcaveEdgeEvent(tcx, edge, *node.next); + } else{ + // Convex + // Next above or below edge? + if(Orient2d(*edge.q, *node.next->next->point, *edge.p) == CCW) { + // Below + FillRightConvexEdgeEvent(tcx, edge, *node.next); + } else{ + // Above + } + } + +} + +void Sweep::FillLeftAboveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + while(node.prev->point->x > edge.p->x) { + // Check if next node is below the edge + if(Orient2d(*edge.q, *node.prev->point, *edge.p) == CW) { + FillLeftBelowEdgeEvent(tcx, edge, node); + } else { + node = *node.prev; + } + } + +} + +void Sweep::FillLeftBelowEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + if( node.point->x > edge.p->x) { + if(Orient2d(*node.point, *node.prev->point, *node.prev->prev->point) == CW ) { + // Concave + FillLeftConcaveEdgeEvent(tcx, edge, node); + } else { + // Convex + FillLeftConvexEdgeEvent(tcx, edge, node); + // Retry this one + FillLeftBelowEdgeEvent(tcx, edge, node); + } + + } +} + +void Sweep::FillLeftConvexEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + // Next concave or convex? + if(Orient2d(*node.prev->point, *node.prev->prev->point, *node.prev->prev->prev->point) == CW) { + // Concave + FillLeftConcaveEdgeEvent(tcx, edge, *node.prev); + } else { + // Convex + // Next above or below edge? + if(Orient2d(*edge.q, *node.prev->prev->point, *edge.p) == CW) { + // Below + FillLeftConvexEdgeEvent(tcx, edge, *node.prev); + } else { + // Above + } + } +} + +void Sweep::FillLeftConcaveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node) { + + Fill(tcx, *node.prev); + if(node.prev->point != edge.p) { + // Next above or below edge? + if(Orient2d(*edge.q, *node.prev->point, *edge.p) == CW) { + // Below + if(Orient2d(*node.point, *node.prev->point, *node.prev->prev->point) == CW) { + // Next is concave + FillLeftConcaveEdgeEvent(tcx, edge, node); + } else { + // Next is convex + } + } + } + +} + +void Sweep::FlipEdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle& t, Point& p) { + + Triangle& ot = t.NeighborAcross(p); + Point& op = *ot.OppositePoint(t, p); + + if(&t.NeighborAcross(p) == NULL) { + // If we want to integrate the fillEdgeEvent do it here + // With current implementation we should never get here + //throw new RuntimeException( "[BUG:FIXME] FLIP failed due to missing triangle"); + assert(0); + } + + if(InScanArea(p, *t.PointCCW(p), *t.PointCW(p), op)) { + // Lets rotate shared edge one vertex CW + RotateTrianglePair(t, p, ot, op); + tcx.MapTriangleToNodes(t); + tcx.MapTriangleToNodes(ot); + + if( p == eq && op == ep ) { + if(eq == *tcx.edge_event.constrained_edge->q && ep == *tcx.edge_event.constrained_edge->p) { + t.MarkConstrainedEdge(&ep, &eq); + ot.MarkConstrainedEdge(&ep, &eq); + Legalize(tcx, t); + Legalize(tcx, ot); + } else { + // XXX: I think one of the triangles should be legalized here? + } + } else { + Orientation o = Orient2d(eq, op, ep); + t = NextFlipTriangle(tcx, (int) o, t, ot, p, op); + FlipEdgeEvent(tcx, ep, eq, t, p); + } + } else { + Point& newP = NextFlipPoint( ep, eq, ot, op); + FlipScanEdgeEvent(tcx, ep, eq, t, ot, newP); + EdgeEvent(tcx, ep, eq, &t, p); + } +} + +Triangle& Sweep::NextFlipTriangle(SweepContext& tcx, int o, Triangle& t, Triangle& ot, Point& p, Point& op) { + + if(o == CCW ) { + // ot is not crossing edge after flip + int edge_index = ot.EdgeIndex(&p, &op); + ot.delaunay_edge[edge_index] = true; + Legalize(tcx, ot); + ot.ClearDelunayEdges(); + return t; + } + + // t is not crossing edge after flip + int edge_index = t.EdgeIndex(&p, &op); + t.delaunay_edge[edge_index] = true; + Legalize(tcx, t); + t.ClearDelunayEdges(); + return ot; +} + +Point& Sweep::NextFlipPoint(Point& ep, Point& eq, Triangle& ot, Point& op ) { + + Orientation o2d = Orient2d(eq, op, ep); + if(o2d == CW) { + // Right + return *ot.PointCCW(op); + } else if(o2d == CCW) { + // Left + return *ot.PointCW(op); + } else { + //throw new RuntimeException("[Unsupported] Opposing point on constrained edge"); + assert(0); + } + +} + +void Sweep::FlipScanEdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle& flip_triangle, + Triangle& t, Point& p ) { + + Triangle& ot = t.NeighborAcross(p); + Point& op = *ot.OppositePoint(t, p); + + if(&t.NeighborAcross(p) == NULL) { + // If we want to integrate the fillEdgeEvent do it here + // With current implementation we should never get here + //throw new RuntimeException( "[BUG:FIXME] FLIP failed due to missing triangle"); + assert(0); + } + + if(InScanArea(eq, *flip_triangle.PointCCW(eq), *flip_triangle.PointCW( eq ), op)) { + // flip with new edge op->eq + FlipEdgeEvent(tcx, eq, op, ot, op); + // TODO: Actually I just figured out that it should be possible to + // improve this by getting the next ot and op before the the above + // flip and continue the flipScanEdgeEvent here + // set new ot and op here and loop back to inScanArea test + // also need to set a new flip_triangle first + // Turns out at first glance that this is somewhat complicated + // so it will have to wait. + } else { + Point& newP = NextFlipPoint(ep, eq, ot, op); + FlipScanEdgeEvent(tcx, ep, eq, flip_triangle, ot, newP); + } + +} + + diff --git a/poly2tri/sweep/sweep.h b/poly2tri/sweep/sweep.h new file mode 100644 index 0000000..a4e5d54 --- /dev/null +++ b/poly2tri/sweep/sweep.h @@ -0,0 +1,118 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** + * Sweep-line, Constrained Delauney Triangulation (CDT) See: Domiter, V. and + * Zalik, B.(2008)'Sweep-line algorithm for constrained Delaunay triangulation', + * International Journal of Geographical Information Science + * + * "FlipScan" Constrained Edge Algorithm invented by Thomas Åhlén, thahlen@gmail.com + */ + +#include + +class SweepContext; +struct Node; +struct Point; +struct Edge; +class Triangle; + +class Sweep { + +public: + + void Triangulate(SweepContext& tcx); + +private: + + void SweepPoints(SweepContext& tcx); + + Node& PointEvent(SweepContext& tcx, Point& point); + + void EdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void EdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle* triangle, Point& point); + + Node& NewFrontTriangle(SweepContext& tcx, Point& point, Node& node); + + void Fill(SweepContext& tcx, Node& node); + + bool Legalize(SweepContext& tcx, Triangle& t); + + bool Incircle(Point& pa, Point& pb, Point& pc, Point& pd); + + void RotateTrianglePair(Triangle& t, Point& p, Triangle& ot, Point& op); + + void FillAdvancingFront(SweepContext& tcx, Node& n); + + double HoleAngle(Node& node); + + double BasinAngle(Node& node); + + void FillBasin(SweepContext& tcx, Node& node); + + void FillBasinReq(SweepContext& tcx, Node& node); + + bool IsShallow(SweepContext& tcx, Node& node); + + void FinalizationConvexHull(SweepContext& tcx); + + void TurnAdvancingFrontConvex(SweepContext& tcx, Node& b, Node& c); + + bool IsEdgeSideOfTriangle(Triangle& triangle, Point& ep, Point& eq); + + void FillEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillRightAboveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillRightBelowEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillRightConcaveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillRightConvexEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillLeftAboveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillLeftBelowEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillLeftConcaveEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FillLeftConvexEdgeEvent(SweepContext& tcx, Edge& edge, Node& node); + + void FlipEdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle& t, Point& p); + + Triangle& NextFlipTriangle(SweepContext& tcx, int o, Triangle& t, Triangle& ot, Point& p, Point& op); + + Point& NextFlipPoint(Point& ep, Point& eq, Triangle& ot, Point& op ); + + void FlipScanEdgeEvent(SweepContext& tcx, Point& ep, Point& eq, Triangle& flip_triangle, Triangle& t, Point& p); + +}; diff --git a/poly2tri/sweep/sweep_context.cc b/poly2tri/sweep/sweep_context.cc new file mode 100644 index 0000000..da4b99d --- /dev/null +++ b/poly2tri/sweep/sweep_context.cc @@ -0,0 +1,164 @@ +#include "sweep_context.h" + +#include +#include +#include "advancing_front.h" + +SweepContext::SweepContext(Point polyline[], const int& point_count) { + + basin = Basin(); + edge_event = EdgeEvent(); + + point_count_ = point_count; + points_ = polyline; + + InitTriangulation(); + InitEdges(); + +} + +std::list SweepContext::GetTriangles() { + return tri_list_; +} + +void SweepContext::InitTriangulation() { + + double xmax(points_[0].x), xmin(points_[0].x); + double ymax(points_[0].y), ymin(points_[0].y); + + // Calculate bounds. + for(int i = 0; i < point_count_; i++) { + Point p = points_[i]; + if(p.x > xmax) + xmax = p.x; + if(p.x < xmin) + xmin = p.x; + if(p.y > ymax) + ymax = p.y; + if(p.y < ymin) + ymin = p.y; + } + + double dx = kAlpha * ( xmax - xmin ); + double dy = kAlpha * ( ymax - ymin ); + head_ = new Point(xmax + dx, ymin - dy); + tail_ = new Point(xmin - dx, ymin - dy); + + // Sort points along y-axis + double init_time = glfwGetTime(); + std::sort(points_, points_ + point_count_); + double dt = glfwGetTime() - init_time; + printf("Sort time (secs) = %f\n", dt); + + /* + for(int i = 0; i < point_count_; i++) { + printf("%i: %f, %f\n", i+1, points_[i].x, points_[i].y); + } + */ + +} + +void SweepContext::InitEdges() { + for(int i = 0; i < point_count_; i++) { + int j = i < point_count_ - 1 ? i + 1 : 0; + new Edge(points_[i], points_[j]); + } +} + +Point* SweepContext::GetPoint(const int& index) { + return &points_[index]; +} + +void SweepContext::AddToMap(Triangle* triangle ) { + tri_list_.push_back(triangle); +} + +Node& SweepContext::LocateNode(Point& point) { + // TODO implement search tree + return *front_->Locate(point.x); +} + +void SweepContext::CreateAdvancingFront() { + + // Initial triangle + Triangle* triangle = new Triangle(points_[0], *tail_, *head_); + + tri_list_.push_back(triangle); + + front_ = new AdvancingFront; + + front_->set_head(new Node(*triangle->GetPoint(1))); + front_->head()->triangle = triangle; + Node* middle = new Node(*triangle->GetPoint(0)); + middle->triangle = triangle; + front_->set_tail(new Node(*triangle->GetPoint(2))); + front_->set_search(middle); + + // TODO: More intuitive if head is middles next and not previous? + // so swap head and tail + front_->head()->next = middle; + middle->next = front_->tail(); + middle->prev = front_->head(); + front_->tail()->prev = middle; + +} + +void SweepContext::RemoveNode(Node* node) { + delete node; +} + +void SweepContext::MapTriangleToNodes(Triangle& t) { + for(int i=0; i<3; i++) { + if(t.GetNeighbor(i) == NULL) { + Node* n = front_->LocatePoint(t.PointCW(*t.GetPoint(i))); + if(n) + n->triangle = &t; + } + } +} + +void SweepContext::RemoveFromMap(Triangle* triangle) { + tri_list_.remove(triangle); +} + +/* +void SweepContext::MeshClean(Triangle& triangle) { + pointset_.ClearTriangulation(); + MeshCleanReq(triangle); +} + +AFront SweepContext::front_() { + return front_; +} + +void SweepContext::Clear() { + super.clear(); + tri_list_.Clear(); +} + + +Node* SweepContext::LocateNode(Point& point) { + // TODO implement tree + return front_.Locate(point.x); +} + +/* + +void SweepContext::MeshCleanReq(Triangle& triangle ) { + if(triangle != NULL && !triangle.isInterior()) { + triangle.IsInterior(true); + pointset_.AddTriangle(triangle); + for(int i = 0; i < 3; i++) { + if(!triangle.cEdge[i]) + MeshCleanReq(triangle.neighbors[i]); + } + } +} +*/ + +SweepContext::~SweepContext() { + delete [] points_; + delete head_; + delete tail_; + delete front_; +} diff --git a/poly2tri/sweep/sweep_context.h b/poly2tri/sweep/sweep_context.h new file mode 100644 index 0000000..d942686 --- /dev/null +++ b/poly2tri/sweep/sweep_context.h @@ -0,0 +1,158 @@ +/* Poly2Tri + * Copyright (c) 2009-2010, Poly2Tri Contributors + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include + +// Inital triangle factor, seed triangle will extend 30% of +// PointSet width to both left and right. +const double kAlpha = 0.3; + +struct Point; +class Triangle; +struct Node; +struct Edge; +class AdvancingFront; + + +class SweepContext { + +public: + + // Constructor + SweepContext(Point polyline[], const int& point_count); + // Destructor + ~SweepContext(); + + //void MeshClean(Triangle& triangle); + // Get Advancing Front + //AdvancingFront front(); + + void set_head(Point* p1); + Point* head(); + + void set_tail(Point* p1 ); + Point* tail(); + + int point_count(); + + Node& LocateNode(Point& point); + void RemoveNode(Node* node); + + void CreateAdvancingFront(); + + // Try to map a node to all sides of this triangle that don't have a neighbor + void MapTriangleToNodes(Triangle& t); + + void AddToMap(Triangle* triangle); + + Point* GetPoint(const int& index); + Point* GetPoints(); + + void RemoveFromMap(Triangle* triangle); + + AdvancingFront* front(); + + std::list GetTriangles(); + + + struct Basin { + + Node* left_node; + Node* bottom_node; + Node* right_node; + double width; + bool left_highest; + + Basin() : left_node(NULL), bottom_node(NULL), right_node(NULL), + width(0.0), left_highest(false) {} + + void Clear() { + left_node = NULL; + bottom_node = NULL; + right_node = NULL; + width = 0.0; + left_highest = false; + } + + }; + + struct EdgeEvent { + + Edge* constrained_edge; + bool right; + + EdgeEvent() : constrained_edge(NULL), right(false) {} + + }; + + Basin basin; + EdgeEvent edge_event; + +private: + + std::list tri_list_; + + Point* points_; + int point_count_; + + // Advancing front + AdvancingFront* front_; + // head point used with advancing front + Point* head_; + // tail point used with advancing front + Point* tail_; + + //EdgeEvent edgeEvent = new EdgeEvent(); + + void InitTriangulation(); + void InitEdges(); + + //void MeshCleanReq(Triangle& triangle ) + + /* + class EdgeEvent { + Edge* constrainedEdge; + bool right; + }; + */ + +}; + +inline AdvancingFront* SweepContext::front() { return front_; } + +inline int SweepContext::point_count() { return point_count_; } + +inline void SweepContext::set_head(Point* p1) { head_ = p1; } + +inline Point* SweepContext::head() { return head_; } + +inline void SweepContext::set_tail(Point* p1) { tail_ = p1; } + +inline Point* SweepContext::tail() { return tail_; } diff --git a/testbed/data/2.dat b/testbed/data/2.dat new file mode 100644 index 0000000..c1a3a30 --- /dev/null +++ b/testbed/data/2.dat @@ -0,0 +1,60 @@ +2158.9981,2350.2286 +2158.9981,3245.4557 +-1042.9463,3245.4557 +-1042.9463,2496.1895 +91.149593,800.20639 +441.75649,251.73749 +648.06929,-97.04991 +765.46219,-332.30851 +849.31479,-540.20071 +899.62689,-720.72671 +916.39869,-873.88651 +896.13819,-1060.7944 +835.35969,-1193.3788 +789.54889,-1239.4959 +733.15879,-1272.4376 +666.18939,-1292.204 +588.64059,-1298.7951 +511.08979,-1291.4964 +444.11959,-1269.6012 +387.73029,-1233.1107 +341.92169,-1182.0263 +306.46619,-1109.2461 +281.14119,-1007.6808 +260.88259,-718.19491 +260.88259,-218.68401 +-1042.9463,-218.68401 +-1042.9463,-410.05511 +-1030.3404,-804.55201 +-992.52205,-1105.8022 +-958.08057,-1232.6032 +-905.18018,-1358.3923 +-833.82067,-1483.1695 +-744.00213,-1606.9348 +-637.5262,-1722.6871 +-516.1928,-1823.4397 +-380.00205,-1909.1927 +-228.95374,-1979.9461 +-62.599167,-2035.2866 +119.51329,-2074.8167 +317.38399,-2098.5364 +531.01279,-2106.4456 +938.57049,-2082.2155 +1122.512,-2051.9328 +1293.2285,-2009.5383 +1450.7202,-1955.0316 +1594.987,-1888.4129 +1726.0289,-1809.6817 +1843.846,-1718.8382 +2038.4505,-1512.159 +2177.4543,-1279.7356 +2260.8578,-1021.5681 +2288.6606,-737.65631 +2273.0151,-508.98211 +2226.0792,-273.82221 +2147.8538,-32.17651 +2038.3398,215.95519 +1852.2859,537.88159 +1544.4495,1000.9025 +1114.8304,1605.018 +563.42839,2350.2286 diff --git a/testbed/data/bird.dat b/testbed/data/bird.dat new file mode 100644 index 0000000..caa9652 --- /dev/null +++ b/testbed/data/bird.dat @@ -0,0 +1,275 @@ +4.57998 4.03402 +4.06435 4.06435 +3.51839 4.21601 +3.09376 4.42832 +2.60846 4.57998 +2.09284 4.7013 +1.51655 4.82263 +0.909929 4.94395 +0.242648 5.06527 +-0.30331 5.0956 +-1.15258 5.12594 +-1.72887 5.12594 +-2.48714 5.12594 +-2.85111 5.03494 +-3.36674 5.30792 +-3.70038 5.52024 +-4.15534 5.9752 +-4.7013 6.27851 +-5.0956 6.61215 +-5.73255 6.67281 +-6.55149 6.73348 +-6.88513 6.61215 +-7.46142 6.36951 +-7.88605 6.18752 +-8.25003 5.91454 +-8.64433 5.61123 +-8.88698 5.30792 +-9.06896 5.00461 +-9.25095 4.88329 +-9.94856 4.73163 +-10.6462 4.64064 +-11.1011 4.54965 +-11.3741 4.42832 +-11.5561 4.21601 +-11.0101 4.21601 +-10.1305 3.94303 +-9.61492 3.73071 +-9.15996 3.4274 +-8.73532 3.00277 +-8.34102 2.6388 +-7.97705 2.36582 +-7.61308 2.03218 +-7.18844 1.45589 +-6.79414 1.12225 +-6.64248 0.788605 +-6.36951 0.242648 +-6.24818 -0.212317 +-6.00553 -0.515627 +-5.73255 -0.818936 +-5.24726 -1.2739 +-4.7923 -1.60754 +-4.42832 -2.00184 +-3.67005 -2.21416 +-3.18475 -2.39615 +-2.5478 -2.69946 +-1.91085 -2.79045 +-1.06158 -2.88144 +-0.333641 -2.88144 +0.242648 -2.85111 +0.94026 -2.82078 +1.2739 -2.85111 +1.42556 -3.0331 +1.42556 -3.30608 +1.33456 -3.57905 +1.15258 -4.00369 +1.03125 -4.57998 +0.849267 -5.15627 +0.63695 -5.5809 +0.30331 -5.91454 +0.060662 -6.15719 +-0.333641 -6.27851 +-0.697612 -6.27851 +-1.15258 -6.36951 +-1.57721 -6.39984 +-2.09284 -6.52116 +-2.36582 -6.79414 +-2.48714 -7.06712 +-2.18383 -6.97612 +-1.85019 -6.79414 +-1.42556 -6.76381 +-1.15258 -6.79414 +-1.36489 -6.88513 +-1.69853 -6.97612 +-1.97151 -7.12778 +-2.12317 -7.37043 +-2.27482 -7.64341 +-2.39615 -7.91639 +-2.36582 -8.21969 +-2.03218 -7.85572 +-1.81986 -7.7344 +-1.57721 -7.67374 +-1.36489 -7.49175 +-1.21324 -7.40076 +-0.849267 -7.2491 +-0.60662 -7.12778 +-0.242648 -6.91546 +0.030331 -6.70315 +0.363972 -6.4605 +0.242648 -6.61215 +0.152837 -6.72007 +-0.092855 -6.88818 +-0.506653 -7.15974 +-0.765276 -7.31491 +-1.01097 -7.41836 +-1.16614 -7.5606 +-1.32132 -7.71577 +-1.45063 -7.81922 +-1.50235 -8.06492 +-1.50235 -8.29768 +-1.46356 -8.53044 +-1.38597 -8.29768 +-1.28252 -8.05199 +-1.14028 -7.87095 +-0.985106 -7.84509 +-0.817001 -7.84509 +-0.623033 -7.70284 +-0.390272 -7.52181 +-0.105787 -7.31491 +0.178699 -7.06922 +0.489047 -6.84939 +0.670083 -6.66835 +0.928707 -6.47438 +1.16147 -6.33214 +1.47182 -6.13817 +1.82096 -5.91834 +2.04079 -5.84076 +2.15717 -5.71144 +2.18303 -5.45282 +2.06665 -5.28472 +1.87268 -5.3623 +1.49768 -5.63386 +1.22612 -5.81489 +1.03216 -5.91834 +0.876982 -5.95714 +0.954569 -5.80196 +1.00629 -5.60799 +1.16147 -5.29765 +1.3425 -4.9873 +1.45888 -4.65109 +1.47182 -4.4054 +1.73044 -3.95281 +1.84682 -3.6166 +1.98906 -3.30625 +2.14424 -2.95711 +2.26062 -2.75021 +2.42872 -2.59503 +2.63562 -2.50452 +2.98476 -2.51745 +3.12701 -2.71141 +3.06235 -3.09935 +2.9589 -3.4097 +2.86838 -3.75884 +2.79079 -4.12091 +2.70028 -4.43126 +2.55803 -4.75454 +2.48045 -5.03902 +2.3382 -5.37523 +2.29941 -5.59506 +2.23475 -5.90541 +2.11837 -6.21576 +1.7951 -6.65542 +1.39423 -7.05628 +1.09681 -7.26318 +0.838188 -7.37956 +0.41146 -7.49594 +-0.002337 -7.62526 +-0.416135 -7.7675 +-0.687689 -8.05199 +-0.907519 -8.40113 +-0.70062 -8.19423 +-0.312685 -8.05199 +-0.015268 -7.89681 +0.217493 -7.89681 +0.243355 -7.90974 +0.023525 -8.1425 +-0.157511 -8.25888 +-0.403203 -8.43992 +-0.648896 -8.75027 +-0.778207 -8.90544 +-0.881657 -9.18993 +-0.80407 -9.60372 +-0.597171 -9.177 +-0.14458 -8.9701 +0.269217 -8.62096 +0.695946 -8.28475 +1.13561 -8.00026 +1.52354 -7.62526 +1.82096 -7.26318 +1.95027 -7.09508 +1.9632 -7.15974 +1.66578 -7.58646 +1.45888 -7.84509 +1.13561 -8.20716 +0.760601 -8.65975 +0.450253 -8.99596 +0.269217 -9.28045 +0.126974 -9.65545 +0.19163 -10.2761 +0.333873 -9.84942 +0.63129 -9.68131 +0.980431 -9.26751 +1.26492 -8.72441 +1.60113 -8.31061 +1.98906 -7.7675 +2.36407 -7.34077 +2.79079 -7.00456 +3.13994 -6.7718 +3.68304 -6.46145 +4.14857 -6.33214 +4.7434 -6.09938 +5.19599 -6.13817 +4.85978 -5.87955 +4.29081 -5.76317 +3.77356 -5.81489 +3.34683 -6.07352 +2.77786 -6.47438 +2.41579 -6.60369 +2.41579 -6.28042 +2.59683 -5.84076 +2.79079 -5.42696 +2.99769 -4.90971 +3.25632 -4.30195 +3.50201 -3.52608 +3.83822 -2.63383 +4.07098 -2.40107 +4.39426 -2.28469 +4.79512 -2.23296 +4.54943 -2.02606 +4.49771 -1.6252 +4.54943 -1.50882 +4.91151 -1.50882 +5.54513 -1.45709 +6.12704 -1.39244 +6.85118 -1.32778 +7.44601 -1.14674 +7.85981 -0.78467 +7.79516 -0.409667 +7.49774 -0.151043 +7.84688 0.042924 +8.23481 0.314479 +8.64861 0.702414 +8.70034 1.09035 +8.41585 1.42656 +8.11843 1.62053 +8.3512 2.06019 +8.53223 2.38347 +8.67447 2.74554 +8.66154 3.22399 +8.80379 3.87055 +8.90724 4.36193 +9.1012 4.85332 +9.43741 5.40936 +9.90293 6.04298 +10.3167 6.58609 +10.7047 7.3749 +10.9374 7.96973 +11.1573 8.40939 +11.1573 8.84905 +10.9374 9.05595 +10.6659 9.28871 +10.3426 9.37922 +9.99345 9.34043 +9.63138 8.97836 +9.20465 8.48697 +8.86844 8.1249 +8.50637 7.72404 +8.17016 7.28438 +7.74343 6.88351 +7.43308 6.5473 +7.16153 6.1723 +6.70894 5.71971 +6.20462 5.25418 +5.72617 4.80159 +5.13134 4.41366 +4.87271 4.16797 \ No newline at end of file diff --git a/testbed/data/custom.dat b/testbed/data/custom.dat new file mode 100644 index 0000000..1b2847d --- /dev/null +++ b/testbed/data/custom.dat @@ -0,0 +1,7 @@ +0 130 +-270 0 +130 -40 +10 -60 +-10 -20 +100 30 +40 -40 \ No newline at end of file diff --git a/testbed/data/debug.dat b/testbed/data/debug.dat new file mode 100644 index 0000000..08b943e --- /dev/null +++ b/testbed/data/debug.dat @@ -0,0 +1,200 @@ +1.2277408 0.0 +1.3243141 0.041618247 +1.0635862 0.06691518 +0.952708 0.09005742 +0.9624486 0.12158553 +1.3459457 0.21317686 +0.94439876 0.1801537 +0.58555007 0.13088594 +0.5811499 0.14921393 +0.82454175 0.23955151 +0.62284756 0.20237544 +0.56452847 0.20324275 +0.5578659 0.22087473 +0.6222525 0.2692727 +0.5428962 0.25546756 +0.6560448 0.33427152 +0.525784 0.28905222 +0.71199375 0.42107195 +0.8918749 0.56600106 +0.93826324 0.63764304 +0.5041431 0.36628145 +0.74085724 0.57466775 +0.55901116 0.46245426 +0.45006666 0.3967871 +0.43738118 0.41072828 +0.42426407 0.42426407 +0.41072828 0.43738118 +0.3967871 0.45006666 +0.41002733 0.4956379 +0.7536917 0.9716534 +1.0196112 1.4033744 +0.66767913 0.98246 +0.7202045 1.1348608 +0.44231245 0.7479095 +0.28905222 0.525784 +0.2723943 0.5346039 +0.5011288 1.0649529 +0.27308202 0.6310553 +0.22087473 0.5578659 +0.20460863 0.56832236 +0.3397839 1.0457473 +0.26354295 0.9071208 +0.2884009 1.1232473 +0.15593462 0.69761133 +0.16937841 0.88791275 +0.21818724 1.37758 +0.1523747 1.20617 +0.11806885 1.249038 +0.06135568 0.97522056 +0.018846456 0.5997039 +6.8178847E-17 1.113445 +-0.028901286 0.91965383 +-0.06209223 0.98692775 +-0.05646499 0.5973372 +-0.10701424 0.84710497 +-0.09386068 0.592613 +-0.1636339 0.8577989 +-0.29984477 1.3414284 +-0.45487383 1.7716166 +-0.6387838 2.1987083 +-0.6129905 1.8865908 +-0.8446652 2.3461478 +-0.9281012 2.344116 +-1.0037318 2.3194876 +-1.0196298 2.1668236 +-0.8902802 1.7472732 +-1.2330354 2.242883 +-1.4297054 2.4174998 +-1.6074804 2.5329838 +-1.4688258 2.1613116 +-1.7633557 2.427051 +-1.6571896 2.136436 +-1.912272 2.3115396 +-1.6086806 1.82469 +-1.6045313 1.7086523 +-2.0598311 2.0598311 +-1.8296968 1.7181997 +-2.2503333 1.9839356 +-2.1353924 1.7665502 +-2.370465 1.8387212 +-2.427051 1.7633557 +-2.4812417 1.6862501 +-2.5329838 1.6074804 +-2.5773842 1.5242608 +-2.62892 1.445261 +-2.6730196 1.3619715 +-2.714481 1.2773379 +-2.753264 1.1914437 +-2.7893295 1.1043737 +-2.8226423 1.0162138 +-2.8531694 0.927051 +-2.5261154 0.73390436 +-2.6257684 0.6741827 +-2.9277503 0.65442973 +-2.8118498 0.53638905 +-2.963065 0.4693034 +-2.976344 0.3759997 +-2.617039 0.24738303 +-2.99408 0.18837155 +-2.860681 0.08990052 +-3.0 3.6739403E-16 +-2.6968896 -0.08475317 +-2.99408 -0.18837155 +-2.431072 -0.22980396 +-2.4993353 -0.31573948 +-2.3772683 -0.3765223 +-2.523671 -0.48141596 +-2.4523084 -0.54815584 +-1.9428126 -0.49882948 +-1.980212 -0.57530475 +-1.6508379 -0.53638977 +-1.7593161 -0.63339275 +-1.1899233 -0.47112396 +-0.8138197 -0.35217124 +-0.5630522 -0.26495224 +-0.5346039 -0.2723943 +-0.878033 -0.4827027 +-0.85542375 -0.5058962 +-1.2059882 -0.76534337 +-0.97923774 -0.66548926 +-1.0108875 -0.7344528 +-0.7830176 -0.6073707 +-0.90356225 -0.74749166 +-1.0288435 -0.90704757 +-1.1261301 -1.0575066 +-0.9001703 -0.9001703 +-0.8477716 -0.902785 +-0.5851195 -0.66368777 +-0.47532755 -0.5745723 +-0.6310177 -0.8135031 +-0.40265256 -0.5542037 +-0.33725002 -0.49624833 +-0.32149607 -0.50659674 +-0.46425027 -0.7850044 +-0.38156003 -0.69405514 +-0.2723943 -0.5346039 +-0.25546756 -0.5428962 +-0.23828873 -0.5506528 +-0.22087473 -0.5578659 +-0.20324275 -0.56452847 +-0.20844458 -0.64152646 +-0.16739467 -0.5761762 +-0.14921393 -0.5811499 +-0.13088594 -0.58555007 +-0.14249685 -0.7469947 +-0.11622784 -0.73383373 +-0.081517614 -0.64527833 +-0.07004014 -0.7409472 +-0.05557717 -0.88337386 +-0.025127873 -0.7995819 +-1.1021821E-16 -0.6 +0.029305225 -0.9325074 +0.05083992 -0.8080774 +0.10585039 -1.1197802 +0.18259653 -1.4454004 +0.21030101 -1.3277884 +0.17551 -0.9200556 +0.17963327 -0.8036331 +0.14921393 -0.5811499 +0.26661414 -0.9176919 +0.1854102 -0.5706339 +0.24760589 -0.6877518 +0.251998 -0.6364744 +0.23828873 -0.5506528 +0.4822611 -1.024857 +0.479923 -0.9419019 +0.34421936 -0.62613267 +0.55215293 -0.9336396 +0.70164776 -1.1056199 +0.9243659 -1.3601631 +1.1842307 -1.6299537 +1.4756334 -1.9023752 +1.6572317 -2.003249 +1.669321 -1.893473 +1.8840985 -2.0063612 +2.1213202 -2.1213202 +2.1869059 -2.0536413 +2.2503333 -1.9839356 +2.3115396 -1.912272 +2.2131321 -1.7166812 +2.3906639 -1.7369189 +2.0770426 -1.4115567 +2.2302797 -1.4153785 +2.4940982 -1.4750056 +2.62892 -1.445261 +2.23299 -1.1377653 +2.5385184 -1.1945361 +2.4313858 -1.0521545 +2.686942 -1.0638356 +2.8226423 -1.0162138 +2.6503394 -0.86114746 +2.6646125 -0.77414155 +2.1942327 -0.56338316 +1.7811928 -0.39814374 +1.9936028 -0.38030007 +1.5980223 -0.2531019 +1.77933 -0.22478165 +1.192731 -0.112746276 +1.358207 -0.08545114 +1.7209803 -0.054083984 diff --git a/testbed/data/debug2.dat b/testbed/data/debug2.dat new file mode 100644 index 0000000..c21f1d2 --- /dev/null +++ b/testbed/data/debug2.dat @@ -0,0 +1,10000 @@ +1.7978594 0.0 +2.169727 0.0013632799 +2.0489786 0.0025748236 +1.6864972 0.0031789762 +1.0627707 0.00267104 +1.6071618 0.005049064 +1.6630353 0.006269525 +1.6853083 0.007412421 +2.3962605 0.01204502 +2.69772 0.01525541 +1.8586487 0.011678387 +1.2379591 0.008556296 +0.99997157 0.007539751 +0.9999666 0.00816805 +0.9999613 0.008796346 +1.094976 0.010320211 +0.99994946 0.010052927 +1.6568905 0.017698608 +0.99993604 0.011309492 +1.1163418 0.01332758 +1.8877816 0.02372381 +2.2771854 0.030048497 +1.6972358 0.023462398 +2.6236942 0.0379185 +2.1719406 0.032754574 +2.360686 0.03708462 +1.4552166 0.023774944 +1.4864751 0.025219876 +1.76546 0.031062799 +2.5270119 0.04605038 +3.2688243 0.061623186 +3.4130046 0.066486485 +2.6731117 0.053753342 +2.2180197 0.04599615 +3.164733 0.06761794 +3.9363818 0.08657952 +3.3517597 0.07582795 +4.044233 0.0940364 +3.7059002 0.08849928 +4.0557427 0.09940354 +4.361124 0.10963009 +4.0949254 0.10551296 +4.6946487 0.12391763 +4.998175 0.13507205 +4.655135 0.12872873 +3.7623806 0.106407166 +3.1308353 0.09051465 +3.2166011 0.09501698 +3.5193026 0.10617186 +4.3538027 0.13408554 +3.9907873 0.12541555 +4.7500095 0.15226258 +4.866436 0.15905555 +4.9972277 0.16647364 +4.9971223 0.16961345 +4.9970145 0.1727532 +4.9969053 0.17589289 +4.1949663 0.15030344 +3.4655058 0.12634754 +3.3054788 0.12259288 +3.9340208 0.14837939 +3.8695972 0.14838438 +3.068128 0.11958172 +3.946806 0.15631229 +3.8481493 0.15482672 +4.718885 0.19282982 +4.9957013 0.20728569 +4.3171177 0.18184662 +4.2851877 0.18319896 +4.636052 0.20111732 +3.843115 0.1691381 +4.362732 0.19475336 +4.594191 0.20797822 +4.9947414 0.22925586 +4.9945965 0.2323941 +4.8435216 0.22841468 +4.9943004 0.23867032 +4.7408743 0.22954512 +3.9247332 0.19250078 +4.220373 0.20965958 +3.699524 0.18611513 +4.1924624 0.21355477 +3.2451725 0.16734627 +3.4447136 0.17980635 +3.5150497 0.18569241 +3.6776235 0.19659807 +3.592833 0.19432932 +3.3920538 0.18560717 +3.2720444 0.18110257 +3.7714345 0.21112004 +4.365902 0.24714944 +4.3015323 0.24621701 +3.7550535 0.21730411 +3.7551496 0.21967708 +2.968291 0.17551716 +2.7835357 0.1663476 +2.0111475 0.12145689 +1.3024743 0.0794802 +2.0550237 0.1266987 +1.2980847 0.08084976 +0.9980267 0.06279052 +1.6367681 0.10400925 +2.5889218 0.16614762 +2.7922206 0.1809563 +2.8847034 0.18877007 +2.8067324 0.18543893 +2.543304 0.16963944 +1.6103534 0.1084276 +2.3174198 0.15749823 +2.7633264 0.18954761 +3.5593708 0.24639851 +3.5086868 0.24510513 +3.6978762 0.26065615 +2.8584502 0.20329167 +3.46055 0.24829815 +3.6293004 0.26269835 +3.513185 0.2565127 +4.1487064 0.30553558 +4.3572793 0.32364884 +4.105765 0.30756098 +4.4923887 0.33936146 +3.7916536 0.28882298 +4.734978 0.3636717 +3.9604273 0.30668524 +2.9980001 0.23405246 +2.008754 0.15809236 +2.0184345 0.16013038 +1.0236973 0.081861235 +1.493009 0.12033446 +1.6629218 0.13508089 +2.1296542 0.17434105 +1.6722152 0.13795125 +1.16575 0.096907325 +0.9965104 0.08346914 +1.1110308 0.09376455 +1.6951773 0.14413588 +1.8663319 0.15986983 +2.419661 0.20879953 +3.3382773 0.2901828 +2.9300597 0.25655314 +3.5598826 0.31395382 +2.7737353 0.24637821 +2.417626 0.21627775 +2.6684914 0.24041003 +3.2134857 0.29154533 +2.953762 0.26985303 +3.2648394 0.30034137 +3.1519868 0.2919571 +3.81286 0.35558775 +3.301635 0.31000352 +2.3776062 0.22474995 +1.4221512 0.13533446 +1.6646197 0.15946366 +1.1452565 0.11043706 +1.9464625 0.18893176 +2.335352 0.22816026 +1.7261636 0.16973852 +1.908468 0.18887581 +1.5438403 0.1537692 +2.1087697 0.21137536 +2.815288 0.28398097 +2.909063 0.2952867 +2.1796808 0.2226339 +2.2038903 0.22650595 +2.9517286 0.30523977 +2.4489138 0.25479868 +3.0541894 0.31971484 +3.604426 0.37960368 +3.5199506 0.3729434 +3.4725618 0.37012905 +4.338221 0.46515378 +3.7667542 0.40627387 +4.255329 0.46167552 +4.4500594 0.48563167 +4.9701486 0.54554886 +4.4272385 0.48877168 +4.0468373 0.44934887 +3.1114953 0.3474705 +2.8025632 0.31475407 +2.3611517 0.2666818 +2.0342784 0.23105745 +2.209237 0.25233573 +1.4970498 0.17194374 +2.0685868 0.23890463 +2.812904 0.3266582 +1.8440902 0.21532574 +1.5586461 0.18298852 +1.8387069 0.21703959 +2.2585914 0.26804143 +3.0188284 0.36018726 +3.3462064 0.40138048 +2.8746135 0.34664476 +3.8334138 0.4647087 +2.973372 0.36234525 +2.1962414 0.269042 +2.7351553 0.33680403 +2.4315257 0.30096644 +2.7863553 0.34666383 +3.1124835 0.38922504 +3.4862185 0.4381866 +3.401166 0.42966717 +3.164649 0.40180844 +4.0720315 0.5196167 +3.3039744 0.42371777 +3.6049 0.4646124 +3.9105535 0.50650424 +3.6513877 0.47526935 +3.0658374 0.4010125 +2.3510714 0.3090235 +2.2356977 0.29528797 +2.051136 0.27222267 +1.4195482 0.18930729 +1.5313287 0.20519342 +1.1483685 0.15461247 +1.1887667 0.16081208 +1.9749589 0.26842904 +2.1299717 0.29086095 +3.0370753 0.4166756 +3.2544174 0.4485776 +3.0264945 0.41909942 +2.6480925 0.36839542 +2.995139 0.41859403 +2.4384887 0.34236002 +2.5218391 0.35567823 +2.3373678 0.3311585 +2.9618657 0.4215359 +3.7591395 0.5374148 +3.5042036 0.50321555 +3.2728717 0.4720945 +2.6581032 0.38512242 +2.5648456 0.3732562 +3.4547172 0.504974 +2.8496995 0.4183679 +3.2387965 0.47757074 +3.4215693 0.506718 +3.3476143 0.49791527 +2.6557877 0.3967206 +1.9565938 0.29353216 +1.7260344 0.2600522 +1.3675108 0.20691422 +0.98865175 0.1502256 +1.4348994 0.21895538 +2.3353188 0.35785457 +2.310307 0.3555077 +2.7435153 0.42393416 +1.8700575 0.29016864 +1.3502214 0.21037684 +1.9542744 0.30575165 +2.8409932 0.44631016 +2.3778741 0.37508687 +1.7225031 0.2728177 +0.98758984 0.15705502 +0.98749095 0.1576755 +1.7092874 0.27402827 +1.4915646 0.24008493 +0.98719203 0.1595366 +1.471602 0.23876926 +1.9423537 0.316402 +2.2024422 0.3601901 +1.52263 0.24999517 +1.6398091 0.2702926 +2.169337 0.3589758 +3.1275113 0.5195509 +3.3453982 0.5579071 +2.5238473 0.42252833 +1.7089231 0.28720227 +2.5076237 0.42305243 +2.368479 0.4011085 +3.2069638 0.5451812 +2.5432236 0.43399027 +1.9066827 0.32660028 +2.7750745 0.4771442 +2.3823018 0.41115242 +1.8909991 0.32758403 +1.3251514 0.23041807 +1.8546113 0.3236815 +1.0022409 0.17556801 +1.8663952 0.32815546 +2.5136034 0.44357798 +2.3740668 0.4204921 +2.6883235 0.47789523 +3.2369087 0.57751393 +2.7310317 0.4890285 +3.6290631 0.6521869 +4.3791394 0.78982544 +3.6309483 0.6572369 +3.1841025 0.57841986 +2.3923588 0.43614566 +1.9028279 0.34813583 +1.7964793 0.3298453 +2.1843839 0.40248603 +1.91568 0.35422036 +2.0612435 0.38247547 +2.288435 0.4261197 +2.2109392 0.413127 +2.0968287 0.39316842 +2.26562 0.4262916 +2.2647018 0.42759237 +2.8728158 0.5442784 +2.2691731 0.43139043 +3.1297777 0.597037 +3.2370496 0.6196084 +3.4137802 0.65566045 +3.5809062 0.6900924 +3.3848536 0.6545162 +4.174081 0.8098471 +4.7632465 0.9272618 +4.907268 0.9584991 +3.9453518 0.7731892 +3.879609 0.7628368 +3.019923 0.5957702 +2.2460012 0.44455728 +3.142536 0.624063 +3.5244336 0.7022045 +4.4598913 0.891498 +4.7694073 0.95648474 +4.315288 0.86823386 +3.9150803 0.790272 +3.609739 0.73099864 +3.557117 0.7226692 +4.2731667 0.8709391 +3.9823153 0.8142654 +4.8624544 0.997411 +4.3784466 0.9009961 +3.9309776 0.81149083 +2.9527123 0.6114773 +2.14933 0.44651335 +2.6959157 0.5618313 +2.1077273 0.4406343 +2.5878174 0.5426976 +1.9436481 0.40888235 +0.9784514 0.20647743 +0.97832143 0.20709217 +0.97819114 0.20770682 +1.1636518 0.24785133 +0.97792935 0.20893589 +0.97779787 0.2095503 +0.977666 0.21016462 +1.5163323 0.32695627 +2.4749475 0.53528345 +1.5372257 0.3334835 +1.1757843 0.25584656 +1.0587689 0.23108123 +0.9768668 0.21384884 +1.0292624 0.22599672 +0.97659725 0.21507624 +0.97646195 0.21568981 +0.9763262 0.21630329 +0.9761901 0.2169167 +1.1959568 0.26653916 +1.9829297 0.4432373 +1.8061746 0.40491956 +0.97564185 0.21936944 +1.0991518 0.24786584 +1.2951998 0.29293123 +1.2490584 0.28332064 +1.0841316 0.24662705 +1.807471 0.4123728 +1.7709599 0.4052136 +1.0186008 0.23373984 +0.9745269 0.22427076 +1.605955 0.37064585 +1.9085783 0.44175294 +0.9741024 0.2261073 +0.97396016 0.2267193 +0.97381747 0.22733122 +1.1999203 0.28090855 +0.97353107 0.22855477 +1.1219231 0.26413646 +1.1970744 0.28262344 +1.0431523 0.24697527 +1.5585235 0.37002814 +1.1337168 0.26992217 +1.7079694 0.40777785 +1.6279383 0.38975173 +0.9723699 0.23344536 +0.97222304 0.23405628 +1.4879118 0.35919416 +1.0101056 0.24451956 +1.7490194 0.42455435 +2.6311376 0.6404293 +2.7688339 0.67578816 +2.316097 0.56683105 +2.4760728 0.607632 +1.885832 0.46404243 +1.9268844 0.47542834 +2.6793559 0.662875 +2.1001904 0.52098954 +1.5351951 0.38185656 +0.97243726 0.24252795 +1.4979419 0.3745898 +1.3776293 0.34542316 +0.969821 0.24381813 +0.9696676 0.24442744 +0.96951383 0.24503666 +1.515931 0.3841526 +1.6917683 0.429843 +1.4225403 0.36238948 +1.6172713 0.4130791 +0.9687392 0.24808125 +1.32757 0.34086204 +1.8165203 0.46761993 +2.3618917 0.6095955 +2.2278407 0.57649064 +1.4268856 0.370187 +0.9677971 0.25173154 +1.189134 0.31010085 +1.2229975 0.31975254 +1.9383314 0.5080778 +2.7298617 0.7173881 +2.285532 0.60215694 +2.0891106 0.5518108 +2.4027889 0.63628006 +2.646619 0.7026283 +3.0643604 0.81559235 +3.930643 1.0488021 +3.3861978 0.90580887 +3.1714125 0.8504894 +3.1441312 0.8452912 +4.0889444 1.102057 +4.2228537 1.1409949 +3.5391355 0.958644 +3.5459704 0.96288717 +3.2266219 0.8783472 +2.3974903 0.6542603 +2.6669226 0.72958744 +1.7332101 0.47532335 +2.0662954 0.5680663 +1.2359722 0.34062913 +0.9638912 0.26629642 +1.6107224 0.44608745 +1.3820707 0.38369778 +1.4907835 0.41488826 +1.1619334 0.32415533 +2.0359986 0.56938046 +2.986793 0.8373002 +3.915106 1.1001918 +3.4092553 0.96035326 +2.7529624 0.7773494 +2.0575368 0.5823794 +2.0706255 0.5874896 +1.2820276 0.36461464 +1.4607663 0.41644102 +1.1652926 0.33299804 +0.96133864 0.2753689 +1.1682689 0.33543712 +0.96099186 0.27657676 +0.9608179 0.2771805 +0.96064353 0.27778414 +0.96046877 0.2783877 +1.2909551 0.37505713 +1.1271492 0.32823527 +0.95994234 0.28019762 +1.5557005 0.45515448 +1.108276 0.32500666 +1.7281823 0.5079763 +1.8342141 0.5403952 +2.3484 0.6934883 +2.1278443 0.62981147 +2.7856095 0.8264045 +2.9875348 0.88835216 +2.9213316 0.8706647 +2.9576478 0.8835121 +2.9189067 0.8739373 +3.519893 1.0562863 +4.3827176 1.318214 +3.658694 1.1029528 +3.548141 1.0720578 +3.8746955 1.1733824 +4.571144 1.3874255 +4.7807264 1.4543188 +4.2728057 1.3027407 +3.5578845 1.0872113 +2.7211077 0.8333804 +3.0184896 0.926533 +3.9577606 1.2175661 +4.289314 1.3225158 +4.777114 1.476206 +4.7761855 1.4792072 +4.775255 1.4822078 +4.7743225 1.4852079 +4.7733884 1.4882075 +4.269101 1.3339286 +4.1581864 1.3021402 +3.4188561 1.0729775 +4.2682214 1.3424897 +3.4481142 1.0869216 +4.3052626 1.360088 +4.1099696 1.3012332 +3.9496782 1.2532152 +4.5472355 1.4459629 +3.7598891 1.1981986 +3.2544775 1.0393873 +3.0284321 0.9692922 +2.2257023 0.7139093 +2.9584422 0.9509911 +3.141587 1.0120413 +2.4778132 0.79992986 +2.1899364 0.70851225 +3.1379118 1.01739 +3.4305053 1.1146387 +3.7503629 1.2211725 +2.8050103 0.9153017 +1.8742265 0.6128813 +2.5472276 0.834728 +3.3059897 1.0856755 +4.117569 1.3550621 +4.677414 1.5425608 +4.03874 1.3347473 +3.6831825 1.219808 +3.9631345 1.3152871 +4.396915 1.462318 +3.9418855 1.3137364 +3.2063816 1.0708494 +2.5352135 0.84846735 +2.629554 0.88187826 +2.9117227 0.9785453 +2.4636118 0.82967144 +2.4242506 0.818112 +1.7266248 0.58389294 +1.0385877 0.35194665 +1.3951782 0.47376212 +2.308482 0.7855117 +2.1035564 0.7172563 +2.5601642 0.87474334 +2.1819015 0.74703187 +1.6913478 0.58026534 +2.558827 0.8796763 +3.4778833 1.1980745 +4.10909 1.4184036 +3.3727376 1.1665968 +2.6437325 0.91630137 +2.8932164 1.0048076 +3.183496 1.1078631 +3.9439282 1.3752738 +4.6397095 1.6211677 +4.0762677 1.4271692 +4.718081 1.6552073 +4.505009 1.5836366 +4.715997 1.661135 +4.1207705 1.4543868 +4.7139063 1.6670599 +4.7128577 1.6700214 +4.7118077 1.6729822 +4.7107553 1.6759424 +4.42769 1.5783713 +4.708646 1.6818608 +4.707588 1.684819 +4.2440753 1.5219393 +4.348868 1.5626029 +4.340696 1.5627466 +3.870543 1.396229 +3.468687 1.2537303 +3.6389868 1.3178695 +3.1226826 1.1331084 +2.6496017 0.96332884 +3.3357477 1.2151679 +3.929802 1.4343714 +4.5872283 1.6775978 +4.4900208 1.6452472 +3.9029922 1.4329287 +3.9661381 1.4589404 +4.130899 1.5224948 +3.6131608 1.3342552 +3.8965902 1.4417018 +3.1698172 1.1750674 +2.5272985 0.93868905 +2.2999072 0.85587615 +1.7086034 0.6370538 +1.7243489 0.64415884 +2.1950116 0.82155466 +1.3649942 0.5118716 +1.7505327 0.65770304 +0.93588746 0.35229906 +1.7160228 0.6471991 +2.2986014 0.8685691 +1.7687538 0.6696267 +1.3869529 0.5260785 +2.304934 0.8759306 +2.2646096 0.86223507 +2.7306697 1.0416493 +2.8227773 1.0788171 +2.2458112 0.8599282 +2.2310796 0.85589516 +1.9119325 0.7348411 +2.1168745 0.81513643 +2.366108 0.91281533 +2.7656474 1.0689496 +2.3264747 0.9008856 +3.1644244 1.2276535 +3.0518215 1.1861752 +3.5498362 1.3823106 +3.468015 1.3529594 +3.343269 1.3067138 +3.7198324 1.4565881 +3.2378404 1.2701998 +2.3080647 0.907124 +2.0463448 0.8057466 +1.8714985 0.73825955 +2.7892187 1.102303 +2.2052078 0.8731035 +1.89721 0.75253785 +1.7970448 0.7141139 +1.0208031 0.406392 +0.9288483 0.37046018 +0.9286154 0.3710437 +1.2137998 0.48587853 +1.5194892 0.6093526 +1.5682077 0.63003397 +1.8151246 0.73055875 +1.2874146 0.51910406 +1.173059 0.47385132 +0.9269745 0.37512437 +0.9574809 0.38816988 +0.92650235 0.37628895 +1.7473938 0.71096456 +1.662899 0.6778041 +0.92579144 0.37803468 +1.6704122 0.68331563 +1.1589345 0.47493562 +0.9250772 0.3797791 +0.9248384 0.38036028 +1.0153565 0.41833395 +0.9243597 0.38152215 +1.4366477 0.5940217 +0.9238795 0.38268343 +1.6714215 0.6935562 +2.239308 0.9308503 +2.9039066 1.2092553 +2.3752859 0.99087685 +2.071595 0.8657174 +2.1031287 0.880448 +2.2424738 0.94043934 +2.7706454 1.1639893 +2.4689934 1.0390865 +1.5904393 0.67051977 +1.0954818 0.46265948 +0.92096794 0.38963836 +0.92072296 0.39021695 +1.4533303 0.61702186 +1.0232942 0.43520597 +1.0152315 0.43253037 +1.828848 0.7805225 +1.3762673 0.58839095 +1.7584302 0.753083 +2.0018003 0.85879993 +1.6088858 0.69143146 +2.3997042 1.0330787 +1.5769618 0.6800608 +0.918004 0.39657116 +1.7136126 0.74154633 +1.071171 0.4643364 +0.9172548 0.39830086 +0.9170044 0.3988771 +1.4550998 0.63402456 +2.006214 0.87565947 +1.6271213 0.711413 +0.9562896 0.4188266 +1.3462148 0.59061074 +0.96599144 0.4245233 +1.3272212 0.5842678 +0.91498786 0.40348142 +1.2580457 0.55570376 +0.935957 0.41413382 +0.9142257 0.4052054 +1.4789567 0.6566191 +0.9304905 0.41381413 +1.5800515 0.70388085 +2.096393 0.9354796 +1.4349637 0.64140946 +1.5701797 0.7030332 +2.4310076 1.090295 +3.328631 1.4953874 +3.9792604 1.7906885 +3.4711866 1.564676 +2.7058342 1.2217311 +2.055824 0.9297957 +1.2999138 0.5889012 +1.0418243 0.47276792 +0.9103662 0.41380367 +1.7347316 0.7898316 +1.8038285 0.82266045 +1.2330812 0.5632996 +0.9093233 0.41609034 +1.1145065 0.5108257 +1.7096679 0.7849138 +2.0457432 0.9407637 +2.3898022 1.1008037 +2.3623104 1.08994 +1.7584624 0.81267273 +0.9074844 0.42008573 +0.9841163 0.45631063 +0.90695584 0.4212258 +1.2739191 0.5926313 +0.9064258 0.42236516 +0.90616024 0.4229346 +1.5739856 0.73583525 +1.8023695 0.84398466 +2.620792 1.2292309 +2.8305428 1.3297807 +2.5558875 1.2027093 +2.0153499 0.9498988 +2.781071 1.3129438 +3.5513093 1.6793029 +2.8122807 1.3320022 +3.120871 1.4805638 +2.2361488 1.0625669 +1.4778477 0.703378 +1.8559327 0.8847574 +2.635857 1.2585949 +3.4783714 1.6635716 +3.1908507 1.5285257 +3.0440784 1.460569 +3.3543944 1.6120543 +3.8541152 1.8551918 +3.0609953 1.4757904 +3.306596 1.5967627 +3.2540731 1.5739212 +2.7140832 1.3148453 +2.8334954 1.3748937 +2.1109688 1.0259421 +1.4724158 0.716746 +0.89885527 0.43824565 +0.8985797 0.43881032 +0.8983038 0.43937483 +0.8980276 0.43993917 +0.897751 0.44050333 +1.2299082 0.60444343 +1.1978995 0.5896474 +0.8969191 0.44219476 +1.1177208 0.5519267 +0.89636266 0.44332153 +1.3721923 0.67972994 +0.8958049 0.44444758 +0.89552546 0.44501033 +0.8952457 0.4455729 +1.0535387 0.5251832 +1.519475 0.75864214 +0.8944042 0.44725963 +1.426163 0.7142937 +1.3225026 0.6634152 +1.6976193 0.8529228 +1.2603624 0.63422704 +0.89299464 0.45006728 +1.5825158 0.79883164 +1.1279798 0.57027787 +0.89214474 0.4517497 +0.89186066 0.45231017 +0.89157635 0.45287046 +0.8912916 0.45343056 +0.8910065 0.4539905 +1.114321 0.5686571 +1.6921301 0.8648635 +2.500839 1.2801846 +2.0879452 1.0704796 +2.7103324 1.3917259 +2.5724864 1.3229867 +3.220882 1.6590054 +3.4974222 1.8042266 +3.1304405 1.6174017 +2.9286013 1.5154498 +2.7701728 1.4356759 +2.0285754 1.0529515 +2.4801552 1.2893271 +2.6549516 1.382316 +3.2794027 1.7100599 +3.8415852 2.0062838 +3.5335345 1.8482296 +3.881661 2.0334258 +3.8043938 1.9959964 +4.1566577 2.1841452 +3.7682106 1.9830555 +3.9232051 2.0677714 +4.421765 2.3340943 +4.420297 2.336872 +4.3379364 2.296819 +4.256645 2.257203 +4.4158845 2.3452 +4.41441 2.3479743 +4.412934 2.3507473 +4.0087924 2.1386979 +3.7601042 2.0090582 +4.408495 2.3590615 +3.800802 2.0369475 +4.1985803 2.2535238 +4.4040403 2.367367 +4.402552 2.3701336 +3.918058 2.1124804 +3.9575863 2.1370032 +3.2237618 1.7433723 +3.1257467 1.6929061 +3.9693415 2.1530242 +3.7410421 2.0322347 +2.9518816 1.6059444 +2.9781113 1.6226403 +3.3260956 1.8149526 +3.284658 1.7950206 +3.0883856 1.6902813 +3.168912 1.7369419 +4.0198665 2.2066524 +3.3618097 1.8481706 +4.2213783 2.3241775 +3.361082 1.8532745 +4.166711 2.3009071 +4.375466 2.4197729 +4.3669696 2.4186585 +4.13807 2.2952807 +4.370897 2.428016 +3.7231703 2.0712688 +3.1246142 1.7408527 +3.5136647 1.9605029 +2.7712493 1.548545 +2.178269 1.2189904 +2.4612024 1.3793554 +1.9134221 1.073938 +1.1737542 0.65975803 +1.0335116 0.58178365 +0.871111 0.4910862 +0.8708022 0.49163345 +1.3040606 0.7373214 +1.6048046 0.9086944 +0.869874 0.493274 +1.6040796 0.9109478 +1.5713996 0.89369524 +1.8402959 1.0481544 +1.8153397 1.0354515 +2.070515 1.1827257 +1.7682629 1.0115465 +1.2059673 0.69088763 +2.0020537 1.1486295 +1.6048021 0.9220569 +2.3045058 1.326006 +1.6598548 0.9564644 +1.8877786 1.0893824 +1.4103254 0.81503963 +1.0093496 0.5841584 +1.0867001 0.6298366 +1.8567394 1.0777001 +2.387558 1.3878074 +2.914767 1.6967074 +3.4585385 2.0161512 +3.6284137 2.1182353 +3.6363704 2.125945 +3.9323137 2.30228 +3.5932891 2.1068218 +2.7855825 1.6355989 +2.2502267 1.3231583 +1.7506571 1.0308865 +0.88992035 0.5247891 +1.5221841 0.89892673 +2.225589 1.3162097 +1.5977887 0.9462851 +1.4520203 0.86118704 +1.5340043 0.9111148 +1.1920197 0.7090082 +0.8591386 0.511743 +1.3038596 0.77774984 +0.8584948 0.5128222 +1.2362045 0.73950154 +0.8578497 0.51390064 +0.85752666 0.5144395 +1.3910952 0.8357221 +2.0826216 1.252949 +2.5299358 1.5242283 +2.2090771 1.3328109 +2.3378963 1.4125363 +2.382626 1.4416058 +1.5520866 0.9404214 +0.87345135 0.5299816 +1.171591 0.71189046 +0.85427743 0.51981735 +0.869193 0.5296419 +0.8536235 0.5208905 +0.9993737 0.61069083 +0.8529683 0.5219627 +0.85264015 0.52249855 +0.96086633 0.58965045 +0.8519829 0.5235696 +0.85165375 0.52410483 +0.8513243 0.52463984 +1.2336671 0.7613336 +0.8506643 0.5257092 +1.0791866 0.667873 +1.6254963 1.0073792 +1.3940661 0.86516625 +2.16277 1.3441117 +2.8365436 1.7653182 +2.7924933 1.7403387 +2.1424913 1.3371139 +2.351822 1.4698097 +1.873582 1.1725636 +1.2860074 0.8059605 +1.5322478 0.96162444 +1.0408278 0.65412575 +1.0120251 0.6369116 +0.8460071 0.5331716 +0.84567195 0.5337031 +0.99252564 0.6272547 +1.3838509 0.87578106 +1.4028668 0.8890504 +2.0208602 1.2824769 +2.8454282 1.8082726 +3.582145 2.2796178 +3.9256334 2.501675 +3.9344838 2.5107925 +3.328603 2.1270936 +3.5935364 2.2995765 +4.2098155 2.6976757 +4.2081194 2.7003202 +3.7577164 2.4146345 +4.003587 2.5761814 +4.203022 2.7082477 +4.0929065 2.6409347 +3.8120565 2.463111 +3.9963377 2.5857425 +4.1962023 2.7188025 +4.1944933 2.7214384 +3.5218787 2.2881837 +2.9080763 1.8919923 +2.391494 1.5580438 +2.3000958 1.5005579 +2.8543937 1.8647338 +2.5914962 1.695311 +2.3892677 1.5651611 +3.1815293 2.0870137 +2.5245826 1.6583407 +1.889886 1.2431235 +1.4209831 0.93596965 +1.3901759 0.9169307 +1.201744 0.79372895 +1.5409954 1.0191892 +1.4501168 0.96039385 +0.98181313 0.65113014 +0.83303714 0.5532171 +0.83268934 0.5537404 +0.83234125 0.5542635 +0.83199286 0.5547863 +1.0285753 0.6868047 +1.424756 0.95263916 +1.460165 0.9776429 +2.1555653 1.4452055 +1.8631268 1.2508367 +2.686381 1.80599 +2.932774 1.9743108 +3.3343117 2.247667 +3.2857752 2.2179525 +3.9908228 2.6975229 +3.4661698 2.3460677 +3.993195 2.7064433 +3.909818 2.6535199 +3.5846207 2.4361057 +3.354467 2.2827759 +3.943907 2.6875277 +3.9362729 2.6859488 +3.5062773 2.395768 +4.126553 2.8233948 +4.1247783 2.825987 +4.123002 2.828578 +4.121224 2.8311682 +3.458125 2.3788369 +2.91048 2.0048082 +3.3954132 2.3419888 +3.420969 2.3627894 +3.4276493 2.3705857 +3.6627555 2.5365906 +4.108732 2.8492668 +3.3387108 2.3183908 +2.8500233 1.9817032 +3.0148258 2.0991063 +2.6420565 1.8420274 +2.364812 1.650943 +2.6781573 1.8722025 +2.1223786 1.4856639 +2.6856246 1.8824513 +2.4286509 1.7046056 +3.0023167 2.1100636 +3.7412488 2.6329072 +3.8369756 2.7038813 +3.6211998 2.5552328 +2.9313366 2.0712037 +2.491012 1.7624298 +2.9616017 2.098173 +2.2590654 1.6025876 +1.4877988 1.0568547 +1.8596044 1.3227247 +2.2111075 1.5748397 +2.9804876 2.1256473 +3.2258937 2.303727 +3.6300287 2.5957801 +4.0653005 2.9108987 +3.723731 2.6698637 +2.9658284 2.1292808 +2.6380186 1.8964466 +2.8246162 2.033283 +2.6087956 1.8804154 +3.0123816 2.174197 +2.992567 2.162757 +3.1223862 2.2595663 +2.702701 1.9584428 +2.237624 1.6235818 +1.6666157 1.2108672 +1.8218614 1.3254095 +2.2220566 1.6186888 +2.538928 1.8519611 +2.510145 1.8333836 +2.5252042 1.8468168 +2.0736353 1.5185611 +1.7741346 1.3009446 +2.1673265 1.5913608 +2.6119158 1.9203279 +2.1475303 1.5809828 +2.0752592 1.5297894 +1.5992464 1.1804454 +1.9290835 1.42578 +2.290591 1.6951957 +2.6107626 1.9346848 +2.3130462 1.7163168 +1.7363796 1.2901137 +1.3328755 0.9916143 +1.108827 0.8260126 +1.4086615 1.0507491 +1.7679226 1.3204589 +1.6147411 1.2076291 +1.3044006 0.9768109 +1.370609 1.0277363 +1.0176797 0.7640955 +0.7993072 0.6009226 +1.1796039 0.88799185 +1.1670997 0.8797282 +0.7981731 0.60242814 +0.79779446 0.60292953 +0.79741544 0.6034307 +1.5320954 1.160902 +1.3497285 1.0240542 +0.8903745 0.6764191 +1.6462171 1.252266 +1.1334765 0.86335266 +0.90216017 0.6880585 +1.0100831 0.7713733 +0.7943722 0.6074313 +0.9542167 0.7306099 +1.5941595 1.222181 +1.9977447 1.5335883 +1.7450275 1.3413309 +2.0089703 1.5462217 +2.5310278 1.9505616 +2.0556276 1.5862494 +2.1673498 1.6746349 +1.5657048 1.2113369 +2.2392933 1.7347214 +2.8645444 2.2219684 +3.06327 2.3792002 +3.3278196 2.5880258 +3.1370432 2.442825 +3.7318227 2.90975 +3.0674312 2.3948162 +3.047767 2.3825474 +2.6280653 2.0571134 +2.3490043 1.8410604 +2.1922643 1.7204381 +1.4947642 1.1745746 +1.6868064 1.3271952 +2.077668 1.6368432 +2.3455048 1.8502419 +3.0910645 2.441526 +3.2117088 2.5400975 +2.7576265 2.1837878 +2.684448 2.1285827 +3.2457604 2.5769882 +2.8933287 2.3001387 +2.9759297 2.3688579 +3.004834 2.3949516 +3.7634218 3.00344 +3.8995273 3.116073 +3.9041154 3.123761 +3.902152 3.1262133 +3.5099556 2.8156276 +3.8982205 3.1311145 +3.8962524 3.133563 +3.870094 3.1165318 +3.1017447 2.5010052 +2.9951372 2.4181523 +2.3534782 1.9025468 +2.7951953 2.2625353 +3.1254117 2.533077 +3.2722514 2.6554954 +3.4205616 2.7794185 +3.8784702 3.1555457 +3.8764868 3.1579819 +3.227223 2.6324341 +2.6975665 2.2032192 +2.9503536 2.4127734 +2.5915496 2.1220653 +2.080479 1.7057649 +1.4172858 1.163509 +1.7783313 1.4617777 +2.4764588 2.0382428 +2.9715905 2.4488933 +3.1228583 2.57685 +3.2930615 2.7207742 +3.1591153 2.6134474 +2.89422 2.3973718 +2.3425288 1.9428718 +2.2802672 1.8936522 +1.9328476 1.60719 +1.7174869 1.4299407 +2.0711687 1.7266128 +1.4011773 1.169573 +0.921033 0.76977545 +0.76689637 0.6417709 +1.2345463 1.0344394 +1.4649453 1.2290608 +0.80646044 0.67746854 +1.0802625 0.90863484 +0.8040733 0.6771885 +1.4272584 1.2035671 +1.4351081 1.2117302 +1.4942706 1.2632931 +2.1567898 1.825728 +1.999086 1.6943887 +2.0740693 1.7601837 +2.0288093 1.7239672 +2.1371088 1.8183078 +2.6279428 2.23877 +2.889041 2.4643364 +3.0737903 2.6252651 +3.5300138 3.0187545 +3.2856183 2.8133316 +2.8595393 2.4516144 +3.324984 2.854288 +3.236296 2.781689 +2.9102783 2.5046484 +3.2390778 2.7911649 +3.654085 3.1527863 +3.5254965 3.0457048 +3.3320768 2.8822663 +3.2247112 2.7929385 +3.0655444 2.658456 +2.650014 2.301025 +2.6854355 2.3347425 +3.3849676 2.9466588 +3.0047708 2.619013 +3.06376 2.6738183 +2.4857316 2.1721117 +2.102052 1.8391708 +2.171673 1.9024956 +1.6168164 1.4182094 +1.6036425 1.4084377 +2.3182194 2.0386136 +2.7124684 2.3883352 +3.3832362 2.982724 +2.7765768 2.450984 +3.0726116 2.7157412 +3.4197354 3.0263777 +3.1536717 2.7944536 +3.4026341 3.0188766 +3.7380633 3.3206751 +3.5137482 3.125359 +3.199602 2.8495393 +2.90264 2.5883398 +2.4042823 2.1466582 +2.1715105 1.9412817 +2.3579023 2.1105788 +1.9701841 1.7657598 +1.3621117 1.2223245 +1.9207443 1.7258073 +2.1310353 1.9171771 +2.239307 2.0171304 +2.139016 1.9292258 +1.4412057 1.3014984 +1.9886774 1.7981693 +2.7080116 2.4516883 +3.022158 2.7395566 +2.9733405 2.6987095 +3.0739217 2.793525 +3.6981554 3.3650625 +3.6960404 3.3673856 +3.693924 3.369707 +3.6918058 3.3720274 +3.6896865 3.3743465 +3.6875656 3.376664 +3.6854432 3.3789804 +3.4186242 3.1383045 +2.9260545 2.6895142 +2.890012 2.6597373 +2.5571408 2.3563583 +2.597348 2.396428 +2.3825955 2.201061 +2.2380722 2.0701568 +2.2006419 2.0381021 +2.1517644 1.9953479 +1.7856477 1.657933 +1.7553356 1.6318437 +1.2957007 1.2060637 +0.85376924 0.79570705 +0.81245655 0.7581584 +0.83340305 0.7786852 +0.7450814 0.6970397 +0.7298283 0.6836305 +1.2643405 1.1858007 +1.2079283 1.1343201 +0.7285384 0.685005 +0.7281078 0.6854626 +1.1494004 1.0834432 +0.94426733 0.8912026 +0.72681445 0.68683386 +0.7263828 0.6872904 +0.7259508 0.68774664 +1.2408897 1.1770664 +1.1466435 1.0890373 +1.144574 1.0884404 +1.1664368 1.1106275 +1.4226317 1.3562697 +2.0864997 1.9916742 +1.4420837 1.3782778 +1.1225103 1.0741944 +1.6976573 1.6266303 +2.0107632 1.929061 +2.4647257 2.367554 +1.7916914 1.7232198 +1.8728042 1.8034992 +2.18542 2.1071947 +2.1309416 2.0572515 +2.100414 2.030331 +1.5798849 1.5290912 +1.7367224 1.683001 +1.7028834 1.6522847 +1.3778745 1.3386148 +1.4912698 1.4506017 +0.9427044 0.91814953 +1.1047618 1.0773393 +1.5746007 1.5374472 +2.028844 1.9834641 +2.152725 2.1072211 +2.2557466 2.2108421 +1.8788813 1.843795 +1.9106051 1.8772842 +1.9680116 1.9361215 +2.394869 2.359025 +1.8973619 1.8713142 +1.8002565 1.7777747 +2.283471 2.2577906 +2.1406868 2.1192737 +2.4876971 2.46591 +2.8751519 2.8535552 +3.220457 3.2002857 +3.5444086 3.526637 +3.542192 3.5288632 +3.504816 3.4960184 +3.5377545 3.5333118 +3.1716843 3.1716843 +2.774709 2.778198 +2.566618 2.5730767 +1.8804818 1.8875846 +2.5803833 2.5933864 +2.6286771 2.6452458 +2.1407564 2.1569586 +2.477466 2.4993553 +3.0334225 3.0640721 +2.3960295 2.4232824 +1.9842918 2.009385 +1.9117408 1.9383512 +2.536894 2.575441 +3.008452 3.0580046 +3.1596699 3.2157524 +2.6235206 2.6734447 +3.2010243 3.2660406 +3.4975684 3.573096 +3.0240269 3.0932143 +3.171197 3.2478313 +3.1339877 3.21376 +2.9663024 3.0456328 +3.486326 3.5840664 +3.1913822 3.2849808 +2.8773842 2.9654994 +3.0686147 3.1665647 +3.3469572 3.4581368 +3.385456 3.5023158 +3.4727895 3.597184 +2.858571 2.9646897 +3.22535 3.3492937 +3.466003 3.6037235 +3.463738 3.6059005 +3.4614716 3.6080763 +3.406177 3.5549083 +3.456935 3.6124232 +3.4546645 3.6145945 +3.4523926 3.6167645 +2.8486197 2.9880018 +3.026127 3.1781907 +3.1729443 3.336581 +3.443292 3.6254299 +2.9001505 3.0574033 +3.1158855 3.2889721 +3.436452 3.631914 +3.4341693 3.6340723 +2.9839256 3.161597 +3.320941 3.523111 +3.0319407 3.2205691 +2.7698421 2.9458709 +3.4187682 3.6406183 +3.4204447 3.646993 +3.4181526 3.6491413 +3.415859 3.6512883 +3.4135642 3.6534338 +3.0709443 3.2908807 +2.4333827 2.6109447 +2.2393677 2.4058018 +2.4485037 2.6337974 +2.922772 3.1479206 +3.399767 3.6662767 +3.0934112 3.3401124 +3.3402843 3.6112227 +3.3928502 3.6726787 +3.3905418 3.6748097 +3.3861866 3.6747193 +3.2365968 3.5168147 +3.2113242 3.493757 +2.581181 2.8117375 +2.4392781 2.660513 +1.9880546 2.171102 +1.4282458 1.5617186 +1.8769286 2.0549228 +2.246378 2.4625134 +2.8914084 3.1736083 +2.4842727 2.73018 +2.6742196 2.942641 +3.2640564 3.5962193 +2.941901 3.2453752 +3.0516977 3.370752 +2.6292932 2.9078553 +2.3995507 2.6571267 +2.4533439 2.7201283 +2.4879618 2.761998 +1.8783275 2.0878522 +1.9683876 2.190725 +1.789277 1.9939017 +1.1377871 1.2695101 +1.4477501 1.6174015 +1.2616621 1.4112906 +1.0419742 1.1670233 +1.5764364 1.767862 +1.996154 2.241379 +2.2556355 2.5359437 +2.3174858 2.6087794 +1.9569268 2.20569 +2.0061677 2.2640543 +1.7605743 1.9894074 +1.7835349 2.0179057 +1.8702629 2.1187117 +2.3353717 2.6489592 +2.2057483 2.5051017 +2.2315836 2.5376563 +1.8950047 2.1576462 +2.5038233 2.85446 +2.994268 3.4179165 +2.9747715 3.3999693 +2.3830779 2.7271578 +2.1571686 2.4717636 +2.243586 2.5740466 +2.8512592 3.2753775 +3.1596591 3.6342597 +3.278187 3.7753794 +2.6583405 3.065411 +2.2955868 2.6504717 +2.2742412 2.6291625 +2.053397 2.3768697 +1.9322903 2.239528 +1.8396915 2.1349163 +1.3728074 1.5951346 +1.4467871 1.6832333 +1.2252754 1.4273335 +1.6012143 1.867641 +1.8767155 2.1917684 +2.2148004 2.5899012 +2.0563781 2.4077094 +2.5602567 3.0014923 +2.2455974 2.635957 +2.4047534 2.8263752 +1.871606 2.2025542 +2.3303914 2.7459595 +2.9712543 3.505567 +3.2304866 3.8162751 +2.6807876 3.1709363 +2.9099991 3.4464462 +3.2232873 3.8223577 +3.0996048 3.6803777 +2.5922554 3.0818942 +3.1736872 3.777966 +3.2136707 3.8304465 +3.0362618 3.6236105 +3.1823974 3.8028662 +3.037627 3.634508 +2.496561 2.990942 +2.5317917 3.0370257 +2.201598 2.6443164 +2.6057887 3.1337876 +2.8584888 3.4420884 +2.7230637 3.2832096 +2.9162984 3.5206928 +3.18712 3.8525662 +3.1846986 3.854568 +3.1822762 3.8565683 +3.1798525 3.858567 +3.1774273 3.8605642 +2.615319 3.1816766 +2.252396 2.7436736 +2.857967 3.485791 +2.225784 2.718215 +2.5158145 3.076353 +1.9064295 2.3341846 +1.3045124 1.5992622 +1.3991094 1.717435 +0.9578494 1.1772894 +1.145601 1.4098629 +0.9887125 1.2183473 +0.6296459 0.7768823 +0.7491021 0.9254603 +0.6286691 0.7776729 +1.0564902 1.3085748 +1.4727576 1.8265127 +1.1868753 1.4738561 +1.8055731 2.245038 +1.3945854 1.7362512 +0.8843284 1.1024021 +1.2126175 1.5135942 +0.7357983 0.91960996 +0.75424874 0.9438847 +1.3031043 1.6328381 +1.2783469 1.6038821 +1.0763401 1.3521758 +1.2905864 1.6234196 +1.8666109 2.351028 +1.3869716 1.74917 +0.8313622 1.0498211 +1.36189 1.7219788 +0.94752264 1.1995996 +0.61934066 0.7851224 +1.0791442 1.3697728 +0.951633 1.2094835 +0.64274514 0.81795776 +0.8569778 1.092002 +0.8902411 1.1358564 +1.1195142 1.4302354 +0.85156184 1.0893223 +0.61538637 0.7882256 +0.64568573 0.8281071 +1.0451281 1.3421395 +1.4275135 1.8355718 +1.3147254 1.6927365 +1.1015428 1.4201005 +0.68828046 0.888478 +1.1913874 1.5399193 +1.0633335 1.3761898 +0.61091924 0.7916929 +0.6104217 0.7920766 +0.6099239 0.79246 +0.60942584 0.79284304 +0.60892755 0.7932258 +1.020379 1.3309377 +0.6405245 0.8365602 +0.6074313 0.7943722 +0.60693204 0.79475373 +0.73011714 0.95730615 +1.0058233 1.3205229 +0.6054329 0.79589635 +0.6049327 0.79627657 +0.6044323 0.79665655 +1.0953702 1.44561 +0.6034307 0.79741544 +0.60292953 0.79779446 +0.60242814 0.7981731 +0.6019265 0.7985515 +0.6014247 0.7989295 +0.92419714 1.2293056 +1.0713164 1.4268595 +0.59991765 0.80006176 +0.5994148 0.8004385 +1.191861 1.5936574 +1.0112176 1.3538889 +1.0740272 1.4398688 +1.1683106 1.5683229 +1.6202326 2.177831 +2.159926 2.9070706 +1.891113 2.5486155 +1.5123839 2.0408883 +1.4030088 1.8957807 +0.9314976 1.2603182 +1.0770642 1.4591873 +1.0552334 1.431493 +0.8606975 1.1691296 +0.5923507 0.8056802 +0.5918444 0.80605227 +0.5913378 0.80642396 +0.7814907 1.0671462 +0.5903239 0.8071664 +0.76243335 1.0438722 +0.9337501 1.2801155 +1.3276631 1.8225508 +0.8054395 1.1071287 +1.36132 1.8736963 +1.5958747 2.1994379 +1.4556069 2.0087745 +1.7210038 2.3781726 +1.1481605 1.5886886 +1.3123071 1.8182206 +0.8423571 1.1686447 +1.1240345 1.5614974 +0.68453115 0.952205 +1.0674658 1.4868497 +0.74448776 1.0383573 +1.1769415 1.6436921 +1.0186635 1.4245343 +1.3747869 1.9251049 +1.775383 2.4893627 +1.9948071 2.8007503 +1.4321995 2.0135138 +1.9343654 2.7231243 +1.9531552 2.7532382 +1.5888646 2.2427056 +1.1912792 1.6837499 +1.007489 1.4258807 +0.82161474 1.1643679 +0.9682999 1.3740778 +0.90429753 1.2849683 +0.72530776 1.0320085 +1.1871866 1.6914537 +1.3018028 1.8572346 +1.7090282 2.4414709 +2.1843913 3.1247385 +1.893463 2.7121975 +1.5764381 2.2611165 +2.0300899 2.9157012 +1.7154261 2.467072 +1.7426271 2.5095544 +1.2679819 1.8284698 +1.636525 2.3630898 +1.8499234 2.6748192 +1.5855504 2.2956421 +1.5059466 2.18332 +1.5954052 2.3161292 +1.3584889 1.9748411 +0.9598363 1.3971972 +1.132764 1.6511434 +1.3086532 1.9100955 +1.121379 1.6389596 +1.3965672 2.0439177 +0.8475161 1.2420396 +1.0595295 1.5548439 +0.56260294 0.8267273 +0.56208336 0.82708055 +0.5615636 0.8274336 +0.5610436 0.82778627 +0.5605234 0.8281386 +0.5600029 0.8284906 +0.6608057 0.97894746 +0.5589614 0.8291937 +0.55844027 0.8295447 +0.5579189 0.82989544 +1.0784895 1.6064149 +1.1884799 1.7726518 +1.2602503 1.8822552 +1.444232 2.1599767 +1.1449158 1.7146535 +0.93885255 1.4079629 +0.57985914 0.87077844 +0.6784455 1.0202153 +0.91533315 1.3783133 +0.6116436 0.922273 +0.5521698 0.83373165 +0.9249087 1.398445 +0.8542078 1.2933118 +0.8117148 1.2306563 +1.3425186 2.038203 +1.1929635 1.813629 +1.0698413 1.6286777 +1.1045699 1.6838516 +1.408971 2.1508384 +1.9191043 2.9335928 +1.4116055 2.160779 +1.4397174 2.2068377 +1.2568011 1.9291064 +1.6670411 2.5623162 +1.7844911 2.7466156 +1.3533655 2.0859125 +1.2117977 1.8702898 +1.5030302 2.3229752 +1.3340229 2.0646129 +1.5404327 2.3873544 +1.5532178 2.4104917 +1.5877863 2.4675436 +1.0706129 1.6661154 +0.8978995 1.3992668 +1.1681696 1.8229687 +1.1384106 1.7789882 +1.2371991 1.9360429 +0.7475013 1.171356 +0.53741735 0.84331644 +0.63190275 0.99295914 +0.9984188 1.5710735 +1.2381856 1.9510684 +1.2533435 1.9776988 +1.0806892 1.7076331 +1.0618438 1.6801901 +1.4587235 2.3114004 +1.814246 2.8787448 +2.0820308 3.308257 +1.5977023 2.542222 +1.8972543 3.0230758 +2.108432 3.3642585 +2.5077436 4.007001 +2.4090025 3.854611 +2.2996457 3.6847801 +2.5861228 4.149612 +2.6015897 4.1802793 +2.6392276 4.246702 +2.3598466 3.8024857 +2.5453413 4.107136 +2.631218 4.2516694 +2.628546 4.2533216 +2.5397353 4.115394 +2.6231992 4.2566214 +2.1290119 3.459577 +2.113366 3.4389918 +2.249323 3.6653898 +2.2720459 3.7076418 +2.6098137 4.2648416 +2.6071334 4.2664804 +2.6044521 4.268118 +2.1345196 3.5029507 +1.7511722 2.8779087 +1.8777752 3.0903413 +1.8436484 3.0384777 +2.0886722 3.4471781 +1.7663091 2.9192822 +1.92031 3.1783154 +2.1570683 3.5752485 +2.4582233 4.080194 +2.5775836 4.2843976 +2.537957 4.224538 +2.5721977 4.2876334 +2.569503 4.2892485 +2.5668077 4.290862 +2.1769211 3.6442952 +2.1948745 3.6795998 +1.7846085 2.996086 +1.836931 3.0883393 +1.9343029 3.2567015 +2.015202 3.3977683 +2.4174137 4.081768 +2.545207 4.30371 +2.5425024 4.3053083 +2.095033 3.5526888 +1.8489013 3.139814 +1.6734437 2.845939 +1.5696487 2.673263 +1.798896 3.0681067 +1.3211436 2.2565246 +0.9709517 1.660786 +1.1959795 2.048643 +1.1241429 1.928373 +1.3611047 2.3382366 +1.4874257 2.5589395 +1.0345968 1.7824779 +1.335812 2.3047674 +1.0699723 1.8487726 +0.9260284 1.6023778 +0.9211401 1.5962334 +0.71583515 1.2422651 +0.4987298 0.8667575 +0.4981851 0.8670707 +0.6847103 1.1934456 +0.4970951 0.86769605 +0.68099815 1.1904384 +1.1281816 1.9750284 +0.70984584 1.2444923 +1.114684 1.9571053 +1.4455817 2.541791 +1.5956029 2.8096824 +1.2257986 2.1616592 +1.426978 2.520122 +1.8473455 3.2673006 +1.5729707 2.7861133 +1.3881208 2.4623115 +1.0628916 1.8881776 +1.1981425 2.1315765 +1.2217771 2.176825 +1.0613539 1.8937881 +1.505257 2.6898115 +1.4642884 2.620465 +1.0690261 1.9159366 +1.1900407 2.1359751 +1.6037576 2.8828044 +2.0534906 3.6966789 +1.7686024 3.1885428 +1.8690721 3.374673 +1.9271841 3.48476 +2.0203884 3.6587198 +2.275921 4.12759 +2.411521 4.380019 +2.3470778 4.2693186 +2.406015 4.383046 +2.2531686 4.1107264 +1.8364779 3.3555076 +2.11156 3.863885 +1.9274555 3.5322692 +1.5607336 2.864491 +1.4630494 2.6892266 +1.5621337 2.875656 +1.8221778 3.3593888 +1.9168087 3.5391557 +1.4863888 2.74856 +1.2328721 2.2831962 +1.0760967 1.9958572 +1.4385507 2.6721256 +1.3606659 2.5312629 +1.3040065 2.4295175 +1.2671722 2.364455 +1.5016658 2.8062375 +1.3915492 2.6043894 +1.6974072 3.1816337 +1.9382166 3.6385117 +1.7121546 3.21901 +1.9592468 3.6891553 +2.2799213 4.299487 +2.339649 4.418828 +2.2877488 4.3273783 +2.3340943 4.421765 +1.9982151 3.7912352 +2.328536 4.4246945 +2.2995079 4.376205 +2.322974 4.427617 +2.3201914 4.4290757 +2.317408 4.4305325 +1.9425725 3.7195923 +1.5730274 3.0166137 +1.8950708 3.6397767 +2.2991977 4.422747 +2.238978 4.313528 +2.223051 4.2894335 +2.2978992 4.4406824 +2.1046455 4.073488 +2.2923172 4.4435663 +2.190735 4.2532105 +2.2867315 4.4464436 +2.1529243 4.192737 +2.2253015 4.340398 +2.278346 4.450746 +2.2755492 4.4521766 +2.0743437 4.0648127 +2.2249312 4.3666735 +2.2671528 4.456458 +2.2643523 4.4578815 +1.8713195 3.6898491 +1.8157396 3.5858407 +1.9315505 3.8205059 +1.898079 3.7601666 +1.6175588 3.2094564 +1.8738364 3.7237659 +2.0226388 4.0257697 +1.8315876 3.6512268 +1.7482415 3.4905488 +1.800997 3.6015306 +1.7574941 3.520063 +2.0859632 4.1845264 +1.8142216 3.6451364 +1.6859248 3.3927042 +1.2622188 2.5440612 +1.4551362 2.9375293 +1.7082968 3.4540472 +2.0612462 4.1742826 +2.2109737 4.4845953 +2.2081556 4.4859834 +2.106255 4.2857614 +2.2025166 4.4887547 +2.1688757 4.427226 +2.1968741 4.491519 +2.1940517 4.4928985 +2.1912282 4.494276 +1.810199 3.7187033 +1.5312724 3.1507316 +1.1418866 2.353295 +1.3507661 2.7882302 +1.5495882 3.2037647 +1.4844304 3.0739772 +1.8635929 3.865352 +1.8455952 3.8341784 +1.7238319 3.5869837 +1.7374661 3.6211798 +1.4187008 2.9615877 +1.6250994 3.3979297 +2.048328 4.2897835 +2.1516101 4.513377 +2.148774 4.514728 +2.145937 4.5160775 +2.1359038 4.5022583 +2.1402602 4.5187707 +2.111058 4.4643645 +2.13458 4.5214562 +1.8367294 3.8968914 +1.5066378 3.2017684 +1.2698334 2.7029405 +1.5487319 3.3019872 +1.6157986 3.450615 +1.6466227 3.5222018 +1.624773 3.4811637 +1.4395885 3.08946 +1.5604255 3.3542879 +1.2147514 2.615523 +1.5433445 3.3285012 +1.5606664 3.3714085 +1.3486943 2.9183068 +1.4748279 3.1965075 +1.37836 2.9923663 +1.1496289 2.4999323 +1.5108222 3.2908127 +1.6418619 3.5821722 +1.4501797 3.1692207 +1.669875 3.6554112 +1.4113809 3.0947022 +1.4212743 3.121589 +1.0887289 2.3951986 +1.3648746 3.007733 +1.4813018 3.269758 +1.1637309 2.5730662 +0.8514114 1.8856672 +0.5797278 1.2861087 +0.41036874 0.91191965 +0.68561757 1.5261382 +0.59377056 1.3239176 +0.6809952 1.5209593 +1.0709338 2.3958974 +0.9753917 2.1858354 +1.0636187 2.3875806 +0.8386036 1.8856599 +1.122433 2.5281475 +1.1112132 2.5071225 +1.4667547 3.3149173 +1.3974665 3.163694 +1.7238386 3.9092042 +2.0119832 4.5704155 +2.0116565 4.577471 +2.00878 4.578734 +1.7383454 3.9690924 +1.9990659 4.5722003 +1.9959599 4.5729218 +1.997266 4.583768 +1.7933292 4.1228004 +1.410726 3.2487884 +1.0358337 2.38955 +0.9841058 2.2741344 +1.0832714 2.507614 +1.3440595 3.1166775 +1.011436 2.3494308 +0.8561455 1.9921573 +0.9608926 2.239771 +1.1954645 2.7913804 +0.98968506 2.3149083 +1.2050307 2.823516 +0.83966434 1.9708527 +1.14952 2.7028515 +0.7850089 1.8490062 +0.47947034 1.1313176 +0.38963836 0.92096794 +0.38905963 0.92121255 +0.67765784 1.6073704 +0.9579811 2.2762775 +1.1724988 2.7909005 +0.79319423 1.8913685 +0.7326963 1.750194 +0.50489277 1.2081693 +0.3850042 0.9229148 +0.57634866 1.384044 +0.75051266 1.8054774 +0.9557466 2.303282 +0.66042405 1.5944048 +0.7698978 1.862006 +1.1331275 2.7453644 +1.3481774 3.2722204 +1.0036514 2.4403584 +1.3473605 3.2819407 +1.4874957 3.629776 +1.3858917 3.387908 +1.3016757 3.18775 +1.3368253 3.2797167 +1.4348873 3.5266364 +1.459223 3.5929134 +1.1986357 2.9566197 +1.5046065 3.7180517 +1.5529859 3.8445477 +1.1866267 2.9429176 +1.5219402 3.7813675 +1.4165325 3.5258691 +1.3168726 3.28377 +1.0608432 2.6501508 +0.95651966 2.393893 +1.1359453 2.848136 +1.377366 3.4597616 +1.1170069 2.8109121 +0.99857277 2.5174844 +1.1082232 2.7990522 +1.3792164 3.489908 +1.249748 3.168129 +1.5964067 4.054374 +1.5730245 4.002366 +1.5682325 3.9975498 +1.8150954 4.6353874 +1.5108445 3.865544 +1.7435392 4.469181 +1.5560658 3.9960475 +1.8113768 4.6603556 +1.8084483 4.661493 +1.805519 4.662628 +1.7488381 4.524694 +1.7996584 4.664893 +1.5149716 3.9343166 +1.1787539 3.0669184 +1.3876173 3.617131 +1.2127266 3.1671891 +1.1936214 3.1231682 +1.032508 2.7067058 +1.2199408 3.2041025 +0.9386081 2.4698644 +1.0097362 2.6620677 +0.6621241 1.7489364 +0.7229326 1.9131856 +0.55258894 1.4651678 +0.35229906 0.93588746 +0.35171095 0.93610865 +0.3511227 0.9363295 +0.5084334 1.3584212 +0.79984856 2.1411147 +0.7510721 2.014405 +0.63520646 1.7069244 +0.49760187 1.3397285 +0.83171386 2.2435997 +0.5148309 1.3914702 +0.7110542 1.9255337 +0.5572266 1.5118912 +0.73105276 1.9873713 +0.574274 1.5641999 +0.78201336 2.1341815 +1.0872693 2.9730322 +0.8581847 2.3512015 +1.0669087 2.9287624 +0.7876515 2.1664073 +0.653624 1.8012931 +0.81329286 2.245717 +0.6601287 1.8263736 +0.83785355 2.3226478 +0.83536804 2.320324 +0.8977491 2.4985187 +1.0002327 2.7892458 +1.2831054 3.5851514 +1.3124678 3.6744692 +1.0960968 3.0748003 +1.040357 2.9242458 +0.8629761 2.4304962 +0.969333 2.735491 +0.87786096 2.4823067 +0.8532788 2.417628 +1.034688 2.9375012 +1.2346413 3.512214 +1.2952347 3.6919982 +1.0133305 2.8942652 +1.0222969 2.925768 +0.91025496 2.610375 +1.0901128 3.13249 +1.4004283 4.0323563 +1.6374089 4.7242875 +1.5734134 4.5488815 +1.3950727 4.0415 +1.2234081 3.5514243 +1.0318234 3.001397 +0.97871864 2.852753 +0.7689037 2.245784 +1.0818149 3.166213 +1.343743 3.9409049 +1.031877 3.0325067 +1.1964864 3.523523 +1.4961708 4.4151707 +1.3752903 4.0668592 +1.2212249 3.6187649 +1.3148694 3.90435 +1.4899828 4.433537 +1.5898331 4.7405095 +1.4303969 4.274014 +1.5838748 4.7425036 +1.5808947 4.743498 +1.3077997 3.9323075 +1.5749326 4.7454805 +1.3436986 4.0572677 +1.3546095 4.09884 +1.2326814 3.737785 +1.0963548 3.3314464 +0.9289621 2.8287818 +1.2156078 3.7095075 +0.93747824 2.8668628 +1.1501883 3.524838 +1.1577075 3.5554545 +0.95881224 2.9509206 +0.76087296 2.3467424 +0.73863417 2.28304 +0.78064215 2.418069 +0.5927187 1.8399223 +0.7821331 2.433141 +0.8249242 2.5718052 +0.97555465 3.0479982 +0.8105759 2.5380344 +1.0545249 3.309048 +1.1230502 3.5317461 +0.8905643 2.8067346 +0.79982156 2.5262516 +1.0836942 3.4303572 +1.3761979 4.3658047 +1.1192217 3.558378 +0.92021954 2.9321194 +0.72678274 2.3208697 +0.7184326 2.2992697 +0.4830799 1.5494668 +0.5697992 1.8316664 +0.6622063 2.1334414 +0.70368207 2.2721064 +0.9435739 3.0534763 +1.0262264 3.3283584 +1.0422518 3.3878925 +1.0984248 3.5784845 +0.9698094 3.166568 +1.1627301 3.8050191 +1.2122831 3.9761178 +1.4042253 4.6160564 +1.4521749 4.7844734 +1.4491684 4.785385 +1.2548078 4.1529803 +1.1977569 3.9731762 +0.9120226 3.032237 +0.90715 3.0229216 +0.753527 2.5167422 +0.72782165 2.436458 +0.58419687 1.9601493 +0.4762083 1.6014918 +0.28441694 0.95870066 +0.30200756 1.0203451 +0.53164333 1.800335 +0.69296104 2.3520544 +0.93433267 3.1786861 +1.0678263 3.6412985 +1.0679452 3.6501958 +1.1731635 4.019197 +1.2221146 4.196702 +1.2302324 4.2344875 +1.3919384 4.802344 +1.3889208 4.8032174 +1.3859025 4.8040895 +1.3828838 4.8049593 +1.3798645 4.805827 +1.2676355 4.425434 +1.3738241 4.807557 +1.2650062 4.4373116 +1.1714375 4.118911 +1.03592 3.6511328 +1.0521207 3.7171252 +1.2756019 4.5175104 +1.3556904 4.812702 +1.3526661 4.8135533 +1.3496414 4.814402 +1.3011693 4.6527395 +1.3435905 4.8160944 +1.3405641 4.8169374 +1.3375373 4.817779 +1.33451 4.8186183 +1.331482 4.819456 +1.3284537 4.8202915 +1.3254247 4.8211255 +1.3223952 4.821957 +1.3193653 4.8227873 +1.1058335 4.052248 +1.2181642 4.474945 +1.0290502 3.7896254 +0.98488224 3.6360025 +1.1608154 4.29621 +1.2188311 4.522209 +0.972968 3.6190357 +1.0313317 3.84576 +0.80434865 3.0069075 +0.71235 2.669706 +0.6429403 2.4156685 +0.6956962 2.6205075 +0.70437765 2.6599462 +0.64886576 2.4565527 +0.6236026 2.3669307 +0.58848196 2.239338 +0.75743383 2.8896315 +0.82760525 3.1654453 +0.6512567 2.4973538 +0.5604388 2.1546407 +0.4861638 1.8739182 +0.69702685 2.6936512 +0.5544416 2.1481967 +0.70053476 2.7213032 +0.4824273 1.8789303 +0.51680094 2.01807 +0.6107063 2.3910139 +0.7334488 2.879114 +0.97287726 3.8290327 +0.77186704 3.0459177 +1.0072263 3.9851992 +0.86774886 3.4424446 +0.94512594 3.7593715 +1.0069366 4.015901 +0.8070418 3.227268 +0.8385283 3.3621533 +0.9901143 3.9806013 +1.0191853 4.108495 +0.91773176 3.7094927 +0.8928095 3.618507 +0.7191213 2.9224522 +0.7599499 3.0967617 +0.9932894 4.058625 +1.1054741 4.52934 +1.182495 4.8581586 +1.088631 4.4847894 +1.1641384 4.809034 +0.9976479 4.1326175 +0.84102064 3.4934318 +0.7422419 3.09166 +0.8014513 3.3475497 +0.6462743 2.706907 +0.7086089 2.9762723 +0.608423 2.5626204 +0.42460027 1.7933892 +0.32602152 1.3808904 +0.4465167 1.8965853 +0.65471935 2.7887828 +0.5207663 2.2244895 +0.4597184 1.9692932 +0.3044873 1.3080425 +0.23996621 1.0338086 +0.34719437 1.5000412 +0.27207407 1.1788577 +0.22427076 0.9745269 +0.4008407 1.7467997 +0.2593498 1.1334715 +0.22243342 0.97494787 +0.2218208 0.97508746 +0.2212081 0.97522664 +0.2205953 0.9753654 +0.21998242 0.97550386 +0.34876886 1.5511436 +0.32030332 1.4287374 +0.43632105 1.9519881 +0.53749776 2.4117436 +0.40679902 1.8307174 +0.34201622 1.5437554 +0.21568981 0.97646195 +0.21507624 0.97659725 +0.24277273 1.1056658 +0.25884023 1.1823885 +0.3695258 1.6930946 +0.37624973 1.7291166 +0.2120071 0.9772681 +0.21139303 0.97740114 +0.3051501 1.4152013 +0.47706652 2.2192683 +0.35407567 1.6521782 +0.28272536 1.3233027 +0.3079063 1.4456074 +0.24003597 1.1304445 +0.36215255 1.7108402 +0.39515972 1.8725754 +0.5797689 2.755968 +0.65139765 3.1061463 +0.65783197 3.1466691 +0.69251186 3.322979 +0.86140114 4.146427 +0.8705927 4.2039332 +0.70426166 3.4115443 +0.78060395 3.7933936 +0.6872982 3.3506308 +0.6751955 3.3021686 +0.78060967 3.8299754 +0.93112504 4.5831766 +0.9923925 4.900526 +0.98931324 4.901149 +0.8502913 4.2261105 +0.98315346 4.902388 +0.98007303 4.9030046 +0.9769922 4.90362 +0.97033817 4.8862414 +0.9708293 4.9048433 +0.91519207 4.639053 +0.87108564 4.430137 +0.81913865 4.179818 +0.7961998 4.076338 +0.8396877 4.3133874 +0.95233166 4.9084687 +0.8011742 4.1433005 +0.6823798 3.5408854 +0.5488951 2.857893 +0.5344948 2.7923868 +0.40227947 2.1088228 +0.29200497 1.5359863 +0.29323593 1.547761 +0.33671838 1.7833966 +0.35665706 1.8955319 +0.28748316 1.5331925 +0.3391257 1.8149049 +0.25597215 1.374674 +0.18244146 0.9832167 +0.18182364 0.98333114 +0.18120576 0.9834452 +0.18058781 0.9835589 +0.27994227 1.5300981 +0.17935169 0.98378503 +0.33952245 1.8690131 +0.23487145 1.2975627 +0.1916157 1.0624018 +0.20783576 1.1564924 +0.32917696 1.8383237 +0.4235365 2.3738806 +0.5237041 2.946014 +0.66891414 3.7766387 +0.66092 3.7452059 +0.5828266 3.3148458 +0.5984842 3.4164844 +0.6216494 3.5618904 +0.6271431 3.6067464 +0.6525241 3.766736 +0.7143864 4.139302 +0.8472636 4.9276915 +0.84416723 4.928223 +0.8410706 4.9287524 +0.8379736 4.92928 +0.83487624 4.9298053 +0.75040716 4.4480033 +0.7618563 4.53323 +0.8255823 4.9313703 +0.82248366 4.931888 +0.73374027 4.416855 +0.6295044 3.8041759 +0.5661563 3.434753 +0.57028776 3.4734163 +0.62557894 3.8252063 +0.6045092 3.711009 +0.6112744 3.7674558 +0.63183326 3.9097028 +0.6514308 4.0471144 +0.79147965 4.936959 +0.7883775 4.9374547 +0.6793255 4.2717195 +0.7678791 4.848198 +0.6639372 4.209049 +0.7062833 4.4958553 +0.6864128 4.387348 +0.7697582 4.940392 +0.7384734 4.7592587 +0.6474971 4.1903167 +0.733145 4.7644258 +0.6937771 4.5275116 +0.7542337 4.9427857 +0.75112796 4.943259 +0.74802184 4.94373 +0.7449155 4.9441986 +0.618129 4.120255 +0.5060476 3.3876617 +0.59456927 3.9974444 +0.732487 4.9460554 +0.7293792 4.9465146 +0.72627103 4.946972 +0.62679476 4.2881384 +0.6458497 4.4379835 +0.683568 4.7179656 +0.5394047 3.7395105 +0.6503142 4.5285435 +0.70761627 4.9496746 +0.5807565 4.080608 +0.5767167 4.0705557 +0.46318716 3.284102 +0.5364607 3.8209872 +0.5457341 3.9048557 +0.41879255 3.0103562 +0.484247 3.4969528 +0.5403065 3.9199076 +0.53161395 3.8748405 +0.46958718 3.4387822 +0.51561856 3.793649 +0.57560444 4.255025 +0.6447322 4.7886834 +0.6529048 4.872534 +0.66093594 4.956124 +0.5663193 4.2670875 +0.6547074 4.9569507 +0.6462981 4.917079 +0.6484778 4.9577694 +0.5817924 4.4697804 +0.64224714 4.9585805 +0.6391314 4.958983 +0.5456247 4.254554 +0.46311396 3.6292415 +0.4156848 3.2739391 +0.51768243 4.097878 +0.55356556 4.4041753 +0.60063493 4.803047 +0.58415884 4.695252 +0.6141969 4.962133 +0.611079 4.9625177 +0.60068804 4.9035316 +0.5182163 4.2524357 +0.5008638 4.1316595 +0.5651671 4.686749 +0.58985007 4.9174294 +0.5146395 4.313335 +0.5264615 4.4361105 +0.579533 4.9096637 +0.583007 4.9658937 +0.57988673 4.9662595 +0.55954885 4.8183613 +0.5736455 4.9669843 +0.5705245 4.9673433 +0.5674033 4.967701 +0.56428194 4.9680567 +0.5525303 4.8920016 +0.51533175 4.5885024 +0.40640828 3.6392655 +0.41169962 3.707768 +0.42280492 3.829719 +0.4665034 4.250016 +0.4926091 4.513997 +0.5393027 4.97083 +0.53617936 4.971168 +0.51858276 4.8365226 +0.45216507 4.2422266 +0.52680796 4.97217 +0.52134544 4.950297 +0.5205594 4.972828 +0.5174347 4.973154 +0.48729506 4.7122393 +0.5111849 4.9738 +0.4213666 4.125359 +0.37304282 3.67509 +0.40776134 4.0424037 +0.4603602 4.5927477 +0.4955567 4.975382 +0.4924305 4.9756923 +0.4346115 4.4198017 +0.48617747 4.976307 +0.48305067 4.9766116 +0.47992367 4.976914 +0.4767965 4.977215 +0.45789123 4.8117123 +0.47054157 4.97781 +0.45913574 4.8899403 +0.4642859 4.9783974 +0.39390483 4.2526207 +0.3560773 3.870713 +0.41652915 4.5592523 +0.41325542 4.555005 +0.35177606 3.9046266 +0.4204179 4.6995735 +0.35591215 4.0068727 +0.31881803 3.6150374 +0.23752233 2.7127113 +0.27240938 3.1338112 +0.31128398 3.6072962 +0.30856758 3.60224 +0.256409 3.0156178 +0.30724016 3.6405365 +0.26364255 3.1475408 +0.2302679 2.7700155 +0.23021719 2.7906427 +0.2406707 2.9399004 +0.2908637 3.5806959 +0.23043267 2.8590152 +0.19279353 2.410936 +0.14597534 1.840011 +0.19326623 2.4556801 +0.21356194 2.7355351 +0.19834553 2.5613658 +0.162287 2.1129646 +0.13163133 1.7280493 +0.16159667 2.1391795 +0.09043528 1.2072597 +0.12855126 1.7306836 +0.11185575 1.5188304 +0.11469841 1.5709037 +0.13058989 1.8041601 +0.09408646 1.3112901 +0.10655664 1.4982753 +0.12301127 1.745136 +0.13965662 1.9991883 +0.16040248 2.3171077 +0.20354104 2.9673302 +0.2012328 2.9609277 +0.14879744 2.2099211 +0.12626629 1.8930359 +0.11722986 1.7743461 +0.12324644 1.8833994 +0.13993555 2.1592557 +0.0791708 1.233644 +0.108307436 1.7044077 +0.08043041 1.2784048 +0.062163427 0.998066 +0.069552526 1.128126 +0.081186384 1.3304342 +0.06028201 0.9981814 +0.05965482 0.9982191 +0.05902761 0.9982563 +0.07724332 1.3203936 +0.09401728 1.6246353 +0.057145838 0.9983658 +0.071223296 1.2581617 +0.06888751 1.2306019 +0.06451778 1.1656656 +0.11029713 2.0157292 +0.12721363 2.3519728 +0.08314495 1.5553348 +0.09537794 1.805449 +0.14028658 2.6875973 +0.09340937 1.8113909 +0.05718451 1.1226343 +0.050244316 0.998737 +0.054818835 1.1034838 +0.04898923 0.9987993 +0.06901514 1.4253935 +0.06562835 1.3733075 +0.047106452 0.99888986 +0.066092744 1.4204602 +0.08396617 1.8293505 +0.09084883 2.00683 +0.11997825 2.6876707 +0.08810363 2.0018694 +0.09489986 2.1875823 +0.08564193 2.0032413 +0.063971505 1.5187113 +0.04145714 0.99914026 +0.06975337 1.7069879 +0.07655389 1.9027128 +0.1100607 2.778977 +0.13736467 3.5243883 +0.1203153 3.1376061 +0.14062811 3.7285094 +0.16156213 4.356209 +0.1800908 4.939595 +0.16213256 4.5251164 +0.13550204 3.8494499 +0.10038565 2.9037294 +0.13163029 3.8780687 +0.10430447 3.1310253 +0.097730435 2.9901435 +0.12097541 3.7739697 +0.13828824 4.400403 +0.110373005 3.5838487 +0.10921794 3.6202717 +0.1002888 3.3950677 +0.09399312 3.251153 +0.09985701 3.530778 +0.075989455 2.7479582 +0.09328635 3.4519467 +0.10461179 3.9632425 +0.08903525 3.4554305 +0.0663768 2.6404927 +0.07736586 3.1565883 +0.06484384 2.7153308 +0.07115218 3.060049 +0.07247153 3.2033985 +0.07294136 3.3163161 +0.053828225 2.5193307 +0.03771548 1.8187104 +0.020104839 0.9997979 +0.02827934 1.4516864 +0.024162782 1.2817236 +0.01822023 0.999834 +0.019618796 1.115038 +0.016963787 0.9998561 +0.030819234 1.8863834 +0.0316215 2.0129218 +0.02115695 1.4029075 +0.024611935 1.7029732 +0.013822568 0.99990445 +0.018978415 1.4382539 +0.018469512 1.4696798 +0.011937768 0.9999287 +0.011309492 0.99993604 +0.010681212 0.99994296 +0.01761934 1.7525691 +0.013938056 1.47883 +0.008796346 0.9999613 +0.00816805 0.9999666 +0.007539751 0.99997157 +0.0069114487 0.9999761 +0.006283144 0.9999803 +0.0056548365 0.999984 +0.0062720166 1.2477676 +0.0067817112 1.5419085 +0.0065855714 1.7468688 +0.0051465444 1.6381905 +0.0042002285 1.6712143 +0.00428081 2.2710376 +0.0029636493 2.358396 +8.658769E-4 1.3780857 +1.2682258E-16 2.0711699 +-9.595922E-4 1.5272381 +-0.0020427802 1.625592 +-0.0018899165 1.0026307 +-0.0025132715 0.99999684 +-0.00525245 1.6719011 +-0.006739233 1.7876287 +-0.011316271 2.5728981 +-0.017828446 3.5468266 +-0.023311198 4.122281 +-0.026326848 4.189993 +-0.02359119 3.4132679 +-0.029267523 3.8816524 +-0.03777699 4.6248164 +-0.04398173 4.9998064 +-0.047123194 4.999778 +-0.050264634 4.9997473 +-0.047786567 4.473635 +-0.056085847 4.958866 +-0.05410502 4.531933 +-0.059153188 4.707013 +-0.056681238 4.295512 +-0.05776255 4.1784587 +-0.06036576 4.176887 +-0.06730425 4.4629135 +-0.062165204 3.9572344 +-0.07653357 4.6844664 +-0.068018116 4.00903 +-0.07491733 4.257941 +-0.07297372 4.004429 +-0.06960046 3.691982 +-0.06351027 3.260224 +-0.062974416 3.1316686 +-0.076826476 3.7047153 +-0.08316763 3.8925076 +-0.0661278 3.006534 +-0.060234357 2.6624892 +-0.08514169 3.6616971 +-0.07549321 3.1612723 +-0.074726485 3.0488997 +-0.08585094 3.4151812 +-0.07031451 2.7288845 +-0.08704553 3.2977405 +-0.09167031 3.3921473 +-0.11522974 4.1669793 +-0.10831159 3.829718 +-0.13013668 4.5013323 +-0.14763339 4.99782 +-0.13409325 4.4448195 +-0.15383305 4.9950113 +-0.1296202 4.124582 +-0.1601938 4.997433 +-0.14841746 4.540955 +-0.14876178 4.465551 +-0.14893676 4.387949 +-0.16397925 4.7432213 +-0.13850842 3.9348576 +-0.15541244 4.3375583 +-0.16056876 4.4041376 +-0.18224369 4.913847 +-0.18350413 4.865292 +-0.19159023 4.996328 +-0.15856345 4.0682883 +-0.14310266 3.6132698 +-0.16021624 3.9821033 +-0.17504878 4.283752 +-0.20728569 4.9957013 +-0.21042454 4.99557 +-0.21356331 4.995437 +-0.182516 4.207264 +-0.17414309 3.9568372 +-0.17754006 3.9771314 +-0.1903266 4.204271 +-0.22925586 4.9947414 +-0.2323941 4.9945965 +-0.19426349 4.119347 +-0.16434057 3.438912 +-0.17205015 3.553411 +-0.12545076 2.5577078 +-0.10891655 2.1924517 +-0.13936333 2.7702098 +-0.19068655 3.7435186 +-0.19780938 3.8359122 +-0.16699748 3.1993225 +-0.14521661 2.7488663 +-0.16258033 3.0412772 +-0.12283313 2.270985 +-0.09036955 1.651544 +-0.11886448 2.1475666 +-0.089799404 1.6041707 +-0.12012855 2.1220744 +-0.12096765 2.1133642 +-0.0820887 1.4185075 +-0.058400374 0.9982932 +-0.05902761 0.9982563 +-0.071522616 1.1968058 +-0.06028201 0.9981814 +-0.060909174 0.9981433 +-0.065704465 1.0657113 +-0.062163427 0.998066 +-0.06279052 0.9980267 +-0.06341758 0.9979871 +-0.064044625 0.99794704 +-0.10696937 1.6505756 +-0.10844456 1.6572033 +-0.12318781 1.8645234 +-0.12022781 1.8025047 +-0.06717945 0.9977409 +-0.06780633 0.9976985 +-0.068433195 0.9976557 +-0.117138304 1.6921314 +-0.1234918 1.7677886 +-0.083582856 1.185773 +-0.07094036 0.9974806 +-0.07156708 0.9974358 +-0.07219377 0.9973906 +-0.07414599 1.0154997 +-0.12571394 1.7070034 +-0.11909864 1.6034231 +-0.07470026 0.99720603 +-0.07532681 0.9971589 +-0.0819535 1.0758815 +-0.07657981 0.99706346 +-0.07720627 0.9970151 +-0.0778327 0.9969664 +-0.14966442 1.9016666 +-0.15616927 1.9685048 +-0.21147479 2.6445503 +-0.1978884 2.455233 +-0.15594678 1.9197927 +-0.12554578 1.5335981 +-0.18914269 2.2927468 +-0.10861949 1.3066418 +-0.10155907 1.2124801 +-0.17097011 2.0258515 +-0.19473949 2.2903247 +-0.18450516 2.1539266 +-0.21184385 2.45494 +-0.17927736 2.0624156 +-0.15709417 1.7941519 +-0.16175465 1.8341155 +-0.2226217 2.5062835 +-0.30560747 3.4161835 +-0.2326091 2.581903 +-0.15303795 1.6868227 +-0.12386073 1.3557569 +-0.0916059 0.99579537 +-0.16822198 1.8161348 +-0.20558691 2.2044463 +-0.19293338 2.0548012 +-0.22415292 2.3712902 +-0.20367344 2.1402857 +-0.12623909 1.317793 +-0.095984735 0.9953828 +-0.14978783 1.5431834 +-0.12766668 1.3067422 +-0.20415497 2.0761635 +-0.23131612 2.3373 +-0.32185662 3.2314355 +-0.40128893 4.0034275 +-0.33936033 3.3642998 +-0.38354456 3.7785497 +-0.43825993 4.2907515 +-0.40515745 3.9421597 +-0.35236385 3.407428 +-0.3996916 3.8415048 +-0.43146613 4.121733 +-0.43004042 4.0833344 +-0.4416172 4.1681137 +-0.38268107 3.5903254 +-0.404835 3.7756627 +-0.45220348 4.192589 +-0.39861244 3.6740677 +-0.37541464 3.4400916 +-0.45964745 4.187556 +-0.39475384 3.5756357 +-0.3340389 3.0083554 +-0.29178974 2.6128905 +-0.37193877 3.3117344 +-0.41025707 3.6323407 +-0.5196796 4.5753684 +-0.4787125 4.1911993 +-0.55399877 4.82346 +-0.45682472 3.9554763 +-0.5576221 4.8017697 +-0.57988673 4.9662595 +-0.52399015 4.463205 +-0.44709578 3.7876873 +-0.53189194 4.4818687 +-0.5461135 4.5771275 +-0.44245917 3.6886692 +-0.3465259 2.873628 +-0.35118645 2.896961 +-0.46896708 3.848301 +-0.46833727 3.8231268 +-0.43962467 3.5701525 +-0.51831746 4.187517 +-0.49097517 3.9462764 +-0.59443337 4.7534556 +-0.6235492 4.960966 +-0.6266662 4.9605737 +-0.62978286 4.960179 +-0.5217305 4.088596 +-0.41112593 3.2057884 +-0.39918995 3.097291 +-0.5179924 3.9992497 +-0.56156474 4.314376 +-0.6373038 4.8723416 +-0.5945804 4.5236073 +-0.5515301 4.1757703 +-0.6314741 4.7580137 +-0.55704665 4.177095 +-0.5010291 3.7391074 +-0.6192805 4.5996437 +-0.5813802 4.297721 +-0.5014848 3.68966 +-0.42058042 3.079906 +-0.44637784 3.2535698 +-0.52420825 3.8031151 +-0.6403899 4.624527 +-0.58946043 4.237148 +-0.6920629 4.9518733 +-0.69517416 4.9514375 +-0.5889504 4.1757917 +-0.6509018 4.594166 +-0.6414811 4.507281 +-0.70761627 4.9496746 +-0.58649963 4.0841627 +-0.5904227 4.093201 +-0.53204864 3.6721838 +-0.39839107 2.737561 +-0.31644472 2.1649172 +-0.38286743 2.6078892 +-0.4488899 3.0442884 +-0.5269982 3.55851 +-0.48592424 3.2669954 +-0.6083745 4.0726733 +-0.7418088 4.944666 +-0.6412046 4.255842 +-0.5461904 3.609811 +-0.6615499 4.3537354 +-0.6276918 4.1135073 +-0.70601165 4.607353 +-0.7604444 4.941834 +-0.7467822 4.8328457 +-0.7666539 4.9408746 +-0.69130474 4.436869 +-0.7728622 4.939907 +-0.63080525 4.015399 +-0.730657 4.632021 +-0.67631835 4.270106 +-0.73847777 4.643679 +-0.787703 4.9332304 +-0.79147965 4.936959 +-0.7945815 4.9364605 +-0.797683 4.9359603 +-0.7810431 4.813788 +-0.73870814 4.5348406 +-0.6845806 4.1859818 +-0.70323426 4.283145 +-0.8131858 4.9334297 +-0.81628543 4.9329176 +-0.79358983 4.777128 +-0.822028 4.9291553 +-0.7576309 4.5254827 +-0.82868063 4.9308505 +-0.8317786 4.930329 +-0.83487624 4.9298053 +-0.7031722 4.136327 +-0.8410706 4.9287524 +-0.68616164 4.005791 +-0.7246348 4.214482 +-0.60428214 3.5013351 +-0.7191965 4.151606 +-0.61253446 3.5227313 +-0.7542011 4.3213778 +-0.6119963 3.4936187 +-0.6961373 3.9593046 +-0.5455695 3.091554 +-0.6324265 3.5706322 +-0.52019984 2.9263012 +-0.36435568 2.042178 +-0.50979954 2.8470297 +-0.528542 2.9410472 +-0.47550872 2.6364295 +-0.3953221 2.1839828 +-0.27572456 1.5178165 +-0.22467306 1.2323831 +-0.21777676 1.1903161 +-0.18058781 0.9835589 +-0.18120576 0.9834452 +-0.25203246 1.3630316 +-0.20236288 1.0905776 +-0.28399765 1.5251822 +-0.26649383 1.4261997 +-0.38851014 2.0719852 +-0.47239566 2.51065 +-0.6155251 3.2600696 +-0.7674559 4.0507936 +-0.86722356 4.561715 +-0.9369066 4.911436 +-0.91939145 4.8032203 +-0.94307774 4.910255 +-0.9383641 4.869194 +-0.94924736 4.909066 +-0.95233166 4.9084687 +-0.95541555 4.9078693 +-0.9584991 4.907268 +-0.83827937 4.2774873 +-0.8196871 4.1687365 +-0.8678309 4.398982 +-0.9326608 4.712008 +-0.93852395 4.7260375 +-0.9769922 4.90362 +-0.98007303 4.9030046 +-0.9753944 4.8636985 +-0.9772777 4.8572574 +-0.98931324 4.901149 +-0.9923925 4.900526 +-0.9954714 4.899902 +-0.905276 4.441637 +-1.001628 4.898647 +-0.913101 4.4514365 +-0.8777249 4.265359 +-0.72147167 3.494912 +-0.57759464 2.789099 +-0.38499033 1.8531835 +-0.3923087 1.8824712 +-0.3419872 1.6358593 +-0.2052477 0.97871006 +-0.40948814 1.9465278 +-0.51949185 2.4617584 +-0.68323946 3.2276828 +-0.5858898 2.7592363 +-0.50323737 2.362679 +-0.444044 2.0783584 +-0.38210768 1.7829803 +-0.21016462 0.977666 +-0.21077888 0.97753376 +-0.39075494 1.8067025 +-0.38863042 1.7914311 +-0.22807479 1.0481547 +-0.22798528 1.0445838 +-0.21384884 0.9768668 +-0.21446258 0.9767322 +-0.21507624 0.97659725 +-0.34822303 1.5764608 +-0.21630329 0.9763262 +-0.2169167 0.9761901 +-0.4204684 1.8866348 +-0.41130206 1.8400595 +-0.5547889 2.474678 +-0.4055017 1.8034619 +-0.6080576 2.696409 +-0.7509461 3.3203194 +-0.85950994 3.789269 +-1.0228944 4.496474 +-1.025455 4.4946713 +-1.1152298 4.8740396 +-0.94884336 4.1349077 +-1.0365523 4.504145 +-1.1244152 4.8719287 +-1.1274761 4.8712215 +-1.1305366 4.870512 +-1.1335965 4.8698006 +-1.136656 4.8690877 +-0.9280559 3.964255 +-1.0237898 4.3608418 +-0.91761565 3.8975842 +-0.93855226 3.9753137 +-1.131452 4.778927 +-1.155004 4.864768 +-1.1580604 4.8640413 +-1.0756075 4.505161 +-0.96623814 4.035841 +-0.7621622 3.174634 +-0.9600278 3.987764 +-1.0704848 4.4343343 +-0.9164859 3.7859855 +-1.0767872 4.435997 +-0.96433586 3.9618745 +-1.0306426 4.2227407 +-0.9478515 3.8729637 +-1.0994425 4.4801784 +-1.0760516 4.372989 +-1.1977515 4.8544197 +-1.2008014 4.8536663 +-1.2038507 4.852911 +-1.2068998 4.8521533 +-1.2099482 4.851394 +-0.9799777 3.918819 +-0.80094564 3.1943607 +-0.63037884 2.5074205 +-0.64031416 2.540189 +-0.7357421 2.9110427 +-0.88094324 3.4763505 +-0.74114436 2.9169827 +-0.9545926 3.747202 +-0.80518574 3.1524322 +-0.7615133 2.9736538 +-0.94221073 3.6696687 +-1.0869509 4.2223787 +-1.1936002 4.624632 +-1.0600493 4.0965466 +-1.255617 4.8397756 +-1.2586577 4.8389854 +-1.2170036 4.6668057 +-1.1954079 4.572226 +-1.134609 4.3285656 +-1.1602403 4.4150376 +-1.2738537 4.8350077 +-1.2768914 4.834206 +-1.2799284 4.8334026 +-1.2829652 4.8325977 +-1.2860013 4.8317904 +-1.289037 4.8309817 +-1.1091379 4.146305 +-0.9241649 3.4461432 +-1.126688 4.19081 +-0.87999874 3.2650454 +-0.9135245 3.3809795 +-0.8709738 3.2154737 +-1.0820961 3.9849744 +-1.2522446 4.6001396 +-1.3163347 4.823615 +-1.3193653 4.8227873 +-1.3223952 4.821957 +-1.2933934 4.7046137 +-1.1649987 4.2271957 +-1.3266853 4.8020935 +-1.2894623 4.655961 +-1.0281836 3.7034938 +-1.2838705 4.613225 +-1.1958482 4.286513 +-1.3466163 4.815249 +-1.1049033 3.941379 +-0.9452122 3.363601 +-0.9941986 3.5294063 +-0.80418587 2.848003 +-0.6652374 2.350273 +-0.50468475 1.7787772 +-0.43710834 1.5369239 +-0.27590787 0.9678127 +-0.45920545 1.6069425 +-0.48263696 1.6849308 +-0.49472833 1.7230525 +-0.68794113 2.390316 +-0.49016666 1.6991127 +-0.49639174 1.7166405 +-0.5500707 1.8978058 +-0.46211964 1.5906262 +-0.27959442 0.9601182 +-0.28019762 0.95994234 +-0.35790598 1.2233089 +-0.46100223 1.5720223 +-0.66136134 2.2500126 +-0.7006224 2.3780587 +-0.816388 2.7645824 +-0.65144515 2.2009346 +-0.46156138 1.5558116 +-0.28501925 0.9585218 +-0.28562146 0.9583425 +-0.28622356 0.95816284 +-0.39885524 1.3321565 +-0.30676264 1.0222338 +-0.28802913 0.95762163 +-0.28863078 0.9574405 +-0.46061298 1.5244699 +-0.607242 2.00521 +-0.4477503 1.4752008 +-0.62890476 2.0673747 +-0.71772623 2.3540409 +-0.51518387 1.6859324 +-0.61026275 1.9925961 +-0.46071166 1.5009216 +-0.31099072 1.0108912 +-0.38977098 1.2641437 +-0.53820026 1.7416568 +-0.40912986 1.321032 +-0.44629312 1.4378304 +-0.3257501 1.0471505 +-0.2976415 0.9546777 +-0.29824126 0.95449054 +-0.36297908 1.1591183 +-0.29944047 0.954115 +-0.30003992 0.9539266 +-0.3006392 0.9537379 +-0.34074616 1.0786078 +-0.51964784 1.6413175 +-0.52789897 1.6637453 +-0.30303526 0.9529793 +-0.33678472 1.0568142 +-0.30423257 0.9525978 +-0.30483106 0.95240647 +-0.3054294 0.9522147 +-0.30602765 0.9520226 +-0.45808336 1.4219861 +-0.3711941 1.1497879 +-0.30782163 0.9514441 +-0.30841938 0.9512505 +-0.5472467 1.6842523 +-0.33794168 1.0378582 +-0.3102119 0.95066744 +-0.31080914 0.95047235 +-0.31140628 0.95027685 +-0.55660236 1.6949095 +-0.3126002 0.9498848 +-0.31319696 0.9496882 +-0.3137936 0.9494912 +-0.5099316 1.539727 +-0.80267435 2.418564 +-0.92185533 2.7718453 +-1.1122425 3.3372998 +-1.204485 3.6065192 +-0.91102576 2.7221375 +-1.1534014 3.439172 +-1.2801231 3.8090863 +-1.1434501 3.3953407 +-1.1156117 3.305809 +-0.81823874 2.419607 +-1.0519323 3.1042318 +-1.0228195 3.0120928 +-0.76945335 2.2612891 +-0.8795785 2.5796118 +-0.6460486 1.8908296 +-0.6560984 1.9163067 +-0.8030177 2.3406227 +-0.9113347 2.6509159 +-1.1986026 3.4794164 +-1.1404101 3.3037472 +-1.3781925 3.9844801 +-1.4431673 4.163858 +-1.4884255 4.285733 +-1.4045533 4.0360494 +-1.1993959 3.4395561 +-1.2727757 3.642627 +-1.1766381 3.3607032 +-1.3605341 3.8781307 +-1.3629965 3.877349 +-1.5755236 4.472945 +-1.6640977 4.7149525 +-1.4103571 3.988034 +-1.2279235 3.4652426 +-1.2041552 3.3913975 +-1.2841195 3.6094158 +-1.4098979 3.955084 +-1.3077602 3.6612897 +-1.5122786 4.225489 +-1.5232548 4.2477436 +-1.3205849 3.6753097 +-1.5185764 4.218008 +-1.6966451 4.7033386 +-1.403122 3.882008 +-1.1136202 3.0750003 +-1.2751211 3.514049 +-0.97522396 2.6823187 +-0.7277741 1.9978068 +-0.8320809 2.2796838 +-1.0434976 2.8533428 +-0.7809355 2.13124 +-0.6102713 1.6622488 +-0.34523267 0.93851715 +-0.3458223 0.9383 +-0.48720056 1.3193383 +-0.34700114 0.9378647 +-0.34759033 0.9376465 +-0.3481794 0.93742794 +-0.38958097 1.0468805 +-0.34935713 0.93698967 +-0.3499458 0.93676996 +-0.35053432 0.9365499 +-0.54611784 1.4563177 +-0.37741393 1.0045193 +-0.47530073 1.2626432 +-0.5541121 1.4692062 +-0.38975444 1.0314552 +-0.35406253 0.93522173 +-0.61578715 1.6234607 +-0.5646037 1.4857048 +-0.35582474 0.93455267 +-0.36044064 0.9448903 +-0.6182265 1.6176198 +-0.38597447 1.0080211 +-0.6499598 1.6942637 +-0.4669995 1.2150538 +-0.3593454 0.93320465 +-0.35993168 0.9329787 +-0.3983472 1.0306268 +-0.6392991 1.6509457 +-0.7821406 2.0160613 +-0.7018653 1.8057766 +-0.5211781 1.3384091 +-0.36344635 0.9316151 +-0.36403164 0.9313866 +-0.61124074 1.5609856 +-0.6442316 1.6421977 +-0.5439386 1.3839844 +-0.8241848 2.093172 +-0.993049 2.5173934 +-0.665766 1.6846247 +-0.83977836 2.1210382 +-0.9718182 2.450034 +-0.89974856 2.2641885 +-1.2645322 3.1763382 +-1.432571 3.5918605 +-1.2932014 3.2365103 +-1.1563611 2.8887694 +-1.3748596 3.4283671 +-1.005499 2.502772 +-0.97244877 2.4161174 +-0.88911825 2.205076 +-0.5873503 1.4540353 +-0.8053589 1.9901325 +-0.7509142 1.8522458 +-0.53325033 1.3129742 +-0.37687102 0.9262658 +-0.7522145 1.8454547 +-0.6557484 1.605901 +-0.77338433 1.8905914 +-0.99319655 2.423591 +-0.789135 1.9221984 +-0.60000014 1.4588884 +-0.45087242 1.0943321 +-0.6684289 1.6194834 +-0.8299445 2.0072296 +-1.206941 2.9138134 +-1.3333966 3.2133918 +-1.3781257 3.3153 +-1.152667 2.7680151 +-0.87332296 2.0934908 +-0.830587 1.9875307 +-0.9385946 2.2420237 +-0.8153492 1.9441968 +-0.6094499 1.4506745 +-0.3879017 0.9217008 +-0.38848075 0.9214568 +-0.38905963 0.92121255 +-0.38963836 0.92096794 +-0.39021695 0.92072296 +-0.51492906 1.2128614 +-0.7072355 1.6629137 +-0.5573287 1.3081571 +-0.9087339 2.129261 +-0.7333205 1.7152625 +-0.9244534 2.1585758 +-1.0810987 2.5199625 +-0.92335016 2.1485353 +-0.84269476 1.9574677 +-0.94893265 2.2004364 +-0.8381915 1.9402901 +-0.5218073 1.2058256 +-0.51364046 1.1849098 +-0.65508604 1.5086105 +-0.83907855 1.9290121 +-0.57974267 1.3305217 +-0.8530605 1.9544376 +-1.133425 2.5923338 +-0.7741569 1.7676007 +-0.9222403 2.1021183 +-0.9096707 2.0699315 +-0.52862805 1.2008301 +-0.70001 1.5874352 +-0.74262714 1.6812174 +-0.7744578 1.750302 +-1.1395648 2.5710895 +-0.81775326 1.8418924 +-0.6874069 1.5456833 +-0.85083574 1.9099317 +-1.0201668 2.2861757 +-0.74989784 1.6776743 +-0.61212516 1.3671424 +-0.8582712 1.9136691 +-1.2266394 2.730416 +-1.2394719 2.7543492 +-1.5091817 3.3480744 +-1.226204 2.715741 +-1.4297174 3.1611757 +-1.3949178 3.0790782 +-1.3941038 3.0721443 +-1.4451002 3.1792138 +-1.7670075 3.8809335 +-2.0747366 4.549227 +-1.954038 4.2774534 +-1.9524645 4.266913 +-1.9983488 4.3599463 +-1.6978688 3.6982303 +-1.4474106 3.147475 +-1.1896427 2.582668 +-1.3034652 2.8251002 +-1.5181552 3.2849865 +-1.5685133 3.3883593 +-1.8589561 4.009175 +-1.8922414 4.07425 +-1.5165056 3.259878 +-1.7738096 3.806722 +-1.6374032 3.508225 +-1.2796746 2.737283 +-1.6110615 3.4404984 +-1.8479872 3.9400165 +-1.6985482 3.6154933 +-1.3473426 2.8632488 +-1.7633711 3.741251 +-1.7010369 3.6031277 +-1.7676518 3.7381454 +-1.8324134 3.8688083 +-2.0330625 4.2854795 +-2.145937 4.5160775 +-2.148774 4.514728 +-2.1516101 4.513377 +-2.1544456 4.5120244 +-1.8238691 3.8135386 +-1.7913337 3.7394717 +-1.6853397 3.5125396 +-1.2794863 2.6623805 +-1.5240444 3.1661646 +-1.5652858 3.2466214 +-1.7303337 3.5831966 +-1.79467 3.7104697 +-1.9590434 4.0438266 +-1.7448889 3.596012 +-1.6199033 3.3330977 +-2.041972 4.1948357 +-2.0849988 4.2763963 +-1.7755245 3.635854 +-1.4227748 2.9088695 +-1.2896471 2.6324973 +-1.6460559 3.3546815 +-1.5718937 3.1984544 +-1.3495058 2.7415915 +-1.0785587 2.1876783 +-1.0935752 2.2146273 +-0.6599713 1.3344121 +-0.44388464 0.89608395 +-0.44444758 0.8958049 +-0.44501033 0.89552546 +-0.58139324 1.168136 +-0.44613534 0.8949655 +-0.44669756 0.89468503 +-0.8496784 1.6991382 +-1.0915262 2.1793475 +-0.79010546 1.5750568 +-0.9421186 1.8751507 +-0.54949 1.0919694 +-0.45006728 0.89299464 +-0.73084176 1.4478253 +-0.9678079 1.9142734 +-0.69903994 1.3805095 +-0.9770309 1.9264997 +-1.0232761 2.0145466 +-1.0212822 2.0074964 +-0.88927966 1.7453096 +-1.2053373 2.3619375 +-1.2344239 2.4151855 +-0.7807713 1.5252358 +-0.56898713 1.1097959 +-0.8943608 1.7417331 +-1.1948711 2.3233716 +-0.9586843 1.861241 +-1.1855334 2.2981098 +-0.8535919 1.6521057 +-0.4837415 0.93482876 +-0.4601378 0.8878475 +-0.46069556 0.8875582 +-0.70575976 1.3576026 +-0.46181053 0.88697857 +-0.68184906 1.3075902 +-0.4840037 0.926759 +-0.60264486 1.1521654 +-0.5153963 0.9838538 +-0.46459478 0.8855234 +-0.51833355 0.98644316 +-0.46570718 0.8849389 +-0.5033914 0.95509 +-0.46681887 0.8843529 +-0.89639306 1.6955673 +-1.0568185 1.9959826 +-1.4894876 2.8088837 +-1.2368625 2.3289452 +-1.1836776 2.225424 +-0.85901546 1.6125844 +-0.54718554 1.025649 +-0.7858962 1.470864 +-0.6495067 1.2137654 +-0.83005 1.5488155 +-1.1258605 2.0976107 +-0.8581789 1.5964804 +-0.57767564 1.0730395 +-0.4745799 0.8802124 +-0.47513285 0.87991405 +-0.47568563 0.87961537 +-0.4762382 0.87931633 +-0.7558013 1.3934045 +-0.4773428 0.8787172 +-0.9296406 1.7087697 +-0.6054631 1.1112361 +-0.4789983 0.87781584 +-0.75058186 1.3734688 +-0.5523003 1.0091316 +-0.6097811 1.1124969 +-0.5139707 0.93630224 +-0.8275395 1.5052888 +-0.5410248 0.9826575 +-0.4828545 0.8757006 +-0.8089865 1.464993 +-0.9338553 1.6886097 +-1.0045048 1.8136674 +-1.4683155 2.6471674 +-1.4464967 2.603973 +-1.3054503 2.346588 +-1.1160483 2.003168 +-1.2732303 2.2819169 +-0.9813359 1.7561817 +-1.2867901 2.2994235 +-1.1149235 1.9893728 +-0.6981599 1.2439028 +-0.8427696 1.4993441 +-0.9674839 1.7186902 +-1.1028142 1.9562218 +-1.5563992 2.756761 +-1.291267 2.2837946 +-0.8684105 1.5336611 +-0.50066674 0.88291085 +-0.76273185 1.3430876 +-0.54094094 0.9511457 +-0.70094156 1.2306775 +-0.49545866 0.86863154 +-0.49600434 0.86832005 +-0.90697366 1.5854615 +-1.0148678 1.7714854 +-0.9404728 1.6392378 +-0.94688904 1.6480215 +-0.7449298 1.2946359 +-0.6314003 1.0957363 +-0.49981862 0.8661301 +-0.63393205 1.0969411 +-0.50090665 0.86550134 +-0.50145036 0.86518645 +-0.50199383 0.8648712 +-0.5025372 0.8645556 +-0.5030803 0.8642397 +-0.7485358 1.2840505 +-0.73123455 1.2525622 +-0.6456961 1.1044453 +-0.50525075 0.86297256 +-0.50579286 0.8626549 +-0.85749936 1.460404 +-1.0193326 1.7335263 +-1.248696 2.120542 +-1.3272067 2.250634 +-0.9400402 1.591803 +-0.70886254 1.1986212 +-1.0479363 1.7694253 +-0.7384809 1.2451293 +-0.72729355 1.2245123 +-0.5112031 0.85945994 +-0.53372663 0.89604574 +-0.5122827 0.85881686 +-0.83913887 1.4047683 +-1.0920142 1.8254902 +-0.7878877 1.3152139 +-1.1406354 1.9013416 +-1.3634261 2.269481 +-1.1393238 1.8937566 +-1.6009172 2.6572251 +-1.3162163 2.1815724 +-1.8301352 3.0290666 +-1.8423717 3.044995 +-1.661816 2.7426877 +-1.4037617 2.31351 +-1.163337 1.9145573 +-0.8456453 1.3897492 +-0.520354 0.8539507 +-0.5208905 0.8536235 +-0.5214267 0.8532961 +-0.5219627 0.8529683 +-1.0108945 1.6496298 +-1.3126069 2.138962 +-1.7182567 2.7960472 +-1.5277219 2.4824998 +-1.8740431 3.0409784 +-1.9660074 3.185724 +-1.8023401 2.9164155 +-2.0763109 3.355019 +-2.5117605 4.05295 +-2.2051792 3.5532658 +-2.5702622 4.1357317 +-2.6074204 4.189648 +-2.644562 4.243382 +-2.5719101 4.121036 +-2.6498923 4.2400556 +-2.652556 4.2383895 +-2.5650883 4.092909 +-2.6351721 4.1988707 +-2.6605403 4.233382 +-2.2890313 3.637172 +-2.665858 4.2300353 +-2.6685154 4.2283597 +-2.6711717 4.226682 +-2.4026046 3.7964356 +-2.3917933 3.7741027 +-2.679134 4.2216396 +-2.681786 4.2199554 +-2.684437 4.21827 +-2.6870868 4.2165823 +-2.6897357 4.214893 +-2.4372714 3.8139875 +-2.3706934 3.7046704 +-2.2450814 3.5035267 +-2.220231 3.459959 +-2.6964643 4.196307 +-2.5303183 3.9323118 +-2.2675183 3.5190392 +-2.59479 4.021392 +-2.6561275 4.1107802 +-2.585104 3.9953506 +-2.5837302 3.9877317 +-2.08825 3.2185736 +-2.50617 3.8573947 +-2.25406 3.4645903 +-1.8720447 2.8734646 +-1.685355 2.5833576 +-2.1462405 3.285303 +-1.8290267 2.7958977 +-1.9701402 3.007481 +-1.9690853 3.0017543 +-1.475725 2.2465768 +-1.35414 2.0586612 +-0.82585937 1.2538143 +-0.88590723 1.3431407 +-0.71801215 1.0871052 +-0.5516459 0.83407843 +-0.5521698 0.83373165 +-0.55269355 0.8333846 +-1.014423 1.5275234 +-1.3046658 1.9618965 +-1.160574 1.742842 +-1.106697 1.6596731 +-1.2510897 1.8736621 +-1.7496051 2.616689 +-1.405783 2.0996165 +-1.415027 2.1105533 +-1.0846401 1.6155761 +-1.5540142 2.3115711 +-2.052254 3.048556 +-1.7518528 2.5987937 +-1.2405845 1.837858 +-1.7509892 2.5904832 +-1.340547 1.9805753 +-1.7385174 2.5650785 +-1.9724426 2.9062874 +-1.5557501 2.2892168 +-1.0529279 1.5472442 +-0.6948328 1.0196568 +-0.56364137 0.8260196 +-0.5641603 0.8256653 +-0.56467897 0.82531065 +-0.64509463 0.94157284 +-0.77879524 1.1351904 +-1.3011845 1.894085 +-1.3836793 2.0114603 +-1.5776073 2.290291 +-1.8018447 2.6123128 +-1.5365746 2.2247324 +-1.5043316 2.1751254 +-1.0486672 1.5142418 +-1.4965725 2.1581044 +-1.4222733 2.0482132 +-1.1243854 1.6170558 +-1.6312367 2.3428514 +-1.5936996 2.2858748 +-2.021382 2.8954291 +-1.9108561 2.7334507 +-2.2469208 3.2098892 +-1.7807955 2.5405962 +-1.9445894 2.7705696 +-1.9227836 2.7358444 +-1.5231061 2.164269 +-1.3760263 1.9526668 +-1.5429946 2.186686 +-1.0802333 1.5288345 +-0.92984 1.3142327 +-1.2676344 1.7892846 +-1.4110966 1.9891328 +-1.8648268 2.6252303 +-2.1446867 3.0151918 +-2.4435437 3.4307857 +-2.06074 2.8894775 +-2.2611887 3.1663275 +-1.933117 2.703338 +-1.8496176 2.5831375 +-2.3431897 3.26811 +-1.9206327 2.6752071 +-1.4578317 2.0278912 +-1.18327 1.6437867 +-1.619864 2.2473195 +-1.7248478 2.3898017 +-1.5042497 2.0814028 +-1.1708078 1.6178832 +-0.6417747 0.8856654 +-1.0519993 1.4498677 +-0.65031993 0.89508855 +-0.7294945 1.0027375 +-0.58880144 0.8082777 +-0.8241412 1.1298482 +-0.5898167 0.8075372 +-0.5927384 0.8104677 +-0.9630513 1.3150721 +-1.3565483 1.8499631 +-1.0654845 1.4511184 +-0.91292876 1.2417114 +-0.59391767 0.80674887 +-0.5933627 0.8049352 +-0.5938683 0.8045623 +-0.80545837 1.0897869 +-0.5948789 0.8038153 +-0.73775864 0.9955692 +-0.7848135 1.0576775 +-1.0179096 1.3700169 +-0.66847736 0.8985319 +-0.8885347 1.1927557 +-0.8007975 1.07357 +-0.80993104 1.0843923 +-0.9131592 1.2210004 +-0.5994148 0.8004385 +-0.86655045 1.1556485 +-0.60042024 0.79968464 +-0.6047829 0.804442 +-0.6014247 0.7989295 +-1.0485022 1.3910053 +-1.0746661 1.4238538 +-1.0499591 1.3893025 +-1.0646114 1.4068519 +-1.4899241 1.9663209 +-1.9412857 2.5586622 +-2.4702342 3.251584 +-2.7294154 3.5880637 +-3.0296643 3.9775789 +-3.032163 3.9756746 +-3.0163198 3.9497523 +-3.0371566 3.9718611 +-3.0396514 3.969952 +-3.0421453 3.9680414 +-2.8803644 3.7521367 +-2.7058775 3.520258 +-3.0328975 3.9405735 +-2.9489295 3.8264995 +-2.9150615 3.777641 +-3.0477297 3.9444396 +-3.0595682 3.954623 +-3.0620522 3.9527 +-2.6313524 3.3923192 +-2.7796137 3.5788112 +-2.8489516 3.6633313 +-2.2950087 2.9472194 +-2.2164564 2.8426573 +-2.3128386 2.9624293 +-1.7802567 2.2773137 +-1.8660364 2.3839548 +-2.0280209 2.5875466 +-1.8708578 2.3839364 +-1.3049233 1.660646 +-1.7425523 2.2147071 +-2.3111444 2.9335678 +-1.7846209 2.2623186 +-1.4438776 1.8280038 +-1.465189 1.8525904 +-1.8348631 2.317014 +-1.2808963 1.6153938 +-1.2948042 1.6308279 +-1.5425367 1.9403464 +-1.2199538 1.5325937 +-1.3196125 1.6556561 +-1.876468 2.351284 +-1.4362166 1.7973154 +-1.9066912 2.3830066 +-1.6965183 2.1176012 +-2.0633633 2.5721848 +-2.4838128 3.0923333 +-2.4093428 2.9957612 +-2.1843686 2.7125385 +-2.414196 2.9940836 +-2.5988302 3.218926 +-2.6352265 3.2598138 +-2.3383412 2.8888478 +-2.8106496 3.467892 +-2.2263217 2.7433994 +-2.589083 3.1863203 +-2.5354648 3.1163309 +-2.9881659 3.6680343 +-3.160417 3.8745017 +-3.1628509 3.8725152 +-3.1652834 3.8705273 +-3.1677146 3.8685377 +-3.1701448 3.8665466 +-3.1725736 3.864554 +-3.151468 3.8339305 +-2.999704 3.6446307 +-3.1563299 3.8300238 +-3.1822762 3.8565683 +-2.6674652 3.2285397 +-2.7744224 3.3537006 +-2.8479831 3.4382195 +-3.147375 3.7948036 +-2.6569865 3.1994467 +-3.0429337 3.6595097 +-2.7063909 3.2506177 +-3.0577993 3.6680014 +-3.2040336 3.8385112 +-3.2064447 3.8364973 +-3.0260086 3.6159868 +-2.9981728 3.5781534 +-3.2136707 3.8304465 +-2.9391448 3.4987662 +-3.2184815 3.826405 +-3.220885 3.824382 +-3.2232873 3.8223577 +-3.2256885 3.8203316 +-3.2280881 3.818304 +-2.8483226 3.3648126 +-2.6552165 3.1326969 +-2.3684142 2.790763 +-2.19515 2.5833092 +-1.8095572 2.1268241 +-1.8396467 2.1594386 +-2.4209585 2.8381872 +-3.0637796 3.587225 +-2.6104243 3.0525284 +-2.0824535 2.4320445 +-2.1261644 2.4799378 +-2.5777466 3.0028386 +-2.3099294 2.6874378 +-2.3105905 2.6847925 +-1.9501579 2.26311 +-2.4168262 2.801106 +-3.042256 3.5215044 +-3.0396817 3.5140588 +-3.2734401 3.779496 +-3.2758143 3.7774384 +-2.6330194 3.032361 +-3.1527557 3.6263192 +-2.6688583 3.0658448 +-3.1192899 3.5787342 +-2.8533244 3.2694447 +-3.063316 3.5056124 +-2.4942946 2.8508158 +-2.882597 3.2904458 +-3.2971227 3.7588537 +-3.2994838 3.7567813 +-3.0689034 3.4898186 +-2.908 3.3026593 +-3.1244278 3.5439677 +-3.3089151 3.748477 +-3.3112698 3.7463973 +-2.80233 3.1665668 +-3.315975 3.7422333 +-3.3000872 3.719592 +-3.1349144 3.5289538 +-2.938336 3.303484 +-2.6496723 2.9751813 +-2.9659412 3.3260932 +-3.3300593 3.7297058 +-3.3324022 3.7276127 +-3.1218162 3.4876392 +-3.1297872 3.4921267 +-3.333933 3.7152073 +-2.8196313 3.1381202 +-2.6664484 2.9638867 +-2.1825466 2.4229429 +-2.1580563 2.3927302 +-1.6015699 1.7734878 +-2.2461395 2.4841082 +-1.841389 2.0339057 +-2.0995986 2.3161845 +-2.7178972 2.9944808 +-3.3627384 3.700269 +-3.2245235 3.5437052 +-2.567102 2.8176496 +-2.6962013 2.9556167 +-2.1034997 2.3029802 +-1.5456839 1.6901314 +-0.95787007 1.0460646 +-1.5700856 1.7124875 +-1.5116091 1.646629 +-1.0496454 1.1419607 +-1.6150678 1.7548971 +-1.6285036 1.7672664 +-1.9240093 2.085321 +-2.4577243 2.6604273 +-2.4926345 2.694818 +-2.812454 3.036749 +-2.4798565 2.6742542 +-2.515484 2.709258 +-2.900832 3.1203563 +-2.8789108 3.092877 +-2.3183334 2.4875004 +-2.9294672 3.1392713 +-3.4135642 3.6534338 +-3.415859 3.6512883 +-3.4181526 3.6491413 +-2.8505666 3.0393698 +-3.228196 3.4376793 +-2.5802448 2.7442243 +-2.9802542 3.1656668 +-2.4446166 2.5934384 +-2.4544132 2.600556 +-2.3410482 2.4773207 +-2.6161532 2.7649574 +-2.8991716 3.0602198 +-2.4130316 2.5438716 +-1.9819634 2.0868022 +-1.8842574 1.9814334 +-1.390207 1.4600654 +-1.4888929 1.561744 +-2.1072302 2.2075574 +-2.6173174 2.7384837 +-3.1958454 3.3395903 +-3.459204 3.6102505 +-2.984333 3.1107292 +-2.88316 3.0014942 +-2.5061092 2.6056888 +-1.8504263 1.9215345 +-1.6634117 1.7251626 +-1.119604 1.1597079 +-1.0047263 1.0394076 +-0.69546145 0.71856344 +-0.6959128 0.7181263 +-0.69636387 0.7176889 +-0.69681466 0.71725124 +-0.8511017 0.8749626 +-0.69771546 0.716375 +-1.1141834 1.1425438 +-0.69861513 0.7154977 +-0.69906455 0.71505857 +-1.1937685 1.219547 +-0.8500107 0.86727536 +-1.0085655 1.027758 +-0.7008595 0.7132994 +-1.268217 1.289106 +-0.8494173 0.8623238 +-0.70220274 0.711977 +-1.2366036 1.2522417 +-0.9384002 0.94907373 +-0.95395404 0.96359277 +-1.3727771 1.3849062 +-1.0275193 1.035296 +-0.70488185 0.7093247 +-0.8177372 0.821858 +-0.70577264 0.7084384 +-0.70621765 0.7079948 +-0.70666236 0.70755094 +-0.70710677 0.70710677 +-0.70755094 0.70666236 +-0.7079948 0.70621765 +-0.81966436 0.8165801 +-0.7088817 0.7053274 +-0.7468286 0.74215084 +-0.70976746 0.704436 +-0.71020997 0.7039899 +-0.7106521 0.70354354 +-1.3281058 1.3131695 +-1.2929311 1.2767849 +-1.8474187 1.8220567 +-1.7886187 1.7618483 +-2.5013938 2.4608605 +-3.11125 3.05699 +-3.568698 3.5020556 +-3.5708978 3.4998128 +-3.0593956 2.9947267 +-3.2973464 3.223593 +-3.5774884 3.4930756 +-2.8970814 2.8251696 +-2.2637355 2.2047718 +-1.6727302 1.6271135 +-2.0563455 1.9977542 +-2.2548337 2.1878347 +-2.633899 2.5524256 +-2.654943 2.569586 +-3.1835625 3.0773387 +-3.597184 3.4727895 +-3.5993652 3.4705288 +-3.1649337 3.0478122 +-3.274836 3.1496842 +-2.8688269 2.7557232 +-3.11953 2.992776 +-3.2222655 3.0874515 +-3.0908968 2.9578562 +-3.5075448 3.3523512 +-3.056124 2.9172318 +-3.4611187 3.299667 +-3.4758818 3.3095748 +-3.6148305 3.4375474 +-3.6254299 3.443292 +-3.6275926 3.441013 +-3.629754 3.4387333 +-3.631914 3.436452 +-3.6340723 3.4341693 +-3.6362293 3.4318852 +-3.3638918 3.1708581 +-2.9835715 2.808824 +-2.6673617 2.507975 +-3.1363804 2.9452572 +-3.315541 3.1095822 +-3.2805161 3.072861 +-3.6512883 3.415859 +-3.6534338 3.4135642 +-3.655578 3.411268 +-3.5867195 3.342798 +-3.6598618 3.4066715 +-3.6620016 3.4043715 +-3.63916 3.3788764 +-3.4199054 3.1713047 +-2.7005177 2.501057 +-2.3872392 2.2081325 +-2.8792691 2.659892 +-3.4333663 3.1677754 +-2.8199565 2.5985382 +-2.9202414 2.687558 +-3.5182605 3.2338467 +-3.6833193 3.3812952 +-3.6854432 3.3789804 +-3.3823788 3.0972078 +-2.653367 2.4265962 +-3.3851974 3.091977 +-3.5303085 3.2204523 +-3.280338 2.9886477 +-3.6981554 3.3650625 +-3.5278096 3.20601 +-2.8328485 2.571194 +-2.4131927 2.1875355 +-2.639892 2.3900163 +-2.6420252 2.3889287 +-2.2808332 2.0597343 +-2.0355208 1.8358812 +-1.6294878 1.4678154 +-1.4222461 1.2795179 +-1.8860567 1.69464 +-1.8745363 1.6821615 +-2.3879156 2.1401482 +-1.7966439 1.6081915 +-1.5141803 1.3536433 +-2.0702279 1.8483983 +-1.9678767 1.7547933 +-2.6886199 2.394463 +-3.1929214 2.8399944 +-3.2437558 2.8815615 +-2.920873 2.5914497 +-2.3472295 2.079869 +-3.0221624 2.6745358 +-2.3619382 2.0876095 +-1.9459177 1.7177315 +-2.647372 2.3339725 +-2.1970806 1.934535 +-2.408873 2.1183333 +-2.5004034 2.1960394 +-3.1423151 2.7563186 +-3.0992064 2.7150617 +-3.4349442 3.0053723 +-3.476172 3.0375903 +-3.4261563 2.9900906 +-3.2172287 2.8041952 +-3.1343372 2.7284818 +-2.405556 2.0914128 +-1.9012183 1.6508405 +-1.3404596 1.1624537 +-1.2422081 1.0758826 +-1.6440114 1.4220796 +-1.5776718 1.3629633 +-1.7176594 1.4820161 +-0.99566364 0.85797924 +-0.7579522 0.6523101 +-0.75836194 0.6518337 +-0.9481392 0.8139174 +-1.2486161 1.070496 +-1.1176276 0.95697576 +-0.7599977 0.6499257 +-1.0159446 0.86769867 +-1.177037 1.0040063 +-1.4853863 1.2654151 +-1.0377197 0.88291895 +-1.6401787 1.393731 +-0.98317647 0.8343845 +-0.8844917 0.74967897 +-0.98441696 0.8333115 +-0.7734608 0.65390277 +-0.7792146 0.65792817 +-1.1845279 0.99887925 +-0.7648764 0.644177 +-0.9781127 0.82271415 +-1.3664584 1.1478959 +-2.0866327 1.7506446 +-1.964479 1.6460578 +-1.2848166 1.0751882 +-1.5634964 1.3067296 +-0.9073191 0.7573459 +-1.602202 1.3356626 +-2.0331626 1.6927652 +-2.711688 2.2548068 +-2.5381072 2.107776 +-2.900868 2.4059532 +-2.951396 2.4447322 +-2.356721 1.9496491 +-2.4493876 2.0237188 +-2.3906322 1.972648 +-2.8207223 2.3245628 +-3.4524126 2.8414993 +-3.5767055 2.9400306 +-3.864554 3.1725736 +-3.8665466 3.1701448 +-3.8685377 3.1677146 +-3.2229724 2.6357186 +-2.7507608 2.2466652 +-2.7359974 2.231743 +-3.0100791 2.4521625 +-2.4298406 1.9769323 +-2.485128 2.0193205 +-1.8149401 1.4728591 +-1.5358497 1.2447721 +-1.3926617 1.1272724 +-0.9094576 0.73520356 +-0.77806777 0.6281804 +-1.1430734 0.9216854 +-1.411254 1.1364629 +-0.9572691 0.76988417 +-1.0845948 0.8711643 +-1.3068119 1.0483025 +-1.7512788 1.4030389 +-1.1013359 0.88120085 +-1.2945627 1.034472 +-0.78160757 0.6237705 +-1.0698588 0.85271275 +-0.8257834 0.65732855 +-0.78278196 0.6222961 +-0.7831728 0.6218041 +-0.7835634 0.6213119 +-0.78395355 0.62081945 +-1.5307977 1.2106874 +-2.164076 1.7093296 +-2.0254319 1.5977539 +-1.4772038 1.1637814 +-1.5376021 1.2097996 +-2.2856398 1.7960389 +-1.8628548 1.4619253 +-1.5352294 1.2032546 +-2.09277 1.6381121 +-2.4916298 1.9477953 +-2.8110647 2.1946647 +-3.2397923 2.5261075 +-3.8942926 3.0324974 +-3.9469209 3.0694976 +-3.9488487 3.067017 +-3.9507751 3.0645354 +-3.635038 2.815968 +-3.3060155 2.557761 +-2.5762823 1.9906026 +-2.236101 1.7255138 +-1.4872823 1.1461889 +-1.119981 0.8620034 +-1.7479932 1.3436105 +-1.8119456 1.3909577 +-1.1324542 0.86820924 +-0.8671829 0.6639712 +-1.5082787 1.153333 +-1.2332941 0.9418336 +-0.7951349 0.60643256 +-0.9163382 0.69796157 +-0.79589635 0.6054329 +-1.0750589 0.8167241 +-0.9814305 0.74462235 +-0.7970362 0.6039316 +-0.79741544 0.6034307 +-1.2646383 0.95574474 +-0.7981731 0.60242814 +-1.2038604 0.90743744 +-0.7989295 0.6014247 +-0.7993072 0.6009226 +-1.5943906 1.1971023 +-1.5252184 1.1436685 +-1.4985124 1.1221731 +-2.0372646 1.5236251 +-2.5728781 1.9216789 +-2.3083746 1.7218632 +-1.7876891 1.331726 +-2.0241516 1.5059003 +-2.6646702 1.9798248 +-3.1377587 2.3282666 +-3.8187158 2.829829 +-3.2244165 2.386291 +-2.5973008 1.9196576 +-1.9925506 1.4707534 +-1.4485481 1.0678056 +-0.80530787 0.5928568 +-1.215722 0.8938208 +-0.96587145 0.7091917 +-1.5963075 1.1705468 +-0.95406455 0.6986789 +-1.2130282 0.8871524 +-1.8549174 1.3548123 +-1.1762136 0.85796136 +-1.3132354 0.9566451 +-0.8086475 0.58829343 +-0.809017 0.58778524 +-0.80938613 0.5872768 +-0.9993482 0.724152 +-0.8101235 0.58625925 +-0.8104917 0.5857501 +-0.81085956 0.5852408 +-0.81122714 0.58473116 +-1.4813093 1.0663116 +-1.4363247 1.0325602 +-1.4689837 1.0546391 +-1.1609097 0.83235615 +-1.014934 0.7267285 +-0.8134258 0.58166873 +-0.81379104 0.58115757 +-0.81415606 0.5806461 +-0.8145207 0.58013445 +-0.873994 0.6216663 +-1.5205103 1.0800912 +-1.5873078 1.1260408 +-2.2754712 1.6120776 +-2.3509185 1.6633114 +-2.07872 1.4687678 +-2.7942019 1.9716768 +-2.7771156 1.9570078 +-2.772745 1.9513216 +-3.2599173 2.2911081 +-3.566122 2.5029666 +-3.1993132 2.242514 +-2.5359733 1.77518 +-2.4554393 1.7165085 +-2.042465 1.4259034 +-2.5677052 1.7901901 +-1.8714273 1.3030024 +-1.7430168 1.2119697 +-1.3079739 0.90825325 +-1.5571004 1.0797964 +-1.1652364 0.8069683 +-1.0552391 0.7298106 +-1.5135549 1.0453796 +-1.3814104 0.9528289 +-0.8235326 0.56726897 +-0.82388884 0.5667514 +-1.4705135 1.0102025 +-2.189247 1.5019288 +-2.9658535 2.031979 +-3.1715941 2.17001 +-2.6121266 1.7848129 +-2.64592 1.8054657 +-2.9171774 1.9878752 +-2.516473 1.7125058 +-2.7997143 1.9026839 +-2.6839626 1.8215549 +-2.7510931 1.8645915 +-3.3972197 2.299399 +-3.3080156 2.235992 +-4.127933 2.7864227 +-4.1459684 2.794807 +-4.1477237 2.7922013 +-4.1494775 2.7895947 +-3.995303 2.6823037 +-4.1529794 2.784378 +-3.917068 2.6226444 +-4.156475 2.7791572 +-4.158221 2.776545 +-4.1231937 2.7494128 +-4.1617064 2.7713175 +-3.3910937 2.2550855 +-3.0916333 2.053143 +-2.948153 1.9551901 +-2.7973354 1.8526396 +-1.9758056 1.3067657 +-2.4009955 1.5858116 +-2.4146426 1.5926472 +-2.335568 1.5383861 +-1.9182619 1.2617886 +-1.4593675 0.9586253 +-0.8946579 0.58687603 +-0.83649665 0.5479721 +-1.4023899 0.9174186 +-2.103218 1.3740017 +-2.6916282 1.7559896 +-3.191071 2.0789635 +-3.7192233 2.4197242 +-4.0948462 2.6604438 +-3.9760346 2.5796998 +-4.0181503 2.603439 +-3.4764555 2.2493641 +-3.2426522 2.0951977 +-2.8678794 1.85049 +-3.6324053 2.3405666 +-4.204723 2.7056062 +-4.173048 2.6815186 +-3.6544824 2.3450553 +-3.310571 2.1214342 +-3.2149403 2.0573053 +-3.4685695 2.2165372 +-4.1485195 2.6473794 +-4.0368323 2.5725384 +-4.21827 2.684437 +-3.6111674 2.2949007 +-3.344874 2.1227214 +-2.9549491 1.8726645 +-3.264254 2.0658092 +-3.9686599 2.5081072 +-3.4651687 2.186866 +-2.7337952 1.7228957 +-2.9386737 1.8494358 +-2.3926408 1.5036955 +-1.5501403 0.97285366 +-1.7605082 1.1033373 +-1.6006532 1.0017536 +-1.0611545 0.6631859 +-1.4565855 0.90904486 +-1.1497267 0.71653306 +-1.9095778 1.1884226 +-1.0852973 0.6744873 +-0.8496719 0.52731174 +-0.85000306 0.5267778 +-0.85033387 0.5262436 +-0.8506643 0.5257092 +-1.5118687 0.93302023 +-2.1027539 1.2958498 +-1.5965579 0.9825163 +-1.5028139 0.9235252 +-1.2867439 0.7896302 +-0.85264015 0.52249855 +-0.8529683 0.5219627 +-0.8532961 0.5214267 +-1.1448684 0.69861126 +-0.8539507 0.520354 +-0.85427743 0.51981735 +-0.8546039 0.5192805 +-1.0855261 0.65866154 +-1.0985124 0.66559726 +-0.85558116 0.51766866 +-1.2950758 0.7824733 +-0.9304228 0.5613555 +-0.85655546 0.51605505 +-0.85687953 0.5155167 +-0.85720325 0.51497823 +-0.85752666 0.5144395 +-1.1665459 0.69882715 +-1.5440688 0.92366695 +-1.9764849 1.180654 +-1.259231 0.75112903 +-1.9396064 1.15532 +-1.1047643 0.657109 +-0.909474 0.54017794 +-1.5836004 0.9392266 +-0.860422 0.50958216 +-1.491252 0.881924 +-2.2678564 1.339284 +-1.564742 0.9227337 +-1.7316635 1.0197021 +-1.017152 0.59809667 +-1.8001059 1.0569607 +-1.6557026 0.9707735 +-0.88555163 0.5184703 +-0.8914711 0.52118415 +-1.4982888 0.8746876 +-1.0451766 0.6092846 +-1.2227314 0.71176094 +-0.91796255 0.53358084 +-0.8648712 0.50199383 +-1.2516928 0.7254642 +-1.5961225 0.9237517 +-0.8658159 0.5003627 +-1.4301225 0.8252823 +-2.210678 1.2738675 +-2.1660407 1.2463336 +-1.3907951 0.79909676 +-1.7318832 0.9936259 +-1.579591 0.9049332 +-1.7864698 1.0219619 +-1.0777907 0.6156589 +-0.86863154 0.49545866 +-1.2811493 0.72968817 +-1.9595199 1.1144292 +-2.7699795 1.5730559 +-2.4092255 1.3661844 +-1.5746173 0.89160126 +-0.98478544 0.5568018 +-0.8708022 0.49163345 +-1.6059806 0.9053668 +-2.4462852 1.3770612 +-2.7216895 1.5298404 +-2.2907064 1.2856947 +-1.9518301 1.093883 +-1.4534171 0.813353 +-1.7788782 0.99401844 +-2.431371 1.3566206 +-2.0965402 1.1680698 +-2.9629993 1.6483716 +-3.5190284 1.9548064 +-3.2096162 1.7802911 +-2.4909303 1.3796089 +-2.755575 1.5239213 +-2.058228 1.136578 +-2.8018756 1.5449324 +-3.6119254 1.9886291 +-2.9153888 1.6027486 +-2.8711104 1.5760579 +-2.5953338 1.4225526 +-1.7735201 0.97065204 +-1.1877488 0.64908844 +-0.87781584 0.4789983 +-1.0606774 0.57791597 +-1.7436454 0.9486144 +-1.3621279 0.7399445 +-1.7426826 0.9452545 +-1.8288819 0.99052346 +-2.3654103 1.279186 +-2.7065203 1.4614571 +-2.1830828 1.1770422 +-2.0281737 1.0918764 +-1.9111357 1.0273201 +-2.188146 1.1744541 +-2.630526 1.4097664 +-1.8470141 0.9883689 +-1.1896625 0.6356476 +-0.8822912 0.47070393 +-0.8825868 0.4701495 +-1.5388505 0.81849694 +-1.533062 0.81418276 +-2.1121447 1.1200228 +-1.4435031 0.7642956 +-1.6461339 0.8702592 +-2.2667356 1.1965301 +-2.4389095 1.285456 +-1.585499 0.83438337 +-1.3570095 0.71305025 +-1.5990291 0.8389395 +-2.2506835 1.1790309 +-2.488896 1.3018271 +-2.5832567 1.3491164 +-3.3561642 1.7500875 +-2.6598632 1.3848733 +-1.9471896 1.0122609 +-1.3832476 0.71798784 +-1.3658485 0.7078677 +-1.3240807 0.68516594 +-1.0689195 0.5522777 +-1.67798 0.865625 +-1.8826901 0.9697322 +-2.3774962 1.2227066 +-2.1835299 1.1212187 +-2.2063897 1.1312056 +-2.5587687 1.309839 +-2.7032633 1.3816631 +-3.2669098 1.66716 +-2.4190712 1.2325784 +-2.9779177 1.5149688 +-2.0998204 1.0665903 +-2.6087518 1.3230374 +-2.0152948 1.0204722 +-1.5964314 0.80711514 +-1.4388648 0.72631866 +-1.0271538 0.5176832 +-0.92722017 0.4665865 +-1.1455835 0.57556736 +-0.89384145 0.4483832 +-1.613831 0.8082873 +-1.0177487 0.5089398 +-0.89468503 0.44669756 +-1.484129 0.73983 +-1.7656989 0.8788064 +-0.9219904 0.45816147 +-0.8958049 0.44444758 +-1.4587264 0.7225955 +-1.7784226 0.87956923 +-1.621036 0.800462 +-2.1188817 1.044641 +-1.9920074 0.9805347 +-2.2138138 1.087988 +-2.2998078 1.1284566 +-2.805206 1.3742563 +-2.0702965 1.0126153 +-2.6908946 1.3140652 +-2.209808 1.0774134 +-2.849628 1.3871485 +-3.2118874 1.5609945 +-3.6000032 1.7468255 +-2.866271 1.3885732 +-3.2466455 1.5703287 +-3.9682577 1.9162804 +-3.6416783 1.7557538 +-3.4728725 1.6716793 +-3.9781911 1.9118384 +-3.5707517 1.7132703 +-3.8182094 1.8290517 +-3.3268778 1.591118 +-2.82738 1.3500451 +-2.524076 1.2032737 +-2.0235782 0.9631171 +-1.1211872 0.5327626 +-1.9416864 0.92115 +-1.0680937 0.5058895 +-0.9040229 0.4274841 +-0.9042913 0.426916 +-1.098836 0.5179165 +-1.350583 0.6355361 +-0.9050944 0.42521068 +-0.9053614 0.4246419 +-0.905628 0.42407298 +-0.96527314 0.45126337 +-0.90616024 0.4229346 +-0.9064258 0.42236516 +-0.90669096 0.42179555 +-0.90695584 0.4212258 +-0.9072203 0.42065585 +-0.9074844 0.42008573 +-1.257988 0.58137864 +-0.9215594 0.42519578 +-1.2548057 0.5779954 +-1.3882085 0.63838714 +-0.9087997 0.41723272 +-0.9090617 0.41666162 +-0.9093233 0.41609034 +-1.1925844 0.54479975 +-1.5212809 0.69380075 +-1.6875948 0.7683699 +-0.9758696 0.443578 +-0.91125053 0.413515 +-1.3567969 0.614671 +-1.1079589 0.50110096 +-0.9114033 0.41151437 +-1.465124 0.66042095 +-1.075006 0.48375845 +-1.3446596 0.6040883 +-0.91243464 0.40922245 +-1.1320033 0.50684386 +-1.6260102 0.7268046 +-1.4736162 0.657576 +-2.0083625 0.89468473 +-2.275551 1.0119987 +-1.7527424 0.7781729 +-1.0949365 0.4853005 +-0.9144801 0.4046309 +-0.9147341 0.40405625 +-1.821412 0.8031865 +-1.9296838 0.84948325 +-1.9158177 0.8419425 +-2.7954266 1.2264082 +-2.0806143 0.91124773 +-2.4189441 1.0576152 +-2.4765506 1.080949 +-3.1869292 1.3886273 +-3.4894314 1.5178273 +-4.1592917 1.8060951 +-4.5875244 1.9886223 +-4.5887733 1.9857395 +-4.5900197 1.9828558 +-4.5912647 1.9799714 +-4.592508 1.9770863 +-4.417339 1.8983865 +-4.594989 1.9713136 +-4.0358067 1.728415 +-4.009914 1.7143451 +-4.5986967 1.9626487 +-4.5446773 1.9362196 +-4.601159 1.9568683 +-4.602388 1.953977 +-4.0377827 1.7112763 +-4.3455443 1.8384906 +-4.606063 1.9452982 +-4.602927 1.9405669 +-3.6884062 1.5522815 +-3.3451383 1.4053423 +-4.252555 1.7834188 +-3.98692 1.6690732 +-3.9925733 1.6684922 +-3.5100048 1.4642375 +-4.308133 1.7940085 +-4.47106 1.8585595 +-4.6181946 1.9163193 +-4.3151298 1.7873852 +-4.140385 1.7119567 +-4.320664 1.7833198 +-3.4585488 1.4249461 +-3.1983078 1.3153749 +-2.3530896 0.966032 +-2.5729117 1.0543888 +-2.5424814 1.040053 +-3.000704 1.2252978 +-3.257198 1.3276466 +-2.4193478 0.9843634 +-2.336185 0.94881636 +-2.8433855 1.1527296 +-3.354629 1.3575381 +-3.614937 1.4602358 +-4.18475 1.6873513 +-4.242824 1.707669 +-4.6395717 1.8639673 +-3.859488 1.5477496 +-4.5949645 1.8393433 +-4.643077 1.8552185 +-3.8811398 1.5479466 +-3.7812636 1.505359 +-3.9827306 1.5826669 +-3.6315446 1.4404703 +-3.4388504 1.3615372 +-2.8129404 1.1116779 +-2.560316 1.0099809 +-3.4425318 1.3554941 +-3.465625 1.3620726 +-4.344084 1.7041773 +-4.6557884 1.8230839 +-4.656933 1.8201581 +-4.658076 1.8172318 +-4.564826 1.7775489 +-4.6603556 1.8113768 +-4.0361676 1.5658505 +-4.607017 1.7839845 +-4.6605 1.8013285 +-4.664893 1.7996584 +-4.585791 1.7658323 +-4.667151 1.7937949 +-4.3713684 1.6769607 +-4.0911126 1.5664998 +-4.4489913 1.7003284 +-3.651844 1.3930433 +-3.8760026 1.4757624 +-2.9886742 1.1357684 +-3.7966366 1.4400842 +-4.337324 1.6420534 +-4.671039 1.7650385 +-4.6783295 1.764435 +-4.2605615 1.6038165 +-4.6805434 1.7585547 +-4.6816473 1.7556136 +-4.6827493 1.7526716 +-4.1975923 1.5680796 +-3.5573118 1.3263458 +-4.315265 1.6058615 +-3.4526036 1.2823658 +-3.6088183 1.3378074 +-3.298629 1.2204617 +-2.5069585 0.9257607 +-2.8123982 1.0365448 +-2.5304818 0.9308354 +-2.3123252 0.84893763 +-2.0102515 0.73660254 +-2.6296887 0.9617049 +-2.1458764 0.78324145 +-2.444194 0.89038694 +-1.6713018 0.6076435 +-2.156213 0.78241163 +-1.5948387 0.57757545 +-2.1714478 0.78485304 +-2.0287864 0.7318483 +-1.1962166 0.43066448 +-0.94109344 0.3381467 +-1.6003356 0.5738856 +-0.9415176 0.3369638 +-0.9417291 0.33637217 +-0.9419403 0.33578038 +-0.94215107 0.33518848 +-1.0638566 0.3777347 +-0.9425716 0.33400428 +-1.851549 0.6547952 +-1.6449926 0.58058447 +-2.302498 0.8110182 +-2.5263832 0.8880943 +-2.4636054 0.8642874 +-2.005237 0.7020669 +-2.8357534 0.9908448 +-1.9039093 0.66390574 +-1.0680158 0.37167165 +-0.94465154 0.32807538 +-1.6137087 0.5593015 +-1.3297156 0.45993555 +-1.7344924 0.59872395 +-1.3307453 0.45842022 +-1.1423382 0.39271423 +-0.94588166 0.3245118 +-1.0858084 0.3717553 +-0.9462887 0.32332292 +-1.7154537 0.5849237 +-1.5966939 0.54331017 +-1.7212466 0.58448553 +-2.00833 0.6805636 +-1.6791298 0.5678315 +-1.5810301 0.5335504 +-0.9477016 0.3191578 +-0.9479019 0.31856227 +-1.0410527 0.3491397 +-1.3254243 0.44358367 +-0.94850075 0.31677496 +-0.9486996 0.31617895 +-0.948898 0.31558278 +-0.94909614 0.31498653 +-1.4774668 0.4893121 +-1.5484067 0.5117268 +-1.4224528 0.46910962 +-2.2615042 0.74424464 +-2.1871305 0.718246 +-1.7626095 0.57760817 +-1.4132973 0.4621552 +-1.1844925 0.38651124 +-2.1340425 0.6948751 +-1.5091329 0.490347 +-2.4502099 0.7944197 +-2.920962 0.9450216 +-3.3517733 1.0820765 +-3.945674 1.2710726 +-4.1457233 1.3326426 +-4.7610736 1.527147 +-4.573075 1.4636768 +-4.402077 1.405898 +-4.243088 1.3521839 +-4.7576885 1.5128843 +-4.360342 1.383517 +-3.8257043 1.2112336 +-4.1605783 1.3143805 +-4.5507197 1.4344871 +-4.3665433 1.3734151 +-4.770575 1.4972024 +-4.771515 1.4942046 +-4.7724524 1.4912063 +-3.998601 1.2466506 +-3.185787 0.9910423 +-3.126533 0.97045535 +-3.7482448 1.1608491 +-4.6966634 1.4513454 +-3.8128836 1.1756191 +-4.5106807 1.3876665 +-4.005178 1.2293994 +-3.6885695 1.1296802 +-3.845997 1.1752522 +-2.9436653 0.89749753 +-2.3701866 0.72102153 +-2.1228518 0.6443242 +-2.171486 0.65759575 +-2.9827583 0.9012295 +-2.8149707 0.84860337 +-3.3674662 1.0128514 +-4.243185 1.2733394 +-4.1708155 1.248766 +-3.8416305 1.1475763 +-3.668656 1.093395 +-4.2969027 1.2776966 +-3.9188766 1.1626099 +-3.3734617 0.9984964 +-3.7172403 1.0977101 +-4.207872 1.239721 +-4.7970624 1.4100329 +-4.767502 1.3980902 +-4.7988305 1.4040036 +-4.7997117 1.4009881 +-4.800591 1.3979721 +-4.668672 1.3563746 +-4.802344 1.3919384 +-4.8032174 1.3889208 +-4.8040895 1.3859025 +-4.8049593 1.3828838 +-4.805827 1.3798645 +-4.806693 1.3768445 +-3.904512 1.1157668 +-4.2084074 1.1997495 +-3.4723282 0.9875464 +-2.992261 0.8489812 +-2.0954607 0.5931136 +-2.0427818 0.5768169 +-2.9896545 0.84215593 +-3.653346 1.0266341 +-3.7094378 1.0398822 +-2.8240407 0.7897616 +-3.191735 0.8904279 +-4.15253 1.1556581 +-4.0995417 1.1381364 +-4.8186183 1.33451 +-4.819456 1.331482 +-4.422101 1.2187139 +-4.7501245 1.3059052 +-4.1924224 1.1497488 +-4.6675987 1.2769105 +-4.823615 1.3163347 +-4.8244414 1.3133037 +-4.8252654 1.3102722 +-4.106605 1.1123542 +-3.2086656 0.86696607 +-4.0275745 1.0855165 +-4.57061 1.2287962 +-4.829358 1.2951068 +-4.3603144 1.1663854 +-3.8312657 1.0222856 +-4.6140604 1.2280514 +-4.238678 1.1252904 +-4.4835343 1.1872802 +-4.4482775 1.1749533 +-4.3947253 1.1578548 +-4.835807 1.2708155 +-4.8366046 1.2677767 +-3.9085479 1.0218893 +-4.7870426 1.2483588 +-4.8389854 1.2586577 +-4.8397756 1.255617 +-4.8405633 1.2525759 +-4.8413496 1.2495342 +-4.0266767 1.0365721 +-3.2682145 0.8391349 +-2.9371052 0.75215364 +-2.0687582 0.52839667 +-1.7047145 0.43427283 +-1.8635291 0.47348383 +-2.7626007 0.70007163 +-2.4956822 0.63076323 +-1.7783893 0.44828472 +-2.1237338 0.53391796 +-2.7728941 0.6952682 +-3.4716992 0.8681666 +-3.208738 0.8002662 +-4.161729 1.0351671 +-4.852911 1.2038507 +-4.8536663 1.2008014 +-4.8544197 1.1977515 +-3.9303498 0.9671324 +-4.8099356 1.1803654 +-4.7521806 1.163027 +-4.8091197 1.1737598 +-4.8581586 1.182495 +-4.326441 1.0501937 +-3.578731 0.86631507 +-2.7242548 0.65765756 +-2.4503179 0.5898978 +-3.2601297 0.7826879 +-3.6308715 0.86928266 +-4.218608 1.007193 +-3.6516852 0.86941534 +-3.2369716 0.768529 +-4.1148553 0.9742273 +-4.4507656 1.0508041 +-4.866936 1.1458321 +-4.8676553 1.1427739 +-4.8660893 1.1391807 +-4.8690877 1.136656 +-4.8698006 1.1335965 +-4.870512 1.1305366 +-4.6610703 1.0788352 +-4.8719287 1.1244152 +-4.8726344 1.1213537 +-4.8733377 1.118292 +-4.135994 0.9463575 +-4.874739 1.1121671 +-4.7230473 1.074437 +-4.36981 0.9911925 +-4.4990034 1.0175253 +-4.877519 1.099912 +-4.1408696 0.9310591 +-3.6308665 0.81399053 +-4.522784 1.0109621 +-4.153847 0.92575485 +-3.865301 0.8588986 +-3.4295764 0.7598164 +-2.4871807 0.54939115 +-3.267999 0.71971214 +-3.0074837 0.6603578 +-2.342698 0.51284707 +-1.9673263 0.42937815 +-2.7798164 0.6048783 +-2.7768466 0.6024051 +-3.0362656 0.6566857 +-2.800971 0.6039541 +-2.2742963 0.48889562 +-2.556194 0.54781383 +-3.1069663 0.66380745 +-3.377091 0.71930146 +-2.4280543 0.51556736 +-1.6403234 0.34722546 +-1.826532 0.38544342 +-2.47584 0.5208388 +-1.8609157 0.3902572 +-1.3410022 0.28034538 +-1.4369584 0.29946345 +-2.0531414 0.42653066 +-1.3355074 0.2765703 +-0.97935003 0.202172 +-1.6800843 0.3457275 +-2.0379343 0.4180313 +-1.7533246 0.3585029 +-1.2977725 0.2645066 +-2.037756 0.41399357 +-2.1482277 0.4350319 +-1.3066496 0.26375157 +-1.5879862 0.31950203 +-2.4605274 0.49344853 +-1.8165942 0.36312324 +-2.4389873 0.48594135 +-3.37703 0.6706302 +-3.7876847 0.749707 +-2.8993607 0.57198566 +-2.6577766 0.52259123 +-2.244355 0.4398368 +-2.7514322 0.53741616 +-2.410116 0.46917757 +-1.9635025 0.38095498 +-2.8211298 0.5455111 +-1.9324484 0.37241074 +-1.8041881 0.34651756 +-1.5406779 0.2949034 +-1.0580574 0.20183524 +-0.98240477 0.18676409 +-0.98252195 0.1861468 +-1.7387897 0.32829627 +-1.3180997 0.24800932 +-1.0076681 0.18894404 +-1.3517069 0.2525744 +-1.2882273 0.23987529 +-1.217896 0.22598752 +-1.1116109 0.20554331 +-1.4874449 0.27407077 +-1.5524594 0.28504166 +-2.061573 0.37717938 +-1.7578722 0.32047382 +-2.624531 0.47676885 +-2.5872626 0.46831962 +-3.0293348 0.5463735 +-3.7939649 0.6818217 +-3.7017589 0.66285044 +-4.476917 0.7987502 +-3.5053766 0.6231403 +-4.1182246 0.7294154 +-4.224919 0.7455754 +-3.3067334 0.5814002 +-2.7117863 0.4750384 +-1.9627248 0.3425503 +-1.0398606 0.18081154 +-1.1255866 0.19498909 +-1.1513741 0.19871128 +-0.9855383 0.16945271 +-0.9856446 0.16883345 +-0.9857505 0.16821411 +-1.0116256 0.17197554 +-1.6610795 0.28130844 +-1.7121518 0.28885114 +-0.9861701 0.16573612 +-0.98627406 0.16511646 +-1.8701025 0.3118742 +-2.1519902 0.35749462 +-2.8642387 0.4739662 +-2.6836574 0.44235194 +-3.3405166 0.54846746 +-3.7100317 0.60674316 +-3.693766 0.60170037 +-4.6210146 0.7497654 +-4.9359603 0.797683 +-4.9364605 0.7945815 +-4.004462 0.64198434 +-4.1245356 0.65857637 +-4.9261904 0.78340507 +-4.9384418 0.7821723 +-4.9389324 0.77906924 +-4.5390086 0.7130625 +-4.5646586 0.7141535 +-4.400175 0.68558747 +-4.079511 0.63299996 +-3.0996299 0.4789618 +-3.666878 0.5642555 +-3.9971583 0.612508 +-3.4704764 0.52956986 +-3.5006635 0.5319257 +-2.5928116 0.39231107 +-3.3864932 0.51022446 +-4.1325927 0.6199799 +-3.7169716 0.55523986 +-3.4096758 0.5071461 +-3.6831384 0.5454551 +-2.9918132 0.4411523 +-2.8850777 0.4235618 +-3.4888434 0.50996226 +-3.045979 0.44327447 +-3.0207558 0.43766576 +-2.6020327 0.3753295 +-2.9076746 0.41755193 +-2.1270816 0.30409223 +-2.4162006 0.34387627 +-2.5930681 0.3673861 +-2.181977 0.30774432 +-2.1961231 0.3083323 +-1.845282 0.25789255 +-1.428402 0.19871537 +-1.3952671 0.1932122 +-1.3426746 0.18506962 +-0.9907194 0.13592307 +-1.8011224 0.24595453 +-2.6495554 0.36011767 +-2.5575552 0.34597686 +-1.7476981 0.23530418 +-2.3392045 0.31344634 +-2.1942837 0.29262403 +-1.380068 0.18315984 +-2.2609394 0.29862183 +-2.1172786 0.2782939 +-2.7189426 0.35563853 +-3.1487043 0.40983945 +-2.2083306 0.28602824 +-1.5805287 0.2037042 +-1.9670901 0.25226924 +-1.9942203 0.25447503 +-2.3157473 0.29402527 +-2.6185539 0.3308003 +-2.034996 0.25578085 +-2.856019 0.35715342 +-2.6635683 0.33138728 +-1.8242136 0.22579533 +-1.4115945 0.1738222 +-1.11955 0.13714612 +-1.0477371 0.12768082 +-1.2745523 0.15450864 +-1.4231861 0.1716196 +-1.6070307 0.19276479 +-0.99295723 0.11847329 +-0.9930315 0.11784937 +-0.99310535 0.11722541 +-1.4828907 0.17409466 +-0.99325186 0.11597735 +-0.9933245 0.11535324 +-0.9933968 0.1147291 +-1.494104 0.17160541 +-2.3855665 0.2724758 +-3.1390662 0.35654148 +-2.2199845 0.25073758 +-1.9201397 0.21564965 +-1.7366518 0.19393739 +-2.6184525 0.29074526 +-1.912561 0.21114871 +-2.2739756 0.24960315 +-2.4616163 0.26863435 +-3.0818794 0.33436385 +-3.0803475 0.33223957 +-2.8715048 0.30788916 +-3.6315823 0.38707852 +-3.9473624 0.41822827 +-3.3265648 0.3503405 +-3.5021133 0.36660385 +-4.3403373 0.45159292 +-3.9631374 0.40983006 +-3.9257698 0.40347302 +-3.3048654 0.33756092 +-2.4255395 0.24620624 +-1.6079419 0.16219471 +-1.0073408 0.100972146 +-0.99507636 0.09911134 +-0.9951384 0.098486096 +-0.9952001 0.09786081 +-0.99526143 0.09723549 +-0.9953223 0.09661014 +-0.9953828 0.095984735 +-1.4098324 0.1350561 +-1.4544431 0.13840742 +-1.3668549 0.12920584 +-1.6909274 0.15876783 +-1.4923706 0.13917866 +-1.3541374 0.12542884 +-2.244447 0.20647272 +-3.1471364 0.28751954 +-3.3104346 0.30034107 +-3.4670856 0.3123571 +-3.626316 0.32440564 +-4.582743 0.40706408 +-4.3756833 0.38590106 +-3.5484676 0.3107003 +-3.0498354 0.26510972 +-2.0644155 0.17814437 +-1.9521556 0.16722149 +-1.298514 0.110408776 +-1.6758723 0.1414339 +-2.1456106 0.17971942 +-2.3636773 0.19648951 +-2.6994293 0.22269242 +-3.40602 0.2788289 +-3.4642236 0.28140253 +-3.6593118 0.2949355 +-3.06795 0.24533246 +-3.012941 0.2390285 +-2.4836626 0.19546849 +-1.8854223 0.14719403 +-1.3127952 0.10165946 +-2.0510736 0.15753342 +-2.5024872 0.19062285 +-1.8649482 0.14088084 +-1.1494513 0.08610488 +-0.99725276 0.07407368 +-0.99729913 0.07344707 +-1.5331511 0.11194193 +-1.464325 0.10599171 +-2.1439264 0.153829 +-2.5944498 0.18451606 +-1.7013679 0.11992613 +-1.4619156 0.102124535 +-1.2312423 0.08523312 +-1.3851777 0.09501488 +-0.9976985 0.06780633 +-0.9977409 0.06717945 +-1.4273579 0.095205374 +-1.9158349 0.12657793 +-1.6273875 0.106493466 +-1.3345613 0.08648933 +-1.0889502 0.069884874 +-1.6760943 0.10650824 +-2.5814393 0.1624104 +-1.8257641 0.113715686 +-2.7503846 0.1695699 +-1.8689767 0.11404958 +-1.8790523 0.11347943 +-0.9982191 0.05965482 +-1.5372081 0.09089621 +-0.9982932 0.058400374 +-1.3320642 0.077086255 +-1.8237151 0.10438831 +-2.6604524 0.1506056 +-2.084096 0.11666501 +-1.3839531 0.07659965 +-0.9985063 0.054636493 +-1.8338352 0.099188566 +-2.6687257 0.1426645 +-3.2508621 0.17173596 +-2.3169103 0.12093755 +-1.7205601 0.088725425 +-2.0275588 0.10327937 +-1.7720246 0.08914676 +-1.3501506 0.06707274 +-1.3193569 0.06471197 +-2.245229 0.1087102 +-1.4274457 0.06821554 +-0.99888986 0.047106452 +-1.58436 0.07371885 +-2.0573587 0.094431624 +-1.3873779 0.062806346 +-2.0663154 0.0922408 +-2.5536544 0.11238807 +-3.3996654 0.14748143 +-3.8041463 0.16263364 +-4.3763466 0.18434148 +-3.623165 0.1503353 +-4.1238403 0.16851425 +-4.995958 0.20100775 +-4.141692 0.1640307 +-4.9962068 0.19472948 +-4.996328 0.19159023 +-4.2883916 0.16174519 +-3.6635826 0.13587415 +-3.145462 0.11467919 +-3.0205922 0.10822624 +-3.3488722 0.11788153 +-2.6697268 0.09229588 +-3.3507624 0.11373233 +-2.7630258 0.092045225 +-2.9104958 0.09512721 +-3.481394 0.111596845 +-4.3236065 0.13587481 +-3.6560311 0.11259603 +-4.120141 0.124298215 +-4.99782 0.14763339 +-4.997912 0.14449315 +-4.9980016 0.14135283 +-4.846082 0.134009 +-4.998175 0.13507205 +-4.5835114 0.12098409 +-4.976949 0.12823986 +-4.9984207 0.12565048 +-4.998499 0.12250985 +-4.9985747 0.11936918 +-4.403888 0.1023991 +-4.140619 0.09367457 +-4.933651 0.108514145 +-4.580448 0.09786623 +-4.0327644 0.08362939 +-4.1809144 0.0840736 +-3.2801988 0.06389938 +-2.679321 0.050509993 +-3.38276 0.061644897 +-2.8131855 0.04949725 +-3.0337427 0.05147117 +-2.5590115 0.041808452 +-1.8386697 0.028884131 +-2.4544153 0.037014518 +-2.039291 0.02947251 +-1.685488 0.023299998 +-1.8700422 0.024676057 +-1.2019871 0.015105411 +-1.4563909 0.017387295 +-2.1959848 0.024837062 +-2.517522 0.026891721 +-1.7444981 0.0175382 +-1.0891569 0.010265365 +-1.7127566 0.015066583 +-2.1157498 0.017282126 +-2.2725568 0.017134998 +-1.5647615 0.010815027 +-0.9999803 0.006283144 +-0.999984 0.0056548365 +-0.99998736 0.005026527 +-1.6310133 0.0071736174 +-2.1949227 0.008274702 +-1.3698987 0.004303678 +-0.99999684 0.0025132715 +-0.9999982 0.0018849545 +-0.9999992 0.0012566367 +-1.9295467 0.0012123701 +-1.008038 1.2344906E-16 +-0.9999998 -6.2831846E-4 +-0.9999992 -0.0012566367 +-1.9183855 -0.003616076 +-1.1119745 -0.0027947028 +-1.3075716 -0.0041078706 +-2.1432893 -0.008080049 +-2.4356377 -0.010712563 +-1.688679 -0.008488298 +-1.7203428 -0.009728413 +-2.448597 -0.015385191 +-2.077721 -0.014360406 +-2.9999883 -0.022619808 +-3.8806434 -0.031698346 +-4.6822286 -0.041188095 +-4.999778 -0.047123194 +-4.9997473 -0.050264634 +-4.999715 -0.05340606 +-4.85332 -0.054892097 +-4.4632325 -0.053284835 +-4.999605 -0.0628302 +-4.601683 -0.0607213 +-4.999522 -0.06911284 +-4.999478 -0.072254114 +-4.293534 -0.064749874 +-4.981989 -0.078263335 +-4.5270524 -0.07396179 +-4.0963993 -0.06950044 +-3.3963048 -0.05975708 +-3.8427825 -0.070028 +-3.332634 -0.06282611 +-3.1285186 -0.060944602 +-2.6127856 -0.05254025 +-2.262758 -0.046923906 +-1.4956431 -0.031956032 +-0.9997582 -0.021989375 +-1.727196 -0.039074916 +-2.301362 -0.053511214 +-2.2317517 -0.053295664 +-2.047841 -0.05019121 +-2.6633744 -0.066952 +-1.6646786 -0.042893372 +-1.660274 -0.04382377 +-2.5683246 -0.069407105 +-3.2535343 -0.08997018 +-3.398488 -0.096115604 +-3.616843 -0.10456547 +-2.796973 -0.08262135 +-3.317357 -0.10007948 +-3.0481472 -0.09387482 +-3.677019 -0.11555497 +-4.3249955 -0.13863866 +-3.8453393 -0.12568182 +-3.137743 -0.10452825 +-3.8828542 -0.13179272 +-4.848642 -0.16762377 +-4.9969053 -0.17589289 +-4.9967937 -0.1790325 +-4.9966803 -0.18217205 +-4.7471604 -0.17606166 +-4.760508 -0.179552 +-4.396967 -0.16860703 +-4.9620776 -0.1933993 +-4.9960833 -0.19786866 +-4.6334877 -0.1864241 +-4.9958305 -0.20414676 +-4.9957013 -0.20728569 +-4.99557 -0.21042454 +-4.797918 -0.20511903 +-4.1306324 -0.17919163 +-3.2472951 -0.14291567 +-2.8081527 -0.12535658 +-3.0282888 -0.13709009 +-2.2578447 -0.10363382 +-2.9197063 -0.13585132 +-3.789742 -0.1787197 +-2.9542294 -0.1411783 +-3.0922587 -0.14972194 +-3.767489 -0.18478826 +-3.5158489 -0.17466024 +-4.480833 -0.22542112 +-4.993526 -0.25435916 +-4.149356 -0.21397299 +-4.7530255 -0.24809732 +-4.9930377 -0.2637713 +-4.992871 -0.26690844 +-4.992702 -0.27004552 +-4.992532 -0.27318245 +-4.954845 -0.27424297 +-4.992184 -0.27945605 +-4.776443 -0.27038977 +-4.155151 -0.23783825 +-3.2720206 -0.1893511 +-3.43565 -0.2009863 +-2.4534726 -0.14507557 +-2.7290275 -0.16309011 +-2.4947271 -0.15066116 +-1.8093798 -0.11041283 +-2.6376472 -0.16261926 +-1.7001929 -0.105894625 +-0.9980267 -0.06279052 +-0.9979871 -0.06341758 +-0.99794704 -0.064044625 +-1.100937 -0.071348764 +-1.1825653 -0.07738506 +-0.99782455 -0.0659256 +-1.6628779 -0.11091465 +-2.2112973 -0.1488901 +-3.1781049 -0.21599275 +-3.4908066 -0.23944838 +-4.3586345 -0.30172777 +-4.4098325 -0.30805618 +-4.6574383 -0.32829383 +-4.399452 -0.312887 +-4.987179 -0.35783538 +-4.9869533 -0.36096886 +-4.6774926 -0.34152377 +-4.2081037 -0.30990994 +-4.2442856 -0.31525594 +-4.5300937 -0.33934727 +-4.0958133 -0.3094036 +-4.985557 -0.3797666 +-4.985317 -0.38289908 +-4.9850755 -0.38603136 +-4.9848323 -0.3891635 +-4.9845867 -0.39229548 +-4.984339 -0.39542732 +-4.7868795 -0.38278884 +-3.8243823 -0.30823994 +-3.2897913 -0.26723322 +-3.1996589 -0.26193544 +-3.9226785 -0.32360572 +-3.71325 -0.3086778 +-3.157091 -0.26444247 +-2.4250011 -0.20465602 +-2.8733668 -0.24431384 +-2.4452314 -0.20945832 +-1.5078195 -0.1301141 +-1.2522835 -0.10885588 +-0.99618864 -0.08722529 +-0.9961336 -0.0878512 +-0.9960782 -0.08847707 +-1.5130615 -0.13535658 +-0.99596626 -0.089728706 +-0.9959097 -0.09035447 +-1.3928424 -0.12724882 +-1.8094633 -0.1664574 +-0.9957376 -0.09223156 +-1.621927 -0.15126109 +-1.776174 -0.16677196 +-2.373209 -0.22433431 +-2.2086163 -0.2101759 +-1.6425866 -0.15735298 +-1.0165713 -0.09802794 +-0.9953223 -0.09661014 +-0.99526143 -0.09723549 +-1.4609056 -0.14365493 +-2.4278798 -0.24028055 +-2.2597547 -0.22507551 +-1.674965 -0.16789237 +-1.7063302 -0.17211926 +-1.8411081 -0.18688308 +-2.8247259 -0.28851917 +-3.2361238 -0.33259428 +-3.8723094 -0.40043747 +-4.4443645 -0.46241653 +-3.4873962 -0.36506325 +-2.587911 -0.2725484 +-2.3588681 -0.2499252 +-1.7393256 -0.18538906 +-1.7441412 -0.18701074 +-1.3392998 -0.14445396 +-0.994166 -0.10786054 +-1.129835 -0.12329804 +-1.009577 -0.110816315 +-1.9852751 -0.21917641 +-1.1755587 -0.13053057 +-1.2287722 -0.13722086 +-1.2916803 -0.14506778 +-0.993682 -0.11223206 +-1.1319956 -0.12857434 +-1.6288778 -0.18604797 +-1.8803755 -0.21597064 +-2.7128909 -0.3133164 +-2.445308 -0.28396985 +-2.8155997 -0.32876432 +-2.6098144 -0.30639803 +-3.3087113 -0.3905578 +-3.74802 -0.4448014 +-3.0285466 -0.36134675 +-2.492781 -0.29901132 +-3.2567122 -0.39272138 +-3.997159 -0.48455885 +-3.24632 -0.39560762 +-3.22098 -0.3945736 +-3.027883 -0.37285018 +-2.276649 -0.2817963 +-1.6156043 -0.20100509 +-0.9922714 -0.12408641 +-1.5718842 -0.19757183 +-0.9921147 -0.12533323 +-1.9271305 -0.24468347 +-1.9401506 -0.24757539 +-1.3691725 -0.17558935 +-2.085136 -0.26873976 +-1.2958292 -0.16783889 +-2.0459032 -0.26629743 +-2.2741694 -0.29746208 +-1.9670446 -0.25854725 +-1.2106488 -0.15990087 +-0.9913076 -0.13156436 +-0.99122477 -0.13218719 +-1.1392009 -0.15264948 +-0.9910579 -0.1334327 +-0.99097383 -0.13405538 +-0.99088943 -0.13467799 +-0.9908046 -0.13530056 +-1.6964651 -0.2327488 +-0.9906338 -0.13654554 +-1.8245412 -0.2526567 +-1.6701887 -0.2323521 +-1.5699987 -0.21941958 +-0.9902875 -0.13903484 +-1.0429227 -0.147093 +-1.0955956 -0.15522408 +-1.6261916 -0.23144133 +-2.5715165 -0.3676296 +-1.6363461 -0.23498484 +-2.4149544 -0.34834448 +-2.9834764 -0.43226448 +-3.8473902 -0.559902 +-3.4210663 -0.5000553 +-3.2679675 -0.47977433 +-2.6847663 -0.39587727 +-3.0392244 -0.45009452 +-2.447619 -0.36405236 +-3.1294372 -0.46747416 +-2.8599327 -0.4290529 +-1.8927026 -0.2851632 +-2.7120676 -0.41035533 +-2.41204 -0.36650935 +-2.3640103 -0.36073107 +-1.535166 -0.23524247 +-1.961096 -0.30177146 +-2.7845318 -0.4302721 +-2.8376184 -0.44030085 +-2.9568458 -0.4607036 +-2.1211863 -0.3318655 +-2.0863004 -0.32775056 +-2.3160572 -0.36533582 +-2.6780746 -0.42416534 +-2.0522273 -0.3263628 +-1.5288635 -0.24411802 +-2.2533424 -0.36124966 +-1.4686196 -0.23639163 +-2.1049902 -0.34018 +-2.7920675 -0.45301643 +-2.5405116 -0.41383964 +-1.947276 -0.3184599 +-1.861766 -0.3056767 +-0.98668593 -0.16263716 +-1.8800646 -0.3111078 +-2.5951786 -0.4311183 +-2.9657192 -0.4945886 +-3.6277294 -0.6073341 +-4.1287956 -0.69388694 +-4.852632 -0.81867063 +-4.308526 -0.7296608 +-4.7256784 -0.80336154 +-4.9287524 -0.8410706 +-4.928223 -0.84416723 +-4.9276915 -0.8472636 +-4.9271584 -0.85035956 +-4.5080256 -0.7809402 +-3.7477434 -0.65165967 +-3.4655328 -0.6048323 +-2.7568944 -0.48294026 +-2.5125253 -0.4417601 +-3.1578007 -0.5572601 +-4.0252714 -0.71295166 +-4.7376947 -0.8422058 +-4.922271 -0.8782082 +-4.0172195 -0.719338 +-4.637399 -0.83339715 +-4.9206066 -0.8874849 +-4.920048 -0.8905764 +-4.5227385 -0.8215947 +-3.8469427 -0.7013277 +-3.6188147 -0.6620878 +-3.8604052 -0.70879555 +-4.704497 -0.8668322 +-4.916656 -0.90911824 +-4.00622 -0.74337685 +-3.7881315 -0.70537174 +-3.3620684 -0.6282223 +-3.4196289 -0.6412017 +-2.7533023 -0.51805234 +-3.3066337 -0.62431675 +-3.8117893 -0.7221745 +-3.9674323 -0.754245 +-4.115859 -0.78514206 +-4.9108467 -0.9399923 +-4.0311356 -0.7742315 +-3.2474425 -0.6258291 +-2.436748 -0.47118467 +-2.6977398 -0.5234103 +-2.526377 -0.49181014 +-2.876119 -0.56177026 +-2.549103 -0.49955973 +-2.8753574 -0.56537354 +-3.0695894 -0.60556835 +-2.1005826 -0.41577414 +-2.3742557 -0.47149345 +-2.339243 -0.46606836 +-1.5393298 -0.3077002 +-2.2455764 -0.45034096 +-2.1499953 -0.43257797 +-2.6753376 -0.5400258 +-2.6200807 -0.5305856 +-2.5240188 -0.51278347 +-3.205939 -0.65342116 +-3.4081469 -0.69686496 +-2.594199 -0.53213507 +-3.257206 -0.6702674 +-3.8311434 -0.7908816 +-3.9096515 -0.8096499 +-2.943035 -0.6114019 +-3.8879204 -0.81024617 +-3.210737 -0.6712258 +-3.7327178 -0.7827975 +-4.542602 -0.95562047 +-4.3443227 -0.9167595 +-3.596255 -0.76125926 +-3.098857 -0.65800405 +-3.6932304 -0.7866374 +-3.1637254 -0.6759341 +-3.0354557 -0.65052366 +-2.9055328 -0.6245898 +-3.0022013 -0.647344 +-3.7182772 -0.8041917 +-4.619139 -1.0020694 +-4.8856735 -1.0631055 +-3.989875 -0.87080884 +-3.1052063 -0.67977005 +-2.5495725 -0.5598135 +-2.5242748 -0.5559216 +-1.8470823 -0.40800038 +-2.0465841 -0.45341697 +-1.3219386 -0.2937446 +-1.1921041 -0.2656805 +-2.0891747 -0.4669859 +-2.5888975 -0.5803953 +-3.2918487 -0.7401599 +-2.5555675 -0.576297 +-2.7036219 -0.6114695 +-1.8973813 -0.430378 +-1.8127545 -0.4123801 +-2.0326111 -0.4637383 +-2.2424936 -0.51310533 +-3.0168908 -0.69229037 +-2.527902 -0.58175355 +-2.0765467 -0.47925588 +-2.209532 -0.51141065 +-2.9877927 -0.69352233 +-2.4699335 -0.5749533 +-2.4512181 -0.57222056 +-2.839841 -0.6648238 +-3.2287595 -0.7580122 +-2.7183363 -0.6399831 +-3.0205834 -0.7131451 +-2.8685458 -0.67915285 +-3.1663487 -0.75176156 +-3.070841 -0.73112446 +-3.7589312 -0.89744514 +-3.0928102 -0.740463 +-2.4797492 -0.5953351 +-3.287031 -0.79133093 +-3.1125364 -0.75139195 +-3.1221976 -0.7558006 +-3.491875 -0.8476125 +-4.0006666 -0.97377807 +-4.0684376 -0.992982 +-4.440494 -1.0867462 +-4.6241302 -1.1347684 +-4.508196 -1.1093216 +-4.8544197 -1.1977515 +-4.8536663 -1.2008014 +-4.0824018 -1.0127122 +-4.7188478 -1.1737419 +-4.4723845 -1.1154224 +-4.4735403 -1.1186968 +-4.626606 -1.1600631 +-4.849105 -1.2190907 +-4.732165 -1.1928531 +-4.062965 -1.0268811 +-3.8321304 -0.9711015 +-3.7022696 -0.94066936 +-2.7952585 -0.71208686 +-3.643961 -0.9307307 +-3.2983942 -0.844675 +-2.4699323 -0.63417083 +-2.0059319 -0.5163794 +-2.445763 -0.63124233 +-2.93253 -0.7588407 +-2.9881694 -0.77524185 +-3.3176801 -0.86295444 +-3.7579436 -0.9799917 +-3.8393347 -1.0037936 +-3.435232 -0.9004473 +-4.0488315 -1.064004 +-4.6445036 -1.2236625 +-3.7013345 -0.9776583 +-2.948906 -0.7808968 +-2.385828 -0.6333931 +-1.5636141 -0.41616246 +-0.96619636 -0.25780737 +-0.9660342 -0.25841442 +-1.6434323 -0.44072527 +-1.6887933 -0.45402753 +-1.5468193 -0.41690055 +-1.7000443 -0.45934385 +-2.0733647 -0.56161135 +-2.5699027 -0.69784176 +-2.2235823 -0.60530096 +-1.6398847 -0.4475144 +-1.241878 -0.33973938 +-1.43808 -0.39438552 +-2.355572 -0.64759433 +-3.2862837 -0.90568703 +-4.2441177 -1.1725321 +-3.3593633 -0.93037117 +-2.727688 -0.7572752 +-3.0742655 -0.8555747 +-3.8641994 -1.0780315 +-3.2614386 -0.91208285 +-2.3798254 -0.6671464 +-1.9995077 -0.56188565 +-2.6896217 -0.7576397 +-1.7382164 -0.4908173 +-2.02871 -0.57422 +-1.410635 -0.40023336 +-1.2589997 -0.3580654 +-0.9616839 -0.27416065 +-0.96151143 -0.27476484 +-1.3002102 -0.37243637 +-0.9611654 -0.27597287 +-1.1968793 -0.34446597 +-1.4512242 -0.41865483 +-1.5934739 -0.46077633 +-2.0627103 -0.59786755 +-2.8655474 -0.8325185 +-2.8923128 -0.84226555 +-2.3418005 -0.6835483 +-3.006135 -0.879511 +-3.3421 -0.980085 +-3.6893094 -1.0844235 +-4.497818 -1.3251448 +-4.7952867 -1.41606 +-4.5367184 -1.3428037 +-3.8585663 -1.1447177 +-4.449201 -1.3229829 +-3.508517 -1.0456676 +-3.2417364 -0.9683753 +-2.8849869 -0.8637815 +-3.52716 -1.058467 +-3.3665397 -1.0125726 +-3.4146907 -1.0293953 +-3.4356284 -1.0380626 +-2.665154 -0.8070943 +-2.999321 -0.9103486 +-2.356148 -0.7167509 +-2.5583756 -0.78002614 +-2.5547495 -0.7806753 +-3.4573905 -1.0588782 +-3.5277586 -1.0828544 +-3.7175105 -1.1436555 +-3.65905 -1.1281879 +-3.6417599 -1.1253631 +-3.3345191 -1.0327163 +-3.9511487 -1.2264106 +-3.1508405 -0.9801711 +-3.058416 -0.95352745 +-3.0130703 -0.94146764 +-3.1106267 -0.9740959 +-3.6341348 -1.1405407 +-3.7321758 -1.1738865 +-2.9662154 -0.9350165 +-2.9985468 -0.9472797 +-2.2289503 -0.70569474 +-1.7154701 -0.544311 +-1.1864424 -0.37727356 +-2.0195446 -0.64358693 +-1.3332497 -0.42580193 +-1.6689446 -0.53416914 +-1.356881 -0.4352289 +-0.9520226 -0.30602765 +-1.8332187 -0.5905592 +-2.6779752 -0.8645495 +-2.0892262 -0.67592937 +-2.9148488 -0.94506735 +-2.0438986 -0.6641029 +-1.0960441 -0.35688782 +-1.0696903 -0.3490502 +-1.9632211 -0.641983 +-2.5509214 -0.83593845 +-3.3061705 -1.0857348 +-3.114056 -1.0248133 +-2.5456681 -0.839534 +-2.6187572 -0.8654627 +-2.8487458 -0.9434566 +-3.5137436 -1.1661431 +-3.4496758 -1.1472869 +-3.0630662 -1.0208468 +-3.180671 -1.0622627 +-2.383846 -0.7978088 +-1.4623652 -0.49043602 +-1.0988269 -0.36928377 +-1.6159272 -0.54419637 +-1.5918539 -0.5372031 +-2.0891197 -0.7064778 +-3.0003412 -1.0167269 +-3.0305579 -1.0290897 +-3.6078007 -1.2276335 +-4.4972644 -1.5334466 +-4.7314434 -1.6166146 +-4.730427 -1.6195871 +-4.728236 -1.6221569 +-4.1666684 -1.4324218 +-4.1700573 -1.4365172 +-4.7263412 -1.6314708 +-4.7253156 -1.6344402 +-4.374587 -1.5162048 +-4.1884465 -1.4546381 +-3.27963 -1.1413178 +-2.924619 -1.0198339 +-2.7934234 -0.9760542 +-3.0097735 -1.0537719 +-3.3708649 -1.182574 +-2.7317007 -0.9602691 +-3.1234694 -1.1001923 +-2.6273773 -0.92730784 +-3.255613 -1.1513386 +-2.849134 -1.0096029 +-3.4862204 -1.2378232 +-4.1481466 -1.4757835 +-3.397906 -1.2112765 +-3.3156667 -1.1843086 +-4.220365 -1.5104448 +-3.412622 -1.2237774 +-2.9635358 -1.0648357 +-3.4062357 -1.2263203 +-4.269019 -1.5399721 +-3.958867 -1.430902 +-4.272796 -1.5474054 +-4.7001324 -1.7055078 +-4.128857 -1.501149 +-4.697985 -1.7114127 +-4.620537 -1.6864884 +-4.1185565 -1.5061996 +-4.6947513 -1.7202652 +-3.8013964 -1.3956292 +-4.646936 -1.7093712 +-4.6915 -1.7291114 +-3.8859243 -1.4349803 +-4.193365 -1.5515057 +-4.4277706 -1.6413971 +-4.6871395 -1.740897 +-4.1315737 -1.5375035 +-3.9700356 -1.4802301 +-3.1341085 -1.1707977 +-3.7488894 -1.403144 +-3.8664258 -1.4499062 +-3.3959413 -1.2759093 +-4.1689353 -1.5693254 +-4.6783295 -1.764435 +-4.663592 -1.7622246 +-4.614384 -1.7469445 +-3.8893278 -1.4752425 +-3.477591 -1.3215686 +-2.9020329 -1.1049298 +-2.8857126 -1.1007924 +-3.5485055 -1.356178 +-3.999007 -1.5312324 +-4.0651336 -1.5594819 +-3.7831664 -1.45404 +-3.244459 -1.2493309 +-3.1281507 -1.206802 +-2.9309042 -1.1328229 +-3.1861625 -1.2337842 +-3.277582 -1.2715535 +-2.8638203 -1.1131034 +-3.2784204 -1.276621 +-2.5318913 -0.9877541 +-3.172878 -1.2401166 +-3.6897826 -1.4448215 +-4.5660496 -1.7912542 +-4.3320713 -1.7026064 +-4.5307198 -1.7839673 +-3.6646624 -1.445618 +-3.0884428 -1.2205569 +-3.1014981 -1.2279699 +-3.6245987 -1.4377153 +-2.7173152 -1.0798131 +-2.6102254 -1.039157 +-2.3497393 -0.9371657 +-2.538955 -1.0144817 +-2.5287507 -1.0122473 +-3.1882782 -1.278578 +-3.6131704 -1.4516063 +-4.497454 -1.8101537 +-3.6098747 -1.4555533 +-4.2872815 -1.731826 +-4.6348724 -1.8756219 +-4.633693 -1.8785337 +-4.6325116 -1.8814447 +-4.6313286 -1.8843551 +-4.2990556 -1.7523117 +-4.6289573 -1.8901734 +-4.4029336 -1.8011084 +-4.251871 -1.7424325 +-3.413426 -1.4013401 +-3.335363 -1.3717419 +-4.2394657 -1.7466893 +-4.2168083 -1.7404542 +-4.620599 -1.9105144 +-4.1426144 -1.715927 +-3.5312893 -1.4653081 +-4.1211343 -1.7131001 +-4.5283384 -1.8857073 +-4.614574 -1.9250209 +-4.6133637 -1.92792 +-4.6121516 -1.9308182 +-4.6109376 -1.9337158 +-4.4360056 -1.863632 +-4.608504 -1.9395086 +-4.385243 -1.8487924 +-4.606063 -1.9452982 +-4.60484 -1.9481919 +-4.569744 -1.9367299 +-4.602388 -1.953977 +-4.601159 -1.9568683 +-4.594134 -1.9572902 +-4.5986967 -1.9626487 +-4.1444564 -1.7718657 +-4.5962267 -1.9684261 +-3.9548106 -1.6966684 +-3.600116 -1.5471785 +-4.372761 -1.8824846 +-3.6120353 -1.5576811 +-2.8594835 -1.2352765 +-2.218367 -0.9599732 +-1.6663808 -0.7223508 +-2.298717 -0.99817514 +-1.7542957 -0.7630808 +-1.4634273 -0.63765305 +-1.1105036 -0.48470554 +-1.333121 -0.5828696 +-1.0682982 -0.46788308 +-1.8495882 -0.8114505 +-2.5744925 -1.1314096 +-3.2473214 -1.4295322 +-3.3677151 -1.4850585 +-3.0282884 -1.3376551 +-2.1288962 -0.9419748 +-2.7658372 -1.2258813 +-2.917198 -1.2951615 +-2.2717583 -1.010312 +-2.5227125 -1.1238171 +-2.371045 -1.0580384 +-2.2732887 -1.0161295 +-2.868892 -1.2845194 +-3.0061576 -1.3482469 +-2.6053534 -1.170455 +-3.005904 -1.3526728 +-2.9784606 -1.3425742 +-3.8109975 -1.7207314 +-4.173763 -1.8876841 +-3.4722238 -1.573025 +-3.1227956 -1.4170886 +-2.304088 -1.047315 +-1.751094 -0.79728144 +-1.3388559 -0.61060333 +-2.2337377 -1.0204222 +-2.2159944 -1.0140002 +-2.5509636 -1.1692151 +-2.4324198 -1.1167313 +-2.7744555 -1.2758723 +-2.2988002 -1.0588858 +-2.2848527 -1.0542021 +-2.6717656 -1.2347554 +-1.9344972 -0.8955026 +-1.2785586 -0.5928363 +-0.90695584 -0.4212258 +-1.0890418 -0.5066258 +-0.9064258 -0.42236516 +-1.7407126 -0.8124475 +-1.6169657 -0.7559284 +-1.1380799 -0.5329218 +-0.9053614 -0.4246419 +-0.9050944 -0.42521068 +-1.6242473 -0.76431274 +-2.231912 -1.0519714 +-2.5079658 -1.1840109 +-3.3708813 -1.5939841 +-2.5824132 -1.2231282 +-2.6137154 -1.2399654 +-2.2347987 -1.0619253 +-3.113604 -1.4819124 +-2.2969768 -1.0950112 +-2.3810976 -1.1369499 +-2.0898015 -0.99947184 +-1.2133932 -0.58125645 +-1.8401513 -0.8829168 +-2.4288476 -1.167255 +-3.2801049 -1.5788898 +-3.0447628 -1.4679643 +-2.2479165 -1.085524 +-1.6516917 -0.79888576 +-1.2345394 -0.59807616 +-0.8996797 -0.43655056 +-1.3437812 -0.6530849 +-1.5439011 -0.75154376 +-1.5838252 -0.77220947 +-0.8985797 -0.43881032 +-0.8983038 -0.43937483 +-1.2868978 -0.6304447 +-1.2389598 -0.6079257 +-2.0041678 -0.98495656 +-2.6079354 -1.2837156 +-2.4994793 -1.2322813 +-2.6253276 -1.2963777 +-3.206297 -1.5857649 +-2.9178445 -1.4453851 +-3.3973768 -1.6855857 +-3.625779 -1.8017457 +-3.8280742 -1.9052718 +-3.2673478 -1.6287547 +-4.002674 -1.9984518 +-3.3449225 -1.6726764 +-3.4776306 -1.7417713 +-4.1178207 -2.0656478 +-3.9293098 -1.9741752 +-3.2263622 -1.6235379 +-2.5743716 -1.2974775 +-2.6800249 -1.3528388 +-3.4093935 -1.7237027 +-3.9212146 -1.9855608 +-3.897856 -1.9768109 +-4.4578815 -2.2643523 +-4.047738 -2.0592232 +-3.976906 -2.0263348 +-4.4536057 -2.2727513 +-3.8944283 -1.9904786 +-3.5655315 -1.825203 +-3.7299166 -1.9123106 +-3.8131993 -1.958036 +-3.7308884 -1.9187334 +-4.445006 -2.2895248 +-4.4435663 -2.2923172 +-4.4421253 -2.2951088 +-4.4406824 -2.2978992 +-3.6686184 -1.9013063 +-3.1634068 -1.6419965 +-3.700304 -1.9236305 +-4.3668904 -2.2736466 +-3.719404 -1.9395007 +-3.001286 -1.567434 +-2.839167 -1.4850379 +-3.3157115 -1.7369506 +-2.6952999 -1.414104 +-2.6561403 -1.3956878 +-3.071051 -1.6161687 +-3.503774 -1.8467052 +-3.0070007 -1.5872902 +-2.9927554 -1.5821757 +-2.2089036 -1.1695542 +-2.3913548 -1.2680817 +-3.1848717 -1.6914303 +-2.8160355 -1.497817 +-2.0476217 -1.0907576 +-1.5044644 -0.8026344 +-1.8344419 -0.98015916 +-2.3523555 -1.2587857 +-2.789135 -1.494769 +-2.8926868 -1.5526055 +-2.0379808 -1.095505 +-2.378869 -1.2806747 +-1.6212813 -0.87413836 +-2.0113018 -1.0860555 +-1.2011423 -0.64956355 +-1.0069107 -0.5453434 +-1.6621742 -0.9015857 +-2.389377 -1.2979739 +-1.8056198 -0.9823311 +-1.7200484 -0.93717784 +-1.1948808 -0.65201133 +-0.8775147 -0.47954977 +-0.8772132 -0.48010102 +-1.6786824 -0.9201183 +-1.6218386 -0.89028674 +-2.435821 -1.3391039 +-2.501165 -1.3770741 +-2.4013586 -1.3240904 +-2.5333383 -1.3989394 +-2.028692 -1.1219317 +-2.4412067 -1.3520691 +-2.2011013 -1.2208941 +-1.8020111 -1.0010101 +-1.2460872 -0.69322145 +-1.9667403 -1.0957528 +-2.4732544 -1.3799901 +-2.7251365 -1.5227777 +-3.0709646 -1.7185556 +-2.9527037 -1.6548122 +-3.3022015 -1.8534122 +-3.772927 -2.1207328 +-4.0734205 -2.2930071 +-4.1116524 -2.317932 +-4.0156384 -2.2671304 +-3.3094783 -1.8711929 +-3.3039262 -1.8707943 +-3.741793 -2.121835 +-2.9588253 -1.6803002 +-2.365478 -1.345308 +-3.1874714 -1.8154482 +-2.5334291 -1.4450425 +-2.9001231 -1.6566169 +-3.417677 -1.9551047 +-2.9351814 -1.6815386 +-2.7344334 -1.5688146 +-2.39407 -1.3755394 +-3.112566 -1.7909616 +-3.8964043 -2.2452397 +-3.0450838 -1.7572296 +-3.7302732 -2.1557581 +-3.4895995 -2.0195966 +-3.687859 -2.137433 +-3.0153356 -1.7501795 +-2.4030025 -1.3967847 +-2.2360144 -1.3016005 +-1.9886488 -1.1592805 +-1.6629908 -0.97083914 +-0.929815 -0.5436013 +-1.0809505 -0.63287187 +-0.8626549 -0.50579286 +-0.862337 -0.5063348 +-0.86201864 -0.5068765 +-1.2275602 -0.7228573 +-0.86138105 -0.50795937 +-1.2533853 -0.7401874 +-1.5566363 -0.9205921 +-2.2610855 -1.3391206 +-2.8517754 -1.6913759 +-2.2462978 -1.3341782 +-2.6221337 -1.5596339 +-2.8489432 -1.6969634 +-2.823161 -1.6840103 +-2.8646467 -1.7111977 +-2.5945213 -1.552051 +-2.766775 -1.6574551 +-2.888905 -1.7330854 +-2.0539753 -1.2339578 +-2.5678246 -1.5448573 +-2.547902 -1.5350527 +-2.8568656 -1.7236435 +-2.7863944 -1.6835147 +-2.454511 -1.4850998 +-2.1523962 -1.3041537 +-2.7857845 -1.6903225 +-1.9516742 -1.1858902 +-1.3490329 -0.8208699 +-0.89733535 -0.5467904 +-1.2876563 -0.78574204 +-2.0977445 -1.2818762 +-1.6112295 -0.98597074 +-1.3108575 -0.80329454 +-0.9793727 -0.6010071 +-0.8863164 -0.5446686 +-0.85165375 -0.52410483 +-0.8513243 -0.52463984 +-1.0453025 -0.6450881 +-1.553464 -0.96003836 +-0.95375603 -0.59024817 +-0.85000306 -0.5267778 +-0.8496719 -0.52731174 +-0.8493404 -0.5278455 +-0.84900856 -0.5283791 +-0.84867644 -0.5289124 +-1.4779588 -0.9223838 +-2.009116 -1.25563 +-1.6168824 -1.0119106 +-2.3999507 -1.5040858 +-2.2129402 -1.3888208 +-2.2778149 -1.4315311 +-2.804936 -1.7652688 +-3.4553137 -2.1776118 +-3.206588 -2.023676 +-3.743921 -2.366077 +-3.4835167 -2.2045712 +-3.0132406 -1.909606 +-3.7145982 -2.3573556 +-3.5397882 -2.249539 +-3.7401476 -2.380168 +-3.725534 -2.3741581 +-4.214893 -2.6897357 +-4.213202 -2.6923833 +-3.5213208 -2.2533643 +-3.270143 -2.095528 +-2.6878414 -1.7247686 +-2.5537076 -1.6409621 +-2.83724 -1.8256743 +-3.5022104 -2.2566745 +-4.192377 -2.705118 +-3.5782878 -2.3120644 +-2.7879443 -1.8038782 +-2.1776767 -1.4109598 +-2.0852847 -1.3529582 +-2.5098286 -1.6306492 +-1.8583144 -1.209018 +-2.3850615 -1.5538532 +-2.6151958 -1.7061259 +-2.9093714 -1.9006499 +-2.74227 -1.7939444 +-2.6758716 -1.7529097 +-3.459593 -2.2694175 +-3.817732 -2.5077813 +-3.4676783 -2.2809591 +-4.04723 -2.6658194 +-4.173855 -2.7529864 +-4.1721244 -2.7556086 +-3.7400413 -2.4736023 +-4.0012474 -2.6499753 +-4.1669226 -2.7634678 +-3.4404562 -2.284795 +-3.574968 -2.3773623 +-3.354272 -2.2336395 +-3.311055 -2.2078652 +-3.830388 -2.5576432 +-4.1339493 -2.7640955 +-4.154728 -2.781768 +-3.8202887 -2.5613246 +-3.582793 -2.4053593 +-4.075138 -2.739618 +-3.8052406 -2.5616455 +-3.5934203 -2.4223328 +-2.8787804 -1.9432243 +-2.262805 -1.5295012 +-1.8741894 -1.26854 +-1.9167993 -1.2991372 +-1.7247598 -1.170562 +-2.166738 -1.4725137 +-2.966573 -2.018807 +-2.8588395 -1.9481215 +-2.3309388 -1.5905356 +-2.82873 -1.9328136 +-2.863362 -1.9591172 +-3.1920433 -2.186947 +-3.099322 -2.1262844 +-2.9466724 -2.0242834 +-2.1446817 -1.475322 +-2.7064571 -1.8642724 +-3.3295405 -2.2965531 +-3.9390757 -2.7206345 +-3.331036 -2.3037674 +-2.8966813 -2.0060563 +-3.6353014 -2.5209587 +-3.4522004 -2.397198 +-3.9607332 -2.7540116 +-3.7110722 -2.583876 +-3.8676593 -2.6965113 +-3.2387836 -2.261088 +-3.8136554 -2.665988 +-3.3795152 -2.3656588 +-3.5440528 -2.4841545 +-3.1060681 -2.180067 +-3.570935 -2.509695 +-2.9284618 -2.0609076 +-2.632319 -1.8549709 +-3.2185683 -2.2711232 +-3.6077693 -2.5491529 +-4.0124598 -2.8388777 +-3.413901 -2.4186082 +-3.3023438 -2.3426924 +-3.8263805 -2.7180612 +-4.074425 -2.8981128 +-4.0726037 -2.9006722 +-4.0707803 -2.9032307 +-4.0689554 -2.9057877 +-4.0671287 -2.9083438 +-3.8790603 -2.777544 +-4.063471 -2.9134524 +-4.0616393 -2.916005 +-3.7001 -2.659967 +-4.057972 -2.9211066 +-4.0561357 -2.9236557 +-4.054298 -2.9262037 +-3.4523304 -2.4950323 +-2.914209 -2.1089153 +-2.191072 -1.5877041 +-2.266303 -1.6443908 +-1.498367 -1.0886273 +-1.7237335 -1.2540213 +-1.6301411 -1.1874996 +-1.0605712 -0.7736086 +-0.8075372 -0.5898167 +-0.8071664 -0.5903239 +-1.18573 -0.8683318 +-1.3773217 -1.009968 +-1.7535315 -1.2875316 +-1.2531515 -0.92133975 +-2.0139103 -1.4826136 +-1.779329 -1.3116426 +-1.9971303 -1.4741338 +-1.4317822 -1.0582261 +-1.6114101 -1.192555 +-1.6199749 -1.2004694 +-2.4201052 -1.7957563 +-2.2377167 -1.6626024 +-2.4850743 -1.8488111 +-2.1006212 -1.5648425 +-1.3926296 -1.0387906 +-1.0877311 -0.8124248 +-0.86024654 -0.6433593 +-0.8004385 -0.5994148 +-0.80006176 -0.59991765 +-0.8616218 -0.64692396 +-1.6112744 -1.2113628 +-1.3407212 -1.0092791 +-0.8886983 -0.66987675 +-1.390084 -1.0491781 +-1.0893036 -0.8232363 +-1.6749889 -1.2675196 +-1.2403902 -0.9398706 +-0.79665655 -0.6044323 +-0.79627657 -0.6049327 +-1.0049262 -0.7644405 +-0.7955158 -0.6059329 +-0.7951349 -0.60643256 +-0.79475373 -0.60693204 +-0.7943722 -0.6074313 +-1.1789829 -0.9027054 +-1.2185676 -0.9342291 +-0.7932258 -0.60892755 +-0.79284304 -0.60942584 +-0.79246 -0.6099239 +-0.96017474 -0.7399682 +-1.7159449 -1.3241292 +-2.221486 -1.7164642 +-2.6194515 -2.0265877 +-3.236608 -2.507315 +-3.9507751 -3.0645354 +-3.3844202 -2.628633 +-3.6456585 -2.8352075 +-3.192238 -2.4858055 +-3.6686418 -2.8604872 +-3.1624796 -2.4690225 +-3.2053473 -2.5057335 +-3.3047543 -2.5867906 +-3.884144 -3.0442445 +-3.9333825 -3.0868273 +-3.9314423 -3.089298 +-3.9295003 -3.0917675 +-3.836949 -3.0228527 +-3.2915835 -2.5965524 +-2.5627832 -2.0242548 +-2.7687879 -2.1897972 +-2.8998268 -2.2963972 +-2.698078 -2.1393905 +-3.2371528 -2.5701542 +-3.256835 -2.5891187 +-3.6288776 -2.8886082 +-3.9099967 -3.1163962 +-3.908038 -3.1188524 +-3.768303 -3.011213 +-3.9041154 -3.123761 +-3.8274152 -3.0663378 +-3.14243 -2.5208046 +-2.5721905 -2.0660255 +-1.8853319 -1.5162792 +-1.9831648 -1.5970145 +-2.5588245 -2.063237 +-2.0480123 -1.6534821 +-2.5462375 -2.058373 +-2.5304403 -2.0482328 +-2.8069575 -2.2749767 +-2.297385 -1.8643724 +-2.4850004 -2.0192168 +-3.0519056 -2.483048 +-3.08835 -2.515926 +-3.3345265 -2.7199612 +-3.8233724 -3.1227138 +-3.7613108 -3.075967 +-3.3997195 -2.7838273 +-3.6634774 -3.0036502 +-3.864554 -3.1725736 +-3.337714 -2.7435808 +-3.836111 -3.1573012 +-3.858567 -3.1798525 +-3.8565683 -3.1822762 +-3.4734094 -2.86978 +-3.6964185 -3.0579433 +-3.8505628 -3.18954 +-3.8485582 -3.1919587 +-3.3319206 -2.7669997 +-3.6380258 -3.0250697 +-3.8352313 -3.1931267 +-3.669402 -3.0589669 +-3.0305624 -2.5296326 +-2.5999303 -2.172954 +-3.3500116 -2.8034296 +-3.647569 -3.0563369 +-3.8304465 -3.2136707 +-3.8284266 -3.2160769 +-3.826405 -3.2184815 +-3.824382 -3.220885 +-3.8223577 -3.2232873 +-3.8203316 -3.2256885 +-3.818304 -3.2280881 +-3.8162751 -3.2304866 +-3.5367215 -2.9976604 +-3.8122125 -3.2352798 +-3.3061688 -2.809395 +-3.636141 -3.0937233 +-2.9145062 -2.482896 +-3.5400763 -3.019666 +-3.7210233 -3.1780543 +-3.4580302 -2.9571965 +-2.762806 -2.36567 +-3.4122705 -2.925496 +-3.2590604 -2.7976968 +-2.9002647 -2.4928603 +-2.46826 -2.124238 +-3.0367975 -2.6168568 +-3.3345199 -2.8770618 +-3.7836065 -3.2686882 +-3.7815518 -3.2710648 +-3.779496 -3.2734401 +-3.7774384 -3.2758143 +-3.7753794 -3.278187 +-3.7733188 -3.2805586 +-3.771257 -3.2829287 +-3.7691934 -3.2852976 +-3.3411534 -2.9159064 +-3.0104725 -2.6306472 +-2.3437493 -2.0506415 +-2.085584 -1.827077 +-1.5768223 -1.3831282 +-0.84793484 -0.7447192 +-1.289499 -1.1339697 +-1.0910951 -0.960712 +-0.75011104 -0.66131186 +-0.7496954 -0.66178304 +-0.8719512 -0.770678 +-0.7488632 -0.6627246 +-0.74844664 -0.663195 +-0.7878208 -0.6989684 +-0.74761266 -0.66413504 +-0.74719524 -0.6646046 +-0.7467775 -0.665074 +-0.74635947 -0.665543 +-0.74594116 -0.66601187 +-0.74552256 -0.6664804 +-1.3978199 -1.2512007 +-1.04646 -0.93788046 +-1.7567858 -1.5764952 +-1.7180638 -1.5436969 +-1.5010397 -1.3504041 +-0.87982774 -0.7925342 +-1.003937 -0.90547305 +-1.1674489 -1.054279 +-1.9004848 -1.7184252 +-2.3139658 -2.0949402 +-2.8460062 -2.579877 +-2.2234566 -2.018088 +-2.0795395 -1.8898484 +-1.4399093 -1.3102167 +-2.0219672 -1.8421721 +-1.5033723 -1.3714209 +-1.8519397 -1.6915276 +-2.0499997 -1.874796 +-1.4117547 -1.2927285 +-1.2469853 -1.1432922 +-1.7234424 -1.5821239 +-1.0759965 -0.98901373 +-1.7816255 -1.6396666 +-2.3632872 -2.1777258 +-2.2003083 -2.0301015 +-2.1933887 -2.0262702 +-2.8652136 -2.650246 +-3.4687798 -3.2125752 +-3.0554569 -2.8333488 +-3.0725179 -2.8527625 +-3.2323213 -3.0049202 +-3.1660423 -2.9470148 +-3.6577206 -3.4089706 +-3.23133 -3.0153732 +-3.5084581 -3.278107 +-3.6512883 -3.415859 +-3.6491413 -3.4181526 +-3.646993 -3.4204447 +-3.644843 -3.4227355 +-3.6426919 -3.425025 +-3.4992945 -3.294341 +-3.638385 -3.4295998 +-3.6002898 -3.3979654 +-3.6340723 -3.4341693 +-3.1509395 -2.9813626 +-3.629754 -3.4387333 +-3.6275926 -3.441013 +-3.1435146 -2.9855874 +-3.3265269 -3.1633835 +-2.7506588 -2.6190507 +-2.5790846 -2.4587772 +-3.299974 -3.1499991 +-3.6013672 -3.4420226 +-3.6124232 -3.456935 +-3.6102505 -3.459204 +-3.0673368 -2.9427037 +-2.5764124 -2.4748373 +-3.1037872 -2.985172 +-2.9213064 -2.8132007 +-2.3384974 -2.2547927 +-2.7860937 -2.6897478 +-2.3501363 -2.271721 +-2.0806925 -2.0137978 +-1.614327 -1.5643916 +-2.0781312 -2.0163827 +-1.6048259 -1.5590997 +-2.2534032 -2.1919513 +-2.5184665 -2.4528675 +-2.6932688 -2.6264162 +-2.680322 -2.6170783 +-2.580868 -2.5231407 +-1.8878511 -1.8479459 +-1.6039057 -1.5719771 +-1.8700292 -1.8351082 +-1.9850518 -1.9504325 +-1.4367378 -1.4134564 +-0.73720104 -0.7261673 +-0.711977 -0.70220274 +-0.7115357 -0.70264995 +-1.31332 -1.2985501 +-1.1061622 -1.0950973 +-0.8273522 -0.82010627 +-1.2262502 -1.2170391 +-1.6625462 -1.6521327 +-1.0030682 -0.9980388 +-0.7084384 -0.70577264 +-0.7079948 -0.70621765 +-0.9847221 -0.9834854 +-1.459036 -1.459036 +-1.8472964 -1.8496192 +-1.9257607 -1.9306068 +-1.3359464 -1.3409925 +-1.7115874 -1.7202126 +-1.384787 -1.3935152 +-0.9537269 -0.96094507 +-1.2091776 -1.2198611 +-1.1959933 -1.2080775 +-1.6505386 -1.6693121 +-1.7123748 -1.7340295 +-2.3095787 -2.3417265 +-1.9460826 -1.9756523 +-1.3707303 -1.3933079 +-1.793365 -1.8251964 +-1.1251779 -1.1465894 +-0.7742102 -0.7899353 +-1.1446398 -1.1693575 +-0.69906455 -0.71505857 +-0.94728607 -0.9701779 +-0.6981654 -0.7159365 +-0.69771546 -0.716375 +-0.6972652 -0.71681327 +-1.3744003 -1.4147094 +-1.3327723 -1.3735862 +-1.2702786 -1.3108258 +-1.800239 -1.8600396 +-1.6663166 -1.7238348 +-2.2121654 -2.2914045 +-2.601988 -2.6985817 +-2.9466598 -3.059894 +-3.466003 -3.6037235 +-3.2727466 -3.4070702 +-2.7512238 -2.867747 +-2.841679 -2.9657614 +-2.7526734 -2.876485 +-2.2178855 -2.3205605 +-2.3541052 -2.4661865 +-2.8537872 -2.9934223 +-3.1528158 -3.3112457 +-3.2017915 -3.3669157 +-3.0621502 -3.2241273 +-3.0433524 -3.2083697 +-2.8104274 -2.966546 +-2.4059234 -2.54277 +-1.9193505 -2.031076 +-1.8295977 -1.9385371 +-1.7364985 -1.842212 +-1.6264595 -1.7276477 +-1.7402014 -1.8507944 +-2.350472 -2.5029986 +-2.0012465 -2.133796 +-2.3114762 -2.467679 +-2.9035175 -3.103635 +-3.046997 -3.2611082 +-2.8310146 -3.0337677 +-3.4089706 -3.6577206 +-3.4066715 -3.6598618 +-2.923327 -3.1445534 +-2.877939 -3.099634 +-2.2562492 -2.433118 +-1.8726314 -2.0219748 +-2.321029 -2.509293 +-2.5571778 -2.7680836 +-3.1621075 -3.427223 +-3.3882322 -3.6769392 +-3.3859212 -3.6790674 +-3.3836088 -3.681194 +-3.3812952 -3.6833193 +-3.2417777 -3.5357966 +-3.376664 -3.6875656 +-3.3743465 -3.6896865 +-3.3720274 -3.6918058 +-3.2842798 -3.6002772 +-2.868301 -3.1482456 +-3.15746 -3.4700031 +-2.9730258 -3.2714396 +-2.4963393 -2.7503765 +-3.068952 -3.3855324 +-3.121428 -3.4477725 +-3.353428 -3.7087088 +-3.288206 -3.6411734 +-3.3487647 -3.71292 +-2.9744644 -3.3020864 +-2.311449 -2.5692875 +-1.9324163 -2.1506908 +-1.453809 -1.620069 +-1.5056446 -1.6799549 +-1.4652102 -1.6369076 +-1.0274805 -1.1493359 +-1.5713679 -1.7599506 +-1.7389349 -1.9500926 +-1.799541 -2.0206125 +-1.9367613 -2.177443 +-2.4846811 -2.79699 +-2.2050705 -2.4853773 +-1.7518011 -1.9769896 +-1.3728796 -1.5513216 +-1.4197634 -1.6063317 +-1.0937265 -1.2390189 +-0.66131186 -0.75011104 +-0.66084045 -0.7505264 +-1.1616943 -1.3210262 +-0.7967285 -0.9071524 +-0.86577684 -0.98702073 +-0.65895206 -0.7521849 +-0.65847933 -0.7525988 +-0.6580063 -0.7530124 +-0.65753305 -0.7534257 +-0.65705955 -0.75383866 +-0.86794776 -0.997053 +-1.463912 -1.6838008 +-1.2157044 -1.4000865 +-1.227788 -1.4157987 +-1.019062 -1.1766034 +-1.6715567 -1.9324222 +-1.4076426 -1.6293894 +-1.8552542 -2.150243 +-1.7771559 -2.0623453 +-1.8644695 -2.166422 +-1.3294563 -1.5467274 +-1.3033066 -1.5182327 +-0.83518785 -0.97415507 +-0.6504031 -0.75958925 +-0.6499257 -0.7599977 +-0.64944804 -0.76040596 +-0.6489701 -0.7608139 +-0.73323613 -0.860697 +-1.0927894 -1.2843865 +-0.6475349 -0.7620358 +-0.647056 -0.7624425 +-0.64657676 -0.7628489 +-0.64609736 -0.763255 +-0.64561766 -0.76366085 +-1.1120646 -1.3170694 +-1.5479906 -1.8356953 +-2.122515 -2.5202103 +-1.869313 -2.2223985 +-2.0083892 -2.390792 +-2.4169784 -2.880851 +-2.422354 -2.8909457 +-2.169971 -2.593048 +-2.0677705 -2.4740784 +-2.4454603 -2.9297218 +-2.1112928 -2.532614 +-1.9878606 -2.3875985 +-1.7893409 -2.1519067 +-2.2753243 -2.739863 +-2.8194847 -3.3994646 +-2.223893 -2.6847882 +-2.5641503 -3.0995252 +-2.5722554 -3.1133034 +-2.1227672 -2.5725603 +-2.4066088 -2.9202807 +-3.0152285 -3.6634932 +-3.1750011 -3.8625598 +-3.0205233 -3.6793396 +-2.849875 -3.4759214 +-2.5823174 -3.1536274 +-2.579624 -3.1543794 +-2.4431267 -2.9913032 +-2.1792054 -2.671589 +-1.9516059 -2.3956358 +-1.8901676 -2.3231986 +-2.141122 -2.635026 +-2.56196 -3.1569915 +-1.9402857 -2.3940022 +-2.0060718 -2.4783535 +-2.4997785 -3.0922627 +-3.0940769 -3.8323412 +-3.1384568 -3.8923116 +-3.1360106 -3.8942826 +-3.133563 -3.8962524 +-3.1311145 -3.8982205 +-3.1286645 -3.900187 +-3.1262133 -3.902152 +-2.513069 -3.1408648 +-2.8087497 -3.5149357 +-3.0488253 -3.8202913 +-3.1163962 -3.9099967 +-2.7516346 -3.4568014 +-3.1114802 -3.91391 +-2.9061022 -3.660285 +-3.1065595 -3.9178166 +-3.1040974 -3.9197679 +-3.1016338 -3.9217174 +-3.099169 -3.9236655 +-2.7278645 -3.4580445 +-2.7417455 -3.480136 +-2.756565 -3.5034726 +-2.4143672 -3.072525 +-2.0307107 -2.5876284 +-2.3504827 -2.998975 +-1.7946957 -2.2928135 +-1.825728 -2.3354807 +-1.6862911 -2.1599078 +-1.8079239 -2.3187048 +-2.2161736 -2.8459806 +-2.4169266 -3.107811 +-2.5451813 -3.2769742 +-2.1537902 -2.7766495 +-2.1886554 -2.8252614 +-2.4379864 -3.1512017 +-2.2609298 -2.9261458 +-2.5486472 -3.302803 +-2.8920271 -3.7526631 +-2.4401813 -3.170471 +-2.1615367 -2.8120885 +-1.8697847 -2.4356945 +-1.5616142 -2.0369012 +-1.6765648 -2.1896858 +-1.6871427 -2.2063718 +-1.2654395 -1.6570433 +-0.9859123 -1.2926966 +-0.8163345 -1.0717474 +-1.3788333 -1.8126011 +-1.9682064 -2.5907621 +-2.4752867 -3.2624886 +-2.1459157 -2.832063 +-1.5765555 -2.0833704 +-1.1094028 -1.4679582 +-0.6045292 -0.80095685 +-0.8110308 -1.0759616 +-0.70474863 -0.9361845 +-1.1787697 -1.5679212 +-1.4450244 -1.9245918 +-0.8941027 -1.1923926 +-0.7562134 -1.0098221 +-0.59891176 -0.800815 +-0.5984085 -0.80119115 +-0.597905 -0.80156696 +-0.6894897 -0.9255608 +-0.59689724 -0.8023177 +-0.6162027 -0.82935464 +-0.9782039 -1.318306 +-0.5953838 -0.8034414 +-0.64188635 -0.867333 +-0.59437376 -0.80418897 +-0.8486691 -1.1497618 +-0.5933627 -0.8049352 +-1.0079365 -1.3691319 +-1.2961447 -1.762939 +-0.9349888 -1.273392 +-0.5913378 -0.80642396 +-1.0725898 -1.4646497 +-1.6493666 -2.2552252 +-2.0702207 -2.8344064 +-1.8730189 -2.567797 +-2.2152226 -3.040949 +-2.540337 -3.491858 +-2.9389262 -4.045085 +-2.936384 -4.046931 +-2.893207 -3.9926994 +-2.9312963 -4.0506177 +-2.9287505 -4.0524583 +-2.9262037 -4.054298 +-2.9236557 -4.0561357 +-2.6913517 -3.7387984 +-2.2120626 -3.0770507 +-2.4522204 -3.4156442 +-2.8069015 -3.9148614 +-2.9108987 -4.0653005 +-2.6159832 -3.6582816 +-2.2112741 -3.0964324 +-2.1753433 -3.0501692 +-1.6279002 -2.2856054 +-1.1029404 -1.550612 +-0.74979633 -1.055534 +-1.0976447 -1.5472796 +-1.1911571 -1.6813357 +-0.6987167 -0.9875637 +-0.5770597 -0.816702 +-0.6671444 -0.9454572 +-1.0081006 -1.4305574 +-0.6180126 -0.8781696 +-0.57500523 -0.81814975 +-1.0893174 -1.552014 +-1.2997448 -1.8542987 +-0.9597399 -1.3710581 +-1.3576014 -1.9420283 +-1.5322095 -2.194738 +-1.9627142 -2.8151598 +-1.5311415 -2.1990905 +-1.0021732 -1.4412941 +-1.2195684 -1.7562982 +-1.5401102 -2.2208872 +-1.4800133 -2.1370919 +-1.6176106 -2.3389163 +-1.8447449 -2.6709173 +-1.3290844 -1.9269053 +-1.4629345 -2.1238148 +-1.2659879 -1.8403718 +-1.6076403 -2.3401809 +-1.909956 -2.7839968 +-1.3468295 -1.9658171 +-1.5099776 -2.206919 +-1.7287724 -2.5301096 +-1.966896 -2.882497 +-2.1880224 -3.2108903 +-2.0821548 -3.0596607 +-2.2620432 -3.3284955 +-1.9340208 -2.849675 +-1.9398979 -2.8622034 +-1.9808149 -2.9265316 +-2.1703725 -3.2109356 +-1.8009751 -2.668046 +-1.2592715 -1.8680718 +-1.6450236 -2.4436285 +-1.1157113 -1.6596026 +-1.6589113 -2.4709558 +-1.5886643 -2.3695383 +-1.9949108 -2.9795122 +-1.4473399 -2.1646247 +-1.7884011 -2.6783526 +-2.1707697 -3.255424 +-2.5723712 -3.8629477 +-2.721765 -4.0928655 +-2.7660854 -4.1651855 +-2.7634678 -4.1669226 +-2.4562535 -3.7087436 +-2.041674 -3.0869734 +-2.347842 -3.5547462 +-2.3438036 -3.553485 +-2.3157823 -3.5158057 +-2.5677624 -3.9036973 +-2.745114 -4.1790366 +-2.7424877 -4.180761 +-2.463799 -3.7610667 +-2.5011165 -3.8232718 +-2.504388 -3.833528 +-2.5908828 -3.9713752 +-2.495506 -3.8304362 +-2.3079362 -3.5474002 +-2.253157 -3.467967 +-1.8772695 -2.8933942 +-2.0835185 -3.2157044 +-2.621272 -4.0512495 +-2.0962365 -3.2442598 +-1.7963607 -2.7839904 +-2.1411567 -3.3229342 +-2.535263 -3.9399965 +-2.0273592 -3.1550288 +-1.8228216 -2.8406448 +-1.7397735 -2.714976 +-1.4237022 -2.224812 +-1.9463032 -3.0456913 +-1.6093092 -2.5218337 +-1.5600446 -2.4480252 +-1.5605431 -2.4522057 +-1.5545944 -2.44625 +-1.3699089 -2.158631 +-1.8904239 -2.9829726 +-1.6501139 -2.6074002 +-2.1367424 -3.3810372 +-2.1272094 -3.370641 +-2.594113 -4.1161947 +-2.3043277 -3.6614773 +-1.96113 -3.1204987 +-1.5756391 -2.5106158 +-1.1048884 -1.7629832 +-1.5374229 -2.456573 +-1.1581274 -1.8531035 +-1.6789265 -2.6901863 +-1.3978988 -2.2430248 +-1.4935249 -2.3998215 +-1.8940154 -3.0476036 +-2.299601 -3.7054102 +-2.633889 -4.2500153 +-2.1555223 -3.4830134 +-2.4745796 -4.0041842 +-1.9757962 -3.201586 +-1.8725531 -3.0385606 +-1.976107 -3.2111115 +-2.080184 -3.3849964 +-1.6590171 -2.7034554 +-1.2627819 -2.0606725 +-1.1862427 -1.938505 +-0.69540316 -1.1380024 +-0.5208905 -0.8536235 +-0.520354 -0.8539507 +-0.51981735 -0.85427743 +-0.7880645 -1.2969542 +-0.5187434 -0.85493 +-1.0008538 -1.6518251 +-0.73437756 -1.2137486 +-0.7136054 -1.1810921 +-1.1949891 -1.9806434 +-0.78256816 -1.2989178 +-0.7619515 -1.2664975 +-0.54948974 -0.9146491 +-1.0156746 -1.6930425 +-1.3625712 -2.2745278 +-1.7889739 -2.990579 +-1.6939374 -2.8357518 +-1.5285139 -2.5624788 +-1.8067648 -3.033283 +-1.3596973 -2.2859905 +-1.7290107 -2.9110599 +-2.1260788 -3.5847144 +-2.5011265 -4.223116 +-2.545207 -4.30371 +-2.0405178 -3.4552803 +-1.5558258 -2.638319 +-1.3973415 -2.3729727 +-1.8763698 -3.191045 +-1.40565 -2.3939574 +-1.0444485 -1.781359 +-1.3098538 -2.2372413 +-1.1409495 -1.9515626 +-1.5270977 -2.6158292 +-1.7469549 -2.996755 +-2.1271915 -3.6542943 +-2.2223415 -3.823275 +-1.9300951 -3.325307 +-1.4867253 -2.5651484 +-1.0846503 -1.8741343 +-1.3165045 -2.2780485 +-1.0719122 -1.8575047 +-0.9133865 -1.5850972 +-1.1533544 -2.0044494 +-0.9275738 -1.6144041 +-1.0630934 -1.8529648 +-0.9247481 -1.6141787 +-0.9554398 -1.670184 +-0.8472489 -1.4832193 +-0.49545866 -0.86863154 +-0.5362228 -0.94147265 +-0.49436674 -0.86925346 +-0.49382046 -0.8695639 +-0.76491076 -1.3488973 +-0.49272734 -0.87018377 +-0.9700228 -1.7156272 +-0.9747702 -1.7265548 +-1.0105356 -1.7925339 +-1.0245806 -1.8201199 +-0.8700055 -1.5477986 +-0.6557188 -1.1682861 +-1.0424173 -1.8599992 +-0.71830434 -1.2835704 +-0.95807683 -1.7145578 +-0.9531383 -1.7082394 +-1.1384437 -2.043365 +-0.68247443 -1.2267692 +-0.4856032 -0.87417936 +-0.48505384 -0.8744843 +-0.59520733 -1.074667 +-1.0070282 -1.820922 +-0.56827915 -1.0290964 +-0.48915485 -0.88712686 +-0.49657306 -0.9019202 +-0.48175368 -0.87630665 +-0.55884147 -1.0180435 +-0.8802825 -1.6060052 +-1.1561863 -2.1125178 +-0.8529744 -1.560834 +-0.8772445 -1.6076447 +-0.571992 -1.0498049 +-0.96905106 -1.7812098 +-0.6565385 -1.2085898 +-0.4767906 -0.87901694 +-0.4762382 -0.87931633 +-0.92592144 -1.7121702 +-0.56067514 -1.0383326 +-0.734529 -1.3623451 +-0.5304586 -0.9853334 +-0.95025176 -1.7677644 +-1.0223225 -1.9047073 +-0.988612 -1.8446811 +-0.5792996 -1.0825659 +-0.4712582 -0.8819953 +-0.47070393 -0.8822912 +-0.4701495 -0.8825868 +-0.51565635 -0.9694819 +-0.46904 -0.8831769 +-0.47506568 -0.89588135 +-0.4679298 -0.88376564 +-0.8506214 -1.608988 +-1.1737086 -2.223502 +-0.8394336 -1.5926665 +-1.0761087 -2.0448265 +-0.64955497 -1.2361712 +-0.9614733 -1.83258 +-1.2411572 -2.3692782 +-1.3110342 -2.5064986 +-1.2031507 -2.3037648 +-1.4851992 -2.8481846 +-1.5828311 -3.0400722 +-1.7372822 -3.3418436 +-1.4477886 -2.7892535 +-1.617708 -3.1214085 +-1.4951092 -2.8892934 +-1.1525623 -2.2307553 +-1.4432738 -2.7977295 +-1.4493104 -2.8137686 +-1.3912041 -2.705132 +-1.456108 -2.835714 +-1.6714084 -3.2600424 +-1.5200592 -2.9694338 +-1.8871107 -3.6921859 +-1.7224425 -3.3752394 +-1.7782743 -3.4900599 +-1.6481316 -3.239671 +-1.1946383 -2.3519113 +-1.5428665 -3.0422087 +-1.1861908 -2.342567 +-0.9464085 -1.8719465 +-0.55078363 -1.0911233 +-0.75302726 -1.4941084 +-0.7315053 -1.4536779 +-0.73145026 -1.455846 +-0.4483832 -0.89384145 +-0.7083998 -1.4143951 +-0.4974485 -0.99476904 +-0.44669756 -0.89468503 +-0.5999061 -1.2034359 +-1.0194771 -2.0483346 +-0.9895306 -1.9913018 +-0.7733955 -1.5588146 +-1.0881462 -2.1966753 +-0.6729917 -1.3607385 +-0.44275823 -0.896641 +-0.7873111 -1.5969305 +-0.7525932 -1.5289325 +-0.45669645 -0.9292758 +-0.86585295 -1.7646185 +-0.95008534 -1.9393655 +-1.1406405 -2.3320446 +-1.313785 -2.6903207 +-1.1785005 -2.4171407 +-0.806204 -1.65619 +-0.71313393 -1.4673376 +-1.133648 -2.336316 +-1.4725121 -3.0395365 +-1.5059972 -3.1136403 +-1.3899918 -2.8784125 +-1.6629542 -3.4491992 +-1.5977669 -3.3193214 +-1.7051095 -3.5480256 +-1.7460073 -3.6389813 +-1.4749329 -3.078974 +-1.45144 -3.0348244 +-1.209017 -2.5320268 +-1.2544687 -2.6314664 +-1.1824868 -2.4844894 +-0.97867787 -2.0596063 +-1.0967853 -2.3119068 +-0.82551825 -1.7429318 +-0.46944043 -0.9927501 +-0.426916 -0.9042913 +-0.8512848 -1.8061258 +-0.9578628 -2.035562 +-0.8960399 -1.9072914 +-0.64034104 -1.3652445 +-0.655699 -1.4002764 +-0.5607639 -1.1994997 +-0.4229346 -0.90616024 +-0.42236516 -0.9064258 +-0.705597 -1.51675 +-0.543643 -1.1705366 +-0.542457 -1.1699065 +-0.8147308 -1.7600111 +-0.57483375 -1.2438262 +-0.5547789 -1.2024148 +-0.683123 -1.4830335 +-1.0964751 -2.3843462 +-1.3974394 -3.0438468 +-1.5568222 -3.3966348 +-1.689677 -3.6926177 +-1.9538722 -4.27709 +-1.7643969 -3.8687522 +-1.369697 -3.0083082 +-1.5128956 -3.3283634 +-1.322437 -2.9142146 +-1.5675318 -3.4600985 +-1.3459201 -2.9758956 +-1.2813408 -2.8378553 +-0.94153035 -2.0887568 +-0.7446809 -1.6548268 +-0.5074942 -1.1296477 +-0.8024938 -1.7893035 +-0.527638 -1.1784457 +-0.69042027 -1.5446109 +-0.49951577 -1.119406 +-0.6376027 -1.4312723 +-0.40635395 -0.9137158 +-0.6933668 -1.5617267 +-0.9631216 -2.1729977 +-0.83460635 -1.8862398 +-0.5283467 -1.1961126 +-0.40348142 -0.91498786 +-0.40290645 -0.9152412 +-0.40643555 -0.9248333 +-0.401756 -0.91574675 +-0.54451996 -1.24328 +-0.4006049 -0.9162509 +-0.40002912 -0.9165024 +-0.3994532 -0.9167536 +-0.3988771 -0.9170044 +-0.39830086 -0.9172548 +-0.7053204 -1.6270937 +-0.95637774 -2.2100587 +-1.1019268 -2.5507987 +-1.3204582 -3.06195 +-1.4987732 -3.4814506 +-1.6112986 -3.7493165 +-1.2286942 -2.863997 +-1.1990262 -2.7996967 +-1.3508171 -3.1596088 +-1.5501158 -3.6320877 +-1.6496899 -3.8721375 +-1.4083655 -3.3114717 +-1.1459049 -2.699059 +-1.4070743 -3.3200135 +-1.121895 -2.6517646 +-1.2774526 -3.0247428 +-1.346545 -3.1939373 +-1.2755979 -3.030973 +-1.6341771 -3.889834 +-1.3429327 -3.2022176 +-1.3192822 -3.1513734 +-1.5353763 -3.674037 +-1.629309 -3.905707 +-1.7038829 -4.0917053 +-1.9192206 -4.6169896 +-1.8813463 -4.533912 +-1.6513207 -3.986641 +-1.3314005 -3.2200062 +-1.5500188 -3.7554173 +-1.4746931 -3.579292 +-1.575827 -3.831592 +-1.8056033 -4.398142 +-1.895989 -4.6265783 +-1.5740578 -3.8478932 +-1.6130978 -3.9504104 +-1.300574 -3.190779 +-1.0582079 -2.6008413 +-0.80220526 -1.9751977 +-0.6064821 -1.4959817 +-0.37512437 -0.9269745 +-0.4103756 -1.0159194 +-0.3739592 -0.9274452 +-0.3733764 -0.92767996 +-0.63711995 -1.5858454 +-0.8845883 -2.2058206 +-0.5442004 -1.359497 +-0.3710437 -0.9286154 +-0.37046018 -0.9288483 +-0.59706557 -1.4997499 +-0.36929265 -0.9293131 +-0.7069893 -1.7823784 +-0.9922886 -2.506235 +-1.2731217 -3.2214508 +-1.5685092 -3.9761932 +-1.7410315 -4.4216766 +-1.4614885 -3.7185764 +-1.2279781 -3.1302142 +-1.5426949 -3.9397316 +-1.1936206 -3.0539162 +-1.3129495 -3.3654585 +-1.5764704 -4.048447 +-1.7571265 -4.5207787 +-1.4546618 -3.7495658 +-1.6792537 -4.3365564 +-1.5831616 -4.0960464 +-1.2642545 -3.2770731 +-1.5490831 -4.0229025 +-1.7397684 -4.526583 +-1.750396 -4.5627937 +-1.6130967 -4.212806 +-1.7849944 -4.670524 +-1.7820594 -4.6716447 +-1.7791238 -4.6727633 +-1.7039616 -4.4838243 +-1.7732503 -4.6749954 +-1.7703127 -4.676109 +-1.7368951 -4.5965595 +-1.764435 -4.6783295 +-1.7614952 -4.6794376 +-1.666926 -4.4366655 +-1.4753219 -3.934201 +-1.1929001 -3.1871643 +-1.5250559 -4.0824223 +-1.4764502 -3.9598978 +-1.7438418 -4.6860447 +-1.740897 -4.6871395 +-1.7379516 -4.6882324 +-1.7350056 -4.6893234 +-1.5263516 -4.1333575 +-1.2738506 -3.4562666 +-1.1407434 -3.1011176 +-1.3974626 -3.8063903 +-1.5823848 -4.318464 +-1.3120899 -3.5877821 +-1.1266603 -3.0867543 +-0.8371067 -2.297935 +-0.6803523 -1.8712847 +-0.6289647 -1.7333356 +-0.9179107 -2.5345945 +-0.86320215 -2.3882155 +-1.1893559 -3.2970617 +-1.1122217 -3.0893145 +-1.3672054 -3.8050587 +-1.0839025 -3.0225673 +-1.1548507 -3.2267926 +-1.2634746 -3.5373046 +-1.3723471 -3.8497458 +-1.6759424 -4.7107553 +-1.6729822 -4.7118077 +-1.6700214 -4.7128577 +-1.6670599 -4.7139063 +-1.4657182 -4.152876 +-1.3561248 -3.8500671 +-1.5973456 -4.5440073 +-1.6552073 -4.718081 +-1.6522425 -4.71912 +-1.6492771 -4.720157 +-1.646311 -4.721193 +-1.6433443 -4.722226 +-1.5649645 -4.506118 +-1.6374089 -4.7242875 +-1.4962817 -4.3258867 +-1.3975481 -4.0486712 +-1.1313397 -3.2841594 +-1.2539961 -3.647659 +-1.5696393 -4.575159 +-1.6195871 -4.730427 +-1.3777616 -4.032378 +-1.2904509 -3.7846112 +-1.101424 -3.2368932 +-1.201371 -3.5379074 +-1.1791897 -3.4797657 +-1.1329086 -3.3501146 +-0.8899426 -2.6371007 +-1.0618747 -3.1531122 +-1.2111566 -3.603872 +-0.9093657 -2.7115152 +-1.1037096 -3.2978752 +-1.3908828 -4.164639 +-1.202061 -3.606802 +-1.382343 -4.1564455 +-1.1766882 -3.5455174 +-1.3827051 -4.175047 +-1.1513709 -3.4838715 +-0.9507188 -2.8828073 +-0.6773812 -2.0583293 +-0.4190532 -1.2760587 +-0.31140628 -0.95027685 +-0.31080914 -0.95047235 +-0.3102119 -0.95066744 +-0.3096145 -0.95086217 +-0.35173887 -1.0825409 +-0.462431 -1.4262649 +-0.42104417 -1.301403 +-0.4198576 -1.300525 +-0.30662575 -0.95183015 +-0.43911886 -1.3660567 +-0.3054294 -0.9522147 +-0.30510858 -0.95327353 +-0.30423257 -0.9525978 +-0.303634 -0.9527888 +-0.44248933 -1.3915317 +-0.32730478 -1.0315455 +-0.58174485 -1.8374522 +-0.8497398 -2.689791 +-0.58478254 -1.855145 +-0.31827617 -1.0119058 +-0.29944047 -0.954115 +-0.29884094 -0.95430297 +-0.29824126 -0.95449054 +-0.2976415 -0.9546777 +-0.2970416 -0.95486456 +-0.29644156 -0.955051 +-0.46250424 -1.4933716 +-0.29524118 -0.95542276 +-0.2946408 -0.95560807 +-0.29404032 -0.955793 +-0.3197191 -1.0415914 +-0.29283902 -0.95616174 +-0.34886265 -1.1416484 +-0.29163724 -0.956529 +-0.29103616 -0.95671207 +-0.43601477 -1.4365357 +-0.3681156 -1.2155763 +-0.51348835 -1.6994691 +-0.32759464 -1.0866907 +-0.5238932 -1.7418079 +-0.33518338 -1.1169411 +-0.49004617 -1.6367296 +-0.6541115 -2.1897056 +-0.3717463 -1.2473162 +-0.4121039 -1.3859082 +-0.46511877 -1.5678028 +-0.3225018 -1.0895858 +-0.28321198 -0.95905733 +-0.51309544 -1.7415531 +-0.3401849 -1.1573405 +-0.45362756 -1.5468745 +-0.28080073 -0.9597661 +-0.49034595 -1.6798995 +-0.33091825 -1.1363626 +-0.36621585 -1.2605232 +-0.2783877 -0.96046877 +-0.27778414 -0.96064353 +-0.37008506 -1.282862 +-0.27657676 -0.96099186 +-0.27597287 -0.9611654 +-0.2753689 -0.96133864 +-0.28164342 -0.9855824 +-0.4664686 -1.63625 +-0.39937666 -1.4042549 +-0.27295193 -0.96202767 +-0.27648142 -0.9768043 +-0.5018624 -1.7773323 +-0.44901696 -1.5940107 +-0.5446958 -1.9383364 +-0.724551 -2.5845976 +-0.5397976 -1.9302158 +-0.6208505 -2.225436 +-0.550029 -1.9763733 +-0.42862734 -1.5439059 +-0.42197752 -1.5236669 +-0.44648802 -1.6161159 +-0.34049493 -1.2354853 +-0.49417123 -1.797508 +-0.4380633 -1.5973458 +-0.5292187 -1.9344976 +-0.7569313 -2.773721 +-0.77328545 -2.8406758 +-0.7055867 -2.5984242 +-0.6389332 -2.3588228 +-0.5506297 -2.0378957 +-0.4692239 -1.7409539 +-0.5986494 -2.2267263 +-0.8279438 -3.0873418 +-0.58159053 -2.1741679 +-0.7845294 -2.940216 +-0.78185195 -2.9375904 +-0.98175037 -3.6979995 +-0.8231888 -3.1086135 +-0.88190866 -3.338834 +-0.8555146 -3.24717 +-0.7873948 -2.9962566 +-0.9168122 -3.4976647 +-0.96162987 -3.678066 +-1.1925523 -4.5730433 +-1.2586577 -4.8389854 +-1.0092514 -3.890159 +-0.99815816 -3.8573694 +-0.8783067 -3.4030197 +-0.9122781 -3.5438433 +-0.99749327 -3.8849797 +-1.0316432 -4.0284915 +-1.2342327 -4.83222 +-1.148808 -4.509584 +-1.2312739 -4.8460255 +-1.2282288 -4.8467984 +-1.1342425 -4.4877524 +-1.1949424 -4.7404532 +-1.2190907 -4.849105 +-1.2160437 -4.8498697 +-1.2129961 -4.850633 +-1.2099482 -4.851394 +-1.2058614 -4.847979 +-1.0673245 -4.302552 +-1.0255475 -4.1452866 +-1.1601026 -4.7018313 +-1.1947011 -4.855171 +-1.1916503 -4.8559213 +-1.188599 -4.856669 +-1.1240684 -4.605524 +-0.9563547 -3.9290845 +-1.1794423 -4.8589005 +-1.1763891 -4.8596406 +-1.1502846 -4.7648945 +-1.0600277 -4.4031434 +-1.1672268 -4.86185 +-0.97445023 -4.070142 +-1.1099684 -4.6490808 +-1.1118611 -4.6699967 +-1.067816 -4.4975405 +-1.1186395 -4.7248106 +-1.1355556 -4.809737 +-1.0420103 -4.4259524 +-0.8572789 -3.6515868 +-0.7404104 -3.1627142 +-0.8362056 -3.5820494 +-0.65772307 -2.8255029 +-0.6010943 -2.5895996 +-0.63974035 -2.763976 +-0.8589703 -3.7217944 +-1.0656358 -4.6305223 +-0.96044797 -4.1854787 +-1.1016718 -4.8147855 +-1.1121671 -4.874739 +-1.109104 -4.8754373 +-1.0390742 -4.5809026 +-1.07646 -4.759584 +-1.099912 -4.877519 +-1.0968472 -4.878209 +-1.0492038 -4.680053 +-1.067917 -4.7775865 +-1.0560282 -4.7383814 +-1.0845835 -4.8809505 +-0.87009543 -3.9273417 +-0.87196857 -3.94754 +-1.0753812 -4.8829865 +-0.8833426 -4.023029 +-1.0236112 -4.6758814 +-0.8850597 -4.0551696 +-0.9255237 -4.253394 +-0.925949 -4.268255 +-1.0083991 -4.6624546 +-0.9179901 -4.2573824 +-0.91490245 -4.2560396 +-0.7798379 -3.6388583 +-0.6976569 -3.2653997 +-0.6517031 -3.0597193 +-0.47838166 -2.252929 +-0.6383124 -3.0154433 +-0.62039727 -2.9399269 +-0.7846957 -3.7301004 +-0.898619 -4.285005 +-1.0231637 -4.894194 +-0.9454148 -4.5365195 +-1.0170126 -4.895476 +-0.8615261 -4.160152 +-0.8683914 -4.206612 +-0.8142367 -3.9568338 +-0.81975806 -3.9963827 +-0.9251267 -4.524503 +-0.9362922 -4.593815 +-0.8285307 -4.0781875 +-0.83195466 -4.108269 +-0.788721 -3.9073966 +-0.87925273 -4.3700542 +-0.88646924 -4.420283 +-0.98007303 -4.9030046 +-0.93389326 -4.687302 +-0.7912102 -3.9842231 +-0.76193994 -3.8494885 +-0.5870463 -2.9757023 +-0.5981069 -3.0418315 +-0.7441044 -3.7969408 +-0.83823717 -4.2915583 +-0.95171416 -4.888856 +-0.95233166 -4.9084687 +-0.87694067 -4.5351295 +-0.8086196 -4.195947 +-0.94307774 -4.910255 +-0.9399923 -4.9108467 +-0.8397587 -4.402169 +-0.9338204 -4.912024 +-0.9129695 -4.8188457 +-0.80401754 -4.258402 +-0.7666791 -4.0746837 +-0.6592626 -3.5159504 +-0.6299794 -3.3714716 +-0.7880556 -4.2321773 +-0.66953814 -3.6082869 +-0.80353314 -4.345635 +-0.6311375 -3.425328 +-0.78358126 -4.2677207 +-0.6844125 -3.7408361 +-0.6004483 -3.293596 +-0.7730537 -4.2555285 +-0.8905764 -4.920048 +-0.7917577 -4.389853 +-0.6212171 -3.456733 +-0.59094584 -3.3001997 +-0.70170724 -3.9330003 +-0.77680254 -4.369779 +-0.6150448 -3.4724965 +-0.52245617 -2.960579 +-0.4249055 -2.4166644 +-0.32024458 -1.8281361 +-0.4838567 -2.772374 +-0.42034853 -2.4174557 +-0.39106837 -2.2574663 +-0.4944728 -2.8650773 +-0.4567788 -2.656629 +-0.53449214 -3.120349 +-0.45642084 -2.674669 +-0.45693666 -2.6878755 +-0.55917615 -3.3018422 +-0.4260253 -2.5252452 +-0.35887823 -2.1354125 +-0.30842605 -1.8422914 +-0.35917133 -2.1537118 +-0.3619941 -2.1790755 +-0.3595378 -2.172733 +-0.3175341 -1.9264134 +-0.46790236 -2.8498237 +-0.50848955 -3.1092439 +-0.48713356 -2.9904542 +-0.5761193 -3.5507848 +-0.57399374 -3.5517995 +-0.6118447 -3.80118 +-0.4682429 -2.9207268 +-0.4738489 -2.9676235 +-0.5370638 -3.3771527 +-0.6738469 -4.254502 +-0.74532866 -4.725033 +-0.77596587 -4.9394207 +-0.7728622 -4.939907 +-0.76396567 -4.903215 +-0.7552875 -4.8676214 +-0.7635493 -4.941355 +-0.69100934 -4.4906025 +-0.7312305 -4.7719283 +-0.7542337 -4.9427857 +-0.75112796 -4.943259 +-0.60538924 -4.0010605 +-0.6240323 -4.1418657 +-0.69162464 -4.610154 +-0.5769789 -3.862501 +-0.62145036 -4.1781726 +-0.5671763 -3.829809 +-0.49054062 -3.3267558 +-0.41506267 -2.827186 +-0.39200592 -2.6818597 +-0.5188607 -3.5653727 +-0.48592874 -3.3538654 +-0.5104471 -3.5387573 +-0.5413703 -3.7698987 +-0.4965885 -3.4735656 +-0.49441323 -3.4739285 +-0.53223264 -3.7565804 +-0.65060824 -4.61296 +-0.6510896 -4.637441 +-0.6278573 -4.492467 +-0.68895143 -4.952307 +-0.609909 -4.4044113 +-0.68272763 -4.953169 +-0.57564664 -4.195787 +-0.50529003 -3.7002335 +-0.52330804 -3.8502238 +-0.6524853 -4.8233495 +-0.6671635 -4.9552894 +-0.5867469 -4.3788066 +-0.50228167 -3.7664318 +-0.6137573 -4.624522 +-0.6547074 -4.9569507 +-0.65159273 -4.9573607 +-0.6484778 -4.9577694 +-0.5524557 -4.2443933 +-0.5620801 -4.339637 +-0.4746164 -3.6825204 +-0.5348469 -4.1705127 +-0.61217135 -4.797345 +-0.6218069 -4.89736 +-0.6266662 -4.9605737 +-0.6235492 -4.960966 +-0.620432 -4.961357 +-0.6173146 -4.9617457 +-0.6141969 -4.962133 +-0.611079 -4.9625177 +-0.5711423 -4.6623445 +-0.457107 -3.7509785 +-0.33921316 -2.7981927 +-0.31199154 -2.5872455 +-0.24597538 -2.050634 +-0.2886618 -2.4193542 +-0.3238379 -2.728748 +-0.2519362 -2.1343427 +-0.28060782 -2.3901405 +-0.27031493 -2.3150282 +-0.25442815 -2.1909199 +-0.36478773 -3.158562 +-0.35317492 -3.074962 +-0.328896 -2.8795335 +-0.42584974 -3.7492704 +-0.51858085 -4.591419 +-0.446 -3.971174 +-0.33966422 -3.0415924 +-0.38756344 -3.4903975 +-0.42380425 -3.8387709 +-0.3335065 -3.0383656 +-0.25440723 -2.3312469 +-0.2916831 -2.688485 +-0.22006312 -2.0403075 +-0.3162869 -2.9498255 +-0.39966047 -3.7496266 +-0.4607781 -4.34896 +-0.44416225 -4.2174244 +-0.35882875 -3.427839 +-0.32532528 -3.1267571 +-0.25610974 -2.4766316 +-0.34090447 -3.3169816 +-0.2911787 -2.8507636 +-0.19663742 -1.9372046 +-0.114361696 -1.133742 +-0.09973655 -0.9950139 +-0.13461863 -1.3515689 +-0.17704725 -1.7889482 +-0.09786081 -0.9952001 +-0.0980611 -1.0037119 +-0.16131479 -1.6619395 +-0.16935962 -1.7562965 +-0.10115766 -1.0559711 +-0.12270441 -1.2894292 +-0.17919818 -1.8957187 +-0.18674485 -1.9888915 +-0.12282222 -1.3169855 +-0.2113366 -2.2816029 +-0.20333363 -2.2103236 +-0.19259237 -2.1080809 +-0.24385737 -2.6878572 +-0.17773156 -1.9727758 +-0.21763265 -2.4327714 +-0.16067603 -1.8088969 +-0.19331881 -2.1920176 +-0.11755884 -1.3426241 +-0.19482717 -2.2413013 +-0.24352425 -2.8220665 +-0.30114573 -3.5155966 +-0.3282127 -3.8600988 +-0.37579942 -4.452906 +-0.35708958 -4.2631745 +-0.28664374 -3.4481905 +-0.23864208 -2.8927677 +-0.20735943 -2.5329885 +-0.21997994 -2.708077 +-0.29547074 -3.6659527 +-0.34074268 -4.2610807 +-0.36145604 -4.5561333 +-0.28029928 -3.5615401 +-0.28672186 -3.6726475 +-0.2460481 -3.17738 +-0.23893915 -3.11097 +-0.30103093 -3.9519188 +-0.23740515 -3.1427147 +-0.17976382 -2.399745 +-0.20688815 -2.785332 +-0.2656909 -3.6076767 +-0.3084924 -4.225096 +-0.32999685 -4.55906 +-0.35783538 -4.987179 +-0.3228679 -4.539792 +-0.3137278 -4.450793 +-0.3314297 -4.7444253 +-0.31561515 -4.5592456 +-0.34216598 -4.9882784 +-0.27829012 -4.094745 +-0.27451423 -4.077051 +-0.30395362 -4.5569973 +-0.329628 -4.989123 +-0.31587642 -4.8270884 +-0.3233582 -4.989533 +-0.32022312 -4.989735 +-0.28250897 -4.4457746 +-0.3139526 -4.990134 +-0.28151557 -4.519878 +-0.23665081 -3.8384216 +-0.25735176 -4.2173276 +-0.24516657 -4.0595975 +-0.1975486 -3.3056302 +-0.15173574 -2.566107 +-0.16358177 -2.796259 +-0.1849074 -3.1952329 +-0.19173153 -3.349644 +-0.20261173 -3.579142 +-0.16178434 -2.8901048 +-0.17543006 -3.169557 +-0.19141199 -3.4981396 +-0.21986358 -4.06492 +-0.18827723 -3.5219712 +-0.23099259 -4.3725557 +-0.20204963 -3.8708482 +-0.17004165 -3.2974412 +-0.12550437 -2.4638758 +-0.12136637 -2.4124732 +-0.15943345 -3.2093394 +-0.18330972 -3.7373443 +-0.13820387 -2.8543723 +-0.18095557 -3.7865896 +-0.13413297 -2.8442826 +-0.14842434 -3.1899245 +-0.11519534 -2.5097327 +-0.13567312 -2.9969883 +-0.10268741 -2.3003333 +-0.08127544 -1.8467209 +-0.08260584 -1.9041868 +-0.107002616 -2.502887 +-0.10048754 -2.385618 +-0.09582161 -2.3093545 +-0.12185035 -2.9818926 +-0.10105646 -2.511713 +-0.06610413 -1.6690956 +-0.056739368 -1.4557714 +-0.038318045 -0.9992656 +-0.04891863 -1.2969922 +-0.037062302 -0.99931294 +-0.07252275 -1.9891801 +-0.095460325 -2.6642957 +-0.07266049 -2.064197 +-0.043363433 -1.2543194 +-0.058805987 -1.7325318 +-0.055165857 -1.655976 +-0.03266675 -0.9994663 +-0.060153846 -1.8765695 +-0.06718412 -2.1378334 +-0.05708606 -1.8536037 +-0.046192117 -1.5311406 +-0.054254618 -1.8366767 +-0.062188767 -2.1510637 +-0.059596304 -2.1072264 +-0.047706738 -1.7251884 +-0.032188576 -1.1910987 +-0.053234395 -2.0167975 +-0.065194786 -2.5301895 +-0.048955396 -1.9474633 +-0.029072734 -1.1861906 +-0.023873836 -0.999715 +-0.024332862 -1.0464859 +-0.022617538 -0.9997442 +-0.03114998 -1.4162498 +-0.021361206 -0.99977183 +-0.020733025 -0.99978507 +-0.026844677 -1.3349648 +-0.035630494 -1.829049 +-0.045906045 -2.435103 +-0.05108045 -2.8030367 +-0.041224003 -2.3429737 +-0.037295 -2.1981905 +-0.027986571 -1.7130018 +-0.021586716 -1.37414 +-0.017263787 -1.1447536 +-0.03063098 -2.119449 +-0.042672526 -3.0868688 +-0.048268758 -3.6579835 +-0.0412958 -3.2860425 +-0.0412324 -3.4536994 +-0.04272504 -3.7775621 +-0.044511512 -4.167034 +-0.039069384 -3.8861725 +-0.02979179 -3.1609135 +-0.0339922 -3.8642054 +-0.032998428 -4.039805 +-0.03304564 -4.382731 +-0.03357496 -4.85776 +-0.03141572 -4.9999013 +-0.028274184 -4.99992 +-0.023877606 -4.750259 +-0.017117862 -3.8919642 +-0.015211339 -4.034914 +-0.014379937 -4.577261 +-0.011304565 -4.4979343 +-0.0072156666 -3.8280256 +-0.004013537 -3.1938694 +-0.0016954844 -2.6984468 +-3.3198342E-16 -1.8072336 +0.0011954642 -1.9026401 +0.002107791 -1.6773257 +0.0018849545 -0.9999982 +0.0025132715 -0.99999684 +0.0043356335 -1.3800704 +0.0037699023 -0.9999929 +0.0043982156 -0.99999034 +0.0090765795 -1.8057129 +0.008485789 -1.500601 +0.006283144 -0.9999803 +0.0069114487 -0.9999761 +0.007539751 -0.99997157 +0.00816805 -0.9999666 +0.008796346 -0.9999613 +0.013739564 -1.4577699 +0.014711302 -1.463311 +0.010681212 -0.99994296 +0.011309492 -0.99993604 +0.011937768 -0.9999287 +0.01256604 -0.999921 +0.013194306 -0.999913 +0.021731935 -1.5720568 +0.034027554 -2.354468 +0.043222934 -2.8660927 +0.04270656 -2.7185605 +0.04734313 -2.897778 +0.05832288 -3.4375868 +0.07195583 -4.089623 +0.0702204 -3.8533404 +0.05442503 -2.8869956 +0.05483129 -2.814699 +0.069806345 -3.471415 +0.06303039 -3.0394425 +0.050326776 -2.3554518 +0.04223808 -1.9203758 +0.06312432 -2.7902317 +0.078174084 -3.3620408 +0.08756572 -3.6668077 +0.10357151 -4.2257996 +0.091198 -3.6278892 +0.07285259 -2.8273866 +0.0815084 -3.087965 +0.082171306 -3.040648 +0.101333596 -3.6644623 +0.11881468 -4.20109 +0.13288575 -4.596421 +0.14763339 -4.99782 +0.15077358 -4.9977264 +0.14452253 -4.692695 +0.12721145 -4.0479336 +0.14452618 -4.508663 +0.16333376 -4.9973316 +0.16647364 -4.9972277 +0.13911273 -4.098515 +0.1727532 -4.9970145 +0.16427508 -4.6668572 +0.1790325 -4.9967937 +0.18217205 -4.9966803 +0.17036813 -4.5936456 +0.18845092 -4.9964476 +0.18982133 -4.950198 +0.19472948 -4.9962068 +0.19786866 -4.9960833 +0.20100775 -4.995958 +0.20414676 -4.9958305 +0.18072687 -4.355619 +0.21042454 -4.99557 +0.20842247 -4.8751884 +0.216702 -4.9953017 +0.21984059 -4.995165 +0.2229791 -4.9950256 +0.22611752 -4.9948845 +0.21289688 -4.6383324 +0.2323941 -4.9945965 +0.22834973 -4.8421445 +0.23867032 -4.9943004 +0.19355689 -3.997597 +0.21117726 -4.3055115 +0.21483262 -4.3245044 +0.22306906 -4.4340796 +0.19310674 -3.7910311 +0.15875877 -3.078644 +0.19833478 -3.7996795 +0.22435237 -4.2468605 +0.236585 -4.4256315 +0.27004552 -4.992702 +0.26894948 -4.915172 +0.2763193 -4.992359 +0.27945605 -4.992184 +0.26584417 -4.696145 +0.26979104 -4.7133822 +0.26851425 -4.6399736 +0.29200187 -4.991466 +0.23812062 -4.027021 +0.22491202 -3.7635093 +0.23398408 -3.8744323 +0.20318115 -3.3296118 +0.19168675 -3.109115 +0.19629097 -3.151553 +0.1536858 -2.4427657 +0.16760506 -2.63756 +0.2063009 -3.2145925 +0.20715551 -3.1964836 +0.24553864 -3.7522163 +0.2119358 -3.207779 +0.19252922 -2.886477 +0.23572388 -3.5009422 +0.20993258 -3.0889359 +0.17483258 -2.548803 +0.22185403 -3.2048113 +0.24689338 -3.5342855 +0.2751993 -3.9041965 +0.21257614 -2.9889977 +0.24569635 -3.4242887 +0.31092393 -4.2955594 +0.2931629 -4.0151443 +0.25353774 -3.4426556 +0.21315563 -2.8697107 +0.252286 -3.3678749 +0.29516473 -3.907323 +0.2640414 -3.466322 +0.31105736 -4.0499434 +0.355209 -4.5870466 +0.34105617 -4.368621 +0.30086207 -3.8228152 +0.34260288 -4.31849 +0.3940184 -4.9273086 +0.33269432 -4.127792 +0.3964571 -4.8806105 +0.34507895 -4.2152944 +0.30804265 -3.7340262 +0.30486026 -3.667327 +0.26969275 -3.2197723 +0.25676897 -3.0424957 +0.22620285 -2.6603642 +0.3120324 -3.6426885 +0.38314563 -4.4400606 +0.3844228 -4.422419 +0.40354246 -4.6088057 +0.3491883 -3.9594018 +0.30969068 -3.4865093 +0.35162583 -3.9305923 +0.34681904 -3.8496048 +0.31338993 -3.4542625 +0.24078661 -2.6356063 +0.31333587 -3.4060948 +0.33867443 -3.65635 +0.27560216 -2.9551988 +0.36450693 -3.8821135 +0.37581623 -3.9757204 +0.35897234 -3.7722313 +0.29626155 -3.0926344 +0.3800286 -3.9409802 +0.3646901 -3.757206 +0.32004187 -3.275813 +0.31386054 -3.1918192 +0.22732572 -2.2969797 +0.22923356 -2.3015013 +0.30569804 -3.0497725 +0.38394675 -3.8063142 +0.42536846 -4.190584 +0.45838088 -4.4877443 +0.4069172 -3.959282 +0.38203764 -3.6943793 +0.3824274 -3.6755753 +0.48258743 -4.610088 +0.5236838 -4.9725 +0.50640005 -4.779554 +0.52993196 -4.971838 +0.49759033 -4.6407385 +0.50204784 -4.654719 +0.5393027 -4.97083 +0.5424259 -4.9704905 +0.52466214 -4.7798634 +0.4256404 -3.8554025 +0.41014114 -3.6937325 +0.35047445 -3.1383946 +0.3437556 -3.060792 +0.26100424 -2.3108838 +0.17803915 -1.567494 +0.27514008 -2.4088924 +0.25684983 -2.2362955 +0.20330153 -1.7603128 +0.11535324 -0.9933245 +0.11597735 -0.99325186 +0.1166014 -0.9931788 +0.11722541 -0.99310535 +0.11784937 -0.9930315 +0.11847329 -0.99295723 +0.19592479 -1.6333749 +0.11972098 -0.99280757 +0.12034476 -0.99273217 +0.12096848 -0.99265635 +0.19669321 -1.6056443 +0.1222158 -0.9925035 +0.1923336 -1.5538743 +0.24089018 -1.936186 +0.28920633 -2.3126721 +0.2668834 -2.1233282 +0.17552759 -1.389444 +0.2725979 -2.146985 +0.35152352 -2.7547512 +0.290782 -2.2673967 +0.3214576 -2.4941704 +0.43372145 -3.3486216 +0.5602426 -4.304218 +0.6484778 -4.9577694 +0.64306694 -4.892496 +0.6547074 -4.9569507 +0.53242797 -4.011724 +0.61565167 -4.6165533 +0.59872884 -4.4682264 +0.52838373 -3.9245167 +0.49925464 -3.6906264 +0.4642076 -3.4153938 +0.3407824 -2.495546 +0.26764217 -1.9507967 +0.35930726 -2.6067636 +0.35627612 -2.572821 +0.37491158 -2.694932 +0.46776444 -3.3469646 +0.45311904 -3.227379 +0.43837953 -3.1082103 +0.5612788 -3.961593 +0.6737156 -4.7337728 +0.6098265 -4.2656493 +0.7107261 -4.9492292 +0.71383566 -4.9487815 +0.64382714 -4.443675 +0.5110635 -3.5117943 +0.62521386 -4.2773232 +0.67802554 -4.618349 +0.7293792 -4.9465146 +0.732487 -4.9460554 +0.7322439 -4.9230666 +0.7387018 -4.945131 +0.7418088 -4.944666 +0.7449155 -4.9441986 +0.7012686 -4.634734 +0.6672559 -4.3912873 +0.7542337 -4.9427857 +0.75733924 -4.942311 +0.7604444 -4.941834 +0.7107291 -4.599526 +0.62597585 -4.0342426 +0.5699221 -3.657822 +0.5773212 -3.6900668 +0.6559649 -4.175553 +0.77906924 -4.9389324 +0.7821723 -4.9384418 +0.7710439 -4.848461 +0.7883775 -4.9374547 +0.65649706 -4.094987 +0.618046 -3.8397062 +0.770495 -4.767724 +0.77972305 -4.805652 +0.66316015 -4.0710607 +0.7795596 -4.7667465 +0.8100859 -4.9339395 +0.8131858 -4.9334297 +0.79655546 -4.813687 +0.8193847 -4.932404 +0.82248366 -4.931888 +0.8255823 -4.9313703 +0.8117995 -4.8304043 +0.8317786 -4.930329 +0.83487624 -4.9298053 +0.7798717 -4.5875025 +0.8410706 -4.9287524 +0.84416723 -4.928223 +0.8472636 -4.9276915 +0.8207591 -4.755647 +0.8534552 -4.926623 +0.7593146 -4.3668747 +0.7035536 -4.0311804 +0.55588263 -3.1732905 +0.496195 -2.8221257 +0.4109004 -2.328431 +0.48530233 -2.7399802 +0.36499476 -2.0532198 +0.38990542 -2.1853817 +0.28083825 -1.568371 +0.3036446 -1.689616 +0.35510868 -1.9688786 +0.3003076 -1.6590691 +0.3978413 -2.1900482 +0.24879281 -1.3646854 +0.3047508 -1.6656955 +0.3367891 -1.8342984 +0.5018013 -2.7233908 +0.62976 -3.4058423 +0.4919908 -2.6514456 +0.40624556 -2.181703 +0.42707026 -2.2855594 +0.49718606 -2.651571 +0.39365628 -2.0921724 +0.39181432 -2.075207 +0.3670866 -1.9375603 +0.4891753 -2.5731292 +0.4151689 -2.1763916 +0.2658536 -1.3889117 +0.38040042 -1.9806036 +0.4050226 -2.1016722 +0.50480545 -2.6106188 +0.43184838 -2.225815 +0.57354295 -2.94623 +0.47424972 -2.4280362 +0.42907944 -2.1894634 +0.51306397 -2.609323 +0.36605132 -1.855492 +0.25565344 -1.2916174 +0.38213652 -1.9242892 +0.23362471 -1.1725854 +0.29276848 -1.464631 +0.1966307 -0.98047763 +0.19724672 -0.9803539 +0.3618934 -1.7928532 +0.37425703 -1.8481159 +0.51158136 -2.5181017 +0.41029114 -2.0130484 +0.34903547 -1.7070225 +0.36874104 -1.7976406 +0.5085363 -2.4712636 +0.49510852 -2.3983765 +0.6599564 -3.1868088 +0.8325074 -4.0073447 +0.638789 -3.0651927 +0.81453836 -3.8962574 +0.87343425 -4.164913 +0.76727957 -3.647312 +0.6362712 -3.0151498 +0.7747635 -3.6600504 +0.6376525 -3.0030117 +0.65609586 -3.0803432 +0.8049071 -3.7673864 +0.95612353 -4.461437 +0.94568735 -4.3992486 +1.0268794 -4.762381 +0.8256674 -3.8175726 +0.96329767 -4.4404173 +1.0414268 -4.7860456 +0.87284523 -3.9992054 +0.8606502 -3.9314713 +0.75760686 -3.4503877 +0.5955742 -2.7043254 +0.7047328 -3.1904368 +0.81768507 -3.6907775 +0.77644515 -3.4942358 +0.5869009 -2.6334147 +0.64342993 -2.87854 +0.582473 -2.598165 +0.5956837 -2.649293 +0.63115716 -2.7988431 +0.4328361 -1.9137913 +0.54397476 -2.3981884 +0.3835999 -1.6862416 +0.22243342 -0.97494787 +0.22304596 -0.9748079 +0.40926066 -1.7834926 +0.37045795 -1.6097561 +0.4137244 -1.7926081 +0.6358137 -2.7470112 +0.73200375 -3.1535764 +0.67880595 -2.9160724 +0.5881959 -2.5196517 +0.58697873 -2.5073202 +0.44668683 -1.9026666 +0.43832818 -1.8618046 +0.61364025 -2.5991225 +0.62759674 -2.6507876 +0.41710153 -1.7567923 +0.5571602 -2.340163 +0.6786928 -2.8426914 +0.82951534 -3.464769 +0.9226629 -3.8431675 +1.1061834 -4.594865 +0.96622175 -4.0024395 +1.1763891 -4.8596406 +1.1794423 -4.8589005 +0.9589998 -3.939952 +1.0167265 -4.165724 +0.8913694 -3.6421754 +1.0461591 -4.2630515 +0.82523024 -3.3536708 +0.9941954 -4.0294185 +1.1696247 -4.727649 +1.1641198 -4.692749 +1.2068998 -4.8521533 +1.2099482 -4.851394 +1.1087232 -4.433657 +0.94182944 -3.7562387 +0.9536093 -3.7931151 +1.1048636 -4.383102 +0.9250063 -3.6598866 +0.96410865 -3.8045354 +1.0973738 -4.3190236 +1.2277267 -4.819375 +0.98881316 -3.8713632 +1.1218922 -4.380907 +1.1666642 -4.543857 +1.145509 -4.449854 +1.1133883 -4.313849 +1.136161 -4.3906794 +1.0904711 -4.2032204 +1.1716846 -4.504612 +1.0528188 -4.0372114 +0.94920933 -3.6305594 +1.1450717 -4.368481 +1.2662803 -4.818549 +1.2738537 -4.8350077 +1.1141613 -4.2181234 +0.9060293 -3.4214447 +0.8169059 -3.077073 +0.8452418 -3.17576 +0.76081014 -2.8513222 +0.6514775 -2.4354274 +0.4755368 -1.7732419 +0.58557886 -2.1781094 +0.36073136 -1.3384157 +0.40599102 -1.5025841 +0.45735857 -1.6884829 +0.40696654 -1.4987127 +0.41372862 -1.5198385 +0.26326695 -0.96472305 +0.49253732 -1.8004131 +0.32936403 -1.2009867 +0.2958939 -1.0762901 +0.4535261 -1.6456187 +0.26629642 -0.9638912 +0.4324222 -1.5613803 +0.28695536 -1.0336066 +0.49343884 -1.7730327 +0.34309915 -1.2298374 +0.515532 -1.8434466 +0.5256678 -1.875147 +0.76099163 -2.7080398 +0.95685685 -3.396843 +0.9062954 -3.2096212 +1.1415355 -4.033026 +1.2209027 -4.3031096 +1.0774373 -3.788395 +1.1776338 -4.1308317 +1.3738241 -4.807557 +1.1174045 -3.9009635 +1.3327574 -4.641762 +1.2997615 -4.5161433 +1.2805994 -4.439067 +1.154944 -3.9940703 +1.288159 -4.444293 +1.3949555 -4.8014684 +1.3393822 -4.5993953 +1.2275071 -4.2053747 +1.2926192 -4.418123 +1.3585495 -4.6326675 +1.4100329 -4.7970624 +1.3779753 -4.677136 +1.1531776 -3.905073 +1.3432025 -4.5380654 +1.4220847 -4.7935033 +1.4250963 -4.7926087 +1.4281073 -4.7917128 +1.4056097 -4.705424 +1.1994808 -4.0062056 +1.0206136 -3.4010193 +1.3075705 -4.34733 +1.2760729 -4.2329645 +1.2191308 -4.0349016 +1.0568988 -3.4900484 +0.7875822 -2.5948434 +0.88690954 -2.9155037 +0.85733575 -2.8119404 +0.613779 -2.0085835 +0.57051855 -1.8628256 +0.54536873 -1.7767202 +0.7060237 -2.2949657 +0.5502398 -1.7845919 +0.7388747 -2.3910542 +0.87079865 -2.811706 +0.9009787 -2.9026988 +0.9832706 -3.160804 +1.0376018 -3.3280826 +0.8336809 -2.6681101 +1.001695 -3.1987603 +1.1850591 -3.7759845 +0.91011983 -2.8935735 +0.98496866 -3.124682 +0.99249977 -3.1416879 +0.895818 -2.829458 +1.1113133 -3.502455 +1.1590445 -3.6449404 +1.0745672 -3.37194 +1.2886932 -4.0350914 +1.2625784 -3.9447677 +1.3165052 -4.104371 +1.0973951 -3.4138906 +1.0829504 -3.3617034 +1.271482 -3.9384642 +1.0059725 -3.1093547 +0.96927303 -2.9895055 +1.0696894 -3.2921655 +0.8657423 -2.6587954 +0.5931534 -1.8177629 +0.57334 -1.7533069 +0.66990024 -2.044245 +0.43438137 -1.3227345 +0.33656695 -1.0227116 +0.3471444 -1.052625 +0.3137936 -0.9494912 +0.31439012 -0.94929385 +0.31498653 -0.94909614 +0.49145654 -1.4777173 +0.5967274 -1.7904893 +0.78646016 -2.3548517 +0.5643666 -1.6863227 +0.3807989 -1.135453 +0.31856227 -0.9479019 +0.3191578 -0.9477016 +0.45531684 -1.3492066 +0.44675136 -1.3210847 +0.32094362 -0.9470983 +0.5946983 -1.7513222 +0.48295355 -1.4193163 +0.78608346 -2.3054113 +0.7428877 -2.1742542 +1.0457418 -3.0543618 +1.2949692 -3.774555 +1.5614084 -4.541868 +1.6285008 -4.7273655 +1.3346789 -3.8665407 +1.6141483 -4.66665 +1.6374089 -4.7242875 +1.3471532 -3.8789573 +1.3226833 -3.8007922 +1.0488416 -3.0078056 +1.2285672 -3.5161047 +0.98082346 -2.801419 +1.2010056 -3.423403 +1.3135282 -3.7366252 +1.150058 -3.2650392 +1.051983 -2.9806242 +0.74961907 -2.1196804 +0.52081156 -1.4697481 +0.8474418 -2.3867455 +1.1678315 -3.2825525 +1.2127267 -3.401974 +1.4585233 -4.0833755 +1.3960029 -3.900601 +1.3676007 -3.813687 +1.6564828 -4.6101446 +1.6807116 -4.6683564 +1.3502407 -3.743057 +1.0417479 -2.882197 +1.1739691 -3.2416396 +1.2543051 -3.4566834 +1.502121 -4.13153 +1.3379343 -3.6727529 +1.4476793 -3.966262 +1.658848 -4.535959 +1.7202652 -4.6947513 +1.7232146 -4.6936693 +1.6696683 -4.5390034 +1.7291114 -4.6915 +1.7320589 -4.690413 +1.4728549 -3.98079 +1.7379516 -4.6882324 +1.6770803 -4.5153213 +1.6240094 -4.364032 +1.3328959 -3.5748792 +1.0632136 -2.8461165 +1.3615017 -3.6376302 +1.6190513 -4.3174806 +1.5406214 -4.100495 +1.4070503 -3.7378492 +1.4728035 -3.90508 +1.2763618 -3.3777938 +1.6210783 -4.2819204 +1.2696759 -3.347372 +1.3705157 -3.6063912 +1.4246838 -3.7418478 +1.1597537 -3.0402787 +1.3912162 -3.6401846 +1.4872366 -3.8841066 +1.7605883 -4.589362 +1.4804983 -3.8520064 +1.425432 -3.701786 +1.5145904 -3.925969 +1.5005914 -3.882416 +1.5230526 -3.9331782 +1.4309179 -3.6883628 +1.1138115 -2.865642 +1.0673611 -2.7410316 +1.147331 -2.9409318 +1.2144804 -3.107287 +1.2294594 -3.1397915 +0.89556605 -2.2828693 +1.140042 -2.9006958 +1.460589 -3.7094402 +1.310891 -3.3231275 +1.414336 -3.578773 +1.2132068 -3.0642107 +1.3513955 -3.4069796 +1.4696523 -3.698333 +1.1771176 -2.956764 +1.2987598 -3.256358 +1.5083302 -3.7749155 +1.8423725 -4.602532 +1.5064316 -3.7564566 +1.2207828 -3.0386312 +1.3601735 -3.3794465 +1.5873196 -3.9366643 +1.8727093 -4.63605 +1.6914405 -4.1797395 +1.8785337 -4.633693 +1.8814447 -4.6325116 +1.6148908 -3.9690452 +1.8370597 -4.5069733 +1.6490145 -4.0383687 +1.8930815 -4.6277685 +1.7658607 -4.3090405 +1.8988955 -4.625386 +1.6161528 -3.9296434 +1.868713 -4.535635 +1.9076108 -4.6217985 +1.7395663 -4.2071595 +1.8318483 -4.422473 +1.8658484 -4.4965634 +1.5349679 -3.6926088 +1.4926146 -3.5843656 +1.1603925 -2.7816412 +1.3373543 -3.2001858 +1.2816969 -3.0615933 +1.1899018 -2.837316 +1.0274984 -2.4457557 +0.71621037 -1.7018013 +0.6483524 -1.5378593 +0.38905963 -0.92121255 +0.49377882 -1.1671193 +0.51363957 -1.2119405 +0.60895187 -1.4343224 +0.8116401 -1.9083989 +1.1623122 -2.7281687 +0.945434 -2.215253 +0.6487557 -1.5174626 +0.6027968 -1.4075156 +0.5241046 -1.2216498 +0.817188 -1.9015076 +0.8972002 -2.0840766 +0.63435566 -1.4709781 +0.9647349 -2.2332196 +1.344844 -3.107751 +1.5047588 -3.4713068 +1.2916216 -2.9745004 +1.3535888 -3.1118526 +1.5490861 -3.5551856 +1.5234443 -3.4903467 +1.1500326 -2.6303182 +0.84574825 -1.9310621 +0.8573397 -1.9541862 +0.9908546 -2.2546632 +0.83715 -1.9016676 +0.6572759 -1.4905258 +0.5446321 -1.2329807 +0.9004953 -2.035151 +0.7134465 -1.6096802 +0.54120123 -1.2189916 +0.5687895 -1.2789636 +0.5970307 -1.3401974 +0.8597757 -1.9267422 +0.9047547 -2.0241208 +0.880284 -1.9660581 +0.8812385 -1.9648789 +1.2811118 -2.851668 +1.6280648 -3.6178787 +1.7495488 -3.8813214 +2.057572 -4.5570164 +2.0604346 -4.5557227 +2.0632968 -4.554427 +2.0661578 -4.5531297 +1.6931818 -3.724992 +1.6880715 -3.7075639 +1.4848537 -3.2558045 +1.4394072 -3.1509094 +1.1244564 -2.4573855 +1.0628691 -2.3189404 +0.82064474 -1.7874957 +0.9119218 -1.9830248 +0.6079048 -1.3197378 +0.79288924 -1.7184896 +0.5376224 -1.1633081 +0.87877667 -1.8983653 +0.9503236 -2.0495443 +0.89787877 -1.9332539 +0.81684554 -1.7558897 +0.52697396 -1.1309236 +0.6239279 -1.3367991 +0.42350388 -0.9058943 +0.42407298 -0.905628 +0.4246419 -0.9053614 +0.71906114 -1.5305781 +0.69488645 -1.4767089 +0.9646689 -2.046687 +0.8521605 -1.805042 +0.58986735 -1.2474232 +0.428052 -0.9037541 +0.42861977 -0.90348494 +0.64802915 -1.3637632 +0.6032128 -1.2673932 +0.88640755 -1.8593941 +0.642468 -1.3455114 +0.7320187 -1.5305822 +0.53817713 -1.1234635 +0.6361847 -1.3259189 +0.5573587 -1.159763 +0.433722 -0.90104675 +0.50857455 -1.0548546 +0.57444304 -1.1895639 +0.43541965 -0.9002276 +0.7700046 -1.5894314 +0.43655056 -0.8996797 +0.84246373 -1.7334453 +0.49089167 -1.0084419 +0.43824565 -0.89885527 +0.43881032 -0.8985797 +0.69418305 -1.4192604 +0.7662666 -1.5641447 +1.0425225 -2.1246731 +0.6370707 -1.2962973 +0.65337926 -1.3273741 +1.0660065 -2.1622183 +0.9979398 -2.0209534 +0.957206 -1.9353983 +1.0711105 -2.1622846 +0.72781366 -1.4669424 +0.8203177 -1.6507827 +0.8022666 -1.611915 +0.6945611 -1.3933176 +0.44669756 -0.89468503 +0.8890268 -1.7778249 +0.7023884 -1.4023926 +0.8980079 -1.7901577 +0.65246683 -1.2986408 +0.4495061 -0.8932773 +0.7429048 -1.474024 +0.45062828 -0.8927117 +0.75486356 -1.4930806 +0.97210234 -1.919771 +0.9956953 -1.963302 +0.716157 -1.4099145 +0.80226326 -1.576979 +1.1686766 -2.293657 +1.132257 -2.218732 +0.9002476 -1.76136 +1.0407293 -2.0330632 +1.4344674 -2.7978947 +1.0766308 -2.096697 +0.93074226 -1.8097852 +0.82400215 -1.5997618 +1.2112701 -2.3479993 +1.2857816 -2.488598 +1.0772104 -2.0817053 +1.0670668 -2.0589325 +1.2644234 -2.4359891 +0.83483547 -1.6058931 +1.0307138 -1.9796454 +0.6927835 -1.3285594 +0.6533977 -1.2511107 +0.6283258 -1.2012635 +1.057433 -2.018562 +1.0326734 -1.9682882 +0.6921869 -1.3173043 +0.46570718 -0.8849389 +0.46626312 -0.88464606 +0.7160866 -1.3565718 +1.0852177 -2.0527375 +1.0707277 -2.0222528 +0.8064151 -1.5207417 +0.46904 -0.8831769 +0.46959484 -0.88288206 +0.4826691 -0.9060892 +0.47070393 -0.8822912 +0.76013935 -1.4226582 +1.0942305 -2.044843 +1.3686569 -2.5538185 +1.591919 -2.9659324 +1.5300028 -2.8462822 +1.4696037 -2.7298067 +1.8578907 -3.4458656 +2.2078233 -4.0887403 +2.378428 -4.398077 +2.381191 -4.3965816 +2.383953 -4.3950844 +2.2332418 -4.1110663 +2.2874904 -4.2046294 +2.3922334 -4.390583 +2.32593 -4.262517 +2.3977487 -4.3875732 +2.400505 -4.386066 +2.4032605 -4.384557 +2.3365276 -4.2564607 +2.4087684 -4.3815336 +2.2218308 -4.0354867 +2.3112137 -4.1915965 +2.1621966 -3.9155202 +2.1859913 -3.952739 +2.4225214 -4.3739443 +2.4252691 -4.3724213 +2.428016 -4.370897 +2.349408 -4.223134 +2.4335067 -4.367842 +2.0889456 -3.7438633 +2.3302588 -4.170191 +2.4417355 -4.3632474 +2.4444766 -4.3617125 +2.4471931 -4.3601336 +2.4499557 -4.358637 +2.452694 -4.3570967 +2.455431 -4.355555 +2.4581673 -4.354011 +2.4447114 -4.3238297 +2.4636366 -4.350919 +2.3780415 -4.193605 +2.437817 -4.29273 +2.2913048 -4.0288405 +2.474564 -4.344713 +2.023008 -3.5467107 +2.4692574 -4.322756 +2.4827492 -4.340041 +2.4854755 -4.3384805 +2.4882011 -4.336918 +2.4580715 -4.2781725 +2.2667465 -3.9394467 +2.4963715 -4.33222 +2.499093 -4.3306503 +2.5018137 -4.3290796 +2.410456 -4.1649537 +2.2229376 -3.8353858 +1.8781792 -3.2358625 +2.3014061 -3.9592965 +2.5154014 -4.3211985 +2.518116 -4.3196173 +2.5208297 -4.318034 +2.3476884 -4.0156565 +2.0958848 -3.5797892 +1.8390137 -3.1365294 +1.770859 -3.0159435 +1.9365429 -3.293378 +1.6754005 -2.845174 +1.9596165 -3.323054 +2.413784 -4.087345 +2.076196 -3.5106556 +2.0457957 -3.4542964 +1.6561162 -2.7923253 +1.8832397 -3.1707287 +2.0959187 -3.5237622 +1.9039048 -3.1963663 +2.3348641 -3.9142852 +2.564111 -4.2924743 +2.2310805 -3.7296362 +2.4005098 -4.0071497 +2.3141925 -3.8575609 +2.2891524 -3.8103917 +1.8453364 -3.0672739 +1.4148501 -2.3483884 +1.3205103 -2.1886892 +1.2952282 -2.1437392 +1.336053 -2.2081728 +1.6780205 -2.7694318 +1.3664829 -2.2520714 +1.6000725 -2.6333132 +2.119405 -3.4830692 +1.7120194 -2.8095877 +1.8683091 -3.0617428 +1.4298162 -2.339843 +0.91819006 -1.5004654 +1.2900108 -2.1051064 +1.5351835 -2.5016623 +1.547681 -2.5184765 +1.481635 -2.40761 +1.0408418 -1.6889566 +0.69069076 -1.1191972 +0.77406275 -1.2525319 +1.1738049 -1.8966995 +1.3715771 -2.2131622 +1.0544049 -1.6989914 +0.896594 -1.4426825 +0.5283791 -0.84900856 +0.5289124 -0.84867644 +0.5294455 -0.8483439 +0.8276124 -1.3242509 +1.1449713 -1.8294938 +1.5118393 -2.4123223 +1.2570437 -2.0029674 +1.129589 -1.7973723 +1.2615818 -2.004599 +1.5910931 -2.524658 +1.3139726 -2.0820374 +1.5990387 -2.5302112 +1.577495 -2.4926527 +1.8275167 -2.8837087 +1.3253094 -2.0883536 +1.3822256 -2.175017 +1.0425725 -1.6382772 +0.9497955 -1.490421 +0.8563964 -1.3419977 +1.0374961 -1.6235358 +0.6601596 -1.0316279 +1.1104631 -1.7329158 +1.3232818 -2.0621731 +1.8578103 -2.8911722 +1.5068389 -2.3417451 +1.4566439 -2.2606156 +1.2992212 -2.013526 +1.6611818 -2.5709434 +1.4953691 -2.3111348 +1.2941611 -1.9974095 +1.6580098 -2.555454 +1.547103 -2.3812377 +1.6217577 -2.4927137 +1.4357643 -2.203803 +1.9625201 -3.008204 +1.5336102 -2.3475347 +1.3951883 -2.132721 +1.9024001 -2.9040737 +1.5666655 -2.3882892 +1.1055336 -1.683014 +1.272845 -1.9350708 +1.1952014 -1.814547 +0.9983792 -1.5136616 +1.2724249 -1.9265128 +1.3004661 -1.9662808 +1.6552403 -2.4992785 +1.6404175 -2.47352 +1.1571215 -1.7423996 +1.6835855 -2.5316985 +1.5692728 -2.3565876 +1.3299708 -1.9945089 +1.0135542 -1.5179232 +1.4818845 -2.2162893 +1.7881721 -2.6707363 +1.7249092 -2.5727513 +1.5150858 -2.256727 +1.1926515 -1.77405 +1.5850543 -2.3545463 +1.8787086 -2.7869785 +2.2297637 -3.303273 +2.2575688 -3.3399372 +2.5704648 -3.797703 +2.2027347 -3.2500033 +2.7514732 -4.054147 +2.6620753 -3.9171247 +2.5272517 -3.7137167 +2.8156114 -4.131868 +2.818207 -4.130098 +2.8208015 -4.1283264 +2.8233948 -4.126553 +2.825987 -4.1247783 +2.6605763 -3.8781185 +2.8311682 -4.121224 +2.6473565 -3.848473 +2.6743174 -3.8824399 +2.7835798 -4.0356317 +2.6414843 -3.824478 +2.2560043 -3.261975 +2.2673173 -3.2739336 +2.470939 -3.5631714 +2.742593 -3.9496036 +2.8544276 -4.1051483 +2.4315379 -3.4922779 +2.8187423 -4.042978 +2.8621607 -4.0997605 +2.864736 -4.0979614 +2.851405 -4.0734386 +2.6197321 -3.7374766 +2.4280982 -3.4594529 +2.600879 -3.7006764 +2.3300426 -3.3108914 +1.922724 -2.7284648 +2.272788 -3.2209275 +2.1759772 -3.0796208 +2.4577951 -3.4738393 +2.642903 -3.7304964 +2.174005 -3.0645561 +2.4958584 -3.5135722 +2.5076072 -3.5254178 +2.462806 -3.4578304 +2.6909108 -3.7730749 +2.9057877 -4.0689554 +2.9083438 -4.0671287 +2.3426876 -3.2717488 +2.6864069 -3.746804 +2.9041815 -4.045171 +2.9185565 -4.0598063 +2.9211066 -4.057972 +2.3788066 -3.3002388 +2.6242185 -3.6358929 +2.6085865 -3.6094534 +2.1252153 -2.9367328 +2.6887226 -3.7105057 +2.1891277 -3.0170605 +2.4611418 -3.3874712 +2.846675 -3.9129395 +2.9440072 -4.0413885 +2.6336613 -3.6105921 +2.8346672 -3.8810349 +2.9516199 -4.035832 +2.372936 -3.2403069 +2.1340053 -2.910203 +1.8634025 -2.537829 +1.7429 -2.370589 +1.9870645 -2.6991317 +2.435288 -3.303627 +2.4620404 -3.3355286 +2.4685075 -3.339896 +2.1204967 -2.8652685 +2.204827 -2.9753063 +2.515063 -3.3895006 +2.5195804 -3.3911338 +2.0081677 -2.6992729 +1.6424392 -2.204786 +1.4258697 -1.911558 +1.4113058 -1.8895549 +1.2212902 -1.6330076 +1.1677885 -1.5594258 +1.6054779 -2.1410964 +1.5178074 -2.0215297 +1.4010506 -1.8635843 +1.5211823 -2.020731 +1.1278577 -1.496283 +0.83655304 -1.1083714 +0.7155391 -0.946799 +1.2634455 -1.6696051 +1.4892286 -1.9654031 +1.3420724 -1.7688842 +1.1983777 -1.5774318 +0.799602 -1.0511491 +0.6059329 -0.7955158 +0.71067077 -0.93180865 +0.60693204 -0.79475373 +0.6074313 -0.7943722 +0.69178665 -0.9035114 +0.6084291 -0.79360825 +0.60892755 -0.7932258 +0.60942584 -0.79284304 +0.8766979 -1.1390733 +0.6104217 -0.7920766 +0.61091924 -0.7916929 +1.1578673 -1.4985375 +1.1101927 -1.4349716 +1.0362767 -1.3376945 +1.234547 -1.5915685 +1.5976049 -2.0569499 +1.103291 -1.4186696 +0.66443163 -0.8532542 +0.614891 -0.7886121 +0.61538637 -0.7882256 +0.6158815 -0.7878388 +0.6163764 -0.7874517 +0.70518476 -0.8997435 +0.6173655 -0.78667647 +0.6178596 -0.78628844 +0.61835355 -0.78590006 +0.8287841 -1.0519873 +0.99230653 -1.2579218 +0.6198338 -0.7847331 +0.62032676 -0.7843435 +0.8817014 -1.1133881 +1.1935905 -1.5052887 +1.028182 -1.2950126 +1.2055222 -1.5164181 +1.7285485 -2.171527 +1.9556748 -2.4536939 +2.4623616 -3.0854306 +2.3507571 -2.9417927 +2.3895164 -2.9864476 +1.9314791 -2.4108799 +1.7385938 -2.1673276 +2.2965534 -2.8591964 +2.2095587 -2.7473512 +2.0429206 -2.5368888 +2.1270168 -2.6379247 +2.0046158 -2.4829285 +2.1161127 -2.6176624 +1.8118335 -2.2383864 +1.8130434 -2.2370055 +1.6387465 -2.019356 +1.1087186 -1.3644725 +1.6254821 -1.9978744 +1.3864784 -1.7019303 +1.3302019 -1.6307561 +1.851045 -2.2663732 +2.148076 -2.6266801 +2.0075397 -2.4516864 +2.0112174 -2.4530318 +2.6156433 -3.1861498 +2.9865477 -3.6332963 +3.1774273 -3.8605642 +2.7004004 -3.2767794 +2.3990424 -2.9073753 +2.4323492 -2.9439692 +2.7164373 -3.2836087 +2.1106555 -2.5480826 +1.5128534 -1.8240536 +1.9831992 -2.3880963 +1.7497185 -2.1042562 +1.4889519 -1.7883646 +1.9914696 -2.3888793 +2.5663354 -3.0745332 +2.5766501 -3.0829508 +2.2593272 -2.699826 +2.5581062 -3.0529583 +2.4625387 -2.9351554 +2.453255 -2.9203615 +2.3452473 -2.78823 +1.867378 -2.2172685 +2.0857885 -2.4734466 +1.8345164 -2.1727023 +1.666213 -1.9708595 +1.4243748 -1.6826587 +1.7132694 -2.0213618 +1.6900278 -1.9914029 +1.3440259 -1.5816844 +1.8350469 -2.1567829 +1.355936 -1.5916429 +0.89612484 -1.0505632 +0.95349914 -1.116404 +0.6956445 -0.8134596 +0.6504031 -0.75958925 +0.90752083 -1.0585235 +0.691137 -0.8051112 +1.2079303 -1.4053406 +1.3211275 -1.5350851 +1.160662 -1.3469195 +0.6538562 -0.75782055 +0.65373766 -0.75672126 +0.65421295 -0.7563104 +0.65468806 -0.7558992 +0.6551629 -0.7554877 +0.65563744 -0.7550759 +0.90559715 -1.0416235 +0.86045146 -0.9884416 +1.1036614 -1.2662212 +1.0140682 -1.1619569 +0.99562526 -1.1393784 +0.65847933 -0.7525988 +0.65895206 -0.7521849 +0.65942454 -0.75177073 +0.6598968 -0.7513563 +0.70938283 -0.8066781 +1.1241637 -1.2767297 +1.4599953 -1.6560396 +1.578991 -1.7887468 +1.4774141 -1.6715583 +1.1632004 -1.314389 +1.2860502 -1.451368 +1.928501 -2.1736507 +1.5032223 -1.6921681 +1.5924627 -1.7903584 +1.5566533 -1.7478863 +2.1682239 -2.4315097 +2.461576 -2.7569942 +2.9357874 -3.283961 +2.9218848 -3.2642794 +2.6445217 -2.9506812 +3.019052 -3.364316 +2.5553153 -2.8439486 +2.9564962 -3.286289 +2.5857096 -2.870512 +2.2493033 -2.4938996 +2.5118709 -2.7815037 +3.0154026 -3.334871 +3.3557575 -3.7066011 +3.2746553 -3.6124551 +3.2114894 -3.5383031 +3.3627384 -3.700269 +2.7624557 -3.0358992 +2.9932241 -3.2853613 +2.4168844 -2.6494253 +2.424179 -2.6540706 +2.0489192 -2.2403953 +1.6730652 -1.8271103 +1.1205984 -1.2222332 +1.4343098 -1.5624253 +1.8117511 -1.9710929 +1.9574157 -2.1268847 +2.3159552 -2.5132947 +1.8442049 -1.9988257 +2.1803222 -2.3601463 +1.8875649 -2.0406697 +1.7640761 -1.9047621 +2.363764 -2.5490608 +2.0309212 -2.1873684 +1.6136554 -1.735771 +1.8288081 -1.9647285 +1.3975629 -1.499542 +1.7056247 -1.8277789 +1.2255728 -1.3116933 +1.1683836 -1.2489115 +0.8439305 -0.90096086 +0.68408895 -0.7293986 +1.1332198 -1.2067566 +0.685005 -0.7285384 +0.6854626 -0.7281078 +0.9058697 -0.9610167 +0.68637705 -0.72724587 +1.2364842 -1.3084599 +0.7877009 -0.8325045 +1.3258266 -1.3994759 +0.6882026 -0.7255185 +0.98292345 -1.0349166 +0.6891138 -0.7246531 +0.8128365 -0.8536818 +1.3118143 -1.376001 +1.2020661 -1.2592976 +1.3804117 -1.4443165 +1.3844588 -1.4467299 +0.6984103 -0.7289064 +0.6922943 -0.72161525 +0.97333443 -1.0132831 +0.9413534 -0.9787578 +1.5608928 -1.6208748 +0.90331316 -0.93684685 +0.6945579 -0.71943676 +1.1840248 -1.2248951 +1.1040577 -1.1407324 +1.4769028 -1.5240455 +1.3426466 -1.3837631 +1.934657 -1.9913976 +2.4058053 -2.473253 +2.2167704 -2.2760553 +1.6603341 -1.7025962 +1.1869882 -1.2156726 +1.220922 -1.2488557 +1.3320326 -1.3607969 +1.0095801 -1.0300858 +0.70041114 -0.7137396 +0.7008595 -0.7132994 +1.2780902 -1.2991419 +0.7017553 -0.7124181 +1.2702192 -1.2879 +0.8454519 -0.8561435 +1.3723084 -1.3879173 +2.0379312 -2.0585222 +2.4596093 -2.481341 +2.7301764 -2.7508395 +2.9781976 -2.9969692 +2.6014912 -2.6146007 +2.2197235 -2.2281075 +1.9250065 -1.9298507 +1.5902576 -1.5922574 +1.25516 -1.25516 +1.0638562 -1.0625203 +1.1026335 -1.0998658 +1.4680369 -1.4625129 +1.7325135 -1.7238268 +1.1633807 -1.156094 +1.7138542 -1.7009805 +1.3598689 -1.3479592 +1.509734 -1.4946322 +1.9926301 -1.9702204 +1.9295132 -1.9054173 +2.536018 -2.5012026 +2.3327925 -2.2978776 +1.9802402 -1.948152 +1.4350772 -1.4100496 +1.2892399 -1.2651645 +1.445374 -1.4166013 +0.8562497 -0.83815044 +1.3484309 -1.31827 +0.7154977 -0.69861513 +0.7159365 -0.6981654 +1.0859165 -1.0576315 +0.7399742 -0.7197945 +1.3536937 -1.3151231 +1.4672406 -1.4236437 +1.1694674 -1.1332928 +1.3993745 -1.3543843 +2.0574179 -1.9887693 +2.537732 -2.4499745 +2.8836308 -2.7804134 +3.3341966 -3.2108114 +3.038719 -2.9225907 +2.728893 -2.6213064 +2.0336394 -1.951008 +1.5818638 -1.5156813 +1.3512623 -1.2931004 +1.4891845 -1.4232945 +1.590418 -1.5181379 +2.230804 -2.126743 +2.8722115 -2.7347875 +3.2886717 -3.1273847 +2.6437788 -2.510958 +2.9757755 -2.8227212 +2.792858 -2.64588 +2.8436923 -2.6906507 +2.9964688 -2.831639 +2.9145625 -2.7507737 +2.5856383 -2.437264 +3.1851225 -2.9985702 +3.6426919 -3.425025 +3.3693693 -3.1640484 +3.205197 -3.006093 +3.6491413 -3.4181526 +3.288277 -3.0762541 +2.7433887 -2.563269 +2.8079722 -2.6203094 +3.11053 -2.8989925 +2.6182652 -2.4371328 +2.143275 -1.9924908 +2.768391 -2.5703876 +2.1546493 -1.998023 +2.8085127 -2.6010754 +2.4999948 -2.3124285 +2.0694196 -1.9117466 +2.7728374 -2.5583425 +2.7563567 -2.5399323 +2.85296 -2.6256378 +3.1057081 -2.8546448 +3.6801133 -3.3783522 +3.4179606 -3.1337402 +3.6546648 -3.346537 +3.6896865 -3.3743465 +3.6918058 -3.3720274 +3.3329227 -3.0403912 +2.7695708 -2.5232983 +2.4948397 -2.2701294 +2.2370796 -2.0330179 +2.4857976 -2.2561984 +3.1887915 -2.8906083 +2.938354 -2.6602278 +2.4656935 -2.2294888 +3.0872388 -2.7879686 +3.6231103 -3.2677634 +3.2898834 -2.9634721 +2.7287107 -2.4548733 +2.6479044 -2.3791678 +2.037209 -1.8281398 +1.3593452 -1.2183009 +1.27256 -1.1390795 +1.2648071 -1.1307093 +1.4057736 -1.2551419 +1.9636242 -1.7510014 +2.0816178 -1.8538718 +1.9991109 -1.7781409 +1.6724362 -1.4856938 +2.1827898 -1.9366094 +2.0052245 -1.7768198 +1.3390495 -1.1850243 +0.9055545 -0.8003783 +0.7496954 -0.66178304 +0.75011104 -0.66131186 +1.3282714 -1.1695462 +0.7754353 -0.6819083 +1.2434466 -1.0920869 +0.75177073 -0.65942454 +0.7521849 -0.65895206 +0.7525988 -0.65847933 +1.0264776 -0.89696896 +0.7534257 -0.65753305 +0.77940094 -0.67934006 +0.75425136 -0.65658575 +1.1520354 -1.0015903 +1.4404008 -1.2507097 +1.0400107 -0.9019027 +0.775865 -0.67198056 +0.932379 -0.80651337 +1.6848216 -1.455531 +1.732048 -1.4944308 +1.0948824 -0.9434776 +1.1190411 -0.9630709 +0.75836194 -0.6518337 +0.7587713 -0.6513571 +0.7591804 -0.6508802 +0.84023273 -0.7194546 +0.7599977 -0.6499257 +1.2718387 -1.0862528 +1.1104817 -0.947235 +1.2649337 -1.0776093 +0.77047956 -0.65554404 +1.154986 -0.98144174 +1.5504104 -1.3157743 +2.0334513 -1.7235161 +1.8333303 -1.5519189 +1.1031315 -0.9326145 +1.3115453 -1.1074003 +1.5003753 -1.2652246 +2.1736724 -1.8306615 +2.8315215 -2.381661 +3.1692302 -2.6623175 +3.084941 -2.5882058 +2.4029977 -2.0134974 +1.7014347 -1.4238317 +1.6982412 -1.4193459 +1.3298296 -1.1100185 +1.6007866 -1.3344826 +2.3252664 -1.9359641 +1.7495751 -1.4547964 +0.98848706 -0.82089096 +0.7697116 -0.63839173 +0.7701126 -0.637908 +1.0687343 -0.8841339 +1.3199574 -1.0905675 +1.7689835 -1.45969 +1.2219975 -1.0070505 +1.2536037 -1.0317754 +1.651125 -1.3572148 +1.4629873 -1.2010273 +1.9011683 -1.5587498 +1.4997362 -1.2280444 +1.8867579 -1.5429741 +1.5135112 -1.2361501 +1.7488927 -1.4265654 +2.3110132 -1.882668 +2.4946892 -2.0296934 +2.0682333 -1.680568 +1.6267298 -1.3201228 +1.6793743 -1.3610957 +1.8822268 -1.5235445 +1.9953299 -1.6130204 +2.7608073 -2.2289639 +2.8825817 -2.3242893 +2.1815252 -1.7567513 +1.937061 -1.5578823 +2.5285077 -2.0309386 +2.3639019 -1.8962823 +1.8458319 -1.4787902 +2.2791018 -1.8235549 +3.050432 -2.4375694 +2.3701506 -1.8915246 +2.731994 -2.1774893 +2.4956691 -1.9865676 +2.2062492 -1.7539243 +2.9406674 -2.334758 +2.81512 -2.2321968 +3.487652 -2.7619011 +2.9815762 -2.3580887 +2.8425953 -2.2452688 +3.0658426 -2.4184775 +3.1851683 -2.509362 +3.6870575 -2.9010115 +3.1386468 -2.4663253 +3.0644019 -2.4048715 +2.3777695 -1.8636053 +2.9935124 -2.3431666 +3.5702875 -2.7910202 +3.941128 -3.076932 +3.9430606 -3.074455 +3.9449916 -3.071977 +3.9469209 -3.0694976 +3.9488487 -3.067017 +3.9507751 -3.0645354 +3.8053324 -2.9478908 +3.5321739 -2.7327325 +3.740892 -2.8904557 +3.9584646 -3.0545962 +3.3271513 -2.5641022 +3.6812217 -2.833285 +3.5546117 -2.7322838 +3.1343281 -2.4060977 +3.7788787 -2.8971217 +3.969952 -3.0396514 +3.6402705 -2.7835996 +3.8580217 -2.9462676 +3.7513316 -2.8610613 +3.9775789 -3.0296643 +3.6697602 -2.7915616 +3.249116 -2.468359 +2.500695 -1.8973055 +2.0315566 -1.5393547 +2.5195327 -1.9066138 +2.1459396 -1.6217842 +2.8052394 -2.117279 +3.015812 -2.2732375 +3.1357741 -2.3605735 +3.3351884 -2.5074086 +3.2619305 -2.4491267 +2.8432565 -2.1319852 +2.2868955 -1.71256 +2.9314213 -2.192345 +3.0739996 -2.295966 +3.8736696 -2.8894482 +4.0097127 -2.9870062 +4.0115886 -2.984486 +4.013463 -2.981965 +4.0153356 -2.9794426 +4.017207 -2.9769192 +4.019077 -2.9743946 +4.0209446 -2.9718688 +3.4971974 -2.5813725 +3.0175414 -2.2243981 +3.5547538 -2.6169617 +3.8867123 -2.8575814 +4.018011 -2.950227 +4.0321198 -2.956689 +3.7751021 -2.7645764 +3.4202845 -2.501437 +3.766744 -2.7511902 +3.8301382 -2.7938042 +4.0413885 -2.9440072 +3.4589128 -2.5163693 +3.665873 -2.6634126 +3.048717 -2.2120972 +2.390913 -1.7325138 +2.847522 -2.0606563 +2.9730566 -2.1486564 +2.5342379 -1.8290951 +2.3730552 -1.7104943 +2.7023184 -1.9452477 +3.108859 -2.2349293 +2.6835637 -1.9266322 +2.0310209 -1.4562138 +1.8004855 -1.2892112 +1.4404761 -1.0300633 +2.0874794 -1.4907442 +1.3215091 -0.9424841 +1.8101397 -1.2892544 +1.3289394 -0.9452661 +0.8152491 -0.57911044 +1.0378479 -0.73625225 +1.0942895 -0.7752591 +0.82481724 -0.583571 +0.816702 -0.5770597 +0.9758089 -0.68856156 +0.8174265 -0.57603294 +0.81778824 -0.5755192 +0.81814975 -0.57500523 +0.81851083 -0.5744911 +0.8188716 -0.5739767 +1.4698505 -1.0288945 +2.1050684 -1.471577 +1.5131707 -1.056388 +1.9034748 -1.3270924 +1.1604931 -0.80800647 +0.8219819 -0.5715476 +0.8213882 -0.57036954 +1.5593011 -1.0813227 +1.1125921 -0.77051026 +0.82246184 -0.56882024 +1.3859893 -0.9572729 +1.6442757 -1.1341404 +1.4854695 -1.023227 +1.6815994 -1.1567687 +0.9953321 -0.68376595 +1.1822062 -0.81105036 +1.0545647 -0.72250813 +0.82531065 -0.56467897 +0.8256653 -0.5641603 +0.8260196 -0.56364137 +0.8263736 -0.5631223 +0.8267273 -0.56260294 +1.1505058 -0.78188294 +1.5612416 -1.0595853 +1.607433 -1.0894599 +1.8538351 -1.2547632 +1.4154164 -0.9567245 +0.82884234 -0.5594823 +1.3717813 -0.92472094 +1.2155828 -0.8183168 +1.4100119 -0.9479174 +0.8694318 -0.5837054 +1.6358839 -1.0967835 +1.2783858 -0.85593396 +1.598455 -1.06878 +1.515674 -1.0120524 +1.0554965 -0.70382214 +0.83234125 -0.5542635 +0.83268934 -0.5537404 +0.93122095 -0.6184206 +1.5692505 -1.0407135 +1.2975653 -0.85936093 +1.6539506 -1.0938959 +0.8591562 -0.56745625 +0.834771 -0.5505973 +0.8351168 -0.55007267 +0.8354622 -0.54954785 +0.8358074 -0.5490228 +1.5346034 -1.0066663 +2.304074 -1.5093524 +2.1412458 -1.4007651 +2.560408 -1.6726773 +2.6293192 -1.7153398 +2.9630125 -1.9303848 +2.4867578 -1.6178828 +3.2786322 -2.130145 +3.097465 -2.009673 +3.091712 -2.0031812 +2.8095522 -1.817859 +2.083696 -1.3463532 +2.6031144 -1.679651 +3.4090135 -2.1966226 +4.197134 -2.7007232 +3.6432207 -2.3410618 +4.2081194 -2.7003202 +3.675924 -2.3555548 +4.2115097 -2.6950302 +4.213202 -2.6923833 +4.214893 -2.6897357 +3.445091 -2.1954412 +3.1987624 -2.0356395 +3.936591 -2.5017076 +3.693728 -2.344111 +3.960765 -2.5100884 +3.3826013 -2.1407063 +4.1917715 -2.649109 +3.5426111 -2.2357397 +4.2300353 -2.665858 +3.944433 -2.482404 +3.8578506 -2.4245312 +3.8074565 -2.3895242 +3.8106284 -2.388179 +3.1994174 -2.002325 +2.8212862 -1.7632092 +2.5771794 -1.6083999 +3.084179 -1.9221231 +3.8903944 -2.4211805 +3.0476365 -1.8940359 +2.5700047 -1.5949612 +3.1315415 -1.9407302 +2.7808895 -1.7210009 +2.2629697 -1.3985118 +2.0532334 -1.2671129 +2.4153752 -1.4885069 +2.187151 -1.3459651 +2.6817393 -1.648011 +3.198431 -1.9627664 +3.4798553 -2.132458 +3.2265108 -1.9744208 +3.183438 -1.945315 +3.211797 -1.9598737 +4.02223 -2.450942 +4.2575984 -2.5906963 +4.2730193 -2.5964024 +3.740131 -2.2693884 +3.8873224 -2.355359 +3.9183075 -2.3707688 +4.250938 -2.5683792 +3.7180443 -2.2432218 +4.2827773 -2.580275 +3.6659572 -2.205517 +4.2860165 -2.574891 +3.6835902 -2.2098258 +4.2892485 -2.569503 +3.8362644 -2.2948658 +3.666494 -2.1901815 +3.0842457 -1.839747 +3.744362 -2.2303166 +3.6499248 -2.1709597 +4.298905 -2.553315 +3.507425 -2.0802388 +3.3731015 -1.9977083 +2.5893524 -1.5313387 +2.6469896 -1.5631812 +2.7218874 -1.6051064 +2.038968 -1.2006605 +2.2960343 -1.3500936 +2.312722 -1.3579513 +1.7871894 -1.0478671 +1.4386698 -0.84230834 +2.096295 -1.225565 +2.6581771 -1.55182 +2.2454042 -1.3089559 +2.9182074 -1.69871 +2.387345 -1.3876835 +2.9353597 -1.7037596 +3.1218789 -1.8093987 +3.8170002 -2.2090788 +4.3290796 -2.5018137 +4.3306503 -2.499093 +4.33222 -2.4963715 +4.3337874 -2.493649 +3.7425861 -2.1503444 +4.2104936 -2.4156682 +3.840765 -2.200339 +3.8534403 -2.204386 +4.226322 -2.4141724 +3.8779514 -2.2119443 +4.181796 -2.3817732 +4.259583 -2.422534 +4.3478193 -2.4691024 +3.7220497 -2.1106393 +3.648259 -2.065767 +2.9025655 -1.6411227 +2.8477705 -1.6077808 +2.3252072 -1.3108287 +1.6938456 -0.9534984 +1.494308 -0.8399388 +1.5467324 -0.86812776 +2.2920952 -1.2845812 +2.280731 -1.2763296 +2.7145555 -1.5168651 +2.5013921 -1.39569 +3.0311139 -1.6887598 +3.469247 -1.9300066 +3.7207642 -2.06687 +3.3418508 -1.8536383 +3.2158556 -1.7811106 +2.7610707 -1.5269606 +3.0348227 -1.675865 +3.0919437 -1.7048737 +3.1374679 -1.7274055 +3.1378431 -1.7250439 +3.5609877 -1.9547569 +2.7745042 -1.5207595 +2.4669635 -1.3501755 +1.8138992 -0.991271 +1.1825947 -0.6453072 +2.0205536 -1.1009097 +1.7805148 -0.96867293 +1.3347204 -0.725056 +1.6352178 -0.88696414 +1.593241 -0.8629002 +2.2251766 -1.2033492 +1.7565085 -0.94847316 +1.8103703 -0.9760886 +1.9940426 -1.0735017 +1.6305231 -0.87647843 +1.3805226 -0.7409744 +0.88140243 -0.47236618 +0.881699 -0.47181228 +1.5690488 -0.83835715 +1.0134684 -0.5406872 +0.8825868 -0.4701495 +0.88288206 -0.46959484 +0.8831769 -0.46904 +0.8834714 -0.468485 +0.88376564 -0.4679298 +1.4743396 -0.77943695 +1.290084 -0.68099004 +1.4072944 -0.7417311 +2.2372148 -1.1773548 +2.681612 -1.409072 +2.2445254 -1.1776026 +3.062943 -1.6045367 +3.603177 -1.8846564 +3.170186 -1.6556427 +3.594939 -1.8745978 +3.1040914 -1.6161631 +3.0475686 -1.5843011 +3.6036637 -1.8705161 +3.4588408 -1.7925864 +2.9645748 -1.5340649 +2.8049774 -1.4492451 +3.6544495 -1.8852328 +4.079029 -2.1010182 +4.2982483 -2.210517 +3.715784 -1.9080143 +3.877716 -1.9880867 +3.965111 -2.0297484 +3.2121947 -1.6417828 +3.7976725 -1.9380174 +2.9639947 -1.5102308 +2.7246852 -1.3861407 +2.1388085 -1.086394 +1.4948639 -0.7581253 +0.89214474 -0.4517497 +0.8924284 -0.45118907 +1.4581507 -0.73605394 +0.95448893 -0.48106027 +1.4663272 -0.7378706 +1.6881537 -0.84816706 +1.0360038 -0.519697 +1.1638392 -0.5829089 +1.8844813 -0.9423619 +1.4803339 -0.73909986 +1.557645 -0.77647734 +1.3475004 -0.6706647 +0.93837255 -0.46630222 +1.6858395 -0.836418 +1.8256006 -0.90433055 +2.5694096 -1.2707742 +1.948749 -0.96228546 +2.2862332 -1.1271478 +1.4912755 -0.7340572 +2.1434364 -1.0534008 +2.6321292 -1.2915181 +3.4645145 -1.6972481 +3.3879507 -1.6571012 +3.228496 -1.5765963 +2.9759634 -1.45096 +3.4080853 -1.6589956 +4.1150317 -1.9999274 +4.3786535 -2.124649 +3.7726824 -1.8276867 +2.9962938 -1.4492393 +3.5140011 -1.696919 +4.169495 -2.0102289 +3.9611785 -1.9067272 +3.140932 -1.5094686 +2.7356951 -1.3126047 +2.0249813 -0.9700346 +1.4750135 -0.70544237 +1.1421788 -0.54537874 +1.1805239 -0.5627775 +0.90294564 -0.4297548 +1.5792304 -0.75041425 +2.4070578 -1.1419256 +2.4502223 -1.1605177 +2.5561843 -1.2087395 +2.9199407 -1.3785043 +3.7824874 -1.7828072 +3.8759227 -1.8238708 +3.719676 -1.7474928 +3.8684497 -1.8144201 +3.898579 -1.825564 +3.3344724 -1.5588596 +3.411432 -1.5922269 +3.2867687 -1.5315281 +2.7557282 -1.2819736 +3.6292176 -1.6855507 +4.310825 -1.998824 +3.549512 -1.6431129 +4.1650496 -1.9248759 +4.540058 -2.0947251 +4.5413733 -2.091872 +4.542687 -2.0890183 +4.5439982 -2.0861635 +4.545308 -2.083308 +4.4383388 -2.0309057 +3.9327598 -1.7965742 +4.272859 -1.9486952 +4.55053 -2.071878 +4.551831 -2.0690184 +3.7870371 -1.7185138 +4.3068724 -1.9511467 +3.46233 -1.5659217 +2.8518424 -1.2876562 +2.7025864 -1.2182208 +2.8930802 -1.3019016 +2.9338298 -1.3180231 +3.5025334 -1.570869 +2.651153 -1.1870289 +2.6474242 -1.183363 +2.6500914 -1.182558 +3.35377 -1.4940363 +3.5130048 -1.5623276 +4.1196566 -1.8290225 +4.3870163 -1.9444245 +4.5124907 -1.9966464 +4.188827 -1.850288 +3.8529894 -1.6990495 +3.7410715 -1.6468903 +3.4259589 -1.5056027 +3.1616025 -1.3870568 +3.9260352 -1.7194875 +3.7815096 -1.6533587 +3.773761 -1.6471472 +3.8413653 -1.6737821 +4.2728024 -1.8585769 +4.586274 -1.9915043 +4.3858147 -1.9011842 +4.5887733 -1.9857395 +4.5900197 -1.9828558 +4.1577764 -1.7930306 +4.0537276 -1.74514 +3.1830008 -1.3679199 +2.3018806 -0.9875385 +1.7276611 -0.7399055 +0.9880829 -0.4224318 +0.9197393 -0.39252976 +0.9199858 -0.3919518 +1.7015787 -0.72367966 +1.7601365 -0.74727863 +1.1805687 -0.50034374 +1.2245386 -0.5180715 +0.92121255 -0.38905963 +0.9214568 -0.38848075 +1.0548728 -0.44394773 +0.9219443 -0.38732252 +0.92218745 -0.38674316 +1.1545408 -0.48333374 +0.92267275 -0.385584 +1.3802401 -0.57578254 +1.2031271 -0.5010106 +0.9233979 -0.3838441 +0.9236389 -0.38326386 +1.4850458 -0.6151261 +2.3174994 -0.95823413 +2.0842822 -0.8602709 +2.8878431 -1.1898113 +3.7604187 -1.5465554 +4.2574778 -1.7478553 +4.6265783 -1.895989 +4.6277685 -1.8930815 +4.2172437 -1.7220557 +4.322411 -1.7618316 +4.2070603 -1.7117324 +4.273696 -1.7357156 +4.633693 -1.8785337 +4.6348724 -1.8756219 +4.63605 -1.8727093 +4.6372256 -1.869796 +3.823218 -1.5387845 +3.0154734 -1.211479 +2.6172724 -1.0495906 +3.1529603 -1.2621156 +2.798552 -1.1182079 +3.542022 -1.4126935 +3.6073446 -1.4361203 +3.8179808 -1.5171982 +4.052463 -1.6074297 +4.2026854 -1.6639608 +4.511309 -1.7828755 +4.6511917 -1.8347794 +4.6523438 -1.8318566 +4.653494 -1.828933 +4.654642 -1.8260088 +4.6557884 -1.8230839 +4.638426 -1.8129246 +4.658076 -1.8172318 +4.6592164 -1.8143047 +4.6603556 -1.8113768 +4.6230764 -1.7935445 +4.662628 -1.805519 +4.6637616 -1.802589 +3.9616525 -1.5283568 +4.6660233 -1.796727 +4.2857995 -1.6472243 +4.6682773 -1.7908621 +3.9741905 -1.52173 +4.397952 -1.680822 +4.257628 -1.6241274 +4.6727633 -1.7791238 +4.6738806 -1.7761874 +4.6749954 -1.7732503 +4.0193725 -1.5216811 +4.633294 -1.750776 +4.1235476 -1.5551986 +4.6794376 -1.7614952 +4.479463 -1.6830057 +4.211269 -1.579222 +4.6827493 -1.7526716 +4.68385 -1.749729 +4.0039396 -1.4928713 +3.7305384 -1.3882642 +3.2924328 -1.2228751 +2.971588 -1.1015828 +2.1961765 -0.8125647 +2.3575196 -0.87057644 +1.5989748 -0.5893223 +1.1937307 -0.43911275 +1.3233049 -0.48583275 +1.1830446 -0.43349484 +0.9391662 -0.343463 +0.93938184 -0.34287283 +1.5904353 -0.57937413 +0.93981194 -0.34169212 +0.94002646 -0.34110153 +0.9402406 -0.34051085 +1.3394281 -0.48412597 +2.0307496 -0.7325565 +1.446233 -0.5206759 +0.94109344 -0.3381467 +0.9413057 -0.33755532 +1.0886664 -0.38962752 +1.211394 -0.43269256 +0.9419403 -0.33578038 +1.7717171 -0.63032264 +2.4693382 -0.87676734 +2.3326817 -0.8265957 +3.221438 -1.1392527 +3.2128305 -1.133938 +3.5049875 -1.234576 +3.1319504 -1.1009681 +2.6548202 -0.93136966 +2.9576204 -1.0355121 +2.5374234 -0.8866048 +1.7860893 -0.6228211 +2.488227 -0.86590797 +1.7946457 -0.6232764 +1.8460718 -0.6398371 +1.0122371 -0.35012287 +1.420228 -0.490244 +0.94547313 -0.32570016 +0.9456776 -0.32510605 +1.3687063 -0.46957392 +1.8651823 -0.6385946 +1.8335328 -0.62647176 +2.6906738 -0.9174476 +3.5747502 -1.2163873 +4.4956994 -1.5266094 +4.134408 -1.4010286 +4.736499 -1.6017424 +4.7375045 -1.598766 +4.5317035 -1.5261434 +4.7395096 -1.5928113 +4.442809 -1.4899929 +4.313182 -1.4435053 +3.6459138 -1.2176418 +3.0444615 -1.0146464 +3.219942 -1.0708824 +3.0185175 -1.0017871 +3.3095982 -1.0960832 +3.3626099 -1.1112957 +3.935878 -1.2980102 +4.4398737 -1.4611303 +4.7504053 -1.5600165 +4.7513843 -1.5570314 +4.752362 -1.5540457 +4.7533374 -1.5510594 +4.7543106 -1.5480725 +4.311177 -1.4007863 +3.382197 -1.0965934 +3.1425166 -1.0167015 +2.559975 -0.82645464 +1.9355382 -0.62352073 +1.1405042 -0.36661506 +0.9522147 -0.3054294 +0.95240647 -0.30483106 +1.2714053 -0.40605062 +1.6956086 -0.54035527 +2.335228 -0.7425727 +2.6452641 -0.8393305 +1.8908063 -0.598637 +2.2932594 -0.72447026 +3.1619632 -0.9967205 +3.4426546 -1.082823 +3.4136739 -1.071351 +3.0954893 -0.9693556 +3.9753544 -1.2421441 +4.435546 -1.3828777 +4.7743225 -1.4852079 +4.775255 -1.4822078 +4.7723265 -1.4780121 +4.679807 -1.4461366 +4.575968 -1.4108993 +4.778965 -1.4702016 +4.7798877 -1.4671986 +4.176619 -1.2791528 +4.437285 -1.3559366 +3.9317172 -1.1987457 +4.7382317 -1.4413917 +4.7844734 -1.4521749 +3.8317156 -1.1603667 +4.683238 -1.4150233 +4.3351655 -1.3068824 +4.161257 -1.2516041 +3.8140984 -1.1445746 +2.9118934 -0.8718375 +3.6407468 -1.0875683 +4.3724217 -1.3031433 +3.460363 -1.028949 +3.8400772 -1.1392326 +4.190728 -1.2403957 +4.7952867 -1.41606 +4.7961755 -1.4130467 +4.7970624 -1.4100329 +4.7979474 -1.4070185 +4.7988305 -1.4040036 +3.999853 -1.1675173 +3.258171 -0.9488066 +4.0497737 -1.176568 +3.995458 -1.158066 +4.442736 -1.2846822 +4.4088154 -1.2718724 +4.44404 -1.2790099 +3.791616 -1.0886608 +4.2447133 -1.2158692 +3.4064023 -0.97342527 +2.5707219 -0.7328715 +3.2887452 -0.9353345 +2.4670887 -0.6999763 +2.1966662 -0.6217595 +2.2966778 -0.64850914 +1.5455593 -0.4353687 +2.4020658 -0.6750093 +3.004893 -0.8423742 +3.8927026 -1.08862 +3.8753645 -1.0811464 +4.433168 -1.2337602 +4.817779 -1.3375373 +4.8186183 -1.33451 +4.819456 -1.331482 +4.8202915 -1.3284537 +4.141837 -1.1386746 +4.390175 -1.2039813 +3.4464297 -0.94283646 +3.7102318 -1.0124993 +3.8609457 -1.051022 +4.530703 -1.2302854 +4.826088 -1.3072401 +4.826908 -1.3042076 +4.827727 -1.3011744 +4.7601247 -1.2797467 +4.1207714 -1.1050825 +4.7002177 -1.2573096 +4.6795726 -1.248637 +4.5336504 -1.20665 +3.626398 -0.9627415 +2.785793 -0.73770297 +3.3809218 -0.8930256 +4.2066426 -1.1083016 +3.642774 -0.957295 +4.4715405 -1.1720858 +4.5713115 -1.1951689 +4.7912226 -1.2494488 +3.8834777 -1.0101227 +3.6500182 -0.94695 +3.8523378 -0.9968562 +3.5802147 -0.9240401 +4.37911 -1.1272976 +4.203469 -1.0792674 +3.4696822 -0.88853955 +3.7204237 -0.95026064 +4.577951 -1.1662244 +4.01748 -1.0207578 +4.2063947 -1.065944 +3.800339 -0.9605045 +4.575409 -1.1533391 +4.849105 -1.2190907 +4.8498697 -1.2160437 +4.7568736 -1.1895498 +4.851394 -1.2099482 +4.688151 -1.1661066 +4.852911 -1.2038507 +4.44358 -1.0993457 +4.664659 -1.150931 +4.855171 -1.1947011 +4.1446815 -1.0171111 +4.856669 -1.188599 +4.8574147 -1.1855472 +4.8581586 -1.182495 +4.6141257 -1.1200259 +4.073763 -0.98614913 +3.4752874 -0.838963 +2.6265135 -0.6323158 +2.192772 -0.52643794 +1.3090738 -0.313411 +1.8600923 -0.44409722 +2.0572033 -0.48979145 +2.015452 -0.47851306 +2.0183964 -0.47787267 +1.3279004 -0.31351084 +1.9524353 -0.45966554 +1.449642 -0.34033078 +0.9736745 -0.22794303 +0.97381747 -0.22733122 +0.97396016 -0.2267193 +1.8188689 -0.42219332 +2.137712 -0.4947874 +2.2026055 -0.5083496 +1.5648521 -0.36012405 +1.7772793 -0.4078349 +1.1810234 -0.27023014 +1.8034165 -0.41144773 +1.8279185 -0.41582972 +1.2604928 -0.28591427 +0.9958247 -0.22522251 +0.97550386 -0.21998242 +0.9848943 -0.2214498 +1.7926024 -0.40187687 +2.229818 -0.4984234 +1.7883079 -0.39855456 +1.8740063 -0.4164181 +1.2304791 -0.27261043 +1.4989175 -0.33109456 +1.1871483 -0.26144594 +0.9767322 -0.21446258 +1.7270197 -0.37806708 +0.97700095 -0.21323502 +1.3878587 -0.30199322 +0.9772681 -0.2120071 +0.97740114 -0.21139303 +0.97753376 -0.21077888 +0.977666 -0.21016462 +1.0539756 -0.22587584 +0.97792935 -0.20893589 +0.9780604 -0.20832139 +1.6152525 -0.34297895 +1.4955611 -0.31658202 +1.0395277 -0.21936603 +1.5363797 -0.3232059 +0.97871006 -0.2052477 +1.2669061 -0.2648551 +1.722485 -0.35896742 +1.4269392 -0.29644006 +0.97922283 -0.2027873 +1.1282648 -0.23291318 +1.4933192 -0.307295 +1.5910983 -0.32637405 +1.7169844 -0.35107237 +0.97985506 -0.19970998 +1.2412405 -0.2521723 +1.474393 -0.2985754 +0.98022974 -0.19786264 +0.9803539 -0.19724672 +0.98047763 -0.1966307 +0.98060095 -0.1960146 +0.9807239 -0.19539843 +1.0138222 -0.2013307 +0.9809687 -0.19416587 +0.98109055 -0.19354947 +0.98121196 -0.192933 +1.7967633 -0.35212016 +1.308662 -0.2556109 +1.3912776 -0.27084017 +0.98169374 -0.19046633 +1.4800185 -0.28618553 +1.9118502 -0.36844116 +2.4106274 -0.462992 +2.412877 -0.46185234 +2.6378024 -0.5031877 +2.7100818 -0.5152112 +3.611939 -0.6843113 +3.6377327 -0.6868307 +3.1540735 -0.5934601 +4.027807 -0.75523895 +4.743562 -0.88636255 +4.9155097 -0.91529596 +4.195354 -0.77847177 +4.748142 -0.877959 +4.917226 -0.9060288 +4.917794 -0.9029391 +4.7706695 -0.87282777 +4.1194506 -0.75100803 +3.5867531 -0.65156484 +4.568728 -0.8269841 +4.8941684 -0.8827164 +4.9211636 -0.88439304 +4.921718 -0.8813008 +4.922271 -0.8782082 +4.9228215 -0.8751153 +3.9572306 -0.7009004 +3.1851764 -0.5620911 +2.7393088 -0.48163384 +2.103436 -0.3684704 +2.8301744 -0.4939445 +1.9878197 -0.3456432 +1.3432052 -0.23268788 +2.1003938 -0.36249897 +2.5122192 -0.43194908 +3.4044979 -0.5831647 +2.7296333 -0.4658003 +2.4884439 -0.42303345 +3.2207808 -0.5454482 +2.6294868 -0.44361156 +3.2352703 -0.5437207 +2.9785483 -0.49865183 +3.183837 -0.5309638 +4.089385 -0.67934006 +4.9329176 -0.81628543 +4.9334297 -0.8131858 +4.9339395 -0.8100859 +4.934448 -0.8069857 +4.9349537 -0.8038851 +4.8347526 -0.78444463 +4.9359603 -0.797683 +4.9364605 -0.7945815 +4.519096 -0.7244891 +4.1412687 -0.6612482 +4.667922 -0.742333 +4.1885405 -0.66339964 +4.9389324 -0.77906924 +4.5406313 -0.71331745 +4.450956 -0.6963644 +4.662966 -0.7265327 +4.108497 -0.63749754 +4.079377 -0.6303545 +4.274784 -0.6577995 +4.7672057 -0.73050684 +4.331965 -0.66102684 +4.943259 -0.75112796 +4.94373 -0.74802184 +4.9441986 -0.7449155 +4.944666 -0.7418088 +4.519911 -0.67518264 +4.9081135 -0.7300198 +4.9460554 -0.732487 +4.308849 -0.6353534 +4.9367948 -0.7247769 +4.328642 -0.6327151 +4.2843065 -0.62348545 +3.9869263 -0.57765055 +3.2529478 -0.46922058 +4.075461 -0.58525 +4.0723367 -0.58219016 +4.81217 -0.6848732 +4.95056 -0.70139575 +4.7353377 -0.6678683 +4.3466325 -0.6102604 +3.8401988 -0.53669775 +3.889203 -0.5410553 +3.7851524 -0.524156 +2.8488345 -0.39267346 +2.0134373 -0.27623624 +1.1229525 -0.15334618 +0.99088943 -0.13467799 +0.99097383 -0.13405538 +1.1524625 -0.15516368 +1.0977666 -0.14709741 +1.6437143 -0.21920152 +1.9043677 -0.25274384 +2.8430505 -0.37550628 +2.4193335 -0.31799582 +2.2860627 -0.29901773 +1.4229774 -0.18521659 +0.9917161 -0.12844943 +1.3648045 -0.17590088 +1.5466479 -0.19834967 +0.9919564 -0.12657987 +1.688259 -0.21435449 +2.3909333 -0.30204514 +3.1634536 -0.3976179 +4.1302366 -0.51649797 +4.1195717 -0.5125357 +3.706366 -0.4587621 +3.0452027 -0.37498292 +2.4923694 -0.305318 +3.200262 -0.38999486 +3.596516 -0.43599054 +3.741079 -0.4511304 +4.416475 -0.5297601 +3.970357 -0.47371754 +3.7067087 -0.43989873 +3.5468106 -0.41866285 +3.003113 -0.35257214 +2.0411649 -0.23833722 +2.950176 -0.3425994 +2.0644107 -0.23842233 +1.2808282 -0.1471096 +0.9935402 -0.113480665 +1.0811733 -0.122801855 +1.4405752 -0.1627067 +0.99375236 -0.111607686 +0.9938223 -0.110983275 +0.99389184 -0.11035881 +1.4299196 -0.1578646 +0.9940297 -0.10910977 +1.7302393 -0.18881972 +1.7396142 -0.18873683 +2.5399554 -0.27395403 +3.5000353 -0.3752816 +3.838546 -0.4091381 +4.66529 -0.49429363 +4.9725 -0.5236838 +4.972828 -0.5205594 +4.973154 -0.5174347 +4.112371 -0.42526236 +4.7100143 -0.48407412 +4.9741206 -0.5080596 +4.9744387 -0.5049342 +4.8191423 -0.48611176 +4.498652 -0.4509284 +3.6274822 -0.36130357 +3.1067576 -0.30746722 +2.6076329 -0.25641584 +1.9785892 -0.19330509 +2.5513513 -0.2476448 +2.944578 -0.28394556 +2.6809478 -0.2568237 +1.9588332 -0.1864061 +1.5384909 -0.1454302 +0.9956209 -0.09348276 +0.99567944 -0.09285718 +0.9957376 -0.09223156 +0.99579537 -0.0916059 +1.2117702 -0.11070623 +2.1512861 -0.19517668 +1.1800426 -0.106312536 +0.9960224 -0.08910291 +0.9960782 -0.08847707 +1.4788423 -0.13042232 +0.99618864 -0.08722529 +1.3459976 -0.11700207 +1.2251253 -0.105719596 +0.99635124 -0.08534736 +1.0524067 -0.089483 +1.4956064 -0.12622051 +1.5884013 -0.13304678 +1.9125942 -0.15899155 +1.7487055 -0.1442614 +2.3659053 -0.1936814 +1.5491676 -0.12584051 +2.4772155 -0.19966015 +2.7676141 -0.22131573 +3.5559525 -0.28210774 +3.4293423 -0.2698951 +3.111645 -0.24292465 +2.5133214 -0.1946251 +2.8505194 -0.21893516 +2.5182848 -0.19182621 +2.4171698 -0.18259646 +2.8607955 -0.21430092 +3.2661955 -0.24260563 +3.7657518 -0.27733248 +4.1289263 -0.30147058 +4.766192 -0.3449896 +4.2462296 -0.3046715 +4.0726147 -0.28964245 +3.566324 -0.2513833 +4.225721 -0.29519475 +3.6924028 -0.2556077 +3.1481743 -0.21594585 +3.687465 -0.25061026 +4.4192443 -0.2975546 +4.9889145 -0.3327627 +4.0228086 -0.26578426 +3.8943167 -0.25483742 +2.9247184 -0.18954313 +2.1421916 -0.1374781 +2.4957166 -0.15859155 +1.5996343 -0.10064046 +1.9035318 -0.11855936 +2.3386056 -0.14418243 +1.433165 -0.087455265 +0.9981814 -0.06028201 +1.7150482 -0.10249343 +1.8933939 -0.11195774 +1.6303728 -0.09537716 +2.0609913 -0.1192691 +2.7942517 -0.15994123 +3.0094252 -0.17036062 +2.7875907 -0.15604573 +2.4038742 -0.1330507 +2.3902493 -0.13079019 +1.6565565 -0.0895999 +1.9534024 -0.10442481 +1.8219304 -0.09624861 +1.6073431 -0.08389972 +2.4179337 -0.124687426 +2.5997167 -0.13242382 +2.141133 -0.107715815 +2.921363 -0.14512739 +3.6682231 -0.17991945 +3.892988 -0.1884919 +3.577268 -0.17095241 +2.5849755 -0.12190435 +3.0695207 -0.14282206 +2.3760257 -0.10905826 +3.0168774 -0.1365735 +2.2183082 -0.0990258 +1.7293121 -0.076108195 +1.4689641 -0.06372537 +2.330576 -0.09963603 +2.258193 -0.095120125 +1.4082986 -0.058434267 +2.1159546 -0.08646516 +1.8590472 -0.07479704 +2.39801 -0.0949726 +2.9097092 -0.11340727 +2.3636923 -0.09063864 +1.864625 -0.07032803 +1.3854398 -0.051382888 +1.6416734 -0.05985314 +1.2484215 -0.044730287 +1.9497336 -0.068631336 +1.1198004 -0.038712937 +1.0073992 -0.03419337 +1.6827348 -0.056057278 +1.8077155 -0.059083726 +2.739991 -0.087831005 +2.5887911 -0.08135603 +2.8737946 -0.08850522 +3.0163052 -0.09099721 +4.011744 -0.11850514 +4.6330686 -0.13394527 +3.9026883 -0.11037533 +3.6381555 -0.100606136 +4.6145296 -0.12470431 +4.074449 -0.10754714 +3.2598763 -0.083996445 +3.8923438 -0.09784587 +3.6207185 -0.08874138 +2.8416784 -0.0678611 +3.0285914 -0.07042073 +2.904008 -0.06569832 +2.2746994 -0.05003132 +1.3160908 -0.028119702 +1.8541802 -0.03845103 +2.2058315 -0.04435685 +1.9201719 -0.037405595 +1.2362372 -0.023305282 +0.999834 -0.01822023 +0.99984527 -0.017592011 +1.2220099 -0.020732898 +0.99986655 -0.016335554 +1.9139609 -0.030066902 +1.7238461 -0.025996957 +1.2964936 -0.018737357 +0.99990445 -0.013822568 +1.6188821 -0.021361886 +0.999921 -0.01256604 +0.9999287 -0.011937768 +1.707403 -0.019311097 +2.2559235 -0.024097372 +1.9249173 -0.019352032 +2.2956107 -0.021636263 +1.4926057 -0.013129984 +2.0770485 -0.016966002 +1.950848 -0.014709326 +1.6730411 -0.011563414 +1.28282 -0.008060302 +2.0999076 -0.011874825 +1.3222525 -0.006646422 +0.99999034 -0.0043982156 +1.3930691 -0.005251772 +1.8355911 -0.0057666986 +2.037258 -0.0051201987 +1.6741288 -0.003155662 +1.7118267 -0.002151146 +2.4374065 -0.001531468 diff --git a/testbed/data/diamond.dat b/testbed/data/diamond.dat new file mode 100644 index 0000000..cebcddb --- /dev/null +++ b/testbed/data/diamond.dat @@ -0,0 +1,10 @@ +0.0 0.0 +2.0 1.0 +4.0 2.0 +6.0 3.0 +8.0 4.0 +1.0 5.0 +-8.0 4.0 +-6.0 3.0 +-4.0 2.0 +-2.0 1.0 diff --git a/testbed/data/dude.dat b/testbed/data/dude.dat new file mode 100644 index 0000000..691dc12 --- /dev/null +++ b/testbed/data/dude.dat @@ -0,0 +1,94 @@ +280.35714 648.79075 +286.78571 662.8979 +263.28607 661.17871 +262.31092 671.41548 +250.53571 677.00504 +250.53571 683.43361 +256.42857 685.21933 +297.14286 669.50504 +289.28571 649.50504 +285 631.6479 +285 608.79075 +292.85714 585.21932 +306.42857 563.79075 +323.57143 548.79075 +339.28571 545.21932 +357.85714 547.36218 +375 550.21932 +391.42857 568.07647 +404.28571 588.79075 +413.57143 612.36218 +417.14286 628.07647 +438.57143 619.1479 +438.03572 618.96932 +437.5 609.50504 +426.96429 609.86218 +424.64286 615.57647 +419.82143 615.04075 +420.35714 605.04075 +428.39286 598.43361 +437.85714 599.68361 +443.57143 613.79075 +450.71429 610.21933 +431.42857 575.21932 +405.71429 550.21932 +372.85714 534.50504 +349.28571 531.6479 +346.42857 521.6479 +346.42857 511.6479 +350.71429 496.6479 +367.85714 476.6479 +377.14286 460.93361 +385.71429 445.21932 +388.57143 404.50504 +360 352.36218 +337.14286 325.93361 +330.71429 334.50504 +347.14286 354.50504 +337.85714 370.21932 +333.57143 359.50504 +319.28571 353.07647 +312.85714 366.6479 +350.71429 387.36218 +368.57143 408.07647 +375.71429 431.6479 +372.14286 454.50504 +366.42857 462.36218 +352.85714 462.36218 +336.42857 456.6479 +332.85714 438.79075 +338.57143 423.79075 +338.57143 411.6479 +327.85714 405.93361 +320.71429 407.36218 +315.71429 423.07647 +314.28571 440.21932 +325 447.71932 +324.82143 460.93361 +317.85714 470.57647 +304.28571 483.79075 +287.14286 491.29075 +263.03571 498.61218 +251.60714 503.07647 +251.25 533.61218 +260.71429 533.61218 +272.85714 528.43361 +286.07143 518.61218 +297.32143 508.25504 +297.85714 507.36218 +298.39286 506.46932 +307.14286 496.6479 +312.67857 491.6479 +317.32143 503.07647 +322.5 514.1479 +325.53571 521.11218 +327.14286 525.75504 +326.96429 535.04075 +311.78571 540.04075 +291.07143 552.71932 +274.82143 568.43361 +259.10714 592.8979 +254.28571 604.50504 +251.07143 621.11218 +250.53571 649.1479 +268.1955 654.36208 \ No newline at end of file diff --git a/testbed/data/funny.dat b/testbed/data/funny.dat new file mode 100644 index 0000000..08cd16e --- /dev/null +++ b/testbed/data/funny.dat @@ -0,0 +1,100 @@ +100.317505 0.0 +146.29202 9.203914 +129.52948 16.363379 +95.36635 18.192104 +88.769775 22.792204 +102.68762 33.36523 +142.4203 56.388184 +132.23712 62.22607 +134.04555 73.69216 +121.24752 76.946014 +140.18803 101.85256 +124.024445 102.601944 +119.727 112.43114 +144.82764 154.22577 +155.76044 188.28203 +146.94632 202.25424 +133.9567 211.08199 +120.438416 219.07668 +103.53854 220.03061 +90.72225 229.13826 +77.25425 237.76413 +54.851055 213.63075 +46.84533 245.57181 +31.33331 248.02867 +15.69763 249.50668 +1.5308084E-14 250.0 +-13.490268 214.42166 +-29.863472 236.39372 +-44.794296 234.81993 +-50.172047 195.40721 +-69.351425 213.44174 +-75.72414 191.25734 +-96.03964 204.09464 +-120.438416 219.07668 +-127.11785 200.30568 +-119.31813 164.22733 +-130.35721 157.57478 +-112.00853 119.27697 +-142.68515 133.99026 +-117.65654 97.333954 +-125.62218 91.26986 +-114.24053 72.499245 +-160.95981 88.4884 +-138.49583 65.171196 +-102.99021 40.776707 +-141.48434 45.97105 +-97.90232 25.137043 +-116.9116 22.30208 +-145.58727 18.391949 +-183.83247 11.565759 +-190.12851 2.3284026E-14 +-157.68095 -9.9204445 +-186.18002 -23.520008 +-160.72182 -30.659325 +-143.63857 -36.880116 +-143.12222 -46.50323 +-98.59685 -39.037254 +-86.89141 -40.887993 +-83.81993 -46.0804 +-42.216396 -26.79134 +-40.45085 -29.389263 +-38.52566 -31.871199 +-46.53258 -43.697002 +-34.227356 -36.448433 +-38.017994 -45.95586 +-29.389263 -40.45085 +-26.79134 -42.216396 +-31.430187 -57.1713 +-22.040213 -46.837833 +-27.75829 -70.109436 +-26.90105 -82.79292 +-13.713537 -53.4107 +-10.41509 -54.59781 +-6.2666616 -49.605736 +-3.139526 -49.901337 +-9.184851E-15 -50.0 +3.5057213 -55.721844 +6.2666616 -49.605736 +14.274147 -74.8277 +19.75647 -76.946365 +24.69724 -76.01029 +24.807446 -62.656456 +28.282286 -60.102917 +37.102608 -67.489395 +51.878616 -81.74762 +46.092445 -63.440807 +34.334026 -41.502712 +34.227356 -36.448433 +43.65427 -40.99409 +38.52566 -31.871199 +40.45085 -29.389263 +42.216396 -26.79134 +52.668476 -28.95474 +86.38597 -40.650154 +126.91717 -50.25006 +83.21832 -27.039272 +109.77473 -28.185358 +105.45997 -20.117565 +119.66038 -15.116621 +74.30321 -4.674762 \ No newline at end of file diff --git a/testbed/data/nazca_heron.dat b/testbed/data/nazca_heron.dat new file mode 100644 index 0000000..14aebf8 --- /dev/null +++ b/testbed/data/nazca_heron.dat @@ -0,0 +1,1036 @@ +-91.726 10.4022 +-92.5616 10.385 +-93.0053 10.4193 +-93.8429 10.4444 +-94.4002 10.3881 +-95.1773 10.4322 +-95.731 10.328 +-96.0661 10.0034 +-95.7371 9.52215 +-95.0108 9.51904 +-93.8987 9.40352 +-93.063 9.41048 +-92.1174 9.36365 +-91.1689 9.32841 +-90.1664 9.32695 +-89.2738 9.29848 +-87.9935 9.21778 +-87.1011 9.24003 +-85.9323 9.16578 +-84.818 9.2136 +-83.8152 9.2263 +-82.3111 9.25894 +-81.2523 9.21521 +-80.3055 9.26966 +-79.1913 9.27179 +-78.3561 9.26927 +-77.4071 9.2506 +-76.2938 9.15212 +-75.2359 9.21265 +-74.2889 9.23221 +-73.2304 9.22176 +-72.3344 9.24597 +-71.3911 9.06377 +-70.7225 9.00533 +-69.8321 8.87212 +-68.5508 8.90126 +-67.2126 8.90584 +-66.2109 8.83119 +-65.1525 8.76935 +-64.2054 8.77328 +-62.9784 8.69629 +-62.0884 8.7899 +-61.1999 8.81082 +-60.4738 8.81708 +-59.6372 8.77889 +-58.3559 8.77041 +-57.8008 8.75645 +-57.2974 8.71659 +-56.6289 8.69558 +-55.7933 8.71756 +-55.1804 8.7228 +-54.4562 8.71456 +-53.3976 8.71721 +-52.2278 8.78652 +-51.4479 8.73714 +-50.4451 8.74938 +-49.8323 8.77075 +-48.6067 8.78685 +-47.7153 8.78148 +-46.9345 8.79131 +-45.8212 8.72036 +-44.9864 8.73653 +-43.76 8.7899 +-43.2029 8.80459 +-42.5953 8.82626 +-42.0346 8.81404 +-41.4759 8.75151 +-40.7516 8.71843 +-40.1388 8.78394 +-39.5817 8.75781 +-39.1361 8.75758 +-38.6347 8.80655 +-38.2447 8.77854 +-37.8547 8.74123 +-37.4091 8.7923 +-35.9611 8.78602 +-34.6793 8.78076 +-33.8436 8.83903 +-32.8966 8.83963 +-32.0052 8.8087 +-31.0024 8.86909 +-29.9997 8.8264 +-29.1083 8.82878 +-27.7705 8.83849 +-26.5457 8.72773 +-25.4873 8.7165 +-24.2616 8.6655 +-23.0892 8.68424 +-22.1449 8.54477 +-20.8074 8.50105 +-19.5257 8.45263 +-17.9667 8.37676 +-16.6851 8.31799 +-15.5706 8.3359 +-14.401 8.27044 +-13.2307 8.27746 +-12.5648 8.24932 +-11.7826 8.30542 +-11.225 8.26741 +-10.6119 8.33761 +-9.94418 8.2737 +-9.10957 8.29055 +-8.16166 8.32522 +-7.15627 8.31888 +-6.10021 8.19418 +-5.04173 8.20764 +-4.20608 8.21455 +-3.25902 8.21726 +-2.09019 8.14631 +-1.30858 8.09495 +-0.306399 8.16141 +0.528273 8.19199 +1.97994 8.12994 +2.75763 8.20323 +3.48095 8.19986 +4.54034 8.18316 +5.26597 8.14464 +5.93308 8.20355 +6.37876 8.23306 +6.93779 8.20172 +7.38503 8.28515 +7.75928 8.14925 +8.10818 7.83366 +8.55309 7.68152 +9.27282 7.59373 +10.1085 7.35329 +10.6702 7.35345 +11.5114 7.20388 +12.5089 7.36493 +13.4027 7.4728 +14.412 7.6901 +15.1803 8.05105 +15.6266 8.26723 +16.2416 8.29494 +17.0758 8.37201 +17.9672 8.45068 +18.6906 8.3527 +19.4689 8.36621 +20.0833 8.32903 +20.8076 8.36605 +21.5349 8.39958 +22.811 8.30214 +23.5936 8.32996 +24.2817 8.11023 +24.3617 7.60334 +24.4628 6.99157 +24.4059 6.20837 +24.5479 5.43455 +24.7617 4.81808 +25.0482 4.37841 +25.4039 3.83047 +25.9341 3.55091 +26.5429 3.48577 +27.1405 3.94951 +27.7711 4.42902 +28.3433 5.30396 +29.0083 5.9264 +29.3964 6.59346 +30.0334 7.39695 +30.4568 7.93096 +30.9385 8.5706 +31.4443 9.3344 +31.9062 9.83899 +32.3178 9.99556 +32.4543 9.44194 +32.3424 8.99712 +32.3298 8.3286 +32.2872 7.66008 +32.3614 7.04572 +32.2586 6.26963 +32.1964 5.65849 +32.1029 4.76416 +32.0489 3.98324 +32.0854 3.31228 +31.9712 2.75763 +32.0396 2.13545 +31.8344 1.53202 +31.8289 0.861208 +31.99 0.183618 +32.3457 -0.243851 +32.8982 -0.739612 +33.7837 -0.849395 +34.3622 -0.710696 +34.8876 -0.0191316 +35.4023 0.808785 +35.7456 1.19234 +36.2095 1.94174 +36.8011 2.75484 +37.2693 3.52304 +37.7639 4.47142 +38.2574 5.25764 +38.5964 5.86575 +39.0468 6.53111 +39.4802 7.20908 +39.8636 7.93611 +40.3677 8.68935 +40.853 9.50473 +41.3001 10.2266 +41.5896 10.8341 +41.8697 11.2788 +42.1444 11.7269 +42.4414 12.3274 +42.8817 13.0026 +43.044 13.3927 +43.2547 13.7354 +43.8157 14.4808 +44.21 14.4567 +44.2384 13.7881 +44.214 13.1202 +44.2478 12.3397 +44.2545 11.504 +44.2471 10.2762 +44.383 9.55421 +44.3819 8.8306 +44.4857 7.99434 +44.4374 7.1038 +44.4823 6.49018 +44.5055 5.54178 +44.3968 4.65176 +44.4035 3.87539 +44.3112 3.09147 +44.3678 2.31195 +44.3634 1.64156 +44.4741 1.08215 +44.7443 0.405587 +45.098 -0.0812431 +45.5916 -0.319965 +46.0404 -0.518244 +47.0404 -0.187042 +47.6198 0.241597 +48.0225 1.04872 +48.4879 1.70359 +49.0113 2.52644 +49.4565 3.30864 +49.7829 4.08959 +50.2298 4.64717 +50.7013 5.35933 +50.968 6.06294 +51.3782 6.77734 +51.8168 7.50498 +52.2817 8.27353 +52.5085 8.88449 +52.9297 9.67783 +53.2782 10.2838 +53.7366 10.9445 +54.1325 11.6654 +54.43 12.1549 +54.74 12.7268 +54.9842 13.2537 +55.3914 13.7539 +55.9159 14.019 +56.1591 13.621 +56.1814 12.7857 +56.0542 11.8895 +55.901 10.9481 +55.755 10.1629 +55.6441 9.16009 +55.4555 8.44064 +55.3158 7.48927 +55.1979 6.76738 +55.1458 6.04168 +55.0153 5.20856 +54.9225 4.47831 +54.6817 3.75997 +54.4404 2.76892 +54.3443 1.69915 +54.3354 0.809666 +54.1511 -0.0300711 +54.2166 -0.702496 +54.453 -1.31046 +54.6851 -1.85943 +55.1255 -2.25343 +55.7401 -2.43474 +56.4817 -2.28494 +57.1939 -1.76082 +57.67 -1.0781 +58.1661 -0.0158294 +58.7044 0.911084 +59.1398 1.69647 +59.5985 2.35776 +59.9523 3.04503 +60.2915 3.7707 +60.7648 4.36495 +61.1845 5.10498 +61.5282 5.65631 +61.9625 6.44572 +62.3804 6.92578 +62.7068 7.38979 +63.1888 7.02434 +63.7594 6.71273 +64.4182 5.92176 +64.9326 5.49007 +65.436 4.93653 +65.9846 4.48258 +66.3835 3.82101 +66.8552 3.23917 +67.3884 2.6537 +67.8008 2.17994 +68.2584 1.64344 +68.2649 0.417823 +68.2525 -0.137759 +68.212 -0.863123 +68.2058 -1.53202 +68.1769 -2.19838 +68.2882 -3.03763 +68.1923 -3.65085 +68.2978 -4.37321 +68.3021 -5.31814 +68.2969 -6.10242 +68.4 -6.88111 +68.3005 -7.82472 +68.273 -8.44002 +68.2464 -9.2692 +68.1829 -9.71818 +68.245 -10.5034 +68.3322 -11.2255 +68.3078 -11.8903 +68.2012 -12.5096 +68.3418 -13.1022 +68.6065 -13.3261 +69.0974 -13.3425 +69.0796 -12.6196 +69.0225 -11.5006 +69.1975 -10.0556 +69.2256 -8.9414 +69.243 -7.60627 +69.3237 -6.21134 +69.4118 -4.87177 +69.2502 -3.87182 +69.2618 -2.97959 +69.3274 -2.14482 +69.3415 -1.36489 +69.3206 -0.686317 +69.6114 -0.427229 +70.0984 -0.312499 +70.4035 -0.864603 +70.2948 -1.58221 +70.2543 -2.36766 +70.2135 -3.09189 +70.2426 -3.81611 +70.1699 -4.54469 +70.2999 -5.2107 +70.2593 -5.87737 +70.1916 -6.43108 +70.1723 -6.93454 +70.244 -7.43724 +70.2816 -8.16147 +70.289 -8.88495 +70.3531 -9.72134 +70.3477 -10.3873 +70.4535 -11.0022 +70.4808 -11.9497 +70.4864 -12.6171 +70.4493 -13.34 +70.6577 -13.7504 +71.1761 -14.0215 +71.6078 -13.6693 +71.7849 -12.7296 +71.7493 -11.1698 +71.7383 -10.222 +71.6867 -9.21995 +71.5978 -8.10296 +71.6945 -6.65731 +71.724 -5.6547 +71.6909 -4.93167 +71.7255 -4.0947 +71.6829 -3.09189 +71.6556 -2.31361 +71.5993 -1.80799 +71.7354 -1.15126 +72.1227 -0.732545 +72.5957 -0.924082 +72.7269 -1.42072 +72.798 -2.41973 +72.955 -3.03618 +72.9628 -3.64899 +72.95 -4.20608 +72.939 -4.93373 +73.1754 -5.7659 +73.2306 -6.60159 +73.258 -7.4394 +73.3313 -8.16212 +73.4053 -9.05141 +73.5125 -9.66491 +73.582 -10.2253 +73.6984 -11.0503 +73.9074 -11.6638 +74.2887 -12.1152 +74.8254 -12.0555 +75.0308 -11.4474 +74.9288 -10.3949 +74.7818 -9.44347 +74.6863 -8.04964 +74.5524 -7.05342 +74.5059 -5.76663 +74.406 -4.81738 +74.1716 -3.98324 +74.1828 -3.14729 +74.1627 -2.19507 +73.9711 -1.31592 +74.2954 -1.13944 +74.4945 -1.70344 +74.7325 -2.59075 +74.8428 -3.48254 +75.0145 -4.26162 +75.1478 -5.1454 +75.3825 -5.99195 +75.5103 -6.71359 +75.6344 -7.54683 +75.7996 -8.32736 +75.9504 -9.2252 +76.3494 -9.94925 +76.7611 -10.013 +77.0247 -9.55421 +77.0168 -8.60758 +76.7722 -7.66401 +76.5674 -6.32409 +76.3879 -5.43546 +76.1592 -4.37618 +76.079 -3.48081 +75.9239 -2.71101 +75.7774 -2.03729 +75.699 -1.59737 +75.9528 -1.05432 +76.6689 -0.939149 +77.1612 -1.32968 +77.4792 -1.61957 +77.9039 -1.91182 +78.1904 -1.77006 +78.6284 -1.71267 +79.0308 -1.85639 +79.5234 -2.19157 +79.7474 -2.14619 +80.2003 -2.47286 +80.416 -2.7096 +80.9208 -2.76515 +81.2445 -2.63541 +81.4789 -2.47298 +81.858 -2.71375 +82.3006 -3.00137 +82.6434 -3.14951 +82.8334 -3.30639 +82.9618 -3.5857 +83.0542 -4.13459 +83.3045 -4.51251 +83.4828 -4.53942 +83.6902 -5.01666 +84.1795 -5.22944 +84.433 -5.47731 +84.8724 -5.69724 +85.44 -5.65169 +85.2045 -4.93327 +84.9319 -4.59458 +84.5801 -4.0562 +85.0434 -4.41845 +85.4846 -4.5517 +85.822 -4.58297 +86.4291 -4.66072 +86.8641 -4.8989 +87.3249 -5.1661 +87.7599 -5.17183 +88.1596 -5.38038 +88.8845 -5.54301 +89.0758 -5.03874 +88.9908 -4.60685 +88.4392 -4.31739 +87.9944 -3.92687 +87.8263 -3.73325 +87.3787 -3.69144 +86.9907 -3.74579 +86.667 -3.74799 +86.307 -3.39915 +86.1521 -3.29102 +85.5422 -3.20372 +84.9936 -3.25056 +84.8131 -3.09682 +84.6518 -2.92498 +84.7139 -2.70778 +84.9344 -2.41951 +84.5395 -1.91678 +84.1568 -1.92933 +83.8164 -2.26671 +83.3204 -2.25906 +82.8592 -2.28033 +82.4168 -2.10331 +81.8816 -1.84037 +81.4293 -1.57093 +81.032 -1.35101 +80.3612 -1.25898 +79.9668 -1.28969 +79.5208 -1.24133 +79.0219 -1.15593 +78.3544 -1.03266 +77.9372 -0.724926 +77.6381 -0.532779 +78.1321 -0.412019 +79.022 -0.334834 +79.7365 -0.403715 +80.53 -0.579743 +81.084 -0.760943 +81.8071 -0.895225 +82.4782 -0.914448 +82.9781 -0.930945 +83.4276 -0.936112 +84.3706 -1.03896 +85.2088 -1.1944 +85.9289 -1.39795 +87.0464 -1.4622 +87.9377 -1.49596 +88.659 -1.51403 +90.0546 -1.58832 +90.7826 -1.72732 +91.6118 -1.8804 +92.4502 -2.01859 +93.3968 -2.0376 +94.4012 -2.15891 +95.1315 -2.09807 +95.6052 -1.6493 +95.6245 -0.920633 +95.0142 -0.412069 +94.0101 -0.144715 +93.1187 -0.189432 +92.1155 -0.184855 +90.8904 -0.243803 +89.5533 -0.237599 +88.6615 -0.236242 +87.1578 -0.303836 +85.8783 -0.270527 +84.7623 -0.250566 +83.5943 -0.129718 +82.7553 0.0179645 +81.1995 0.260974 +80.5318 0.411907 +80.9183 0.658629 +82.1999 0.635839 +84.0376 0.771737 +86.0993 0.803398 +88.1648 0.84411 +89.609 0.65952 +91.2238 0.624693 +92.3389 0.58028 +94.4558 0.66607 +95.2629 0.660988 +95.5713 1.03034 +95.7391 1.81258 +95.4034 2.13092 +94.1247 2.06277 +92.2822 1.89953 +90.2776 1.75379 +88.6628 1.83331 +87.0464 1.86452 +85.2636 1.86765 +83.8709 1.82 +82.2554 1.79107 +81.0865 1.79007 +80.1157 1.74386 +80.1334 1.93887 +81.0811 2.23192 +82.7003 2.42892 +84.5395 2.65818 +86.0436 2.63221 +87.6047 2.63459 +88.7183 2.74889 +90.334 2.88772 +91.8931 2.83109 +93.0628 2.81122 +94.1236 2.69508 +94.8341 2.93287 +95.2499 3.48754 +95.0085 4.03008 +94.3443 4.37434 +92.8445 4.17146 +91.5055 4.02086 +90.1646 3.8803 +88.9421 3.6319 +87.1005 3.49 +85.9879 3.25387 +85.0421 3.24464 +83.7595 3.20743 +82.9798 3.14365 +81.8622 3.11751 +80.976 2.96988 +81.0885 3.47024 +81.9378 3.6489 +82.4922 3.83974 +83.3647 4.27166 +84.0266 4.62188 +84.5386 4.82064 +84.9745 5.02323 +85.3698 4.81152 +85.7651 4.6058 +86.4328 4.548 +86.9687 4.59919 +87.0659 4.99771 +86.8618 5.24124 +86.6658 5.44818 +86.2668 5.6535 +87.1019 5.87851 +87.7698 5.99097 +88.3791 6.22568 +89.1112 6.4213 +89.7168 6.61037 +90.3558 6.91892 +90.7855 7.21441 +90.7737 7.54215 +90.5004 7.77089 +89.9933 7.79614 +89.2749 7.60375 +88.4356 7.44428 +87.8883 7.17135 +87.6597 7.26648 +87.2029 7.22145 +87.0047 6.8102 +86.7121 6.82344 +86.3262 6.82444 +86.3146 7.16477 +86.553 7.43624 +86.6073 7.89827 +86.212 8.04484 +85.7741 7.92294 +85.3727 7.71698 +85.159 7.26678 +84.9196 6.82769 +84.8213 6.48738 +84.4684 6.12775 +83.9911 5.79129 +83.5915 5.71275 +83.1381 5.56378 +82.4792 5.26258 +81.7937 4.96558 +81.1962 4.65765 +80.7362 4.6232 +80.4787 4.909 +80.08 4.82191 +79.4998 4.23189 +78.8931 3.72655 +78.3428 3.20188 +78.3092 3.71576 +77.9599 3.9784 +77.719 4.30016 +78.0395 4.91762 +78.4051 5.49132 +78.9135 6.40463 +79.4112 7.32762 +79.9172 8.16058 +80.4247 9.10461 +80.7546 9.775 +81.0854 10.3341 +81.5764 11.0636 +81.8685 11.6162 +81.754 12.1079 +81.3082 12.1171 +81.0363 11.8892 +80.568 11.2937 +80.1876 10.7835 +79.7582 9.99418 +79.3481 9.33988 +78.8698 8.71184 +78.3571 7.77085 +78.0088 7.05571 +77.5734 6.38028 +77.1178 5.71761 +76.8005 5.15005 +76.337 4.49448 +75.9919 4.03294 +75.994 4.26179 +75.9583 4.9314 +76.3466 5.60066 +76.8133 6.4246 +77.2997 7.32439 +77.9281 8.37226 +78.6042 9.37164 +79.0863 10.2193 +79.4958 10.9289 +79.856 11.5059 +80.1477 12.0564 +80.5155 12.8522 +80.861 13.2316 +81.1485 14.0724 +80.7678 14.5459 +80.3209 14.2254 +79.9206 13.6464 +79.6606 13.0853 +79.2478 12.395 +78.8736 11.7173 +78.4521 11.0659 +78.0784 10.2776 +77.7548 9.71539 +77.29 8.8348 +76.9343 8.3413 +76.7456 7.82355 +76.4154 7.32071 +75.9858 6.4719 +75.4055 5.70854 +74.8422 4.93221 +74.6119 4.49262 +74.3462 4.09592 +74.1215 4.37322 +74.1782 5.09694 +74.8469 5.98837 +75.4801 7.25591 +76.0283 8.0968 +76.7103 9.12227 +77.398 10.5616 +77.7939 11.4511 +78.3011 12.2833 +78.8654 13.1148 +79.2539 13.7846 +79.623 14.5733 +79.9541 15.4692 +80.3716 16.2507 +80.5987 16.9298 +80.0747 17.2511 +79.5869 16.7935 +79.1336 15.9618 +78.7511 15.1781 +78.3425 14.4076 +77.8659 13.3927 +77.4296 12.4389 +76.7817 11.4001 +76.3303 10.5669 +76.0301 9.87661 +75.4467 9.22674 +74.962 8.32609 +74.622 7.71632 +74.2949 6.98872 +73.7711 5.93905 +73.5375 5.33381 +73.2448 4.64053 +72.84 4.14617 +72.2613 4.19979 +72.1516 4.60385 +72.4467 5.32227 +72.8275 6.05278 +73.3687 6.80996 +74.1322 8.26793 +74.6116 9.3374 +75.1627 10.3982 +75.6426 11.3286 +76.0586 12.2348 +76.3405 12.7905 +76.8518 13.7323 +77.198 14.5048 +77.7446 15.4027 +78.1249 16.0761 +78.3535 16.5196 +78.687 16.9633 +78.637 17.4934 +78.067 17.5349 +77.669 17.2531 +77.3505 16.6867 +77.0095 16.1879 +76.6357 15.3447 +76.179 14.4034 +75.8572 13.8396 +75.458 13.0644 +74.8572 11.9994 +74.4823 11.2672 +74.0028 10.4494 +73.6473 9.65219 +73.242 8.87957 +72.7264 7.93995 +72.3241 7.16613 +71.8701 6.28093 +71.5224 5.58931 +71.194 4.91632 +70.6833 4.02852 +70.1796 3.41292 +69.7207 2.8571 +69.2136 2.86331 +68.7805 3.32243 +68.1988 3.80251 +67.6737 4.55604 +67.0607 5.11157 +66.5602 5.61566 +66.0439 6.04454 +65.542 6.65693 +65.0516 7.28061 +64.4886 7.83231 +63.8682 8.38166 +63.4806 8.82701 +62.6509 8.98197 +61.8701 8.71545 +61.5024 8.14539 +61.1667 7.58665 +60.7729 7.03534 +60.4889 6.53788 +60.1274 5.88575 +59.7446 5.45344 +59.5827 4.81796 +59.1301 4.26463 +58.8581 3.70411 +58.481 3.13902 +58.1724 2.71238 +57.7765 2.10247 +57.4722 1.52727 +57.0016 0.817253 +56.6784 0.198728 +56.354 -0.372287 +55.7403 -0.584321 +55.6175 -0.083565 +55.6389 0.638398 +55.8152 1.58658 +55.8485 2.64634 +56.0662 3.48261 +56.2021 4.3124 +56.5438 5.76862 +56.6148 7.00231 +56.7995 7.71535 +56.9572 8.59928 +57.0697 9.66596 +57.1411 10.4998 +57.2485 11.2812 +57.2209 12.0068 +57.2864 12.8427 +57.4071 13.621 +57.4292 14.4641 +57.1339 15.0174 +56.756 15.5683 +55.8035 15.7749 +55.1888 15.45 +54.702 14.9986 +54.3267 14.5244 +53.8733 13.8576 +53.4584 13.0049 +53.0047 12.3416 +52.5121 11.5011 +52.213 10.9564 +51.9035 10.2931 +51.5297 9.9067 +51.116 9.16314 +50.8362 8.55092 +50.4922 7.83421 +50.0078 7.21066 +49.7895 6.70805 +49.5116 5.97696 +49.1128 5.5406 +48.714 4.82213 +48.2439 4.27275 +47.9923 3.53879 +47.4039 2.74948 +47.1212 1.96748 +46.7692 1.35872 +46.3782 1.30907 +45.9053 1.69915 +45.869 2.64621 +45.9339 3.87182 +45.9591 5.37443 +46.0595 6.32305 +45.9919 7.60484 +45.8376 8.88829 +45.6288 9.94298 +45.6099 11.1148 +45.5345 12.0054 +45.5154 12.8441 +45.6385 13.8427 +45.5997 14.5682 +45.5452 15.6848 +44.9829 16.225 +44.0949 16.4052 +43.265 15.9555 +42.7019 15.2921 +42.1312 14.4089 +41.6672 13.5517 +41.1422 12.6737 +40.8033 12.008 +40.2677 11.2383 +40.065 10.5723 +39.4596 9.8392 +38.9891 8.98232 +38.3485 8.16589 +37.959 7.49736 +37.5209 6.76843 +37.0109 6.16027 +36.5893 5.31344 +36.0748 4.14867 +35.5462 3.32695 +35.0692 2.31194 +34.7339 1.6445 +34.1748 1.06472 +33.7977 1.14943 +33.2575 1.81321 +33.45 3.03618 +33.4054 4.20571 +33.4258 5.32202 +33.5421 6.21163 +33.5726 7.65692 +33.5749 8.77428 +33.5748 9.55367 +33.6373 10.5673 +33.3481 11.0118 +32.5488 11.5421 +31.6239 11.1543 +30.7264 10.6669 +30.2189 9.98657 +29.7357 9.15279 +29.1033 8.38725 +28.7121 7.72117 +28.0097 6.86454 +27.4493 6.31322 +26.9991 5.76595 +26.9828 5.33162 +26.5307 4.95098 +26.2086 5.19947 +25.7791 5.60628 +25.4568 6.09787 +25.4387 6.82499 +25.3458 7.54666 +25.3102 8.38349 +25.2393 9.03098 +24.8817 9.51595 +24.2058 9.77595 +23.3135 9.81943 +22.5903 9.86593 +21.923 9.90705 +21.0305 9.94285 +20.2505 9.89838 +19.6377 9.85003 +19.192 9.908 +18.4142 9.85643 +17.5764 9.83844 +17.075 9.81595 +16.6211 9.82152 +16.0157 10.2765 +15.1799 10.5993 +14.4367 10.6016 +13.8872 10.7675 +13.2852 10.9309 +12.7302 11.012 +11.6141 11.0355 +10.7226 11.136 +9.8908 11.0508 +9.16189 10.8441 +8.546 10.6847 +7.87413 10.4649 +7.2606 10.1765 +6.88074 9.77113 +6.31967 9.70218 +5.37599 9.91319 +4.87612 9.90665 +4.20608 9.92573 +3.48031 9.96736 +2.64828 9.91948 +1.81057 9.96115 +0.807282 9.9518 +-0.027855 9.8843 +-0.752081 9.88456 +-2.03146 9.91959 +-2.92476 9.94002 +-4.03895 9.95328 +-4.76318 9.9326 +-6.04626 9.97233 +-6.93586 9.86425 +-7.93863 9.90267 +-8.77428 9.8777 +-9.77663 9.89603 +-10.7798 9.94277 +-11.504 9.92638 +-12.674 9.91078 +-13.3982 10.0215 +-14.4013 9.93858 +-15.4048 10.0089 +-16.2957 9.88017 +-17.075 9.92469 +-17.6878 9.95143 +-18.5792 9.94126 +-19.4735 9.99813 +-20.473 9.89347 +-21.3647 9.96261 +-22.4783 9.9315 +-23.7045 9.86269 +-24.9858 9.89156 +-25.824 9.92438 +-26.601 9.82282 +-28.0498 9.77438 +-29.1627 9.80298 +-30.2777 9.8431 +-31.4481 9.89154 +-32.5623 9.92407 +-33.6219 9.91263 +-34.8464 9.81087 +-35.7935 9.85645 +-36.6291 9.83217 +-37.7433 9.89153 +-38.4675 9.89622 +-39.1943 9.85547 +-39.916 10.0103 +-40.8631 9.99673 +-41.5306 9.95644 +-42.2001 9.99526 +-42.9783 10.0222 +-43.7036 10.066 +-44.5399 10.1084 +-45.5427 10.0927 +-46.4897 10.1051 +-47.2697 10.1179 +-48.1033 10.1233 +-48.779 10.1864 +-49.9437 10.4296 +-50.7794 10.4231 +-52.395 10.4119 +-53.5649 10.3887 +-55.1809 10.3502 +-56.9064 10.2634 +-58.5243 10.1341 +-59.9715 10.2029 +-61.1414 10.2087 +-62.477 10.2043 +-63.2026 10.1565 +-64.2052 10.172 +-65.375 10.2146 +-67.0466 10.1996 +-68.1608 10.1552 +-68.885 10.1522 +-69.5549 10.1887 +-70.4451 10.1088 +-71.3353 10.1866 +-72.4492 10.2401 +-73.2861 10.2751 +-74.1225 10.2678 +-74.9017 10.3368 +-75.6816 10.3683 +-76.3494 10.3453 +-77.2972 10.3623 +-78.2443 10.3738 +-79.247 10.3957 +-80.3055 10.3897 +-81.5314 10.3962 +-82.59 10.3249 +-83.9799 10.4463 +-85.2635 10.4424 +-86.2662 10.3957 +-87.2688 10.4357 +-88.5506 10.4145 +-89.8321 10.3863 +-90.7782 10.4345 diff --git a/testbed/data/nazca_monkey.dat b/testbed/data/nazca_monkey.dat new file mode 100644 index 0000000..623f9b9 --- /dev/null +++ b/testbed/data/nazca_monkey.dat @@ -0,0 +1,1204 @@ +-30.7428 -41.7049 +-31.9015 -40.832 +-32.6739 -40.444 +-34.5123 -40.5501 +-35.9626 -40.5436 +-37.0264 -40.7339 +-37.9951 -41.5062 +-38.0928 -42.5706 +-37.8 -43.9196 +-36.3507 -44.4093 +-34.8902 -44.5997 +-34.5131 -45.9623 +-33.1567 -46.1557 +-32.081 -45.9461 +-31.5143 -46.6346 +-31.1211 -47.5048 +-31.126 -48.8594 +-30.5117 -49.5416 +-30.0931 -48.512 +-29.8408 -47.0594 +-29.6633 -48.0291 +-29.8985 -49.4199 +-29.8469 -50.8722 +-29.0609 -51.2922 +-27.7909 -51.1142 +-27.6069 -49.8435 +-27.9728 -47.9686 +-28.6379 -45.7908 +-27.6046 -47.3017 +-27.3107 -48.4528 +-27.1851 -49.3605 +-26.2186 -49.7207 +-25.3631 -48.937 +-25.1855 -47.18 +-25.8537 -46.0926 +-26.4529 -45.673 +-26.222 -45.3106 +-25.4954 -46.1571 +-24.8254 -46.9365 +-23.9744 -46.8823 +-23.1846 -45.9709 +-23.3137 -44.7669 +-24.4621 -44.5277 +-25.4863 -44.5161 +-25.9177 -43.9741 +-25.6126 -42.6428 +-24.4608 -41.6775 +-23.7347 -41.1323 +-23.1288 -40.2858 +-22.2203 -39.0157 +-21.4348 -37.8046 +-20.772 -36.3514 +-20.4854 -34.8362 +-20.1788 -33.0236 +-20.1072 -29.0304 +-19.9908 -26.1278 +-20.4025 -24.4289 +-21.0193 -23.345 +-21.5604 -21.6489 +-21.4991 -19.8945 +-21.557 -18.0794 +-21.3066 -15.7213 +-20.9514 -13.6627 +-20.773 -12.5735 +-20.7699 -10.6377 +-20.468 -9.48837 +-19.7382 -8.40535 +-18.9574 -7.85135 +-18.0563 -7.47587 +-16.8412 -6.88153 +-15.5076 -6.15998 +-14.1763 -5.43461 +-12.9022 -5.00207 +-11.9411 -5.43567 +-11.5138 -6.28103 +-11.4585 -7.24994 +-11.2089 -8.64013 +-10.9056 -10.153 +-10.7902 -11.6661 +-10.6087 -13.5419 +-10.3656 -14.7518 +-10.0651 -15.8414 +-9.75352 -17.1102 +-9.52007 -18.6847 +-9.28164 -20.1378 +-8.90539 -21.7085 +-8.61497 -23.8287 +-8.12303 -25.3995 +-7.64123 -27.3361 +-7.18957 -28.6674 +-7.24708 -29.6918 +-7.64695 -31.509 +-8.61699 -33.685 +-9.33216 -34.8417 +-10.1165 -35.992 +-10.9696 -37.4406 +-12.1731 -39.2597 +-13.2668 -41.0721 +-14.1145 -42.4636 +-15.5088 -44.0951 +-16.4717 -45.4293 +-17.0771 -46.46 +-17.8067 -47.0608 +-19.0161 -46.9341 +-20.4686 -46.7507 +-22.0444 -46.6937 +-22.5213 -47.0025 +-22.8815 -47.7262 +-22.8927 -48.5094 +-23.372 -49.0596 +-24.1027 -49.4233 +-23.2539 -50.4537 +-21.9225 -50.9373 +-20.7099 -51.3541 +-19.4427 -51.906 +-18.4113 -52.384 +-17.6251 -52.8084 +-16.776 -53.4695 +-15.9321 -53.8998 +-14.9051 -54.3849 +-14.2952 -54.863 +-13.753 -55.3509 +-13.2689 -55.3497 +-12.9663 -54.5027 +-12.6041 -54.0115 +-11.3927 -53.8995 +-10.1243 -53.4735 +-9.76015 -52.3247 +-10.0637 -51.543 +-11.2758 -51.1809 +-11.9967 -50.7496 +-12.7219 -50.0849 +-13.0258 -49.239 +-12.9044 -48.514 +-12.1212 -47.603 +-11.1534 -46.817 +-10.4291 -45.8471 +-9.75574 -45.1273 +-9.1506 -44.282 +-8.5458 -43.7349 +-8.06811 -42.8234 +-7.22182 -41.734 +-6.49384 -40.7067 +-5.70662 -39.6787 +-5.10459 -38.8903 +-4.50083 -37.9221 +-3.77308 -36.4706 +-3.35045 -35.7445 +-2.80372 -34.5353 +-2.38739 -33.6864 +-1.83611 -31.995 +-1.71118 -30.1802 +-1.65053 -28.4256 +-1.52958 -27.0339 +-1.5293 -25.4606 +-1.70693 -23.7646 +-2.18951 -22.4325 +-3.1009 -20.3168 +-3.71033 -18.4425 +-3.95051 -17.2926 +-4.43971 -15.4788 +-4.85498 -13.9033 +-5.52524 -11.7266 +-5.96218 -10.0364 +-6.37058 -8.57986 +-6.91724 -7.12857 +-7.34478 -5.98087 +-7.82366 -4.88951 +-8.25198 -3.91841 +-7.46002 -2.6517 +-6.18748 -1.86782 +-4.73837 -0.834822 +-3.04648 0.0767719 +-1.70745 0.788371 +0.0431392 1.76356 +1.80011 2.66568 +3.24563 3.34625 +5.00218 4.06908 +6.39434 4.43025 +8.02861 4.791 +10.3275 4.66822 +11.6586 4.60952 +12.8681 4.42731 +14.3155 3.39263 +15.5896 2.42917 +16.8675 1.46808 +17.8306 0.314723 +19.0406 -0.53289 +19.8278 -1.92397 +20.4824 -2.84096 +21.399 -3.86138 +22.1875 -5.13064 +23.1443 -6.472 +23.9408 -7.3097 +24.6047 -8.15785 +25.2695 -9.18616 +25.6921 -10.3325 +25.212 -11.0621 +23.5782 -11.7901 +22.9752 -11.8532 +22.3689 -12.0918 +20.8613 -12.8278 +20.0075 -13.2369 +19.2237 -13.4852 +18.0152 -14.0951 +16.3767 -14.7494 +15.2282 -15.3562 +14.2026 -15.7854 +12.8666 -16.5033 +11.7182 -17.3527 +10.8141 -18.5655 +9.53574 -20.0118 +8.39731 -21.7128 +7.48394 -23.3431 +7.06224 -24.3724 +6.57641 -25.6423 +6.26354 -27.2762 +6.32905 -29.4555 +6.75744 -30.9667 +7.12281 -32.1759 +7.71138 -33.576 +8.26694 -34.5989 +8.93741 -35.7461 +9.18345 -36.8342 +9.53469 -38.3168 +10.1418 -39.6813 +10.757 -40.8869 +11.2907 -42.2826 +11.8365 -43.7343 +12.3871 -45.1229 +13.47 -46.7602 +14.1404 -47.9676 +14.7486 -49.175 +15.354 -49.9636 +15.5319 -50.6912 +15.2944 -51.422 +14.5593 -52.2024 +14.3872 -52.8082 +14.4349 -54.0826 +15.1103 -55.4068 +16.3106 -56.445 +17.6473 -57.8926 +19.1607 -58.8599 +20.6114 -59.4008 +21.5216 -58.7983 +21.3393 -57.2858 +20.1289 -56.6812 +19.2242 -56.1949 +18.5549 -55.2203 +18.981 -55.1654 +20.0706 -55.7083 +21.0367 -56.1364 +22.2478 -56.4339 +23.7593 -56.737 +25.5142 -56.6832 +28.0551 -56.4987 +29.3844 -56.3169 +29.8045 -55.3522 +29.2041 -54.0813 +27.5106 -53.533 +25.2108 -53.4646 +22.8525 -53.6506 +21.2177 -53.4764 +20.0046 -53.2338 +19.8267 -52.8757 +21.0367 -52.878 +22.5493 -52.8726 +24.3041 -52.8636 +25.9989 -52.9346 +27.6314 -52.6259 +29.203 -52.1412 +30.4174 -50.9331 +30.5433 -49.2327 +29.9903 -48.5758 +29.2023 -48.2613 +27.815 -48.6364 +26.4842 -49.5436 +25.3913 -50.5657 +24.3644 -50.9891 +22.7312 -50.9891 +20.854 -50.8134 +20.3113 -50.3906 +21.4603 -50.0877 +22.8517 -50.0837 +24.366 -49.9678 +25.6343 -49.2986 +26.533 -48.4534 +26.3655 -46.9966 +25.877 -46.3945 +24.2416 -46.391 +22.6083 -47.1188 +20.7947 -48.2707 +19.7056 -48.8164 +18.4934 -48.7579 +17.5893 -48.1488 +16.7442 -46.9383 +16.1969 -45.6083 +15.773 -44.1565 +15.4101 -42.5833 +15.1028 -41.9802 +14.6198 -40.83 +14.1379 -39.5586 +13.5343 -37.501 +12.9928 -36.1687 +12.6267 -35.2624 +12.3826 -34.3555 +12.0254 -33.3255 +11.7725 -32.1803 +11.2934 -31.2096 +10.6292 -29.696 +10.5609 -28.0621 +10.6287 -26.3071 +11.1064 -25.2745 +11.8375 -24.1265 +13.5386 -22.6826 +14.8678 -21.5306 +16.0731 -20.3739 +17.4085 -19.7163 +18.9193 -18.8058 +19.9443 -18.1952 +20.8539 -17.5933 +22.1837 -16.7435 +23.2749 -16.1424 +24.4268 -15.4203 +25.5762 -14.7543 +26.6049 -14.0899 +27.6317 -13.6011 +28.7782 -13.6077 +29.8105 -14.146 +30.4746 -14.9945 +31.6229 -15.9032 +32.3546 -16.62 +33.863 -17.4194 +35.9204 -17.5919 +37.5539 -17.4732 +39.3063 -16.8658 +40.5808 -15.903 +41.6708 -15.1221 +42.6364 -14.8171 +43.9099 -14.8699 +44.8106 -15.784 +45.4759 -16.5088 +45.9072 -17.2298 +46.7569 -18.3779 +47.2999 -19.2262 +47.8995 -20.258 +48.441 -21.1066 +49.1718 -22.4957 +49.8411 -23.7649 +50.261 -24.8554 +50.6844 -26.1258 +51.3432 -27.2184 +52.0128 -28.5471 +52.4356 -29.8788 +52.9812 -31.0879 +53.2264 -32.4788 +52.9292 -34.5991 +52.6208 -35.5651 +52.3702 -36.9537 +51.8344 -38.4092 +51.2848 -39.4961 +50.8656 -40.5265 +50.1384 -41.4935 +49.4745 -42.04 +48.6896 -42.6465 +47.9002 -43.4299 +46.9315 -43.8524 +45.843 -44.5189 +44.1492 -45.3683 +42.9996 -45.3687 +42.213 -45.3665 +42.0876 -44.0362 +41.8475 -42.645 +41.1836 -41.1923 +40.5177 -39.9227 +39.6116 -39.1343 +38.7646 -38.5893 +37.3727 -38.2262 +35.3148 -38.4068 +34.0449 -38.9526 +32.4121 -39.6194 +31.3287 -40.5244 +31.5633 -41.3744 +32.2307 -42.0364 +33.6215 -42.5244 +34.9542 -42.5289 +35.8608 -42.2824 +37.0702 -41.8572 +38.4589 -41.9818 +39.1861 -42.5845 +39.7401 -43.4291 +39.9053 -44.5195 +39.9179 -45.4878 +39.8518 -46.2131 +39.7323 -46.6372 +38.8849 -45.6699 +37.9769 -45.1254 +37.1902 -44.3395 +36.2245 -43.606 +35.3764 -43.4256 +34.4083 -43.3728 +32.7738 -43.4885 +31.5032 -43.853 +30.8412 -44.3985 +30.8363 -45.2489 +31.7463 -45.7881 +32.8948 -46.0252 +34.6502 -45.8527 +35.6782 -45.7909 +36.4077 -46.2121 +36.8297 -47.0625 +36.5262 -47.3 +35.5575 -47.1225 +34.0451 -46.8797 +32.4707 -46.8769 +31.45 -47.4822 +31.62 -48.0915 +32.0499 -48.9918 +33.9238 -49.537 +35.6187 -49.4852 +37.6156 -49.2303 +38.2787 -49.3022 +38.6923 -49.5404 +38.6433 -50.3241 +37.6149 -50.3287 +36.4058 -50.4527 +34.7122 -50.9357 +33.6226 -51.5381 +33.4446 -52.6205 +34.4673 -53.3562 +35.3761 -53.7163 +36.7075 -53.7201 +38.8252 -53.5349 +40.0344 -52.8079 +40.877 -52.1355 +41.6176 -51.6582 +41.6639 -52.5038 +41.1828 -53.5346 +41.2448 -54.4422 +41.7897 -55.3445 +43.1822 -55.4112 +43.9703 -54.5644 +44.3942 -53.7176 +44.9969 -52.5063 +45.7233 -50.873 +46.6295 -49.4199 +47.8306 -48.1356 +49.9597 -46.7612 +51.6502 -45.6066 +52.7398 -44.7608 +53.3463 -43.9755 +54.1328 -43.3098 +54.7386 -42.4631 +55.5839 -41.252 +56.1859 -39.9801 +56.9151 -38.348 +57.3414 -36.7753 +57.5762 -35.1417 +57.46 -33.3263 +57.577 -31.5113 +57.5276 -29.5742 +57.2169 -26.9131 +56.8517 -25.0383 +56.2514 -23.2212 +55.345 -21.8282 +54.6139 -20.9858 +53.8882 -20.1983 +53.2313 -19.1637 +52.3181 -17.897 +51.3469 -16.8109 +50.3185 -15.782 +49.6497 -14.9994 +48.8046 -14.2124 +47.9622 -13.6611 +47.053 -12.8161 +46.2088 -12.269 +45.5436 -11.422 +45.1744 -10.875 +45.7224 -10.4551 +46.4495 -10.5712 +47.5376 -10.8192 +48.3231 -10.2738 +48.6855 -9.6084 +48.9217 -8.64071 +48.9322 -7.18776 +48.687 -6.28112 +47.719 -5.91752 +46.8114 -5.73793 +46.2678 -5.73548 +45.8408 -5.31462 +45.4204 -4.64729 +45.1139 -3.6198 +44.8136 -2.46972 +44.4593 -1.43788 +43.9651 -0.170934 +43.6077 1.10209 +43.0626 2.06995 +42.5227 2.98254 +41.8518 3.70412 +40.9408 4.48593 +39.972 5.08823 +38.7622 5.6293 +37.5531 5.93722 +36.6466 6.2463 +35.0719 6.1906 +33.6843 5.87382 +32.3517 5.39473 +31.1986 4.73315 +30.5941 4.0675 +29.6825 3.22382 +29.0291 2.48877 +28.6565 1.82921 +28.2972 1.34793 +27.7532 1.34296 +27.2646 1.82245 +26.6637 2.43065 +25.6789 2.37865 +25.3234 1.58272 +25.5161 0.617623 +26.3563 -0.839496 +27.0243 -1.68382 +27.5752 -2.89216 +27.7543 -3.98076 +28.417 -4.89004 +28.7906 -5.67509 +28.9059 -6.88831 +28.5392 -7.49887 +27.7469 -7.49471 +27.2708 -6.70333 +26.7229 -5.73725 +25.9375 -4.46598 +25.3954 -3.49674 +24.8465 -2.34929 +24.2963 -1.2046 +23.7131 -0.402416 +23.0353 0.556745 +22.6693 1.34181 +22.0655 2.37112 +21.4656 3.10153 +20.794 3.88301 +20.0084 4.85178 +19.5235 5.69822 +18.9773 6.36267 +18.4349 7.15059 +17.3431 8.17513 +15.7745 9.27139 +14.8659 9.75335 +14.0228 10.3635 +13.0483 11.0803 +12.3254 11.5114 +11.6584 11.6933 +10.4477 11.6305 +9.482 11.2607 +8.26731 10.8529 +6.94585 10.4606 +5.61033 9.98824 +4.15505 9.514 +2.22019 8.90516 +1.1919 8.29614 +-0.0199303 8.18336 +-1.28849 7.75436 +-2.19871 7.33577 +-3.04031 6.84052 +-4.25046 6.295 +-5.34561 5.88582 +-6.61384 5.27591 +-7.58102 4.85026 +-9.09478 4.24827 +-10.9085 3.57986 +-12.0619 2.85838 +-13.3709 1.68589 +-14.424 1.05319 +-15.8701 0.433674 +-17.4418 -0.236547 +-19.135 -0.779826 +-20.5311 -1.61977 +-21.495 -2.29062 +-22.5811 -3.2604 +-23.4986 -4.34041 +-24.2198 -5.07161 +-25.3697 -5.68338 +-26.2772 -5.67587 +-27.2428 -5.06958 +-27.7305 -4.22403 +-27.8514 -2.71191 +-28.3956 -1.74382 +-29.0602 -0.896092 +-29.9687 0.252322 +-31.1132 1.04483 +-32.1456 1.94842 +-33.1665 2.50922 +-34.4462 3.09519 +-35.5969 3.63654 +-37.1674 4.30817 +-38.6206 4.97145 +-40.1886 5.82808 +-41.7665 6.66609 +-43.3358 7.46006 +-44.7305 8.17994 +-45.8841 8.89912 +-47.0233 9.58266 +-48.1752 10.242 +-49.3277 11.1459 +-50.1754 11.8105 +-51.3832 13.0839 +-53.0191 14.4726 +-53.9288 15.3176 +-55.0799 16.6469 +-56.2296 17.7368 +-57.251 19.1335 +-58.3434 20.6437 +-59.3117 22.0955 +-59.7364 23.0025 +-60.5241 24.3332 +-61.0134 25.4822 +-61.2492 26.9354 +-61.4966 28.5086 +-61.5001 29.8999 +-61.5527 31.897 +-61.373 33.2889 +-61.1895 34.4987 +-61.0739 35.5897 +-60.8013 36.4332 +-60.3453 38.2508 +-60.0302 39.5189 +-59.802 40.974 +-59.3718 42.4243 +-59.0696 43.7554 +-58.6505 45.1484 +-58.0427 46.9627 +-57.4967 48.1722 +-56.7729 49.8071 +-56.1624 50.7706 +-54.9601 52.1099 +-53.871 53.0179 +-53.0793 53.6162 +-52.1132 54.3449 +-51.0835 55.0694 +-50.1177 55.6784 +-48.9671 56.2818 +-47.6368 56.8886 +-46.5455 57.3672 +-44.9133 57.7944 +-43.2201 58.646 +-41.6455 59.0666 +-40.2527 59.1797 +-39.4067 59.3662 +-37.9538 59.7225 +-36.3207 59.9136 +-33.9616 59.7806 +-31.2976 59.6763 +-29.3637 59.301 +-26.8242 58.8156 +-25.7314 58.3412 +-24.9499 58.0887 +-23.916 57.4928 +-22.8936 56.8787 +-21.9187 56.1612 +-21.0804 55.3049 +-19.9861 54.2822 +-19.1371 53.3159 +-17.8016 51.9866 +-17.2631 50.8942 +-16.4084 49.9914 +-15.7495 48.838 +-14.9606 47.5082 +-13.9909 45.8135 +-13.6308 44.0582 +-13.5106 41.88 +-13.6389 39.4009 +-13.9966 37.8268 +-14.5401 36.2534 +-14.9668 35.4087 +-15.6969 34.3211 +-16.2975 33.1691 +-16.8985 31.9569 +-17.5632 30.9276 +-18.4109 29.8393 +-18.8967 28.7513 +-19.7444 27.6627 +-20.5261 26.5108 +-21.0079 25.177 +-21.9253 23.9139 +-22.828 22.821 +-23.1992 22.1008 +-24.0365 20.9427 +-25.369 20.0365 +-26.4588 19.554 +-28.0325 19.0722 +-29.3022 18.7057 +-30.3902 18.5203 +-31.7832 18.1658 +-33.8402 18.1024 +-36.6239 18.0346 +-38.194 18.168 +-39.4066 18.7066 +-40.9821 18.8861 +-41.8828 19.8016 +-42.7958 20.5213 +-43.638 21.677 +-44.9124 22.5793 +-46.0601 23.4883 +-47.0895 24.7583 +-48.4158 26.2728 +-49.0205 27.5445 +-49.9332 28.9932 +-50.6053 30.1997 +-51.3294 31.5324 +-52.0559 33.3476 +-52.6599 35.2244 +-52.832 37.524 +-52.9632 40.3071 +-52.8963 41.6371 +-52.2953 43.3327 +-51.4457 45.2071 +-50.5427 46.9044 +-49.6342 48.054 +-48.6021 49.0178 +-46.6024 50.4055 +-45.6969 51.0725 +-44.6091 51.6192 +-43.4626 52.1116 +-42.2511 52.5329 +-40.6794 52.8364 +-39.4073 53.3791 +-38.2573 53.6273 +-36.2602 53.6861 +-34.1431 53.6154 +-32.5699 53.3747 +-31.2987 52.954 +-29.9644 52.6575 +-29.057 52.2321 +-27.3612 51.262 +-26.945 50.7107 +-26.152 50.1131 +-25.4303 49.4429 +-24.4624 48.2931 +-23.8513 47.6927 +-23.0672 46.6625 +-22.3478 45.7507 +-21.3816 43.5738 +-21.2542 41.759 +-21.3195 39.5823 +-21.8588 38.2494 +-22.1056 36.7382 +-22.7075 34.8615 +-23.1298 33.7113 +-24.0362 32.0162 +-24.9486 30.7492 +-25.8552 29.5991 +-26.7565 28.6256 +-27.3631 27.8976 +-28.3979 27.3643 +-29.9682 26.4519 +-31.1229 25.7988 +-32.1465 25.3635 +-33.5363 24.8757 +-34.4452 24.3966 +-36.441 24.518 +-37.1709 24.7485 +-38.2592 25.1163 +-39.1628 25.6073 +-40.0135 26.1461 +-41.4581 27.122 +-42.3713 28.1456 +-43.0962 29.1148 +-43.8784 29.904 +-44.5442 30.8725 +-45.2831 31.7732 +-45.7551 33.1688 +-46.1888 34.4966 +-46.6083 35.8291 +-46.9069 37.0402 +-47.1475 38.0682 +-47.1492 38.9754 +-46.8545 40.43 +-46.2991 41.9972 +-45.6932 42.7837 +-45.1551 43.6355 +-44.1848 44.359 +-43.2796 45.2698 +-41.464 46.2369 +-40.1921 46.8347 +-38.257 47.163 +-36.26 47.1469 +-33.9001 46.8433 +-31.8414 46.1781 +-29.9634 44.4849 +-29.0066 43.1475 +-28.0868 41.215 +-27.9107 39.6413 +-27.9061 37.8249 +-28.397 36.0121 +-29.1777 34.3144 +-29.7883 33.4717 +-30.5184 32.749 +-31.2997 31.8368 +-32.0245 30.9875 +-33.6592 30.4384 +-35.1738 30.5576 +-36.7427 31.0522 +-37.957 31.8935 +-39.1621 32.8065 +-40.1912 34.0156 +-40.9207 35.2241 +-41.2192 36.072 +-41.4701 37.524 +-41.4003 38.9729 +-40.6814 39.7076 +-39.7649 40.3627 +-39.1049 41.0342 +-38.3799 41.4658 +-36.8688 41.7504 +-35.4709 41.218 +-34.6251 40.551 +-33.6002 39.7018 +-33.5932 38.3712 +-33.5286 37.5195 +-33.9003 36.7325 +-34.6258 36.6815 +-35.4775 36.8556 +-36.0816 37.7042 +-36.566 38.9716 +-37.0469 39.3366 +-38.2579 39.3398 +-39.0989 38.6115 +-39.4593 37.1642 +-38.7312 35.5404 +-37.3482 34.5009 +-35.9581 33.8375 +-34.4416 33.8857 +-33.2942 34.4366 +-32.325 35.5254 +-31.5431 36.7376 +-31.1787 38.6129 +-30.9989 40.4876 +-31.4768 41.8841 +-32.4452 42.7909 +-33.2942 43.6376 +-34.1431 44.0562 +-34.99 44.2371 +-36.2615 44.3447 +-37.1073 44.4205 +-38.1362 44.3005 +-39.346 43.7554 +-40.5034 43.2234 +-41.1665 42.7922 +-41.5827 42.3019 +-42.3112 41.3961 +-43.0321 40.1236 +-43.5829 38.6736 +-43.8213 37.4632 +-43.8216 36.0719 +-43.5748 34.8022 +-43.3994 33.8332 +-42.8629 32.7981 +-42.2488 32.0799 +-41.4058 31.2287 +-40.5573 30.383 +-39.768 29.7219 +-38.8039 29.229 +-37.3487 28.6323 +-35.5948 28.1452 +-34.0216 28.1429 +-31.6015 28.2664 +-30.4013 29.0031 +-29.2452 30.084 +-27.9715 31.8968 +-27.128 33.1694 +-26.0975 35.044 +-25.3043 36.4342 +-25.1326 38.9761 +-25.0111 40.7297 +-25.2416 42.1865 +-25.8542 43.2711 +-26.754 44.3055 +-27.9737 45.931 +-29.0659 46.8355 +-30.2076 47.9336 +-31.4242 48.8215 +-33.1146 49.2578 +-35.5345 49.5011 +-37.5918 49.6921 +-40.1321 49.5581 +-42.4918 49.3812 +-44.4291 48.6577 +-45.9436 47.8118 +-46.7291 46.9636 +-47.3306 46.2349 +-48.1181 45.1466 +-48.9089 43.878 +-49.3322 42.9098 +-49.8164 41.8209 +-50.181 40.9729 +-50.3659 39.1555 +-50.0582 37.8255 +-49.699 36.3711 +-49.2196 35.278 +-48.9029 34.8016 +-48.609 33.4086 +-48.4211 32.0788 +-47.8754 31.2319 +-47.4493 30.0238 +-46.6062 28.6298 +-45.6973 27.2408 +-44.4897 26.4506 +-43.095 25.3054 +-41.1545 24.042 +-40.0092 23.3096 +-38.5014 22.4527 +-36.8047 21.7331 +-34.6278 21.1918 +-32.5695 21.6711 +-30.4434 21.9618 +-28.8776 23.0603 +-27.485 23.6641 +-26.1587 24.3977 +-25.371 25.0008 +-24.4095 25.9118 +-23.4891 27.4132 +-22.411 28.2697 +-21.7333 29.5336 +-21.1339 30.5654 +-20.4702 31.5346 +-19.8096 32.6257 +-19.3826 33.5921 +-18.6606 35.3473 +-18.1737 37.2217 +-17.9887 38.7339 +-17.7493 40.6094 +-17.7486 42.6662 +-18.0415 44.7866 +-18.6544 46.599 +-19.6201 48.2947 +-20.406 49.324 +-21.4951 50.536 +-22.7053 51.2609 +-24.0393 52.2857 +-25.5549 53.4316 +-26.4563 54.167 +-27.853 54.8844 +-28.7566 55.4969 +-29.7855 55.8596 +-31.1175 56.2804 +-32.5694 56.6505 +-34.99 56.7094 +-36.5625 56.6397 +-37.5916 56.5228 +-38.8015 56.4015 +-39.7102 56.4041 +-40.5563 56.0997 +-41.6459 56.0422 +-43.0397 55.8022 +-44.0647 55.309 +-45.3377 55.0141 +-46.6648 54.5217 +-48.1815 53.6211 +-49.142 53.0657 +-50.1875 52.2988 +-50.9639 51.5613 +-51.5045 50.65 +-52.2368 49.9898 +-52.9014 49.0211 +-53.5683 48.0527 +-53.7482 47.5079 +-54.2966 46.4202 +-54.6512 45.5094 +-55.074 44.2993 +-55.2525 43.6336 +-55.4425 42.486 +-55.8588 41.4565 +-55.8658 40.852 +-56.1035 39.9431 +-56.5227 38.794 +-56.5962 37.5853 +-56.7705 36.5557 +-56.6505 35.5271 +-56.4755 34.4346 +-56.1646 33.8334 +-55.9183 32.8658 +-55.7424 31.7154 +-55.4415 31.1094 +-54.8927 30.2039 +-54.5315 29.2956 +-54.108 28.207 +-53.3248 27.3578 +-52.6554 26.2106 +-52.1134 25.4829 +-51.5707 24.3312 +-50.7863 23.4829 +-50.1165 22.6393 +-49.4568 21.7283 +-48.8518 20.6982 +-48.0615 19.734 +-47.447 18.6513 +-46.7768 17.7536 +-46.0021 17.1333 +-45.034 16.1042 +-43.6419 15.2582 +-42.5546 14.7656 +-41.1007 14.4703 +-39.7695 14.4733 +-38.3774 14.3582 +-36.2604 14.1698 +-34.4453 14.2351 +-32.3863 14.2147 +-30.3308 14.4639 +-28.3327 14.5277 +-26.2799 15.3265 +-24.7103 15.8756 +-22.5273 16.9542 +-21.8577 17.4345 +-21.193 18.402 +-20.4708 18.9505 +-19.8028 19.7956 +-19.0759 20.4608 +-18.4072 21.7294 +-17.8693 22.6408 +-17.3896 23.6121 +-16.5354 24.8781 +-15.9304 26.2696 +-15.3892 27.2999 +-14.8984 28.2642 +-14.2938 29.2935 +-13.7572 30.5072 +-13.3296 31.4734 +-12.903 32.44 +-12.3583 33.5899 +-11.8816 34.9237 +-11.2159 36.6178 +-10.7238 37.7645 +-10.3051 39.2178 +-10.2431 40.7301 +-9.70324 41.8805 +-9.51718 43.3322 +-9.81727 44.543 +-10.3073 46.114 +-10.8437 47.5095 +-11.6893 49.0823 +-12.303 50.7118 +-13.2138 51.7975 +-14.1748 52.8328 +-15.0818 53.8012 +-15.937 54.702 +-16.7208 55.6716 +-17.5007 56.4657 +-18.474 57.246 +-19.1371 57.8541 +-19.9266 58.332 +-21.1281 58.8874 +-21.9811 59.79 +-23.3729 60.455 +-24.401 61.182 +-25.3064 61.6102 +-26.2157 62.0304 +-27.367 62.448 +-28.5165 62.6908 +-29.7262 62.9936 +-30.8752 63.1205 +-32.3276 63.2432 +-33.5982 63.2375 +-35.2318 63.2364 +-36.1998 63.2364 +-37.4101 63.1172 +-38.9226 62.8153 +-40.1331 62.8163 +-41.3417 62.5081 +-42.4313 62.2073 +-44.0055 61.848 +-44.9719 61.5401 +-46.0023 61.2438 +-47.3328 60.8182 +-48.2424 60.3981 +-48.9667 59.9716 +-50.1782 59.4301 +-51.2046 58.9417 +-52.0531 58.3994 +-53.0224 57.7964 +-53.5086 57.4966 +-54.2878 56.9412 +-54.9559 56.5217 +-55.5601 55.976 +-56.4747 55.3178 +-56.9505 54.825 +-57.4913 54.4005 +-57.916 53.734 +-58.3491 53.3176 +-58.5851 52.8304 +-59.1298 51.9828 +-59.6144 51.6208 +-59.9141 51.1348 +-60.3397 50.5312 +-60.7664 49.9277 +-60.9439 49.3808 +-61.5548 48.5984 +-62.0352 47.87 +-62.2144 47.3238 +-62.7008 46.6599 +-63.0658 46.056 +-63.5524 45.2099 +-63.9092 44.4204 +-64.273 43.6948 +-64.5709 42.9668 +-64.8841 42.2457 +-65.1832 41.6387 +-65.4683 40.7245 +-65.7827 39.9427 +-66.0874 39.0965 +-66.3992 37.7665 +-66.4534 37.1609 +-66.6288 35.8889 +-66.8712 34.9811 +-67.0559 34.438 +-67.0557 33.5304 +-67.0602 32.6227 +-66.9928 31.7156 +-66.9533 30.8683 +-66.9383 29.8397 +-66.9263 29.0539 +-66.8729 28.2668 +-66.8236 27.3578 +-66.6969 26.5109 +-66.3943 25.6642 +-66.0922 24.5746 +-65.6619 23.4878 +-65.37 22.4538 +-64.8782 21.6719 +-64.4534 20.7046 +-64.0386 19.9738 +-63.3093 18.6442 +-62.8256 17.8577 +-62.1598 16.7081 +-61.4843 15.6252 +-61.0649 14.9572 +-60.6401 14.3522 +-60.2194 13.4436 +-59.7328 12.78 +-59.1336 11.9895 +-58.5793 11.0268 +-58.2201 10.3614 +-57.5542 9.81519 +-57.1374 9.14484 +-56.6504 8.54221 +-55.9257 7.8149 +-55.3159 7.15355 +-54.5954 6.30196 +-53.922 5.40095 +-53.1381 4.49142 +-52.419 3.75688 +-51.7501 3.27756 +-50.8383 2.61624 +-49.9314 1.64865 +-48.9657 0.919663 +-48.2405 0.494643 +-47.2714 0.0127581 +-46.5421 -0.344675 +-45.4614 -0.963183 +-44.4973 -1.63675 +-43.3404 -2.29018 +-42.3102 -2.77096 +-41.4643 -3.37826 +-40.1971 -3.92937 +-39.2261 -4.40723 +-38.3775 -4.88676 +-37.2897 -5.07389 +-35.8364 -5.49333 +-34.8671 -5.91258 +-33.297 -6.4053 +-31.8465 -7.01358 +-30.6357 -7.55535 +-29.3056 -8.34424 +-28.2725 -8.88058 +-27.245 -9.54744 +-26.2147 -9.90444 +-25.186 -10.213 +-24.7734 -11.3646 +-24.6349 -12.2108 +-24.7152 -13.5991 +-25.0115 -14.7491 +-25.5963 -15.908 +-26.0307 -16.8694 +-26.0797 -18.0811 +-26.2151 -19.1685 +-26.2802 -20.3782 +-26.4075 -21.4695 +-26.2138 -22.3134 +-25.7295 -23.4624 +-25.3056 -24.2502 +-25.131 -25.4615 +-24.8259 -26.8526 +-24.5853 -27.881 +-24.5183 -28.7883 +-24.455 -29.9378 +-24.3993 -31.4508 +-24.4606 -33.0846 +-24.703 -34.1741 +-25.8635 -35.8598 +-26.462 -36.652 +-26.9976 -37.5042 +-27.5463 -38.4706 +-28.1566 -39.071 +-28.824 -39.857 +-29.3058 -40.5843 +-29.8478 -41.3712 diff --git a/testbed/data/polygon.dae b/testbed/data/polygon.dae new file mode 100644 index 0000000..91218fa --- /dev/null +++ b/testbed/data/polygon.dae @@ -0,0 +1,82 @@ + + + + + Google SketchUp 7.1.4871 + + 2009-12-21T01:51:00Z + 2009-12-21T01:51:00Z + + Z_UP + + + + + + + + + + + + + + + + + + + + + -112.9393 -5.134218 -5.952325e-030 -115.783 -26.39329 -4.065249e-030 -116.1693 -15.52189 -5.174618e-030 -111.8239 -36.52552 -2.74901e-030 -106.4564 3.601217 -6.310887e-030 -104.7373 -44.7788 -1.373963e-030 -66.76277 70.05491 -5.637993e-014 -68.21937 53.83701 -4.127297e-014 -68.55863 62.04185 -5.054886e-014 -65.7681 45.99956 -2.91844e-014 -62.95416 77.33014 -5.83688e-014 -61.37187 39.0636 -1.510696e-014 -57.39237 83.37173 -5.637993e-014 -55.33028 33.5018 0 -50.4564 87.76796 -5.054886e-014 -54.18848 31.40854 0 -52.54381 29.68213 0 -50.50835 28.44022 0 -48.22082 27.76744 0 -42.61895 90.21923 -4.127297e-014 -45.8371 27.70964 0 -43.51965 28.27076 0 -41.4264 29.41256 0 -34.41412 90.55849 -2.91844e-014 -38.42946 47.11159 0 -39.69999 31.05723 0 -38.45807 33.09269 0 -36.86605 53.9672 0 -33.69118 60.24126 0 -26.40105 88.76263 -1.510696e-014 -29.09332 65.56134 0 -23.3454 69.61164 0 -19.12582 84.95402 1.877284e-029 -16.7886 72.15173 0 -13.74167 81.56284 1.269697e-029 -9.81216 73.03084 0 -8.03964 78.73864 7.636926e-030 -2.830188 72.19677 0 -2.079244 76.51087 3.64551e-030 3.742859 69.69904 0 4.077324 74.9028 7.643719e-031 9.516804 65.68592 0 10.36582 73.93119 -9.764253e-031 14.1489 60.39562 0 16.72063 73.60619 -1.558716e-030 17.36419 54.14218 0 23.07544 73.93119 -9.764253e-031 19.14039 41.22425 0 92.15467 80.62257 -5.238305e-014 88.83104 50.24595 2.085226e-030 88.0531 85.73196 -5.423092e-014 92.70476 55.53018 -1.403599e-014 94.79408 74.62572 -4.696535e-014 95.07883 61.63694 -2.711546e-014 95.79146 68.15007 -3.834705e-014 -138.3173 50.47565 -5.441105e-014 -137.432 24.73624 -3.697808e-014 -140.3168 37.52194 -4.746962e-014 -131.7115 61.79639 -5.68373e-014 -130.0639 13.89615 -2.439509e-014 -121.4177 69.91023 -5.441105e-014 -119.2369 6.508783 -1.147007e-014 -108.8671 73.6891 -4.746962e-014 -95.8047 72.60761 -3.697808e-014 -95.3204 -50.22474 -9.478654e-032 -84.0465 66.81613 -2.439509e-014 -84.63247 -52.25073 9.446271e-031 -73.87579 -50.62886 1.627355e-030 -75.22729 57.11985 -1.147007e-014 -70.57319 44.86685 0 -64.26037 -45.54158 1.876598e-030 -69.61521 31.86262 0 -64.96236 19.68153 0 -57.00677 9.350201 0 -56.86785 -37.56115 1.664318e-030 -51.7342 -16.73615 -6.04464e-035 -46.41893 1.739326 0 -52.52979 -27.58529 1.014396e-030 -43.24859 -39.15101 -3.163366e-031 -34.09116 -2.50966 0 -28.50562 -58.04747 -5.308165e-031 -21.06243 -3.038659 0 -8.827904 -71.73027 -6.242584e-031 -8.430764 0.1969107 0 14.01921 -78.97189 -5.882796e-031 2.739249 6.924362 0 11.50623 16.57672 0 17.1313 28.34049 0 37.98603 -79.12265 -4.261077e-031 29.36394 74.9028 7.643719e-031 35.52051 76.51087 3.64551e-030 41.48091 78.73864 7.636926e-030 60.92244 -72.16905 -1.522917e-031 47.18293 81.56284 1.269697e-029 52.56709 84.95402 1.877284e-029 57.67648 89.0556 -1.403599e-014 63.67333 91.69501 -2.711546e-014 80.77074 -58.7349 2.086037e-031 70.14898 92.69238 -3.834705e-014 76.66211 91.97975 -4.696535e-014 82.76887 89.60568 -5.238305e-014 95.75028 -40.02542 6.242015e-031 100.8951 29.53631 1.822036e-030 104.5172 -17.71909 1.057217e-030 106.285 6.182927 1.468804e-030 -38.28861 40.08139 0 -37.78529 35.38022 0 -37.72749 37.76394 0 + + + + + + + + + + 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 5.652422e-017 -2.025185e-016 -1 + + + + + + + + + + + + + + +

0 1 2 1 0 3 3 0 4 3 4 5 6 7 8 7 6 9 9 6 10 9 10 11 11 10 12 11 12 13 13 12 14 13 14 15 15 14 16 16 14 17 17 14 18 18 14 19 18 19 20 20 19 21 21 19 22 22 19 23 22 23 24 22 24 25 25 24 26 24 23 27 27 23 28 28 23 29 28 29 30 30 29 31 31 29 32 31 32 33 33 32 34 33 34 35 35 34 36 35 36 37 37 36 38 37 38 39 39 38 40 39 40 41 41 40 42 41 42 43 43 42 44 43 44 45 45 44 46 45 46 47 48 49 50 49 48 51 51 48 52 51 52 53 53 52 54 55 56 57 56 55 58 56 58 59 59 58 60 59 60 61 61 60 62 61 62 4 4 62 63 4 63 5 5 63 64 64 63 65 64 65 66 66 65 67 67 65 68 67 68 69 67 69 70 70 69 71 70 71 72 70 72 73 70 73 74 74 73 75 75 73 76 74 75 77 75 76 78 78 76 79 78 79 80 80 79 81 80 81 82 82 81 83 82 83 84 84 83 85 84 85 86 84 86 87 84 87 88 88 87 47 88 47 46 88 46 89 88 89 90 88 90 91 88 91 92 92 91 93 92 93 94 92 94 95 92 95 96 92 96 97 97 96 98 97 98 99 97 99 100 97 100 101 101 100 49 49 100 50 101 49 102 101 102 103 103 102 104 26 105 106 105 26 24 106 105 107

+
+
+
+
+ + + + + + + + + + + + 1 1 1 1 + + + + + + + + + +
diff --git a/testbed/data/sketchup.dat b/testbed/data/sketchup.dat new file mode 100644 index 0000000..ed1b0dd --- /dev/null +++ b/testbed/data/sketchup.dat @@ -0,0 +1,319 @@ +-112.9393 -5.134218 +-115.783 -26.39329 +-116.1693 -15.52189 +-115.783 -26.39329 +-112.9393 -5.134218 +-111.8239 -36.52552 +-111.8239 -36.52552 +-112.9393 -5.134218 +-106.4564 3.601217 +-111.8239 -36.52552 +-106.4564 3.601217 +-104.7373 -44.7788 +-66.76277 70.05491 +-68.21937 53.83701 +-68.55863 62.04185 +-68.21937 53.83701 +-66.76277 70.05491 +-65.7681 45.99956 +-65.7681 45.99956 +-66.76277 70.05491 +-62.95416 77.33014 +-65.7681 45.99956 +-62.95416 77.33014 +-61.37187 39.0636 +-61.37187 39.0636 +-62.95416 77.33014 +-57.39237 83.37173 +-61.37187 39.0636 +-57.39237 83.37173 +-55.33028 33.5018 +-55.33028 33.5018 +-57.39237 83.37173 +-50.4564 87.76796 +-55.33028 33.5018 +-50.4564 87.76796 +-54.18848 31.40854 +-54.18848 31.40854 +-50.4564 87.76796 +-52.54381 29.68213 +-52.54381 29.68213 +-50.4564 87.76796 +-50.50835 28.44022 +-50.50835 28.44022 +-50.4564 87.76796 +-48.22082 27.76744 +-48.22082 27.76744 +-50.4564 87.76796 +-42.61895 90.21923 +-48.22082 27.76744 +-42.61895 90.21923 +-45.8371 27.70964 +-45.8371 27.70964 +-42.61895 90.21923 +-43.51965 28.27076 +-43.51965 28.27076 +-42.61895 90.21923 +-41.4264 29.41256 +-41.4264 29.41256 +-42.61895 90.21923 +-34.41412 90.55849 +-41.4264 29.41256 +-34.41412 90.55849 +-38.42946 47.11159 +-41.4264 29.41256 +-38.42946 47.11159 +-39.69999 31.05723 +-39.69999 31.05723 +-38.42946 47.11159 +-38.45807 33.09269 +-38.42946 47.11159 +-34.41412 90.55849 +-36.86605 53.9672 +-36.86605 53.9672 +-34.41412 90.55849 +-33.69118 60.24126 +-33.69118 60.24126 +-34.41412 90.55849 +-26.40105 88.76263 +-33.69118 60.24126 +-26.40105 88.76263 +-29.09332 65.56134 +-29.09332 65.56134 +-26.40105 88.76263 +-23.3454 69.61164 +-23.3454 69.61164 +-26.40105 88.76263 +-19.12582 84.95402 +-23.3454 69.61164 +-19.12582 84.95402 +-16.7886 72.15173 +-16.7886 72.15173 +-19.12582 84.95402 +-13.74167 81.56284 +-16.7886 72.15173 +-13.74167 81.56284 +-9.81216 73.03084 +-9.81216 73.03084 +-13.74167 81.56284 +-8.03964 78.73864 +-9.81216 73.03084 +-8.03964 78.73864 +-2.830188 72.19677 +-2.830188 72.19677 +-8.03964 78.73864 +-2.079244 76.51087 +-2.830188 72.19677 +-2.079244 76.51087 +3.742859 69.69904 +3.742859 69.69904 +-2.079244 76.51087 +4.077324 74.9028 +3.742859 69.69904 +4.077324 74.9028 +9.516804 65.68592 +9.516804 65.68592 +4.077324 74.9028 +10.36582 73.93119 +9.516804 65.68592 +10.36582 73.93119 +14.1489 60.39562 +14.1489 60.39562 +10.36582 73.93119 +16.72063 73.60619 +14.1489 60.39562 +16.72063 73.60619 +17.36419 54.14218 +17.36419 54.14218 +16.72063 73.60619 +23.07544 73.93119 +17.36419 54.14218 +23.07544 73.93119 +19.14039 41.22425 +92.15467 80.62257 +88.83104 50.24595 +88.0531 85.73196 +88.83104 50.24595 +92.15467 80.62257 +92.70476 55.53018 +92.70476 55.53018 +92.15467 80.62257 +94.79408 74.62572 +92.70476 55.53018 +94.79408 74.62572 +95.07883 61.63694 +95.07883 61.63694 +94.79408 74.62572 +95.79146 68.15007 +-138.3173 50.47565 +-137.432 24.73624 +-140.3168 37.52194 +-137.432 24.73624 +-138.3173 50.47565 +-131.7115 61.79639 +-137.432 24.73624 +-131.7115 61.79639 +-130.0639 13.89615 +-130.0639 13.89615 +-131.7115 61.79639 +-121.4177 69.91023 +-130.0639 13.89615 +-121.4177 69.91023 +-119.2369 6.508783 +-119.2369 6.508783 +-121.4177 69.91023 +-108.8671 73.6891 +-119.2369 6.508783 +-108.8671 73.6891 +-106.4564 3.601217 +-106.4564 3.601217 +-108.8671 73.6891 +-95.8047 72.60761 +-106.4564 3.601217 +-95.8047 72.60761 +-104.7373 -44.7788 +-104.7373 -44.7788 +-95.8047 72.60761 +-95.3204 -50.22474 +-95.3204 -50.22474 +-95.8047 72.60761 +-84.0465 66.81613 +-95.3204 -50.22474 +-84.0465 66.81613 +-84.63247 -52.25073 +-84.63247 -52.25073 +-84.0465 66.81613 +-73.87579 -50.62886 +-73.87579 -50.62886 +-84.0465 66.81613 +-75.22729 57.11985 +-73.87579 -50.62886 +-75.22729 57.11985 +-70.57319 44.86685 +-73.87579 -50.62886 +-70.57319 44.86685 +-64.26037 -45.54158 +-64.26037 -45.54158 +-70.57319 44.86685 +-69.61521 31.86262 +-64.26037 -45.54158 +-69.61521 31.86262 +-64.96236 19.68153 +-64.26037 -45.54158 +-64.96236 19.68153 +-57.00677 9.350201 +-64.26037 -45.54158 +-57.00677 9.350201 +-56.86785 -37.56115 +-56.86785 -37.56115 +-57.00677 9.350201 +-51.7342 -16.73615 +-51.7342 -16.73615 +-57.00677 9.350201 +-46.41893 1.739326 +-56.86785 -37.56115 +-51.7342 -16.73615 +-52.52979 -27.58529 +-51.7342 -16.73615 +-46.41893 1.739326 +-43.24859 -39.15101 +-43.24859 -39.15101 +-46.41893 1.739326 +-34.09116 -2.50966 +-43.24859 -39.15101 +-34.09116 -2.50966 +-28.50562 -58.04747 +-28.50562 -58.04747 +-34.09116 -2.50966 +-21.06243 -3.038659 +-28.50562 -58.04747 +-21.06243 -3.038659 +-8.827904 -71.73027 +-8.827904 -71.73027 +-21.06243 -3.038659 +-8.430764 0.1969107 +-8.827904 -71.73027 +-8.430764 0.1969107 +14.01921 -78.97189 +14.01921 -78.97189 +-8.430764 0.1969107 +2.739249 6.924362 +14.01921 -78.97189 +2.739249 6.924362 +11.50623 16.57672 +14.01921 -78.97189 +11.50623 16.57672 +17.1313 28.34049 +14.01921 -78.97189 +17.1313 28.34049 +37.98603 -79.12265 +37.98603 -79.12265 +17.1313 28.34049 +19.14039 41.22425 +37.98603 -79.12265 +19.14039 41.22425 +23.07544 73.93119 +37.98603 -79.12265 +23.07544 73.93119 +29.36394 74.9028 +37.98603 -79.12265 +29.36394 74.9028 +35.52051 76.51087 +37.98603 -79.12265 +35.52051 76.51087 +41.48091 78.73864 +37.98603 -79.12265 +41.48091 78.73864 +60.92244 -72.16905 +60.92244 -72.16905 +41.48091 78.73864 +47.18293 81.56284 +60.92244 -72.16905 +47.18293 81.56284 +52.56709 84.95402 +60.92244 -72.16905 +52.56709 84.95402 +57.67648 89.0556 +60.92244 -72.16905 +57.67648 89.0556 +63.67333 91.69501 +60.92244 -72.16905 +63.67333 91.69501 +80.77074 -58.7349 +80.77074 -58.7349 +63.67333 91.69501 +70.14898 92.69238 +80.77074 -58.7349 +70.14898 92.69238 +76.66211 91.97975 +80.77074 -58.7349 +76.66211 91.97975 +82.76887 89.60568 +80.77074 -58.7349 +82.76887 89.60568 +95.75028 -40.02542 +95.75028 -40.02542 +82.76887 89.60568 +88.83104 50.24595 +88.83104 50.24595 +82.76887 89.60568 +88.0531 85.73196 +95.75028 -40.02542 +88.83104 50.24595 +100.8951 29.53631 +95.75028 -40.02542 +100.8951 29.53631 +104.5172 -17.71909 +104.5172 -17.71909 +100.8951 29.53631 +106.285 6.182927 +-38.45807 33.09269 +-38.28861 40.08139 +-37.78529 35.38022 +-38.28861 40.08139 +-38.45807 33.09269 +-38.42946 47.11159 +-37.78529 35.38022 +-38.28861 40.08139 +-37.72749 37.76394 + diff --git a/testbed/data/star.dat b/testbed/data/star.dat new file mode 100644 index 0000000..f74f958 --- /dev/null +++ b/testbed/data/star.dat @@ -0,0 +1,10 @@ +350 75 +379 161 +469 161 +397 215 +423 301 +350 250 +277 301 +303 215 +231 161 +321 161 diff --git a/testbed/data/strange.dat b/testbed/data/strange.dat new file mode 100644 index 0000000..9966eb1 --- /dev/null +++ b/testbed/data/strange.dat @@ -0,0 +1,16 @@ +400 472 +500 392 +520 272 +460 232 +580 212 +480 152 +360 172 +360 52 +300 112 +200 32 +120 92 +200 72 +340 272 +208 212 +180 352 +300 312 diff --git a/testbed/data/tank.dat b/testbed/data/tank.dat new file mode 100644 index 0000000..4337c6d --- /dev/null +++ b/testbed/data/tank.dat @@ -0,0 +1,55 @@ +-37.317758 260.65677 +-37.317758 317.44301 +-34.741139 339.73612 +-27.330761 354.21222 +59.525828 406.25724 +444.17643 404.87856 +538.9604 368.68832 +555.15984 355.59089 +558.95121 344.90615 +559.64054 325.94936 +568.19908 315.85885 +572.586 322.56108 +584.65003 322.31737 +568.80837 296.11771 +557.59736 289.78104 +539.56224 286.49085 +443.31476 286.82943 +389.89106 280.79772 +405.74583 272.00866 +412.98388 262.01326 +475.5413 262.1856 +480.71134 267.01096 +514.66123 266.66629 +520.34827 262.01326 +669.93463 262.01326 +670.45162 264.08127 +676.91417 263.82277 +678.03434 262.09943 +680.61936 261.66859 +683.03204 255.46455 +682.51504 249.94985 +677.862 243.91814 +668.81445 243.4873 +665.28159 247.02016 +520.86527 246.33082 +514.66123 240.12678 +479.67733 239.95444 +475.5413 243.57347 +412.98388 243.05647 +397.64611 227.54636 +324.74862 221.16998 +323.88695 214.79361 +328.36764 211.86392 +326.6443 207.03856 +300.79412 207.03856 +295.62409 211.69159 +285.28402 208.2449 +272.01426 211.17458 +96.577738 209.62357 +80.205961 211.86392 +58.491817 232.7164 +74.863594 254.94755 +168.61356 269.25131 +175.16228 276.83403 +87.271676 260.11758 diff --git a/testbed/data/test.dat b/testbed/data/test.dat new file mode 100644 index 0000000..8de7fc9 --- /dev/null +++ b/testbed/data/test.dat @@ -0,0 +1,6 @@ +227.15518 452.33157 +344.46202 352.32647 +472.15156 452.33157 +603.11967 352.32647 +344.46202 725.78132 +81.390847 352.32647 \ No newline at end of file diff --git a/testbed/main.cc b/testbed/main.cc new file mode 100644 index 0000000..8186035 --- /dev/null +++ b/testbed/main.cc @@ -0,0 +1,244 @@ +/* + * Poly2Tri Copyright (c) 2009-2010, Mason Green + * http://code.google.com/p/poly2tri/ + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Poly2Tri nor the names of its contributors may be + * used to endorse or promote products derived from this software without specific + * prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; + +#include "../poly2tri/poly2tri.h" + + +void Init(); +void ShutDown(int return_code); +void MainLoop(); +void Draw(); + +float rotate_y = 0, + rotate_z = 0; +const float rotations_per_tick = .2; + +list triangles; + +double StringToDouble(const std::string& s) { + std::istringstream i(s); + double x; + if (!(i >> x)) + return 0; + return x; +} + +int main(int argc, char* argv[]) { + + /* + // initialize random seed: + srand ( time(NULL) ); + + int a = 0; + int b = 2000; + + for(int i = 0; i < num_points; i++) { + double x = rand() % (b - a - 1) + a + 1; + double y = rand() % (b - a - 1) + a + 1; + polyline[i] = Point(x, y); + } + + polyline[0] = Point(5, 5); + polyline[1] = Point(-5, 5); + polyline[2] = Point(-5, -5); + polyline[3] = Point(5, -5); + + //Point foo[] = {Point(5, 5.1), Point(-5, 5.2), Point(-5, -5.3), Point(5, -5.4), Point(5.1, 5.5), Point(5, 5.5), + // Point(-5, 5.6), Point(-5, -5.7), Point(5, -5.8), Point(5, 5.9), Point(-5, 5.1), + // Point(-5, -5.11), Point(5, -5.12), Point(5, 5.13), Point(-5, 5.14), Point(-5, -5.15), Point(5, -5.16)}; + + */ + + string line; + ifstream myfile (argv[1]); + vector points; + if (myfile.is_open()) { + while (!myfile.eof()) { + getline (myfile,line); + if(line.size() == 0) { + break; + } + istringstream iss(line); + vector tokens; + copy(istream_iterator(iss), istream_iterator(), + back_inserter >(tokens)); + double x = StringToDouble(tokens[0]); + double y = StringToDouble(tokens[1]); + points.push_back(Point(x, y)); + } + myfile.close(); + } else { + cout << "File not opened" << endl; + } + + int num_points = points.size(); + cout << "Number of points = " << num_points << endl; + + Point* polyline = new Point[num_points]; + for(int i = 0; i < num_points; i++) { + polyline[i] = points[i]; + } + + Init(); + + // Perform triangulation + double init_time = glfwGetTime(); + CDT * cdt = new CDT(polyline, num_points); + cdt->Triangulate(); + double dt = glfwGetTime() - init_time; + cout << "Elapsed time (secs) = " << dt << endl; + + triangles = cdt->GetTriangles(); + + MainLoop(); + + delete [] polyline; + ShutDown(0); + return 0; +} + +void Init() +{ + const int window_width = 800, + window_height = 600; + + if (glfwInit() != GL_TRUE) + ShutDown(1); + // 800 x 600, 16 bit color, no depth, alpha or stencil buffers, windowed + if (glfwOpenWindow(window_width, window_height, 5, 6, 5, 0, 0, 0, GLFW_WINDOW) != GL_TRUE) + ShutDown(1); + + glfwSetWindowTitle("The GLFW Window"); + + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glClearColor(0.0, 0.0, 0.0, 0.0); + glHint (GL_LINE_SMOOTH_HINT, GL_NICEST); + +} + +void ShutDown(int return_code) +{ + glfwTerminate(); + exit(return_code); +} + +void MainLoop() +{ + // the time of the previous frame + double old_time = glfwGetTime(); + // this just loops as long as the program runs + bool running = true; + + while(running) + { + // calculate time elapsed, and the amount by which stuff rotates + double current_time = glfwGetTime(), + delta_rotate = (current_time - old_time) * rotations_per_tick * 360; + old_time = current_time; + + // escape to quit, arrow keys to rotate view + // Check if ESC key was pressed or window was closed + running = !glfwGetKey( GLFW_KEY_ESC ) && glfwGetWindowParam( GLFW_OPENED ); + + if (glfwGetKey(GLFW_KEY_LEFT) == GLFW_PRESS) + rotate_y += delta_rotate; + if (glfwGetKey(GLFW_KEY_RIGHT) == GLFW_PRESS) + rotate_y -= delta_rotate; + // z axis always rotates + rotate_z += delta_rotate; + + // Draw the scene + Draw(); + // swap back and front buffers + glfwSwapBuffers(); + } +} + +void ResetZoom(double zoom, double cx, double cy, double width, double height) { + + double left = -width / zoom; + double right = width / zoom; + double bottom = -height / zoom; + double top = height / zoom; + + // Reset viewport + glLoadIdentity(); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + + // Reset ortho view + glOrtho(left, right, bottom, top, 1, -1); + glTranslatef(-cx, -cy, 0); + glMatrixMode(GL_MODELVIEW); + glDisable(GL_DEPTH_TEST); + glLoadIdentity(); + + // Clear the screen + glClear(GL_COLOR_BUFFER_BIT); + +} + +void Draw() +{ + // reset zoom + double zoom = 0.5; + ResetZoom(zoom, 0, 0, 800, 600); + + list::iterator it; + for (it = triangles.begin(); it != triangles.end(); it++) { + Triangle* t = *it; + Point* a = t->GetPoint(0); + Point* b = t->GetPoint(1); + Point* c = t->GetPoint(2); + + // Red + glColor3f(1, 0, 0); + + glBegin(GL_LINE_LOOP); // Drawing Using Triangles + glVertex2f(a->x, a->y); // Top + glVertex2f(b->x, b->y); // Bottom Left + glVertex2f(c->x, c->y); // Bottom Right + glEnd(); + + } + +} diff --git a/waf b/waf new file mode 100644 index 0000000000000000000000000000000000000000..d03ed1804f4ec44908499eb45332abff9e75b20c GIT binary patch literal 87926 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%0Dik)*&u1mLM7R=;=xJLFS+6`kr>E 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 literal 0 HcmV?d00001 diff --git a/wscript b/wscript new file mode 100644 index 0000000..acddb9a --- /dev/null +++ b/wscript @@ -0,0 +1,69 @@ +VERSION='0.0.1' +import sys +APPNAME='p2t' +srcdir = '.' +blddir = 'build' + +p2t_source_files = ['poly2tri/sweep/cdt.cc', + 'poly2tri/sweep/advancing_front.cc', + 'poly2tri/sweep/mesh.cc', + 'poly2tri/sweep/sweep_context.cc', + 'poly2tri/sweep/sweep.cc', + 'poly2tri/common/shapes.cc'] + +testbed_source_files = ['testbed/main.cc'] + +#Platform specific libs +if sys.platform == 'win32': + # MS Windows + sys_libs = ['glfw', 'opengl32'] +elif sys.platform == 'darwin': + # Apple OSX + sys_libs = ['glfw', 'OpenGL'] +else: + # GNU/Linux, BSD, etc + sys_libs = ['glfw', 'GL'] + +def init(): + print(' init called') + +def set_options(opt): + print(' set_options') + opt.tool_options('g++') + +def configure(conf): + print(' calling the configuration') + conf.check_tool('g++') + #conf.env.CXXFLAGS = ['-O0', '-pg', '-g'] + conf.env.CXXFLAGS = ['-O0', '-g'] + #conf.env.CXXFLAGS = ['-O3', '-ffast-math'] + +def build(bld): + + print(' building') + ''' + # A static library + # The extension (.a) is added automatically + bld.new_task_gen( + features = 'cxx cstaticlib', + source = p2t_source_files, + name = 'poly2tri', + target = 'poly2tri') + + # 1. A simple program + bld.new_task_gen( + features = 'cxx cprogram', + source = testbed_source_files, + target = 'p2t', + uselib_local = 'poly2tri', + libs = sys_libs) + ''' + + bld.new_task_gen( + features = 'cxx cprogram', + source = testbed_source_files + p2t_source_files, + target = 'p2t', + libs = sys_libs) + +def shutdown(): + print(' shutdown called')