summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 37b0154)
raw | patch | inline | side by side (parent: 37b0154)
author | johanengelen <johanengelen@users.sourceforge.net> | |
Sun, 13 Apr 2008 20:19:07 +0000 (20:19 +0000) | ||
committer | johanengelen <johanengelen@users.sourceforge.net> | |
Sun, 13 Apr 2008 20:19:07 +0000 (20:19 +0000) |
src/2geom/path.cpp | patch | blob | history | |
src/2geom/path.h | patch | blob | history | |
src/2geom/svg-path-parser.cpp | patch | blob | history |
diff --git a/src/2geom/path.cpp b/src/2geom/path.cpp
index 3d8d5ead3cafd63bfd00732abb85b6f5c882c220..a529c37512b7241f2daf049f0324eb0f3d3dfb33 100644 (file)
--- a/src/2geom/path.cpp
+++ b/src/2geom/path.cpp
}
}
-Rect SVGEllipticalArc::boundsFast() const {
- throwNotImplemented();
-}
-Rect SVGEllipticalArc::boundsExact() const {
- throwNotImplemented();
-}
-Rect SVGEllipticalArc::boundsLocal(Interval i, unsigned deg) const {
- throwNotImplemented();
-}
-
-std::vector<Point> SVGEllipticalArc::pointAndDerivatives(Coord t, unsigned n) const {
- throwNotImplemented();
-}
-
-std::vector<double> SVGEllipticalArc::roots(double v, Dim2 d) const {
- throwNotImplemented();
-}
-
-D2<SBasis> SVGEllipticalArc::toSBasis() const {
- return D2<SBasis>(Linear(initial_[X], final_[X]), Linear(initial_[Y], final_[Y]));
-}
-
-}
+} // end namespace Geom
/*
Local Variables:
diff --git a/src/2geom/path.h b/src/2geom/path.h
index f314e6efaba722ea8f06b50bf28d736c42cb08e0..fee96a86a456cd4b3670e22028152408defb51cc 100644 (file)
--- a/src/2geom/path.h
+++ b/src/2geom/path.h
/*
* Path - Series of continuous curves
*
- * Copyright 2007 MenTaLguY <mental@rydia.net>
+ * Authors:
+ * MenTaLguY <mental@rydia.net>
+ * Marco Cecchetti <mrcekets at gmail.com>
+ *
+ * Copyright 2007-2008 authors
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
#define SEEN_GEOM_PATH_H
#include "point.h"
+#include "angle.h"
#include <iterator>
#include <algorithm>
#include "exception.h"
typedef BezierCurve<2> QuadraticBezier;
typedef BezierCurve<3> CubicBezier;
-class SVGEllipticalArc : public Curve {
-public:
- SVGEllipticalArc() {}
- SVGEllipticalArc(Point initial, double rx, double ry,
- double x_axis_rotation, bool large_arc,
- bool sweep, Point final)
- : initial_(initial), rx_(rx), ry_(ry), x_axis_rotation_(x_axis_rotation),
- large_arc_(large_arc), sweep_(sweep), final_(final)
- {}
- Curve *duplicate() const { return new SVGEllipticalArc(*this); }
- Point initialPoint() const { return initial_; }
- Point finalPoint() const { return final_; }
+class SVGEllipticalArc : public Curve
+{
+ public:
+ SVGEllipticalArc()
+ {}
+
+ SVGEllipticalArc( Point _initial_point, double _rx, double _ry,
+ double _rot_angle, bool _large_arc, bool _sweep,
+ Point _final_point
+ )
+ : m_initial_point(_initial_point), m_final_point(_final_point),
+ m_rx(_rx), m_ry(_ry), m_rot_angle(_rot_angle),
+ m_large_arc(_large_arc), m_sweep(_sweep)
+ {
+ //assert( (ray(X) >= 0) && (ray(Y) >= 0) );
+ if ( are_near(initialPoint(), finalPoint()) )
+ {
+ m_start_angle = m_end_angle = 0;
+ m_center = initialPoint();
+ }
+ else
+ {
+ calculate_center_and_extreme_angles();
+ }
+ }
+
+ Curve* duplicate() const
+ {
+ return new SVGEllipticalArc(*this);
+ }
+
+ double center(Dim2 i) const
+ {
+ return m_center[i];
+ }
- void setInitial(Point v) { initial_ = v; }
- void setFinal(Point v) { final_ = v; }
+ Point center() const
+ {
+ return m_center;
+ }
- //TODO: implement funcs
+ Point initialPoint() const
+ {
+ return m_initial_point;
+ }
- bool isDegenerate() const { return toSBasis().isConstant(); }
- Rect boundsFast() const;
- Rect boundsExact() const;
- Rect boundsLocal(Interval i, unsigned deg) const;
+ Point finalPoint() const
+ {
+ return m_final_point;
+ }
- int winding(Point p) const {
- return SBasisCurve(toSBasis()).winding(p);
- }
+ double start_angle() const
+ {
+ return m_start_angle;
+ }
- std::vector<double> roots(double v, Dim2 d) const;
+ double end_angle() const
+ {
+ return m_end_angle;
+ }
- inline std::pair<SVGEllipticalArc, SVGEllipticalArc>
- subdivide(Coord t) {
- SVGEllipticalArc a(*this), b(*this);
- a.final_ = b.initial_ = pointAt(t);
- return std::pair<SVGEllipticalArc, SVGEllipticalArc>(a, b);
- }
+ double ray(Dim2 i) const
+ {
+ return (i == 0) ? m_rx : m_ry;
+ }
-// TODO: how are the flags affected by reducing an arc from more than 180deg to less than 180deg?
- Curve *portion(double f, double t) const {
- SVGEllipticalArc *ret = new SVGEllipticalArc (*this);
- ret->initial_ = pointAt(f);
- ret->final_ = pointAt(t);
- return ret;
- }
+ bool large_arc_flag() const
+ {
+ return m_large_arc;
+ }
-// TODO: incomplete/buggy
- Curve *reverse(double /*f*/, double /*t*/) const {
- SVGEllipticalArc *ret = new SVGEllipticalArc (*this);
- ret->initial_ = final_;
- ret->final_ = initial_;
- return ret;
- }
+ bool sweep_flag() const
+ {
+ return m_sweep;
+ }
- //TODO: this next def isn't right
- Curve *transformed(Matrix const & m) const {
- SVGEllipticalArc *ret = new SVGEllipticalArc (*this);
- ret->initial_ = initial_ * m;
- ret->final_ = final_ * m;
- return ret;
- }
+ double rotation_angle() const
+ {
+ return m_rot_angle;
+ }
- Curve *derivative() const { throwNotImplemented(); }
+ void setInitial( const Point _point)
+ {
+ m_initial_point = _point;
+ calculate_center_and_extreme_angles();
+ }
+
+ void setFinal( const Point _point)
+ {
+ m_final_point = _point;
+ calculate_center_and_extreme_angles();
+ }
+
+ void setExtremes( const Point& _initial_point, const Point& _final_point )
+ {
+ m_initial_point = _initial_point;
+ m_final_point = _final_point;
+ calculate_center_and_extreme_angles();
+ }
+
+ bool isDegenerate() const
+ {
+ return are_near(initialPoint(), finalPoint());
+ }
+
+ // TODO: native implementation of the following methods
+ Rect boundsFast() const
+ {
+ return SBasisCurve(toSBasis()).boundsFast();
+ }
+
+ Rect boundsExact() const
+ {
+ return SBasisCurve(toSBasis()).boundsExact();
+ }
+
+ Rect boundsLocal(Interval i, unsigned int deg) const
+ {
+ return SBasisCurve(toSBasis()).boundsLocal(i, deg);
+ }
+
+ std::vector<double> roots(double v, Dim2 d) const
+ {
+ return SBasisCurve(toSBasis()).roots(v, d);
+ }
+
+ int winding(Point p) const
+ {
+ return SBasisCurve(toSBasis()).winding(p);
+ }
+
+ Curve *derivative() const
+ {
+ return SBasisCurve(toSBasis()).derivative();
+ }
+
+ Curve *transformed(Matrix const &m) const
+ {
+ return SBasisCurve(toSBasis()).transformed(m);
+ }
+
+ std::vector<Point> pointAndDerivatives(Coord t, unsigned n) const
+ {
+ return SBasisCurve(toSBasis()).pointAndDerivatives(t, n);
+ }
+
+ D2<SBasis> toSBasis() const;
+
+ double valueAt(Coord t, Dim2 d) const;
+
+ Point pointAt(Coord t) const
+ {
+ Coord tt = from_01_to_02PI(t);
+ double sin_rot_angle = std::sin(rotation_angle());
+ double cos_rot_angle = std::cos(rotation_angle());
+ Matrix m( ray(X) * cos_rot_angle, ray(X) * sin_rot_angle,
+ -ray(Y) * sin_rot_angle, ray(Y) * cos_rot_angle,
+ center(X), center(Y) );
+ Point p( std::cos(tt), std::sin(tt) );
+ return p * m;
+ }
+
+ std::pair<SVGEllipticalArc, SVGEllipticalArc>
+ subdivide(Coord t) const
+ {
+ SVGEllipticalArc* arc1 = static_cast<SVGEllipticalArc*>(portion(0, t));
+ SVGEllipticalArc* arc2 = static_cast<SVGEllipticalArc*>(portion(t, 1));
+ assert( arc1 != NULL && arc2 != NULL);
+ std::pair<SVGEllipticalArc, SVGEllipticalArc> arc_pair(*arc1, *arc2);
+ delete arc1;
+ delete arc2;
+ return arc_pair;
+ }
+
+ Curve* portion(double f, double t) const;
+
+ // the arc is the same but traversed in the opposite direction
+ Curve* reverse() const
+ {
+ SVGEllipticalArc* rarc = new SVGEllipticalArc( *this );
+ rarc->m_sweep = !m_sweep;
+ rarc->m_initial_point = m_final_point;
+ rarc->m_final_point = m_initial_point;
+ rarc->m_start_angle = m_end_angle;
+ rarc->m_end_angle = m_start_angle;
+ return rarc;
+ }
+
+ private:
+ double sweep_angle() const
+ {
+ Coord d = end_angle() - start_angle();
+ if ( !sweep_flag() ) d = -d;
+ if ( d < 0 )
+ d += 2*M_PI;
+ return d;
+ }
+
+ Coord from_01_to_02PI(Coord t) const;
+
+ void calculate_center_and_extreme_angles();
+
+ private:
+ Point m_initial_point, m_final_point;
+ double m_rx, m_ry, m_rot_angle;
+ bool m_large_arc, m_sweep;
+ double m_start_angle, m_end_angle;
+ Point m_center;
+
+}; // end class SVGEllipticalArc
- std::vector<Point> pointAndDerivatives(Coord t, unsigned n) const;
- D2<SBasis> toSBasis() const;
-private:
- Point initial_;
- double rx_;
- double ry_;
- double x_axis_rotation_;
- bool large_arc_;
- bool sweep_;
- Point final_;
-};
template <typename IteratorImpl>
class BaseIterator
index ba0fbe7da0adedfb47bde1ee6bf60726174c0c55..fbe017c8ae2bddb04bb8ab2e7b79a52c2bc3d7af 100644 (file)
-#line 1 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 1 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
/*
* parse SVG path specifications
*
};
-#line 133 "/home/mental/trees/lib2geom/src/svg-path-parser.cpp"
+#line 133 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.cpp"
static const char _svg_path_actions[] = {
0, 1, 0, 1, 1, 1, 2, 1,
3, 1, 4, 1, 5, 1, 15, 1,
};
static const short _svg_path_key_offsets[] = {
- 0, 7, 7, 16, 25, 28, 30, 42,
+ 0, 0, 7, 16, 25, 28, 30, 42,
52, 55, 57, 90, 121, 124, 126, 138,
148, 151, 153, 186, 195, 207, 216, 249,
256, 263, 265, 275, 283, 290, 292, 304,
};
static const char _svg_path_single_lengths[] = {
- 5, 0, 5, 5, 1, 0, 6, 4,
+ 0, 5, 5, 5, 1, 0, 6, 4,
1, 0, 27, 25, 1, 0, 6, 4,
1, 0, 27, 5, 6, 5, 27, 3,
3, 0, 6, 4, 3, 0, 6, 4,
};
static const char _svg_path_range_lengths[] = {
- 1, 0, 2, 2, 1, 1, 3, 3,
+ 0, 1, 2, 2, 1, 1, 3, 3,
1, 1, 3, 3, 1, 1, 3, 3,
1, 1, 3, 2, 3, 2, 3, 2,
2, 1, 2, 2, 2, 1, 3, 3,
};
static const short _svg_path_index_offsets[] = {
- 0, 7, 7, 15, 23, 26, 28, 38,
+ 0, 0, 7, 15, 23, 26, 28, 38,
46, 49, 51, 82, 111, 114, 116, 126,
134, 137, 139, 170, 178, 188, 196, 227,
233, 239, 241, 250, 257, 263, 265, 275,
};
static const short _svg_path_indicies[] = {
- 73, 74, 74, 75, 76, 74, 0, 571,
- 571, 572, 572, 573, 571, 574, 0, 631,
- 631, 632, 632, 633, 631, 634, 0, 670,
- 513, 0, 512, 0, 509, 509, 511, 548,
- 514, 514, 509, 510, 512, 0, 490, 490,
- 434, 436, 490, 435, 437, 0, 393, 127,
- 0, 126, 0, 122, 123, 123, 125, 148,
- 128, 129, 130, 131, 132, 133, 134, 135,
- 136, 137, 138, 139, 140, 130, 141, 142,
- 143, 144, 145, 146, 147, 138, 123, 124,
- 126, 0, 73, 611, 611, 613, 614, 78,
- 79, 80, 81, 75, 82, 83, 84, 85,
- 86, 87, 88, 89, 90, 76, 91, 92,
- 93, 94, 86, 611, 612, 615, 0, 671,
- 519, 0, 518, 0, 515, 515, 517, 550,
- 520, 520, 515, 516, 518, 0, 491, 491,
- 438, 440, 491, 439, 441, 0, 394, 155,
- 0, 154, 0, 150, 151, 151, 153, 176,
- 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 166, 167, 168, 158, 169, 170,
- 171, 172, 173, 174, 175, 166, 151, 152,
- 154, 0, 613, 613, 612, 612, 614, 613,
- 615, 0, 515, 515, 517, 518, 520, 520,
- 515, 516, 519, 0, 438, 438, 439, 439,
- 440, 438, 441, 0, 150, 151, 151, 153,
- 154, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 158, 169,
- 170, 171, 172, 173, 174, 175, 166, 151,
- 152, 155, 0, 47, 47, 48, 47, 49,
- 0, 8, 8, 9, 8, 10, 0, 385,
- 0, 25, 25, 26, 27, 31, 31, 25,
- 498, 0, 12, 12, 13, 14, 12, 15,
- 0, 13, 13, 14, 13, 15, 0, 35,
- 0, 32, 32, 34, 38, 37, 37, 32,
- 33, 35, 0, 20, 20, 16, 18, 20,
- 17, 19, 0, 2, 3, 0, 23, 0,
- 21, 21, 22, 24, 24, 21, 23, 0,
- 11, 11, 5, 6, 7, 11, 0, 5,
- 5, 6, 7, 5, 0, 45, 45, 46,
- 45, 0, 722, 722, 716, 717, 718, 722,
- 0, 716, 716, 717, 718, 716, 0, 567,
- 567, 568, 567, 0, 651, 651, 647, 430,
- 651, 429, 433, 0, 676, 69, 0, 68,
- 0, 351, 351, 352, 375, 70, 70, 351,
- 66, 68, 0, 497, 497, 478, 480, 497,
- 479, 481, 0, 406, 380, 0, 379, 0,
- 350, 377, 377, 378, 382, 355, 356, 381,
- 358, 359, 360, 361, 362, 363, 364, 365,
- 366, 367, 381, 368, 369, 370, 371, 372,
- 373, 374, 365, 377, 379, 0, 73, 95,
- 95, 8, 9, 78, 79, 80, 81, 75,
- 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 76, 91, 92, 93, 94, 86, 95,
- 10, 0, 25, 25, 26, 29, 31, 31,
- 25, 30, 0, 40, 40, 41, 562, 561,
- 561, 40, 33, 30, 0, 483, 483, 425,
- 426, 483, 17, 427, 0, 425, 425, 17,
- 17, 426, 425, 427, 0, 501, 0, 499,
- 499, 500, 38, 503, 503, 499, 33, 501,
- 0, 482, 482, 422, 18, 423, 424, 482,
- 17, 19, 0, 422, 422, 17, 17, 18,
- 423, 424, 422, 19, 0, 63, 63, 64,
- 23, 24, 24, 63, 3, 0, 723, 723,
- 719, 720, 721, 723, 0, 719, 719, 720,
- 721, 719, 0, 569, 569, 570, 569, 0,
- 489, 489, 428, 430, 431, 432, 489, 429,
- 433, 0, 428, 428, 429, 429, 430, 431,
- 432, 428, 433, 0, 71, 71, 72, 68,
- 70, 70, 71, 66, 69, 0, 496, 496,
- 474, 476, 496, 475, 477, 0, 405, 354,
- 0, 353, 0, 350, 351, 351, 352, 375,
- 355, 356, 357, 358, 359, 360, 361, 362,
- 363, 364, 365, 366, 367, 357, 368, 369,
- 370, 371, 372, 373, 374, 365, 351, 66,
- 353, 0, 478, 478, 479, 479, 480, 478,
- 481, 0, 350, 377, 377, 378, 379, 355,
- 356, 381, 358, 359, 360, 361, 362, 363,
- 364, 365, 366, 367, 381, 368, 369, 370,
- 371, 372, 373, 374, 365, 377, 380, 0,
- 50, 50, 51, 51, 52, 50, 53, 0,
- 98, 98, 97, 97, 99, 98, 100, 0,
- 391, 392, 0, 507, 0, 504, 504, 506,
- 546, 508, 508, 504, 505, 507, 0, 484,
- 484, 486, 487, 484, 485, 488, 0, 790,
- 788, 0, 755, 0, 751, 751, 753, 754,
- 756, 756, 751, 752, 755, 0, 787, 787,
- 773, 775, 787, 774, 776, 0, 748, 739,
- 0, 710, 0, 689, 689, 691, 692, 711,
- 711, 689, 690, 710, 0, 736, 736, 724,
- 726, 736, 725, 727, 0, 677, 656, 0,
- 655, 0, 652, 652, 654, 704, 657, 657,
- 652, 653, 655, 0, 648, 648, 635, 637,
- 648, 636, 638, 0, 672, 525, 0, 524,
- 0, 521, 521, 523, 552, 526, 526, 521,
- 522, 524, 0, 492, 492, 458, 460, 492,
- 459, 461, 0, 401, 243, 0, 242, 0,
- 238, 239, 239, 241, 264, 244, 245, 246,
- 247, 248, 249, 250, 251, 252, 253, 254,
- 255, 256, 246, 257, 258, 259, 260, 261,
- 262, 263, 254, 239, 240, 242, 0, 73,
- 96, 96, 98, 99, 78, 79, 80, 81,
- 75, 82, 83, 84, 85, 86, 87, 88,
- 89, 90, 76, 91, 92, 93, 94, 86,
- 96, 97, 100, 0, 504, 504, 506, 507,
- 508, 508, 504, 505, 392, 0, 486, 486,
- 485, 485, 487, 486, 488, 0, 751, 751,
- 753, 755, 756, 756, 751, 752, 788, 0,
- 773, 773, 774, 774, 775, 773, 776, 0,
- 689, 689, 691, 710, 711, 711, 689, 690,
- 739, 0, 724, 724, 725, 725, 726, 724,
- 727, 0, 652, 652, 654, 655, 657, 657,
- 652, 653, 656, 0, 635, 635, 636, 636,
- 637, 635, 638, 0, 521, 521, 523, 524,
- 526, 526, 521, 522, 525, 0, 458, 458,
- 459, 459, 460, 458, 461, 0, 238, 239,
- 239, 241, 242, 244, 245, 246, 247, 248,
- 249, 250, 251, 252, 253, 254, 255, 256,
- 246, 257, 258, 259, 260, 261, 262, 263,
- 254, 239, 240, 243, 0, 416, 416, 265,
- 0, 265, 0, 238, 239, 239, 241, 264,
- 244, 245, 247, 248, 249, 250, 251, 252,
- 253, 254, 255, 256, 257, 258, 259, 260,
- 261, 262, 263, 254, 239, 240, 265, 0,
- 583, 583, 584, 584, 585, 583, 586, 0,
- 446, 446, 447, 447, 448, 446, 449, 0,
- 396, 397, 0, 388, 0, 178, 179, 179,
- 181, 204, 184, 185, 624, 187, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 624,
- 197, 198, 199, 200, 201, 202, 203, 194,
- 179, 180, 623, 0, 73, 621, 621, 442,
- 444, 78, 79, 80, 81, 75, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 76,
- 91, 92, 93, 94, 86, 621, 443, 445,
- 0, 395, 183, 0, 182, 0, 178, 179,
- 179, 181, 204, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196,
- 186, 197, 198, 199, 200, 201, 202, 203,
- 194, 179, 180, 182, 0, 442, 442, 443,
- 443, 444, 442, 445, 0, 178, 179, 179,
- 181, 182, 184, 185, 186, 187, 188, 189,
- 190, 191, 192, 193, 194, 195, 196, 186,
- 197, 198, 199, 200, 201, 202, 203, 194,
- 179, 180, 183, 0, 412, 412, 205, 0,
- 205, 0, 178, 179, 179, 181, 204, 184,
- 185, 187, 188, 189, 190, 191, 192, 193,
- 194, 195, 196, 197, 198, 199, 200, 201,
- 202, 203, 194, 179, 180, 205, 0, 575,
- 575, 576, 576, 577, 575, 578, 0, 761,
- 761, 762, 762, 763, 761, 764, 0, 781,
- 781, 782, 782, 783, 781, 784, 0, 750,
- 741, 0, 714, 0, 699, 699, 701, 702,
- 715, 715, 699, 700, 714, 0, 738, 738,
- 732, 734, 738, 733, 735, 0, 679, 668,
- 0, 667, 0, 664, 664, 666, 708, 669,
- 669, 664, 665, 667, 0, 650, 650, 643,
- 645, 650, 644, 646, 0, 674, 537, 0,
- 536, 0, 533, 533, 535, 556, 538, 538,
- 533, 534, 536, 0, 494, 494, 466, 468,
- 494, 467, 469, 0, 403, 299, 0, 298,
- 0, 294, 295, 295, 297, 320, 300, 301,
- 302, 303, 304, 305, 306, 307, 308, 309,
- 310, 311, 312, 302, 313, 314, 315, 316,
- 317, 318, 319, 310, 295, 296, 298, 0,
- 73, 786, 786, 781, 783, 78, 79, 80,
- 81, 75, 82, 83, 84, 85, 86, 87,
- 88, 89, 90, 76, 91, 92, 93, 94,
- 86, 786, 782, 784, 0, 699, 699, 701,
- 714, 715, 715, 699, 700, 741, 0, 732,
- 732, 733, 733, 734, 732, 735, 0, 664,
- 664, 666, 667, 669, 669, 664, 665, 668,
- 0, 643, 643, 644, 644, 645, 643, 646,
- 0, 533, 533, 535, 536, 538, 538, 533,
- 534, 537, 0, 466, 466, 467, 467, 468,
- 466, 469, 0, 294, 295, 295, 297, 298,
- 300, 301, 302, 303, 304, 305, 306, 307,
- 308, 309, 310, 311, 312, 302, 313, 314,
- 315, 316, 317, 318, 319, 310, 295, 296,
- 299, 0, 418, 418, 321, 0, 321, 0,
- 294, 295, 295, 297, 320, 300, 301, 303,
- 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 318, 319,
- 310, 295, 296, 321, 0, 757, 757, 758,
- 758, 759, 757, 760, 0, 777, 777, 778,
- 778, 779, 777, 780, 0, 749, 740, 0,
- 712, 0, 694, 694, 696, 697, 713, 713,
- 694, 695, 712, 0, 737, 737, 728, 730,
- 737, 729, 731, 0, 678, 662, 0, 661,
- 0, 658, 658, 660, 706, 663, 663, 658,
- 659, 661, 0, 649, 649, 639, 641, 649,
- 640, 642, 0, 673, 531, 0, 530, 0,
- 527, 527, 529, 554, 532, 532, 527, 528,
- 530, 0, 493, 493, 462, 464, 493, 463,
- 465, 0, 402, 271, 0, 270, 0, 266,
- 267, 267, 269, 292, 272, 273, 274, 275,
- 276, 277, 278, 279, 280, 281, 282, 283,
- 284, 274, 285, 286, 287, 288, 289, 290,
- 291, 282, 267, 268, 270, 0, 73, 785,
- 785, 777, 779, 78, 79, 80, 81, 75,
- 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 76, 91, 92, 93, 94, 86, 785,
- 778, 780, 0, 694, 694, 696, 712, 713,
- 713, 694, 695, 740, 0, 728, 728, 729,
- 729, 730, 728, 731, 0, 658, 658, 660,
- 661, 663, 663, 658, 659, 662, 0, 639,
- 639, 640, 640, 641, 639, 642, 0, 527,
- 527, 529, 530, 532, 532, 527, 528, 531,
- 0, 462, 462, 463, 463, 464, 462, 465,
- 0, 266, 267, 267, 269, 270, 272, 273,
- 274, 275, 276, 277, 278, 279, 280, 281,
- 282, 283, 284, 274, 285, 286, 287, 288,
- 289, 290, 291, 282, 267, 268, 271, 0,
- 417, 417, 293, 0, 293, 0, 266, 267,
- 267, 269, 292, 272, 273, 275, 276, 277,
- 278, 279, 280, 281, 282, 283, 284, 285,
- 286, 287, 288, 289, 290, 291, 282, 267,
- 268, 293, 0, 579, 579, 580, 580, 581,
- 579, 582, 0, 618, 618, 617, 617, 619,
- 618, 620, 0, 675, 543, 0, 542, 0,
- 539, 539, 541, 558, 544, 544, 539, 540,
- 542, 0, 495, 495, 470, 472, 495, 471,
- 473, 0, 404, 327, 0, 326, 0, 322,
- 323, 323, 325, 348, 328, 329, 330, 331,
- 332, 333, 334, 335, 336, 337, 338, 339,
- 340, 330, 341, 342, 343, 344, 345, 346,
- 347, 338, 323, 324, 326, 0, 73, 616,
- 616, 618, 619, 78, 79, 80, 81, 75,
- 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 76, 91, 92, 93, 94, 86, 616,
- 617, 620, 0, 539, 539, 541, 542, 544,
- 544, 539, 540, 543, 0, 470, 470, 471,
- 471, 472, 470, 473, 0, 322, 323, 323,
- 325, 326, 328, 329, 330, 331, 332, 333,
- 334, 335, 336, 337, 338, 339, 340, 330,
- 341, 342, 343, 344, 345, 346, 347, 338,
- 323, 324, 327, 0, 419, 419, 349, 0,
- 349, 0, 322, 323, 323, 325, 348, 328,
- 329, 331, 332, 333, 334, 335, 336, 337,
- 338, 339, 340, 341, 342, 343, 344, 345,
- 346, 347, 338, 323, 324, 349, 0, 587,
- 587, 588, 588, 589, 587, 590, 0, 454,
- 454, 455, 455, 456, 454, 457, 0, 399,
- 400, 0, 390, 0, 208, 209, 209, 211,
- 234, 214, 215, 628, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 628, 227,
- 228, 229, 230, 231, 232, 233, 224, 209,
- 210, 627, 0, 73, 622, 622, 450, 452,
- 78, 79, 80, 81, 75, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 76, 91,
- 92, 93, 94, 86, 622, 451, 453, 0,
- 398, 213, 0, 212, 0, 208, 209, 209,
- 211, 234, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 216,
- 227, 228, 229, 230, 231, 232, 233, 224,
- 209, 210, 212, 0, 450, 450, 451, 451,
- 452, 450, 453, 0, 208, 209, 209, 211,
- 212, 214, 215, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 216, 227,
- 228, 229, 230, 231, 232, 233, 224, 209,
- 210, 213, 0, 414, 414, 235, 0, 235,
- 0, 208, 209, 209, 211, 234, 214, 215,
- 217, 218, 219, 220, 221, 222, 223, 224,
- 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 224, 209, 210, 235, 0, 101, 102,
- 102, 103, 104, 105, 106, 107, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 117,
- 118, 119, 120, 121, 112, 102, 0, 73,
- 77, 77, 78, 79, 80, 81, 75, 82,
- 83, 84, 85, 86, 87, 88, 89, 90,
- 76, 91, 92, 93, 94, 86, 77, 0,
- 54, 54, 55, 54, 56, 0, 57, 57,
- 58, 58, 59, 57, 60, 0, 603, 603,
- 604, 604, 605, 603, 606, 0, 178, 179,
- 179, 181, 625, 184, 185, 624, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196,
- 624, 197, 198, 199, 200, 201, 202, 203,
- 194, 179, 180, 626, 0, 413, 413, 387,
- 0, 387, 0, 178, 179, 179, 181, 204,
- 184, 185, 187, 188, 189, 190, 191, 192,
+ 0, 2, 2, 3, 4, 2, 1, 5,
+ 5, 6, 6, 7, 5, 8, 1, 9,
+ 9, 10, 10, 11, 9, 12, 1, 13,
+ 14, 1, 15, 1, 16, 16, 18, 19,
+ 20, 20, 16, 17, 15, 1, 21, 21,
+ 23, 24, 21, 22, 25, 1, 26, 27,
+ 1, 28, 1, 29, 30, 30, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41,
+ 42, 43, 44, 45, 46, 36, 47, 48,
+ 49, 50, 51, 52, 53, 44, 30, 31,
+ 28, 1, 0, 54, 54, 56, 57, 59,
+ 60, 61, 62, 3, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 4, 72, 73,
+ 74, 75, 67, 54, 55, 58, 1, 76,
+ 77, 1, 78, 1, 79, 79, 81, 82,
+ 83, 83, 79, 80, 78, 1, 84, 84,
+ 86, 87, 84, 85, 88, 1, 89, 90,
+ 1, 91, 1, 92, 93, 93, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 99, 110, 111,
+ 112, 113, 114, 115, 116, 107, 93, 94,
+ 91, 1, 56, 56, 55, 55, 57, 56,
+ 58, 1, 79, 79, 81, 78, 83, 83,
+ 79, 80, 77, 1, 86, 86, 85, 85,
+ 87, 86, 88, 1, 92, 93, 93, 95,
+ 91, 97, 98, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 99, 110,
+ 111, 112, 113, 114, 115, 116, 107, 93,
+ 94, 90, 1, 117, 117, 118, 117, 119,
+ 1, 120, 120, 121, 120, 122, 1, 123,
+ 1, 124, 124, 125, 126, 128, 128, 124,
+ 127, 1, 129, 129, 130, 131, 129, 132,
+ 1, 130, 130, 131, 130, 132, 1, 133,
+ 1, 134, 134, 136, 137, 138, 138, 134,
+ 135, 133, 1, 139, 139, 141, 142, 139,
+ 140, 143, 1, 144, 145, 1, 146, 1,
+ 147, 147, 148, 149, 149, 147, 146, 1,
+ 150, 150, 151, 152, 153, 150, 1, 151,
+ 151, 152, 153, 151, 1, 154, 154, 155,
+ 154, 1, 156, 156, 157, 158, 159, 156,
+ 1, 157, 157, 158, 159, 157, 1, 160,
+ 160, 161, 160, 1, 162, 162, 164, 165,
+ 162, 163, 166, 1, 167, 168, 1, 169,
+ 1, 170, 170, 172, 173, 174, 174, 170,
+ 171, 169, 1, 175, 175, 177, 178, 175,
+ 176, 179, 1, 180, 181, 1, 182, 1,
+ 183, 184, 184, 185, 186, 187, 188, 189,
+ 190, 191, 192, 193, 194, 195, 196, 197,
+ 198, 199, 189, 200, 201, 202, 203, 204,
+ 205, 206, 197, 184, 182, 1, 0, 207,
+ 207, 120, 121, 59, 60, 61, 62, 3,
+ 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 4, 72, 73, 74, 75, 67, 207,
+ 122, 1, 124, 124, 125, 208, 128, 128,
+ 124, 209, 1, 210, 210, 211, 212, 213,
+ 213, 210, 135, 209, 1, 214, 214, 215,
+ 216, 214, 140, 217, 1, 215, 215, 140,
+ 140, 216, 215, 217, 1, 218, 1, 219,
+ 219, 220, 137, 221, 221, 219, 135, 218,
+ 1, 222, 222, 223, 142, 224, 225, 222,
+ 140, 143, 1, 223, 223, 140, 140, 142,
+ 224, 225, 223, 143, 1, 226, 226, 227,
+ 146, 149, 149, 226, 145, 1, 228, 228,
+ 229, 230, 231, 228, 1, 229, 229, 230,
+ 231, 229, 1, 232, 232, 233, 232, 1,
+ 234, 234, 235, 165, 236, 237, 234, 163,
+ 166, 1, 235, 235, 163, 163, 165, 236,
+ 237, 235, 166, 1, 238, 238, 239, 169,
+ 174, 174, 238, 171, 168, 1, 240, 240,
+ 242, 243, 240, 241, 244, 1, 245, 246,
+ 1, 247, 1, 183, 170, 170, 172, 173,
+ 187, 188, 248, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 248, 200, 201,
+ 202, 203, 204, 205, 206, 197, 170, 171,
+ 247, 1, 177, 177, 176, 176, 178, 177,
+ 179, 1, 183, 184, 184, 185, 182, 187,
+ 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 197, 198, 199, 189, 200, 201, 202,
+ 203, 204, 205, 206, 197, 184, 181, 1,
+ 249, 249, 250, 250, 251, 249, 252, 1,
+ 253, 253, 254, 254, 255, 253, 256, 1,
+ 257, 258, 1, 259, 1, 260, 260, 262,
+ 263, 264, 264, 260, 261, 259, 1, 265,
+ 265, 267, 268, 265, 266, 269, 1, 270,
+ 271, 1, 272, 1, 273, 273, 275, 276,
+ 277, 277, 273, 274, 272, 1, 278, 278,
+ 280, 281, 278, 279, 282, 1, 283, 284,
+ 1, 285, 1, 286, 286, 288, 289, 290,
+ 290, 286, 287, 285, 1, 291, 291, 293,
+ 294, 291, 292, 295, 1, 296, 297, 1,
+ 298, 1, 299, 299, 301, 302, 303, 303,
+ 299, 300, 298, 1, 304, 304, 306, 307,
+ 304, 305, 308, 1, 309, 310, 1, 311,
+ 1, 312, 312, 314, 315, 316, 316, 312,
+ 313, 311, 1, 317, 317, 319, 320, 317,
+ 318, 321, 1, 322, 323, 1, 324, 1,
+ 325, 326, 326, 328, 329, 330, 331, 332,
+ 333, 334, 335, 336, 337, 338, 339, 340,
+ 341, 342, 332, 343, 344, 345, 346, 347,
+ 348, 349, 340, 326, 327, 324, 1, 0,
+ 350, 350, 253, 255, 59, 60, 61, 62,
+ 3, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 4, 72, 73, 74, 75, 67,
+ 350, 254, 256, 1, 260, 260, 262, 259,
+ 264, 264, 260, 261, 258, 1, 267, 267,
+ 266, 266, 268, 267, 269, 1, 273, 273,
+ 275, 272, 277, 277, 273, 274, 271, 1,
+ 280, 280, 279, 279, 281, 280, 282, 1,
+ 286, 286, 288, 285, 290, 290, 286, 287,
+ 284, 1, 293, 293, 292, 292, 294, 293,
+ 295, 1, 299, 299, 301, 298, 303, 303,
+ 299, 300, 297, 1, 306, 306, 305, 305,
+ 307, 306, 308, 1, 312, 312, 314, 311,
+ 316, 316, 312, 313, 310, 1, 319, 319,
+ 318, 318, 320, 319, 321, 1, 325, 326,
+ 326, 328, 324, 330, 331, 332, 333, 334,
+ 335, 336, 337, 338, 339, 340, 341, 342,
+ 332, 343, 344, 345, 346, 347, 348, 349,
+ 340, 326, 327, 323, 1, 351, 351, 352,
+ 1, 352, 1, 325, 326, 326, 328, 329,
+ 330, 331, 333, 334, 335, 336, 337, 338,
+ 339, 340, 341, 342, 343, 344, 345, 346,
+ 347, 348, 349, 340, 326, 327, 352, 1,
+ 353, 353, 354, 354, 355, 353, 356, 1,
+ 357, 357, 358, 358, 359, 357, 360, 1,
+ 361, 362, 1, 363, 1, 364, 365, 365,
+ 367, 368, 370, 371, 372, 373, 374, 375,
+ 376, 377, 378, 379, 380, 381, 382, 372,
+ 383, 384, 385, 386, 387, 388, 389, 380,
+ 365, 366, 369, 1, 0, 390, 390, 392,
+ 393, 59, 60, 61, 62, 3, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 4,
+ 72, 73, 74, 75, 67, 390, 391, 394,
+ 1, 395, 396, 1, 397, 1, 364, 365,
+ 365, 367, 368, 370, 371, 398, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382,
+ 398, 383, 384, 385, 386, 387, 388, 389,
+ 380, 365, 366, 397, 1, 392, 392, 391,
+ 391, 393, 392, 394, 1, 364, 365, 365,
+ 367, 397, 370, 371, 398, 373, 374, 375,
+ 376, 377, 378, 379, 380, 381, 382, 398,
+ 383, 384, 385, 386, 387, 388, 389, 380,
+ 365, 366, 396, 1, 399, 399, 400, 1,
+ 400, 1, 364, 365, 365, 367, 368, 370,
+ 371, 373, 374, 375, 376, 377, 378, 379,
+ 380, 381, 382, 383, 384, 385, 386, 387,
+ 388, 389, 380, 365, 366, 400, 1, 401,
+ 401, 402, 402, 403, 401, 404, 1, 405,
+ 405, 406, 406, 407, 405, 408, 1, 409,
+ 409, 410, 410, 411, 409, 412, 1, 413,
+ 414, 1, 415, 1, 416, 416, 418, 419,
+ 420, 420, 416, 417, 415, 1, 421, 421,
+ 423, 424, 421, 422, 425, 1, 426, 427,
+ 1, 428, 1, 429, 429, 431, 432, 433,
+ 433, 429, 430, 428, 1, 434, 434, 436,
+ 437, 434, 435, 438, 1, 439, 440, 1,
+ 441, 1, 442, 442, 444, 445, 446, 446,
+ 442, 443, 441, 1, 447, 447, 449, 450,
+ 447, 448, 451, 1, 452, 453, 1, 454,
+ 1, 455, 456, 456, 458, 459, 460, 461,
+ 462, 463, 464, 465, 466, 467, 468, 469,
+ 470, 471, 472, 462, 473, 474, 475, 476,
+ 477, 478, 479, 470, 456, 457, 454, 1,
+ 0, 480, 480, 409, 411, 59, 60, 61,
+ 62, 3, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 4, 72, 73, 74, 75,
+ 67, 480, 410, 412, 1, 416, 416, 418,
+ 415, 420, 420, 416, 417, 414, 1, 423,
+ 423, 422, 422, 424, 423, 425, 1, 429,
+ 429, 431, 428, 433, 433, 429, 430, 427,
+ 1, 436, 436, 435, 435, 437, 436, 438,
+ 1, 442, 442, 444, 441, 446, 446, 442,
+ 443, 440, 1, 449, 449, 448, 448, 450,
+ 449, 451, 1, 455, 456, 456, 458, 454,
+ 460, 461, 462, 463, 464, 465, 466, 467,
+ 468, 469, 470, 471, 472, 462, 473, 474,
+ 475, 476, 477, 478, 479, 470, 456, 457,
+ 453, 1, 481, 481, 482, 1, 482, 1,
+ 455, 456, 456, 458, 459, 460, 461, 463,
+ 464, 465, 466, 467, 468, 469, 470, 471,
+ 472, 473, 474, 475, 476, 477, 478, 479,
+ 470, 456, 457, 482, 1, 483, 483, 484,
+ 484, 485, 483, 486, 1, 487, 487, 488,
+ 488, 489, 487, 490, 1, 491, 492, 1,
+ 493, 1, 494, 494, 496, 497, 498, 498,
+ 494, 495, 493, 1, 499, 499, 501, 502,
+ 499, 500, 503, 1, 504, 505, 1, 506,
+ 1, 507, 507, 509, 510, 511, 511, 507,
+ 508, 506, 1, 512, 512, 514, 515, 512,
+ 513, 516, 1, 517, 518, 1, 519, 1,
+ 520, 520, 522, 523, 524, 524, 520, 521,
+ 519, 1, 525, 525, 527, 528, 525, 526,
+ 529, 1, 530, 531, 1, 532, 1, 533,
+ 534, 534, 536, 537, 538, 539, 540, 541,
+ 542, 543, 544, 545, 546, 547, 548, 549,
+ 550, 540, 551, 552, 553, 554, 555, 556,
+ 557, 548, 534, 535, 532, 1, 0, 558,
+ 558, 487, 489, 59, 60, 61, 62, 3,
+ 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 4, 72, 73, 74, 75, 67, 558,
+ 488, 490, 1, 494, 494, 496, 493, 498,
+ 498, 494, 495, 492, 1, 501, 501, 500,
+ 500, 502, 501, 503, 1, 507, 507, 509,
+ 506, 511, 511, 507, 508, 505, 1, 514,
+ 514, 513, 513, 515, 514, 516, 1, 520,
+ 520, 522, 519, 524, 524, 520, 521, 518,
+ 1, 527, 527, 526, 526, 528, 527, 529,
+ 1, 533, 534, 534, 536, 532, 538, 539,
+ 540, 541, 542, 543, 544, 545, 546, 547,
+ 548, 549, 550, 540, 551, 552, 553, 554,
+ 555, 556, 557, 548, 534, 535, 531, 1,
+ 559, 559, 560, 1, 560, 1, 533, 534,
+ 534, 536, 537, 538, 539, 541, 542, 543,
+ 544, 545, 546, 547, 548, 549, 550, 551,
+ 552, 553, 554, 555, 556, 557, 548, 534,
+ 535, 560, 1, 561, 561, 562, 562, 563,
+ 561, 564, 1, 565, 565, 566, 566, 567,
+ 565, 568, 1, 569, 570, 1, 571, 1,
+ 572, 572, 574, 575, 576, 576, 572, 573,
+ 571, 1, 577, 577, 579, 580, 577, 578,
+ 581, 1, 582, 583, 1, 584, 1, 585,
+ 586, 586, 588, 589, 590, 591, 592, 593,
+ 594, 595, 596, 597, 598, 599, 600, 601,
+ 602, 592, 603, 604, 605, 606, 607, 608,
+ 609, 600, 586, 587, 584, 1, 0, 610,
+ 610, 565, 567, 59, 60, 61, 62, 3,
+ 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 4, 72, 73, 74, 75, 67, 610,
+ 566, 568, 1, 572, 572, 574, 571, 576,
+ 576, 572, 573, 570, 1, 579, 579, 578,
+ 578, 580, 579, 581, 1, 585, 586, 586,
+ 588, 584, 590, 591, 592, 593, 594, 595,
+ 596, 597, 598, 599, 600, 601, 602, 592,
+ 603, 604, 605, 606, 607, 608, 609, 600,
+ 586, 587, 583, 1, 611, 611, 612, 1,
+ 612, 1, 585, 586, 586, 588, 589, 590,
+ 591, 593, 594, 595, 596, 597, 598, 599,
+ 600, 601, 602, 603, 604, 605, 606, 607,
+ 608, 609, 600, 586, 587, 612, 1, 613,
+ 613, 614, 614, 615, 613, 616, 1, 617,
+ 617, 618, 618, 619, 617, 620, 1, 621,
+ 622, 1, 623, 1, 624, 625, 625, 627,
+ 628, 630, 631, 632, 633, 634, 635, 636,
+ 637, 638, 639, 640, 641, 642, 632, 643,
+ 644, 645, 646, 647, 648, 649, 640, 625,
+ 626, 629, 1, 0, 650, 650, 652, 653,
+ 59, 60, 61, 62, 3, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 4, 72,
+ 73, 74, 75, 67, 650, 651, 654, 1,
+ 655, 656, 1, 657, 1, 624, 625, 625,
+ 627, 628, 630, 631, 658, 633, 634, 635,
+ 636, 637, 638, 639, 640, 641, 642, 658,
+ 643, 644, 645, 646, 647, 648, 649, 640,
+ 625, 626, 657, 1, 652, 652, 651, 651,
+ 653, 652, 654, 1, 624, 625, 625, 627,
+ 657, 630, 631, 658, 633, 634, 635, 636,
+ 637, 638, 639, 640, 641, 642, 658, 643,
+ 644, 645, 646, 647, 648, 649, 640, 625,
+ 626, 656, 1, 659, 659, 660, 1, 660,
+ 1, 624, 625, 625, 627, 628, 630, 631,
+ 633, 634, 635, 636, 637, 638, 639, 640,
+ 641, 642, 643, 644, 645, 646, 647, 648,
+ 649, 640, 625, 626, 660, 1, 661, 662,
+ 662, 663, 664, 665, 666, 667, 668, 669,
+ 670, 671, 672, 673, 674, 675, 676, 677,
+ 678, 679, 680, 681, 672, 662, 1, 0,
+ 682, 682, 59, 60, 61, 62, 3, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71,
+ 4, 72, 73, 74, 75, 67, 682, 1,
+ 683, 683, 684, 683, 685, 1, 686, 686,
+ 687, 687, 688, 686, 689, 1, 690, 690,
+ 691, 691, 692, 690, 693, 1, 364, 365,
+ 365, 367, 694, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382,
+ 372, 383, 384, 385, 386, 387, 388, 389,
+ 380, 365, 366, 695, 1, 696, 696, 697,
+ 1, 697, 1, 364, 365, 365, 367, 368,
+ 370, 371, 373, 374, 375, 376, 377, 378,
+ 379, 380, 381, 382, 383, 384, 385, 386,
+ 387, 388, 389, 380, 365, 366, 698, 1,
+ 364, 365, 365, 367, 699, 370, 371, 398,
+ 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 398, 383, 384, 385, 386, 387,
+ 388, 389, 380, 365, 366, 698, 1, 700,
+ 700, 701, 701, 702, 700, 703, 1, 704,
+ 704, 705, 705, 706, 704, 707, 1, 16,
+ 16, 18, 15, 20, 20, 16, 17, 14,
+ 1, 23, 23, 22, 22, 24, 23, 25,
+ 1, 29, 30, 30, 32, 28, 34, 35,
+ 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 36, 47, 48, 49, 50,
+ 51, 52, 53, 44, 30, 31, 27, 1,
+ 708, 708, 709, 1, 709, 1, 29, 30,
+ 30, 32, 33, 34, 35, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 44, 30,
+ 31, 709, 1, 710, 710, 711, 711, 712,
+ 710, 713, 1, 714, 714, 715, 715, 716,
+ 714, 717, 1, 718, 718, 719, 719, 720,
+ 718, 721, 1, 722, 722, 723, 723, 724,
+ 722, 725, 1, 624, 625, 625, 627, 726,
+ 630, 631, 632, 633, 634, 635, 636, 637,
+ 638, 639, 640, 641, 642, 632, 643, 644,
+ 645, 646, 647, 648, 649, 640, 625, 626,
+ 727, 1, 728, 728, 729, 1, 729, 1,
+ 624, 625, 625, 627, 628, 630, 631, 633,
+ 634, 635, 636, 637, 638, 639, 640, 641,
+ 642, 643, 644, 645, 646, 647, 648, 649,
+ 640, 625, 626, 730, 1, 624, 625, 625,
+ 627, 731, 630, 631, 658, 633, 634, 635,
+ 636, 637, 638, 639, 640, 641, 642, 658,
+ 643, 644, 645, 646, 647, 648, 649, 640,
+ 625, 626, 730, 1, 732, 732, 733, 1,
+ 733, 1, 16, 16, 18, 19, 16, 17,
+ 733, 1, 624, 625, 625, 627, 731, 630,
+ 631, 632, 633, 634, 635, 636, 637, 638,
+ 639, 640, 641, 642, 632, 643, 644, 645,
+ 646, 647, 648, 649, 640, 625, 626, 629,
+ 1, 734, 734, 735, 1, 735, 1, 572,
+ 572, 574, 575, 572, 573, 735, 1, 736,
+ 736, 737, 1, 737, 1, 520, 520, 522,
+ 523, 520, 521, 737, 1, 738, 738, 739,
+ 1, 739, 1, 507, 507, 509, 510, 507,
+ 508, 739, 1, 740, 740, 741, 1, 741,
+ 1, 494, 494, 496, 497, 494, 495, 741,
+ 1, 742, 742, 743, 1, 743, 1, 442,
+ 442, 444, 445, 442, 443, 743, 1, 744,
+ 744, 745, 1, 745, 1, 429, 429, 431,
+ 432, 429, 430, 745, 1, 746, 746, 747,
+ 1, 747, 1, 416, 416, 418, 419, 416,
+ 417, 747, 1, 364, 365, 365, 367, 699,
+ 370, 371, 372, 373, 374, 375, 376, 377,
+ 378, 379, 380, 381, 382, 372, 383, 384,
+ 385, 386, 387, 388, 389, 380, 365, 366,
+ 369, 1, 748, 748, 749, 1, 749, 1,
+ 312, 312, 314, 315, 312, 313, 749, 1,
+ 750, 750, 751, 1, 751, 1, 299, 299,
+ 301, 302, 299, 300, 751, 1, 752, 752,
+ 753, 1, 753, 1, 286, 286, 288, 289,
+ 286, 287, 753, 1, 754, 754, 755, 1,
+ 755, 1, 273, 273, 275, 276, 273, 274,
+ 755, 1, 756, 756, 757, 1, 757, 1,
+ 260, 260, 262, 263, 260, 261, 757, 1,
+ 758, 758, 759, 1, 759, 1, 183, 184,
+ 184, 185, 186, 187, 188, 190, 191, 192,
193, 194, 195, 196, 197, 198, 199, 200,
- 201, 202, 203, 194, 179, 180, 206, 0,
- 178, 179, 179, 181, 207, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 193, 194,
- 195, 196, 186, 197, 198, 199, 200, 201,
- 202, 203, 194, 179, 180, 206, 0, 595,
- 595, 596, 596, 597, 595, 598, 0, 591,
- 591, 592, 592, 593, 591, 594, 0, 509,
- 509, 511, 512, 514, 514, 509, 510, 513,
- 0, 434, 434, 435, 435, 436, 434, 437,
- 0, 122, 123, 123, 125, 126, 128, 129,
- 130, 131, 132, 133, 134, 135, 136, 137,
- 138, 139, 140, 130, 141, 142, 143, 144,
- 145, 146, 147, 138, 123, 124, 127, 0,
- 410, 410, 149, 0, 149, 0, 122, 123,
- 123, 125, 148, 128, 129, 131, 132, 133,
- 134, 135, 136, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 138, 123,
- 124, 149, 0, 769, 769, 770, 770, 771,
- 769, 772, 0, 765, 765, 766, 766, 767,
- 765, 768, 0, 599, 599, 600, 600, 601,
- 599, 602, 0, 607, 607, 608, 608, 609,
- 607, 610, 0, 208, 209, 209, 211, 629,
- 214, 215, 628, 217, 218, 219, 220, 221,
- 222, 223, 224, 225, 226, 628, 227, 228,
- 229, 230, 231, 232, 233, 224, 209, 210,
- 630, 0, 415, 415, 389, 0, 389, 0,
- 208, 209, 209, 211, 234, 214, 215, 217,
- 218, 219, 220, 221, 222, 223, 224, 225,
- 226, 227, 228, 229, 230, 231, 232, 233,
- 224, 209, 210, 236, 0, 208, 209, 209,
- 211, 237, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 216,
- 227, 228, 229, 230, 231, 232, 233, 224,
- 209, 210, 236, 0, 682, 682, 549, 0,
- 549, 0, 509, 509, 511, 548, 509, 510,
- 549, 0, 208, 209, 209, 211, 237, 214,
- 215, 628, 217, 218, 219, 220, 221, 222,
- 223, 224, 225, 226, 628, 227, 228, 229,
- 230, 231, 232, 233, 224, 209, 210, 627,
- 0, 687, 687, 559, 0, 559, 0, 539,
- 539, 541, 558, 539, 540, 559, 0, 685,
- 685, 555, 0, 555, 0, 527, 527, 529,
- 554, 527, 528, 555, 0, 746, 746, 707,
- 0, 707, 0, 658, 658, 660, 706, 658,
- 659, 707, 0, 743, 743, 698, 0, 698,
- 0, 694, 694, 696, 697, 694, 695, 698,
- 0, 686, 686, 557, 0, 557, 0, 533,
- 533, 535, 556, 533, 534, 557, 0, 747,
- 747, 709, 0, 709, 0, 664, 664, 666,
- 708, 664, 665, 709, 0, 744, 744, 703,
- 0, 703, 0, 699, 699, 701, 702, 699,
- 700, 703, 0, 178, 179, 179, 181, 207,
- 184, 185, 624, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 624, 197, 198,
- 199, 200, 201, 202, 203, 194, 179, 180,
- 623, 0, 684, 684, 553, 0, 553, 0,
- 521, 521, 523, 552, 521, 522, 553, 0,
- 745, 745, 705, 0, 705, 0, 652, 652,
- 654, 704, 652, 653, 705, 0, 742, 742,
- 693, 0, 693, 0, 689, 689, 691, 692,
- 689, 690, 693, 0, 791, 791, 789, 0,
- 789, 0, 751, 751, 753, 754, 751, 752,
- 789, 0, 681, 681, 547, 0, 547, 0,
- 504, 504, 506, 546, 504, 505, 547, 0,
- 421, 421, 383, 0, 383, 0, 350, 377,
- 377, 378, 382, 355, 356, 358, 359, 360,
- 361, 362, 363, 364, 365, 366, 367, 368,
- 369, 370, 371, 372, 373, 374, 365, 377,
- 383, 0, 420, 420, 376, 0, 376, 0,
- 350, 351, 351, 352, 375, 355, 356, 358,
- 359, 360, 361, 362, 363, 364, 365, 366,
- 367, 368, 369, 370, 371, 372, 373, 374,
- 365, 351, 66, 376, 0, 350, 351, 351,
- 352, 353, 355, 356, 357, 358, 359, 360,
- 361, 362, 363, 364, 365, 366, 367, 357,
- 368, 369, 370, 371, 372, 373, 374, 365,
- 351, 66, 354, 0, 474, 474, 475, 475,
- 476, 474, 477, 0, 351, 351, 352, 68,
- 70, 70, 351, 66, 69, 0, 688, 688,
- 560, 0, 560, 0, 351, 351, 352, 375,
- 351, 66, 560, 0, 65, 65, 67, 68,
- 70, 70, 65, 66, 69, 0, 565, 565,
- 566, 565, 0, 21, 21, 22, 23, 24,
- 24, 21, 3, 0, 4, 4, 1, 0,
- 1, 0, 21, 21, 22, 21, 1, 0,
- 61, 61, 62, 23, 24, 24, 61, 3,
- 0, 680, 680, 545, 0, 545, 0, 499,
- 499, 500, 38, 499, 33, 545, 0, 499,
- 499, 500, 501, 503, 503, 499, 33, 502,
- 0, 40, 40, 41, 27, 561, 561, 40,
- 33, 498, 0, 40, 40, 41, 42, 561,
- 561, 40, 33, 498, 0, 409, 409, 386,
- 0, 386, 0, 40, 40, 41, 27, 40,
- 33, 28, 0, 40, 40, 41, 42, 37,
- 37, 40, 33, 28, 0, 408, 408, 39,
- 0, 39, 0, 32, 32, 34, 38, 32,
- 33, 39, 0, 16, 16, 17, 17, 18,
- 16, 19, 0, 407, 407, 384, 0, 384,
- 0, 25, 25, 26, 27, 25, 28, 0,
- 647, 647, 429, 429, 430, 647, 433, 0,
- 563, 563, 564, 563, 0, 43, 43, 44,
- 43, 0, 32, 32, 34, 35, 37, 37,
- 32, 33, 36, 0, 411, 411, 177, 0,
- 177, 0, 150, 151, 151, 153, 176, 156,
- 157, 159, 160, 161, 162, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 173,
- 174, 175, 166, 151, 152, 177, 0, 683,
- 683, 551, 0, 551, 0, 515, 515, 517,
- 550, 515, 516, 551, 0, 0, 0
+ 201, 202, 203, 204, 205, 206, 197, 184,
+ 759, 1, 760, 760, 761, 1, 761, 1,
+ 183, 170, 170, 172, 173, 187, 188, 190,
+ 191, 192, 193, 194, 195, 196, 197, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206,
+ 197, 170, 171, 761, 1, 183, 170, 170,
+ 172, 247, 187, 188, 248, 190, 191, 192,
+ 193, 194, 195, 196, 197, 198, 199, 248,
+ 200, 201, 202, 203, 204, 205, 206, 197,
+ 170, 171, 246, 1, 242, 242, 241, 241,
+ 243, 242, 244, 1, 170, 170, 172, 169,
+ 174, 174, 170, 171, 168, 1, 762, 762,
+ 763, 1, 763, 1, 170, 170, 172, 173,
+ 170, 171, 763, 1, 764, 764, 765, 169,
+ 174, 174, 764, 171, 168, 1, 766, 766,
+ 767, 766, 1, 147, 147, 148, 146, 149,
+ 149, 147, 145, 1, 768, 768, 769, 1,
+ 769, 1, 147, 147, 148, 147, 769, 1,
+ 770, 770, 771, 146, 149, 149, 770, 145,
+ 1, 772, 772, 773, 1, 773, 1, 219,
+ 219, 220, 137, 219, 135, 773, 1, 219,
+ 219, 220, 218, 221, 221, 219, 135, 774,
+ 1, 210, 210, 211, 126, 213, 213, 210,
+ 135, 127, 1, 210, 210, 211, 775, 213,
+ 213, 210, 135, 127, 1, 776, 776, 777,
+ 1, 777, 1, 210, 210, 211, 126, 210,
+ 135, 778, 1, 210, 210, 211, 775, 138,
+ 138, 210, 135, 778, 1, 779, 779, 780,
+ 1, 780, 1, 134, 134, 136, 137, 134,
+ 135, 780, 1, 141, 141, 140, 140, 142,
+ 141, 143, 1, 781, 781, 782, 1, 782,
+ 1, 124, 124, 125, 126, 124, 778, 1,
+ 164, 164, 163, 163, 165, 164, 166, 1,
+ 783, 783, 784, 783, 1, 785, 785, 786,
+ 785, 1, 134, 134, 136, 133, 138, 138,
+ 134, 135, 787, 1, 788, 788, 789, 1,
+ 789, 1, 92, 93, 93, 95, 96, 97,
+ 98, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114,
+ 115, 116, 107, 93, 94, 789, 1, 790,
+ 790, 791, 1, 791, 1, 79, 79, 81,
+ 82, 79, 80, 791, 1, 1, 0
};
static const short _svg_path_trans_targs_wi[] = {
- 1, 297, 33, 294, 296, 36, 37, 318,
- 24, 25, 50, 35, 27, 28, 29, 319,
- 312, 32, 33, 294, 31, 35, 36, 34,
- 295, 27, 28, 29, 308, 26, 51, 313,
- 31, 32, 312, 30, 319, 309, 33, 311,
- 52, 53, 30, 38, 39, 38, 39, 24,
- 25, 50, 72, 73, 74, 97, 24, 25,
- 50, 72, 73, 74, 97, 59, 60, 59,
- 60, 65, 46, 287, 44, 288, 289, 65,
- 287, 326, 0, 2, 223, 213, 23, 71,
- 111, 125, 126, 154, 182, 198, 212, 214,
- 215, 216, 222, 230, 231, 232, 233, 49,
- 96, 73, 72, 74, 97, 326, 213, 23,
- 71, 111, 125, 2, 126, 154, 182, 198,
- 212, 214, 215, 216, 222, 223, 230, 231,
- 232, 233, 326, 11, 12, 19, 10, 226,
- 23, 71, 227, 111, 125, 2, 126, 154,
- 182, 198, 212, 214, 215, 216, 222, 223,
- 230, 231, 232, 233, 13, 229, 326, 11,
- 12, 19, 18, 22, 23, 71, 320, 111,
+ 326, 0, 1, 2, 223, 3, 4, 5,
+ 224, 3, 4, 5, 224, 5, 224, 6,
+ 7, 8, 225, 9, 239, 7, 8, 225,
+ 9, 226, 9, 226, 10, 326, 11, 12,
+ 19, 13, 23, 71, 227, 111, 125, 2,
+ 126, 154, 182, 198, 212, 214, 215, 216,
+ 222, 223, 230, 231, 232, 233, 11, 12,
+ 19, 13, 20, 23, 71, 111, 125, 126,
+ 154, 182, 198, 212, 214, 215, 216, 222,
+ 230, 231, 232, 233, 13, 20, 14, 15,
+ 16, 21, 17, 323, 15, 16, 21, 17,
+ 22, 17, 22, 18, 326, 11, 12, 19,
+ 13, 23, 71, 320, 111, 125, 2, 126,
+ 154, 182, 198, 212, 214, 215, 216, 222,
+ 223, 230, 231, 232, 233, 24, 25, 50,
+ 24, 25, 50, 26, 27, 28, 29, 304,
+ 313, 27, 28, 29, 319, 30, 31, 32,
+ 312, 33, 309, 31, 32, 312, 33, 294,
+ 33, 294, 34, 35, 36, 295, 35, 36,
+ 37, 318, 38, 39, 38, 39, 40, 317,
+ 41, 316, 41, 42, 316, 43, 288, 43,
+ 288, 44, 45, 46, 69, 47, 289, 45,
+ 46, 69, 47, 70, 47, 70, 48, 326,
+ 49, 24, 25, 23, 71, 280, 111, 125,
+ 2, 126, 154, 182, 198, 212, 214, 215,
+ 216, 222, 223, 230, 231, 232, 233, 49,
+ 26, 51, 52, 53, 303, 305, 52, 53,
+ 54, 302, 55, 56, 57, 299, 56, 57,
+ 58, 298, 59, 60, 59, 60, 61, 293,
+ 62, 63, 62, 63, 64, 292, 65, 287,
+ 65, 66, 287, 67, 286, 67, 286, 68,
+ 283, 72, 73, 74, 97, 72, 73, 74,
+ 97, 74, 97, 75, 76, 77, 98, 78,
+ 277, 76, 77, 98, 78, 99, 78, 99,
+ 79, 80, 81, 100, 82, 274, 80, 81,
+ 100, 82, 101, 82, 101, 83, 84, 85,
+ 102, 86, 271, 84, 85, 102, 86, 103,
+ 86, 103, 87, 88, 89, 104, 90, 268,
+ 88, 89, 104, 90, 105, 90, 105, 91,
+ 92, 93, 106, 94, 265, 92, 93, 106,
+ 94, 107, 94, 107, 95, 326, 96, 73,
+ 72, 74, 23, 71, 108, 111, 125, 2,
+ 126, 154, 182, 198, 212, 214, 215, 216,
+ 222, 223, 230, 231, 232, 233, 96, 109,
+ 110, 112, 113, 114, 217, 112, 113, 114,
+ 217, 114, 217, 115, 326, 116, 117, 120,
+ 118, 264, 23, 71, 218, 111, 125, 2,
+ 126, 154, 182, 198, 212, 214, 215, 216,
+ 222, 223, 230, 231, 232, 233, 116, 117,
+ 120, 118, 121, 118, 121, 119, 122, 123,
+ 124, 19, 12, 13, 20, 127, 128, 129,
+ 144, 127, 128, 129, 144, 129, 144, 130,
+ 131, 132, 145, 133, 261, 131, 132, 145,
+ 133, 146, 133, 146, 134, 135, 136, 147,
+ 137, 258, 135, 136, 147, 137, 148, 137,
+ 148, 138, 139, 140, 149, 141, 255, 139,
+ 140, 149, 141, 150, 141, 150, 142, 326,
+ 143, 128, 127, 129, 23, 71, 151, 111,
125, 2, 126, 154, 182, 198, 212, 214,
215, 216, 222, 223, 230, 231, 232, 233,
- 13, 322, 326, 116, 117, 120, 119, 121,
- 23, 71, 122, 111, 125, 2, 126, 154,
- 182, 198, 212, 214, 215, 216, 222, 223,
- 230, 231, 232, 233, 118, 124, 221, 119,
- 326, 203, 204, 207, 206, 208, 23, 71,
- 209, 111, 125, 2, 126, 154, 182, 198,
+ 143, 152, 153, 155, 156, 157, 172, 155,
+ 156, 157, 172, 157, 172, 158, 159, 160,
+ 173, 161, 252, 159, 160, 173, 161, 174,
+ 161, 174, 162, 163, 164, 175, 165, 249,
+ 163, 164, 175, 165, 176, 165, 176, 166,
+ 167, 168, 177, 169, 246, 167, 168, 177,
+ 169, 178, 169, 178, 170, 326, 171, 156,
+ 155, 157, 23, 71, 179, 111, 125, 2,
+ 126, 154, 182, 198, 212, 214, 215, 216,
+ 222, 223, 230, 231, 232, 233, 171, 180,
+ 181, 183, 184, 185, 192, 183, 184, 185,
+ 192, 185, 192, 186, 187, 188, 193, 189,
+ 243, 187, 188, 193, 189, 194, 189, 194,
+ 190, 326, 191, 184, 183, 185, 23, 71,
+ 195, 111, 125, 2, 126, 154, 182, 198,
212, 214, 215, 216, 222, 223, 230, 231,
- 232, 233, 205, 211, 238, 206, 326, 96,
- 73, 72, 95, 107, 23, 71, 108, 111,
- 125, 2, 126, 154, 182, 198, 212, 214,
- 215, 216, 222, 223, 230, 231, 232, 233,
- 74, 110, 326, 171, 156, 155, 170, 178,
- 23, 71, 179, 111, 125, 2, 126, 154,
- 182, 198, 212, 214, 215, 216, 222, 223,
- 230, 231, 232, 233, 157, 181, 326, 143,
- 128, 127, 142, 150, 23, 71, 151, 111,
- 125, 2, 126, 154, 182, 198, 212, 214,
- 215, 216, 222, 223, 230, 231, 232, 233,
- 129, 153, 326, 191, 184, 183, 190, 194,
- 23, 71, 195, 111, 125, 2, 126, 154,
- 182, 198, 212, 214, 215, 216, 222, 223,
- 230, 231, 232, 233, 185, 197, 326, 45,
- 69, 68, 286, 23, 71, 283, 111, 125,
- 2, 126, 154, 182, 198, 212, 214, 215,
- 216, 222, 223, 230, 231, 232, 233, 47,
- 285, 49, 24, 48, 70, 280, 25, 282,
- 315, 26, 307, 220, 115, 237, 202, 74,
- 97, 9, 17, 118, 114, 217, 205, 201,
- 234, 94, 169, 141, 189, 67, 47, 314,
- 310, 306, 228, 321, 123, 219, 210, 236,
- 109, 180, 152, 196, 284, 281, 57, 58,
- 298, 53, 54, 302, 63, 42, 43, 64,
- 292, 288, 225, 8, 9, 226, 21, 16,
- 17, 22, 120, 117, 118, 121, 112, 113,
- 114, 217, 207, 204, 205, 208, 199, 200,
- 201, 234, 106, 93, 94, 107, 177, 168,
- 169, 178, 149, 140, 141, 150, 193, 188,
- 189, 194, 287, 66, 67, 286, 69, 46,
- 47, 70, 56, 52, 76, 77, 98, 78,
- 99, 62, 7, 15, 92, 167, 139, 187,
- 65, 45, 304, 56, 57, 55, 302, 299,
- 76, 77, 98, 75, 277, 7, 8, 225,
- 6, 224, 239, 15, 16, 21, 14, 20,
- 323, 92, 93, 106, 91, 105, 265, 167,
- 168, 177, 166, 176, 246, 139, 140, 149,
- 138, 148, 255, 187, 188, 193, 186, 192,
- 243, 301, 78, 279, 9, 241, 17, 325,
- 94, 267, 169, 248, 141, 257, 189, 245,
- 291, 305, 303, 41, 316, 62, 63, 41,
- 316, 62, 63, 3, 4, 5, 224, 19,
- 12, 13, 20, 183, 184, 185, 192, 112,
- 113, 114, 217, 199, 200, 201, 234, 3,
- 4, 5, 224, 19, 12, 13, 20, 183,
- 184, 185, 192, 112, 113, 114, 217, 199,
- 200, 201, 234, 11, 12, 19, 13, 20,
- 191, 184, 183, 185, 192, 116, 203, 264,
- 218, 115, 217, 242, 235, 202, 234, 3,
- 4, 5, 224, 104, 89, 90, 105, 175,
- 164, 165, 176, 147, 136, 137, 148, 316,
- 88, 163, 135, 41, 88, 89, 104, 87,
- 103, 268, 163, 164, 175, 162, 174, 249,
- 135, 136, 147, 134, 146, 258, 5, 13,
- 90, 165, 137, 185, 43, 86, 161, 133,
- 300, 278, 240, 324, 266, 247, 256, 244,
- 290, 84, 85, 102, 86, 273, 159, 160,
- 173, 161, 254, 131, 132, 145, 133, 263,
- 90, 270, 165, 251, 137, 260, 83, 271,
- 158, 252, 130, 261, 39, 40, 317, 60,
- 61, 293, 38, 59, 102, 85, 86, 103,
- 173, 160, 161, 174, 145, 132, 133, 146,
- 84, 159, 131, 101, 172, 144, 272, 253,
- 262, 269, 250, 259, 82, 157, 129, 80,
- 81, 100, 82, 79, 274, 155, 156, 157,
- 172, 127, 128, 129, 144, 155, 156, 157,
- 172, 127, 128, 129, 144, 100, 81, 82,
- 101, 155, 156, 157, 172, 127, 128, 129,
- 144, 171, 143, 80, 99, 276, 78, 275
+ 232, 233, 191, 196, 197, 199, 200, 201,
+ 234, 199, 200, 201, 234, 201, 234, 202,
+ 326, 203, 204, 207, 205, 242, 23, 71,
+ 235, 111, 125, 2, 126, 154, 182, 198,
+ 212, 214, 215, 216, 222, 223, 230, 231,
+ 232, 233, 203, 204, 207, 205, 208, 205,
+ 208, 206, 209, 210, 211, 326, 213, 23,
+ 71, 111, 125, 2, 126, 154, 182, 198,
+ 212, 214, 215, 216, 222, 223, 230, 231,
+ 232, 233, 213, 24, 25, 50, 72, 73,
+ 74, 97, 112, 113, 114, 217, 115, 217,
+ 219, 220, 221, 119, 19, 12, 13, 20,
+ 3, 4, 5, 224, 228, 229, 127, 128,
+ 129, 144, 155, 156, 157, 172, 183, 184,
+ 185, 192, 199, 200, 201, 234, 202, 234,
+ 236, 237, 238, 206, 240, 241, 244, 245,
+ 247, 248, 250, 251, 253, 254, 256, 257,
+ 259, 260, 262, 263, 266, 267, 269, 270,
+ 272, 273, 275, 276, 278, 279, 281, 282,
+ 284, 285, 290, 291, 65, 287, 62, 63,
+ 296, 297, 59, 60, 300, 301, 302, 30,
+ 306, 307, 308, 310, 311, 314, 315, 41,
+ 316, 38, 39, 319, 321, 322, 324, 325
};
static const unsigned char _svg_path_trans_actions_wi[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 1, 0, 0, 0, 1, 1,
- 0, 1, 1, 1, 0, 3, 3, 0,
- 0, 3, 3, 17, 17, 17, 17, 0,
- 3, 17, 3, 0, 0, 0, 17, 0,
- 3, 3, 17, 5, 5, 7, 7, 9,
- 59, 59, 9, 59, 59, 59, 11, 62,
- 62, 11, 62, 62, 62, 20, 20, 23,
- 23, 53, 17, 53, 0, 0, 0, 56,
- 56, 15, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 1, 0, 1, 1, 65, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 13, 13, 13, 13, 13, 13,
- 13, 13, 72, 26, 68, 26, 0, 0,
- 26, 26, 0, 26, 26, 26, 26, 26,
+ 15, 0, 0, 0, 0, 9, 59, 59,
+ 59, 0, 1, 1, 1, 0, 0, 0,
+ 3, 17, 3, 17, 0, 0, 1, 0,
+ 1, 1, 0, 0, 0, 72, 26, 68,
+ 26, 68, 26, 26, 0, 26, 26, 26,
26, 26, 26, 26, 26, 26, 26, 26,
- 26, 26, 26, 26, 68, 0, 80, 29,
- 76, 29, 0, 0, 29, 29, 0, 29,
- 29, 29, 29, 29, 29, 29, 29, 29,
+ 26, 26, 26, 26, 26, 26, 0, 1,
+ 0, 1, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 3,
+ 17, 3, 17, 0, 0, 1, 0, 1,
+ 1, 0, 0, 0, 80, 29, 76, 29,
+ 76, 29, 29, 0, 29, 29, 29, 29,
29, 29, 29, 29, 29, 29, 29, 29,
- 76, 0, 88, 32, 84, 32, 0, 0,
- 32, 32, 0, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 84, 0, 84, 84,
- 96, 35, 92, 35, 0, 0, 35, 35,
- 0, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 92, 0, 92, 92, 104, 38,
- 100, 38, 0, 0, 38, 38, 0, 38,
- 38, 38, 38, 38, 38, 38, 38, 38,
+ 29, 29, 29, 29, 29, 9, 59, 59,
+ 0, 1, 1, 0, 3, 3, 17, 17,
+ 0, 0, 0, 1, 1, 0, 3, 17,
+ 3, 17, 0, 0, 1, 0, 1, 1,
+ 0, 0, 0, 3, 3, 0, 0, 0,
+ 0, 0, 7, 7, 0, 0, 0, 0,
+ 7, 7, 0, 1, 0, 1, 1, 0,
+ 0, 0, 3, 17, 3, 17, 0, 0,
+ 1, 0, 1, 1, 0, 0, 0, 136,
+ 50, 50, 132, 50, 50, 0, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 0,
+ 17, 17, 3, 3, 17, 0, 0, 0,
+ 1, 1, 0, 3, 3, 0, 0, 0,
+ 1, 1, 23, 23, 0, 0, 0, 0,
+ 7, 7, 0, 0, 1, 1, 56, 56,
+ 0, 1, 0, 1, 1, 0, 0, 0,
+ 0, 9, 59, 59, 59, 0, 1, 1,
+ 1, 0, 0, 0, 3, 17, 3, 17,
+ 0, 0, 1, 0, 1, 1, 0, 0,
+ 0, 3, 17, 3, 17, 0, 0, 1,
+ 0, 1, 1, 0, 0, 0, 3, 17,
+ 3, 17, 0, 0, 1, 0, 1, 1,
+ 0, 0, 0, 3, 17, 3, 17, 0,
+ 0, 1, 0, 1, 1, 0, 0, 0,
+ 3, 17, 3, 17, 0, 0, 1, 0,
+ 1, 1, 0, 0, 0, 104, 38, 100,
+ 38, 100, 38, 38, 0, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38,
- 100, 0, 112, 41, 108, 41, 0, 0,
- 41, 41, 0, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 41, 41, 41, 41,
- 41, 41, 41, 41, 108, 0, 120, 44,
- 116, 44, 0, 0, 44, 44, 0, 44,
+ 38, 38, 38, 38, 38, 38, 0, 0,
+ 0, 9, 59, 59, 59, 0, 1, 1,
+ 1, 0, 0, 0, 88, 32, 84, 32,
+ 84, 84, 32, 32, 0, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 0, 1,
+ 0, 1, 1, 0, 0, 0, 0, 0,
+ 0, 9, 59, 59, 59, 9, 59, 59,
+ 59, 0, 1, 1, 1, 0, 0, 0,
+ 3, 17, 3, 17, 0, 0, 1, 0,
+ 1, 1, 0, 0, 0, 3, 17, 3,
+ 17, 0, 0, 1, 0, 1, 1, 0,
+ 0, 0, 3, 17, 3, 17, 0, 0,
+ 1, 0, 1, 1, 0, 0, 0, 120,
+ 44, 116, 44, 116, 44, 44, 0, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
- 116, 0, 128, 47, 124, 47, 0, 0,
- 47, 47, 0, 47, 47, 47, 47, 47,
+ 0, 0, 0, 9, 59, 59, 59, 0,
+ 1, 1, 1, 0, 0, 0, 3, 17,
+ 3, 17, 0, 0, 1, 0, 1, 1,
+ 0, 0, 0, 3, 17, 3, 17, 0,
+ 0, 1, 0, 1, 1, 0, 0, 0,
+ 3, 17, 3, 17, 0, 0, 1, 0,
+ 1, 1, 0, 0, 0, 112, 41, 108,
+ 41, 108, 41, 41, 0, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 41, 41,
+ 41, 41, 41, 41, 41, 41, 0, 0,
+ 0, 9, 59, 59, 59, 0, 1, 1,
+ 1, 0, 0, 0, 3, 17, 3, 17,
+ 0, 0, 1, 0, 1, 1, 0, 0,
+ 0, 128, 47, 124, 47, 124, 47, 47,
+ 0, 47, 47, 47, 47, 47, 47, 47,
47, 47, 47, 47, 47, 47, 47, 47,
- 47, 47, 47, 47, 124, 0, 136, 3,
- 3, 0, 0, 50, 50, 0, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 17,
- 0, 50, 50, 0, 0, 0, 132, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1,
- 1, 0, 1, 1, 0, 1, 1, 1,
- 1, 1, 0, 1, 1, 1, 0, 1,
- 1, 1, 0, 1, 1, 1, 0, 1,
- 1, 1, 0, 1, 1, 1, 0, 1,
- 1, 1, 0, 1, 1, 1, 0, 1,
- 1, 1, 0, 1, 1, 1, 0, 1,
- 1, 1, 0, 1, 1, 1, 0, 1,
- 1, 1, 0, 0, 0, 1, 0, 1,
- 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 17, 3, 3, 0, 0, 0,
- 3, 17, 3, 0, 0, 3, 17, 3,
- 0, 0, 0, 3, 17, 3, 0, 0,
- 0, 3, 17, 3, 0, 0, 0, 3,
- 17, 3, 0, 0, 0, 3, 17, 3,
- 0, 0, 0, 3, 17, 3, 0, 0,
- 0, 0, 17, 0, 17, 0, 17, 0,
- 17, 0, 17, 0, 17, 0, 17, 0,
- 0, 0, 17, 5, 5, 5, 5, 7,
- 7, 7, 7, 9, 59, 59, 59, 9,
- 59, 59, 59, 9, 59, 59, 59, 9,
- 59, 59, 59, 9, 59, 59, 59, 11,
- 62, 62, 62, 11, 62, 62, 62, 11,
- 62, 62, 62, 11, 62, 62, 62, 11,
- 62, 62, 62, 0, 1, 0, 1, 1,
- 0, 1, 0, 1, 1, 0, 0, 84,
- 0, 84, 84, 92, 0, 92, 92, 0,
- 1, 1, 1, 0, 1, 1, 1, 0,
- 1, 1, 1, 0, 1, 1, 1, 0,
- 0, 0, 0, 0, 3, 17, 3, 0,
- 0, 0, 3, 17, 3, 0, 0, 0,
- 3, 17, 3, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 47, 0, 0, 0, 9, 59, 59,
+ 59, 0, 1, 1, 1, 0, 0, 0,
+ 96, 35, 92, 35, 92, 92, 35, 35,
+ 0, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 35, 35, 35, 35, 35, 35,
+ 35, 35, 0, 1, 0, 1, 1, 0,
+ 0, 0, 0, 0, 0, 65, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 0, 11, 62, 62, 11, 62,
+ 62, 62, 11, 62, 62, 62, 84, 84,
+ 0, 0, 84, 84, 11, 62, 62, 62,
+ 11, 62, 62, 62, 0, 0, 11, 62,
+ 62, 62, 11, 62, 62, 62, 11, 62,
+ 62, 62, 11, 62, 62, 62, 92, 92,
+ 0, 0, 92, 92, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 3, 17, 3, 17, 0, 3, 17,
- 3, 17, 0, 3, 17, 3, 17, 0,
- 17, 0, 17, 0, 17, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 1, 1, 1,
- 0, 1, 1, 1, 0, 1, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 3,
- 17, 3, 17, 0, 0, 9, 59, 59,
- 59, 9, 59, 59, 59, 11, 62, 62,
- 62, 11, 62, 62, 62, 0, 1, 1,
- 1, 0, 1, 1, 1, 0, 1, 1,
- 1, 0, 0, 0, 0, 0, 0, 0
+ 0, 0, 0, 0, 53, 53, 5, 5,
+ 0, 0, 20, 20, 0, 0, 0, 17,
+ 0, 0, 17, 0, 0, 0, 0, 5,
+ 5, 5, 5, 0, 0, 0, 0, 0
};
-static const int svg_path_start = 0;
-
+static const int svg_path_start = 1;
static const int svg_path_first_final = 326;
-#line 133 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+static const int svg_path_en_main = 1;
+
+#line 133 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
void Parser::parse(char const *str)
_reset();
-#line 1373 "/home/mental/trees/lib2geom/src/svg-path-parser.cpp"
+#line 1374 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.cpp"
{
cs = svg_path_start;
}
+
+#line 1379 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.cpp"
{
int _klen;
unsigned int _trans;
unsigned int _nacts;
const char *_keys;
-_resume:
- if ( cs == 1 )
+ if ( cs == 0 )
goto _out;
+_resume:
_keys = _svg_path_trans_keys + _svg_path_key_offsets[cs];
_trans = _svg_path_index_offsets[cs];
switch ( *_acts++ )
{
case 0:
-#line 145 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 145 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
start = p;
}
break;
case 1:
-#line 149 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 149 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
char const *end=p;
std::string buf(start, end);
}
break;
case 2:
-#line 156 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 156 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_push(1.0);
}
break;
case 3:
-#line 160 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 160 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_push(0.0);
}
break;
case 4:
-#line 164 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 164 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_absolute = true;
}
break;
case 5:
-#line 168 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 168 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_absolute = false;
}
break;
case 6:
-#line 172 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 172 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_moveTo(_pop_point());
}
break;
case 7:
-#line 176 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 176 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_lineTo(_pop_point());
}
break;
case 8:
-#line 180 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 180 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_lineTo(Point(_pop_coord(X), _current[Y]));
}
break;
case 9:
-#line 184 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 184 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_lineTo(Point(_current[X], _pop_coord(Y)));
}
break;
case 10:
-#line 188 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 188 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
Point p = _pop_point();
Point c1 = _pop_point();
}
break;
case 11:
-#line 195 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 195 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
Point p = _pop_point();
Point c1 = _pop_point();
}
break;
case 12:
-#line 201 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 201 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
Point p = _pop_point();
Point c = _pop_point();
}
break;
case 13:
-#line 207 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 207 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
Point p = _pop_point();
_quadTo(_quad_tangent, p);
}
break;
case 14:
-#line 212 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 212 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
Point point = _pop_point();
bool sweep = _pop_flag();
}
break;
case 15:
-#line 223 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 223 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{
_closePath();
}
break;
case 16:
-#line 360 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 360 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
{goto _out;}
break;
-#line 1566 "/home/mental/trees/lib2geom/src/svg-path-parser.cpp"
+#line 1569 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.cpp"
}
}
_again:
+ if ( cs == 0 )
+ goto _out;
p += 1;
goto _resume;
_out: {}
}
-#line 370 "/home/mental/trees/lib2geom/src/svg-path-parser.rl"
+#line 370 "/opt/shared/work/programming/eclipse/eclipse_3.3/lib2geom/src/svg-path-parser.rl"
if ( cs < svg_path_first_final ) {