*** empty log message ***

diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c
index 024f520..385ded7 100644
--- a/libasn1parser/asn1p_y.c
+++ b/libasn1parser/asn1p_y.c
@@ -221,7 +221,7 @@
 
 
 
-#define	YYFINAL		445
+#define	YYFINAL		442
 #define	YYFLAG		-32768
 #define	YYNTBASE	118
 
@@ -281,22 +281,22 @@
    293,   295,   298,   300,   302,   304,   308,   312,   316,   317,
    320,   322,   327,   332,   337,   344,   351,   353,   358,   363,
    365,   369,   371,   375,   379,   383,   385,   389,   391,   395,
-   397,   399,   401,   403,   405,   409,   413,   415,   419,   424,
-   428,   429,   433,   435,   437,   439,   441,   443,   445,   447,
-   449,   451,   455,   457,   459,   461,   463,   466,   468,   470,
-   472,   474,   477,   480,   482,   484,   487,   490,   492,   494,
-   496,   498,   500,   503,   505,   508,   510,   512,   514,   516,
-   518,   520,   522,   524,   526,   528,   530,   532,   534,   536,
-   538,   540,   542,   544,   546,   547,   549,   551,   556,   560,
-   565,   567,   571,   577,   579,   583,   587,   591,   595,   600,
-   604,   606,   608,   612,   616,   620,   624,   626,   628,   629,
-   635,   637,   640,   643,   647,   649,   651,   653,   655,   657,
-   659,   661,   663,   667,   673,   675,   679,   681,   685,   686,
-   688,   690,   692,   694,   696,   698,   702,   707,   709,   713,
-   716,   720,   722,   726,   727,   729,   731,   734,   737,   741,
-   743,   747,   749,   754,   759,   761,   763,   765,   767,   768,
-   770,   773,   778,   779,   781,   783,   785,   786,   788,   790,
-   792,   794,   796,   797,   799
+   397,   399,   401,   403,   405,   409,   413,   415,   420,   424,
+   425,   429,   431,   433,   435,   437,   439,   441,   443,   445,
+   447,   451,   453,   455,   457,   459,   462,   464,   466,   468,
+   470,   473,   476,   478,   480,   483,   486,   488,   490,   492,
+   494,   496,   499,   501,   504,   506,   508,   510,   512,   514,
+   516,   518,   520,   522,   524,   526,   528,   530,   532,   534,
+   536,   538,   540,   542,   543,   545,   547,   552,   556,   561,
+   563,   567,   573,   575,   579,   583,   587,   591,   596,   600,
+   602,   604,   608,   612,   616,   620,   622,   624,   625,   631,
+   633,   636,   639,   643,   645,   647,   649,   651,   653,   655,
+   657,   659,   663,   669,   671,   675,   677,   681,   682,   684,
+   686,   688,   690,   692,   694,   698,   703,   705,   709,   712,
+   716,   718,   722,   723,   725,   727,   730,   733,   737,   739,
+   743,   745,   750,   755,   757,   759,   761,   763,   764,   766,
+   769,   774,   775,   777,   779,   781,   782,   784,   786,   788,
+   790,   792,   793,   795
 };
 
 static const short yyrhs[] = {   119,
@@ -326,8 +326,8 @@
      0,   224,   164,     0,   163,     0,   164,     0,    30,   105,
    156,   106,   158,     0,     0,    90,     0,   157,     0,   156,
    110,   157,     0,    15,   210,     0,    16,   164,   155,   210,
-     0,    16,   173,   210,     0,    15,   173,   210,     0,    16,
-   174,   210,     0,    15,   174,   210,     0,    15,   164,   210,
+     0,    16,   173,   210,     0,    16,   174,   210,     0,    15,
+   173,   210,     0,    15,   164,   210,     0,    15,   174,   210,
      0,     0,   159,     0,     0,    97,    84,   105,   160,   161,
    106,     0,   162,     0,   161,   162,     0,     4,     0,   171,
      0,   104,     0,   104,   112,   178,     0,   104,   112,   215,
@@ -341,45 +341,45 @@
    224,     0,   222,     0,   222,   113,   169,     0,   170,     0,
    169,   113,   170,     0,   172,     0,   172,     0,    15,     0,
     16,     0,    15,     0,   173,   113,    15,     0,   173,   113,
-    16,     0,    14,     0,   221,   113,    14,     0,   224,   143,
-     3,   176,     0,   224,   111,   176,     0,     0,   105,   177,
-   180,     0,    65,     0,    47,     0,    88,     0,     5,     0,
-     7,     0,   179,     0,   215,     0,   178,     0,   224,     0,
-   221,   113,   224,     0,     6,     0,    10,     0,    11,     0,
-     4,     0,   180,     4,     0,    26,     0,    65,     0,    78,
-     0,   182,     0,    69,    83,     0,    67,    53,     0,    79,
-     0,    46,     0,    38,    73,     0,    28,    83,     0,    93,
-     0,    49,     0,   184,     0,    60,     0,    42,     0,    24,
-    83,     0,   181,     0,   182,   212,     0,    25,     0,    50,
-     0,    51,     0,    52,     0,    61,     0,    66,     0,    76,
-     0,    85,     0,    87,     0,    92,     0,    94,     0,    95,
-     0,    96,     0,    68,     0,   101,     0,   102,     0,    99,
-     0,   100,     0,    98,     0,     0,   189,     0,   190,     0,
-    82,   107,   191,   108,     0,   107,   191,   108,     0,   190,
-   107,   191,   108,     0,   192,     0,   192,   110,   104,     0,
-   192,   110,   104,   110,   192,     0,   193,     0,    19,    98,
-   193,     0,   192,   185,   193,     0,   192,   186,   193,     0,
-   193,   187,   193,     0,   196,   107,   191,   108,     0,   107,
-   191,   108,     0,   197,     0,   198,     0,   197,   195,   197,
-     0,    63,   195,   197,     0,   197,   195,    62,     0,    63,
-   195,    62,     0,   204,     0,   199,     0,     0,    33,    27,
-   105,   194,   180,     0,   103,     0,   103,   114,     0,   114,
-   103,     0,   114,   103,   114,     0,    82,     0,    48,     0,
-    47,     0,    88,     0,   215,     0,   179,     0,   224,     0,
-   221,     0,    97,    31,   190,     0,    97,    32,   105,   200,
-   106,     0,   201,     0,   200,   110,   201,     0,   104,     0,
-   224,   188,   202,     0,     0,   203,     0,    75,     0,    17,
-     0,    71,     0,   205,     0,   206,     0,   105,   221,   106,
-     0,   205,   105,   207,   106,     0,   208,     0,   207,   110,
-   208,     0,   115,   209,     0,   115,   113,   209,     0,   224,
-     0,   209,   113,   224,     0,     0,   211,     0,    71,     0,
-    35,   176,     0,   105,   106,     0,   105,   213,   106,     0,
-   214,     0,   213,   110,   214,     0,   224,     0,   224,   107,
-   215,   108,     0,   224,   107,   178,   108,     0,   215,     0,
-   104,     0,     9,     0,    12,     0,     0,   217,     0,   218,
-   220,     0,   116,   219,     9,   117,     0,     0,    91,     0,
-    21,     0,    77,     0,     0,    54,     0,    43,     0,    13,
-     0,    14,     0,    14,     0,     0,   224,     0,     8,     0
+    16,     0,    14,     0,   224,   143,     3,   176,     0,   224,
+   111,   176,     0,     0,   105,   177,   180,     0,    65,     0,
+    47,     0,    88,     0,     5,     0,     7,     0,   179,     0,
+   215,     0,   178,     0,   224,     0,   221,   113,   224,     0,
+     6,     0,    10,     0,    11,     0,     4,     0,   180,     4,
+     0,    26,     0,    65,     0,    78,     0,   182,     0,    69,
+    83,     0,    67,    53,     0,    79,     0,    46,     0,    38,
+    73,     0,    28,    83,     0,    93,     0,    49,     0,   184,
+     0,    60,     0,    42,     0,    24,    83,     0,   181,     0,
+   182,   212,     0,    25,     0,    50,     0,    51,     0,    52,
+     0,    61,     0,    66,     0,    76,     0,    85,     0,    87,
+     0,    92,     0,    94,     0,    95,     0,    96,     0,    68,
+     0,   101,     0,   102,     0,    99,     0,   100,     0,    98,
+     0,     0,   189,     0,   190,     0,    82,   107,   191,   108,
+     0,   107,   191,   108,     0,   190,   107,   191,   108,     0,
+   192,     0,   192,   110,   104,     0,   192,   110,   104,   110,
+   192,     0,   193,     0,    19,    98,   193,     0,   192,   185,
+   193,     0,   192,   186,   193,     0,   193,   187,   193,     0,
+   196,   107,   191,   108,     0,   107,   191,   108,     0,   197,
+     0,   198,     0,   197,   195,   197,     0,    63,   195,   197,
+     0,   197,   195,    62,     0,    63,   195,    62,     0,   204,
+     0,   199,     0,     0,    33,    27,   105,   194,   180,     0,
+   103,     0,   103,   114,     0,   114,   103,     0,   114,   103,
+   114,     0,    82,     0,    48,     0,    47,     0,    88,     0,
+   215,     0,   179,     0,   224,     0,   221,     0,    97,    31,
+   190,     0,    97,    32,   105,   200,   106,     0,   201,     0,
+   200,   110,   201,     0,   104,     0,   224,   188,   202,     0,
+     0,   203,     0,    75,     0,    17,     0,    71,     0,   205,
+     0,   206,     0,   105,   221,   106,     0,   205,   105,   207,
+   106,     0,   208,     0,   207,   110,   208,     0,   115,   209,
+     0,   115,   113,   209,     0,   224,     0,   209,   113,   224,
+     0,     0,   211,     0,    71,     0,    35,   176,     0,   105,
+   106,     0,   105,   213,   106,     0,   214,     0,   213,   110,
+   214,     0,   224,     0,   224,   107,   215,   108,     0,   224,
+   107,   178,   108,     0,   215,     0,   104,     0,     9,     0,
+    12,     0,     0,   217,     0,   218,   220,     0,   116,   219,
+     9,   117,     0,     0,    91,     0,    21,     0,    77,     0,
+     0,    54,     0,    43,     0,    13,     0,    14,     0,    14,
+     0,     0,   224,     0,     8,     0
 };
 
 #endif
@@ -395,26 +395,26 @@
    774,   783,   793,   803,   808,   815,   822,   832,   838,   844,
    848,   871,   873,   875,   881,   887,   895,   901,   908,   913,
    919,   925,   931,   934,   940,   950,   952,   955,   963,   970,
-   983,   994,  1004,  1014,  1025,  1036,  1062,  1064,  1069,  1073,
-  1078,  1083,  1089,  1093,  1104,  1113,  1122,  1133,  1155,  1162,
-  1181,  1185,  1191,  1197,  1203,  1213,  1223,  1229,  1243,  1267,
-  1274,  1288,  1297,  1307,  1317,  1327,  1335,  1356,  1365,  1374,
-  1375,  1377,  1384,  1391,  1397,  1401,  1407,  1412,  1425,  1435,
-  1443,  1443,  1448,  1453,  1458,  1463,  1467,  1471,  1474,  1477,
-  1482,  1494,  1511,  1516,  1521,  1554,  1564,  1578,  1580,  1581,
-  1582,  1583,  1584,  1585,  1586,  1587,  1588,  1589,  1590,  1591,
-  1597,  1599,  1600,  1603,  1610,  1622,  1624,  1628,  1632,  1633,
-  1634,  1635,  1636,  1640,  1641,  1642,  1643,  1647,  1648,  1655,
-  1655,  1656,  1656,  1657,  1659,  1661,  1666,  1670,  1679,  1683,
-  1688,  1692,  1698,  1708,  1712,  1715,  1718,  1721,  1726,  1735,
-  1743,  1749,  1755,  1762,  1770,  1778,  1787,  1790,  1793,  1794,
-  1804,  1806,  1807,  1808,  1811,  1815,  1820,  1826,  1831,  1834,
-  1837,  1850,  1864,  1868,  1873,  1877,  1882,  1889,  1902,  1904,
-  1907,  1911,  1914,  1919,  1923,  1931,  1946,  1952,  1959,  1972,
-  1984,  1999,  2003,  2020,  2025,  2028,  2033,  2055,  2060,  2065,
-  2071,  2077,  2085,  2093,  2101,  2108,  2118,  2123,  2153,  2155,
-  2158,  2165,  2171,  2173,  2174,  2175,  2178,  2180,  2181,  2184,
-  2189,  2196,  2203,  2205,  2210
+   983,   994,  1004,  1015,  1025,  1036,  1047,  1049,  1054,  1058,
+  1063,  1068,  1074,  1078,  1089,  1098,  1107,  1118,  1140,  1147,
+  1166,  1170,  1176,  1182,  1188,  1198,  1208,  1214,  1228,  1252,
+  1259,  1273,  1282,  1292,  1302,  1312,  1320,  1341,  1350,  1359,
+  1360,  1362,  1369,  1376,  1382,  1386,  1392,  1412,  1422,  1430,
+  1430,  1435,  1440,  1445,  1450,  1454,  1458,  1461,  1464,  1469,
+  1481,  1498,  1503,  1508,  1541,  1551,  1565,  1567,  1568,  1569,
+  1570,  1571,  1572,  1573,  1574,  1575,  1576,  1577,  1578,  1584,
+  1586,  1587,  1590,  1597,  1609,  1611,  1615,  1619,  1620,  1621,
+  1622,  1623,  1627,  1628,  1629,  1630,  1634,  1635,  1642,  1642,
+  1643,  1643,  1644,  1646,  1648,  1653,  1657,  1666,  1670,  1675,
+  1679,  1685,  1695,  1699,  1702,  1705,  1708,  1713,  1722,  1730,
+  1736,  1742,  1749,  1757,  1765,  1774,  1777,  1780,  1781,  1791,
+  1793,  1794,  1795,  1798,  1802,  1807,  1813,  1818,  1821,  1824,
+  1837,  1851,  1855,  1860,  1864,  1869,  1876,  1889,  1891,  1894,
+  1898,  1901,  1906,  1910,  1918,  1933,  1939,  1946,  1959,  1971,
+  1986,  1990,  2007,  2012,  2015,  2020,  2042,  2047,  2052,  2058,
+  2064,  2072,  2080,  2088,  2095,  2105,  2110,  2140,  2142,  2145,
+  2152,  2158,  2160,  2161,  2162,  2165,  2167,  2168,  2171,  2176,
+  2183,  2190,  2192,  2197
 };
 #endif
 
@@ -482,22 +482,22 @@
    161,   161,   162,   162,   163,   163,   163,   164,   165,   166,
    167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
    167,   168,   168,   168,   168,   168,   168,   169,   169,   170,
-   171,   172,   172,   173,   173,   173,   174,   174,   175,   176,
-   177,   176,   176,   176,   176,   176,   176,   176,   176,   176,
-   178,   178,   179,   179,   179,   180,   180,   181,   181,   181,
-   181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
-   182,   182,   182,   183,   183,   184,   184,   184,   184,   184,
-   184,   184,   184,   184,   184,   184,   184,   184,   184,   185,
-   185,   186,   186,   187,   188,   188,   189,   189,   190,   190,
-   191,   191,   191,   192,   192,   192,   192,   192,   193,   193,
-   193,   193,   193,   193,   193,   193,   193,   193,   194,   193,
-   195,   195,   195,   195,   196,   196,   197,   197,   197,   197,
-   197,   198,   199,   199,   200,   200,   201,   201,   202,   202,
-   203,   203,   203,   204,   204,   205,   206,   207,   207,   208,
-   208,   209,   209,   210,   210,   211,   211,   212,   212,   213,
-   213,   214,   214,   214,   214,   214,   215,   215,   216,   216,
-   217,   218,   219,   219,   219,   219,   220,   220,   220,   221,
-   221,   222,   223,   223,   224
+   171,   172,   172,   173,   173,   173,   174,   175,   176,   177,
+   176,   176,   176,   176,   176,   176,   176,   176,   176,   178,
+   178,   179,   179,   179,   180,   180,   181,   181,   181,   181,
+   181,   181,   181,   181,   181,   181,   181,   181,   181,   182,
+   182,   182,   183,   183,   184,   184,   184,   184,   184,   184,
+   184,   184,   184,   184,   184,   184,   184,   184,   185,   185,
+   186,   186,   187,   188,   188,   189,   189,   190,   190,   191,
+   191,   191,   192,   192,   192,   192,   192,   193,   193,   193,
+   193,   193,   193,   193,   193,   193,   193,   194,   193,   195,
+   195,   195,   195,   196,   196,   197,   197,   197,   197,   197,
+   198,   199,   199,   200,   200,   201,   201,   202,   202,   203,
+   203,   203,   204,   204,   205,   206,   207,   207,   208,   208,
+   209,   209,   210,   210,   211,   211,   212,   212,   213,   213,
+   214,   214,   214,   214,   214,   215,   215,   216,   216,   217,
+   218,   219,   219,   219,   219,   220,   220,   220,   221,   221,
+   222,   223,   223,   224
 };
 
 static const short yyr2[] = {     0,
@@ -514,207 +514,206 @@
      1,     2,     1,     1,     1,     3,     3,     3,     0,     2,
      1,     4,     4,     4,     6,     6,     1,     4,     4,     1,
      3,     1,     3,     3,     3,     1,     3,     1,     3,     1,
-     1,     1,     1,     1,     3,     3,     1,     3,     4,     3,
-     0,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     3,     1,     1,     1,     1,     2,     1,     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,     3,     3,     1,     4,     3,     0,
+     3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+     3,     1,     1,     1,     1,     2,     1,     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,     1,     1,     0,     1,     1,     4,     3,     4,
-     1,     3,     5,     1,     3,     3,     3,     3,     4,     3,
-     1,     1,     3,     3,     3,     3,     1,     1,     0,     5,
-     1,     2,     2,     3,     1,     1,     1,     1,     1,     1,
-     1,     1,     3,     5,     1,     3,     1,     3,     0,     1,
-     1,     1,     1,     1,     1,     3,     4,     1,     3,     2,
-     3,     1,     3,     0,     1,     1,     2,     2,     3,     1,
-     3,     1,     4,     4,     1,     1,     1,     1,     0,     1,
-     2,     4,     0,     1,     1,     1,     0,     1,     1,     1,
-     1,     1,     0,     1,     1
+     1,     1,     1,     0,     1,     1,     4,     3,     4,     1,
+     3,     5,     1,     3,     3,     3,     3,     4,     3,     1,
+     1,     3,     3,     3,     3,     1,     1,     0,     5,     1,
+     2,     2,     3,     1,     1,     1,     1,     1,     1,     1,
+     1,     3,     5,     1,     3,     1,     3,     0,     1,     1,
+     1,     1,     1,     1,     3,     4,     1,     3,     2,     3,
+     1,     3,     0,     1,     1,     2,     2,     3,     1,     3,
+     1,     4,     4,     1,     1,     1,     1,     0,     1,     2,
+     4,     0,     1,     1,     1,     0,     1,     1,     1,     1,
+     1,     0,     1,     1
 };
 
 static const short yydefact[] = {     0,
-   280,   281,     1,     2,     5,     3,     0,     0,     6,   285,
+   279,   280,     1,     2,     5,     3,     0,     0,     6,   284,
     13,     8,     0,     9,    11,    14,     7,    10,     0,     0,
      0,     0,     0,     0,     0,    15,    16,     0,    22,    20,
-    18,    21,    19,     0,    17,    12,    23,   176,     0,     0,
-   177,   178,   179,     0,   180,   181,   189,   182,   183,   184,
-   185,   186,   187,   188,     0,    24,    25,    27,    28,    31,
+    18,    21,    19,     0,    17,    12,    23,   175,     0,     0,
+   176,   177,   178,     0,   179,   180,   188,   181,   182,   183,
+   184,   185,   186,   187,     0,    24,    25,    27,    28,    31,
     29,    30,    34,     0,     0,    32,     0,    49,     0,    50,
     52,    54,    36,     0,    37,     0,    42,    44,    46,     4,
-    26,   269,   122,   282,     0,   158,     0,     0,   172,   165,
-   169,   171,   159,     0,     0,   160,   164,   168,     0,     0,
-    57,    58,   161,   170,   126,     0,    33,    48,    47,     0,
-     0,    35,    38,     0,     0,     0,     0,   273,    60,    59,
-   109,   270,   277,     0,   173,   167,   166,   163,   162,     0,
+    26,   268,   122,   281,     0,   157,     0,     0,   171,   164,
+   168,   170,   158,     0,     0,   159,   163,   167,     0,     0,
+    57,    58,   160,   169,   126,     0,    33,    48,    47,     0,
+     0,    35,    38,     0,     0,     0,     0,   272,    60,    59,
+   109,   269,   276,     0,   172,   166,   165,   162,   161,     0,
     62,     0,    64,     0,     0,     0,    51,    53,    39,    43,
-    45,     0,   275,   276,   274,     0,     0,   195,   279,   278,
-   271,   123,   125,     0,     0,     0,     0,    55,   132,   133,
-   127,   128,   130,   124,   146,   153,   147,   267,   154,   155,
-   268,   144,   143,   145,   141,   139,   150,   148,   149,     0,
-   151,    40,    41,   269,   269,     0,    88,     0,   122,   282,
-   117,     0,     0,   195,   195,   110,   120,   174,   161,   111,
-     0,     0,     0,   108,   196,   197,   269,    63,    67,    66,
-    65,     0,     0,     0,     0,     0,   137,   134,     0,   256,
-   254,   254,   254,    90,   255,     0,    86,   254,   254,    97,
-     0,   272,     0,   269,     0,   269,     0,   269,     0,     0,
-   175,   269,     0,     0,     0,   227,   226,     0,   225,   228,
-     0,     0,     0,   230,     0,   201,   204,     0,   211,   212,
-   218,   217,   244,   245,   229,   232,   231,     0,    61,   156,
-    56,   129,   142,   152,   140,   257,    96,     0,    93,    95,
-     0,    87,   254,    92,    94,     0,    85,    98,    89,     0,
-   105,     0,    80,    83,    84,   269,   121,     0,     0,    73,
-    74,    79,   254,   269,   283,     0,   283,   266,   258,     0,
-   260,   265,   262,     0,    68,    70,    71,     0,     0,     0,
-   221,     0,     0,     0,     0,     0,     0,   199,   192,   193,
-   190,   191,     0,     0,     0,   194,     0,     0,     0,     0,
-     0,   157,   135,   136,   138,    91,     0,   118,     0,   112,
-   269,    82,   269,   113,   269,    77,   254,   269,   284,   114,
-   269,   259,     0,     0,   119,   269,   198,   205,   219,   222,
-   223,   216,   214,   233,     0,   246,   210,   202,   206,   207,
-   208,     0,   215,   213,     0,     0,   248,   200,    99,   106,
-   107,   151,    81,    78,    75,    76,   109,   109,   261,     0,
-     0,    69,     0,   224,   237,     0,   235,   195,     0,   209,
-     0,   250,   252,   247,     0,     0,   115,   116,   264,   263,
-   220,   234,     0,   239,   203,   251,     0,   249,   103,     0,
-   101,   104,   131,   236,   242,   243,   241,   238,   240,   253,
-   100,   102,     0,     0,     0
+    45,     0,   274,   275,   273,     0,     0,   194,   278,   277,
+   270,   123,   125,     0,     0,     0,     0,    55,   132,   133,
+   127,   128,   130,   124,   145,   152,   146,   266,   153,   154,
+   267,   143,   142,   144,   140,   138,   149,   147,   148,     0,
+   150,    40,    41,   268,   268,     0,    88,     0,   122,   281,
+   117,     0,     0,   194,   194,   110,   120,   173,   160,   111,
+     0,     0,     0,   108,   195,   196,   268,    63,    67,    66,
+    65,     0,     0,     0,     0,     0,   137,   134,     0,   255,
+   253,   253,   253,    90,   254,    86,   253,   253,    97,     0,
+   271,     0,   268,     0,   268,     0,   268,     0,     0,   174,
+   268,     0,     0,     0,   226,   225,     0,   224,   227,     0,
+     0,     0,   229,     0,   200,   203,     0,   210,   211,   217,
+   216,   243,   244,   228,   231,   230,     0,    61,   155,    56,
+   129,   141,   151,   139,   256,    95,     0,    94,    96,    87,
+   253,    92,    93,     0,    85,    98,    89,     0,   105,     0,
+    80,    83,    84,   268,   121,     0,     0,    73,    74,    79,
+   253,   268,   282,     0,   282,   265,   257,     0,   259,   264,
+   261,     0,    68,    70,    71,     0,     0,     0,   220,     0,
+     0,     0,     0,     0,     0,   198,   191,   192,   189,   190,
+     0,     0,     0,   193,     0,     0,     0,     0,     0,   156,
+   135,   136,    91,     0,   118,     0,   112,   268,    82,   268,
+   113,   268,    77,   253,   268,   283,   114,   268,   258,     0,
+     0,   119,   268,   197,   204,   218,   221,   222,   215,   213,
+   232,     0,   245,   209,   201,   205,   206,   207,     0,   214,
+   212,     0,     0,   247,   199,    99,   106,   107,   150,    81,
+    78,    75,    76,   109,   109,   260,     0,     0,    69,     0,
+   223,   236,     0,   234,   194,     0,   208,     0,   249,   251,
+   246,     0,     0,   115,   116,   263,   262,   219,   233,     0,
+   238,   202,   250,     0,   248,   103,     0,   101,   104,   131,
+   235,   241,   242,   240,   237,   239,   252,   100,   102,     0,
+     0,     0
 };
 
-static const short yydefgoto[] = {   443,
+static const short yydefgoto[] = {   440,
      3,     4,     8,     9,    13,    14,    25,    26,    27,    55,
     56,    57,   107,    58,    74,   183,    75,    76,    77,    59,
-    69,    70,    60,   212,   100,    61,   130,   131,   314,   315,
-   299,   300,   301,   292,   293,   119,   283,   186,   187,   287,
-   288,   416,   430,   431,   302,   303,   147,   148,   196,   101,
-   161,   162,   432,   163,   222,   223,    62,   176,   214,   177,
-   254,   271,   102,   103,   200,   104,   334,   335,   337,   204,
-   205,   206,   255,   256,   257,   403,   323,   258,   259,   260,
-   261,   406,   407,   438,   439,   262,   263,   264,   386,   387,
-   412,   224,   225,   241,   310,   311,   265,   121,   122,   123,
-   146,   151,   266,   105,   358,   267
+    69,    70,    60,   212,   100,    61,   130,   131,   312,   313,
+   297,   298,   299,   290,   291,   119,   281,   186,   187,   285,
+   286,   413,   427,   428,   300,   301,   147,   148,   196,   101,
+   161,   162,   429,   163,   222,   223,    62,   176,   214,   177,
+   253,   270,   102,   103,   200,   104,   332,   333,   335,   204,
+   205,   206,   254,   255,   256,   400,   321,   257,   258,   259,
+   260,   403,   404,   435,   436,   261,   262,   263,   383,   384,
+   409,   224,   225,   240,   308,   309,   264,   121,   122,   123,
+   146,   151,   265,   105,   355,   266
 };
 
-static const short yypact[] = {   200,
--32768,-32768,   200,-32768,   -83,-32768,    60,    10,-32768,-32768,
--32768,-32768,    62,-32768,   -48,   157,-32768,-32768,    20,    48,
-    23,    44,    98,    89,   212,   157,-32768,   117,-32768,-32768,
--32768,-32768,-32768,   207,-32768,-32768,   431,-32768,   226,    42,
--32768,-32768,-32768,   126,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   208,   431,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   242,   591,-32768,   148,-32768,    94,-32768,
-   146,-32768,-32768,    52,-32768,   -24,-32768,   160,-32768,-32768,
--32768,     5,   156,-32768,   196,-32768,   202,   214,-32768,-32768,
--32768,-32768,-32768,   244,   216,-32768,-32768,-32768,   666,   298,
--32768,-32768,-32768,-32768,   193,   309,-32768,-32768,-32768,   233,
-   213,-32768,-32768,   200,   233,   218,   220,    11,-32768,-32768,
--32768,-32768,   -15,   233,-32768,-32768,-32768,-32768,-32768,   -25,
--32768,   219,   221,   228,   248,   423,-32768,-32768,   -83,-32768,
--32768,   243,-32768,-32768,-32768,   317,   516,    53,-32768,-32768,
--32768,-32768,-32768,   328,   666,   331,   233,-32768,-32768,-32768,
-   227,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   232,
-   235,-32768,-32768,    49,    12,   -19,-32768,   224,   105,   238,
-   312,   246,   282,    82,    88,-32768,-32768,-32768,   250,-32768,
-   253,   254,   361,-32768,-32768,   255,   237,-32768,-32768,-32768,
--32768,   356,   274,   356,   331,   423,   251,-32768,   423,-32768,
-    19,   -18,    19,-32768,-32768,   263,   273,   -18,    19,   269,
-   243,-32768,   350,    15,   268,     8,   311,     8,   313,    39,
--32768,     7,   361,   281,   355,-32768,-32768,    87,-32768,-32768,
-   264,   200,   361,-32768,   276,    97,   288,   290,    87,-32768,
--32768,-32768,   291,-32768,-32768,-32768,-32768,   361,-32768,-32768,
-   391,-32768,   391,-32768,-32768,-32768,-32768,   289,-32768,-32768,
-   384,-32768,    19,-32768,-32768,   315,-32768,-32768,-32768,   331,
-   293,    36,-32768,-32768,-32768,   237,-32768,   330,   295,   292,
--32768,-32768,    19,   237,   331,   297,   331,-32768,-32768,    63,
--32768,-32768,   299,   122,-32768,-32768,-32768,   302,   379,   306,
-   300,   304,   172,   308,   314,   307,   310,-32768,-32768,-32768,
--32768,-32768,   318,   379,   379,-32768,   379,   361,   266,   323,
-   332,-32768,-32768,-32768,-32768,-32768,   316,-32768,   230,-32768,
-    15,-32768,   237,-32768,     2,-32768,    19,   237,-32768,-32768,
-   237,-32768,    68,   230,-32768,     7,-32768,-32768,-32768,-32768,
-   303,-32768,-32768,   255,     6,-32768,-32768,   336,-32768,-32768,
--32768,   333,-32768,-32768,    13,   142,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   339,
-   340,-32768,   356,-32768,-32768,   144,-32768,    53,   361,-32768,
-   331,   337,-32768,-32768,   323,   190,-32768,-32768,-32768,-32768,
-   391,-32768,     6,     3,   215,   337,   331,-32768,-32768,    27,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,   425,   451,-32768
+static const short yypact[] = {   258,
+-32768,-32768,   258,-32768,   -19,-32768,    51,   103,-32768,-32768,
+-32768,-32768,    69,-32768,    39,    87,-32768,-32768,   143,   114,
+    73,   105,   212,   183,   277,    87,-32768,   174,-32768,-32768,
+-32768,-32768,-32768,   262,-32768,-32768,   429,-32768,   279,    42,
+-32768,-32768,-32768,   211,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,   254,   429,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,   354,   581,-32768,   188,-32768,   167,-32768,
+   213,-32768,-32768,    38,-32768,   -28,-32768,   219,-32768,-32768,
+-32768,    -9,   216,-32768,   251,-32768,   252,   264,-32768,-32768,
+-32768,-32768,-32768,   289,   260,-32768,-32768,-32768,   656,   341,
+-32768,-32768,-32768,-32768,   233,   345,-32768,-32768,-32768,   247,
+   243,-32768,-32768,   258,   247,   244,   246,     4,-32768,-32768,
+-32768,-32768,    59,   247,-32768,-32768,-32768,-32768,-32768,   -22,
+-32768,   241,   248,   250,   301,   158,-32768,-32768,   -19,-32768,
+-32768,   276,-32768,-32768,-32768,   349,   506,   -54,-32768,-32768,
+-32768,-32768,-32768,   357,   656,   353,   247,-32768,-32768,-32768,
+   256,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   257,
+   253,-32768,-32768,    28,    12,    97,-32768,   255,   -73,   266,
+   326,   268,   304,   106,   122,-32768,-32768,-32768,   271,-32768,
+   272,   274,   168,-32768,-32768,   280,   267,-32768,-32768,-32768,
+-32768,   380,   290,   380,   353,   158,-32768,-32768,   158,-32768,
+    62,    27,    62,-32768,-32768,   296,    27,    62,   288,   276,
+-32768,   361,     8,   298,    15,   319,    15,   320,    56,-32768,
+     7,   168,   293,   366,-32768,-32768,   135,-32768,-32768,   299,
+   258,   168,-32768,   286,   200,   297,   291,   135,-32768,-32768,
+-32768,   292,-32768,-32768,-32768,-32768,   168,-32768,-32768,   395,
+-32768,   395,-32768,-32768,-32768,-32768,   311,-32768,-32768,-32768,
+    62,-32768,-32768,   318,-32768,-32768,-32768,   353,   300,   100,
+-32768,-32768,-32768,   267,-32768,   337,   302,   306,-32768,-32768,
+    62,   267,   353,   303,   353,-32768,-32768,   141,-32768,-32768,
+   317,   147,-32768,-32768,-32768,   310,   231,   305,   312,   308,
+   186,   321,   322,   323,   327,-32768,-32768,-32768,-32768,-32768,
+   330,   231,   231,-32768,   231,   168,   278,   316,   328,-32768,
+-32768,-32768,-32768,   333,-32768,   295,-32768,     8,-32768,   267,
+-32768,     2,-32768,    62,   267,-32768,-32768,   267,-32768,    81,
+   295,-32768,     7,-32768,-32768,-32768,-32768,   331,-32768,-32768,
+   280,    31,-32768,-32768,   315,-32768,-32768,-32768,   332,-32768,
+-32768,     9,   148,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,   336,   343,-32768,   380,
+-32768,-32768,   156,-32768,   -54,   168,-32768,   353,   339,-32768,
+-32768,   316,   139,-32768,-32768,-32768,-32768,   395,-32768,    31,
+     5,   221,   339,   353,-32768,-32768,    20,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   453,
+   455,-32768
 };
 
 static const short yypgoto[] = {-32768,
--32768,   420,-32768,   320,-32768,   439,-32768,-32768,   427,-32768,
--32768,   398,-32768,-32768,-32768,-32768,   381,-32768,   342,-32768,
--32768,   352,-32768,-32768,   395,-32768,-32768,   319,-32768,    99,
-   225,-32768,   109,-32768,   118,-32768,-32768,-32768,   241,-32768,
--32768,-32768,-32768,    43,  -229,   -80,-32768,   -75,-32768,  -103,
--32768,   265,-32768,  -253,   294,   305,-32768,   -28,-32768,  -270,
-   -78,  -211,    -3,   338,-32768,   120,-32768,-32768,-32768,  -187,
--32768,   153,  -171,    71,  -236,-32768,   234,-32768,  -287,-32768,
--32768,-32768,    66,-32768,-32768,-32768,-32768,-32768,-32768,    76,
-    83,  -210,-32768,-32768,-32768,   132,  -127,  -135,-32768,-32768,
--32768,-32768,     1,-32768,   189,    -7
+-32768,   454,-32768,   324,-32768,   443,-32768,-32768,   432,-32768,
+-32768,   404,-32768,-32768,-32768,-32768,   387,-32768,   347,-32768,
+-32768,   355,-32768,-32768,   399,-32768,-32768,   313,-32768,   104,
+   229,-32768,   118,-32768,   123,-32768,-32768,-32768,   242,-32768,
+-32768,-32768,-32768,    47,  -228,   -80,-32768,   -62,-32768,  -138,
+-32768,   263,-32768,  -344,   307,   309,-32768,  -145,-32768,  -317,
+   -26,  -211,   -68,   335,-32768,    29,-32768,-32768,-32768,  -187,
+-32768,   153,  -194,    71,  -133,-32768,   220,-32768,  -267,-32768,
+-32768,-32768,    63,-32768,-32768,-32768,-32768,-32768,-32768,    72,
+    78,  -209,-32768,-32768,-32768,   127,  -125,  -172,-32768,-32768,
+-32768,-32768,     1,-32768,   184,    -7
 };
 
 
-#define	YYLAST		762
+#define	YYLAST		752
 
 
 static const short yytable[] = {    15,
-     5,   120,   273,     5,   294,    15,   237,   239,   179,    10,
-   277,   279,   280,    10,    10,    10,   219,   284,   285,   435,
-    10,     7,    10,   114,     1,   217,   218,   149,    28,    65,
-   429,   143,    72,   298,   117,   373,    79,    64,   150,   298,
-    71,   159,   160,   197,    78,    16,    10,   168,    65,    10,
-   171,   384,   220,   219,     1,     2,    64,   178,    19,    10,
-    67,     1,   217,   218,     1,     2,    79,    10,    11,    10,
-    11,   318,   346,   436,    78,    10,   168,   437,   390,   171,
-   154,   327,   368,   219,   155,   115,   230,   144,   179,   220,
-   231,   179,   356,   400,   278,   132,   341,   379,   380,   133,
-   381,   145,    72,   221,   227,   291,    29,    79,    30,   405,
-    71,   291,   312,   -72,   139,    78,   153,   118,   291,   220,
-   118,   294,   118,   118,   152,   411,   269,   118,   181,    31,
-   118,   297,   441,    10,   202,   164,   180,   178,     1,     2,
-   178,   350,   308,   198,   309,   351,   396,   201,   209,   211,
-    68,   132,    32,   295,  -254,   133,    63,   210,  -254,   203,
-   112,   316,   433,   202,   118,    12,   382,    17,   362,   202,
-    20,   308,   363,    73,    33,    63,   433,   166,    21,    10,
-   168,   169,   170,   171,   226,   226,   236,   275,   203,   321,
-   276,   421,   238,   429,   203,   329,   330,   331,   332,    22,
-   322,    23,   109,   110,   159,   160,   333,   274,   181,  -280,
-    24,   181,     1,     2,    34,   352,   180,   124,   246,   180,
-   424,   391,   397,   357,    36,   398,   296,   365,   304,    37,
-   304,   366,   313,   372,   317,   312,   401,    10,   168,    66,
-    10,   171,     1,     2,    82,     1,     2,   414,    80,   422,
-   111,   415,   326,   423,    83,    84,   108,   184,   185,   250,
-     1,     2,   159,   160,   116,    85,    38,    86,   124,    87,
-   295,   166,   394,    10,   168,   169,   170,   171,   125,    88,
-    83,    84,   348,    89,   126,   316,   127,    90,   159,   160,
-    91,    41,    42,    43,   324,   325,   128,   359,   129,   359,
-   134,    92,    45,   343,   344,   135,    93,    46,    94,    47,
-    95,   136,   246,   329,   330,   331,   332,    48,   138,    96,
-    97,   417,   418,   141,   142,   188,    49,   383,    50,   156,
-   207,   157,   158,    51,    98,    52,    53,    54,    10,   213,
-   232,   392,  -281,   296,   215,   216,    99,   304,   233,   180,
-   234,   235,   118,   250,   240,   313,   392,   242,   317,   270,
-   243,   268,   282,  -281,   180,   286,   166,   408,    10,   168,
-   169,   170,   171,     1,     2,   281,   290,   413,   319,   244,
-   305,   320,   307,   328,   166,   336,    10,   168,   169,   170,
-   171,     1,     2,   245,   342,   340,   338,   345,   347,   353,
-   354,   355,   360,   413,   349,   364,   371,   246,   247,   367,
-   369,   245,   376,   370,   203,   408,   404,   377,   375,   440,
-   389,   378,     6,   248,   444,   246,   247,   165,   166,   167,
-    10,   168,   169,   170,   171,     1,     2,   385,    10,   388,
-   410,   248,   249,     1,     2,   409,   419,   420,   250,   427,
-   445,    18,    35,    81,   113,    38,   140,   251,   182,   106,
-   249,   137,   306,   395,   402,   252,   250,   253,   393,   172,
-    39,   289,   442,   208,    40,   251,   374,   272,   228,   425,
-    41,    42,    43,   252,   199,   253,    44,   173,   434,   229,
-   428,    45,   339,   426,   399,   361,    46,     0,    47,     0,
-     0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
-   174,     0,     0,     0,     0,    49,     0,    50,     0,     0,
-     0,     0,    51,     0,    52,    53,    54,   175,   189,   190,
-     0,     0,     0,     0,     0,   191,     0,     0,     0,    85,
+     5,   120,   272,     5,   292,    15,   236,   238,   197,    10,
+   179,   276,   278,   279,    10,    10,    10,   282,   283,   114,
+   117,   432,    10,   426,   143,   217,   218,   202,   387,    65,
+   132,  -279,    72,   296,   159,   160,    79,    64,    10,   124,
+    71,   217,   218,   397,    78,    10,   296,   316,    65,    10,
+     1,     2,   203,   370,     1,     2,    64,   325,    10,    11,
+    67,   219,   219,    10,   168,    63,    79,   171,   430,   381,
+   274,   343,   339,   275,    78,   433,    10,    11,   198,   434,
+   144,   115,   430,   154,    63,     7,   132,   155,    10,   168,
+   179,   353,   171,   179,   145,   295,   219,   220,   220,   133,
+    20,   149,    72,   221,   226,   289,   118,    79,    21,   178,
+    71,   289,   150,   310,   139,    78,   153,   118,   289,   292,
+   -72,   408,   118,   118,   152,   438,   268,   118,   181,    22,
+   118,    23,   220,  -253,   402,   164,   180,  -253,    16,   277,
+    24,   379,   426,   118,   393,    19,   112,   201,   209,   211,
+    68,    28,   293,   159,   160,   133,    12,   210,    30,   306,
+   314,   307,   165,   166,   167,    10,   168,   169,   170,   171,
+     1,     2,    29,   166,    17,    10,   168,   169,   170,   171,
+     1,     2,   394,   365,   306,   395,   243,   202,   418,   178,
+    31,   166,   178,    10,   168,   169,   170,   171,   376,   377,
+   244,   378,   229,   202,   172,   347,   230,   273,   181,   348,
+   235,   181,   203,   349,   245,   246,   180,   421,    10,   180,
+   388,   354,   173,     1,     2,   294,   237,   302,   203,   302,
+   247,   311,   245,   315,   310,   398,   166,   319,    10,   168,
+   169,   170,   171,     1,     2,   174,   359,   369,   320,   248,
+   360,   324,   362,   411,    10,   249,   363,   412,    73,     1,
+     2,   419,   175,   244,   250,   420,    32,   293,    33,   391,
+     1,     2,   251,   249,   252,   109,   110,   245,   246,    34,
+   345,    36,   314,   166,    37,    10,   168,   169,   170,   171,
+   184,   185,    66,   247,    80,   356,   108,   356,   327,   328,
+   329,   330,    10,   168,   159,   160,   171,     1,     2,   331,
+    83,    84,   248,     1,     2,   159,   160,   111,   249,   327,
+   328,   329,   330,   116,   245,   341,   342,   250,   124,   322,
+   323,   414,   415,   125,   126,   251,   127,   252,   389,   380,
+   294,   128,   129,   134,   302,   135,   180,   136,   138,   141,
+   142,   156,   311,   389,   158,   315,    82,   188,   157,   207,
+    10,   180,   232,   216,   405,   249,    83,    84,   213,   215,
+  -280,   231,   233,   234,   410,   239,   241,    85,    38,    86,
+   242,    87,   118,   269,   284,   280,   267,   288,   303,   305,
+   317,    88,   318,   326,   334,    89,   338,   336,   340,    90,
+   410,   344,    91,    41,    42,    43,   350,   351,   357,   366,
+   368,   346,   405,    92,    45,   352,   437,   364,    93,    46,
+    94,    47,    95,   361,   406,   367,   372,   203,   373,    48,
+   382,    96,    97,   375,   374,   385,    10,   386,    49,   407,
+    50,     1,     2,   416,   401,    51,    98,    52,    53,    54,
+   417,   424,   441,    38,   442,    18,     6,    35,    99,    81,
+   113,   140,   182,   106,   137,   304,   399,   208,    39,   392,
+   390,   287,    40,   439,   371,   271,   422,   337,    41,    42,
+    43,   199,   431,   425,    44,   423,   396,     0,   358,    45,
+     0,   227,     0,   228,    46,     0,    47,     0,     0,     0,
+     0,     0,     0,     0,    48,     0,     0,     0,     0,     0,
+     0,     0,     0,    49,     0,    50,     0,     0,   189,   190,
+    51,     0,    52,    53,    54,   191,     0,     0,     0,    85,
     38,    86,     0,    87,   192,     0,     0,     0,     0,     0,
      0,     0,     0,    88,     0,     0,     0,    89,     0,     0,
      0,    90,     0,     0,    91,    41,    42,    43,     0,     0,
@@ -741,60 +740,59 @@
 };
 
 static const short yycheck[] = {     7,
-     0,    82,   214,     3,   234,    13,   194,   195,   136,     8,
-   221,   222,   223,     8,     8,     8,    35,   228,   229,    17,
-     8,   105,     8,    48,    13,    14,    15,    43,     9,    37,
-     4,    21,    40,    32,    30,   323,    44,    37,    54,    32,
-    40,    15,    16,   147,    44,    36,     8,     9,    56,     8,
-    12,   339,    71,    35,    13,    14,    56,   136,   107,     8,
-    19,    13,    14,    15,    13,    14,    74,     8,     9,     8,
-     9,   243,   283,    71,    74,     8,     9,    75,   349,    12,
-   106,   253,   319,    35,   110,   110,   106,    77,   216,    71,
-   110,   219,   303,   364,   113,    99,   268,   334,   335,    99,
-   337,    91,   110,   184,   185,   104,    59,   115,    86,   104,
-   110,   104,   240,   106,   114,   115,   124,   116,   104,    71,
-   116,   351,   116,   116,   124,   113,   207,   116,   136,    86,
-   116,   235,   106,     8,    82,   135,   136,   216,    13,    14,
-   219,   106,   104,   147,   106,   110,   357,   147,   156,   157,
-   109,   155,    55,   234,   106,   155,    37,   157,   110,   107,
-   109,   242,   416,    82,   116,   106,   338,   106,   106,    82,
-    14,   104,   110,    48,    86,    56,   430,     6,    22,     8,
-     9,    10,    11,    12,   184,   185,   105,   216,   107,   103,
-   219,   403,   105,     4,   107,    99,   100,   101,   102,    43,
-   114,    45,   109,   110,    15,    16,   110,   215,   216,   105,
-    54,   219,    13,    14,     3,   296,   216,   113,    47,   219,
-   408,   349,   358,   304,   108,   361,   234,   106,   236,    23,
-   238,   110,   240,    62,   242,   363,   364,     8,     9,    14,
-     8,    12,    13,    14,     3,    13,    14,   106,    41,   106,
-   105,   110,   252,   110,    13,    14,   109,    15,    16,    88,
-    13,    14,    15,    16,   105,    24,    25,    26,   113,    28,
-   351,     6,   353,     8,     9,    10,    11,    12,    83,    38,
-    13,    14,   290,    42,    83,   366,    73,    46,    15,    16,
-    49,    50,    51,    52,    31,    32,    53,   305,    83,   307,
-     3,    60,    61,    15,    16,   113,    65,    66,    67,    68,
-    69,     3,    47,    99,   100,   101,   102,    76,   106,    78,
-    79,   397,   398,   106,   105,     9,    85,    62,    87,   111,
-     3,   111,   105,    92,    93,    94,    95,    96,     8,   113,
-   117,   349,   105,   351,   113,   111,   105,   355,    37,   349,
-   105,    70,   116,    88,   105,   363,   364,   105,   366,     4,
-   107,   107,    90,   113,   364,    97,     6,   375,     8,     9,
-    10,    11,    12,    13,    14,   113,    27,   385,    98,    19,
-    70,    27,    70,   108,     6,    98,     8,     9,    10,    11,
-    12,    13,    14,    33,     4,   105,   107,    14,    84,    70,
-   106,   110,   106,   411,   112,   107,   103,    47,    48,   108,
-   105,    33,   106,   114,   107,   423,   114,   108,   105,   427,
-   105,   104,     3,    63,     0,    47,    48,     5,     6,     7,
-     8,     9,    10,    11,    12,    13,    14,   115,     8,   108,
-   108,    63,    82,    13,    14,   110,   108,   108,    88,   113,
-     0,    13,    26,    56,    74,    25,   115,    97,   139,    65,
-    82,   110,   238,   355,   366,   105,    88,   107,   351,    47,
-    40,   231,   430,   155,    44,    97,   324,   213,   185,   409,
-    50,    51,    52,   105,   147,   107,    56,    65,   423,   185,
-   415,    61,   259,   411,   363,   307,    66,    -1,    68,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,
-    88,    -1,    -1,    -1,    -1,    85,    -1,    87,    -1,    -1,
-    -1,    -1,    92,    -1,    94,    95,    96,   105,    13,    14,
-    -1,    -1,    -1,    -1,    -1,    20,    -1,    -1,    -1,    24,
+     0,    82,   214,     3,   233,    13,   194,   195,   147,     8,
+   136,   221,   222,   223,     8,     8,     8,   227,   228,    48,
+    30,    17,     8,     4,    21,    14,    15,    82,   346,    37,
+    99,   105,    40,    32,    15,    16,    44,    37,     8,   113,
+    40,    14,    15,   361,    44,     8,    32,   242,    56,     8,
+    13,    14,   107,   321,    13,    14,    56,   252,     8,     9,
+    19,    35,    35,     8,     9,    37,    74,    12,   413,   337,
+   216,   281,   267,   219,    74,    71,     8,     9,   147,    75,
+    77,   110,   427,   106,    56,   105,   155,   110,     8,     9,
+   216,   301,    12,   219,    91,   234,    35,    71,    71,    99,
+    14,    43,   110,   184,   185,   104,   116,   115,    22,   136,
+   110,   104,    54,   239,   114,   115,   124,   116,   104,   348,
+   106,   113,   116,   116,   124,   106,   207,   116,   136,    43,
+   116,    45,    71,   106,   104,   135,   136,   110,    36,   113,
+    54,   336,     4,   116,   354,   107,   109,   147,   156,   157,
+   109,     9,   233,    15,    16,   155,   106,   157,    86,   104,
+   241,   106,     5,     6,     7,     8,     9,    10,    11,    12,
+    13,    14,    59,     6,   106,     8,     9,    10,    11,    12,
+    13,    14,   355,   317,   104,   358,    19,    82,   400,   216,
+    86,     6,   219,     8,     9,    10,    11,    12,   332,   333,
+    33,   335,   106,    82,    47,   106,   110,   215,   216,   110,
+   105,   219,   107,   294,    47,    48,   216,   405,     8,   219,
+   346,   302,    65,    13,    14,   233,   105,   235,   107,   237,
+    63,   239,    47,   241,   360,   361,     6,   103,     8,     9,
+    10,    11,    12,    13,    14,    88,   106,    62,   114,    82,
+   110,   251,   106,   106,     8,    88,   110,   110,    48,    13,
+    14,   106,   105,    33,    97,   110,    55,   348,    86,   350,
+    13,    14,   105,    88,   107,   109,   110,    47,    48,     3,
+   288,   108,   363,     6,    23,     8,     9,    10,    11,    12,
+    15,    16,    14,    63,    41,   303,   109,   305,    99,   100,
+   101,   102,     8,     9,    15,    16,    12,    13,    14,   110,
+    13,    14,    82,    13,    14,    15,    16,   105,    88,    99,
+   100,   101,   102,   105,    47,    15,    16,    97,   113,    31,
+    32,   394,   395,    83,    83,   105,    73,   107,   346,    62,
+   348,    53,    83,     3,   352,   113,   346,     3,   106,   106,
+   105,   111,   360,   361,   105,   363,     3,     9,   111,     3,
+     8,   361,    37,   111,   372,    88,    13,    14,   113,   113,
+   105,   117,   105,    70,   382,   105,   105,    24,    25,    26,
+   107,    28,   116,     4,    97,    90,   107,    27,    70,    70,
+    98,    38,    27,   108,    98,    42,   105,   107,     4,    46,
+   408,    84,    49,    50,    51,    52,    70,   106,   106,   105,
+   103,   112,   420,    60,    61,   110,   424,   108,    65,    66,
+    67,    68,    69,   107,   110,   114,   105,   107,   106,    76,
+   115,    78,    79,   104,   108,   108,     8,   105,    85,   108,
+    87,    13,    14,   108,   114,    92,    93,    94,    95,    96,
+   108,   113,     0,    25,     0,    13,     3,    26,   105,    56,
+    74,   115,   139,    65,   110,   237,   363,   155,    40,   352,
+   348,   230,    44,   427,   322,   213,   406,   258,    50,    51,
+    52,   147,   420,   412,    56,   408,   360,    -1,   305,    61,
+    -1,   185,    -1,   185,    66,    -1,    68,    -1,    -1,    -1,
+    -1,    -1,    -1,    -1,    76,    -1,    -1,    -1,    -1,    -1,
+    -1,    -1,    -1,    85,    -1,    87,    -1,    -1,    13,    14,
+    92,    -1,    94,    95,    96,    20,    -1,    -1,    -1,    24,
     25,    26,    -1,    28,    29,    -1,    -1,    -1,    -1,    -1,
     -1,    -1,    -1,    38,    -1,    -1,    -1,    42,    -1,    -1,
     -1,    46,    -1,    -1,    49,    50,    51,    52,    -1,    -1,
@@ -2114,17 +2112,6 @@
 #line 1004 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
-		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
-		yyval.a_expr->meta_type = AMT_OBJECTFIELD;
-		yyval.a_expr->expr_type = A1TC_CLASSFIELD_VTVSFS;
-		yyval.a_expr->reference = yyvsp[-1].a_ref;
-		yyval.a_expr->marker = yyvsp[0].a_marker;
-	;
-    break;}
-case 94:
-#line 1014 "asn1p_y.y"
-{
-		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
 		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
 		yyval.a_expr->reference = yyvsp[-1].a_ref;
@@ -2133,20 +2120,19 @@
 		yyval.a_expr->marker = yyvsp[0].a_marker;
 	;
     break;}
-case 95:
-#line 1025 "asn1p_y.y"
+case 94:
+#line 1015 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
-		checkmem(yyval.a_expr);
 		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
-		yyval.a_expr->reference = yyvsp[-1].a_ref;
 		yyval.a_expr->meta_type = AMT_OBJECTFIELD;
-		yyval.a_expr->expr_type = A1TC_CLASSFIELD_OSFS;
+		yyval.a_expr->expr_type = A1TC_CLASSFIELD_VTVSFS;
+		yyval.a_expr->reference = yyvsp[-1].a_ref;
 		yyval.a_expr->marker = yyvsp[0].a_marker;
 	;
     break;}
-case 96:
-#line 1036 "asn1p_y.y"
+case 95:
+#line 1025 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2157,48 +2143,60 @@
 		yyval.a_expr->marker = yyvsp[0].a_marker;
 	;
     break;}
+case 96:
+#line 1036 "asn1p_y.y"
+{
+		yyval.a_expr = asn1p_expr_new(yylineno);
+		checkmem(yyval.a_expr);
+		yyval.a_expr->Identifier = yyvsp[-2].tv_str;
+		yyval.a_expr->reference = yyvsp[-1].a_ref;
+		yyval.a_expr->meta_type = AMT_OBJECTFIELD;
+		yyval.a_expr->expr_type = A1TC_CLASSFIELD_OSFS;
+		yyval.a_expr->marker = yyvsp[0].a_marker;
+	;
+    break;}
 case 97:
-#line 1063 "asn1p_y.y"
+#line 1048 "asn1p_y.y"
 { yyval.a_wsynt = 0; ;
     break;}
 case 98:
-#line 1064 "asn1p_y.y"
+#line 1049 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[0].a_wsynt;
 	;
     break;}
 case 99:
-#line 1071 "asn1p_y.y"
+#line 1056 "asn1p_y.y"
 { asn1p_lexer_hack_enable_with_syntax(); ;
     break;}
 case 100:
-#line 1073 "asn1p_y.y"
+#line 1058 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[-1].a_wsynt;
 	;
     break;}
 case 101:
-#line 1079 "asn1p_y.y"
+#line 1064 "asn1p_y.y"
 {
 		yyval.a_wsynt = asn1p_wsyntx_new();
 		TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
 	;
     break;}
 case 102:
-#line 1083 "asn1p_y.y"
+#line 1068 "asn1p_y.y"
 {
 		yyval.a_wsynt = yyvsp[-1].a_wsynt;
 		TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next);
 	;
     break;}
 case 103:
-#line 1090 "asn1p_y.y"
+#line 1075 "asn1p_y.y"
 {
 		yyval.a_wchunk = asn1p_wsyntx_chunk_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 	;
     break;}
 case 104:
-#line 1093 "asn1p_y.y"
+#line 1078 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2210,7 +2208,7 @@
 	;
     break;}
 case 105:
-#line 1105 "asn1p_y.y"
+#line 1090 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2221,7 +2219,7 @@
 	;
     break;}
 case 106:
-#line 1113 "asn1p_y.y"
+#line 1098 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2233,7 +2231,7 @@
 	;
     break;}
 case 107:
-#line 1122 "asn1p_y.y"
+#line 1107 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2245,7 +2243,7 @@
 	;
     break;}
 case 108:
-#line 1134 "asn1p_y.y"
+#line 1119 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		yyval.a_expr->tag = yyvsp[-2].a_tag;
@@ -2267,14 +2265,14 @@
 	;
     break;}
 case 109:
-#line 1156 "asn1p_y.y"
+#line 1141 "asn1p_y.y"
 {
 		yyval.a_int = asn1p_as_pointer ? EM_INDIRECT : 0;
 		asn1p_as_pointer = 0;
 	;
     break;}
 case 110:
-#line 1163 "asn1p_y.y"
+#line 1148 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 		yyval.a_expr->marker.flags |= yyvsp[-1].a_int;
@@ -2293,13 +2291,13 @@
 	;
     break;}
 case 111:
-#line 1182 "asn1p_y.y"
+#line 1167 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[0].a_expr;
 	;
     break;}
 case 112:
-#line 1185 "asn1p_y.y"
+#line 1170 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2308,7 +2306,7 @@
 	;
     break;}
 case 113:
-#line 1191 "asn1p_y.y"
+#line 1176 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2317,7 +2315,7 @@
 	;
     break;}
 case 114:
-#line 1197 "asn1p_y.y"
+#line 1182 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 		assert(yyval.a_expr->expr_type == A1TC_INVALID);
@@ -2326,7 +2324,7 @@
 	;
     break;}
 case 115:
-#line 1203 "asn1p_y.y"
+#line 1188 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2339,7 +2337,7 @@
 	;
     break;}
 case 116:
-#line 1213 "asn1p_y.y"
+#line 1198 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2352,7 +2350,7 @@
 	;
     break;}
 case 117:
-#line 1223 "asn1p_y.y"
+#line 1208 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2361,7 +2359,7 @@
 	;
     break;}
 case 118:
-#line 1229 "asn1p_y.y"
+#line 1214 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = asn1p_expr_new(yylineno);
@@ -2375,7 +2373,7 @@
 	;
     break;}
 case 119:
-#line 1243 "asn1p_y.y"
+#line 1228 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_expr = yyvsp[-1].a_expr;
@@ -2392,7 +2390,7 @@
 	;
     break;}
 case 120:
-#line 1267 "asn1p_y.y"
+#line 1252 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2402,7 +2400,7 @@
 	;
     break;}
 case 121:
-#line 1274 "asn1p_y.y"
+#line 1259 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2412,7 +2410,7 @@
 	;
     break;}
 case 122:
-#line 1289 "asn1p_y.y"
+#line 1274 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2423,7 +2421,7 @@
 	;
     break;}
 case 123:
-#line 1297 "asn1p_y.y"
+#line 1282 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2436,7 +2434,7 @@
 	;
     break;}
 case 124:
-#line 1307 "asn1p_y.y"
+#line 1292 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2449,7 +2447,7 @@
 	;
     break;}
 case 125:
-#line 1317 "asn1p_y.y"
+#line 1302 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2462,7 +2460,7 @@
 	;
     break;}
 case 126:
-#line 1327 "asn1p_y.y"
+#line 1312 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2473,7 +2471,7 @@
 	;
     break;}
 case 127:
-#line 1335 "asn1p_y.y"
+#line 1320 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[0].a_ref;
@@ -2495,7 +2493,7 @@
 	;
     break;}
 case 128:
-#line 1357 "asn1p_y.y"
+#line 1342 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = asn1p_ref_new(yylineno);
@@ -2506,7 +2504,7 @@
 	;
     break;}
 case 129:
-#line 1365 "asn1p_y.y"
+#line 1350 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_ref = yyvsp[-2].a_ref;
@@ -2516,57 +2514,49 @@
 	;
     break;}
 case 132:
-#line 1379 "asn1p_y.y"
+#line 1364 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_AmpUppercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 133:
-#line 1384 "asn1p_y.y"
+#line 1369 "asn1p_y.y"
 {
 		yyval.a_refcomp.lex_type = RLT_Amplowercase;
 		yyval.a_refcomp.name = yyvsp[0].tv_str;
 	;
     break;}
 case 134:
-#line 1393 "asn1p_y.y"
+#line 1378 "asn1p_y.y"
 {
 		yyval.a_ref = asn1p_ref_new(yylineno);
 		asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase);
 	;
     break;}
 case 135:
-#line 1397 "asn1p_y.y"
+#line 1382 "asn1p_y.y"
 {
 		yyval.a_ref = yyval.a_ref;
 		asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase);
 	;
     break;}
 case 136:
-#line 1401 "asn1p_y.y"
+#line 1386 "asn1p_y.y"
 {
 		yyval.a_ref = yyval.a_ref;
 		asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_Amplowercase);
 	;
     break;}
 case 137:
-#line 1408 "asn1p_y.y"
+#line 1393 "asn1p_y.y"
 {
 		yyval.a_ref = asn1p_ref_new(yylineno);
 		asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS);
 	;
     break;}
 case 138:
-#line 1412 "asn1p_y.y"
-{
-		yyval.a_ref = asn1p_ref_new(yylineno);
-		asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_AmpUppercase);
-		asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS);
-	;
-    break;}
-case 139:
-#line 1426 "asn1p_y.y"
+#line 1413 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		assert(yyval.a_expr->Identifier == NULL);
@@ -2575,8 +2565,8 @@
 		yyval.a_expr->value = yyvsp[0].a_value;
 	;
     break;}
-case 140:
-#line 1436 "asn1p_y.y"
+case 139:
+#line 1423 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
@@ -2585,76 +2575,76 @@
 		yyval.a_value->value.choice_identifier.value = yyvsp[0].a_value;
 	;
     break;}
-case 141:
-#line 1443 "asn1p_y.y"
+case 140:
+#line 1430 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
-case 142:
-#line 1443 "asn1p_y.y"
+case 141:
+#line 1430 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_UNPARSED;
 	;
     break;}
-case 143:
-#line 1448 "asn1p_y.y"
+case 142:
+#line 1435 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_NULL;
 	;
     break;}
-case 144:
-#line 1453 "asn1p_y.y"
+case 143:
+#line 1440 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_FALSE;
 	;
     break;}
-case 145:
-#line 1458 "asn1p_y.y"
+case 144:
+#line 1445 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_TRUE;
 	;
     break;}
-case 146:
-#line 1463 "asn1p_y.y"
+case 145:
+#line 1450 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B');
 		checkmem(yyval.a_value);
 	;
     break;}
-case 147:
-#line 1467 "asn1p_y.y"
+case 146:
+#line 1454 "asn1p_y.y"
 {
 		yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H');
 		checkmem(yyval.a_value);
 	;
     break;}
-case 148:
-#line 1471 "asn1p_y.y"
+case 147:
+#line 1458 "asn1p_y.y"
 {
 		yyval.a_value = yyval.a_value;
 	;
     break;}
+case 148:
+#line 1461 "asn1p_y.y"
+{
+		yyval.a_value = yyvsp[0].a_value;
+	;
+    break;}
 case 149:
-#line 1474 "asn1p_y.y"
+#line 1464 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 150:
-#line 1477 "asn1p_y.y"
-{
-		yyval.a_value = yyvsp[0].a_value;
-	;
-    break;}
-case 151:
-#line 1483 "asn1p_y.y"
+#line 1470 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2667,8 +2657,8 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 152:
-#line 1494 "asn1p_y.y"
+case 151:
+#line 1481 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -2684,31 +2674,31 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 153:
-#line 1512 "asn1p_y.y"
+case 152:
+#line 1499 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0);
 		checkmem(yyval.a_value);
 	;
     break;}
-case 154:
-#line 1516 "asn1p_y.y"
+case 153:
+#line 1503 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_TUPLE;
 	;
     break;}
-case 155:
-#line 1521 "asn1p_y.y"
+case 154:
+#line 1508 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_QUADRUPLE;
 	;
     break;}
-case 156:
-#line 1555 "asn1p_y.y"
+case 155:
+#line 1542 "asn1p_y.y"
 {
 		yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1;
 		yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1);
@@ -2719,8 +2709,8 @@
 		free(yyvsp[0].tv_opaque.buf);
 	;
     break;}
-case 157:
-#line 1564 "asn1p_y.y"
+case 156:
+#line 1551 "asn1p_y.y"
 {
 		int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len;
 		char *p = malloc(newsize + 1);
@@ -2734,72 +2724,72 @@
 		yyval.tv_opaque.len = newsize;
 	;
     break;}
-case 158:
-#line 1579 "asn1p_y.y"
+case 157:
+#line 1566 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BOOLEAN; ;
     break;}
-case 159:
-#line 1580 "asn1p_y.y"
+case 158:
+#line 1567 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_NULL; ;
     break;}
-case 160:
-#line 1581 "asn1p_y.y"
+case 159:
+#line 1568 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_REAL; ;
     break;}
-case 161:
-#line 1582 "asn1p_y.y"
+case 160:
+#line 1569 "asn1p_y.y"
 { yyval.a_type = yyvsp[0].a_type; ;
     break;}
-case 162:
-#line 1583 "asn1p_y.y"
+case 161:
+#line 1570 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OCTET_STRING; ;
     break;}
-case 163:
-#line 1584 "asn1p_y.y"
+case 162:
+#line 1571 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; ;
     break;}
-case 164:
-#line 1585 "asn1p_y.y"
+case 163:
+#line 1572 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_RELATIVE_OID; ;
     break;}
-case 165:
-#line 1586 "asn1p_y.y"
+case 164:
+#line 1573 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EXTERNAL; ;
     break;}
-case 166:
-#line 1587 "asn1p_y.y"
+case 165:
+#line 1574 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; ;
     break;}
-case 167:
-#line 1588 "asn1p_y.y"
+case 166:
+#line 1575 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_CHARACTER_STRING; ;
     break;}
-case 168:
-#line 1589 "asn1p_y.y"
+case 167:
+#line 1576 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_UTCTime; ;
     break;}
-case 169:
-#line 1590 "asn1p_y.y"
+case 168:
+#line 1577 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_GeneralizedTime; ;
     break;}
-case 170:
-#line 1591 "asn1p_y.y"
+case 169:
+#line 1578 "asn1p_y.y"
 { yyval.a_type = yyvsp[0].a_type; ;
     break;}
-case 171:
-#line 1598 "asn1p_y.y"
+case 170:
+#line 1585 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_INTEGER; ;
     break;}
-case 172:
-#line 1599 "asn1p_y.y"
+case 171:
+#line 1586 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_ENUMERATED; ;
     break;}
-case 173:
-#line 1600 "asn1p_y.y"
+case 172:
+#line 1587 "asn1p_y.y"
 { yyval.a_type = ASN_BASIC_BIT_STRING; ;
     break;}
-case 174:
-#line 1604 "asn1p_y.y"
+case 173:
+#line 1591 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -2807,8 +2797,8 @@
 		yyval.a_expr->meta_type = AMT_TYPE;
 	;
     break;}
-case 175:
-#line 1610 "asn1p_y.y"
+case 174:
+#line 1597 "asn1p_y.y"
 {
 		if(yyvsp[0].a_expr) {
 			yyval.a_expr = yyvsp[0].a_expr;
@@ -2820,92 +2810,92 @@
 		yyval.a_expr->meta_type = AMT_TYPE;
 	;
     break;}
-case 176:
-#line 1623 "asn1p_y.y"
+case 175:
+#line 1610 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_BMPString; ;
     break;}
-case 177:
-#line 1624 "asn1p_y.y"
+case 176:
+#line 1611 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GeneralString;
 		fprintf(stderr, "WARNING: GeneralString is not fully supported\n");
 	;
     break;}
-case 178:
-#line 1628 "asn1p_y.y"
+case 177:
+#line 1615 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_GraphicString;
 		fprintf(stderr, "WARNING: GraphicString is not fully supported\n");
 	;
     break;}
-case 179:
-#line 1632 "asn1p_y.y"
+case 178:
+#line 1619 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_IA5String; ;
     break;}
-case 180:
-#line 1633 "asn1p_y.y"
+case 179:
+#line 1620 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ISO646String; ;
     break;}
-case 181:
-#line 1634 "asn1p_y.y"
+case 180:
+#line 1621 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_NumericString; ;
     break;}
-case 182:
-#line 1635 "asn1p_y.y"
+case 181:
+#line 1622 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_PrintableString; ;
     break;}
-case 183:
-#line 1636 "asn1p_y.y"
+case 182:
+#line 1623 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_T61String;
 		fprintf(stderr, "WARNING: T61String is not fully supported\n");
 	;
     break;}
-case 184:
-#line 1640 "asn1p_y.y"
+case 183:
+#line 1627 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_TeletexString; ;
     break;}
-case 185:
-#line 1641 "asn1p_y.y"
+case 184:
+#line 1628 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UniversalString; ;
     break;}
-case 186:
-#line 1642 "asn1p_y.y"
+case 185:
+#line 1629 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_UTF8String; ;
     break;}
-case 187:
-#line 1643 "asn1p_y.y"
+case 186:
+#line 1630 "asn1p_y.y"
 {
 		yyval.a_type = ASN_STRING_VideotexString;
 		fprintf(stderr, "WARNING: VideotexString is not fully supported\n");
 	;
     break;}
-case 188:
-#line 1647 "asn1p_y.y"
+case 187:
+#line 1634 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_VisibleString; ;
     break;}
-case 189:
-#line 1648 "asn1p_y.y"
+case 188:
+#line 1635 "asn1p_y.y"
 { yyval.a_type = ASN_STRING_ObjectDescriptor; ;
     break;}
-case 195:
-#line 1660 "asn1p_y.y"
+case 194:
+#line 1647 "asn1p_y.y"
 { yyval.a_constr = 0; ;
     break;}
-case 196:
-#line 1661 "asn1p_y.y"
+case 195:
+#line 1648 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
-case 197:
-#line 1667 "asn1p_y.y"
+case 196:
+#line 1654 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0);
 	;
     break;}
-case 198:
-#line 1670 "asn1p_y.y"
+case 197:
+#line 1657 "asn1p_y.y"
 {
 		/*
 		 * This is a special case, for compatibility purposes.
@@ -2914,26 +2904,26 @@
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_SIZE, yyvsp[-1].a_constr, 0);
 	;
     break;}
-case 199:
-#line 1680 "asn1p_y.y"
+case 198:
+#line 1667 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[-1].a_constr;
 	;
     break;}
-case 200:
-#line 1683 "asn1p_y.y"
+case 199:
+#line 1670 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
-case 201:
-#line 1689 "asn1p_y.y"
+case 200:
+#line 1676 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
-case 202:
-#line 1692 "asn1p_y.y"
+case 201:
+#line 1679 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2941,8 +2931,8 @@
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
 	;
     break;}
-case 203:
-#line 1698 "asn1p_y.y"
+case 202:
+#line 1685 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -2952,38 +2942,38 @@
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr);
 	;
     break;}
-case 204:
-#line 1709 "asn1p_y.y"
+case 203:
+#line 1696 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
-case 205:
-#line 1712 "asn1p_y.y"
+case 204:
+#line 1699 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0);
 	;
     break;}
-case 206:
-#line 1715 "asn1p_y.y"
+case 205:
+#line 1702 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
-case 207:
-#line 1718 "asn1p_y.y"
+case 206:
+#line 1705 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
-case 208:
-#line 1721 "asn1p_y.y"
+case 207:
+#line 1708 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
-case 209:
-#line 1727 "asn1p_y.y"
+case 208:
+#line 1714 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -2993,8 +2983,8 @@
 		checkmem(ret == 0);
 	;
     break;}
-case 210:
-#line 1735 "asn1p_y.y"
+case 209:
+#line 1722 "asn1p_y.y"
 {
 		int ret;
 		yyval.a_constr = asn1p_constraint_new(yylineno);
@@ -3004,8 +2994,8 @@
 		checkmem(ret == 0);
 	;
     break;}
-case 211:
-#line 1743 "asn1p_y.y"
+case 210:
+#line 1730 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3013,8 +3003,8 @@
 		yyval.a_constr->value = yyvsp[0].a_value;
 	;
     break;}
-case 212:
-#line 1749 "asn1p_y.y"
+case 211:
+#line 1736 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3022,8 +3012,8 @@
 		yyval.a_constr->containedSubtype = yyvsp[0].a_value;
 	;
     break;}
-case 213:
-#line 1755 "asn1p_y.y"
+case 212:
+#line 1742 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3032,8 +3022,8 @@
 		yyval.a_constr->range_stop = yyvsp[0].a_value;
 	;
     break;}
-case 214:
-#line 1762 "asn1p_y.y"
+case 213:
+#line 1749 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3043,8 +3033,8 @@
 		yyval.a_constr->range_start->type = ATV_MIN;
 	;
     break;}
-case 215:
-#line 1770 "asn1p_y.y"
+case 214:
+#line 1757 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3054,36 +3044,36 @@
 		yyval.a_constr->range_stop->type = ATV_MAX;
 	;
     break;}
+case 215:
+#line 1765 "asn1p_y.y"
+{
+		yyval.a_constr = asn1p_constraint_new(yylineno);
+		checkmem(yyval.a_constr);
+		yyval.a_constr->type = yyvsp[-1].a_ctype;
+		yyval.a_constr->range_start = asn1p_value_fromint(-123);
+		yyval.a_constr->range_stop = asn1p_value_fromint(321);
+		yyval.a_constr->range_start->type = ATV_MIN;
+		yyval.a_constr->range_stop->type = ATV_MAX;
+	;
+    break;}
 case 216:
-#line 1778 "asn1p_y.y"
+#line 1774 "asn1p_y.y"
 {
-		yyval.a_constr = asn1p_constraint_new(yylineno);
-		checkmem(yyval.a_constr);
-		yyval.a_constr->type = yyvsp[-1].a_ctype;
-		yyval.a_constr->range_start = asn1p_value_fromint(-123);
-		yyval.a_constr->range_stop = asn1p_value_fromint(321);
-		yyval.a_constr->range_start->type = ATV_MIN;
-		yyval.a_constr->range_stop->type = ATV_MAX;
+		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 217:
-#line 1787 "asn1p_y.y"
+#line 1777 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 218:
-#line 1790 "asn1p_y.y"
-{
-		yyval.a_constr = yyvsp[0].a_constr;
-	;
-    break;}
-case 219:
-#line 1794 "asn1p_y.y"
+#line 1781 "asn1p_y.y"
 { asn1p_lexer_hack_push_opaque_state(); ;
     break;}
-case 220:
-#line 1794 "asn1p_y.y"
+case 219:
+#line 1781 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3093,64 +3083,64 @@
 		yyval.a_constr->value->type = ATV_UNPARSED;
 	;
     break;}
-case 221:
-#line 1805 "asn1p_y.y"
+case 220:
+#line 1792 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RANGE; ;
     break;}
-case 222:
-#line 1806 "asn1p_y.y"
+case 221:
+#line 1793 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_RLRANGE; ;
     break;}
-case 223:
-#line 1807 "asn1p_y.y"
+case 222:
+#line 1794 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_LLRANGE; ;
     break;}
-case 224:
-#line 1808 "asn1p_y.y"
+case 223:
+#line 1795 "asn1p_y.y"
 { yyval.a_ctype = ACT_EL_ULRANGE; ;
     break;}
-case 225:
-#line 1812 "asn1p_y.y"
+case 224:
+#line 1799 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_SIZE;
 	;
     break;}
-case 226:
-#line 1815 "asn1p_y.y"
+case 225:
+#line 1802 "asn1p_y.y"
 {
 		yyval.a_ctype = ACT_CT_FROM;
 	;
     break;}
-case 227:
-#line 1821 "asn1p_y.y"
+case 226:
+#line 1808 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(0);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_FALSE;
 	;
     break;}
-case 228:
-#line 1826 "asn1p_y.y"
+case 227:
+#line 1813 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(1);
 		checkmem(yyval.a_value);
 		yyval.a_value->type = ATV_TRUE;
 	;
     break;}
+case 228:
+#line 1818 "asn1p_y.y"
+{
+		yyval.a_value = yyvsp[0].a_value;
+	;
+    break;}
 case 229:
-#line 1831 "asn1p_y.y"
+#line 1821 "asn1p_y.y"
 {
 		yyval.a_value = yyvsp[0].a_value;
 	;
     break;}
 case 230:
-#line 1834 "asn1p_y.y"
-{
-		yyval.a_value = yyvsp[0].a_value;
-	;
-    break;}
-case 231:
-#line 1837 "asn1p_y.y"
+#line 1824 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -3163,8 +3153,8 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 232:
-#line 1851 "asn1p_y.y"
+case 231:
+#line 1838 "asn1p_y.y"
 {
 		asn1p_ref_t *ref;
 		int ret;
@@ -3177,32 +3167,32 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 233:
-#line 1865 "asn1p_y.y"
+case 232:
+#line 1852 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0);
 	;
     break;}
-case 234:
-#line 1868 "asn1p_y.y"
+case 233:
+#line 1855 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0);
 	;
     break;}
-case 235:
-#line 1874 "asn1p_y.y"
+case 234:
+#line 1861 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
-case 236:
-#line 1877 "asn1p_y.y"
+case 235:
+#line 1864 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr);
 	;
     break;}
-case 237:
-#line 1883 "asn1p_y.y"
+case 236:
+#line 1870 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3210,8 +3200,8 @@
 		yyval.a_constr->value = asn1p_value_frombuf("...", 3, 0);
 	;
     break;}
-case 238:
-#line 1889 "asn1p_y.y"
+case 237:
+#line 1876 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3221,46 +3211,46 @@
 		if(yyvsp[-1].a_constr) asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr);
 	;
     break;}
-case 239:
-#line 1903 "asn1p_y.y"
+case 238:
+#line 1890 "asn1p_y.y"
 { yyval.a_pres = ACPRES_DEFAULT; ;
     break;}
-case 240:
-#line 1904 "asn1p_y.y"
+case 239:
+#line 1891 "asn1p_y.y"
 { yyval.a_pres = yyvsp[0].a_pres; ;
     break;}
-case 241:
-#line 1908 "asn1p_y.y"
+case 240:
+#line 1895 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_PRESENT;
 	;
     break;}
-case 242:
-#line 1911 "asn1p_y.y"
+case 241:
+#line 1898 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_ABSENT;
 	;
     break;}
-case 243:
-#line 1914 "asn1p_y.y"
+case 242:
+#line 1901 "asn1p_y.y"
 {
 		yyval.a_pres = ACPRES_OPTIONAL;
 	;
     break;}
+case 243:
+#line 1907 "asn1p_y.y"
+{
+		yyval.a_constr = yyvsp[0].a_constr;
+	;
+    break;}
 case 244:
-#line 1920 "asn1p_y.y"
+#line 1910 "asn1p_y.y"
 {
 		yyval.a_constr = yyvsp[0].a_constr;
 	;
     break;}
 case 245:
-#line 1923 "asn1p_y.y"
-{
-		yyval.a_constr = yyvsp[0].a_constr;
-	;
-    break;}
-case 246:
-#line 1932 "asn1p_y.y"
+#line 1919 "asn1p_y.y"
 {
 		asn1p_ref_t *ref = asn1p_ref_new(yylineno);
 		asn1p_constraint_t *ct;
@@ -3274,14 +3264,14 @@
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0);
 	;
     break;}
-case 247:
-#line 1947 "asn1p_y.y"
+case 246:
+#line 1934 "asn1p_y.y"
 {
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr);
 	;
     break;}
-case 248:
-#line 1953 "asn1p_y.y"
+case 247:
+#line 1940 "asn1p_y.y"
 {
 		yyval.a_constr = asn1p_constraint_new(yylineno);
 		checkmem(yyval.a_constr);
@@ -3289,8 +3279,8 @@
 		yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0);
 	;
     break;}
-case 249:
-#line 1959 "asn1p_y.y"
+case 248:
+#line 1946 "asn1p_y.y"
 {
 		asn1p_constraint_t *ct;
 		ct = asn1p_constraint_new(yylineno);
@@ -3300,8 +3290,8 @@
 		CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct);
 	;
     break;}
-case 250:
-#line 1973 "asn1p_y.y"
+case 249:
+#line 1960 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 2);
 		int ret;
@@ -3314,8 +3304,8 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 251:
-#line 1984 "asn1p_y.y"
+case 250:
+#line 1971 "asn1p_y.y"
 {
 		char *p = malloc(strlen(yyvsp[0].tv_str) + 3);
 		int ret;
@@ -3329,14 +3319,14 @@
 		free(yyvsp[0].tv_str);
 	;
     break;}
-case 252:
-#line 2000 "asn1p_y.y"
+case 251:
+#line 1987 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
-case 253:
-#line 2003 "asn1p_y.y"
+case 252:
+#line 1990 "asn1p_y.y"
 {
 		int l1 = strlen(yyvsp[-2].tv_str);
 		int l3 = strlen(yyvsp[0].tv_str);
@@ -3347,61 +3337,61 @@
 		yyval.tv_str[l1 + 1 + l3] = '\0';
 	;
     break;}
-case 254:
-#line 2021 "asn1p_y.y"
+case 253:
+#line 2008 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_NOMARK;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
-case 255:
-#line 2025 "asn1p_y.y"
+case 254:
+#line 2012 "asn1p_y.y"
 { yyval.a_marker = yyvsp[0].a_marker; ;
     break;}
-case 256:
-#line 2029 "asn1p_y.y"
+case 255:
+#line 2016 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_OPTIONAL | EM_INDIRECT;
 		yyval.a_marker.default_value = 0;
 	;
     break;}
-case 257:
-#line 2033 "asn1p_y.y"
+case 256:
+#line 2020 "asn1p_y.y"
 {
 		yyval.a_marker.flags = EM_DEFAULT;
 		yyval.a_marker.default_value = yyvsp[0].a_value;
 	;
     break;}
-case 258:
-#line 2056 "asn1p_y.y"
+case 257:
+#line 2043 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
 	;
     break;}
-case 259:
-#line 2060 "asn1p_y.y"
+case 258:
+#line 2047 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-1].a_expr;
 	;
     break;}
-case 260:
-#line 2066 "asn1p_y.y"
+case 259:
+#line 2053 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
-case 261:
-#line 2071 "asn1p_y.y"
+case 260:
+#line 2058 "asn1p_y.y"
 {
 		yyval.a_expr = yyvsp[-2].a_expr;
 		asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr);
 	;
     break;}
-case 262:
-#line 2078 "asn1p_y.y"
+case 261:
+#line 2065 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3410,8 +3400,19 @@
 		yyval.a_expr->Identifier = yyvsp[0].tv_str;
 	;
     break;}
+case 262:
+#line 2072 "asn1p_y.y"
+{
+		yyval.a_expr = asn1p_expr_new(yylineno);
+		checkmem(yyval.a_expr);
+		yyval.a_expr->expr_type = A1TC_UNIVERVAL;
+		yyval.a_expr->meta_type = AMT_VALUE;
+		yyval.a_expr->Identifier = yyvsp[-3].tv_str;
+		yyval.a_expr->value = yyvsp[-1].a_value;
+	;
+    break;}
 case 263:
-#line 2085 "asn1p_y.y"
+#line 2080 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3422,18 +3423,7 @@
 	;
     break;}
 case 264:
-#line 2093 "asn1p_y.y"
-{
-		yyval.a_expr = asn1p_expr_new(yylineno);
-		checkmem(yyval.a_expr);
-		yyval.a_expr->expr_type = A1TC_UNIVERVAL;
-		yyval.a_expr->meta_type = AMT_VALUE;
-		yyval.a_expr->Identifier = yyvsp[-3].tv_str;
-		yyval.a_expr->value = yyvsp[-1].a_value;
-	;
-    break;}
-case 265:
-#line 2101 "asn1p_y.y"
+#line 2088 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3442,8 +3432,8 @@
 		yyval.a_expr->value = yyvsp[0].a_value;
 	;
     break;}
-case 266:
-#line 2108 "asn1p_y.y"
+case 265:
+#line 2095 "asn1p_y.y"
 {
 		yyval.a_expr = asn1p_expr_new(yylineno);
 		checkmem(yyval.a_expr);
@@ -3453,103 +3443,103 @@
 		yyval.a_expr->meta_type = AMT_VALUE;
 	;
     break;}
+case 266:
+#line 2106 "asn1p_y.y"
+{
+		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
+		checkmem(yyval.a_value);
+	;
+    break;}
 case 267:
-#line 2119 "asn1p_y.y"
+#line 2110 "asn1p_y.y"
 {
 		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
 		checkmem(yyval.a_value);
 	;
     break;}
 case 268:
-#line 2123 "asn1p_y.y"
-{
-		yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int);
-		checkmem(yyval.a_value);
-	;
-    break;}
-case 269:
-#line 2154 "asn1p_y.y"
+#line 2141 "asn1p_y.y"
 { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); ;
     break;}
-case 270:
-#line 2155 "asn1p_y.y"
+case 269:
+#line 2142 "asn1p_y.y"
 { yyval.a_tag = yyvsp[0].a_tag; ;
     break;}
-case 271:
-#line 2159 "asn1p_y.y"
+case 270:
+#line 2146 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-1].a_tag;
 		yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode;
 	;
     break;}
-case 272:
-#line 2166 "asn1p_y.y"
+case 271:
+#line 2153 "asn1p_y.y"
 {
 		yyval.a_tag = yyvsp[-2].a_tag;
 		yyval.a_tag.tag_value = yyvsp[-1].a_int;
 	;
     break;}
-case 273:
-#line 2172 "asn1p_y.y"
+case 272:
+#line 2159 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ;
     break;}
-case 274:
-#line 2173 "asn1p_y.y"
+case 273:
+#line 2160 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_UNIVERSAL; ;
     break;}
-case 275:
-#line 2174 "asn1p_y.y"
+case 274:
+#line 2161 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_APPLICATION; ;
     break;}
-case 276:
-#line 2175 "asn1p_y.y"
+case 275:
+#line 2162 "asn1p_y.y"
 { yyval.a_tag.tag_class = TC_PRIVATE; ;
     break;}
-case 277:
-#line 2179 "asn1p_y.y"
+case 276:
+#line 2166 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_DEFAULT; ;
     break;}
-case 278:
-#line 2180 "asn1p_y.y"
+case 277:
+#line 2167 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_IMPLICIT; ;
     break;}
-case 279:
-#line 2181 "asn1p_y.y"
+case 278:
+#line 2168 "asn1p_y.y"
 { yyval.a_tag.tag_mode = TM_EXPLICIT; ;
     break;}
+case 279:
+#line 2172 "asn1p_y.y"
+{
+		checkmem(yyvsp[0].tv_str);
+		yyval.tv_str = yyvsp[0].tv_str;
+	;
+    break;}
 case 280:
-#line 2185 "asn1p_y.y"
+#line 2176 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 281:
-#line 2189 "asn1p_y.y"
+#line 2184 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
 case 282:
-#line 2197 "asn1p_y.y"
-{
-		checkmem(yyvsp[0].tv_str);
-		yyval.tv_str = yyvsp[0].tv_str;
-	;
-    break;}
-case 283:
-#line 2204 "asn1p_y.y"
+#line 2191 "asn1p_y.y"
 { yyval.tv_str = 0; ;
     break;}
-case 284:
-#line 2205 "asn1p_y.y"
+case 283:
+#line 2192 "asn1p_y.y"
 {
 		yyval.tv_str = yyvsp[0].tv_str;
 	;
     break;}
-case 285:
-#line 2211 "asn1p_y.y"
+case 284:
+#line 2198 "asn1p_y.y"
 {
 		checkmem(yyvsp[0].tv_str);
 		yyval.tv_str = yyvsp[0].tv_str;
@@ -3777,7 +3767,7 @@
     }
   return 1;
 }
-#line 2217 "asn1p_y.y"
+#line 2204 "asn1p_y.y"