Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/DeclarationNode.cc	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -230,5 +230,5 @@
 	DeclarationNode *newnode = new DeclarationNode;
 	newnode->name = assign_strptr( name );
-	newnode->enumeratorValue = constant;
+	newnode->enumeratorValue.reset( constant );
 	typedefTable.addToEnclosingScope( newnode->name, TypedefTable::ID );
 	return newnode;
Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/ExpressionNode.cc	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -191,5 +191,5 @@
 
 Expression *build_cast( DeclarationNode *decl_node, ExpressionNode *expr_node ) {
-	Type *targetType = decl_node->buildType();
+	Type *targetType = maybeMoveBuildType( decl_node );
 	if ( dynamic_cast< VoidType * >( targetType ) ) {
 		delete targetType;
@@ -221,7 +221,5 @@
 }
 Expression *build_sizeOftype( DeclarationNode *decl_node ) {
-	Expression* ret = new SizeofExpr( decl_node->buildType() );
-	delete decl_node;
-	return ret;
+	return new SizeofExpr( maybeMoveBuildType( decl_node ) );
 }
 Expression *build_alignOfexpr( ExpressionNode *expr_node ) {
@@ -229,9 +227,8 @@
 }
 Expression *build_alignOftype( DeclarationNode *decl_node ) {
-	return new AlignofExpr( decl_node->buildType() );
+	return new AlignofExpr( maybeMoveBuildType( decl_node) );
 }
 Expression *build_offsetOf( DeclarationNode *decl_node, NameExpr *member ) {
-	Expression* ret = new UntypedOffsetofExpr( decl_node->buildType(), member->get_name() );
-	delete decl_node;
+	Expression* ret = new UntypedOffsetofExpr( maybeMoveBuildType( decl_node ), member->get_name() );
 	delete member;
 	return ret;
@@ -277,5 +274,5 @@
 }
 Expression *build_attrtype( NameExpr *var, DeclarationNode * decl_node ) {
-	return new AttrExpr( var, decl_node->buildType() );
+	return new AttrExpr( var, maybeMoveBuildType( decl_node ) );
 }
 
@@ -304,5 +301,5 @@
 }
 Expression *build_typevalue( DeclarationNode *decl ) {
-	return new TypeExpr( decl->buildType() );
+	return new TypeExpr( maybeMoveBuildType( decl ) );
 }
 
Index: src/Parser/InitializerNode.cc
===================================================================
--- src/Parser/InitializerNode.cc	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/InitializerNode.cc	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -45,4 +45,6 @@
 InitializerNode::~InitializerNode() {
 	delete expr;
+	delete designator;
+	delete kids;
 }
 
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/ParseNode.h	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -280,5 +280,6 @@
 	LinkageSpec::Spec get_linkage() const { return linkage; }
 	DeclarationNode *extractAggregate() const;
-	ExpressionNode *get_enumeratorValue() const { return enumeratorValue; }
+	bool has_enumeratorValue() const { return (bool)enumeratorValue; }
+	ExpressionNode *consume_enumeratorValue() const { return const_cast<DeclarationNode*>(this)->enumeratorValue.release(); }
 
 	bool get_extension() const { return extension; }
@@ -295,5 +296,5 @@
 	std::list< std::string > attributes;
 	ExpressionNode *bitfieldWidth;
-	ExpressionNode *enumeratorValue;
+	std::unique_ptr<ExpressionNode> enumeratorValue;
 	InitializerNode *initializer;
 	bool hasEllipsis;
@@ -306,4 +307,10 @@
 
 Type *buildType( TypeData *type );
+
+static inline Type * maybeMoveBuildType( const DeclarationNode *orig ) {
+	Type* ret = orig ? orig->buildType() : nullptr;
+	delete orig;
+	return ret;
+}
 
 //##############################################################################
Index: src/Parser/StatementNode.cc
===================================================================
--- src/Parser/StatementNode.cc	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/StatementNode.cc	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -54,6 +54,5 @@
 	// find end of list and maintain previous pointer
 	for ( StatementNode * curr = prev; curr != nullptr; curr = (StatementNode *)curr->get_next() ) {
-		StatementNode *node = dynamic_cast< StatementNode * >(curr);
-		assert( node );
+		StatementNode *node = safe_dynamic_cast< StatementNode * >(curr);
 		assert( dynamic_cast< CaseStmt * >(node->stmt.get()) );
 		prev = curr;
@@ -166,6 +165,5 @@
 	std::list< Statement * > branches;
 	buildMoveList< Statement, StatementNode >( catch_stmt, branches );
-	CompoundStmt *tryBlock = dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >(try_stmt));
-	assert( tryBlock );
+	CompoundStmt *tryBlock = safe_dynamic_cast< CompoundStmt * >(maybeMoveBuild< Statement >(try_stmt));
 	FinallyStmt *finallyBlock = dynamic_cast< FinallyStmt * >(maybeMoveBuild< Statement >(finally_stmt) );
 	return new TryStmt( noLabels, tryBlock, branches, finallyBlock );
Index: src/Parser/TypeData.cc
===================================================================
--- src/Parser/TypeData.cc	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/TypeData.cc	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -909,7 +909,7 @@
 	std::list< Declaration * >::iterator members = ret->get_members().begin();
 	for ( const DeclarationNode *cur = enumeration->constants; cur != nullptr; cur = dynamic_cast< DeclarationNode * >( cur->get_next() ), ++members ) {
-		if ( cur->get_enumeratorValue() != nullptr ) {
+		if ( cur->has_enumeratorValue() ) {
 			ObjectDecl *member = dynamic_cast< ObjectDecl * >(*members);
-			member->set_init( new SingleInit( maybeBuild< Expression >( cur->get_enumeratorValue() ), std::list< Expression * >() ) );
+			member->set_init( new SingleInit( maybeMoveBuild< Expression >( cur->consume_enumeratorValue() ), std::list< Expression * >() ) );
 		} // if
 	} // for
Index: src/Parser/parser.cc
===================================================================
--- src/Parser/parser.cc	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/parser.cc	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -975,5 +975,5 @@
      208,   174,    -1,   232,   228,   327,   134,   208,   174,    -1,
      318,    -1,   331,    -1,   323,    -1,   164,   122,   164,    -1,
-      -1,    64,   109,   141,   110,   312,    -1,    -1,   313,    -1,
+      -1,    64,   109,   142,   110,   312,    -1,    -1,   313,    -1,
      314,    -1,   313,   314,    -1,    39,   109,   109,   315,   110,
      110,    -1,   316,    -1,   315,   116,   316,    -1,    -1,   317,
@@ -1116,26 +1116,26 @@
     2033,  2037,  2038,  2039,  2042,  2041,  2052,  2061,  2067,  2073,
     2082,  2088,  2094,  2100,  2106,  2114,  2120,  2128,  2134,  2143,
-    2144,  2145,  2149,  2153,  2155,  2160,  2161,  2165,  2166,  2171,
-    2177,  2178,  2181,  2183,  2184,  2188,  2189,  2190,  2191,  2225,
-    2227,  2228,  2230,  2235,  2240,  2245,  2247,  2249,  2254,  2256,
-    2258,  2260,  2265,  2267,  2276,  2278,  2279,  2284,  2286,  2288,
-    2293,  2295,  2297,  2302,  2304,  2306,  2315,  2316,  2317,  2321,
-    2323,  2325,  2330,  2332,  2334,  2339,  2341,  2343,  2358,  2360,
-    2361,  2363,  2368,  2369,  2374,  2376,  2378,  2383,  2385,  2387,
-    2389,  2394,  2396,  2398,  2408,  2410,  2411,  2413,  2418,  2420,
-    2422,  2427,  2429,  2431,  2433,  2438,  2440,  2442,  2473,  2475,
-    2476,  2478,  2483,  2488,  2496,  2498,  2500,  2505,  2507,  2512,
-    2514,  2528,  2529,  2531,  2536,  2538,  2540,  2542,  2544,  2549,
-    2550,  2552,  2554,  2559,  2561,  2563,  2569,  2571,  2573,  2577,
-    2579,  2581,  2583,  2597,  2598,  2600,  2605,  2607,  2609,  2611,
-    2613,  2618,  2619,  2621,  2623,  2628,  2630,  2632,  2638,  2639,
-    2641,  2650,  2653,  2655,  2658,  2660,  2662,  2675,  2676,  2678,
-    2683,  2685,  2687,  2689,  2691,  2696,  2697,  2699,  2701,  2706,
-    2708,  2716,  2717,  2718,  2723,  2724,  2728,  2730,  2732,  2734,
-    2736,  2738,  2745,  2747,  2749,  2751,  2753,  2755,  2757,  2759,
-    2761,  2763,  2768,  2770,  2772,  2777,  2803,  2804,  2806,  2810,
-    2811,  2815,  2817,  2819,  2821,  2823,  2825,  2832,  2834,  2836,
-    2838,  2840,  2842,  2847,  2852,  2854,  2856,  2874,  2876,  2881,
-    2882
+    2144,  2145,  2149,  2153,  2155,  2161,  2162,  2166,  2167,  2172,
+    2178,  2179,  2182,  2184,  2185,  2190,  2191,  2192,  2193,  2227,
+    2229,  2230,  2232,  2237,  2242,  2247,  2249,  2251,  2256,  2258,
+    2260,  2262,  2267,  2269,  2278,  2280,  2281,  2286,  2288,  2290,
+    2295,  2297,  2299,  2304,  2306,  2308,  2317,  2318,  2319,  2323,
+    2325,  2327,  2332,  2334,  2336,  2341,  2343,  2345,  2360,  2362,
+    2363,  2365,  2370,  2371,  2376,  2378,  2380,  2385,  2387,  2389,
+    2391,  2396,  2398,  2400,  2410,  2412,  2413,  2415,  2420,  2422,
+    2424,  2429,  2431,  2433,  2435,  2440,  2442,  2444,  2475,  2477,
+    2478,  2480,  2485,  2490,  2498,  2500,  2502,  2507,  2509,  2514,
+    2516,  2530,  2531,  2533,  2538,  2540,  2542,  2544,  2546,  2551,
+    2552,  2554,  2556,  2561,  2563,  2565,  2571,  2573,  2575,  2579,
+    2581,  2583,  2585,  2599,  2600,  2602,  2607,  2609,  2611,  2613,
+    2615,  2620,  2621,  2623,  2625,  2630,  2632,  2634,  2640,  2641,
+    2643,  2652,  2655,  2657,  2660,  2662,  2664,  2677,  2678,  2680,
+    2685,  2687,  2689,  2691,  2693,  2698,  2699,  2701,  2703,  2708,
+    2710,  2718,  2719,  2720,  2725,  2726,  2730,  2732,  2734,  2736,
+    2738,  2740,  2747,  2749,  2751,  2753,  2755,  2757,  2759,  2761,
+    2763,  2765,  2770,  2772,  2774,  2779,  2805,  2806,  2808,  2812,
+    2813,  2817,  2819,  2821,  2823,  2825,  2827,  2834,  2836,  2838,
+    2840,  2842,  2844,  2849,  2854,  2856,  2858,  2876,  2878,  2883,
+    2884
 };
 #endif
@@ -1633,163 +1633,163 @@
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -1390
+#define YYPACT_NINF -1282
 static const yytype_int16 yypact[] =
 {
-    7429,  6461, -1390,    -8, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390,   -23, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390, -1390, -1390, -1390,    91,    91,    91,  1566,
-     744,    60,  7661,   126, -1390, -1390, -1390, -1390, -1390,   146,
-   -1390, -1390, -1390,   775,   200, -1390, -1390, -1390, -1390,  5932,
-   -1390, -1390, -1390, -1390,   110,   203, -1390,  1684, -1390, -1390,
-   -1390, -1390,   214,  2010,   360,   114,  7777, -1390, -1390,  9536,
-    1247, -1390, -1390,  1362,   444,  2238,   717,   552,  1362,  1870,
-   -1390, -1390,   837,   759, -1390,  1362,  1917, -1390,   226, -1390,
-     415,   453, -1390, -1390, -1390, -1390,   349,   203,    91, -1390,
-      91, -1390, -1390, -1390, -1390,  2963,  1684, -1390, -1390,  1684,
-   -1390,   342, -1390,  8264, -1390, -1390,  2329,  9075, -1390,  1671,
-    1671,  1671, -1390, -1390, -1390,    91, -1390, -1390, -1390,   422,
-     442,   463, -1390, -1390, -1390,   475, -1390, -1390, -1390, -1390,
-   -1390,   487,   492, -1390, -1390,    41,  9044,  2498,   571,   409,
-     496,   499,   523,   533,   543,  5546,  6949,   548,   579, -1390,
-    9574, -1390, -1390, -1390, -1390,   586, -1390,   116,  4885,  4885,
-   -1390,   602,   204, -1390, -1390, -1390, -1390,   626,   243,   344,
-     351,    91,   531, -1390, -1390,  2010,  3286,   695, -1390,    42,
-   -1390,    91,    91,   203, -1390, -1390,    65, -1390,    91,    91,
-   -1390,  3459,   673,   690,  1671,  6742, -1390, -1390,   702,  5932,
-   -1390, -1390,  1362, -1390, -1390, -1390,   203, -1390,  1684,   110,
-   -1390,  8115, -1390,  1671,  1671,  1671,   203, -1390,  1566, -1390,
-    4853, -1390, -1390,   703,  1671, -1390,  1671, -1390,   146,  9044,
-   -1390,   726, -1390,   744,   749,  1671, -1390,  1566,   724,   743,
-   -1390,  7661,   590, -1390, -1390, -1390,  9503, -1390, -1390,  5769,
-   -1390,   695,   158, 10287,  9075,  2329,  3459, -1390,    80, -1390,
-   -1390,  8264,  1684,   765,  7808, -1390, -1390,   362, -1390, 10539,
-     797,   846,  3526,   825,  3896,  4720, -1390,   843, -1390, -1390,
-   -1390, -1390, 10420, 10420,  8818,   845, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390,   883, -1390,  1119,  1947,  9157,  3896, -1390,
-     619,   651,   614,   309,   714,   823,   850,   853,   891,   100,
-   -1390, -1390,   866,   558, -1390,   120, -1390, -1390,  2498, -1390,
-   -1390,   443,   892, -1390,   450,   892,   895,   146, -1390, -1390,
-     900,  2963, -1390,   898,   901,  9270, -1390, -1390,  1091,  1646,
-    8533,  6742,  1362, -1390,  1362,  1671,  1671, -1390, -1390, -1390,
-   -1390, -1390, -1390,  1671,  2963,  1684, -1390, -1390,  9188,  1515,
-   -1390,  4463, -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,
-    6164,  3896, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390, -1390, -1390, -1390,  2329, -1390,   814,   908,
-     913,   916,   859,   918,   921,   922,  3286, -1390, -1390,   927,
-     110,   905, -1390, -1390,   926, -1390, -1390, -1390,  9503, -1390,
-   -1390, -1390, -1390, -1390,  3459, -1390,  9044,  9044, -1390,  1671,
-    2329,  6861,  1684,  8606, -1390, -1390, -1390, -1390,  9503,   158,
-   -1390, -1390,  1362,   203, -1390, -1390,  9503, -1390,  5584, -1390,
-   -1390,  1671,  1671,   300,  4617,   934,   933,   925,   950,  1671,
-   -1390, -1390, -1390, -1390,  9803, -1390,   408,  6623, -1390,   203,
-     965, -1390,  2329, 10621, 10344, -1390, -1390, -1390, -1390,   932,
-    3459, -1390,  8679,   695,  7545, -1390, -1390, -1390,   907,   412,
-     866,   744,  7808,   994,  8264, -1390,  7808, -1390, -1390, -1390,
-   -1390,   554, -1390,   953,   846,   236,  8818, -1390,  9301, -1390,
-   -1390,  8818, -1390,  8931,  8818, -1390, -1390,   969, -1390,   637,
-     972,   583,   973, -1390, -1390,  9650,  6592, -1390,   268, -1390,
-   -1390, 10287, -1390,   318, 10287, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390, -1390, -1390, -1390, 10287, -1390, -1390,  3896,
+    7429,  6461, -1282,    36, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282,    83, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282, -1282, -1282, -1282,   131,   131,   131,  1844,
+     994,   124,  7661,   230, -1282, -1282, -1282, -1282, -1282,   175,
+   -1282, -1282, -1282,   965,   193, -1282, -1282, -1282, -1282,  5932,
+   -1282, -1282, -1282, -1282,   122,   216, -1282,  1880, -1282, -1282,
+   -1282, -1282,   251,  1298,   387,    61,  7777, -1282, -1282,  9536,
+    1247, -1282, -1282,   557,   425,  3682,   886,   409,   557,  1203,
+   -1282, -1282,   744,   941, -1282,   557,  1708, -1282,   342, -1282,
+     478,   483, -1282, -1282, -1282, -1282,   384,   216,   131, -1282,
+     131, -1282, -1282, -1282, -1282,  2963,  1880, -1282, -1282,  1880,
+   -1282,   381, -1282,  8264, -1282, -1282,  1830,  9075, -1282,   713,
+     713,   713, -1282, -1282, -1282,   131, -1282, -1282, -1282,   410,
+     433,   443, -1282, -1282, -1282,   470, -1282, -1282, -1282, -1282,
+   -1282,   487,   492, -1282, -1282,    90,  9044,  2201,   567,   421,
+     477,   513,   520,   554,   575,  5546,  6949,   504,   495, -1282,
+    9574, -1282, -1282, -1282, -1282,   558, -1282,   116,  4885,  4885,
+   -1282,   577,   253, -1282, -1282, -1282, -1282,   613,   284,   302,
+     335,   131,   616, -1282, -1282,  1298,  2031,   692, -1282,    65,
+   -1282,   131,   131,   216, -1282, -1282,   103, -1282,   131,   131,
+   -1282,  3459,   673,   678,   713,  6742, -1282, -1282,   702,  5932,
+   -1282, -1282,   557, -1282, -1282, -1282,   216, -1282,  1880,   122,
+   -1282,  8115, -1282,   713,   713,   713,   216, -1282,  1844, -1282,
+    4853, -1282, -1282,   627,   713, -1282,   713, -1282,   175,  9044,
+   -1282,   738, -1282,   994,   742,   713, -1282,  1844,   706,   717,
+   -1282,  7661,   598, -1282, -1282, -1282,  9503, -1282, -1282,  5769,
+   -1282,   692,    43, 10287,  9075,  1830,  3459, -1282,   197, -1282,
+   -1282,  8264,  1880,   745,  7808, -1282, -1282,   441, -1282, 10539,
+     754,   784,  3526,   766,  3896,  4720, -1282,   770, -1282, -1282,
+   -1282, -1282, 10420, 10420,  8818,   772, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282,   805, -1282,  1317,  2104,  9157,  3896, -1282,
+     619,   651,   733,   206,   860,   791,   775,   785,   823,   -65,
+   -1282, -1282,   794,   596, -1282,   337, -1282, -1282,  2201, -1282,
+   -1282,   290,   810, -1282,   298,   810,   819,   175, -1282, -1282,
+     836,  2963, -1282,   844,   858,  9270, -1282, -1282,  1515,  1616,
+    8533,  6742,   557, -1282,   557,   713,   713, -1282, -1282, -1282,
+   -1282, -1282, -1282,   713,  2963,  1880, -1282, -1282,  9188,  1765,
+   -1282,  4463, -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,
+    6164,  3896, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282, -1282, -1282, -1282,  1830, -1282,   592,   881,
+     887,   907,   977,   913,   918,   926,  2031, -1282, -1282,   917,
+     122,   952, -1282, -1282,   968, -1282, -1282, -1282,  9503, -1282,
+   -1282, -1282, -1282, -1282,  3459, -1282,  9044,  9044, -1282,   713,
+    1830,  6861,  1880,  8606, -1282, -1282, -1282, -1282,  9503,    43,
+   -1282, -1282,   557,   216, -1282, -1282,  9503, -1282,  5584, -1282,
+   -1282,   713,   713,   429,  4617,   967,   975,   972,   982,   713,
+   -1282, -1282, -1282, -1282,  9803, -1282,   430,  6623, -1282,   216,
+     991, -1282,  1830, 10621, 10344, -1282, -1282, -1282, -1282,   984,
+    3459, -1282,  8679,   692,  7545, -1282, -1282, -1282,  1025,   534,
+     794,   994,  7808,  1044,  8264, -1282,  7808, -1282, -1282, -1282,
+   -1282,   539, -1282,   997,   784,    70,  8818, -1282,  9301, -1282,
+   -1282,  8818, -1282,  8931,  8818, -1282, -1282,   999, -1282,   564,
+    1000,   689,  1003, -1282, -1282,  9650,  6592, -1282,   291, -1282,
+   -1282, 10287, -1282,   331, 10287, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282, -1282, -1282, -1282, 10287, -1282, -1282,  3896,
     3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,  3896,
-    3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1390,
-     558,  1665, -1390, -1390,    91,    91, -1390, -1390,  9044, -1390,
-   -1390,   926,   590, -1390,   926, 10363, -1390, -1390, -1390,  5001,
-    6592,   974,   975, -1390,  9075, -1390, -1390,   586, -1390,   976,
-     286,   979,  1959,    99,   866, -1390,    91,    91,   866,   122,
-   -1390,    91,    91,   926, -1390, -1390,    91,    91, -1390,   892,
-    9421,  1684, 10766,   260,   339,  9421, -1390,  5769, -1390,   866,
-   -1390,  2963, -1390,   183,  8230,  8230,  8230,  1684, -1390, 10173,
-     963,   903,   538,   964,   967, -1390,   985,  4885,   427, -1390,
-    1073,  1684,  8230,   590,  2329,   590,   695,   727,   892, -1390,
-   -1390,   771,   892, -1390, -1390, -1390,   846, -1390,   892,   203,
-    9803, -1390,   647,   995,   650,   996, -1390,   997,   203, -1390,
-   -1390,  9503,   203,   998,  9301,   999, -1390,  1616, -1390,   384,
-     407,   744, -1390,   744,  1002,  3896, -1390,   744, 10766, -1390,
-   -1390,  1000, -1390, -1390, -1390,   590, -1390, 10694,   901, -1390,
-    8230,   596,  8533, -1390, -1390,   586,  1003,  1004,   907,  2842,
-   -1390, -1390,  7808, -1390, -1390,  1007, -1390, -1390,  1018, -1390,
-    1007,  1019, 10539, 10287,   983,  1009,    88,  1022,  1012,  1023,
-    1025, -1390,  1026,  1032,  9688,  6711, -1390, 10287, -1390,   583,
-    1835, -1390, -1390, -1390,    91,    91, 10230, 10287,  1027, -1390,
-   -1390,   657, -1390, 10287, -1390, -1390,   706, -1390, -1390, -1390,
-   -1390,   619,   619,   651,   651,   614,   614,   614,   614,   309,
-     309,   714,   823,   850,   853,   891,  3896,   237, -1390,  9803,
-    1035,  1038,  1041,  1665, -1390, -1390, -1390, -1390, -1390,  9803,
-     664,  8230, -1390,  2963, -1390,  7068,  9383, -1390,  4463,  6949,
-   -1390, -1390,   286,  9803,   944,  1045,  1046,  1048,  1049,  1050,
-    1052,  1054, -1390,  3725,  1959, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390,   926, -1390, -1390, -1390,   866, -1390, -1390, -1390,
-   -1390, -1390, -1390, -1390, -1390,  1060, -1390,  1061,  1068, -1390,
-   -1390,   110,  1027, 10173, -1390, -1390, -1390,  6164,  1064, -1390,
-   -1390, -1390, -1390,   744,  6295,  1153, -1390, -1390, -1390, -1390,
-    1053,   110, -1390, -1390,   926, -1390, -1390,   926,  1076,   926,
-   -1390, -1390, -1390, -1390, -1390, -1390,  9612, -1390,   203, -1390,
-   -1390,   437,   460,  9188,  7187,  1990,  3896,  3131, -1390, -1390,
-    1063,    87,  1063, -1390,   744, -1390,    91, -1390, -1390,  8451,
-     925, -1390, -1390, -1390,   933,  1080,  1067, -1390, -1390,  1084,
-    1097, -1390,   596,  1850, -1390,   502, -1390,  2842,   866, -1390,
-    1088,  7808,  9721,  9044,  1100, -1390, -1390,  1096,  1104,  1085,
-   -1390,  3896,  1107,   250,  1102, -1390,  1105,   590,  1105, -1390,
-   -1390,  1105,  1108, -1390,  1111,  1112,  1114,  1835, -1390, -1390,
-   -1390,  6164, -1390, -1390, -1390, -1390,  1122, 10287,  1115,   590,
-   -1390, 10287, -1390,   590, -1390, -1390, 10287, -1390,   776,   892,
-   -1390, -1390, -1390, -1390, -1390, -1390, -1390,   903,   901,  9270,
-   -1390, -1390,  7306,  1125, -1390,   791,   892, -1390,   804,   829,
-     892, -1390,  1671,  4154, -1390, -1390, -1390,  9803,  9803, -1390,
-    8606,  8606, -1390,  1126,  1127,  1135,  1137, -1390,  1146,   615,
-     233,  1027, -1390,   590, -1390,  4885, -1390, 10287,   491, -1390,
-    6430,  1140,  1150, 10116,  1152,  1157,    46,    55,   198, 10287,
-    1158,   203, 10287, 10287,  1132,  1156,   335,  1138, -1390, -1390,
-   -1390,  1161, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390,   744,  1172, 10287, -1390,  9803,  9803,    91,  1174, -1390,
-    8962, -1390, -1390,   742, -1390,  3131, -1390, -1390, -1390, -1390,
-    1616, -1390, -1390,  1175, -1390, -1390, -1390, -1390,  1177,  1850,
-   -1390, -1390,  1143, -1390,  1007, -1390, -1390,  2329,  1176, -1390,
-   -1390, -1390,   669,  1183, -1390,    88,  1180,  3896,  1168,    88,
-      88,  1192,  9650,   836,   892, -1390, -1390,   985, 10287,  1193,
-    1122,   467,   193,  1188, -1390, -1390,  1200,  1188, -1390, -1390,
-    1207, -1390, -1390,   926,  1209,  1213,  6830,  1212,  1215,  1218,
-   -1390, -1390,  1221, -1390, -1390,   926, -1390, -1390, -1390, -1390,
-     926, 10287, 10287,   901,  1225, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390, -1390, -1390, -1390, -1390,  3896,  3896,  1234,
-    1237,  1188, -1390, -1390,   744, -1390, -1390, -1390,  8042,  9721,
-   10287, 10287,  1305, 10287, -1390,  1226, -1390,  1231, -1390,  1240,
-   10287,  1241, 10287,  1001,  1242,    20,    91,  5155,  1894, -1390,
-   -1390,  6295,  1260,   500, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390,  9936, -1390,  8679,  1269, -1390, -1390,  9721,
-     512,   513, -1390,  1272,  1227,   846,  1278, -1390,   312, -1390,
-   -1390, -1390, -1390,   926,  1274, -1390, -1390,  1279,   337,   462,
-     590,  1280, -1390,  1281, -1390,  9803, -1390, -1390, -1390, -1390,
-   -1390,  1283, -1390,  9803,  9803,  9803, -1390, -1390,  1285, -1390,
-    1286,  1290,  1292,   640,  8303,  8418, -1390, -1390,   474, -1390,
-    1291,  1295, -1390,  8752,   682,   684,  1299,   686,  6096, -1390,
-   -1390, -1390,   534, -1390,   707,  1302,  1306,   203,  1344,   831,
-   -1390, -1390, 10287, -1390, 10116, 10287, -1390, -1390, -1390,  1304,
-    1315, -1390, -1390, -1390,  1312, -1390, -1390, -1390, -1390, -1390,
-   -1390,  9721,   846,  1319, -1390,  1297,   846,  9803, -1390, -1390,
-   -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390, -1390,  1318,  1322, -1390, -1390, -1390, -1390, -1390, -1390,
-   -1390,  1334, -1390,  1333, -1390, -1390, 10116,   104, 10287, 10116,
-   -1390,  1336, 10287, -1390,   264,  1351,  1360, -1390, -1390,  1349,
-    1350,  1328, -1390,   779, -1390, -1390, -1390,  1684,  2329,  1346,
-   -1390,   298,  3896, -1390,   716, -1390,   590,   590,  1353,  1358,
-    1364,  1366, -1390, -1390,  8606,  1363, -1390,  1438,  3896,  1352,
-   -1390, -1390, 10028, -1390,   729, -1390,  1355, 10116,  1359, -1390,
-   -1390,  1373, -1390,  1374, -1390,  1389,  1394, -1390,  1365,  9721,
-   -1390, -1390, -1390,   846,   590,  1384,  1369,  1386,  1188,  1188,
-   -1390, -1390, -1390, -1390, -1390, 10116,   235, -1390,   348, -1390,
-   -1390,  7893, -1390, -1390,  1370, 10287, -1390, 10287,  7893,   203,
-    9301,   203,  9301,  1388, -1390,  1393, -1390, -1390,  1395, -1390,
-   -1390,   756, -1390, -1390, -1390,  1392,  1397, -1390,  3896,  3896,
-   -1390, -1390,   873,   135, -1390, -1390,  1382, -1390,   873, -1390,
-   -1390,  2111,   590, -1390, -1390,   203,  9301,   203,  9301,  1410,
-    1391,   590, -1390, -1390, -1390, -1390, 10028,  1405,   873,  7969,
-   10287,  9940,  1406,   873,  1415,  2111,  3145, -1390, -1390, -1390,
-    1416, -1390, -1390, -1390, -1390,  9044, -1390, -1390, -1390,  9807,
-   -1390, 10028, -1390, -1390,  1400,  5404, -1390, -1390,  9940,   203,
-    3145,   203,  1417,  1425,   760, -1390,  9807, -1390, -1390, -1390,
-    5404, -1390, -1390, -1390,   203,   203, -1390, -1390, -1390, -1390,
-   -1390, -1390, -1390, -1390
+    3896,  3896,  3896,  3896,  3896,  3896,  3896,  5176, 10287, -1282,
+     596,  1665, -1282, -1282,   131,   131, -1282, -1282,  9044, -1282,
+   -1282,   968,   598, -1282,   968, 10363, -1282, -1282, -1282,  5001,
+    6592,  1005,  1011, -1282,  9075, -1282, -1282,   558, -1282,  1017,
+     501,  1020,  3131,   211,   794, -1282,   131,   131,   794,   231,
+   -1282,   131,   131,   968, -1282, -1282,   131,   131, -1282,   810,
+    9421,  1880, 10766,    79,   605,  9421, -1282,  5769, -1282,   794,
+   -1282,  2963, -1282,   183,  8230,  8230,  8230,  1880, -1282, 10173,
+    1006,   869,   840,  1015,  1018, -1282,  1008,  4885,   242, -1282,
+    1104,  1880,  8230,   598,  1830,   598,   692,   448,   810, -1282,
+   -1282,   771,   810, -1282, -1282, -1282,   784, -1282,   810,   216,
+    9803, -1282,   637,  1041,   647,  1049, -1282,  1023,   216, -1282,
+   -1282,  9503,   216,  1046,  9301,  1053, -1282,   759, -1282,   357,
+     422,   994, -1282,   994,  1051,  3896, -1282,   994, 10766, -1282,
+   -1282,  1057, -1282, -1282, -1282,   598, -1282, 10694,   858, -1282,
+    8230,   851,  8533, -1282, -1282,   558,  1055,  1056,  1025,  2498,
+   -1282, -1282,  7808, -1282, -1282,  1062, -1282, -1282,  1070, -1282,
+    1062,  1072, 10539, 10287,  1060,  1061,   100,  1073,  1071,  1088,
+    1090, -1282,  1094,  1095,  9688,  6711, -1282, 10287, -1282,   689,
+    1753, -1282, -1282, -1282,   131,   131, 10230, 10287,  1080, -1282,
+   -1282,   650, -1282, 10287, -1282, -1282,   885, -1282, -1282, -1282,
+   -1282,   619,   619,   651,   651,   733,   733,   733,   733,   206,
+     206,   860,   791,   775,   785,   823,  3896,    14, -1282,  9803,
+    1099,  1100,  1102,  1665, -1282, -1282, -1282, -1282, -1282,  9803,
+     657,  8230, -1282,  2963, -1282,  7068,  9383, -1282,  4463,  6949,
+   -1282, -1282,   501,  9803,  1030,  1108,  1109,  1110,  1111,  1112,
+    1114,  1117, -1282,  3725,  3131, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282,   968, -1282, -1282, -1282,   794, -1282, -1282, -1282,
+   -1282, -1282, -1282, -1282, -1282,  1118, -1282,  1120,  1122, -1282,
+   -1282,   122,  1080, 10173, -1282, -1282, -1282,  6164,  1123, -1282,
+   -1282, -1282, -1282,   994,  6295,  1204, -1282, -1282, -1282, -1282,
+    1116,   122, -1282, -1282,   968, -1282, -1282,   968,   125,   968,
+   -1282, -1282, -1282, -1282, -1282, -1282,  9612, -1282,   216, -1282,
+   -1282,   460,   467,  9188,  7187,  1951,  3896,  3145, -1282, -1282,
+    1105,    87,  1105, -1282,   994, -1282,   131, -1282, -1282,  8451,
+     972, -1282, -1282, -1282,   975,  1133,  1129, -1282, -1282,  1137,
+    1146, -1282,   851,  1870, -1282,   683, -1282,  2498,   794, -1282,
+    1149,  7808,  9721,  9044,  1151, -1282, -1282,  1150,  1152,  1138,
+   -1282,  3896,  1158,   250,  1153, -1282,  1157,   598,  1157, -1282,
+   -1282,  1157,  1160, -1282,  1166,  1169,  1172,  1753, -1282, -1282,
+   -1282,  6164, -1282, -1282, -1282, -1282,  1168, 10287,  1175,   598,
+   -1282, 10287, -1282,   598, -1282, -1282, 10287, -1282,   809,   810,
+   -1282, -1282, -1282, -1282, -1282, -1282, -1282,   869,   858,  9270,
+   -1282, -1282,  7306,  1180, -1282,   829,   810, -1282,   854,   868,
+     810, -1282,   713,  4154, -1282, -1282, -1282,  9803,  9803, -1282,
+    8606,  8606, -1282,  1176,  1181,  1183,  1189, -1282,  1179,   724,
+     -22,  1080, -1282,   598, -1282,  4885, -1282, 10287,   475, -1282,
+    6430,  1191,  1192, 10116,  1193,  1195,    21,    55,   195, 10287,
+    1196,   216, 10287, 10287,  1182,  1205,   579,  1209, -1282, -1282,
+   -1282,  1200, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282,   994,  1213, 10287, -1282,  9803,  9803,   131,  1214, -1282,
+    8962, -1282, -1282,   893, -1282,  3145, -1282, -1282, -1282, -1282,
+     759, -1282, -1282,  1218, -1282, -1282, -1282, -1282,  1227,  1870,
+   -1282, -1282,  1215, -1282,  1062, -1282, -1282,  1830,  1231, -1282,
+   -1282, -1282,   669,  1234, -1282,   100,  1237,  3896,  1220,   100,
+     100,  1248,  9650,   876,   810, -1282, -1282,  1008, 10287,  1251,
+    1168,   563,   204,  1250, -1282, -1282,  1255,  1250, -1282, -1282,
+    1258, -1282, -1282,   968,  1259,  1261,  6830,  1263,  1265,  1267,
+   -1282, -1282,  1273, -1282, -1282,   968, -1282, -1282, -1282, -1282,
+     968, 10287, 10287,   858,  1275, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282, -1282, -1282, -1282, -1282,  3896,  3896,  1278,
+    1279,  1250, -1282, -1282,   994, -1282, -1282, -1282,  8042,  9721,
+   10287, 10287,  1345, 10287, -1282,  1266, -1282,  1268, -1282,  1276,
+   10287,  1282, 10287,  1096,  1293,    49,   131,  5155,  1347, -1282,
+   -1282,  6295,  1280,   482, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282,  9936, -1282,  8679,  1287, -1282, -1282,  9721,
+     490,   497, -1282,  1290,  1281,   784,  1319, -1282,   334, -1282,
+   -1282, -1282, -1282,   968,  1323, -1282, -1282,  1327,   444,   549,
+     598,  1332, -1282,  1333, -1282,  9803, -1282, -1282, -1282, -1282,
+   -1282,  1334, -1282,  9803,  9803,  9803, -1282, -1282,  1335, -1282,
+    1337,  1341,  1343,   735,  8303,  8418, -1282, -1282,   248, -1282,
+    1351,  1356, -1282,  8752,   676,   686,  1350,   707,  6096, -1282,
+   -1282, -1282,   537, -1282,   716,  1365,  1367,   216,  1419,   951,
+   -1282, -1282, 10287, -1282, 10116, 10287, -1282, -1282, -1282,  1370,
+    1372, -1282, -1282, -1282,  1369, -1282, -1282, -1282, -1282, -1282,
+   -1282,  9721,   784,  1375, -1282,  1353,   784,  9803, -1282, -1282,
+   -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282, -1282,  1378,  1379, -1282, -1282, -1282, -1282, -1282, -1282,
+   -1282,  1377, -1282,  1382, -1282, -1282, 10116,   104, 10287, 10116,
+   -1282,  1387, 10287, -1282,   243,  1402,  1405, -1282, -1282,  1393,
+    1394,  1388, -1282,   916, -1282, -1282, -1282,  1880,  1830,  1389,
+   -1282,   246,  3896, -1282,   729, -1282,   598,   598,  1399,  1400,
+    1404,  1409, -1282, -1282,  8606,  1407, -1282,  1479,  3896,  1395,
+   -1282, -1282, 10028, -1282,   757, -1282,  1401, 10116,  1403, -1282,
+   -1282,  1416, -1282,  1417, -1282,  1436,  1440, -1282,  1408,  9721,
+   -1282, -1282, -1282,   784,   598,  1429,  1411,  1431,  1250,  1250,
+   -1282, -1282, -1282, -1282, -1282, 10116,    10, -1282,   370, -1282,
+   -1282,  7893, -1282, -1282,  1412, 10287, -1282, 10287,  7893,   216,
+    9301,   216,  9301,  1437, -1282,  1438, -1282, -1282,  1434, -1282,
+   -1282,   790, -1282, -1282, -1282,  1441,  1442, -1282,  3896,  3896,
+   -1282, -1282,   998,    93, -1282, -1282,  1424, -1282,   998, -1282,
+   -1282,  2145,   598, -1282, -1282,   216,  9301,   216,  9301,  1446,
+    1425,   598, -1282, -1282, -1282, -1282, 10028,  1443,   998,  7969,
+   10287,  9940,  1455,   998,  1463,  2145,  3286, -1282, -1282, -1282,
+    1465, -1282, -1282, -1282, -1282,  9044, -1282, -1282, -1282,  9807,
+   -1282, 10028, -1282, -1282,  1453,  5404, -1282, -1282,  9940,   216,
+    3286,   216,  1476,  1478,   831, -1282,  9807, -1282, -1282, -1282,
+    5404, -1282, -1282, -1282,   216,   216, -1282, -1282, -1282, -1282,
+   -1282, -1282, -1282, -1282
 };
 
@@ -1797,29 +1797,29 @@
 static const yytype_int16 yypgoto[] =
 {
-   -1390,  4519,  3402, -1390,   393, -1390,   353,   929,  -255, -1390,
-   -1390,   477,  -524,  -492,  -901,  -176,  4763,     0, -1390,   832,
-     410,   433,   417,   440,   977,   978,   980,   971,   981, -1390,
-    -348,  -520,  3026,  -946, -1390,  -709,   563,   620,  -590,   -87,
-   -1390,   172, -1390,   332, -1116, -1390, -1390,    79, -1390, -1281,
-   -1176,   189, -1390, -1390, -1390, -1390,     9, -1389, -1390, -1390,
-   -1390, -1390, -1390, -1390,   256, -1199,    33, -1390,  -324, -1390,
-     435,   230, -1390,   109, -1390,  -343, -1390, -1390, -1390,   490,
-    -651, -1390, -1390,     8, -1002,    97,  1423, -1390, -1390, -1390,
-    -125, -1390,    23,  1201,  -202,  1925,  4332, -1390, -1390,    52,
-     224,   459,  1086, -1390,  1865, -1390, -1390,    25,  2362, -1390,
-    2640,  1529, -1390, -1390, -1390,  -612, -1390,   878,   879,   478,
-     658,    43, -1390, -1390, -1390,   876,   655,  -464, -1390,   -94,
-     -89,   948, -1390, -1390,  -942,  -971,   -24,    78,  1010,   368,
-   -1390,  1732,   171,  -317,  -213,  -127,   605,   710, -1390,   930,
-   -1390,  3077,  1178,  -438,   863, -1390, -1390,   654, -1390,  -234,
-   -1390,   -47, -1390, -1390, -1390, -1275,   357, -1390, -1390, -1390,
-    1110, -1390,    32, -1390, -1390,  -837,  -105, -1257,  -126,  2286,
-   -1390,  2146, -1390,   865, -1390,  -146,    59,  -177,  -171,  -166,
-       7,   -40,   -28,   -27,  1230,    28,    29,    57,   -63,  -154,
-    -151,  -150,  -141,  -329,  -513,  -511,  -507,  -589,  -320,  -515,
-   -1390, -1390,  -518,  1034,  1036,  1037,  1371,  5065,  -572,  -555,
-    -549,  -540,  -441, -1390,  -497,  -722,  -721,  -701,  -608,  -309,
-    -346, -1390, -1390,   185,   133,   -15, -1390,  3702,   -45,  -629,
-      22
+   -1282,  4519,  3402, -1282,   393, -1282,   353,   929,  -255,   927,
+   -1282,   536,  -524,  -496,  -864,   -86,  4763,     0, -1282,  1012,
+     494,   506,   417,   512,  1032,  1034,  1040,  1042,  1039, -1282,
+    -348,  -520,  3026,  -967, -1282,  -684,   629,   -16,  -590,   453,
+   -1282,   172, -1282,   397, -1192, -1282, -1282,   141, -1282, -1281,
+   -1043,   247, -1282, -1282, -1282, -1282,    72, -1149, -1282, -1282,
+   -1282, -1282, -1282, -1282,   315,  -843,    50, -1282,  -384, -1282,
+     498,   288, -1282,   167, -1282,  -343, -1282, -1282, -1282,   546,
+    -651, -1282, -1282,     8, -1002,    97,  1423, -1282, -1282, -1282,
+    -125, -1282,    23,  1201,  -202,  1925,  4332, -1282, -1282,    52,
+     224,   459,  1086, -1282,  1865, -1282, -1282,    25,  2362, -1282,
+    2640,  1529, -1282, -1282, -1282,  -646, -1282,   935,   945,   535,
+     718,    78, -1282, -1282, -1282,   934,   722,  -464, -1282,   -94,
+     -89,   313, -1282, -1282,  -870,  -942,   -24,  1177,  1054,   368,
+   -1282,  1732,   548,  -317,  -213,  -127,   662,   776, -1282,   990,
+   -1282,  3077,  1178,  -438,   923, -1282, -1282,   710, -1282,  -234,
+   -1282,    99, -1282, -1282, -1282, -1240,   423, -1282, -1282, -1282,
+    1170, -1282,   -20, -1282, -1282,  -853,  -105, -1239,  -126,  2286,
+   -1282,  2146, -1282,   921, -1282,  -146,    59,  -177,  -171,  -166,
+       7,   -40,   -28,   -27,   725,     4,    28,    37,   -63,  -154,
+    -151,  -150,  -141,  -271,  -540,  -513,  -508,  -569,  -320,  -517,
+   -1282, -1282,  -518,  1092,  1093,  1097,  1371,  5065,  -582,  -555,
+    -549,  -535,  -441, -1282,  -497,  -722,  -721,  -701,  -607,  -309,
+    -346, -1282, -1282,   185,   133,   -15, -1282,  3702,   -45,  -609,
+    -238
 };
 
@@ -1831,235 +1831,235 @@
 {
       49,   113,   428,   149,   166,   453,   440,    97,   399,   114,
-     766,   267,   844,   826,   400,   150,   151,   868,   628,   401,
-     604,   740,   632,    63,   752,    76,   505,   964,   965,   609,
-     827,   402,    49,    50,   403,   404,   596,  1070,  1187,    97,
-     407,   383,   384,   147,   405,   819,  1379,   973,   966,    49,
-    1171,   820,    69,   794,   725,    63,   161,    76,   730,    96,
-     821,   410,   357,   186,   143,    50,   209,   358,   166,    49,
-     193,   152,   153,   216,   122,   669,   226,   219,  1169,  1170,
-     919,    31,  1137,  1302,    69,   818,   123,   815,   399,   816,
-     260,    96,   280,   817,   400,   678,   425,    56,   115,   401,
-     154,   327,   148,   682,    31,   113,  1204,  1205,    96,   673,
-     675,   402,  1526,   113,   403,   404,   266,   271,  1195,    31,
+     766,   267,   143,   844,   400,   150,   151,   740,   628,   401,
+     827,  1070,   632,    63,   752,    76,   505,   964,   965,   609,
+     566,   402,    49,   826,   403,   404,   596,   868,  1187,    97,
+     407,   383,   384,   147,   405,   819,   919,   152,   966,    49,
+      50,   820,    69,   794,   725,    63,   161,    76,   730,    96,
+     815,   410,   357,   186,   567,   821,   209,   358,   166,    49,
+     193,   153,   973,   216,  1177,   669,   226,   219,   604,  1171,
+     154,  1379,    50,   818,    69,  1204,  1205,   816,   399,   202,
+     260,    96,   817,  1195,   400,   678,   425,    56,   115,   401,
+    1178,   327,   148,   682,    31,   113,  1468,   409,    96,   673,
+     675,   402,  1302,   113,   403,   404,   266,   271,   122,  1137,
      407,  1443,   189,   408,   405,    96,    31,  1197,    96,    56,
-      31,   471,  1181,   106,   106,   475,   477,   144,    31,  1541,
-     342,  1439,   202,   948,  1458,   149,   307,   147,  1398,  1399,
-     281,   252,  1303,   411,   161,   113,   345,   150,   151,   720,
-     209,    31,   830,   210,   436,   106,   220,   373,   837,   142,
-     291,   859,   860,   714,   419,   923,   411,   729,  1196,  -232,
-    -232,   447,  1245,   964,   965,   186,   186,  1198,   877,   481,
-     913,   411,   203,   161,   327,   566,   742,   667,   411,   951,
-     460,   266,   106,   408,   966,   815,    96,   816,   828,    49,
-     601,   817,  1439,   152,   153,  1443,   161,   168,  1400,    96,
-    1443,   209,   409,  1069,    70,   149,   436,   173,   443,   567,
-     577,   835,   377,   601,   163,  1015,   578,   150,   151,   307,
-    1443,   169,   154,   804,   398,   189,   931,  1443,   378,   734,
-    -232,    49,  1016,  1484,  1171,   146,    70,   819,    97,   271,
-     664,   798,   166,   820,   271,   266,   266,   476,    96,   253,
-    1199,   113,   821,   161,    63,   991,    76,  1139,  1248,   472,
-      96,    76,   609,   463,    50,   853,  1187,  1512,  1080,  1514,
-     212,   656,   476,   471,   307,  1093,  1496,  1003,   163,   815,
-     598,   816,  1501,    69,  1171,   817,  1249,   307,  1398,  1399,
-      96,   596,   155,   471,   568,  1200,   596,   171,   441,   671,
-     387,   471,  1521,   571,   479,   676,   588,  1528,   147,  1177,
-     181,  1468,  1169,  1170,   664,   373,   388,   994,   898,   357,
-     110,   113,   247,   665,   358,   345,   735,   922,    56,   602,
-     620,    41,    42,   747,   111,  1178,   342,  1178,    37,   390,
-    1118,   827,    40,   201,   625,   417,   736,   986,   625,    41,
-      42,   113,   847,   830,  1070,   391,   848,   819,  1409,   759,
-    1119,   327,   327,   820,   106,  1525,  1084,    96,   437,  1186,
-     110,   844,   821,   713,   435,   812,   266,   601,   445,   556,
-     557,    41,    42,    45,    46,  1536,   186,   286,   603,   110,
-     683,   888,  1540,   373,  1423,   250,   578,   665,    41,    42,
-      41,    42,  1325,  1171,   266,   177,   307,   307,  1424,   764,
-     266,  1116,   357,   625,   558,   559,   714,   358,   985,  1187,
-     702,   472,  1326,    76,   514,   442,  1187,  -288,  1330,   327,
-     176,   849,  1434,  -516,   113,   850,   435,   996,   252,  1201,
-     392,   472,   804,    76,  1469,   189,   520,   394,   327,   472,
-    1126,    76,   266,   263,   261,    70,   393,   262,  1470,   523,
-     266,   952,   625,   395,    49,  1428,  1429,   373,   719,  1135,
-     493,    97,   163,   494,   113,  1014,   357,  1187,  1244,   176,
-     914,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
-     342,   307,   723,   307,   307,  1029,   915,    50,   704,   330,
-     869,   750,   721,   916,   705,   113,   345,  1016,   722,   229,
-     881,   -10,   230,   327,   110,   234,    69,   236,   870,   917,
-     642,   910,   703,    96,   245,    41,    42,   603,   176,   879,
-     804,  -440,   579,   914,   411,  -289,   471,   871,   922,   582,
-    1069,   411,     8,     9,    10,    11,    12,  1157,  1159,  1081,
-     571,   571,  -441,  1332,   212,   845,   916,  -120,   307,  -120,
-     598,    56,   928,  -120,   276,  -467,   439,  -467,  1126,   625,
-     345,    31,  1082,   913,   620,   714,   278,  1236,  -120,  -120,
-     602,   279,   602,   922,  -467,   465,   331,  1184,  1014,   332,
-     110,   176,   139,   140,   849,   680,  1184,   106,  1100,    34,
-     625,    41,    42,  1185,   912,   625,   831,   620,  1316,  1318,
-     834,   625,  1308,   333,   625,   625,   625,  1362,  1138,   691,
-     483,   706,   806,   334,  1317,  1319,   702,   500,  1027,   864,
-     747,   851,   625,   335,   266,   854,   713,  1276,  1277,   814,
-     371,   603,   110,   397,   731,   176,  1363,   570,  1074,   411,
-     732,   229,   176,    41,    42,    45,    46,   737,   520,   738,
-     252,   329,   739,   520,   113,   743,   520,   907,   372,  1029,
-     596,   523,   749,   523,   411,   376,   523,   212,  1360,   523,
-      45,    46,   554,   555,   472,   932,    76,   601,    70,  1112,
-     625,   933,   620,    45,    46,   357,   177,   385,   719,   719,
-     358,     2,   206,     4,     5,     6,     7,  -103,   399,   342,
-     472,  -103,    76,   629,   400,   389,   549,   633,   498,   401,
-    1034,   176,   550,   551,   113,   345,   911,   746,   703,   750,
-     750,   402,  1348,   747,   403,   404,  1349,   892,   176,   409,
-     894,   407,   176,   747,   405,   702,   747,   980,   711,   922,
-     552,   553,  1408,   981,   993,   702,   804,   814,   603,  1232,
-     705,  1373,   426,   964,   965,   578,    35,  1058,    36,   702,
-    1474,  1234,  1356,   571,  1357,  1238,  1359,  1474,   747,   427,
-     747,   625,   747,   625,   966,   999,   560,   561,   625,   345,
-    1161,   229,   602,   234,   432,   713,   110,  1364,   139,   140,
-     111,   984,   981,   747,   602,   176,  1426,    41,    42,   922,
-     922,   110,  1423,   139,   140,   450,   882,   714,   411,  1444,
-    -364,   890,    41,    42,   408,   747,   442,    37,  1522,    -3,
-     897,    40,   329,   411,   899,  1476,   461,  1477,    41,    42,
-     952,   806,  1425,  -393,   952,   952,  1490,   703,  1019,   691,
-    1546,   814,  1491,   243,   307,   462,   578,   703,  1436,   484,
-     885,   760,   411,   603,    43,  1141,   765,   411,   342,  1369,
-    1370,   703,    45,    46,  1418,   981,   625,    63,   327,    76,
-    1153,   229,   411,   113,   345,   907,   504,   907,  1182,   110,
-    1523,   139,   238,  1156,   519,   601,   714,  1398,  1399,   113,
-      41,    42,   212,   252,   329,   411,    69,   711,   291,    48,
-     112,  1168,   933,   933,   508,   465,   212,   719,  1158,   664,
-     601,   562,   113,   307,   910,  1241,   239,   411,  1494,  1436,
-    1105,   240,   513,  1087,   845,  1087,  1192,   525,   112,   112,
-    1101,    48,   771,   772,  1083,   527,   911,   750,   419,   660,
-     411,    56,    48,   775,   776,   777,   778,   563,    48,    37,
-    1323,   564,   176,    40,  1508,   565,    48,   773,   774,   846,
-      41,    42,    48,   702,   702,    48,   603,   568,    48,   345,
-     779,   780,  1227,   338,  -437,   861,   878,   106,   880,   586,
-     589,   112,   112,    -3,   176,   638,   718,   668,   657,   876,
-     625,   625,   665,   658,    45,    46,   659,   912,   661,   212,
-     176,   662,   663,  1126,   922,    48,   666,   257,    48,  1106,
-     307,   481,   329,   411,   176,    48,   672,   674,   692,   693,
-     922,   702,   702,   828,   329,   601,   695,   713,   927,  1295,
-    1296,  1297,   733,   472,   697,    76,   110,  1380,   139,   140,
-    1079,  1380,  1331,  1333,  1334,   106,    48,    41,    42,  -236,
-     113,   744,   748,   756,    48,   907,   807,   808,   811,    48,
-     907,   822,  1189,   -12,   -13,   703,   703,   866,    70,   933,
-     500,   867,   873,   726,   691,   893,   895,   266,   727,   896,
-    -414,   903,   900,   949,    48,    48,   510,   921,  -520,   936,
-     922,   922,   625,   722,  1058,   176,   519,   943,   957,   945,
-      48,   519,   956,   958,   519,   959,   960,    56,    48,   547,
-     548,   950,   961,   977,   911,   988,   345,    48,   989,   911,
-      48,   990,   213,   703,   703,  1005,  1006,   112,  1007,  1008,
-    1009,   232,  1010,    37,  1011,   174,   175,    40,  1459,   711,
-    1022,  -402,   112,   106,    41,    42,   112,   547,  -401,  1036,
-      48,   112,  1071,  1095,  1073,  1351,  1077,   787,   271,   113,
-    1094,   498,   342,   906,    48,    48,  1096,   219,  1103,  1312,
-     372,    48,   116,   213,   528,   529,   530,   113,    48,  1097,
-    1113,   307,   747,   547,  1114,  1115,  1117,  1372,  1120,   971,
-    1122,  1123,  1124,  1203,  1125,   625,   442,  1131,   531,   113,
-     532,   702,   533,   534,    63,  1151,    76,  1105,  1128,   702,
-     702,   702,  1172,  1173,   215,  1174,   213,  1175,   711,  1190,
-     159,     2,   206,     4,     5,     6,     7,    48,  1176,  1191,
-     242,  1193,  1206,    69,    70,   691,  1194,  1202,  1207,  1397,
-    1209,   493,  1405,  1421,   625,   625,    -3,    48,    48,   162,
-     228,  1534,  1214,   271,  1219,   210,   220,  1224,   307,   176,
-    1222,  1228,  1235,   194,    48,   215,   217,  1233,    48,   227,
-    1237,  1313,  1240,   702,  1250,  1246,   258,   213,    56,   643,
-    1121,   472,  1252,    76,   159,  1442,    35,  1254,    36,  1256,
-    1446,   113,   106,  1257,  1258,    48,  1106,  1259,   399,  1105,
-    1260,  1262,  1132,   703,   400,    48,  1132,  1269,   215,   401,
-    1189,   703,   703,   703,   106,   213,  1278,   323,  1467,  1279,
-     213,   402,  1286,    48,   403,   404,   339,  1322,  1289,    48,
-     407,    48,   106,  1290,   405,   499,     2,   206,     4,     5,
-       6,     7,  1291,  1293,  1301,  1307,  1507,   162,   266,  1314,
-     441,   768,   769,   770,   664,    56,  1132,  1320,  1324,  1328,
-     374,  1329,  1335,  1336,   625,  1338,   112,  1344,  1345,   215,
-    1346,    48,  1347,  1354,  1297,   703,   430,  1355,  1358,    48,
-     434,  1365,   212,    48,  1374,  1366,   162,    48,  1106,   113,
-     112,   106,   112,    57,    57,  1375,  1376,  1105,  1382,  1383,
-    1392,    35,  1535,    36,  1393,    70,   213,   215,  1535,   162,
-     323,   113,   215,   408,  -403,  1396,  1407,  1411,   113,  1535,
-     113,   444,   113,  1535,   106,    57,  1413,   112,  1415,  1416,
-    1417,  1422,   112,  1430,   472,   149,    76,   665,  1431,  1367,
-     327,   472,   434,    76,  1432,   488,  1433,   150,   151,  1349,
-    1435,  1506,  1440,  1449,  1451,  1453,   113,  1445,   113,    57,
-    1455,  1447,    57,  1189,  1462,   521,  1464,  1457,  1485,   113,
-    1189,  1463,  1475,  1487,  1492,  1506,  1506,   442,   159,  1493,
-    1489,   112,    70,   161,  1500,   307,  1106,   213,    48,  1515,
-    1520,  1527,   472,  1516,    76,  1529,  1531,  1544,   215,    48,
-    1506,    48,  1537,  1208,   213,  1545,   784,   373,    56,   781,
-    1130,   782,   587,  1306,   783,    56,   593,   785,  1495,  1547,
-      48,  1189,   106,  1410,  1368,  1239,  1384,  1478,   374,   213,
-     413,  1213,   901,   902,   479,   626,    48,   421,  1221,   630,
-    1088,   112,   339,   924,   106,  1092,  1127,  1035,   872,   348,
-      48,   106,   112,    48,   112,   938,  1315,    37,   972,   174,
-     175,    40,   800,  1102,   716,   214,    56,   946,    41,    42,
-     176,  1132,  1132,  1132,   790,     0,   791,   792,     0,   215,
-       0,     0,     0,     0,     0,     0,    48,     0,   891,     0,
-     112,  1479,   112,  1483,   376,     0,   112,   323,   323,     0,
-       0,     0,   106,     0,   112,  1482,   374,  1482,   129,   413,
-     130,   131,   132,     0,    57,     0,   214,    48,    48,    41,
-      42,   215,     0,     0,     0,   687,     0,  1511,     0,  1513,
-       0,    48,     0,     0,     0,    70,     0,     0,   116,     0,
+     747,   471,  1178,   106,   106,   475,   477,  -232,  -232,   203,
+     342,   280,    31,   948,   986,   149,   307,   147,  1398,  1399,
+    1169,  1170,   476,  1196,   161,   113,   345,   150,   151,  1439,
+     209,  1245,   830,   210,   436,   106,   220,   373,   837,  1181,
+      31,   859,   860,   714,   252,   923,   411,   729,   815,  1458,
+     735,  1303,   291,   964,   965,   186,   186,  1198,   877,   152,
+     913,   847,   123,   161,   327,   848,   742,   667,   411,   281,
+     736,   266,   106,   408,   966,   816,    96,   527,  -232,    49,
+     817,   951,   419,   153,   411,  1443,   161,   720,  1400,    96,
+    1443,   209,   154,  1069,    70,   149,   436,   173,   443,   168,
+    1439,   463,   377,   142,   163,  1077,    31,   150,   151,   307,
+    1443,   144,  1016,   804,   398,   189,   931,  1443,   378,   734,
+      31,    49,   723,   169,  1080,  1015,    70,   819,    97,   271,
+     664,   798,   166,   820,   271,   266,   266,  1199,    96,   253,
+      31,   113,   815,   161,    63,   991,    76,   821,   519,   472,
+      96,    76,   609,  1171,   146,   853,  1187,  1398,  1399,  1248,
+     212,   656,   476,   471,   307,  1003,   556,   557,   163,   816,
+     598,    50,  1139,    69,   817,   155,   481,   307,   411,  1525,
+      96,   596,  1200,   471,   568,  1093,   596,  1249,   441,   671,
+     828,   471,   601,   571,   479,   676,   588,   447,   147,  1536,
+     171,   558,   559,  1171,   664,   373,  1540,   994,   898,   357,
+     835,   113,   601,   665,   358,   345,   460,   922,    56,   602,
+     620,   827,  1526,   870,   111,   642,   342,  1409,  1070,  -467,
+    1118,  -467,  1423,   110,   625,   417,   831,   181,   625,   387,
+     834,   113,   871,   830,    41,    42,  1424,   819,  -467,  1541,
+    1119,   327,   327,   820,   106,   388,  1084,    96,   437,  1186,
+     201,   851,   844,   713,   435,   854,   266,   821,   445,   579,
+     390,   411,   759,   110,  1169,  1170,   186,   582,   603,   411,
+     672,   674,  -289,   373,    41,    42,   391,   665,   392,     8,
+       9,    10,    11,    12,   266,   177,   307,   307,  -288,  1496,
+     266,  1116,   357,   625,   393,  1501,   714,   358,   985,  1187,
+     702,   472,   764,    76,  1325,   442,  1187,   577,    31,   327,
+     176,   394,  1171,   578,   113,  1521,   435,   996,   247,  1201,
+    1528,   472,   804,    76,  1326,   189,   520,   395,   327,   472,
+    1126,    76,   266,   914,   261,    70,    34,   262,   250,   523,
+     266,   952,   625,  -516,    49,  1135,  1469,   373,   719,   915,
+     519,    97,   163,   252,   113,   519,   357,  1187,   519,   176,
+    1470,   358,   176,  1104,   609,   711,   307,    63,   113,    76,
+     342,   307,   263,   307,   307,  1029,   110,  1016,  1244,   -10,
+     869,   750,  1428,  1429,  1434,   113,   345,    41,    42,   229,
+     881,   330,   230,   327,    50,   234,    69,   236,   916,   683,
+     704,   910,  -440,    96,   245,   578,   705,   603,   176,   879,
+     804,   787,  -441,  1014,   917,  1330,   471,   882,   922,   411,
+    1069,     2,   206,     4,     5,     6,     7,  1157,  1159,   493,
+     571,   571,   494,    37,   212,   845,   914,    40,   307,   276,
+     598,    56,   928,   916,    41,    42,   439,   331,  1126,   625,
+     345,  1184,  1081,   913,   620,   714,   278,  1236,  1184,  1082,
+     602,   279,   602,   922,   372,   465,  1316,  1185,  1019,  1484,
+     812,   176,   601,  1318,  1308,   680,   371,   106,    45,    46,
+     625,   110,  1317,   332,   912,   625,    35,   620,    36,  1319,
+     333,   625,    41,    42,   625,   625,   625,  1362,  1138,   691,
+     483,   706,   806,  1512,   721,  1514,   702,   500,  1027,   731,
+     722,   286,   625,   747,   266,   732,   713,  1276,  1277,   814,
+    1332,   603,    41,    42,   334,   176,  1014,   376,  1074,  1363,
+     110,   229,   176,  -120,   746,  -120,   252,   329,   520,  -120,
+     747,    41,    42,   520,   113,   335,   520,   907,   514,  1029,
+     596,   523,   385,   523,  -120,  -120,   523,   212,  1360,   523,
+    1101,   252,   329,   411,   472,   570,    76,   411,    70,  1112,
+     625,   933,   620,    45,    46,   357,   177,   849,   719,   719,
+     358,   850,   389,     8,     9,    10,    11,    12,   399,   342,
+     472,  1234,    76,   629,   400,  1238,   549,   633,   498,   401,
+    1034,   176,   550,   551,   113,   345,   911,   892,   397,   750,
+     750,   402,    31,   747,   403,   404,   409,   894,   176,   450,
+     980,   407,   176,   747,   405,   702,   981,   993,   711,   922,
+     552,   553,  1408,   705,   162,   702,   804,   814,   603,  1232,
+      34,  1373,   426,   964,   965,   578,  1356,   427,   194,   702,
+    1474,   217,   747,   571,   227,   849,  1357,  1474,   749,  1100,
+     411,   625,   747,   625,   966,   999,    45,    46,   625,   345,
+    1161,   229,   602,   234,   432,   713,   110,  1359,   139,   238,
+     111,   554,   555,   747,   602,   176,  1364,    41,    42,   922,
+     922,    37,   747,   183,   184,    40,  -103,   714,   461,  1426,
+    -103,   890,    41,    42,   408,  1423,   442,  1348,  1522,   462,
+     897,  1349,  -364,   239,   899,  1476,  -393,  1477,   240,   484,
+     952,   806,  1425,   504,   952,   952,   291,  1444,   905,   691,
+     411,   814,   162,   747,   307,   508,    45,    46,  1436,   513,
+     885,   760,   411,   603,   525,   374,   765,   527,   342,   906,
+       2,   206,     4,     5,     6,     7,   625,    63,   327,    76,
+    1490,   229,   563,   113,   345,   907,  1491,   907,  1182,   562,
+    1523,   162,   110,   564,   139,   140,   714,   565,  1141,   113,
+     411,   338,   212,    41,    42,   568,    69,   711,  -437,    48,
+     112,  1168,   933,   933,   162,   465,   212,   719,  1153,   664,
+     411,  1546,   113,   307,   910,   586,   444,   578,  1494,  1436,
+    1105,   864,   560,   561,   845,    35,   589,    36,   112,   112,
+     932,    48,   601,  1156,  1083,   601,   911,   750,    45,    46,
+      -3,    56,    48,   775,   776,   777,   778,  1158,    48,   601,
+    1323,   638,   176,   891,  1508,  1241,    48,   411,  1087,   846,
+    1087,   657,    48,   702,   702,    48,   603,   658,    48,   345,
+     984,   981,  1227,   329,   411,   861,   878,   106,   880,  1369,
+    1370,   112,   112,   110,   176,   139,   140,   659,    -3,   876,
+     625,   625,   665,   661,    41,    42,   666,   912,   662,   212,
+     176,  1418,   981,  1126,   922,    48,   663,    37,    48,  1106,
+     307,    40,  1398,  1399,   176,    48,   771,   772,    41,    42,
+     922,   702,   702,   374,   737,   243,   738,   713,   927,   739,
+     773,   774,   743,   472,   668,    76,   110,  1380,   139,   140,
+    1079,  1380,   779,   780,    43,   106,    48,    41,    42,   257,
+     113,   692,    45,    46,    48,   907,   419,   660,   411,    48,
+     907,   693,  1189,   481,   329,   411,   697,    37,    70,   933,
+     500,    40,   987,   695,   691,  -236,   733,   266,    41,    42,
+     748,   744,   992,   756,    48,    48,   110,   807,   139,   140,
+     922,   922,   625,   808,   867,   176,  1004,    41,    42,   811,
+      48,   374,   822,   873,   718,   896,   -12,    56,    48,   828,
+     329,   601,    45,    46,   911,   -13,   345,    48,   866,   911,
+      48,   893,   213,   726,  1295,  1296,  1297,   112,   727,   895,
+     900,   232,  1331,  1333,  1334,   903,   921,  -414,  1459,   711,
+    -520,   936,   112,   106,  1284,  1285,   112,  1287,   722,   943,
+      48,   112,   945,   956,  1292,  1351,  1294,   957,   271,   113,
+     949,   498,   342,   950,    48,    48,   977,   219,   958,  1312,
+     959,    48,   116,   213,   960,   961,  -290,   113,    48,   988,
+     989,   307,   990,     8,     9,    10,    11,    12,  1005,  1006,
+    1007,  1008,  1009,  1203,  1010,   625,   442,  1011,  1022,   113,
+    -402,   702,  -401,  1071,    63,   906,    76,  1105,  1036,   702,
+     702,   702,    31,  1094,   215,  1095,   213,  1073,   711,  1096,
+     159,     2,   206,     4,     5,     6,     7,    48,  1097,  1103,
+     242,  1113,  1114,    69,    70,   691,   747,  1117,  1115,  1120,
+      34,   971,  1122,  1421,   625,   625,  1123,    48,    48,  1124,
+     228,  1534,  1125,   271,  1128,   210,   220,  1131,   307,   176,
+    1151,  1176,  1172,  1174,    48,   215,   510,  1173,    48,  1175,
+    1190,  1191,  1193,   702,  1194,  1202,   258,   213,    56,   643,
+    1121,   472,  1206,    76,   159,    -3,    35,  1207,    36,   547,
+     548,   113,   106,  1214,  1219,    48,  1106,  1058,   399,  1105,
+    1166,  1167,  1132,  1222,   400,    48,  1132,  1224,   215,   401,
+    1189,  1209,  1404,   493,   106,   213,  1228,   323,  1233,  1235,
+     213,   402,  1237,    48,   403,   404,   339,   547,  1240,    48,
+     407,    48,   106,  1246,   405,   499,  1250,  1252,  1254,  1256,
+      37,  1257,   183,   184,    40,  1258,  1507,  1259,   266,  1260,
+     441,    41,    42,  1262,   664,    56,  1132,  1269,  1216,  1217,
+    1278,  1279,  1286,   547,   625,  1307,   112,  1314,  1289,   215,
+    1290,    48,   528,   529,   530,  1320,   430,   185,  1291,    48,
+     434,  1322,   212,    48,  1293,    45,    46,    48,  1106,   113,
+     112,   106,   112,    57,    57,  1301,   531,  1105,   532,  1324,
+     533,   534,   528,   529,   530,    70,   213,   215,  1328,  1329,
+     323,   113,   215,   408,  1335,  1336,  1338,  1344,   113,  1345,
+     113,  1346,   113,  1347,   106,    57,   531,   112,   532,  1358,
+     533,  1305,   112,  1354,   472,   149,    76,   665,  1355,  1367,
+     327,   472,   434,    76,  1365,   488,  1366,   150,   151,  1297,
+    1374,  1506,  1375,  1376,  1382,  1383,   113,  -403,   113,    57,
+    1392,  1393,    57,  1189,  1396,   521,  1192,  1407,  1411,   113,
+    1189,  1413,  1415,  1416,  1422,  1506,  1506,   442,   159,  1430,
+    1431,   112,    70,   161,  1432,   307,  1106,   213,    48,  1433,
+    1417,  1435,   472,  1349,    76,  1440,  1449,  1451,   215,    48,
+    1506,    48,  1453,  1445,   213,  1447,  1455,   373,    56,  1462,
+    1457,  1464,   587,  1463,  1475,    56,   593,  1485,  1487,  1489,
+      48,  1189,   106,  1492,  1493,  1515,  1500,  1516,  1520,   213,
+     413,   768,   769,   770,   479,   626,    48,   421,  1337,   630,
+    1527,   112,   339,  1529,   106,  1531,  1339,  1340,  1341,   348,
+      48,   106,   112,    48,   112,  1537,  1544,    37,  1545,   174,
+     175,    40,  1208,   888,   781,   214,    56,   782,    41,    42,
+     176,  1132,  1132,  1132,   783,   785,  1130,   784,  1306,   215,
+    1495,  1410,  1547,  1368,  1384,  1478,    48,  1213,  1239,   901,
+     112,  1479,   112,  1483,   372,  1221,   112,   323,   323,   902,
+    1088,   924,   106,  1127,   112,  1482,   800,  1482,   872,   413,
+    1385,   703,  1092,  1035,    57,   938,   214,    48,    48,  1102,
+       0,   215,  1315,   946,   716,   687,     0,  1511,     0,  1513,
+       0,    48,   790,   791,  1058,    70,     0,   792,   116,     0,
        0,  1482,    70,  1482,    57,     8,     9,    10,    11,    12,
-     213,     8,     9,    10,    11,    12,     0,     0,    37,   214,
+     213,     0,     0,     0,     0,     0,     0,     0,    37,   214,
      183,   184,    40,   488,   576,   323,     0,   488,     0,    41,
       42,  1542,   580,  1543,    31,   583,     0,   521,   213,   521,
-      31,     0,   521,   213,   323,   521,  1550,  1551,    37,     0,
-     183,   184,    40,    70,     0,   905,   339,   411,     0,    41,
-      42,     0,    34,    45,    46,     0,     0,   987,    34,  1132,
-    1132,    48,     0,     0,     0,  1420,   906,   992,     0,     0,
-     214,     0,     0,    48,     0,   600,    37,   601,   174,   175,
-      40,  1004,   141,    45,    46,     0,     0,    41,    42,   413,
-     176,     0,   215,   421,   570,     0,   411,  1460,     0,   323,
+       0,  -291,   521,   213,   323,   521,  1550,  1551,     8,     9,
+      10,    11,    12,    70,     0,   600,   339,   601,     0,     0,
+       0,     0,    34,    45,    46,     0,     0,     0,     0,  1132,
+    1132,    48,     0,     0,     0,  1420,     0,    31,     0,     0,
+     214,     0,     0,    48,     0,     0,     0,  1372,     0,     0,
+       0,     0,   141,     8,     9,    10,    11,    12,   972,   413,
+     176,     0,   215,   421,   570,    34,   411,  1460,     0,   323,
        0,     0,    45,    46,   213,     0,     0,     0,   214,     0,
-     802,     0,     0,   214,     0,     0,   643,     0,   213,     0,
-     215,     0,   112,     0,     0,   215,     0,     0,     0,     0,
-    1284,  1285,     0,  1287,   241,   244,     0,     0,   499,     0,
-    1292,   843,  1294,     0,     0,    48,   593,     0,     0,     0,
-       0,   547,   852,     0,    48,  1509,    48,     0,     0,     0,
-       0,     0,     0,   112,  1517,     8,     9,    10,    11,    12,
-     413,     0,     0,     0,     0,     0,   348,     0,     0,     0,
-       8,     9,    10,    11,    12,    74,    48,     0,     0,     0,
-       0,     0,   510,  -290,    31,     0,   215,     0,     0,   214,
-       8,     9,    10,    11,    12,   687,   112,     0,     0,    31,
+     802,     0,    31,   214,     0,     0,   643,     0,   213,     0,
+     215,     0,   112,     0,     0,   215,     0,     0,     0,  1397,
+       0,     0,  1405,     0,   241,   244,     0,     0,   499,     0,
+      34,   843,     0,     0,     0,    48,   593,     0,     0,     0,
+       0,     0,   852,     0,    48,  1509,    48,    37,     0,   174,
+     175,    40,     0,   112,  1517,     0,     0,   703,    41,    42,
+     413,     0,     0,     0,     0,  1442,   348,     0,     0,     0,
+    1446,     0,   749,     0,   411,    74,    48,     0,     0,     0,
+      45,    46,     0,     0,   376,     0,   215,     0,     0,   214,
+       8,     9,    10,    11,    12,   687,   112,     0,  1467,     0,
      215,   213,     0,     0,     0,     0,     0,    74,     0,     0,
-     643,     0,    34,     0,     0,     0,     0,    57,   112,    31,
-       0,     0,   112,     0,     0,     0,     0,    34,     0,     0,
-    -291,     0,     0,   488,     0,    66,   117,     8,     9,    10,
-      11,    12,     0,     0,   222,     0,     0,    34,     0,     0,
-       0,   576,   576,     0,   749,   339,   411,     0,     0,   348,
-       0,     0,    45,    46,     0,     0,    31,    66,     0,   932,
-     214,   601,   112,     0,     0,  1166,  1167,    45,    46,     8,
-       9,    10,    11,    12,   160,   457,     0,     0,  1404,   528,
-     529,   530,     0,   215,    34,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   221,     0,     0,     0,    31,     0,
-     112,     0,   214,   531,   995,   532,     0,   533,  1305,   802,
-       0,     0,     0,   348,    48,     0,     0,     0,     0,    48,
-       0,   353,     0,  1216,  1217,     0,    34,     0,   883,     0,
-     259,    37,   886,   183,   184,    40,    48,     0,     0,     0,
-       0,     0,    41,    42,   535,   536,   537,   538,   539,   540,
-     541,   542,   543,   544,     0,     0,     0,   348,   348,   348,
-       0,     0,    37,     0,   183,   184,    40,     0,   600,     0,
-     601,     0,   328,    41,    42,   348,    45,    46,   545,     0,
-     259,   350,    37,     0,   183,   184,    40,     0,   213,     0,
-       0,     0,     0,    41,    42,   449,     0,   802,     0,   905,
-       0,   411,     0,     0,   339,     0,     0,    45,    46,     0,
-       0,   406,   644,   112,     0,     0,    74,     0,     0,   185,
-     687,    74,     0,   214,     0,     0,   424,    45,    46,   429,
+     643,     0,    37,     0,   183,   184,    40,    57,   112,    31,
+       0,     0,   112,    41,    42,     0,   129,     0,   130,   131,
+     132,     0,     0,   488,     0,    66,   117,    41,    42,     0,
+       0,     0,     0,     0,   222,     0,     0,    34,     0,   265,
+       0,   576,   576,     0,     0,   339,     0,    45,    46,   348,
+       0,     0,    37,     0,   174,   175,    40,    66,     0,     0,
+     214,     0,   112,    41,    42,     0,   703,     0,     0,     0,
+       0,     0,  1535,     0,   160,   457,   703,     0,  1535,   932,
+       0,   601,     0,   215,     0,     0,     0,    45,    46,  1535,
+     703,     0,     0,  1535,   221,     0,     0,     0,     0,     0,
+     112,     0,   214,     0,   995,     0,     0,     0,     0,   802,
+       0,   547,     0,   348,    48,     0,     0,     0,     0,    48,
+       0,   353,     0,    37,     0,   183,   184,    40,   883,     0,
+     259,     0,   886,     0,    41,    42,    48,     0,     0,     0,
+       0,     8,     9,    10,    11,    12,     0,     0,     0,     0,
+       0,     0,   510,     0,     0,     0,     0,   348,   348,   348,
+     905,     0,   411,     0,     0,     0,     0,     0,    45,    46,
+      31,     0,   328,     0,     0,   348,     0,     0,     0,     0,
+     259,   350,     0,     0,     0,     0,     0,     0,   213,     0,
+       0,     0,     0,     0,     0,   449,     0,   802,    34,     0,
+       0,     0,     0,    37,   339,   183,   184,    40,     0,     0,
+       0,   406,   644,   112,    41,    42,    74,     0,     0,     0,
+     687,    74,     0,   214,     0,     0,   424,     0,     0,   429,
      431,     0,     0,   348,   160,     0,    48,     0,     0,     0,
-       0,     0,   488,  1107,   323,     0,     0,     0,     0,     0,
+     185,     0,   488,  1107,   323,     0,     0,     0,    45,    46,
        0,   214,     0,     0,     0,   448,   214,     0,     0,   451,
        0,   452,     0,     0,   576,     0,     0,     0,     0,     0,
      459,     0,   126,   126,   126,     0,    66,   112,   112,   112,
-     215,   473,     0,    37,     0,   183,   184,    40,     0,     0,
-       0,   480,     0,     0,    41,    42,     0,     0,     0,   431,
-     843,     0,     0,  1337,     0,     0,     0,     0,     0,     0,
-       0,  1339,  1340,  1341,     0,     0,   222,     0,     0,     0,
-    1505,     0,   411,   724,   348,   728,     0,   214,    45,    46,
-       0,     0,   348,     0,     0,     0,     0,     0,     0,     0,
-       0,   214,     0,     0,   126,     0,   126,     0,     8,     9,
-      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
-      20,    21,    22,    23,    24,    25,   259,     0,     0,     0,
-     594,   275,     0,     0,   213,  1385,   622,    31,     0,     0,
-       0,   687,   413,    74,     0,     0,     0,     0,     0,   627,
+     215,   473,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   480,     0,     0,   703,   703,     0,     0,     0,   431,
+     843,   535,   536,   537,   538,   539,   540,   541,   542,   543,
+     544,     8,     9,    10,    11,    12,   222,    37,     0,   183,
+     184,    40,     0,   724,   348,   728,     0,   214,    41,    42,
+       0,     0,   348,     0,     0,   545,     0,     0,     0,     0,
+      31,   214,     0,     0,   126,     0,   126,     0,     0,     0,
+       0,     0,   703,   703,  1505,     0,   411,     0,     0,     0,
+       0,     0,    45,    46,     0,     0,   259,     0,    34,     0,
+     594,   275,     0,    37,   213,     0,   622,    40,     0,     0,
+       0,   687,   413,    74,    41,    42,     0,     0,     0,   627,
        0,     0,     0,   627,     0,     0,   259,    57,   353,     0,
-       0,     0,     0,    74,     0,    34,    48,    48,     0,     0,
-       0,    74,   124,   127,   128,   112,   112,     0,     0,     0,
+       0,     0,     0,    74,     0,     0,    48,    48,     0,     0,
+      43,    74,   124,   127,   128,   112,   112,     0,    45,    46,
        0,     0,     0,   802,     0,     0,     0,   126,     0,   353,
        0,     0,     0,     0,   214,   126,     0,   126,   126,     0,
@@ -2070,9 +2070,9 @@
        0,     0,     0,     0,   254,     0,   255,     0,     0,   698,
        0,   353,   431,     0,    77,     0,     0,     0,     0,     0,
-       0,    37,     0,   183,   184,    40,     0,   712,   339,    66,
-      48,   112,    41,    42,   126,     0,     0,   431,     0,     0,
+    1313,     0,     0,     0,     0,     0,     0,   712,   339,    66,
+      48,   112,     0,     0,   126,     0,     0,   431,     0,     0,
      112,   431,     0,   918,     0,   920,     0,     0,     0,   457,
-    1107,   223,     0,     0,    48,    48,     0,     0,   265,     0,
-       0,     0,     0,   348,   348,     0,    45,    46,     0,     0,
+    1107,   223,   703,     0,    48,    48,     0,     0,     0,     0,
+     703,   703,   703,   348,   348,     0,     0,     0,     0,     0,
      259,   350,     0,     0,   413,   353,     0,     0,     0,    48,
        0,   215,     0,    57,     0,     0,     0,   396,     0,     0,
@@ -2080,5 +2080,5 @@
        0,     0,   420,     0,   422,   423,     0,     0,     0,     0,
        0,     0,     0,     0,  1242,     0,   793,     0,     0,   353,
-     353,   353,     0,     0,     0,     0,     0,     0,     8,     9,
+     353,   353,     0,     0,   703,     0,     0,     0,     8,     9,
       10,    11,    12,     0,   627,   805,     0,   353,   355,     0,
        0,     0,  1107,     0,     0,     0,     0,   824,     0,     0,
@@ -2090,5 +2090,5 @@
        0,    41,    42,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,   698,     0,     0,     0,   644,
-       0,     0,     0,     0,     0,  1039,   473,    43,     0,     0,
+       0,     0,     0,     0,     0,  1039,   473,   718,     0,     0,
      353,    57,    57,    77,     0,    45,    46,     0,    77,     0,
     1107,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -2115,16 +2115,16 @@
        0,     0,  1085,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    57,     0,   355,     0,    77,     0,     0,     0,
-       0,     0,     8,     9,    10,    11,    12,     0,  1099,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  1099,     0,
      795,   796,     0,     0,    57,     0,   431,   117,     0,     0,
        0,    57,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    31,   353,   353,     0,   353,   353,     0,   355,   829,
+       0,     0,   353,   353,     0,   353,   353,     0,   355,   829,
        0,    79,   832,   833,     0,   836,    79,   838,   839,     0,
-     126,   126,   840,   841,     0,    74,     0,     0,     0,    34,
-       0,     0,     0,     0,    37,     0,  1282,     0,    40,     0,
-       0,     0,    57,     0,   594,    41,    42,     0,     0,     0,
+     126,   126,   840,   841,     0,    74,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  1282,     0,     0,     0,
+       0,     0,    57,     0,   594,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   429,     0,     0,
      353,   353,   698,   698,     0,   350,   350,     0,     0,     0,
-       0,   718,   355,     0,     0,     0,     0,     0,     0,    45,
-      46,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
+       0,     0,   355,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  1188,     0,     0,     0,     0,
        0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
@@ -2154,6 +2154,6 @@
      184,    40,     0,   126,     0,     0,     0,     0,    41,    42,
      356,     0,     0,   363,     0,     0,    77,     0,     0,     0,
-     905,     0,   411,     0,     0,     0,   117,     0,    45,    46,
-       0,     0,   698,     0,  1505,     0,   411,     0,     0,   353,
+     600,     0,   601,     0,     0,     0,   117,     0,    45,    46,
+       0,     0,   698,     0,   905,     0,   411,     0,     0,   353,
        0,     0,    45,    46,     0,   321,   355,     0,     0,     0,
        0,     0,     0,     0,   356,   356,   356,     0,     0,     0,
@@ -2169,5 +2169,5 @@
       42,     0,     0,  1188,     0,     0,     0,     0,     0,   355,
      355,     0,   355,   355,     0,   356,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   185,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  1505,     0,   411,     0,     0,
        0,     0,    77,    45,    46,     0,   382,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -2199,10 +2199,10 @@
        0,     0,     0,   382,     0,     0,     0,     0,     0,     0,
       79,     0,     0,     0,     0,     0,     0,     0,     0,   355,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
+      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
        0,   363,   363,   363,     0,   356,   356,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   363,
+       0,    31,     0,     0,     0,     0,     0,     0,     0,   363,
        0,     0,  1012,     0,     0,     8,     9,    10,    11,    12,
-       0,     0,     0,     0,     0,     0,   591,   363,   599,     0,
+       0,     0,     0,     0,     0,     0,   591,   363,   599,    34,
        0,   165,     0,     0,     0,     0,   355,     0,    86,   623,
      624,     0,   282,   283,    31,   284,     0,     0,   218,     0,
@@ -2918,5 +2918,5 @@
 
 #define yypact_value_is_default(yystate) \
-  ((yystate) == (-1390))
+  ((yystate) == (-1282))
 
 #define yytable_value_is_error(yytable_value) \
@@ -2926,235 +2926,235 @@
 {
        0,     1,   204,    43,    49,   239,   219,     0,   185,     1,
-     534,   116,   620,   602,   185,    43,    43,   646,   364,   185,
-     349,   513,   368,     0,   521,     0,   281,   749,   749,   349,
-     602,   185,    32,     0,   185,   185,   345,   874,  1040,    32,
-     186,   168,   169,    43,   185,   600,  1321,   756,   749,    49,
-    1021,   600,     0,   571,   492,    32,    49,    32,   496,     0,
-     600,   187,   156,    63,    32,    32,    66,   156,   113,    69,
-      63,    43,    43,    66,    82,   418,    69,    69,  1020,  1021,
-     692,    39,   983,    63,    32,   600,   109,   600,   265,   600,
-     105,    32,    51,   600,   265,   438,   201,     0,     1,   265,
-      43,   146,    43,   446,    39,   105,  1052,  1053,    49,   426,
-     427,   265,  1501,   113,   265,   265,   116,   117,    72,    39,
+     534,   116,    32,   620,   185,    43,    43,   513,   364,   185,
+     602,   874,   368,     0,   521,     0,   281,   749,   749,   349,
+      95,   185,    32,   602,   185,   185,   345,   646,  1040,    32,
+     186,   168,   169,    43,   185,   600,   692,    43,   749,    49,
+       0,   600,     0,   571,   492,    32,    49,    32,   496,     0,
+     600,   187,   156,    63,   129,   600,    66,   156,   113,    69,
+      63,    43,   756,    66,    96,   418,    69,    69,   349,  1021,
+      43,  1321,    32,   600,    32,  1052,  1053,   600,   265,    28,
+     105,    32,   600,    72,   265,   438,   201,     0,     1,   265,
+     122,   146,    43,   446,    39,   105,    96,    64,    49,   426,
+     427,   265,    63,   113,   265,   265,   116,   117,    82,   983,
      266,  1402,    63,   186,   265,    66,    39,    72,    69,    32,
-      39,   256,  1033,     0,     1,   261,   262,    11,    39,  1528,
-     155,  1398,    28,   733,  1419,   185,   146,   147,    44,    45,
-     109,   109,   132,   111,   147,   155,   156,   185,   185,   488,
-     160,    39,   603,    66,   209,    32,    69,   160,   609,   109,
-      82,   635,   636,   482,   109,   695,   111,   494,   132,    44,
-      45,   228,  1128,   905,   905,   185,   186,   132,   652,   109,
-     687,   111,    78,   186,   239,    95,   513,   410,   111,   111,
-     247,   201,    69,   266,   905,   718,   147,   718,   109,   209,
-     111,   718,  1469,   185,   185,  1496,   209,   107,   114,   160,
-    1501,   221,    64,   874,     0,   265,   271,    55,   221,   129,
-     110,   109,   116,   111,    49,   824,   116,   265,   265,   239,
-    1521,   131,   185,   589,   185,   186,   710,  1528,   132,   504,
-     115,   251,   824,  1452,  1225,   109,    32,   812,   251,   259,
-     406,   578,   307,   812,   264,   265,   266,   109,   209,    97,
-      72,   271,   812,   266,   251,   793,   251,   986,    85,   256,
-     221,   256,   602,   251,   251,   631,  1288,  1486,   900,  1488,
-      66,   396,   109,   418,   294,   924,  1472,   812,   113,   812,
-     345,   812,  1478,   251,  1275,   812,   113,   307,    44,    45,
-     251,   620,   112,   438,   131,   117,   625,   114,   221,   424,
-     116,   446,  1498,   323,   265,   430,   341,  1503,   328,    96,
-     116,    96,  1274,  1275,   480,   328,   132,   801,   681,   433,
-      72,   341,   116,   406,   433,   345,   110,   695,   251,   349,
-     350,    83,    84,   116,     1,   122,   371,   122,    72,   116,
-     110,   933,    76,     3,   364,   193,   130,   130,   368,    83,
-      84,   371,   112,   814,  1211,   132,   116,   932,   114,   111,
-     130,   426,   427,   932,   251,  1501,   906,   328,   216,  1040,
-      72,   999,   932,   482,   209,   109,   396,   111,   226,    90,
-      91,    83,    84,   117,   118,  1521,   406,    72,   349,    72,
-     110,   666,  1528,   406,   116,     0,   116,   480,    83,    84,
-      83,    84,   110,  1394,   424,    57,   426,   427,   130,   111,
-     430,   951,   526,   433,   125,   126,   745,   526,   786,  1441,
-     464,   418,   130,   418,   109,   221,  1448,     3,   111,   494,
-      57,   112,  1394,     0,   454,   116,   271,   803,   109,  1049,
-     116,   438,   808,   438,   116,   406,   294,   116,   513,   446,
-     967,   446,   472,   131,   106,   251,   132,   109,   130,   294,
-     480,   736,   482,   132,   484,  1386,  1387,   480,   488,   981,
-     128,   484,   307,   131,   494,   824,   590,  1499,  1127,   106,
-     116,   590,   109,   941,   824,   482,   506,   484,   508,   484,
-     525,   511,   490,   513,   514,   863,   132,   484,   110,   110,
-     647,   521,   110,   116,   116,   525,   526,  1099,   116,    70,
-     656,   109,    73,   578,    72,    76,   484,    78,   111,   132,
-     113,   687,   464,   484,    85,    83,    84,   488,   155,   654,
-     896,   109,   109,   116,   111,     3,   681,   130,   906,   109,
-    1211,   111,    10,    11,    12,    13,    14,  1008,  1009,   132,
-     570,   571,   109,   111,   350,   620,   116,   110,   578,   112,
-     625,   484,   707,   116,   109,   111,   218,   113,  1085,   589,
-     590,    39,   132,  1090,   594,   904,   109,  1117,   131,   132,
-     600,   109,   602,   951,   130,   252,   110,   116,   937,   110,
-      72,   218,    74,    75,   112,   443,   116,   484,   116,    67,
-     620,    83,    84,   132,   687,   625,   604,   627,   116,   116,
-     608,   631,   132,   110,   634,   635,   636,  1288,   986,   454,
-     272,   469,   590,   110,   132,   132,   670,   279,   861,   111,
-     116,   629,   652,   110,   654,   633,   745,  1177,  1178,   600,
-     112,   602,    72,   132,   110,   272,   132,   109,   881,   111,
-     116,   212,   279,    83,    84,   117,   118,   506,   506,   508,
-     109,   110,   511,   511,   684,   514,   514,   687,   109,  1037,
-     999,   506,   109,   508,   111,   109,   511,   473,  1288,   514,
-     117,   118,    88,    89,   681,   109,   681,   111,   484,   943,
-     710,   711,   712,   117,   118,   809,   348,   115,   718,   719,
-     809,     4,     5,     6,     7,     8,     9,   112,   905,   744,
-     707,   116,   707,   365,   905,   109,   117,   369,   279,   905,
-     867,   348,   123,   124,   744,   745,   687,   110,   670,   749,
-     750,   905,   112,   116,   905,   905,   116,   110,   365,    64,
+     116,   256,   122,     0,     1,   261,   262,    44,    45,    78,
+     155,    51,    39,   733,   130,   185,   146,   147,    44,    45,
+    1020,  1021,   109,   132,   147,   155,   156,   185,   185,  1398,
+     160,  1128,   603,    66,   209,    32,    69,   160,   609,  1033,
+      39,   635,   636,   482,   109,   695,   111,   494,   718,  1419,
+     110,   132,    82,   905,   905,   185,   186,   132,   652,   185,
+     687,   112,   109,   186,   239,   116,   513,   410,   111,   109,
+     130,   201,    69,   266,   905,   718,   147,    82,   115,   209,
+     718,   111,   109,   185,   111,  1496,   209,   488,   114,   160,
+    1501,   221,   185,   874,     0,   265,   271,    55,   221,   107,
+    1469,   251,   116,   109,    49,   110,    39,   265,   265,   239,
+    1521,    11,   824,   589,   185,   186,   710,  1528,   132,   504,
+      39,   251,   490,   131,   900,   824,    32,   812,   251,   259,
+     406,   578,   307,   812,   264,   265,   266,    72,   209,    97,
+      39,   271,   812,   266,   251,   793,   251,   812,   294,   256,
+     221,   256,   602,  1225,   109,   631,  1288,    44,    45,    85,
+      66,   396,   109,   418,   294,   812,    90,    91,   113,   812,
+     345,   251,   986,   251,   812,   112,   109,   307,   111,  1501,
+     251,   620,   117,   438,   131,   924,   625,   113,   221,   424,
+     109,   446,   111,   323,   265,   430,   341,   228,   328,  1521,
+     114,   125,   126,  1275,   480,   328,  1528,   801,   681,   433,
+     109,   341,   111,   406,   433,   345,   247,   695,   251,   349,
+     350,   933,  1501,   111,     1,   113,   371,   114,  1211,   111,
+     110,   113,   116,    72,   364,   193,   604,   116,   368,   116,
+     608,   371,   130,   814,    83,    84,   130,   932,   130,  1528,
+     130,   426,   427,   932,   251,   132,   906,   328,   216,  1040,
+       3,   629,   999,   482,   209,   633,   396,   932,   226,   109,
+     116,   111,   111,    72,  1274,  1275,   406,   109,   349,   111,
+     426,   427,     3,   406,    83,    84,   132,   480,   116,    10,
+      11,    12,    13,    14,   424,    57,   426,   427,     3,  1472,
+     430,   951,   526,   433,   132,  1478,   745,   526,   786,  1441,
+     464,   418,   111,   418,   110,   221,  1448,   110,    39,   494,
+      57,   116,  1394,   116,   454,  1498,   271,   803,   116,  1049,
+    1503,   438,   808,   438,   130,   406,   294,   132,   513,   446,
+     967,   446,   472,   116,   106,   251,    67,   109,     0,   294,
+     480,   736,   482,     0,   484,   981,   116,   480,   488,   132,
+     506,   484,   307,   109,   494,   511,   590,  1499,   514,   106,
+     130,   590,   109,   941,   824,   482,   506,   484,   508,   484,
+     525,   511,   131,   513,   514,   863,    72,  1099,  1127,   109,
+     647,   521,  1386,  1387,  1394,   525,   526,    83,    84,    70,
+     656,   110,    73,   578,   484,    76,   484,    78,   116,   110,
+     110,   687,   109,   484,    85,   116,   116,   488,   155,   654,
+     896,   567,   109,   824,   132,   111,   681,   109,   906,   111,
+    1211,     4,     5,     6,     7,     8,     9,  1008,  1009,   128,
+     570,   571,   131,    72,   350,   620,   116,    76,   578,   109,
+     625,   484,   707,   116,    83,    84,   218,   110,  1085,   589,
+     590,   116,   132,  1090,   594,   904,   109,  1117,   116,   132,
+     600,   109,   602,   951,   109,   252,   116,   132,   846,  1452,
+     109,   218,   111,   116,   132,   443,   112,   484,   117,   118,
+     620,    72,   132,   110,   687,   625,    69,   627,    71,   132,
+     110,   631,    83,    84,   634,   635,   636,  1288,   986,   454,
+     272,   469,   590,  1486,   110,  1488,   670,   279,   861,   110,
+     116,    72,   652,   116,   654,   116,   745,  1177,  1178,   600,
+     111,   602,    83,    84,   110,   272,   937,   109,   881,   132,
+      72,   212,   279,   110,   110,   112,   109,   110,   506,   116,
+     116,    83,    84,   511,   684,   110,   514,   687,   109,  1037,
+     999,   506,   115,   508,   131,   132,   511,   473,  1288,   514,
+     938,   109,   110,   111,   681,   109,   681,   111,   484,   943,
+     710,   711,   712,   117,   118,   809,   348,   112,   718,   719,
+     809,   116,   109,    10,    11,    12,    13,    14,   905,   744,
+     707,  1115,   707,   365,   905,  1119,   117,   369,   279,   905,
+     867,   348,   123,   124,   744,   745,   687,   110,   132,   749,
+     750,   905,    39,   116,   905,   905,    64,   110,   365,   132,
      110,   907,   369,   116,   905,   789,   116,   110,   745,  1117,
-     119,   120,  1362,   116,   110,   799,  1122,   718,   719,   110,
-     116,  1305,   109,  1505,  1505,   116,    69,   874,    71,   813,
-    1441,  1115,   110,   793,   110,  1119,   110,  1448,   116,   109,
-     116,   801,   116,   803,  1505,   805,    92,    93,   808,   809,
+     119,   120,  1362,   116,    49,   799,  1122,   718,   719,   110,
+      67,  1305,   109,  1505,  1505,   116,   110,   109,    63,   813,
+    1441,    66,   116,   793,    69,   112,   110,  1448,   109,   116,
+     111,   801,   116,   803,  1505,   805,   117,   118,   808,   809,
     1012,   352,   812,   354,   112,   904,    72,   110,    74,    75,
-     467,   115,   116,   116,   824,   432,   110,    83,    84,  1177,
-    1178,    72,   116,    74,    75,   132,   109,  1146,   111,   110,
-     114,   669,    83,    84,   907,   116,   622,    72,  1499,   132,
-     678,    76,   110,   111,   682,  1445,   132,  1447,    83,    84,
-    1115,   809,  1382,   114,  1119,  1120,   110,   789,   846,   684,
-     110,   812,   116,   114,   874,   132,   116,   799,  1398,   114,
-     109,   528,   111,   824,   109,   109,   533,   111,   903,    58,
-      59,   813,   117,   118,   115,   116,   896,   874,   943,   874,
-     109,   442,   111,   903,   904,   905,   109,   907,  1035,    72,
-    1500,    74,    75,   109,   294,   111,  1225,    44,    45,   919,
-      83,    84,   698,   109,   110,   111,   874,   904,    82,     0,
-       1,  1020,   932,   933,   109,   582,   712,   937,   109,  1085,
-     111,   118,   942,   943,  1090,   109,   109,   111,  1468,  1469,
-     942,   114,   109,   910,   999,   912,  1043,   112,    29,    30,
-     938,    32,   552,   553,   905,    82,   907,   967,   109,   110,
-     111,   874,    43,   556,   557,   558,   559,   127,    49,    72,
-    1235,   128,   589,    76,  1481,    94,    57,   554,   555,   621,
-      83,    84,    63,  1017,  1018,    66,   937,   131,    69,   999,
-     560,   561,  1107,   111,   109,   637,   653,   874,   655,   109,
-     112,    82,    83,   112,   621,   112,   109,   112,   110,   651,
-    1020,  1021,  1085,   110,   117,   118,   110,  1090,   110,   805,
-     637,   110,   110,  1530,  1382,   106,   109,   111,   109,   942,
-    1040,   109,   110,   111,   651,   116,   426,   427,   114,   116,
-    1398,  1075,  1076,   109,   110,   111,   131,  1146,   705,    58,
-      59,    60,   109,  1040,   114,  1040,    72,  1322,    74,    75,
-     898,  1326,  1248,  1249,  1250,   942,   147,    83,    84,   114,
-    1080,   112,   110,   110,   155,  1085,   112,   112,   112,   160,
-    1090,   112,  1040,   130,   130,  1017,  1018,   130,   874,  1099,
-     732,   116,    29,   109,   919,   110,   110,  1107,   114,   112,
-     110,   112,   114,   130,   185,   186,   284,   115,   115,   115,
-    1468,  1469,  1122,   116,  1211,   732,   506,   109,   116,   110,
-     201,   511,   110,   110,   514,   110,   110,  1040,   209,   307,
-     308,   132,   110,   116,  1085,   110,  1146,   218,   110,  1090,
-     221,   110,    66,  1075,  1076,   110,   110,   228,   110,   110,
-     110,    75,   110,    72,   110,    74,    75,    76,  1423,  1146,
-     110,   110,   243,  1040,    83,    84,   247,   345,   110,   115,
-     251,   252,    29,   116,   131,  1274,   110,   567,  1188,  1189,
-     110,   732,  1207,   130,   265,   266,   112,  1189,   110,  1223,
-     109,   272,     1,   117,    85,    86,    87,  1207,   279,   112,
-     110,  1211,   116,   381,   110,   130,   109,  1304,   116,   114,
-     112,   110,   110,  1051,   110,  1225,  1002,   112,   109,  1229,
-     111,  1255,   113,   114,  1211,   110,  1211,  1229,   116,  1263,
-    1264,  1265,   116,   116,    66,   110,   160,   110,  1225,   109,
-      49,     4,     5,     6,     7,     8,     9,   328,   112,   109,
-      82,   109,   130,  1211,  1040,  1080,   109,   109,   112,  1356,
-     132,   128,  1359,  1378,  1274,  1275,   115,   348,   349,    49,
-      33,  1515,   110,  1283,   110,  1188,  1189,   110,  1288,   896,
-     115,   115,   112,    63,   365,   117,    66,   114,   369,    69,
-     132,  1223,   110,  1327,   116,   112,   105,   221,  1211,   380,
-     957,  1288,   112,  1288,   113,  1402,    69,   110,    71,   110,
-    1407,  1321,  1189,   110,   112,   396,  1229,   112,  1505,  1321,
-     112,   110,   979,  1255,  1505,   406,   983,   112,   160,  1505,
-    1288,  1263,  1264,  1265,  1211,   259,   112,   146,  1435,   112,
-     264,  1505,    47,   424,  1505,  1505,   155,   130,   132,   430,
-    1506,   432,  1229,   132,  1505,   279,     4,     5,     6,     7,
-       8,     9,   132,   132,   132,   115,  1481,   147,  1378,   110,
-    1283,   549,   550,   551,  1530,  1288,  1033,   115,   110,   115,
-     160,   112,   112,   112,  1394,   112,   467,   112,   112,   221,
-     110,   472,   110,   112,    60,  1327,   205,   112,   109,   480,
-     209,   109,  1188,   484,   110,   109,   186,   488,  1321,  1419,
-     491,  1288,   493,     0,     1,   110,   114,  1419,   109,   132,
-     112,    69,  1519,    71,   112,  1211,   350,   259,  1525,   209,
-     239,  1441,   264,  1506,   110,   112,   110,    96,  1448,  1536,
-    1450,   221,  1452,  1540,  1321,    32,    96,   528,   109,   109,
-     132,   115,   533,   110,  1441,  1505,  1441,  1530,   110,  1297,
-    1515,  1448,   271,  1448,   110,   274,   110,  1505,  1505,   116,
-      42,  1481,   130,   110,   110,    96,  1486,   132,  1488,    66,
-      96,   132,    69,  1441,   110,   294,   110,   132,   110,  1499,
-    1448,   132,   132,   110,   112,  1505,  1506,  1283,   307,   112,
-     115,   582,  1288,  1506,   132,  1515,  1419,   431,   589,   109,
-     115,   115,  1499,   132,  1499,   110,   110,   110,   350,   600,
-    1530,   602,   132,  1056,   448,   110,   565,  1530,  1441,   562,
-     977,   563,   341,  1211,   564,  1448,   345,   566,  1469,  1540,
-     621,  1499,  1419,  1364,  1298,  1120,  1326,  1448,   328,   473,
-     189,  1071,   684,   684,  1505,   364,   637,   196,  1090,   368,
-     912,   642,   371,   697,  1441,   920,   971,   867,   648,   156,
-     651,  1448,   653,   654,   655,   722,  1229,    72,   756,    74,
-      75,    76,   582,   939,   484,    66,  1499,   732,    83,    84,
-    1207,  1248,  1249,  1250,   570,    -1,   570,   570,    -1,   431,
-      -1,    -1,    -1,    -1,    -1,    -1,   687,    -1,   670,    -1,
-     691,  1449,   693,  1451,   109,    -1,   697,   426,   427,    -1,
-      -1,    -1,  1499,    -1,   705,  1450,   406,  1452,    72,   268,
-      74,    75,    76,    -1,   221,    -1,   117,   718,   719,    83,
-      84,   473,    -1,    -1,    -1,   454,    -1,  1485,    -1,  1487,
-      -1,   732,    -1,    -1,    -1,  1441,    -1,    -1,   467,    -1,
+     467,    88,    89,   116,   824,   432,   110,    83,    84,  1177,
+    1178,    72,   116,    74,    75,    76,   112,  1146,   132,   110,
+     116,   669,    83,    84,   907,   116,   622,   112,  1499,   132,
+     678,   116,   114,   109,   682,  1445,   114,  1447,   114,   114,
+    1115,   809,  1382,   109,  1119,  1120,    82,   110,   109,   684,
+     111,   812,   147,   116,   874,   109,   117,   118,  1398,   109,
+     109,   528,   111,   824,   112,   160,   533,    82,   903,   130,
+       4,     5,     6,     7,     8,     9,   896,   874,   943,   874,
+     110,   442,   127,   903,   904,   905,   116,   907,  1035,   118,
+    1500,   186,    72,   128,    74,    75,  1225,    94,   109,   919,
+     111,   111,   698,    83,    84,   131,   874,   904,   109,     0,
+       1,  1020,   932,   933,   209,   582,   712,   937,   109,  1085,
+     111,   110,   942,   943,  1090,   109,   221,   116,  1468,  1469,
+     942,   111,    92,    93,   999,    69,   112,    71,    29,    30,
+     109,    32,   111,   109,   905,   111,   907,   967,   117,   118,
+     112,   874,    43,   556,   557,   558,   559,   109,    49,   111,
+    1235,   112,   589,   670,  1481,   109,    57,   111,   910,   621,
+     912,   110,    63,  1017,  1018,    66,   937,   110,    69,   999,
+     115,   116,  1107,   110,   111,   637,   653,   874,   655,    58,
+      59,    82,    83,    72,   621,    74,    75,   110,   132,   651,
+    1020,  1021,  1085,   110,    83,    84,   109,  1090,   110,   805,
+     637,   115,   116,  1530,  1382,   106,   110,    72,   109,   942,
+    1040,    76,    44,    45,   651,   116,   552,   553,    83,    84,
+    1398,  1075,  1076,   328,   506,   114,   508,  1146,   705,   511,
+     554,   555,   514,  1040,   112,  1040,    72,  1322,    74,    75,
+     898,  1326,   560,   561,   109,   942,   147,    83,    84,   111,
+    1080,   114,   117,   118,   155,  1085,   109,   110,   111,   160,
+    1090,   116,  1040,   109,   110,   111,   114,    72,   874,  1099,
+     732,    76,   789,   131,   919,   114,   109,  1107,    83,    84,
+     110,   112,   799,   110,   185,   186,    72,   112,    74,    75,
+    1468,  1469,  1122,   112,   116,   732,   813,    83,    84,   112,
+     201,   406,   112,    29,   109,   112,   130,  1040,   209,   109,
+     110,   111,   117,   118,  1085,   130,  1146,   218,   130,  1090,
+     221,   110,    66,   109,    58,    59,    60,   228,   114,   110,
+     114,    75,  1248,  1249,  1250,   112,   115,   110,  1423,  1146,
+     115,   115,   243,  1040,  1190,  1191,   247,  1193,   116,   109,
+     251,   252,   110,   110,  1200,  1274,  1202,   116,  1188,  1189,
+     130,   732,  1207,   132,   265,   266,   116,  1189,   110,  1223,
+     110,   272,     1,   117,   110,   110,     3,  1207,   279,   110,
+     110,  1211,   110,    10,    11,    12,    13,    14,   110,   110,
+     110,   110,   110,  1051,   110,  1225,  1002,   110,   110,  1229,
+     110,  1255,   110,    29,  1211,   130,  1211,  1229,   115,  1263,
+    1264,  1265,    39,   110,    66,   116,   160,   131,  1225,   112,
+      49,     4,     5,     6,     7,     8,     9,   328,   112,   110,
+      82,   110,   110,  1211,  1040,  1080,   116,   109,   130,   116,
+      67,   114,   112,  1378,  1274,  1275,   110,   348,   349,   110,
+      33,  1515,   110,  1283,   116,  1188,  1189,   112,  1288,   896,
+     110,   112,   116,   110,   365,   117,   284,   116,   369,   110,
+     109,   109,   109,  1327,   109,   109,   105,   221,  1211,   380,
+     957,  1288,   130,  1288,   113,   115,    69,   112,    71,   307,
+     308,  1321,  1189,   110,   110,   396,  1229,   874,  1505,  1321,
+    1017,  1018,   979,   115,  1505,   406,   983,   110,   160,  1505,
+    1288,   132,  1358,   128,  1211,   259,   115,   146,   114,   112,
+     264,  1505,   132,   424,  1505,  1505,   155,   345,   110,   430,
+    1506,   432,  1229,   112,  1505,   279,   116,   112,   110,   110,
+      72,   110,    74,    75,    76,   112,  1481,   112,  1378,   112,
+    1283,    83,    84,   110,  1530,  1288,  1033,   112,  1075,  1076,
+     112,   112,    47,   381,  1394,   115,   467,   110,   132,   221,
+     132,   472,    85,    86,    87,   115,   205,   109,   132,   480,
+     209,   130,  1188,   484,   132,   117,   118,   488,  1321,  1419,
+     491,  1288,   493,     0,     1,   132,   109,  1419,   111,   110,
+     113,   114,    85,    86,    87,  1211,   350,   259,   115,   112,
+     239,  1441,   264,  1506,   112,   112,   112,   112,  1448,   112,
+    1450,   110,  1452,   110,  1321,    32,   109,   528,   111,   109,
+     113,   114,   533,   112,  1441,  1505,  1441,  1530,   112,  1297,
+    1515,  1448,   271,  1448,   109,   274,   109,  1505,  1505,    60,
+     110,  1481,   110,   114,   109,   132,  1486,   110,  1488,    66,
+     112,   112,    69,  1441,   112,   294,  1043,   110,    96,  1499,
+    1448,    96,   109,   109,   115,  1505,  1506,  1283,   307,   110,
+     110,   582,  1288,  1506,   110,  1515,  1419,   431,   589,   110,
+     132,    42,  1499,   116,  1499,   130,   110,   110,   350,   600,
+    1530,   602,    96,   132,   448,   132,    96,  1530,  1441,   110,
+     132,   110,   341,   132,   132,  1448,   345,   110,   110,   115,
+     621,  1499,  1419,   112,   112,   109,   132,   132,   115,   473,
+     189,   549,   550,   551,  1505,   364,   637,   196,  1255,   368,
+     115,   642,   371,   110,  1441,   110,  1263,  1264,  1265,   156,
+     651,  1448,   653,   654,   655,   132,   110,    72,   110,    74,
+      75,    76,  1056,   666,   562,    66,  1499,   563,    83,    84,
+    1207,  1248,  1249,  1250,   564,   566,   977,   565,  1211,   431,
+    1469,  1364,  1540,  1298,  1326,  1448,   687,  1071,  1120,   684,
+     691,  1449,   693,  1451,   109,  1090,   697,   426,   427,   684,
+     912,   697,  1499,   971,   705,  1450,   582,  1452,   648,   268,
+    1327,   464,   920,   867,   221,   722,   117,   718,   719,   939,
+      -1,   473,  1229,   732,   484,   454,    -1,  1485,    -1,  1487,
+      -1,   732,   570,   570,  1211,  1441,    -1,   570,   467,    -1,
       -1,  1486,  1448,  1488,   251,    10,    11,    12,    13,    14,
-     594,    10,    11,    12,    13,    14,    -1,    -1,    72,   160,
+     594,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    72,   160,
       74,    75,    76,   492,   323,   494,    -1,   496,    -1,    83,
       84,  1529,   331,  1531,    39,   334,    -1,   506,   622,   508,
-      39,    -1,   511,   627,   513,   514,  1544,  1545,    72,    -1,
-      74,    75,    76,  1499,    -1,   109,   525,   111,    -1,    83,
-      84,    -1,    67,   117,   118,    -1,    -1,   789,    67,  1386,
-    1387,   812,    -1,    -1,    -1,  1377,   130,   799,    -1,    -1,
-     221,    -1,    -1,   824,    -1,   109,    72,   111,    74,    75,
-      76,   813,    30,   117,   118,    -1,    -1,    83,    84,   398,
-    1377,    -1,   594,   402,   109,    -1,   111,  1424,    -1,   578,
+      -1,     3,   511,   627,   513,   514,  1544,  1545,    10,    11,
+      12,    13,    14,  1499,    -1,   109,   525,   111,    -1,    -1,
+      -1,    -1,    67,   117,   118,    -1,    -1,    -1,    -1,  1386,
+    1387,   812,    -1,    -1,    -1,  1377,    -1,    39,    -1,    -1,
+     221,    -1,    -1,   824,    -1,    -1,    -1,  1304,    -1,    -1,
+      -1,    -1,    30,    10,    11,    12,    13,    14,   756,   398,
+    1377,    -1,   594,   402,   109,    67,   111,  1424,    -1,   578,
       -1,    -1,   117,   118,   698,    -1,    -1,    -1,   259,    -1,
-     589,    -1,    -1,   264,    -1,    -1,   867,    -1,   712,    -1,
-     622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,    -1,
-    1190,  1191,    -1,  1193,    82,    83,    -1,    -1,   732,    -1,
-    1200,   620,  1202,    -1,    -1,   896,   625,    -1,    -1,    -1,
-      -1,   999,   631,    -1,   905,  1482,   907,    -1,    -1,    -1,
-      -1,    -1,    -1,   914,  1491,    10,    11,    12,    13,    14,
-     479,    -1,    -1,    -1,    -1,    -1,   433,    -1,    -1,    -1,
-      10,    11,    12,    13,    14,     0,   937,    -1,    -1,    -1,
-      -1,    -1,  1040,     3,    39,    -1,   698,    -1,    -1,   350,
-      10,    11,    12,    13,    14,   684,   957,    -1,    -1,    39,
+     589,    -1,    39,   264,    -1,    -1,   867,    -1,   712,    -1,
+     622,    -1,   873,    -1,    -1,   627,    -1,    -1,    -1,  1356,
+      -1,    -1,  1359,    -1,    82,    83,    -1,    -1,   732,    -1,
+      67,   620,    -1,    -1,    -1,   896,   625,    -1,    -1,    -1,
+      -1,    -1,   631,    -1,   905,  1482,   907,    72,    -1,    74,
+      75,    76,    -1,   914,  1491,    -1,    -1,   670,    83,    84,
+     479,    -1,    -1,    -1,    -1,  1402,   433,    -1,    -1,    -1,
+    1407,    -1,   109,    -1,   111,     0,   937,    -1,    -1,    -1,
+     117,   118,    -1,    -1,   109,    -1,   698,    -1,    -1,   350,
+      10,    11,    12,    13,    14,   684,   957,    -1,  1435,    -1,
      712,   805,    -1,    -1,    -1,    -1,    -1,    32,    -1,    -1,
-     971,    -1,    67,    -1,    -1,    -1,    -1,   484,   979,    39,
-      -1,    -1,   983,    -1,    -1,    -1,    -1,    67,    -1,    -1,
-       3,    -1,    -1,   722,    -1,     0,     1,    10,    11,    12,
-      13,    14,    -1,    -1,    69,    -1,    -1,    67,    -1,    -1,
-      -1,   570,   571,    -1,   109,   744,   111,    -1,    -1,   526,
-      -1,    -1,   117,   118,    -1,    -1,    39,    32,    -1,   109,
-     431,   111,  1033,    -1,    -1,  1017,  1018,   117,   118,    10,
-      11,    12,    13,    14,    49,   243,    -1,    -1,  1358,    85,
-      86,    87,    -1,   805,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    39,    -1,
-    1071,    -1,   473,   109,   803,   111,    -1,   113,   114,   808,
-      -1,    -1,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
-      -1,   156,    -1,  1075,  1076,    -1,    67,    -1,   657,    -1,
-     105,    72,   661,    74,    75,    76,  1107,    -1,    -1,    -1,
-      -1,    -1,    83,    84,    97,    98,    99,   100,   101,   102,
-     103,   104,   105,   106,    -1,    -1,    -1,   634,   635,   636,
-      -1,    -1,    72,    -1,    74,    75,    76,    -1,   109,    -1,
-     111,    -1,   147,    83,    84,   652,   117,   118,   131,    -1,
-     155,   156,    72,    -1,    74,    75,    76,    -1,  1002,    -1,
-      -1,    -1,    -1,    83,    84,   230,    -1,   896,    -1,   109,
-      -1,   111,    -1,    -1,   903,    -1,    -1,   117,   118,    -1,
-      -1,   186,   380,  1184,    -1,    -1,   251,    -1,    -1,   109,
-     919,   256,    -1,   594,    -1,    -1,   201,   117,   118,   204,
+     971,    -1,    72,    -1,    74,    75,    76,   484,   979,    39,
+      -1,    -1,   983,    83,    84,    -1,    72,    -1,    74,    75,
+      76,    -1,    -1,   722,    -1,     0,     1,    83,    84,    -1,
+      -1,    -1,    -1,    -1,    69,    -1,    -1,    67,    -1,   109,
+      -1,   570,   571,    -1,    -1,   744,    -1,   117,   118,   526,
+      -1,    -1,    72,    -1,    74,    75,    76,    32,    -1,    -1,
+     431,    -1,  1033,    83,    84,    -1,   789,    -1,    -1,    -1,
+      -1,    -1,  1519,    -1,    49,   243,   799,    -1,  1525,   109,
+      -1,   111,    -1,   805,    -1,    -1,    -1,   117,   118,  1536,
+     813,    -1,    -1,  1540,    69,    -1,    -1,    -1,    -1,    -1,
+    1071,    -1,   473,    -1,   803,    -1,    -1,    -1,    -1,   808,
+      -1,   999,    -1,   590,  1085,    -1,    -1,    -1,    -1,  1090,
+      -1,   156,    -1,    72,    -1,    74,    75,    76,   657,    -1,
+     105,    -1,   661,    -1,    83,    84,  1107,    -1,    -1,    -1,
+      -1,    10,    11,    12,    13,    14,    -1,    -1,    -1,    -1,
+      -1,    -1,  1040,    -1,    -1,    -1,    -1,   634,   635,   636,
+     109,    -1,   111,    -1,    -1,    -1,    -1,    -1,   117,   118,
+      39,    -1,   147,    -1,    -1,   652,    -1,    -1,    -1,    -1,
+     155,   156,    -1,    -1,    -1,    -1,    -1,    -1,  1002,    -1,
+      -1,    -1,    -1,    -1,    -1,   230,    -1,   896,    67,    -1,
+      -1,    -1,    -1,    72,   903,    74,    75,    76,    -1,    -1,
+      -1,   186,   380,  1184,    83,    84,   251,    -1,    -1,    -1,
+     919,   256,    -1,   594,    -1,    -1,   201,    -1,    -1,   204,
      205,    -1,    -1,   710,   209,    -1,  1207,    -1,    -1,    -1,
-      -1,    -1,   941,   942,   943,    -1,    -1,    -1,    -1,    -1,
+     109,    -1,   941,   942,   943,    -1,    -1,    -1,   117,   118,
       -1,   622,    -1,    -1,    -1,   230,   627,    -1,    -1,   234,
       -1,   236,    -1,    -1,   793,    -1,    -1,    -1,    -1,    -1,
      245,    -1,    26,    27,    28,    -1,   251,  1248,  1249,  1250,
-    1002,   256,    -1,    72,    -1,    74,    75,    76,    -1,    -1,
-      -1,   266,    -1,    -1,    83,    84,    -1,    -1,    -1,   274,
-     999,    -1,    -1,  1255,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  1263,  1264,  1265,    -1,    -1,   351,    -1,    -1,    -1,
-     109,    -1,   111,   491,   801,   493,    -1,   698,   117,   118,
-      -1,    -1,   809,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   712,    -1,    -1,    98,    -1,   100,    -1,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,   341,    -1,    -1,    -1,
-     345,   125,    -1,    -1,  1188,  1327,   351,    39,    -1,    -1,
-      -1,  1080,   911,   418,    -1,    -1,    -1,    -1,    -1,   364,
+    1002,   256,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   266,    -1,    -1,  1017,  1018,    -1,    -1,    -1,   274,
+     999,    97,    98,    99,   100,   101,   102,   103,   104,   105,
+     106,    10,    11,    12,    13,    14,   351,    72,    -1,    74,
+      75,    76,    -1,   491,   801,   493,    -1,   698,    83,    84,
+      -1,    -1,   809,    -1,    -1,   131,    -1,    -1,    -1,    -1,
+      39,   712,    -1,    -1,    98,    -1,   100,    -1,    -1,    -1,
+      -1,    -1,  1075,  1076,   109,    -1,   111,    -1,    -1,    -1,
+      -1,    -1,   117,   118,    -1,    -1,   341,    -1,    67,    -1,
+     345,   125,    -1,    72,  1188,    -1,   351,    76,    -1,    -1,
+      -1,  1080,   911,   418,    83,    84,    -1,    -1,    -1,   364,
       -1,    -1,    -1,   368,    -1,    -1,   371,   874,   433,    -1,
-      -1,    -1,    -1,   438,    -1,    67,  1377,  1378,    -1,    -1,
-      -1,   446,    26,    27,    28,  1386,  1387,    -1,    -1,    -1,
+      -1,    -1,    -1,   438,    -1,    -1,  1377,  1378,    -1,    -1,
+     109,   446,    26,    27,    28,  1386,  1387,    -1,   117,   118,
       -1,    -1,    -1,  1122,    -1,    -1,    -1,   181,    -1,   464,
       -1,    -1,    -1,    -1,   805,   189,    -1,   191,   192,    -1,
@@ -3165,9 +3165,9 @@
       -1,    -1,    -1,    -1,    98,    -1,   100,    -1,    -1,   464,
       -1,   526,   467,    -1,    32,    -1,    -1,    -1,    -1,    -1,
-      -1,    72,    -1,    74,    75,    76,    -1,   482,  1207,   484,
-    1481,  1482,    83,    84,   268,    -1,    -1,   492,    -1,    -1,
+    1223,    -1,    -1,    -1,    -1,    -1,    -1,   482,  1207,   484,
+    1481,  1482,    -1,    -1,   268,    -1,    -1,   492,    -1,    -1,
     1491,   496,    -1,   691,    -1,   693,    -1,    -1,    -1,   697,
-    1229,    69,    -1,    -1,  1505,  1506,    -1,    -1,   109,    -1,
-      -1,    -1,    -1,  1020,  1021,    -1,   117,   118,    -1,    -1,
+    1229,    69,  1255,    -1,  1505,  1506,    -1,    -1,    -1,    -1,
+    1263,  1264,  1265,  1020,  1021,    -1,    -1,    -1,    -1,    -1,
      525,   526,    -1,    -1,  1083,   590,    -1,    -1,    -1,  1530,
       -1,  1283,    -1,  1040,    -1,    -1,    -1,   181,    -1,    -1,
@@ -3175,5 +3175,5 @@
       -1,    -1,   196,    -1,   198,   199,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,  1123,    -1,   571,    -1,    -1,   634,
-     635,   636,    -1,    -1,    -1,    -1,    -1,    -1,    10,    11,
+     635,   636,    -1,    -1,  1327,    -1,    -1,    -1,    10,    11,
       12,    13,    14,    -1,   589,   590,    -1,   652,   156,    -1,
       -1,    -1,  1321,    -1,    -1,    -1,    -1,   602,    -1,    -1,
@@ -3210,16 +3210,16 @@
       -1,    -1,   907,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,  1419,    -1,   482,    -1,   484,    -1,    -1,    -1,
-      -1,    -1,    10,    11,    12,    13,    14,    -1,   933,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   933,    -1,
      574,   575,    -1,    -1,  1441,    -1,   941,   942,    -1,    -1,
       -1,  1448,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    39,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
+      -1,    -1,  1017,  1018,    -1,  1020,  1021,    -1,   526,   603,
       -1,   251,   606,   607,    -1,   609,   256,   611,   612,    -1,
-     754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    67,
-      -1,    -1,    -1,    -1,    72,    -1,  1184,    -1,    76,    -1,
-      -1,    -1,  1499,    -1,   999,    83,    84,    -1,    -1,    -1,
+     754,   755,   616,   617,    -1,  1040,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  1184,    -1,    -1,    -1,
+      -1,    -1,  1499,    -1,   999,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,  1012,    -1,    -1,
     1075,  1076,  1017,  1018,    -1,  1020,  1021,    -1,    -1,    -1,
-      -1,   109,   590,    -1,    -1,    -1,    -1,    -1,    -1,   117,
-     118,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  1040,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    10,    11,    12,    13,    14,    15,    16,
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
@@ -3264,5 +3264,5 @@
       84,    -1,    -1,  1448,    -1,    -1,    -1,    -1,    -1,  1017,
     1018,    -1,  1020,  1021,    -1,   745,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   109,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   109,    -1,   111,    -1,    -1,
       -1,    -1,  1040,   117,   118,    -1,   380,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -3294,10 +3294,10 @@
       -1,    -1,    -1,   647,    -1,    -1,    -1,    -1,    -1,    -1,
     1040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1327,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
       -1,   634,   635,   636,    -1,  1075,  1076,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
+      -1,    39,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   652,
       -1,    -1,     7,    -1,    -1,    10,    11,    12,    13,    14,
-      -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   344,   670,   346,    67,
       -1,    49,    -1,    -1,    -1,    -1,  1394,    -1,   681,   357,
      358,    -1,    37,    38,    39,    40,    -1,    -1,    66,    -1,
@@ -4104,5 +4104,5 @@
      260,   272,   165,   134,   111,   274,   130,   116,   372,   278,
      111,   130,   282,    29,   210,   211,   272,   260,   139,   309,
-     139,   311,   109,   349,   350,   109,   349,   350,   141,   350,
+     139,   311,   109,   349,   350,   109,   349,   350,   142,   350,
      174,   264,   110,   110,   110,   110,   112,   174,   208,   174,
      114,   250,   251,   112,   134,   109,   130,   150,   252,   254,
@@ -7988,8 +7988,15 @@
     break;
 
+  case 544:
+
+/* Line 1806 of yacc.c  */
+#line 2156 "parser.yy"
+    { delete (yyvsp[(3) - (5)].str); }
+    break;
+
   case 545:
 
 /* Line 1806 of yacc.c  */
-#line 2160 "parser.yy"
+#line 2161 "parser.yy"
     { (yyval.decl) = 0; }
     break;
@@ -7998,5 +8005,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2167 "parser.yy"
+#line 2168 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8005,30 +8012,23 @@
 
 /* Line 1806 of yacc.c  */
-#line 2173 "parser.yy"
+#line 2174 "parser.yy"
     { (yyval.decl) = 0; }
     break;
 
+  case 554:
+
+/* Line 1806 of yacc.c  */
+#line 2186 "parser.yy"
+    { delete (yyvsp[(3) - (4)].en); }
+    break;
+
   case 555:
 
 /* Line 1806 of yacc.c  */
-#line 2188 "parser.yy"
+#line 2190 "parser.yy"
     { delete (yyvsp[(1) - (1)].tok); }
     break;
 
   case 556:
-
-/* Line 1806 of yacc.c  */
-#line 2189 "parser.yy"
-    { delete (yyvsp[(1) - (1)].decl); }
-    break;
-
-  case 557:
-
-/* Line 1806 of yacc.c  */
-#line 2190 "parser.yy"
-    { delete (yyvsp[(1) - (1)].decl); }
-    break;
-
-  case 558:
 
 /* Line 1806 of yacc.c  */
@@ -8037,19 +8037,26 @@
     break;
 
+  case 557:
+
+/* Line 1806 of yacc.c  */
+#line 2192 "parser.yy"
+    { delete (yyvsp[(1) - (1)].decl); }
+    break;
+
+  case 558:
+
+/* Line 1806 of yacc.c  */
+#line 2193 "parser.yy"
+    { delete (yyvsp[(1) - (1)].decl); }
+    break;
+
   case 559:
 
 /* Line 1806 of yacc.c  */
-#line 2226 "parser.yy"
+#line 2228 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
 
   case 561:
-
-/* Line 1806 of yacc.c  */
-#line 2229 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 562:
 
 /* Line 1806 of yacc.c  */
@@ -8058,8 +8065,15 @@
     break;
 
+  case 562:
+
+/* Line 1806 of yacc.c  */
+#line 2233 "parser.yy"
+    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
+    break;
+
   case 563:
 
 /* Line 1806 of yacc.c  */
-#line 2236 "parser.yy"
+#line 2238 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8071,5 +8085,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2241 "parser.yy"
+#line 2243 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8078,5 +8092,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2246 "parser.yy"
+#line 2248 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8085,5 +8099,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2248 "parser.yy"
+#line 2250 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8092,5 +8106,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2250 "parser.yy"
+#line 2252 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8099,16 +8113,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2255 "parser.yy"
+#line 2257 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
 
   case 569:
-
-/* Line 1806 of yacc.c  */
-#line 2257 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 570:
 
 /* Line 1806 of yacc.c  */
@@ -8117,8 +8124,15 @@
     break;
 
+  case 570:
+
+/* Line 1806 of yacc.c  */
+#line 2261 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 571:
 
 /* Line 1806 of yacc.c  */
-#line 2261 "parser.yy"
+#line 2263 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8127,5 +8141,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2266 "parser.yy"
+#line 2268 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8134,5 +8148,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2268 "parser.yy"
+#line 2270 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8141,5 +8155,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2277 "parser.yy"
+#line 2279 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8148,5 +8162,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2280 "parser.yy"
+#line 2282 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8155,5 +8169,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2285 "parser.yy"
+#line 2287 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8162,5 +8176,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2287 "parser.yy"
+#line 2289 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8169,5 +8183,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2289 "parser.yy"
+#line 2291 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8176,5 +8190,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2294 "parser.yy"
+#line 2296 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8183,5 +8197,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2296 "parser.yy"
+#line 2298 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8190,16 +8204,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2298 "parser.yy"
+#line 2300 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
 
   case 583:
-
-/* Line 1806 of yacc.c  */
-#line 2303 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 584:
 
 /* Line 1806 of yacc.c  */
@@ -8208,8 +8215,15 @@
     break;
 
+  case 584:
+
+/* Line 1806 of yacc.c  */
+#line 2307 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 585:
 
 /* Line 1806 of yacc.c  */
-#line 2307 "parser.yy"
+#line 2309 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8218,5 +8232,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2322 "parser.yy"
+#line 2324 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (4)].decl)->addIdList( (yyvsp[(3) - (4)].decl) ); }
     break;
@@ -8225,5 +8239,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2324 "parser.yy"
+#line 2326 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (6)].decl)->addIdList( (yyvsp[(5) - (6)].decl) ); }
     break;
@@ -8232,5 +8246,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2326 "parser.yy"
+#line 2328 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8239,5 +8253,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2331 "parser.yy"
+#line 2333 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8246,5 +8260,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2333 "parser.yy"
+#line 2335 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8253,16 +8267,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2335 "parser.yy"
+#line 2337 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
 
   case 595:
-
-/* Line 1806 of yacc.c  */
-#line 2340 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 596:
 
 /* Line 1806 of yacc.c  */
@@ -8271,8 +8278,15 @@
     break;
 
+  case 596:
+
+/* Line 1806 of yacc.c  */
+#line 2344 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 597:
 
 /* Line 1806 of yacc.c  */
-#line 2344 "parser.yy"
+#line 2346 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8281,16 +8295,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2359 "parser.yy"
+#line 2361 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
 
   case 600:
-
-/* Line 1806 of yacc.c  */
-#line 2362 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 601:
 
 /* Line 1806 of yacc.c  */
@@ -8299,8 +8306,15 @@
     break;
 
+  case 601:
+
+/* Line 1806 of yacc.c  */
+#line 2366 "parser.yy"
+    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
+    break;
+
   case 603:
 
 /* Line 1806 of yacc.c  */
-#line 2370 "parser.yy"
+#line 2372 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8309,5 +8323,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2375 "parser.yy"
+#line 2377 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8316,5 +8330,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2377 "parser.yy"
+#line 2379 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8323,5 +8337,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2379 "parser.yy"
+#line 2381 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8330,16 +8344,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2384 "parser.yy"
+#line 2386 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
 
   case 608:
-
-/* Line 1806 of yacc.c  */
-#line 2386 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 609:
 
 /* Line 1806 of yacc.c  */
@@ -8348,8 +8355,15 @@
     break;
 
+  case 609:
+
+/* Line 1806 of yacc.c  */
+#line 2390 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 610:
 
 /* Line 1806 of yacc.c  */
-#line 2390 "parser.yy"
+#line 2392 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8358,5 +8372,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2395 "parser.yy"
+#line 2397 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8365,5 +8379,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2397 "parser.yy"
+#line 2399 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8372,5 +8386,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2399 "parser.yy"
+#line 2401 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8379,16 +8393,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2409 "parser.yy"
+#line 2411 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
 
   case 616:
-
-/* Line 1806 of yacc.c  */
-#line 2412 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 617:
 
 /* Line 1806 of yacc.c  */
@@ -8397,8 +8404,15 @@
     break;
 
+  case 617:
+
+/* Line 1806 of yacc.c  */
+#line 2416 "parser.yy"
+    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
+    break;
+
   case 618:
 
 /* Line 1806 of yacc.c  */
-#line 2419 "parser.yy"
+#line 2421 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8407,5 +8421,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2421 "parser.yy"
+#line 2423 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8414,5 +8428,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2423 "parser.yy"
+#line 2425 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8421,16 +8435,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2428 "parser.yy"
+#line 2430 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
 
   case 622:
-
-/* Line 1806 of yacc.c  */
-#line 2430 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 623:
 
 /* Line 1806 of yacc.c  */
@@ -8439,8 +8446,15 @@
     break;
 
+  case 623:
+
+/* Line 1806 of yacc.c  */
+#line 2434 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 624:
 
 /* Line 1806 of yacc.c  */
-#line 2434 "parser.yy"
+#line 2436 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8449,5 +8463,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2439 "parser.yy"
+#line 2441 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8456,5 +8470,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2441 "parser.yy"
+#line 2443 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8463,5 +8477,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2443 "parser.yy"
+#line 2445 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8470,16 +8484,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2474 "parser.yy"
+#line 2476 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
     break;
 
   case 630:
-
-/* Line 1806 of yacc.c  */
-#line 2477 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 631:
 
 /* Line 1806 of yacc.c  */
@@ -8488,8 +8495,15 @@
     break;
 
+  case 631:
+
+/* Line 1806 of yacc.c  */
+#line 2481 "parser.yy"
+    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
+    break;
+
   case 632:
 
 /* Line 1806 of yacc.c  */
-#line 2484 "parser.yy"
+#line 2486 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8501,5 +8515,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2489 "parser.yy"
+#line 2491 "parser.yy"
     {
 			typedefTable.setNextIdentifier( *(yyvsp[(1) - (1)].tok) );
@@ -8511,5 +8525,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2497 "parser.yy"
+#line 2499 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8518,5 +8532,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2499 "parser.yy"
+#line 2501 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8525,5 +8539,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2501 "parser.yy"
+#line 2503 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8532,5 +8546,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2506 "parser.yy"
+#line 2508 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8539,5 +8553,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2508 "parser.yy"
+#line 2510 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
     break;
@@ -8546,5 +8560,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2513 "parser.yy"
+#line 2515 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addParamList( (yyvsp[(4) - (6)].decl) ); }
     break;
@@ -8553,16 +8567,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2515 "parser.yy"
+#line 2517 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
 
   case 642:
-
-/* Line 1806 of yacc.c  */
-#line 2530 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 643:
 
 /* Line 1806 of yacc.c  */
@@ -8571,8 +8578,15 @@
     break;
 
+  case 643:
+
+/* Line 1806 of yacc.c  */
+#line 2534 "parser.yy"
+    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
+    break;
+
   case 644:
 
 /* Line 1806 of yacc.c  */
-#line 2537 "parser.yy"
+#line 2539 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8581,5 +8595,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2539 "parser.yy"
+#line 2541 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8588,5 +8602,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2541 "parser.yy"
+#line 2543 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8595,5 +8609,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2543 "parser.yy"
+#line 2545 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8602,16 +8616,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2545 "parser.yy"
+#line 2547 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
 
   case 650:
-
-/* Line 1806 of yacc.c  */
-#line 2551 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 651:
 
 /* Line 1806 of yacc.c  */
@@ -8620,8 +8627,15 @@
     break;
 
+  case 651:
+
+/* Line 1806 of yacc.c  */
+#line 2555 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 652:
 
 /* Line 1806 of yacc.c  */
-#line 2555 "parser.yy"
+#line 2557 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8630,5 +8644,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2560 "parser.yy"
+#line 2562 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     break;
@@ -8637,5 +8651,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2562 "parser.yy"
+#line 2564 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8644,5 +8658,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2564 "parser.yy"
+#line 2566 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8651,5 +8665,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2570 "parser.yy"
+#line 2572 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8658,5 +8672,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2572 "parser.yy"
+#line 2574 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false )->addArray( (yyvsp[(3) - (3)].decl) ); }
     break;
@@ -8665,5 +8679,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2578 "parser.yy"
+#line 2580 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(3) - (5)].en), 0, false ); }
     break;
@@ -8672,5 +8686,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2580 "parser.yy"
+#line 2582 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( 0 ); }
     break;
@@ -8679,5 +8693,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2582 "parser.yy"
+#line 2584 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newArray( (yyvsp[(4) - (6)].en), 0, false ) ); }
     break;
@@ -8686,16 +8700,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2584 "parser.yy"
+#line 2586 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (6)].decl)->addArray( DeclarationNode::newVarArray( 0 ) ); }
     break;
 
   case 664:
-
-/* Line 1806 of yacc.c  */
-#line 2599 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 665:
 
 /* Line 1806 of yacc.c  */
@@ -8704,8 +8711,15 @@
     break;
 
+  case 665:
+
+/* Line 1806 of yacc.c  */
+#line 2603 "parser.yy"
+    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
+    break;
+
   case 666:
 
 /* Line 1806 of yacc.c  */
-#line 2606 "parser.yy"
+#line 2608 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8714,5 +8728,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2608 "parser.yy"
+#line 2610 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8721,5 +8735,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2610 "parser.yy"
+#line 2612 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8728,5 +8742,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2612 "parser.yy"
+#line 2614 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8735,16 +8749,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2614 "parser.yy"
+#line 2616 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
 
   case 672:
-
-/* Line 1806 of yacc.c  */
-#line 2620 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 673:
 
 /* Line 1806 of yacc.c  */
@@ -8753,8 +8760,15 @@
     break;
 
+  case 673:
+
+/* Line 1806 of yacc.c  */
+#line 2624 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 674:
 
 /* Line 1806 of yacc.c  */
-#line 2624 "parser.yy"
+#line 2626 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8763,5 +8777,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2629 "parser.yy"
+#line 2631 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, 0, (yyvsp[(3) - (5)].decl), 0 ); }
     break;
@@ -8770,5 +8784,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2631 "parser.yy"
+#line 2633 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8777,5 +8791,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2633 "parser.yy"
+#line 2635 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8784,5 +8798,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2640 "parser.yy"
+#line 2642 "parser.yy"
     { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addArray( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8791,5 +8805,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2651 "parser.yy"
+#line 2653 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, 0, false ); }
     break;
@@ -8798,5 +8812,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2654 "parser.yy"
+#line 2656 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -8805,5 +8819,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2656 "parser.yy"
+#line 2658 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( 0, (yyvsp[(3) - (5)].decl), false ); }
     break;
@@ -8812,5 +8826,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2659 "parser.yy"
+#line 2661 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -8819,5 +8833,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2661 "parser.yy"
+#line 2663 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl), true ); }
     break;
@@ -8826,16 +8840,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2663 "parser.yy"
+#line 2665 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(3) - (7)].decl), true ); }
     break;
 
   case 688:
-
-/* Line 1806 of yacc.c  */
-#line 2677 "parser.yy"
-    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
-    break;
-
-  case 689:
 
 /* Line 1806 of yacc.c  */
@@ -8844,8 +8851,15 @@
     break;
 
+  case 689:
+
+/* Line 1806 of yacc.c  */
+#line 2681 "parser.yy"
+    { (yyval.decl) = (yyvsp[(1) - (2)].decl)->addQualifiers( (yyvsp[(2) - (2)].decl) ); }
+    break;
+
   case 690:
 
 /* Line 1806 of yacc.c  */
-#line 2684 "parser.yy"
+#line 2686 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( 0 ); }
     break;
@@ -8854,5 +8868,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2686 "parser.yy"
+#line 2688 "parser.yy"
     { (yyval.decl) = DeclarationNode::newPointer( (yyvsp[(2) - (2)].decl) ); }
     break;
@@ -8861,5 +8875,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2688 "parser.yy"
+#line 2690 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8868,5 +8882,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2690 "parser.yy"
+#line 2692 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addPointer( DeclarationNode::newPointer( (yyvsp[(2) - (3)].decl) ) ); }
     break;
@@ -8875,16 +8889,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2692 "parser.yy"
+#line 2694 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
 
   case 696:
-
-/* Line 1806 of yacc.c  */
-#line 2698 "parser.yy"
-    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
-    break;
-
-  case 697:
 
 /* Line 1806 of yacc.c  */
@@ -8893,8 +8900,15 @@
     break;
 
+  case 697:
+
+/* Line 1806 of yacc.c  */
+#line 2702 "parser.yy"
+    { (yyval.decl) = (yyvsp[(2) - (4)].decl)->addArray( (yyvsp[(4) - (4)].decl) ); }
+    break;
+
   case 698:
 
 /* Line 1806 of yacc.c  */
-#line 2702 "parser.yy"
+#line 2704 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8903,5 +8917,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2707 "parser.yy"
+#line 2709 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (8)].decl)->addParamList( (yyvsp[(6) - (8)].decl) ); }
     break;
@@ -8910,5 +8924,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2709 "parser.yy"
+#line 2711 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (3)].decl); }
     break;
@@ -8917,5 +8931,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2719 "parser.yy"
+#line 2721 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8924,5 +8938,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2729 "parser.yy"
+#line 2731 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8931,5 +8945,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2731 "parser.yy"
+#line 2733 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8938,5 +8952,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2733 "parser.yy"
+#line 2735 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8945,5 +8959,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2735 "parser.yy"
+#line 2737 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8952,5 +8966,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2737 "parser.yy"
+#line 2739 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -8959,5 +8973,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2739 "parser.yy"
+#line 2741 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -8966,5 +8980,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2746 "parser.yy"
+#line 2748 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8973,5 +8987,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2748 "parser.yy"
+#line 2750 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -8980,5 +8994,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2750 "parser.yy"
+#line 2752 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -8987,5 +9001,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2752 "parser.yy"
+#line 2754 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -8994,5 +9008,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2754 "parser.yy"
+#line 2756 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9001,5 +9015,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2756 "parser.yy"
+#line 2758 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9008,5 +9022,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2758 "parser.yy"
+#line 2760 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9015,5 +9029,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2760 "parser.yy"
+#line 2762 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9022,5 +9036,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2762 "parser.yy"
+#line 2764 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( (yyvsp[(2) - (3)].decl) )->addNewArray( (yyvsp[(1) - (3)].decl) ); }
     break;
@@ -9029,5 +9043,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2764 "parser.yy"
+#line 2766 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9036,5 +9050,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2769 "parser.yy"
+#line 2771 "parser.yy"
     { (yyval.decl) = DeclarationNode::newVarArray( (yyvsp[(3) - (6)].decl) ); }
     break;
@@ -9043,5 +9057,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2771 "parser.yy"
+#line 2773 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), false ); }
     break;
@@ -9050,5 +9064,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2776 "parser.yy"
+#line 2778 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(4) - (6)].en), (yyvsp[(3) - (6)].decl), true ); }
     break;
@@ -9057,5 +9071,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2778 "parser.yy"
+#line 2780 "parser.yy"
     { (yyval.decl) = DeclarationNode::newArray( (yyvsp[(5) - (7)].en), (yyvsp[(4) - (7)].decl)->addQualifiers( (yyvsp[(3) - (7)].decl) ), true ); }
     break;
@@ -9064,5 +9078,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2805 "parser.yy"
+#line 2807 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addQualifiers( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9071,5 +9085,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2816 "parser.yy"
+#line 2818 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9078,5 +9092,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2818 "parser.yy"
+#line 2820 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9085,5 +9099,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2820 "parser.yy"
+#line 2822 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9092,5 +9106,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2822 "parser.yy"
+#line 2824 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9099,5 +9113,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2824 "parser.yy"
+#line 2826 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewPointer( DeclarationNode::newPointer( 0 ) ); }
     break;
@@ -9106,5 +9120,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2826 "parser.yy"
+#line 2828 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewPointer( DeclarationNode::newPointer( (yyvsp[(1) - (3)].decl) ) ); }
     break;
@@ -9113,5 +9127,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2833 "parser.yy"
+#line 2835 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9120,5 +9134,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2835 "parser.yy"
+#line 2837 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9127,5 +9141,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2837 "parser.yy"
+#line 2839 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9134,5 +9148,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2839 "parser.yy"
+#line 2841 "parser.yy"
     { (yyval.decl) = (yyvsp[(3) - (3)].decl)->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9141,5 +9155,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2841 "parser.yy"
+#line 2843 "parser.yy"
     { (yyval.decl) = (yyvsp[(4) - (4)].decl)->addNewArray( (yyvsp[(3) - (4)].decl) )->addNewArray( DeclarationNode::newArray( 0, 0, false ) ); }
     break;
@@ -9148,5 +9162,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2843 "parser.yy"
+#line 2845 "parser.yy"
     { (yyval.decl) = (yyvsp[(2) - (2)].decl)->addNewArray( (yyvsp[(1) - (2)].decl) ); }
     break;
@@ -9155,5 +9169,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2848 "parser.yy"
+#line 2850 "parser.yy"
     { (yyval.decl) = DeclarationNode::newTuple( (yyvsp[(3) - (5)].decl) ); }
     break;
@@ -9162,16 +9176,9 @@
 
 /* Line 1806 of yacc.c  */
-#line 2853 "parser.yy"
+#line 2855 "parser.yy"
     { (yyval.decl) = DeclarationNode::newFunction( 0, DeclarationNode::newTuple( 0 ), (yyvsp[(4) - (5)].decl), 0 ); }
     break;
 
   case 745:
-
-/* Line 1806 of yacc.c  */
-#line 2855 "parser.yy"
-    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
-    break;
-
-  case 746:
 
 /* Line 1806 of yacc.c  */
@@ -9180,8 +9187,15 @@
     break;
 
+  case 746:
+
+/* Line 1806 of yacc.c  */
+#line 2859 "parser.yy"
+    { (yyval.decl) = DeclarationNode::newFunction( 0, (yyvsp[(1) - (6)].decl), (yyvsp[(4) - (6)].decl), 0 ); }
+    break;
+
   case 749:
 
 /* Line 1806 of yacc.c  */
-#line 2881 "parser.yy"
+#line 2883 "parser.yy"
     { (yyval.en) = 0; }
     break;
@@ -9190,5 +9204,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 2883 "parser.yy"
+#line 2885 "parser.yy"
     { (yyval.en) = (yyvsp[(2) - (2)].en); }
     break;
@@ -9197,5 +9211,5 @@
 
 /* Line 1806 of yacc.c  */
-#line 9200 "Parser/parser.cc"
+#line 9214 "Parser/parser.cc"
       default: break;
     }
@@ -9428,5 +9442,5 @@
 
 /* Line 2067 of yacc.c  */
-#line 2886 "parser.yy"
+#line 2888 "parser.yy"
 
 // ----end of grammar----
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision ab57786c01e611b8868fd27c61ac8a8e289a72a9)
+++ src/Parser/parser.yy	(revision 2acf5fcd906a54378fddc29b0575320efe7c6e19)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Aug 22 14:15:15 2016
-// Update Count     : 1943
+// Last Modified On : Mon Aug 22 14:30:56 2016
+// Update Count     : 1944
 //
 
@@ -2153,5 +2153,6 @@
 asm_name_opt:											// GCC
 	// empty
-	| ASM '(' string_literal ')' attribute_list_opt
+	| ASM '(' string_literal_list ')' attribute_list_opt
+		{ delete $3; }
 	;
 
@@ -2183,4 +2184,5 @@
 	| any_word
 	| any_word '(' comma_expression_opt ')'
+		{ delete $3; }
 	;
 
