multiple constraints of different type and value assignment

diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 95d4513..13541e9 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -523,7 +523,7 @@
 
 /* YYFINAL -- State number of the termination state. */
 #define YYFINAL  7
-#define YYLAST   871
+#define YYLAST   745
 
 /* YYNTOKENS -- Number of terminals. */
 #define YYNTOKENS  121
@@ -532,7 +532,7 @@
 /* YYNRULES -- Number of rules. */
 #define YYNRULES  309
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  469
+#define YYNSTATES  467
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -608,17 +608,17 @@
      498,   500,   502,   504,   507,   510,   512,   514,   517,   520,
      522,   524,   526,   528,   530,   533,   535,   538,   540,   542,
      544,   546,   548,   550,   552,   554,   556,   558,   560,   562,
-     564,   566,   568,   570,   572,   574,   575,   577,   579,   583,
-     585,   590,   594,   599,   601,   603,   607,   613,   615,   619,
-     621,   625,   627,   631,   633,   637,   642,   646,   648,   650,
-     654,   658,   662,   666,   668,   670,   673,   676,   678,   680,
-     682,   684,   686,   688,   690,   692,   696,   702,   704,   708,
-     710,   714,   715,   717,   719,   721,   723,   725,   727,   729,
-     730,   736,   739,   741,   744,   747,   751,   753,   755,   759,
-     764,   766,   770,   773,   777,   779,   783,   784,   786,   788,
-     791,   794,   798,   800,   804,   806,   811,   816,   818,   820,
-     822,   824,   826,   828,   829,   831,   834,   839,   840,   842,
-     844,   846,   847,   849,   851,   853,   855,   857,   858,   860
+     564,   566,   568,   570,   572,   574,   575,   577,   579,   581,
+     586,   590,   595,   597,   599,   603,   609,   611,   613,   617,
+     619,   623,   625,   629,   631,   635,   640,   644,   646,   648,
+     652,   656,   660,   664,   666,   668,   671,   674,   676,   678,
+     680,   682,   684,   686,   688,   690,   694,   700,   702,   706,
+     708,   712,   713,   715,   717,   719,   721,   723,   725,   727,
+     728,   734,   737,   739,   742,   745,   749,   751,   753,   757,
+     762,   764,   768,   771,   775,   777,   781,   782,   784,   786,
+     789,   792,   796,   798,   802,   804,   809,   814,   816,   818,
+     820,   822,   824,   826,   827,   829,   832,   837,   838,   840,
+     842,   844,   845,   847,   849,   851,   853,   855,   856,   858
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
@@ -668,7 +668,7 @@
      118,   238,    -1,    15,   118,   241,    -1,   239,    -1,   239,
      118,   178,    -1,   179,    -1,   178,   118,   179,    -1,   180,
       -1,    17,    -1,    18,    -1,    17,    -1,   181,   118,    17,
-      -1,   181,   118,    18,    -1,    16,    -1,   241,   152,     3,
+      -1,   181,   118,    18,    -1,    16,    -1,   241,   173,     3,
      184,    -1,   186,    -1,   187,    -1,   241,   114,   184,    -1,
       -1,   108,   185,   189,    -1,    68,    -1,    50,    -1,    91,
       -1,     6,    -1,     8,    -1,   188,    -1,   231,    -1,   241,
@@ -681,36 +681,35 @@
       53,    -1,    54,    -1,    55,    -1,    64,    -1,    69,    -1,
       79,    -1,    88,    -1,    90,    -1,    95,    -1,    97,    -1,
       98,    -1,    99,    -1,    71,    -1,   104,    -1,   105,    -1,
-     102,    -1,   103,    -1,    -1,   197,    -1,   198,    -1,   110,
-     215,   111,    -1,   199,    -1,    85,   110,   200,   111,    -1,
-     110,   200,   111,    -1,   199,   110,   200,   111,    -1,   107,
-      -1,   201,    -1,   201,   113,   107,    -1,   201,   113,   107,
-     113,   201,    -1,   202,    -1,    22,   101,   205,    -1,   203,
-      -1,   202,   194,   203,    -1,   204,    -1,   203,   195,   204,
-      -1,   205,    -1,   205,   101,   205,    -1,   207,   110,   200,
-     111,    -1,   110,   200,   111,    -1,   208,    -1,   209,    -1,
-     208,   219,   208,    -1,    66,   219,   208,    -1,   208,   219,
-      65,    -1,    66,   219,    65,    -1,   210,    -1,   206,    -1,
-      75,     7,    -1,    75,   241,    -1,    85,    -1,    51,    -1,
-      50,    -1,    91,    -1,   232,    -1,   188,    -1,   241,    -1,
-     238,    -1,   100,    34,   199,    -1,   100,    35,   108,   211,
-     109,    -1,   212,    -1,   211,   113,   212,    -1,   107,    -1,
-     241,   196,   213,    -1,    -1,   214,    -1,    78,    -1,    20,
-      -1,    74,    -1,   216,    -1,   220,    -1,   218,    -1,    -1,
-      36,    30,   108,   217,   189,    -1,    37,   173,    -1,   106,
-      -1,   106,   119,    -1,   119,   106,    -1,   119,   106,   119,
-      -1,   221,    -1,   222,    -1,   108,   238,   109,    -1,   221,
-     108,   223,   109,    -1,   224,    -1,   223,   113,   224,    -1,
-     120,   225,    -1,   120,   118,   225,    -1,   241,    -1,   225,
-     118,   241,    -1,    -1,   227,    -1,    74,    -1,    38,   184,
-      -1,   108,   109,    -1,   108,   229,   109,    -1,   230,    -1,
-     229,   113,   230,    -1,   241,    -1,   241,   110,   231,   111,
-      -1,   241,   110,   187,   111,    -1,   231,    -1,   107,    -1,
-      10,    -1,    11,    -1,   231,    -1,    12,    -1,    -1,   234,
-      -1,   235,   237,    -1,   115,   236,    10,   116,    -1,    -1,
-      94,    -1,    24,    -1,    80,    -1,    -1,    57,    -1,    46,
-      -1,    15,    -1,    16,    -1,    16,    -1,    -1,   241,    -1,
-       9,    -1
+     102,    -1,   103,    -1,    -1,   197,    -1,   198,    -1,   199,
+      -1,    85,   110,   200,   111,    -1,   110,   200,   111,    -1,
+     199,   110,   200,   111,    -1,   107,    -1,   201,    -1,   201,
+     113,   107,    -1,   201,   113,   107,   113,   201,    -1,   215,
+      -1,   202,    -1,    22,   101,   205,    -1,   203,    -1,   202,
+     194,   203,    -1,   204,    -1,   203,   195,   204,    -1,   205,
+      -1,   205,   101,   205,    -1,   207,   110,   200,   111,    -1,
+     110,   200,   111,    -1,   208,    -1,   209,    -1,   208,   219,
+     208,    -1,    66,   219,   208,    -1,   208,   219,    65,    -1,
+      66,   219,    65,    -1,   210,    -1,   206,    -1,    75,     7,
+      -1,    75,   241,    -1,    85,    -1,    51,    -1,    50,    -1,
+      91,    -1,   232,    -1,   188,    -1,   241,    -1,   238,    -1,
+     100,    34,   199,    -1,   100,    35,   108,   211,   109,    -1,
+     212,    -1,   211,   113,   212,    -1,   107,    -1,   241,   196,
+     213,    -1,    -1,   214,    -1,    78,    -1,    20,    -1,    74,
+      -1,   216,    -1,   220,    -1,   218,    -1,    -1,    36,    30,
+     108,   217,   189,    -1,    37,   173,    -1,   106,    -1,   106,
+     119,    -1,   119,   106,    -1,   119,   106,   119,    -1,   221,
+      -1,   222,    -1,   108,   238,   109,    -1,   221,   108,   223,
+     109,    -1,   224,    -1,   223,   113,   224,    -1,   120,   225,
+      -1,   120,   118,   225,    -1,   241,    -1,   225,   118,   241,
+      -1,    -1,   227,    -1,    74,    -1,    38,   184,    -1,   108,
+     109,    -1,   108,   229,   109,    -1,   230,    -1,   229,   113,
+     230,    -1,   241,    -1,   241,   110,   231,   111,    -1,   241,
+     110,   187,   111,    -1,   231,    -1,   107,    -1,    10,    -1,
+      11,    -1,   231,    -1,    12,    -1,    -1,   234,    -1,   235,
+     237,    -1,   115,   236,    10,   116,    -1,    -1,    94,    -1,
+      24,    -1,    80,    -1,    -1,    57,    -1,    46,    -1,    15,
+      -1,    16,    -1,    16,    -1,    -1,   241,    -1,     9,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -736,8 +735,8 @@
     1623,  1624,  1625,  1626,  1627,  1628,  1629,  1630,  1631,  1632,
     1633,  1634,  1640,  1642,  1643,  1646,  1653,  1665,  1667,  1671,
     1675,  1676,  1677,  1678,  1679,  1683,  1684,  1685,  1686,  1690,
-    1691,  1698,  1698,  1699,  1699,  1701,  1703,  1708,  1710,  1715,
-    1719,  1728,  1732,  1737,  1742,  1745,  1751,  1761,  1763,  1768,
+    1691,  1698,  1698,  1699,  1699,  1701,  1703,  1708,  1712,  1716,
+    1725,  1729,  1734,  1739,  1742,  1748,  1756,  1761,  1763,  1768,
     1770,  1775,  1777,  1783,  1785,  1790,  1799,  1807,  1813,  1819,
     1826,  1834,  1842,  1851,  1854,  1859,  1865,  1875,  1879,  1884,
     1890,  1895,  1896,  1897,  1910,  1924,  1928,  1933,  1937,  1942,
@@ -801,7 +800,7 @@
   "NSTD_IndirectMarker", "TypeDeclaration", "TypeDeclarationSet", 
   "ComplexTypeReference", "ComplexTypeReferenceAmpList", 
   "ComplexTypeReferenceElement", "PrimitiveFieldReference", "FieldName", 
-  "DefinedObjectClass", "ValueDefinition", "Value", "@4", "SimpleValue", 
+  "DefinedObjectClass", "ValueAssignment", "Value", "@4", "SimpleValue", 
   "DefinedValue", "RestrictedCharacterStringValue", "Opaque", 
   "BasicTypeId", "BasicTypeId_UniverationCompatible", "BasicType", 
   "BasicString", "UnionMark", "IntersectionMark", "optConstraints", 
@@ -865,8 +864,8 @@
      190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
      190,   190,   191,   191,   191,   192,   192,   193,   193,   193,
      193,   193,   193,   193,   193,   193,   193,   193,   193,   193,
-     193,   194,   194,   195,   195,   196,   196,   197,   197,   198,
-     198,   199,   199,   200,   200,   200,   200,   201,   201,   202,
+     193,   194,   194,   195,   195,   196,   196,   197,   198,   198,
+     199,   199,   200,   200,   200,   200,   200,   201,   201,   202,
      202,   203,   203,   204,   204,   205,   205,   205,   205,   205,
      205,   205,   205,   205,   205,   206,   206,   207,   207,   208,
      208,   208,   208,   208,   209,   210,   210,   211,   211,   212,
@@ -901,8 +900,8 @@
        1,     1,     1,     2,     2,     1,     1,     2,     2,     1,
        1,     1,     1,     1,     2,     1,     2,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     0,     1,     1,     3,     1,
-       4,     3,     4,     1,     1,     3,     5,     1,     3,     1,
+       1,     1,     1,     1,     1,     0,     1,     1,     1,     4,
+       3,     4,     1,     1,     3,     5,     1,     1,     3,     1,
        3,     1,     3,     1,     3,     4,     3,     1,     1,     3,
        3,     3,     3,     1,     1,     2,     2,     1,     1,     1,
        1,     1,     1,     1,     1,     3,     5,     1,     3,     1,
@@ -928,133 +927,133 @@
       39,     0,    41,    42,     0,    47,    49,    51,   187,     0,
      188,   189,   190,   191,   192,   200,   193,   194,   195,   196,
      197,   198,   199,    27,    28,    32,    30,    31,    35,     0,
-       0,    58,    60,    38,    43,     0,     0,     0,    33,    29,
+     293,    58,    60,    38,    43,     0,     0,     0,    33,    29,
      293,   134,   306,     0,   169,     0,     0,   183,   176,   180,
      182,   170,     0,     0,   171,   175,   179,     0,     0,    65,
-     185,   172,    64,   181,   138,     0,    44,    48,    50,    34,
-       0,   297,    68,    67,   123,   294,   301,     0,   184,   178,
+     185,   172,    64,   181,   138,   297,     0,   123,   294,   301,
+      44,    48,    50,    34,     0,    68,    67,     0,   184,   178,
      177,   174,   173,     0,    71,     0,   172,    73,     0,   293,
-       0,   186,     0,     0,    45,    46,     0,   299,   300,   298,
-       0,     0,   205,   303,   302,   295,   135,   137,     0,     0,
+       0,   186,     0,   299,   300,   298,     0,     0,     0,   205,
+     303,   302,   295,    45,    46,     0,   135,   137,     0,     0,
        0,     0,     0,    63,   158,   164,   159,   289,   290,   165,
      166,   156,   157,    83,     0,    78,    80,    81,   160,   161,
       82,   288,   280,     0,   282,   287,   284,   143,   144,   139,
-     140,   142,   136,   155,   153,   149,   150,   151,     0,   162,
-     293,   293,     0,   100,     0,   131,     0,     0,   205,   205,
-     125,   124,     0,     0,   122,   206,   207,   209,   293,    72,
-      77,    76,    75,    74,   292,     0,   239,   238,     0,     0,
-     237,   240,     0,   213,     0,   242,     0,   214,   217,   219,
-     221,   223,   234,     0,   227,   228,   233,   291,   241,   244,
-     243,    66,   293,   281,     0,     0,     0,     0,     0,     0,
+     140,   142,   136,     0,   155,   153,   149,   150,   151,     0,
+     162,   131,     0,     0,   205,   205,   125,   124,     0,     0,
+     122,   206,   207,   208,   293,   293,     0,   100,   293,    72,
+      77,    76,    75,    74,   292,     0,     0,   293,   239,   238,
+       0,     0,   237,   240,     0,   212,     0,     0,   242,     0,
+     213,   217,   219,   221,   223,   234,     0,   227,   228,   233,
+     216,   256,   258,   257,   266,   267,   291,   241,   244,   243,
+      66,   293,   281,     0,     0,     0,   296,     0,     0,     0,
+       0,   293,     0,   293,     0,   293,     0,     0,     0,     0,
      148,   145,     0,   278,   276,   276,   276,   102,   277,    98,
-     276,   276,   109,     0,   296,     0,   293,     0,   293,     0,
-     293,     0,     0,     0,   293,     0,     0,     0,   256,   258,
-     257,   266,   267,     0,    70,    69,     0,   262,     0,     0,
-     235,   236,     0,     0,     0,    62,     0,   201,   202,     0,
-     203,   204,     0,     0,     0,     0,    79,   283,     0,     0,
-     162,   141,   167,   154,   163,   152,   279,   107,     0,   106,
-     108,    99,   276,   104,   105,     0,    97,   110,   101,     0,
-     119,     0,    92,    95,    96,   293,   133,     0,     0,    85,
-      86,    91,   276,   293,   307,     0,   307,     0,     0,   261,
-       0,   211,   208,     0,     0,   218,   263,   264,   232,   230,
-       0,   245,     0,   226,   215,   220,   222,   224,     0,   231,
-     229,   286,   285,   168,   146,   147,   103,     0,   132,     0,
-     126,   293,    94,   293,   127,   293,    89,   276,   293,   308,
-     128,   293,   210,   259,   268,     0,     0,   270,   212,   265,
-     249,     0,   247,   205,     0,   225,   111,   120,   121,    93,
-      90,    87,    88,   123,   123,     0,     0,   272,   274,   269,
-       0,   246,     0,   251,   216,     0,   129,   130,   260,   273,
-       0,   271,   248,   254,   255,   253,   250,   252,   115,   116,
-       0,     0,   113,   117,   275,     0,   112,   114,   118
+     276,   276,   109,     0,    70,    69,     0,     0,   261,   262,
+       0,     0,   235,   236,     0,     0,     0,     0,    62,     0,
+     201,   202,     0,   203,   204,     0,     0,     0,     0,     0,
+      79,   283,     0,     0,   162,   141,   167,   154,   163,   152,
+       0,   119,     0,    92,    95,    96,   293,   133,     0,     0,
+      85,    86,    91,   276,   293,   307,     0,   307,     0,   210,
+       0,   279,   107,     0,   106,   108,    99,   276,   104,   105,
+       0,    97,   110,   101,   218,   259,   263,   264,   232,   230,
+     245,     0,   268,   226,   214,   220,   222,   224,     0,   231,
+     229,     0,     0,   270,   286,   285,   168,   132,     0,   126,
+     293,    94,   293,   127,   293,    89,   276,   293,   308,   128,
+     293,   209,   211,   146,   147,   103,     0,     0,   265,   249,
+       0,   247,   205,     0,   225,     0,   272,   274,   269,     0,
+     120,   121,    93,    90,    87,    88,   123,   123,   111,   260,
+     246,     0,   251,   215,   273,     0,   271,   129,   130,     0,
+     248,   254,   255,   253,   250,   252,   275,   115,   116,     0,
+       0,   113,   117,     0,   112,   114,   118
 };
 
 /* YYDEFGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =
 {
       -1,     3,     4,     5,     9,    11,    12,    16,    17,    28,
-      29,    30,    42,    43,    83,    84,   129,    54,    55,    61,
-      62,   155,    63,    64,    65,    44,    45,    48,    49,   183,
-      85,   118,    86,   143,   144,   184,   185,   358,   359,   360,
-     351,   352,   132,   342,   212,   213,   346,   347,   445,   461,
-     462,   361,   362,   161,   162,   221,   119,   199,   200,   463,
-     275,   276,    87,   205,   267,   206,   207,   245,   333,   120,
-     121,   122,   123,   319,   322,   224,   225,   226,   227,   296,
-     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
-     421,   422,   456,   457,   297,   298,   435,   299,   309,   300,
-     301,   302,   416,   417,   437,   277,   278,   151,   193,   194,
-     257,   258,   134,   135,   136,   160,   165,   259,   124,   408,
-     260
+      29,    30,    42,    43,    83,    84,   133,    54,    55,    61,
+      62,   164,    63,    64,    65,    44,    45,    48,    49,   183,
+      85,   118,    86,   143,   144,   184,   185,   349,   350,   351,
+     342,   343,   135,   367,   226,   227,   371,   372,   449,   460,
+     461,   352,   353,   158,   159,   217,   119,   199,   200,   462,
+     295,   296,    87,   206,   277,   207,   208,   248,   337,   120,
+     121,   122,   123,   322,   325,   220,   221,   222,   223,   249,
+     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
+     420,   421,   454,   455,   260,   261,   417,   262,   311,   263,
+     264,   265,   392,   393,   426,   297,   298,   151,   193,   194,
+     266,   267,   127,   128,   129,   156,   162,   268,   124,   407,
+     269
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -292
+#define YYPACT_NINF -282
 static const short yypact[] =
 {
-     104,  -292,  -292,    27,   104,  -292,  -292,  -292,  -292,   -75,
-      71,    17,  -292,  -292,  -292,  -292,    81,  -292,   -36,   141,
-    -292,  -292,    90,   107,   134,   139,   182,   172,   181,   141,
-    -292,   156,  -292,  -292,  -292,  -292,  -292,   243,  -292,  -292,
-     245,    73,   235,  -292,   222,  -292,   171,  -292,    80,  -292,
-     183,  -292,  -292,   167,   528,  -292,  -292,  -292,   186,   191,
-    -292,   190,   186,  -292,   -21,  -292,   196,  -292,  -292,   293,
-    -292,  -292,  -292,  -292,  -292,  -292,  -292,  -292,  -292,  -292,
-    -292,  -292,  -292,   528,  -292,  -292,  -292,  -292,  -292,   279,
-     696,  -292,  -292,  -292,  -292,   104,   186,   204,  -292,  -292,
-      -5,   201,  -292,   237,  -292,   249,   262,  -292,  -292,  -292,
-    -292,  -292,   284,   255,  -292,  -292,  -292,   772,   341,   238,
-    -292,   244,  -292,  -292,   227,   350,   -75,  -292,  -292,  -292,
-     247,     5,  -292,  -292,  -292,  -292,   -12,   186,  -292,  -292,
-    -292,  -292,  -292,     2,  -292,   248,  -292,   250,   251,    95,
-      68,  -292,   270,   206,  -292,  -292,   233,  -292,  -292,  -292,
-     347,   620,    36,  -292,  -292,  -292,  -292,  -292,   360,   772,
-     186,   186,   442,  -292,  -292,  -292,  -292,  -292,  -292,  -292,
-    -292,  -292,  -292,  -292,   121,  -292,  -292,  -292,  -292,  -292,
-    -292,  -292,  -292,   124,  -292,  -292,   256,  -292,  -292,   252,
-    -292,  -292,  -292,  -292,  -292,  -292,  -292,  -292,   253,   254,
-     162,    52,   126,  -292,   257,   325,   271,   307,    89,    96,
-    -292,  -292,   272,   397,  -292,  -292,  -292,   273,    -5,  -292,
-    -292,  -292,  -292,  -292,  -292,   280,  -292,  -292,   105,    57,
-    -292,  -292,   277,  -292,   442,  -292,   275,   281,   211,   215,
-    -292,   285,  -292,   278,   105,  -292,  -292,  -292,  -292,  -292,
-    -292,  -292,    95,  -292,    30,   216,   304,   380,   381,   206,
-    -292,  -292,   206,  -292,    20,    76,    20,  -292,  -292,   299,
-      76,    20,   296,   233,  -292,   363,    58,   311,    40,   324,
-      40,   326,   442,   368,   286,   104,   291,   292,  -292,  -292,
-    -292,   306,  -292,   442,  -292,  -292,   554,   297,   309,   234,
-    -292,  -292,   317,   320,   318,  -292,   310,  -292,  -292,   554,
-    -292,  -292,   554,   554,   442,   411,  -292,  -292,   319,   327,
-    -292,  -292,  -292,   426,  -292,  -292,  -292,  -292,   312,  -292,
-    -292,  -292,    20,  -292,  -292,   348,  -292,  -292,  -292,   381,
-     322,   129,  -292,  -292,  -292,   286,  -292,   364,   332,   323,
-    -292,  -292,    20,   286,   381,   333,   381,   334,   335,  -292,
-     337,  -292,  -292,   330,   349,  -292,  -292,   340,  -292,  -292,
-     442,   273,     9,  -292,   331,   215,  -292,  -292,   351,  -292,
-    -292,  -292,  -292,  -292,  -292,  -292,  -292,   357,  -292,   216,
-    -292,    58,  -292,   286,  -292,    41,  -292,    20,   286,  -292,
-    -292,   286,  -292,  -292,  -292,    26,   140,  -292,  -292,  -292,
-    -292,   151,  -292,    36,   509,  -292,  -292,  -292,  -292,  -292,
-    -292,  -292,  -292,  -292,  -292,   380,   381,   352,  -292,  -292,
-     330,  -292,     9,   131,  -292,    19,  -292,  -292,   426,   352,
-     381,  -292,  -292,  -292,  -292,  -292,  -292,  -292,  -292,  -292,
-      19,    53,  -292,  -292,  -292,    43,  -292,  -292,  -292
+     221,  -282,  -282,    51,   221,  -282,  -282,  -282,  -282,     8,
+       6,    75,  -282,  -282,  -282,  -282,    26,  -282,    13,   237,
+    -282,  -282,   144,   104,   106,   126,   115,   133,   205,   237,
+    -282,   136,  -282,  -282,  -282,  -282,  -282,   204,  -282,  -282,
+     166,    55,   213,  -282,   190,  -282,   165,  -282,   153,  -282,
+     185,  -282,  -282,   176,   493,  -282,  -282,  -282,   196,   186,
+    -282,   202,   196,  -282,   -14,  -282,   209,  -282,  -282,   303,
+    -282,  -282,  -282,  -282,  -282,  -282,  -282,  -282,  -282,  -282,
+    -282,  -282,  -282,   493,  -282,  -282,  -282,  -282,  -282,   271,
+     206,  -282,  -282,  -282,  -282,   221,   196,   223,  -282,  -282,
+     -19,   220,  -282,   258,  -282,   260,   275,  -282,  -282,  -282,
+    -282,  -282,   304,   272,  -282,  -282,  -282,   646,   361,   257,
+    -282,   266,  -282,  -282,   259,     9,   372,  -282,  -282,   122,
+       8,  -282,  -282,  -282,   268,  -282,  -282,   196,  -282,  -282,
+    -282,  -282,  -282,    74,  -282,   264,  -282,   269,   274,    99,
+      73,  -282,   273,  -282,  -282,  -282,   370,   210,   570,    34,
+    -282,  -282,  -282,  -282,  -282,   289,  -282,  -282,   381,   646,
+     196,   196,   386,  -282,  -282,  -282,  -282,  -282,  -282,  -282,
+    -282,  -282,  -282,  -282,    84,  -282,  -282,  -282,  -282,  -282,
+    -282,  -282,  -282,   119,  -282,  -282,   276,  -282,  -282,   267,
+    -282,  -282,  -282,   288,  -282,  -282,  -282,  -282,  -282,   287,
+     277,   347,   281,   319,    78,    96,  -282,  -282,   296,   386,
+    -282,  -282,  -282,   297,   218,    44,   120,  -282,   -19,  -282,
+    -282,  -282,  -282,  -282,  -282,   308,   380,   206,  -282,  -282,
+     -32,    95,  -282,  -282,   302,  -282,   221,   386,  -282,   305,
+     298,   224,   246,  -282,   311,  -282,   306,   -32,  -282,  -282,
+    -282,  -282,  -282,  -282,   309,  -282,  -282,  -282,  -282,  -282,
+    -282,    99,  -282,    82,   294,   337,  -282,   408,   409,   210,
+     389,    19,   341,    63,   348,    63,   351,   386,   314,   386,
+    -282,  -282,   210,  -282,    -6,    47,    -6,  -282,  -282,   327,
+      47,    -6,   326,   289,  -282,  -282,   453,   320,  -282,   310,
+     321,   189,  -282,  -282,   322,   325,   330,   323,  -282,   342,
+    -282,  -282,   453,  -282,  -282,   453,   453,   386,   231,   328,
+    -282,  -282,   339,   340,  -282,  -282,  -282,   425,  -282,  -282,
+     409,   338,   137,  -282,  -282,  -282,   206,  -282,   383,   349,
+     344,  -282,  -282,    -6,   206,   409,   350,   409,   343,  -282,
+     359,  -282,  -282,   345,  -282,  -282,  -282,    -6,  -282,  -282,
+     385,  -282,  -282,  -282,  -282,  -282,  -282,   354,  -282,  -282,
+     297,    48,  -282,  -282,   362,   246,  -282,  -282,   363,  -282,
+    -282,    -1,   139,  -282,  -282,  -282,  -282,  -282,   294,  -282,
+      19,  -282,   206,  -282,    18,  -282,    -6,   206,  -282,  -282,
+     206,  -282,  -282,  -282,  -282,  -282,   368,   408,  -282,  -282,
+     163,  -282,    34,   431,  -282,   409,   360,  -282,  -282,   328,
+    -282,  -282,  -282,  -282,  -282,  -282,  -282,  -282,  -282,   425,
+    -282,    48,    -9,  -282,   360,   409,  -282,  -282,  -282,    21,
+    -282,  -282,  -282,  -282,  -282,  -282,  -282,  -282,  -282,    21,
+      62,  -282,  -282,    37,  -282,  -282,  -282
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
-    -292,  -292,  -292,   462,  -292,  -292,   342,  -292,   451,  -292,
-    -292,   440,  -292,  -292,  -292,   388,  -292,  -292,  -292,  -292,
-    -292,  -292,   412,  -292,   377,  -292,  -292,  -292,   417,   329,
-    -292,   -68,  -292,  -292,   314,  -292,   217,   188,  -292,    75,
-    -292,    83,   258,  -292,  -292,   198,  -292,  -292,  -292,    25,
-    -193,  -278,   -98,  -292,   -97,  -292,   200,  -292,   223,  -142,
-     283,   287,  -292,    21,  -292,  -140,  -258,  -137,    55,   -71,
-     -52,  -292,   -30,  -292,  -292,  -215,  -292,  -292,   179,  -161,
-      72,  -292,   176,   177,  -291,  -292,  -292,  -118,  -292,  -292,
-    -292,    59,  -292,  -292,  -292,  -292,  -292,  -292,   246,  -292,
-    -292,  -292,  -292,    63,    70,  -255,  -292,  -292,  -292,   264,
-    -136,  -292,  -110,  -292,  -292,  -292,  -292,     1,  -292,   143,
+    -282,  -282,  -282,   475,  -282,  -282,   353,  -282,   464,  -282,
+    -282,   455,  -282,  -282,  -282,   402,  -282,  -282,  -282,  -282,
+    -282,  -282,   426,  -282,   391,  -282,  -282,  -282,   432,   352,
+    -282,   331,  -282,  -282,   329,  -282,   228,   207,  -282,    87,
+    -282,   101,   279,  -282,  -282,   192,  -282,  -282,  -282,    46,
+    -205,  -269,   -87,  -282,   -64,  -282,   229,  -282,   235,  -145,
+     290,   292,  -282,  -168,  -282,  -139,  -270,  -123,    97,   -75,
+     -72,  -282,   -34,  -282,  -282,  -213,  -282,  -282,   198,  -169,
+      90,  -282,   201,   193,  -231,  -282,  -282,  -281,  -282,  -282,
+    -282,    79,  -282,  -282,  -282,  -282,  -282,  -282,   270,  -282,
+    -282,  -282,  -282,   100,   105,  -277,  -282,  -282,  -282,   251,
+    -128,  -282,   -99,  -282,  -282,  -282,  -282,     5,  -282,   168,
      -10
 };
 
@@ -1065,165 +1064,147 @@
 #define YYTABLE_NINF -277
 static const short yytable[] =
 {
-      18,     6,   133,   289,   291,     6,    18,   328,   353,   187,
-     201,   246,   188,   189,   195,   375,   188,   189,    13,   337,
-     339,   340,   125,   458,    88,   343,   344,     7,   130,   157,
-      95,    51,   387,    10,   163,    13,   197,   198,   459,    13,
-     177,   178,    50,    67,    90,   164,   145,   458,    51,    13,
-      13,   186,    67,    88,    66,    89,    19,   458,   272,    50,
-     197,   198,   459,    66,   310,   146,    13,    13,   270,   271,
-     197,   198,   459,    90,    22,   357,   357,    13,   177,   178,
-      13,    14,    13,   314,    89,   158,    67,   396,     1,     2,
-      13,    14,    96,   220,   273,    46,   126,    66,   145,   159,
-      31,   174,   175,   176,    13,   177,   178,   406,   179,   180,
-     131,   168,   274,   279,   272,   169,   420,   146,   147,     1,
-       2,   222,   187,   353,   201,   188,   189,   167,   195,   329,
-     305,   367,   188,   189,   460,   188,   189,   191,   166,   190,
-     196,   427,   374,   209,   436,   181,   223,   350,   350,   -84,
-     273,   453,   432,   202,   208,   131,   131,    23,   460,   468,
-     231,   233,   466,   388,   186,   350,    24,   131,   460,    32,
-     147,   230,   232,   131,   222,   191,    13,   192,   270,   271,
-      15,   222,     1,     2,    37,    47,   182,    25,   354,    26,
-      20,   379,    57,    58,   338,    13,   369,   288,    27,   223,
-     272,     1,     2,   172,   290,   454,   223,   390,   443,   455,
-     131,   307,   174,   175,   176,    13,   177,   178,    60,   179,
-     180,     1,     2,    33,   308,    13,   177,   178,    34,   311,
-     261,     1,     2,   263,   262,   282,   273,   264,   400,   283,
-      35,   175,   401,    13,   177,   178,   234,   179,   180,   439,
-     210,   211,   190,   440,   196,   330,   181,   402,   334,   209,
-     441,    36,   209,   428,   442,   407,   208,    39,   467,    40,
-     208,  -276,   467,   208,   203,  -276,   355,   131,   363,    52,
-     363,    53,   100,    56,   236,     1,     2,   197,   198,   -25,
-     335,    59,    41,   336,   101,   102,   370,   182,   433,   378,
-      92,   434,    93,   354,    97,   430,   103,    68,   104,    98,
-     105,   312,   313,   128,   204,   317,   318,   320,   321,   137,
-     106,   197,   198,   138,   107,   241,   101,   102,   108,   394,
-     395,   109,    70,    71,    72,   139,   446,   447,   140,   398,
-     141,   142,   110,    73,   148,   152,   149,   111,    74,   112,
-      75,   113,   150,   153,   409,   156,   409,   214,    76,   172,
-     114,   115,   170,   228,   171,   285,   265,    77,   269,    78,
-     266,   268,   423,   284,    79,   116,    80,    81,    82,   286,
-     287,   306,   292,   303,   315,   332,   323,   117,   324,   330,
-      13,   355,   341,   349,   316,   363,   345,   364,   368,   366,
-     208,   131,   371,   372,   175,   438,    13,   177,   178,   234,
-     179,   180,     1,     2,   373,   377,   376,   384,   175,   235,
-      13,   177,   178,   234,   179,   180,   438,   380,   382,   383,
-     391,   393,   423,   293,   294,   397,   405,   403,   392,   399,
-     464,   404,   410,   413,   424,   412,   414,   236,   237,   175,
-     415,    13,   177,   178,   234,   179,   180,     1,     2,   419,
-     418,   236,   425,   238,   235,   426,     8,    21,   154,    38,
-     450,    99,   239,   127,    94,    91,   389,   173,   365,   326,
-     431,   348,   240,   229,   429,   465,   304,   356,   241,   331,
-     448,   381,   236,   237,   280,   385,   444,   242,   281,   386,
-     325,   452,   241,   451,   243,   295,   449,   244,   238,   411,
-       0,     0,     0,     0,     0,     0,   175,   239,    13,   177,
-     178,   234,   179,   180,     1,     2,     0,   240,   327,     0,
-       0,   235,     0,   241,     0,     0,     0,    13,     0,     0,
-       0,     0,   242,     1,     2,     0,     0,     0,     0,   243,
-       0,     0,   244,     0,     0,     0,    68,     0,     0,   236,
-     237,   175,     0,    13,   177,   178,   234,   179,   180,     1,
-       2,    69,     0,     0,     0,   238,     0,     0,     0,     0,
-       0,    70,    71,    72,   239,     0,     0,     0,     0,     0,
-       0,     0,    73,     0,   240,     0,     0,    74,     0,    75,
-     241,     0,     0,     0,   236,   237,     0,    76,     0,   242,
-       0,     0,     0,     0,     0,     0,    77,     0,    78,   244,
-     238,     0,     0,    79,     0,    80,    81,    82,     0,   239,
-       0,     0,     0,     0,     0,   101,   102,     0,     0,   240,
-       0,     0,     0,   215,     0,   241,     0,   103,    68,   104,
-       0,   105,   216,     0,   242,     0,     0,     0,     0,     0,
-       0,   106,     0,     0,   244,   107,     0,     0,     0,   108,
+      18,   284,   286,   126,   332,     6,    18,   201,    13,     6,
+     187,   451,   344,   136,   134,    13,    14,   362,   364,   365,
+      88,   189,   195,   368,   369,   457,   188,    13,    13,   189,
+     379,    51,   292,   153,   188,    13,    14,    95,   197,   198,
+     458,   457,   145,    67,    90,   146,    50,   390,    51,    88,
+     288,     7,    67,   348,   197,   198,   458,    13,    66,    89,
+     290,   291,   186,    50,    13,   452,   457,    66,   293,   453,
+       1,     2,    13,    90,   309,   374,   405,    46,   317,   197,
+     198,   458,    13,   177,   178,   292,    67,   310,    89,   154,
+     415,    13,   177,   178,   145,   387,   125,   146,   348,    96,
+     130,    66,   312,   155,    13,   174,   175,   176,    13,   177,
+     178,   339,   179,   180,    19,    15,    10,   425,   358,   218,
+     360,   293,   147,    22,   361,   341,   341,   167,   430,   435,
+     201,   344,   187,   125,   125,    20,   459,   294,   299,   190,
+     196,   305,   166,   189,   219,   195,   333,   210,   188,   181,
+     308,   189,   459,   466,    31,   419,   188,   202,   388,   125,
+     231,   233,   209,   218,   189,   363,    32,    47,   160,   188,
+     341,   464,   -84,    35,   147,   230,   232,   459,   125,   161,
+     191,   218,   192,   168,   186,    13,   283,   169,   219,   191,
+     182,     1,     2,   270,   345,    33,   175,   271,    13,   177,
+     178,   234,   179,   180,   285,    13,   219,   172,    37,   442,
+     -25,     1,     2,    41,   125,    34,   174,   175,   176,    13,
+     177,   178,    36,   179,   180,     1,     2,    60,   272,   302,
+      40,   313,   273,   303,   290,   291,     1,     2,   175,   238,
+      13,   177,   178,   234,   179,   180,   399,    39,   428,    53,
+     400,   316,   429,    23,   378,   465,   292,    52,   465,   401,
+     181,   190,    24,   196,   334,    57,    58,   406,   338,   210,
+     431,   346,   440,   354,   100,   354,   441,    56,   204,   209,
+     243,   238,   210,    25,   209,    26,   101,   102,     1,     2,
+     197,   198,   293,    59,    27,    92,   389,   209,   103,    68,
+     104,   182,   105,    13,   177,   178,   224,   225,   436,     1,
+       2,   437,   106,   345,    93,   433,   107,    97,   205,    98,
+     108,   125,   243,   109,    70,    71,    72,  -276,   320,   321,
+     397,  -276,   132,   125,   110,    73,   314,   315,   137,   111,
+      74,   112,    75,   113,   138,   408,   139,   408,   323,   324,
+      76,   140,   114,   115,   197,   198,   101,   102,   142,    77,
+     141,    78,   413,   414,   148,   149,    79,   116,    80,    81,
+      82,   422,   447,   448,   150,   157,   165,   152,   170,   117,
+     203,   427,   172,   171,   228,   275,   274,   280,   334,   281,
+     346,   279,   282,   175,   354,    13,   177,   178,   234,   179,
+     180,     1,     2,   209,   276,   278,   287,   289,   235,   306,
+     307,   319,   326,   336,   318,   427,   327,   329,    13,   340,
+     366,   355,   236,   237,   357,   359,   370,   377,   375,   376,
+     396,   422,   219,   381,   383,   456,   238,   239,   175,   382,
+      13,   177,   178,   234,   179,   180,     1,     2,   391,   384,
+     394,   395,   240,   235,   411,   398,   402,   404,   403,   409,
+     175,   241,    13,   177,   178,   234,   179,   180,     1,     2,
+     412,   242,   416,   418,   424,   423,   438,   243,   445,     8,
+      21,   238,   239,   163,    38,    99,   244,   131,    94,   216,
+      91,   434,   356,   245,   246,   373,   247,   240,   229,   330,
+     173,   432,    13,   238,   239,   463,   241,   304,     1,     2,
+     335,   347,   380,   443,   439,   300,   242,   301,   386,   240,
+     450,    68,   243,   385,   331,   410,     0,   328,   241,   446,
+     444,   244,     0,     0,     0,     0,    69,     0,   242,     0,
+       0,   247,     0,     0,   243,     0,    70,    71,    72,     0,
+       0,     0,     0,   244,     0,     0,     0,    73,     0,     0,
+       0,     0,    74,   247,    75,     0,     0,     0,     0,     0,
+       0,     0,    76,     0,     0,     0,     0,     0,     0,     0,
+       0,    77,     0,    78,     0,   101,   102,     0,    79,     0,
+      80,    81,    82,   211,     0,     0,     0,   103,    68,   104,
+       0,   105,   212,     0,     0,     0,     0,     0,     0,     0,
+       0,   106,     0,     0,     0,   107,     0,     0,     0,   108,
        0,     0,   109,    70,    71,    72,     0,     0,     0,     0,
-       0,   217,     0,   110,    73,     0,     0,     0,   111,    74,
+       0,   213,     0,   110,    73,     0,     0,     0,   111,    74,
      112,    75,   113,     0,     0,     0,     0,     0,     0,    76,
-       0,   114,   115,   218,   219,     0,     0,     0,    77,     0,
-      78,   101,   102,     0,     0,    79,   116,    80,    81,    82,
+       0,   114,   115,   214,   215,     0,     0,     0,    77,     0,
+      78,     1,     2,     0,     0,    79,   116,    80,    81,    82,
        0,     0,     0,   103,    68,   104,     0,   105,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   106,     0,     0,
        0,   107,     0,     0,     0,   108,     0,     0,   109,    70,
       71,    72,     0,     0,     0,     0,     0,     0,     0,   110,
       73,     0,     0,     0,   111,    74,   112,    75,   113,     0,
        0,     0,     0,     0,     0,    76,     0,   114,   115,     0,
-       0,     0,     0,     0,    77,     0,    78,     1,     2,     0,
-       0,    79,   116,    80,    81,    82,     0,     0,     0,   103,
-      68,   104,     0,   105,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   106,     0,     0,     0,   107,     0,     0,
-       0,   108,     0,     0,   109,    70,    71,    72,     0,     0,
-       0,     0,     0,     0,     0,   110,    73,     0,     0,     0,
-     111,    74,   112,    75,   113,     0,     0,     0,     0,     0,
-       0,    76,     0,   114,   115,     0,     0,     0,     0,     0,
-      77,     0,    78,     0,     0,     0,     0,    79,   116,    80,
-      81,    82
+       0,     0,     0,     0,    77,     0,    78,     0,     0,     0,
+       0,    79,   116,    80,    81,    82
 };
 
 static const short yycheck[] =
 {
-      10,     0,   100,   218,   219,     4,    16,   265,   286,   149,
-     152,   172,   149,   149,   150,   306,   153,   153,     9,   274,
-     275,   276,    90,     4,    54,   280,   281,     0,    33,    24,
-      51,    41,   323,   108,    46,     9,    17,    18,    19,     9,
-      10,    11,    41,    53,    54,    57,   117,     4,    58,     9,
-       9,   149,    62,    83,    53,    54,    39,     4,    38,    58,
-      17,    18,    19,    62,     7,   117,     9,     9,    16,    17,
-      17,    18,    19,    83,   110,    35,    35,     9,    10,    11,
-       9,    10,     9,   244,    83,    80,    96,   342,    15,    16,
-       9,    10,   113,   161,    74,    22,    95,    96,   169,    94,
-      10,     6,     7,     8,     9,    10,    11,   362,    13,    14,
-     115,   109,   210,   211,    38,   113,   107,   169,   117,    15,
-      16,    85,   262,   401,   266,   262,   262,   137,   264,   265,
-     228,   292,   269,   269,   115,   272,   272,   107,   137,   149,
-     150,   399,   303,   153,   118,    50,   110,   107,   107,   109,
-      74,    20,   407,   152,   153,   115,   115,    16,   115,   116,
-     170,   171,   109,   324,   262,   107,    25,   115,   115,    62,
-     169,   170,   171,   115,    85,   107,     9,   109,    16,    17,
-     109,    85,    15,    16,     3,   112,    91,    46,   286,    48,
-     109,   309,   112,   113,   118,     9,   294,   108,    57,   110,
-      38,    15,    16,   108,   108,    74,   110,   325,   423,    78,
-     115,   106,     6,     7,     8,     9,    10,    11,    51,    13,
-      14,    15,    16,    89,   119,     9,    10,    11,    89,   239,
-     109,    15,    16,   109,   113,   109,    74,   113,   109,   113,
-      58,     7,   113,     9,    10,    11,    12,    13,    14,   109,
-      17,    18,   262,   113,   264,   265,    50,   355,   268,   269,
-     109,    89,   272,   399,   113,   363,   265,   111,   461,    26,
-     269,   109,   465,   272,    68,   113,   286,   115,   288,    44,
-     290,    59,     3,   112,    50,    15,    16,    17,    18,    44,
-     269,   108,    47,   272,    15,    16,   295,    91,   408,    65,
-     109,   411,   112,   401,   108,   403,    27,    28,    29,    16,
-      31,    34,    35,   109,   108,   104,   105,   102,   103,   118,
-      41,    17,    18,    86,    45,    91,    15,    16,    49,    17,
-      18,    52,    53,    54,    55,    86,   433,   434,    76,   349,
-      56,    86,    63,    64,     3,   118,   108,    68,    69,    70,
-      71,    72,   108,     3,   364,   108,   366,    10,    79,   108,
-      81,    82,   114,     3,   114,    40,   110,    88,   114,    90,
-     118,   118,   382,   116,    95,    96,    97,    98,    99,   108,
-      73,   101,   110,   110,   109,     5,   101,   108,   110,   399,
-       9,   401,    93,    30,   113,   405,   100,    73,    30,    73,
-     399,   115,   111,   111,     7,   415,     9,    10,    11,    12,
-      13,    14,    15,    16,   108,   106,   119,   107,     7,    22,
-       9,    10,    11,    12,    13,    14,   436,   110,   108,   111,
-     111,     5,   442,    36,    37,    87,   113,    73,   111,   117,
-     450,   109,   109,   108,   113,   111,   109,    50,    51,     7,
-     120,     9,    10,    11,    12,    13,    14,    15,    16,   119,
-     111,    50,   111,    66,    22,   108,     4,    16,   126,    29,
-     118,    83,    75,    96,    62,    58,    65,   148,   290,   262,
-     405,   283,    85,   169,   401,   460,   228,   287,    91,   266,
-     435,   312,    50,    51,   211,   319,   424,   100,   211,   322,
-     254,   442,    91,   440,   107,   108,   436,   110,    66,   366,
-      -1,    -1,    -1,    -1,    -1,    -1,     7,    75,     9,    10,
-      11,    12,    13,    14,    15,    16,    -1,    85,   264,    -1,
-      -1,    22,    -1,    91,    -1,    -1,    -1,     9,    -1,    -1,
-      -1,    -1,   100,    15,    16,    -1,    -1,    -1,    -1,   107,
-      -1,    -1,   110,    -1,    -1,    -1,    28,    -1,    -1,    50,
-      51,     7,    -1,     9,    10,    11,    12,    13,    14,    15,
-      16,    43,    -1,    -1,    -1,    66,    -1,    -1,    -1,    -1,
-      -1,    53,    54,    55,    75,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    64,    -1,    85,    -1,    -1,    69,    -1,    71,
-      91,    -1,    -1,    -1,    50,    51,    -1,    79,    -1,   100,
-      -1,    -1,    -1,    -1,    -1,    -1,    88,    -1,    90,   110,
-      66,    -1,    -1,    95,    -1,    97,    98,    99,    -1,    75,
-      -1,    -1,    -1,    -1,    -1,    15,    16,    -1,    -1,    85,
-      -1,    -1,    -1,    23,    -1,    91,    -1,    27,    28,    29,
-      -1,    31,    32,    -1,   100,    -1,    -1,    -1,    -1,    -1,
-      -1,    41,    -1,    -1,   110,    45,    -1,    -1,    -1,    49,
+      10,   214,   215,    90,   274,     0,    16,   152,     9,     4,
+     149,    20,   281,   100,    33,     9,    10,   294,   295,   296,
+      54,   149,   150,   300,   301,     4,   149,     9,     9,   157,
+     311,    41,    38,    24,   157,     9,    10,    51,    17,    18,
+      19,     4,   117,    53,    54,   117,    41,   328,    58,    83,
+     219,     0,    62,    35,    17,    18,    19,     9,    53,    54,
+      16,    17,   149,    58,     9,    74,     4,    62,    74,    78,
+      15,    16,     9,    83,   106,   306,   353,    22,   247,    17,
+      18,    19,     9,    10,    11,    38,    96,   119,    83,    80,
+     367,     9,    10,    11,   169,   326,   115,   169,    35,   113,
+      95,    96,     7,    94,     9,     6,     7,     8,     9,    10,
+      11,   279,    13,    14,    39,   109,   108,   118,   287,    85,
+     289,    74,   117,   110,   292,   107,   107,   137,   398,   406,
+     275,   400,   271,   115,   115,   109,   115,   224,   225,   149,
+     150,   228,   137,   271,   110,   273,   274,   157,   271,    50,
+     237,   279,   115,   116,    10,   107,   279,   152,   327,   115,
+     170,   171,   157,    85,   292,   118,    62,   112,    46,   292,
+     107,   109,   109,    58,   169,   170,   171,   115,   115,    57,
+     107,    85,   109,   109,   271,     9,   108,   113,   110,   107,
+      91,    15,    16,   109,   281,    89,     7,   113,     9,    10,
+      11,    12,    13,    14,   108,     9,   110,   108,     3,   422,
+      44,    15,    16,    47,   115,    89,     6,     7,     8,     9,
+      10,    11,    89,    13,    14,    15,    16,    51,   109,   109,
+      26,   241,   113,   113,    16,    17,    15,    16,     7,    50,
+       9,    10,    11,    12,    13,    14,   109,   111,   109,    59,
+     113,   246,   113,    16,    65,   460,    38,    44,   463,   346,
+      50,   271,    25,   273,   274,   112,   113,   354,   278,   279,
+     398,   281,   109,   283,     3,   285,   113,   112,    68,   274,
+      91,    50,   292,    46,   279,    48,    15,    16,    15,    16,
+      17,    18,    74,   108,    57,   109,    65,   292,    27,    28,
+      29,    91,    31,     9,    10,    11,    17,    18,   407,    15,
+      16,   410,    41,   400,   112,   402,    45,   108,   108,    16,
+      49,   115,    91,    52,    53,    54,    55,   109,   104,   105,
+     340,   113,   109,   115,    63,    64,    34,    35,   118,    68,
+      69,    70,    71,    72,    86,   355,    86,   357,   102,   103,
+      79,    76,    81,    82,    17,    18,    15,    16,    86,    88,
+      56,    90,    17,    18,     3,   108,    95,    96,    97,    98,
+      99,   381,   436,   437,   108,     3,   108,   118,   114,   108,
+      10,   391,   108,   114,     3,   118,   110,    40,   398,   108,
+     400,   114,    73,     7,   404,     9,    10,    11,    12,    13,
+      14,    15,    16,   398,   116,   118,   110,   110,    22,   101,
+      30,   113,   101,     5,   109,   425,   110,   108,     9,    30,
+      93,    73,    36,    37,    73,   111,   100,   106,   108,   119,
+       5,   441,   110,   108,   111,   445,    50,    51,     7,   109,
+       9,    10,    11,    12,    13,    14,    15,    16,   120,   107,
+     111,   111,    66,    22,   111,   117,    73,   113,   109,   109,
+       7,    75,     9,    10,    11,    12,    13,    14,    15,    16,
+     111,    85,    87,   119,   111,   113,   108,    91,   118,     4,
+      16,    50,    51,   130,    29,    83,   100,    96,    62,   158,
+      58,   404,   285,   107,   108,   303,   110,    66,   169,   271,
+     148,   400,     9,    50,    51,   459,    75,   228,    15,    16,
+     275,   282,   314,   423,   417,   225,    85,   225,   325,    66,
+     441,    28,    91,   322,   273,   357,    -1,   257,    75,   429,
+     425,   100,    -1,    -1,    -1,    -1,    43,    -1,    85,    -1,
+      -1,   110,    -1,    -1,    91,    -1,    53,    54,    55,    -1,
+      -1,    -1,    -1,   100,    -1,    -1,    -1,    64,    -1,    -1,
+      -1,    -1,    69,   110,    71,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    88,    -1,    90,    -1,    15,    16,    -1,    95,    -1,
+      97,    98,    99,    23,    -1,    -1,    -1,    27,    28,    29,
+      -1,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    41,    -1,    -1,    -1,    45,    -1,    -1,    -1,    49,
       -1,    -1,    52,    53,    54,    55,    -1,    -1,    -1,    -1,
       -1,    61,    -1,    63,    64,    -1,    -1,    -1,    68,    69,
       70,    71,    72,    -1,    -1,    -1,    -1,    -1,    -1,    79,
@@ -1235,16 +1216,8 @@
       54,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,
       64,    -1,    -1,    -1,    68,    69,    70,    71,    72,    -1,
       -1,    -1,    -1,    -1,    -1,    79,    -1,    81,    82,    -1,
-      -1,    -1,    -1,    -1,    88,    -1,    90,    15,    16,    -1,
-      -1,    95,    96,    97,    98,    99,    -1,    -1,    -1,    27,
-      28,    29,    -1,    31,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    41,    -1,    -1,    -1,    45,    -1,    -1,
-      -1,    49,    -1,    -1,    52,    53,    54,    55,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    63,    64,    -1,    -1,    -1,
-      68,    69,    70,    71,    72,    -1,    -1,    -1,    -1,    -1,
-      -1,    79,    -1,    81,    82,    -1,    -1,    -1,    -1,    -1,
-      88,    -1,    90,    -1,    -1,    -1,    -1,    95,    96,    97,
-      98,    99
+      -1,    -1,    -1,    -1,    88,    -1,    90,    -1,    -1,    -1,
+      -1,    95,    96,    97,    98,    99
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1263,41 +1236,41 @@
      241,   149,   109,   112,   143,    51,   113,   108,    16,   136,
        3,    15,    16,    27,    29,    31,    41,    45,    49,    52,
       63,    68,    70,    72,    81,    82,    96,   108,   152,   177,
-     190,   191,   192,   193,   239,   152,   238,   145,   109,   137,
-      33,   115,   163,   173,   233,   234,   235,   118,    86,    86,
+     190,   191,   192,   193,   239,   115,   173,   233,   234,   235,
+     238,   145,   109,   137,    33,   163,   173,   118,    86,    86,
       76,    56,    86,   154,   155,   190,   191,   238,     3,   108,
-     108,   228,   118,     3,   127,   142,   108,    24,    80,    94,
-     236,   174,   175,    46,    57,   237,   238,   241,   109,   113,
+     108,   228,   118,    24,    80,    94,   236,     3,   174,   175,
+      46,    57,   237,   127,   142,   108,   238,   241,   109,   113,
      114,   114,   108,   150,     6,     7,     8,    10,    11,    13,
       14,    50,    91,   150,   156,   157,   173,   186,   188,   231,
      241,   107,   109,   229,   230,   231,   241,    17,    18,   178,
-     179,   180,   238,    68,   108,   184,   186,   187,   238,   241,
-      17,    18,   165,   166,    10,    23,    32,    61,    83,    84,
-     152,   176,    85,   110,   196,   197,   198,   199,     3,   155,
-     238,   241,   238,   241,    12,    22,    50,    51,    66,    75,
-      85,    91,   100,   107,   110,   188,   200,   201,   202,   203,
-     204,   205,   206,   207,   208,   209,   210,   231,   232,   238,
-     241,   109,   113,   109,   113,   110,   118,   185,   118,   114,
+     179,   180,   238,    10,    68,   108,   184,   186,   187,   238,
+     241,    23,    32,    61,    83,    84,   152,   176,    85,   110,
+     196,   197,   198,   199,    17,    18,   165,   166,     3,   155,
+     238,   241,   238,   241,    12,    22,    36,    37,    50,    51,
+      66,    75,    85,    91,   100,   107,   108,   110,   188,   200,
+     201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
+     215,   216,   218,   220,   221,   222,   231,   232,   238,   241,
+     109,   113,   109,   113,   110,   118,   116,   185,   118,   114,
+      40,   108,    73,   108,   196,   108,   196,   110,   200,   110,
       16,    17,    38,    74,   173,   181,   182,   226,   227,   173,
-     181,   182,   109,   113,   116,    40,   108,    73,   108,   196,
-     108,   196,   110,    36,    37,   108,   200,   215,   216,   218,
-     220,   221,   222,   110,   163,   173,   101,   106,   119,   219,
-       7,   241,    34,    35,   200,   109,   113,   104,   105,   194,
-     102,   103,   195,   101,   110,   219,   157,   230,   187,   231,
-     241,   179,     5,   189,   241,   184,   184,   226,   118,   226,
-     226,    93,   164,   226,   226,   100,   167,   168,   166,    30,
-     107,   161,   162,   172,   173,   241,   177,    35,   158,   159,
-     160,   172,   173,   241,    73,   158,    73,   200,    30,   173,
-     238,   111,   111,   108,   200,   205,   119,   106,    65,   208,
-     110,   199,   108,   111,   107,   203,   204,   205,   200,    65,
-     208,   111,   111,     5,    17,    18,   226,    87,   241,   117,
-     109,   113,   173,    73,   109,   113,   226,   173,   240,   241,
-     109,   240,   111,   108,   109,   120,   223,   224,   111,   119,
-     107,   211,   212,   241,   113,   111,   108,   187,   231,   162,
-     173,   160,   226,   233,   233,   217,   118,   225,   241,   109,
-     113,   109,   113,   196,   201,   169,   175,   175,   189,   225,
-     118,   224,   212,    20,    74,    78,   213,   214,     4,    19,
-     115,   170,   171,   180,   241,   170,   109,   171,   116
+     181,   182,   109,   113,   163,   173,   101,    30,   173,   106,
+     119,   219,     7,   241,    34,    35,   238,   200,   109,   113,
+     104,   105,   194,   102,   103,   195,   101,   110,   219,   108,
+     157,   230,   187,   231,   241,   179,     5,   189,   241,   184,
+      30,   107,   161,   162,   172,   173,   241,   177,    35,   158,
+     159,   160,   172,   173,   241,    73,   158,    73,   200,   111,
+     200,   184,   226,   118,   226,   226,    93,   164,   226,   226,
+     100,   167,   168,   166,   205,   108,   119,   106,    65,   208,
+     199,   108,   109,   111,   107,   203,   204,   205,   200,    65,
+     208,   120,   223,   224,   111,   111,     5,   241,   117,   109,
+     113,   173,    73,   109,   113,   226,   173,   240,   241,   109,
+     240,   111,   111,    17,    18,   226,    87,   217,   119,   107,
+     211,   212,   241,   113,   111,   118,   225,   241,   109,   113,
+     187,   231,   162,   173,   160,   226,   233,   233,   108,   189,
+     109,   113,   196,   201,   225,   118,   224,   175,   175,   169,
+     212,    20,    74,    78,   213,   214,   241,     4,    19,   115,
+     170,   171,   180,   170,   109,   171,   116
 };
 
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
@@ -3600,21 +3573,14 @@
     break;
 
   case 208:
-#line 1710 "asn1p_y.y"
-    {
-		yyval.a_constr = yyvsp[-1].a_constr;
-	}
-    break;
-
-  case 209:
-#line 1716 "asn1p_y.y"
+#line 1713 "asn1p_y.y"
     {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
 	}
     break;
 
-  case 210:
-#line 1719 "asn1p_y.y"
+  case 209:
+#line 1716 "asn1p_y.y"
     {
 		/*
 		 * This is a special case, for compatibility purposes.
@@ -3624,37 +3590,37 @@
 	}
     break;
 
-  case 211:
-#line 1729 "asn1p_y.y"
+  case 210:
+#line 1726 "asn1p_y.y"
     {
 		yyval.a_constr = yyvsp[-1].a_constr;
 	}
     break;
 
-  case 212:
-#line 1732 "asn1p_y.y"
+  case 211:
+#line 1729 "asn1p_y.y"
     {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	}
     break;
 
-  case 213:
-#line 1738 "asn1p_y.y"
+  case 212:
+#line 1735 "asn1p_y.y"
     {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		yyval.a_constr->type = ACT_EL_EXT;
 	}
     break;
 
-  case 214:
-#line 1742 "asn1p_y.y"
+  case 213:
+#line 1739 "asn1p_y.y"
     {
 		yyval.a_constr = yyvsp[0].a_constr;
 	}
     break;
 
-  case 215:
-#line 1745 "asn1p_y.y"
+  case 214:
+#line 1742 "asn1p_y.y"
     {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -3663,8 +3629,8 @@
 	}
     break;
 
-  case 216:
-#line 1751 "asn1p_y.y"
+  case 215:
+#line 1748 "asn1p_y.y"
     {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -3675,6 +3641,13 @@
 	}
     break;
 
+  case 216:
+#line 1756 "asn1p_y.y"
+    {
+		yyval.a_constr = yyvsp[0].a_constr;
+	}
+    break;
+
   case 218:
 #line 1763 "asn1p_y.y"
     {
@@ -4381,7 +4354,7 @@
     }
 
 /* Line 1016 of /usr/local/share/bison/yacc.c.  */
-#line 4385 "asn1p_y.c"
+#line 4358 "asn1p_y.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;