]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - ld/ldgram.c
Merge commit 'upstream/2.20'
[msp430-binutils.git] / ld / ldgram.c
index 93cf7f1adfef261eefc66dcd3362a41517310ce7..7219b2a6743b338a9112901b612c5bc264822e4d 100644 (file)
      BYTE = 286,
      SECTIONS = 287,
      PHDRS = 288,
-     DATA_SEGMENT_ALIGN = 289,
-     DATA_SEGMENT_RELRO_END = 290,
-     DATA_SEGMENT_END = 291,
-     SORT_BY_NAME = 292,
-     SORT_BY_ALIGNMENT = 293,
-     SIZEOF_HEADERS = 294,
-     OUTPUT_FORMAT = 295,
-     FORCE_COMMON_ALLOCATION = 296,
-     OUTPUT_ARCH = 297,
-     INHIBIT_COMMON_ALLOCATION = 298,
-     SEGMENT_START = 299,
-     INCLUDE = 300,
-     MEMORY = 301,
-     NOLOAD = 302,
-     DSECT = 303,
-     COPY = 304,
-     INFO = 305,
-     OVERLAY = 306,
-     DEFINED = 307,
-     TARGET_K = 308,
-     SEARCH_DIR = 309,
-     MAP = 310,
-     ENTRY = 311,
-     NEXT = 312,
-     SIZEOF = 313,
-     ALIGNOF = 314,
-     ADDR = 315,
-     LOADADDR = 316,
-     MAX_K = 317,
-     MIN_K = 318,
-     STARTUP = 319,
-     HLL = 320,
-     SYSLIB = 321,
-     FLOAT = 322,
-     NOFLOAT = 323,
-     NOCROSSREFS = 324,
-     ORIGIN = 325,
-     FILL = 326,
-     LENGTH = 327,
-     CREATE_OBJECT_SYMBOLS = 328,
-     INPUT = 329,
-     GROUP = 330,
-     OUTPUT = 331,
-     CONSTRUCTORS = 332,
-     ALIGNMOD = 333,
-     AT = 334,
-     SUBALIGN = 335,
-     PROVIDE = 336,
-     PROVIDE_HIDDEN = 337,
-     AS_NEEDED = 338,
-     CHIP = 339,
-     LIST = 340,
-     SECT = 341,
-     ABSOLUTE = 342,
-     LOAD = 343,
-     NEWLINE = 344,
-     ENDWORD = 345,
-     ORDER = 346,
-     NAMEWORD = 347,
-     ASSERT_K = 348,
-     FORMAT = 349,
-     PUBLIC = 350,
-     DEFSYMEND = 351,
-     BASE = 352,
-     ALIAS = 353,
-     TRUNCATE = 354,
-     REL = 355,
-     INPUT_SCRIPT = 356,
-     INPUT_MRI_SCRIPT = 357,
-     INPUT_DEFSYM = 358,
-     CASE = 359,
-     EXTERN = 360,
-     START = 361,
-     VERS_TAG = 362,
-     VERS_IDENTIFIER = 363,
-     GLOBAL = 364,
-     LOCAL = 365,
-     VERSIONK = 366,
-     INPUT_VERSION_SCRIPT = 367,
-     KEEP = 368,
-     ONLY_IF_RO = 369,
-     ONLY_IF_RW = 370,
-     SPECIAL = 371,
-     EXCLUDE_FILE = 372,
-     CONSTANT = 373,
-     INPUT_DYNAMIC_LIST = 374
+     INSERT_K = 289,
+     AFTER = 290,
+     BEFORE = 291,
+     DATA_SEGMENT_ALIGN = 292,
+     DATA_SEGMENT_RELRO_END = 293,
+     DATA_SEGMENT_END = 294,
+     SORT_BY_NAME = 295,
+     SORT_BY_ALIGNMENT = 296,
+     SIZEOF_HEADERS = 297,
+     OUTPUT_FORMAT = 298,
+     FORCE_COMMON_ALLOCATION = 299,
+     OUTPUT_ARCH = 300,
+     INHIBIT_COMMON_ALLOCATION = 301,
+     SEGMENT_START = 302,
+     INCLUDE = 303,
+     MEMORY = 304,
+     REGION_ALIAS = 305,
+     NOLOAD = 306,
+     DSECT = 307,
+     COPY = 308,
+     INFO = 309,
+     OVERLAY = 310,
+     DEFINED = 311,
+     TARGET_K = 312,
+     SEARCH_DIR = 313,
+     MAP = 314,
+     ENTRY = 315,
+     NEXT = 316,
+     SIZEOF = 317,
+     ALIGNOF = 318,
+     ADDR = 319,
+     LOADADDR = 320,
+     MAX_K = 321,
+     MIN_K = 322,
+     STARTUP = 323,
+     HLL = 324,
+     SYSLIB = 325,
+     FLOAT = 326,
+     NOFLOAT = 327,
+     NOCROSSREFS = 328,
+     ORIGIN = 329,
+     FILL = 330,
+     LENGTH = 331,
+     CREATE_OBJECT_SYMBOLS = 332,
+     INPUT = 333,
+     GROUP = 334,
+     OUTPUT = 335,
+     CONSTRUCTORS = 336,
+     ALIGNMOD = 337,
+     AT = 338,
+     SUBALIGN = 339,
+     PROVIDE = 340,
+     PROVIDE_HIDDEN = 341,
+     AS_NEEDED = 342,
+     CHIP = 343,
+     LIST = 344,
+     SECT = 345,
+     ABSOLUTE = 346,
+     LOAD = 347,
+     NEWLINE = 348,
+     ENDWORD = 349,
+     ORDER = 350,
+     NAMEWORD = 351,
+     ASSERT_K = 352,
+     FORMAT = 353,
+     PUBLIC = 354,
+     DEFSYMEND = 355,
+     BASE = 356,
+     ALIAS = 357,
+     TRUNCATE = 358,
+     REL = 359,
+     INPUT_SCRIPT = 360,
+     INPUT_MRI_SCRIPT = 361,
+     INPUT_DEFSYM = 362,
+     CASE = 363,
+     EXTERN = 364,
+     START = 365,
+     VERS_TAG = 366,
+     VERS_IDENTIFIER = 367,
+     GLOBAL = 368,
+     LOCAL = 369,
+     VERSIONK = 370,
+     INPUT_VERSION_SCRIPT = 371,
+     KEEP = 372,
+     ONLY_IF_RO = 373,
+     ONLY_IF_RW = 374,
+     SPECIAL = 375,
+     EXCLUDE_FILE = 376,
+     CONSTANT = 377,
+     INPUT_DYNAMIC_LIST = 378
    };
 #endif
 /* Tokens.  */
 #define BYTE 286
 #define SECTIONS 287
 #define PHDRS 288
-#define DATA_SEGMENT_ALIGN 289
-#define DATA_SEGMENT_RELRO_END 290
-#define DATA_SEGMENT_END 291
-#define SORT_BY_NAME 292
-#define SORT_BY_ALIGNMENT 293
-#define SIZEOF_HEADERS 294
-#define OUTPUT_FORMAT 295
-#define FORCE_COMMON_ALLOCATION 296
-#define OUTPUT_ARCH 297
-#define INHIBIT_COMMON_ALLOCATION 298
-#define SEGMENT_START 299
-#define INCLUDE 300
-#define MEMORY 301
-#define NOLOAD 302
-#define DSECT 303
-#define COPY 304
-#define INFO 305
-#define OVERLAY 306
-#define DEFINED 307
-#define TARGET_K 308
-#define SEARCH_DIR 309
-#define MAP 310
-#define ENTRY 311
-#define NEXT 312
-#define SIZEOF 313
-#define ALIGNOF 314
-#define ADDR 315
-#define LOADADDR 316
-#define MAX_K 317
-#define MIN_K 318
-#define STARTUP 319
-#define HLL 320
-#define SYSLIB 321
-#define FLOAT 322
-#define NOFLOAT 323
-#define NOCROSSREFS 324
-#define ORIGIN 325
-#define FILL 326
-#define LENGTH 327
-#define CREATE_OBJECT_SYMBOLS 328
-#define INPUT 329
-#define GROUP 330
-#define OUTPUT 331
-#define CONSTRUCTORS 332
-#define ALIGNMOD 333
-#define AT 334
-#define SUBALIGN 335
-#define PROVIDE 336
-#define PROVIDE_HIDDEN 337
-#define AS_NEEDED 338
-#define CHIP 339
-#define LIST 340
-#define SECT 341
-#define ABSOLUTE 342
-#define LOAD 343
-#define NEWLINE 344
-#define ENDWORD 345
-#define ORDER 346
-#define NAMEWORD 347
-#define ASSERT_K 348
-#define FORMAT 349
-#define PUBLIC 350
-#define DEFSYMEND 351
-#define BASE 352
-#define ALIAS 353
-#define TRUNCATE 354
-#define REL 355
-#define INPUT_SCRIPT 356
-#define INPUT_MRI_SCRIPT 357
-#define INPUT_DEFSYM 358
-#define CASE 359
-#define EXTERN 360
-#define START 361
-#define VERS_TAG 362
-#define VERS_IDENTIFIER 363
-#define GLOBAL 364
-#define LOCAL 365
-#define VERSIONK 366
-#define INPUT_VERSION_SCRIPT 367
-#define KEEP 368
-#define ONLY_IF_RO 369
-#define ONLY_IF_RW 370
-#define SPECIAL 371
-#define EXCLUDE_FILE 372
-#define CONSTANT 373
-#define INPUT_DYNAMIC_LIST 374
+#define INSERT_K 289
+#define AFTER 290
+#define BEFORE 291
+#define DATA_SEGMENT_ALIGN 292
+#define DATA_SEGMENT_RELRO_END 293
+#define DATA_SEGMENT_END 294
+#define SORT_BY_NAME 295
+#define SORT_BY_ALIGNMENT 296
+#define SIZEOF_HEADERS 297
+#define OUTPUT_FORMAT 298
+#define FORCE_COMMON_ALLOCATION 299
+#define OUTPUT_ARCH 300
+#define INHIBIT_COMMON_ALLOCATION 301
+#define SEGMENT_START 302
+#define INCLUDE 303
+#define MEMORY 304
+#define REGION_ALIAS 305
+#define NOLOAD 306
+#define DSECT 307
+#define COPY 308
+#define INFO 309
+#define OVERLAY 310
+#define DEFINED 311
+#define TARGET_K 312
+#define SEARCH_DIR 313
+#define MAP 314
+#define ENTRY 315
+#define NEXT 316
+#define SIZEOF 317
+#define ALIGNOF 318
+#define ADDR 319
+#define LOADADDR 320
+#define MAX_K 321
+#define MIN_K 322
+#define STARTUP 323
+#define HLL 324
+#define SYSLIB 325
+#define FLOAT 326
+#define NOFLOAT 327
+#define NOCROSSREFS 328
+#define ORIGIN 329
+#define FILL 330
+#define LENGTH 331
+#define CREATE_OBJECT_SYMBOLS 332
+#define INPUT 333
+#define GROUP 334
+#define OUTPUT 335
+#define CONSTRUCTORS 336
+#define ALIGNMOD 337
+#define AT 338
+#define SUBALIGN 339
+#define PROVIDE 340
+#define PROVIDE_HIDDEN 341
+#define AS_NEEDED 342
+#define CHIP 343
+#define LIST 344
+#define SECT 345
+#define ABSOLUTE 346
+#define LOAD 347
+#define NEWLINE 348
+#define ENDWORD 349
+#define ORDER 350
+#define NAMEWORD 351
+#define ASSERT_K 352
+#define FORMAT 353
+#define PUBLIC 354
+#define DEFSYMEND 355
+#define BASE 356
+#define ALIAS 357
+#define TRUNCATE 358
+#define REL 359
+#define INPUT_SCRIPT 360
+#define INPUT_MRI_SCRIPT 361
+#define INPUT_DEFSYM 362
+#define CASE 363
+#define EXTERN 364
+#define START 365
+#define VERS_TAG 366
+#define VERS_IDENTIFIER 367
+#define GLOBAL 368
+#define LOCAL 369
+#define VERSIONK 370
+#define INPUT_VERSION_SCRIPT 371
+#define KEEP 372
+#define ONLY_IF_RO 373
+#define ONLY_IF_RW 374
+#define SPECIAL 375
+#define EXCLUDE_FILE 376
+#define CONSTANT 377
+#define INPUT_DYNAMIC_LIST 378
 
 
 
 
 /* Copy the first part of user declarations.  */
-#line 23 "ldgram.y"
+#line 24 "ldgram.y"
 
 /*
 
 static enum section_type sectype;
 static lang_memory_region_type *region;
 
-FILE *saved_script_handle = NULL;
-bfd_boolean force_make_executable = FALSE;
-
-bfd_boolean ldgram_in_script = FALSE;
-bfd_boolean ldgram_had_equals = FALSE;
 bfd_boolean ldgram_had_keep = FALSE;
 char *ldgram_vers_current_lang = NULL;
 
@@ -373,7 +376,7 @@ static int error_index;
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 66 "ldgram.y"
+#line 62 "ldgram.y"
 {
   bfd_vma integer;
   struct big_int
@@ -402,8 +405,8 @@ typedef union YYSTYPE
   struct bfd_elf_version_expr *versyms;
   struct bfd_elf_version_tree *versnode;
 }
-/* Line 187 of yacc.c.  */
-#line 407 "ldgram.c"
+/* Line 193 of yacc.c.  */
+#line 410 "ldgram.c"
        YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -416,7 +419,7 @@ typedef union YYSTYPE
 
 
 /* Line 216 of yacc.c.  */
-#line 420 "ldgram.c"
+#line 423 "ldgram.c"
 
 #ifdef short
 # undef short
@@ -466,7 +469,7 @@ typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -631,20 +634,20 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  17
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1716
+#define YYLAST   1838
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  143
+#define YYNTOKENS  147
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  122
+#define YYNNTS  126
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  346
+#define YYNRULES  356
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  737
+#define YYNSTATES  763
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   374
+#define YYMAXUTOK   378
 
 #define YYTRANSLATE(YYX)                                               \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -655,16 +658,16 @@ static const yytype_uint8 yytranslate[] =
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   141,     2,     2,     2,    34,    21,     2,
-      37,   138,    32,    30,   136,    31,     2,    33,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    16,   137,
+       2,     2,     2,   145,     2,     2,     2,    34,    21,     2,
+      37,   142,    32,    30,   140,    31,     2,    33,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    16,   141,
       24,     6,    25,    15,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,   139,     2,   140,    20,     2,     2,     2,     2,     2,
+       2,   143,     2,   144,    20,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    53,    19,    54,   142,     2,     2,     2,
+       2,     2,     2,    56,    19,    57,   146,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -681,7 +684,7 @@ static const yytype_uint8 yytranslate[] =
        5,     7,     8,     9,    10,    11,    12,    13,    14,    17,
       18,    22,    23,    26,    27,    28,    29,    35,    36,    38,
       39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
-      49,    50,    51,    52,    55,    56,    57,    58,    59,    60,
+      49,    50,    51,    52,    53,    54,    55,    58,    59,    60,
       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
       81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
@@ -689,7 +692,7 @@ static const yytype_uint8 yytranslate[] =
      101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
      111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   133,   134,   135
+     131,   132,   133,   134,   135,   136,   137,   138,   139
 };
 
 #if YYDEBUG
@@ -706,197 +709,203 @@ static const yytype_uint16 yyprhs[] =
      186,   189,   192,   193,   195,   197,   199,   201,   203,   205,
      207,   209,   211,   213,   218,   223,   228,   233,   242,   247,
      249,   251,   256,   257,   263,   268,   269,   275,   280,   285,
-     287,   291,   294,   296,   300,   303,   304,   310,   311,   319,
-     320,   327,   332,   335,   338,   339,   344,   347,   348,   356,
-     358,   360,   362,   364,   370,   375,   380,   388,   396,   404,
-     412,   421,   424,   426,   430,   432,   434,   438,   443,   445,
-     446,   452,   455,   457,   459,   461,   466,   468,   473,   478,
-     479,   488,   491,   493,   494,   496,   498,   500,   502,   504,
-     506,   508,   511,   512,   514,   516,   518,   520,   522,   524,
-     526,   528,   530,   532,   536,   540,   547,   554,   556,   557,
-     563,   566,   570,   571,   572,   580,   584,   588,   589,   593,
-     595,   598,   600,   603,   608,   613,   617,   621,   623,   628,
-     632,   633,   635,   637,   638,   641,   645,   646,   649,   652,
-     656,   661,   664,   667,   670,   674,   678,   682,   686,   690,
-     694,   698,   702,   706,   710,   714,   718,   722,   726,   730,
-     734,   740,   744,   748,   753,   755,   757,   762,   767,   772,
-     777,   782,   787,   792,   799,   806,   813,   818,   825,   830,
-     832,   839,   846,   853,   858,   863,   867,   868,   873,   874,
-     879,   880,   885,   886,   888,   890,   892,   893,   894,   895,
-     896,   897,   898,   918,   919,   920,   921,   922,   923,   942,
-     943,   944,   952,   954,   956,   958,   960,   962,   966,   967,
-     970,   974,   977,   984,   995,   998,  1000,  1001,  1003,  1006,
-    1007,  1008,  1012,  1013,  1014,  1015,  1016,  1028,  1033,  1034,
-    1037,  1038,  1039,  1046,  1048,  1049,  1053,  1059,  1060,  1064,
-    1065,  1068,  1070,  1073,  1078,  1081,  1082,  1085,  1086,  1092,
-    1094,  1097,  1102,  1108,  1115,  1117,  1120,  1121,  1124,  1129,
-    1134,  1143,  1145,  1147,  1151,  1155,  1156,  1166,  1167,  1175,
-    1177,  1181,  1183,  1187,  1189,  1193,  1194
+     289,   293,   300,   302,   306,   309,   311,   315,   318,   319,
+     325,   326,   334,   335,   342,   347,   350,   353,   354,   359,
+     362,   363,   371,   373,   375,   377,   379,   385,   390,   395,
+     403,   411,   419,   427,   436,   439,   441,   445,   447,   449,
+     453,   458,   460,   461,   467,   470,   472,   474,   476,   481,
+     483,   488,   493,   494,   503,   504,   510,   513,   515,   516,
+     518,   520,   522,   524,   526,   528,   530,   533,   534,   536,
+     538,   540,   542,   544,   546,   548,   550,   552,   554,   558,
+     562,   569,   576,   578,   579,   584,   586,   587,   591,   593,
+     594,   602,   603,   609,   613,   617,   618,   622,   624,   627,
+     629,   632,   637,   642,   646,   650,   652,   657,   661,   662,
+     664,   666,   667,   670,   674,   675,   678,   681,   685,   690,
+     693,   696,   699,   703,   707,   711,   715,   719,   723,   727,
+     731,   735,   739,   743,   747,   751,   755,   759,   763,   769,
+     773,   777,   782,   784,   786,   791,   796,   801,   806,   811,
+     816,   821,   828,   835,   842,   847,   854,   859,   861,   868,
+     875,   882,   887,   892,   896,   897,   902,   903,   908,   909,
+     914,   915,   917,   919,   921,   922,   923,   924,   925,   926,
+     927,   947,   948,   949,   950,   951,   952,   971,   972,   973,
+     981,   982,   988,   990,   992,   994,   996,   998,  1002,  1003,
+    1006,  1010,  1013,  1020,  1031,  1034,  1036,  1037,  1039,  1042,
+    1043,  1044,  1048,  1049,  1050,  1051,  1052,  1064,  1069,  1070,
+    1073,  1074,  1075,  1082,  1084,  1085,  1089,  1095,  1096,  1100,
+    1101,  1104,  1106,  1109,  1114,  1117,  1118,  1121,  1122,  1128,
+    1130,  1133,  1138,  1144,  1151,  1153,  1156,  1157,  1160,  1165,
+    1170,  1179,  1181,  1183,  1187,  1191,  1192,  1202,  1203,  1211,
+    1213,  1217,  1219,  1223,  1225,  1229,  1230
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     144,     0,    -1,   117,   160,    -1,   118,   148,    -1,   128,
-     253,    -1,   135,   248,    -1,   119,   146,    -1,     4,    -1,
-      -1,   147,     4,     6,   210,    -1,    -1,   149,   150,    -1,
-     150,   151,   105,    -1,    -1,   100,   210,    -1,   100,   210,
-     136,   210,    -1,     4,    -1,   101,    -1,   107,   153,    -1,
-     106,    -1,   111,     4,     6,   210,    -1,   111,     4,   136,
-     210,    -1,   111,     4,   210,    -1,   110,     4,    -1,   102,
-       4,   136,   210,    -1,   102,     4,   210,    -1,   102,     4,
-       6,   210,    -1,    38,     4,     6,   210,    -1,    38,     4,
-     136,   210,    -1,    94,     4,     6,   210,    -1,    94,     4,
-     136,   210,    -1,   103,   155,    -1,   104,   154,    -1,   108,
-       4,    -1,   114,     4,   136,     4,    -1,   114,     4,   136,
-       3,    -1,   113,   210,    -1,   115,     3,    -1,   120,   156,
-      -1,   121,   157,    -1,    -1,    61,   145,   152,   150,    36,
-      -1,   122,     4,    -1,    -1,   153,   136,     4,    -1,   153,
-       4,    -1,    -1,     4,    -1,   154,   136,     4,    -1,     4,
-      -1,   155,   136,     4,    -1,    -1,     4,    -1,   156,   136,
-       4,    -1,    -1,   158,   159,    -1,     4,    -1,   159,     4,
-      -1,   159,   136,     4,    -1,    -1,   161,   162,    -1,   162,
-     163,    -1,    -1,   192,    -1,   170,    -1,   240,    -1,   201,
-      -1,   202,    -1,   204,    -1,   206,    -1,   172,    -1,   255,
-      -1,   137,    -1,    69,    37,     4,   138,    -1,    70,    37,
-     145,   138,    -1,    92,    37,   145,   138,    -1,    56,    37,
-       4,   138,    -1,    56,    37,     4,   136,     4,   136,     4,
-     138,    -1,    58,    37,     4,   138,    -1,    57,    -1,    59,
-      -1,    90,    37,   166,   138,    -1,    -1,    91,   164,    37,
-     166,   138,    -1,    71,    37,   145,   138,    -1,    -1,    61,
-     145,   165,   162,    36,    -1,    85,    37,   207,   138,    -1,
-     121,    37,   157,   138,    -1,     4,    -1,   166,   136,     4,
-      -1,   166,     4,    -1,     5,    -1,   166,   136,     5,    -1,
-     166,     5,    -1,    -1,    99,    37,   167,   166,   138,    -1,
-      -1,   166,   136,    99,    37,   168,   166,   138,    -1,    -1,
-     166,    99,    37,   169,   166,   138,    -1,    46,    53,   171,
-      54,    -1,   171,   216,    -1,   171,   172,    -1,    -1,    72,
-      37,     4,   138,    -1,   190,   189,    -1,    -1,   109,   173,
-      37,   210,   136,     4,   138,    -1,     4,    -1,    32,    -1,
-      15,    -1,   174,    -1,   133,    37,   176,   138,   174,    -1,
-      51,    37,   174,   138,    -1,    52,    37,   174,   138,    -1,
-      51,    37,    52,    37,   174,   138,   138,    -1,    51,    37,
-      51,    37,   174,   138,   138,    -1,    52,    37,    51,    37,
-     174,   138,   138,    -1,    52,    37,    52,    37,   174,   138,
-     138,    -1,    51,    37,   133,    37,   176,   138,   174,   138,
-      -1,   176,   174,    -1,   174,    -1,   177,   191,   175,    -1,
-     175,    -1,     4,    -1,   139,   177,   140,    -1,   175,    37,
-     177,   138,    -1,   178,    -1,    -1,   129,    37,   180,   178,
-     138,    -1,   190,   189,    -1,    89,    -1,   137,    -1,    93,
-      -1,    51,    37,    93,   138,    -1,   179,    -1,   185,    37,
-     208,   138,    -1,    87,    37,   186,   138,    -1,    -1,   109,
-     182,    37,   210,   136,     4,   138,   189,    -1,   183,   181,
-      -1,   181,    -1,    -1,   183,    -1,    41,    -1,    42,    -1,
-      43,    -1,    44,    -1,    45,    -1,   208,    -1,     6,   186,
-      -1,    -1,    14,    -1,    13,    -1,    12,    -1,    11,    -1,
-      10,    -1,     9,    -1,     8,    -1,     7,    -1,   137,    -1,
-     136,    -1,     4,     6,   208,    -1,     4,   188,   208,    -1,
-      97,    37,     4,     6,   208,   138,    -1,    98,    37,     4,
-       6,   208,   138,    -1,   136,    -1,    -1,    62,    53,   194,
-     193,    54,    -1,   193,   194,    -1,   193,   136,   194,    -1,
-      -1,    -1,     4,   195,   198,    16,   196,   191,   197,    -1,
-      86,     6,   208,    -1,    88,     6,   208,    -1,    -1,    37,
-     199,   138,    -1,   200,    -1,   199,   200,    -1,     4,    -1,
-     141,     4,    -1,    80,    37,   145,   138,    -1,    81,    37,
-     203,   138,    -1,    81,    37,   138,    -1,   203,   191,   145,
-      -1,   145,    -1,    82,    37,   205,   138,    -1,   205,   191,
-     145,    -1,    -1,    83,    -1,    84,    -1,    -1,     4,   207,
-      -1,     4,   136,   207,    -1,    -1,   209,   210,    -1,    31,
-     210,    -1,    37,   210,   138,    -1,    73,    37,   210,   138,
-      -1,   141,   210,    -1,    30,   210,    -1,   142,   210,    -1,
-     210,    32,   210,    -1,   210,    33,   210,    -1,   210,    34,
-     210,    -1,   210,    30,   210,    -1,   210,    31,   210,    -1,
-     210,    29,   210,    -1,   210,    28,   210,    -1,   210,    23,
-     210,    -1,   210,    22,   210,    -1,   210,    27,   210,    -1,
-     210,    26,   210,    -1,   210,    24,   210,    -1,   210,    25,
-     210,    -1,   210,    21,   210,    -1,   210,    20,   210,    -1,
-     210,    19,   210,    -1,   210,    15,   210,    16,   210,    -1,
-     210,    18,   210,    -1,   210,    17,   210,    -1,    68,    37,
-       4,   138,    -1,     3,    -1,    55,    -1,    75,    37,     4,
-     138,    -1,    74,    37,     4,   138,    -1,    76,    37,     4,
-     138,    -1,    77,    37,     4,   138,    -1,   134,    37,     4,
-     138,    -1,   103,    37,   210,   138,    -1,    38,    37,   210,
-     138,    -1,    38,    37,   210,   136,   210,   138,    -1,    48,
-      37,   210,   136,   210,   138,    -1,    49,    37,   210,   136,
-     210,   138,    -1,    50,    37,   210,   138,    -1,    60,    37,
-       4,   136,   210,   138,    -1,    39,    37,   210,   138,    -1,
-       4,    -1,    78,    37,   210,   136,   210,   138,    -1,    79,
-      37,   210,   136,   210,   138,    -1,   109,    37,   210,   136,
-       4,   138,    -1,    86,    37,     4,   138,    -1,    88,    37,
-       4,   138,    -1,    95,    25,     4,    -1,    -1,    95,    37,
-     210,   138,    -1,    -1,    38,    37,   210,   138,    -1,    -1,
-      96,    37,   210,   138,    -1,    -1,   130,    -1,   131,    -1,
-     132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,   217,
-     231,   212,   213,   214,   218,   215,    53,   219,   184,    54,
-     220,   234,   211,   235,   187,   221,   191,    -1,    -1,    -1,
-      -1,    -1,    -1,    67,   222,   232,   233,   212,   214,   223,
-      53,   224,   236,    54,   225,   234,   211,   235,   187,   226,
-     191,    -1,    -1,    -1,    91,   227,   231,   228,    53,   171,
-      54,    -1,    63,    -1,    64,    -1,    65,    -1,    66,    -1,
-      67,    -1,    37,   229,   138,    -1,    -1,    37,   138,    -1,
-     210,   230,    16,    -1,   230,    16,    -1,    40,    37,   210,
-     138,   230,    16,    -1,    40,    37,   210,   138,    39,    37,
-     210,   138,   230,    16,    -1,   210,    16,    -1,    16,    -1,
-      -1,    85,    -1,    25,     4,    -1,    -1,    -1,   235,    16,
-       4,    -1,    -1,    -1,    -1,    -1,   236,     4,   237,    53,
-     184,    54,   238,   235,   187,   239,   191,    -1,    47,    53,
-     241,    54,    -1,    -1,   241,   242,    -1,    -1,    -1,     4,
-     243,   245,   246,   244,   137,    -1,   210,    -1,    -1,     4,
-     247,   246,    -1,    95,    37,   210,   138,   246,    -1,    -1,
-      37,   210,   138,    -1,    -1,   249,   250,    -1,   251,    -1,
-     250,   251,    -1,    53,   252,    54,   137,    -1,   261,   137,
-      -1,    -1,   254,   257,    -1,    -1,   256,   127,    53,   257,
-      54,    -1,   258,    -1,   257,   258,    -1,    53,   260,    54,
-     137,    -1,   123,    53,   260,    54,   137,    -1,   123,    53,
-     260,    54,   259,   137,    -1,   123,    -1,   259,   123,    -1,
-      -1,   261,   137,    -1,   125,    16,   261,   137,    -1,   126,
-      16,   261,   137,    -1,   125,    16,   261,   137,   126,    16,
-     261,   137,    -1,   124,    -1,     4,    -1,   261,   137,   124,
-      -1,   261,   137,     4,    -1,    -1,   261,   137,   121,     4,
-      53,   262,   261,   264,    54,    -1,    -1,   121,     4,    53,
-     263,   261,   264,    54,    -1,   125,    -1,   261,   137,   125,
-      -1,   126,    -1,   261,   137,   126,    -1,   121,    -1,   261,
-     137,   121,    -1,    -1,   137,    -1
+     148,     0,    -1,   121,   164,    -1,   122,   152,    -1,   132,
+     261,    -1,   139,   256,    -1,   123,   150,    -1,     4,    -1,
+      -1,   151,     4,     6,   217,    -1,    -1,   153,   154,    -1,
+     154,   155,   109,    -1,    -1,   104,   217,    -1,   104,   217,
+     140,   217,    -1,     4,    -1,   105,    -1,   111,   157,    -1,
+     110,    -1,   115,     4,     6,   217,    -1,   115,     4,   140,
+     217,    -1,   115,     4,   217,    -1,   114,     4,    -1,   106,
+       4,   140,   217,    -1,   106,     4,   217,    -1,   106,     4,
+       6,   217,    -1,    38,     4,     6,   217,    -1,    38,     4,
+     140,   217,    -1,    98,     4,     6,   217,    -1,    98,     4,
+     140,   217,    -1,   107,   159,    -1,   108,   158,    -1,   112,
+       4,    -1,   118,     4,   140,     4,    -1,   118,     4,   140,
+       3,    -1,   117,   217,    -1,   119,     3,    -1,   124,   160,
+      -1,   125,   161,    -1,    -1,    64,   149,   156,   154,    36,
+      -1,   126,     4,    -1,    -1,   157,   140,     4,    -1,   157,
+       4,    -1,    -1,     4,    -1,   158,   140,     4,    -1,     4,
+      -1,   159,   140,     4,    -1,    -1,     4,    -1,   160,   140,
+       4,    -1,    -1,   162,   163,    -1,     4,    -1,   163,     4,
+      -1,   163,   140,     4,    -1,    -1,   165,   166,    -1,   166,
+     167,    -1,    -1,   197,    -1,   174,    -1,   248,    -1,   208,
+      -1,   209,    -1,   211,    -1,   213,    -1,   176,    -1,   263,
+      -1,   141,    -1,    73,    37,     4,   142,    -1,    74,    37,
+     149,   142,    -1,    96,    37,   149,   142,    -1,    59,    37,
+       4,   142,    -1,    59,    37,     4,   140,     4,   140,     4,
+     142,    -1,    61,    37,     4,   142,    -1,    60,    -1,    62,
+      -1,    94,    37,   170,   142,    -1,    -1,    95,   168,    37,
+     170,   142,    -1,    75,    37,   149,   142,    -1,    -1,    64,
+     149,   169,   166,    36,    -1,    89,    37,   214,   142,    -1,
+     125,    37,   161,   142,    -1,    48,    49,     4,    -1,    48,
+      50,     4,    -1,    66,    37,     4,   140,     4,   142,    -1,
+       4,    -1,   170,   140,     4,    -1,   170,     4,    -1,     5,
+      -1,   170,   140,     5,    -1,   170,     5,    -1,    -1,   103,
+      37,   171,   170,   142,    -1,    -1,   170,   140,   103,    37,
+     172,   170,   142,    -1,    -1,   170,   103,    37,   173,   170,
+     142,    -1,    46,    56,   175,    57,    -1,   175,   223,    -1,
+     175,   176,    -1,    -1,    76,    37,     4,   142,    -1,   195,
+     194,    -1,    -1,   113,   177,    37,   217,   140,     4,   142,
+      -1,     4,    -1,    32,    -1,    15,    -1,   178,    -1,   137,
+      37,   180,   142,   178,    -1,    54,    37,   178,   142,    -1,
+      55,    37,   178,   142,    -1,    54,    37,    55,    37,   178,
+     142,   142,    -1,    54,    37,    54,    37,   178,   142,   142,
+      -1,    55,    37,    54,    37,   178,   142,   142,    -1,    55,
+      37,    55,    37,   178,   142,   142,    -1,    54,    37,   137,
+      37,   180,   142,   178,   142,    -1,   180,   178,    -1,   178,
+      -1,   181,   196,   179,    -1,   179,    -1,     4,    -1,   143,
+     181,   144,    -1,   179,    37,   181,   142,    -1,   182,    -1,
+      -1,   133,    37,   184,   182,   142,    -1,   195,   194,    -1,
+      93,    -1,   141,    -1,    97,    -1,    54,    37,    97,   142,
+      -1,   183,    -1,   190,    37,   215,   142,    -1,    91,    37,
+     191,   142,    -1,    -1,   113,   186,    37,   217,   140,     4,
+     142,   194,    -1,    -1,    64,   149,   187,   189,    36,    -1,
+     188,   185,    -1,   185,    -1,    -1,   188,    -1,    41,    -1,
+      42,    -1,    43,    -1,    44,    -1,    45,    -1,   215,    -1,
+       6,   191,    -1,    -1,    14,    -1,    13,    -1,    12,    -1,
+      11,    -1,    10,    -1,     9,    -1,     8,    -1,     7,    -1,
+     141,    -1,   140,    -1,     4,     6,   215,    -1,     4,   193,
+     215,    -1,   101,    37,     4,     6,   215,   142,    -1,   102,
+      37,     4,     6,   215,   142,    -1,   140,    -1,    -1,    65,
+      56,   198,    57,    -1,   199,    -1,    -1,   199,   196,   200,
+      -1,   200,    -1,    -1,     4,   201,   205,    16,   203,   196,
+     204,    -1,    -1,    64,   149,   202,   198,    36,    -1,    90,
+       6,   215,    -1,    92,     6,   215,    -1,    -1,    37,   206,
+     142,    -1,   207,    -1,   206,   207,    -1,     4,    -1,   145,
+       4,    -1,    84,    37,   149,   142,    -1,    85,    37,   210,
+     142,    -1,    85,    37,   142,    -1,   210,   196,   149,    -1,
+     149,    -1,    86,    37,   212,   142,    -1,   212,   196,   149,
+      -1,    -1,    87,    -1,    88,    -1,    -1,     4,   214,    -1,
+       4,   140,   214,    -1,    -1,   216,   217,    -1,    31,   217,
+      -1,    37,   217,   142,    -1,    77,    37,   217,   142,    -1,
+     145,   217,    -1,    30,   217,    -1,   146,   217,    -1,   217,
+      32,   217,    -1,   217,    33,   217,    -1,   217,    34,   217,
+      -1,   217,    30,   217,    -1,   217,    31,   217,    -1,   217,
+      29,   217,    -1,   217,    28,   217,    -1,   217,    23,   217,
+      -1,   217,    22,   217,    -1,   217,    27,   217,    -1,   217,
+      26,   217,    -1,   217,    24,   217,    -1,   217,    25,   217,
+      -1,   217,    21,   217,    -1,   217,    20,   217,    -1,   217,
+      19,   217,    -1,   217,    15,   217,    16,   217,    -1,   217,
+      18,   217,    -1,   217,    17,   217,    -1,    72,    37,     4,
+     142,    -1,     3,    -1,    58,    -1,    79,    37,     4,   142,
+      -1,    78,    37,     4,   142,    -1,    80,    37,     4,   142,
+      -1,    81,    37,     4,   142,    -1,   138,    37,     4,   142,
+      -1,   107,    37,   217,   142,    -1,    38,    37,   217,   142,
+      -1,    38,    37,   217,   140,   217,   142,    -1,    51,    37,
+     217,   140,   217,   142,    -1,    52,    37,   217,   140,   217,
+     142,    -1,    53,    37,   217,   142,    -1,    63,    37,     4,
+     140,   217,   142,    -1,    39,    37,   217,   142,    -1,     4,
+      -1,    82,    37,   217,   140,   217,   142,    -1,    83,    37,
+     217,   140,   217,   142,    -1,   113,    37,   217,   140,     4,
+     142,    -1,    90,    37,     4,   142,    -1,    92,    37,     4,
+     142,    -1,    99,    25,     4,    -1,    -1,    99,    37,   217,
+     142,    -1,    -1,    38,    37,   217,   142,    -1,    -1,   100,
+      37,   217,   142,    -1,    -1,   134,    -1,   135,    -1,   136,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,     4,   224,   239,
+     219,   220,   221,   225,   222,    56,   226,   189,    57,   227,
+     242,   218,   243,   192,   228,   196,    -1,    -1,    -1,    -1,
+      -1,    -1,    71,   229,   240,   241,   219,   221,   230,    56,
+     231,   244,    57,   232,   242,   218,   243,   192,   233,   196,
+      -1,    -1,    -1,    95,   234,   239,   235,    56,   175,    57,
+      -1,    -1,    64,   149,   236,   175,    36,    -1,    67,    -1,
+      68,    -1,    69,    -1,    70,    -1,    71,    -1,    37,   237,
+     142,    -1,    -1,    37,   142,    -1,   217,   238,    16,    -1,
+     238,    16,    -1,    40,    37,   217,   142,   238,    16,    -1,
+      40,    37,   217,   142,    39,    37,   217,   142,   238,    16,
+      -1,   217,    16,    -1,    16,    -1,    -1,    89,    -1,    25,
+       4,    -1,    -1,    -1,   243,    16,     4,    -1,    -1,    -1,
+      -1,    -1,   244,     4,   245,    56,   189,    57,   246,   243,
+     192,   247,   196,    -1,    47,    56,   249,    57,    -1,    -1,
+     249,   250,    -1,    -1,    -1,     4,   251,   253,   254,   252,
+     141,    -1,   217,    -1,    -1,     4,   255,   254,    -1,    99,
+      37,   217,   142,   254,    -1,    -1,    37,   217,   142,    -1,
+      -1,   257,   258,    -1,   259,    -1,   258,   259,    -1,    56,
+     260,    57,   141,    -1,   269,   141,    -1,    -1,   262,   265,
+      -1,    -1,   264,   131,    56,   265,    57,    -1,   266,    -1,
+     265,   266,    -1,    56,   268,    57,   141,    -1,   127,    56,
+     268,    57,   141,    -1,   127,    56,   268,    57,   267,   141,
+      -1,   127,    -1,   267,   127,    -1,    -1,   269,   141,    -1,
+     129,    16,   269,   141,    -1,   130,    16,   269,   141,    -1,
+     129,    16,   269,   141,   130,    16,   269,   141,    -1,   128,
+      -1,     4,    -1,   269,   141,   128,    -1,   269,   141,     4,
+      -1,    -1,   269,   141,   125,     4,    56,   270,   269,   272,
+      57,    -1,    -1,   125,     4,    56,   271,   269,   272,    57,
+      -1,   129,    -1,   269,   141,   129,    -1,   130,    -1,   269,
+     141,   130,    -1,   125,    -1,   269,   141,   125,    -1,    -1,
+     141,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   164,   164,   165,   166,   167,   168,   172,   176,   176,
-     186,   186,   199,   200,   204,   205,   206,   209,   212,   213,
-     214,   216,   218,   220,   222,   224,   226,   228,   230,   232,
-     234,   236,   237,   238,   240,   242,   244,   246,   248,   249,
-     251,   250,   254,   256,   260,   261,   262,   266,   268,   272,
-     274,   279,   280,   281,   286,   286,   291,   293,   295,   300,
-     300,   306,   307,   312,   313,   314,   315,   316,   317,   318,
-     319,   320,   321,   322,   324,   326,   328,   331,   333,   335,
-     337,   339,   341,   340,   344,   347,   346,   350,   354,   358,
-     361,   364,   367,   370,   373,   377,   376,   381,   380,   385,
-     384,   391,   395,   396,   397,   401,   403,   404,   404,   412,
-     416,   420,   427,   433,   439,   445,   451,   457,   463,   469,
-     475,   484,   493,   504,   513,   524,   532,   536,   543,   545,
-     544,   551,   552,   556,   557,   562,   567,   568,   573,   577,
-     577,   583,   584,   587,   589,   593,   595,   597,   599,   601,
-     606,   613,   615,   619,   621,   623,   625,   627,   629,   631,
-     633,   638,   638,   643,   647,   655,   659,   667,   667,   671,
-     675,   676,   677,   682,   681,   689,   697,   705,   706,   710,
-     711,   715,   717,   722,   727,   728,   733,   735,   741,   743,
-     745,   749,   751,   757,   760,   769,   780,   780,   786,   788,
-     790,   792,   794,   796,   799,   801,   803,   805,   807,   809,
-     811,   813,   815,   817,   819,   821,   823,   825,   827,   829,
-     831,   833,   835,   837,   839,   841,   844,   846,   848,   850,
-     852,   854,   856,   858,   860,   862,   864,   866,   875,   877,
-     879,   881,   883,   885,   887,   893,   894,   898,   899,   903,
-     904,   908,   909,   913,   914,   915,   916,   919,   923,   926,
-     932,   934,   919,   941,   943,   945,   950,   952,   940,   962,
-     964,   962,   972,   973,   974,   975,   976,   980,   981,   982,
-     986,   987,   992,   993,   998,   999,  1004,  1005,  1010,  1012,
-    1017,  1020,  1033,  1037,  1042,  1044,  1035,  1052,  1055,  1057,
-    1061,  1062,  1061,  1071,  1116,  1119,  1131,  1140,  1143,  1150,
-    1150,  1162,  1163,  1167,  1171,  1180,  1180,  1194,  1194,  1204,
-    1205,  1209,  1213,  1217,  1224,  1228,  1236,  1239,  1243,  1247,
-    1251,  1258,  1262,  1266,  1270,  1275,  1274,  1288,  1287,  1297,
-    1301,  1305,  1309,  1313,  1317,  1323,  1325
+       0,   162,   162,   163,   164,   165,   166,   170,   174,   174,
+     184,   184,   197,   198,   202,   203,   204,   207,   210,   211,
+     212,   214,   216,   218,   220,   222,   224,   226,   228,   230,
+     232,   234,   235,   236,   238,   240,   242,   244,   246,   247,
+     249,   248,   252,   254,   258,   259,   260,   264,   266,   270,
+     272,   277,   278,   279,   284,   284,   289,   291,   293,   298,
+     298,   304,   305,   310,   311,   312,   313,   314,   315,   316,
+     317,   318,   319,   320,   322,   324,   326,   329,   331,   333,
+     335,   337,   339,   338,   342,   345,   344,   348,   352,   353,
+     355,   357,   362,   365,   368,   371,   374,   377,   381,   380,
+     385,   384,   389,   388,   395,   399,   400,   401,   405,   407,
+     408,   408,   416,   420,   424,   431,   437,   443,   449,   455,
+     461,   467,   473,   479,   488,   497,   508,   517,   528,   536,
+     540,   547,   549,   548,   555,   556,   560,   561,   566,   571,
+     572,   577,   581,   581,   585,   584,   591,   592,   595,   597,
+     601,   603,   605,   607,   609,   614,   621,   623,   627,   629,
+     631,   633,   635,   637,   639,   641,   646,   646,   651,   655,
+     663,   667,   675,   675,   679,   682,   682,   685,   686,   691,
+     690,   696,   695,   702,   710,   718,   719,   723,   724,   728,
+     730,   735,   740,   741,   746,   748,   754,   756,   758,   762,
+     764,   770,   773,   782,   793,   793,   799,   801,   803,   805,
+     807,   809,   812,   814,   816,   818,   820,   822,   824,   826,
+     828,   830,   832,   834,   836,   838,   840,   842,   844,   846,
+     848,   850,   852,   854,   857,   859,   861,   863,   865,   867,
+     869,   871,   873,   875,   877,   879,   888,   890,   892,   894,
+     896,   898,   900,   906,   907,   911,   912,   916,   917,   921,
+     922,   926,   927,   928,   929,   932,   936,   939,   945,   947,
+     932,   954,   956,   958,   963,   965,   953,   975,   977,   975,
+     983,   982,   989,   990,   991,   992,   993,   997,   998,   999,
+    1003,  1004,  1009,  1010,  1015,  1016,  1021,  1022,  1027,  1029,
+    1034,  1037,  1050,  1054,  1059,  1061,  1052,  1069,  1072,  1074,
+    1078,  1079,  1078,  1088,  1133,  1136,  1148,  1157,  1160,  1167,
+    1167,  1179,  1180,  1184,  1188,  1197,  1197,  1211,  1211,  1221,
+    1222,  1226,  1230,  1234,  1241,  1245,  1253,  1256,  1260,  1264,
+    1268,  1275,  1279,  1283,  1287,  1292,  1291,  1305,  1304,  1314,
+    1318,  1322,  1326,  1330,  1334,  1340,  1342
 };
 #endif
 
@@ -910,49 +919,50 @@ static const char *const yytname[] =
   "'?'", "':'", "OROR", "ANDAND", "'|'", "'^'", "'&'", "NE", "EQ", "'<'",
   "'>'", "GE", "LE", "RSHIFT", "LSHIFT", "'+'", "'-'", "'*'", "'/'", "'%'",
   "UNARY", "END", "'('", "ALIGN_K", "BLOCK", "BIND", "QUAD", "SQUAD",
-  "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "DATA_SEGMENT_ALIGN",
-  "DATA_SEGMENT_RELRO_END", "DATA_SEGMENT_END", "SORT_BY_NAME",
-  "SORT_BY_ALIGNMENT", "'{'", "'}'", "SIZEOF_HEADERS", "OUTPUT_FORMAT",
-  "FORCE_COMMON_ALLOCATION", "OUTPUT_ARCH", "INHIBIT_COMMON_ALLOCATION",
-  "SEGMENT_START", "INCLUDE", "MEMORY", "NOLOAD", "DSECT", "COPY", "INFO",
-  "OVERLAY", "DEFINED", "TARGET_K", "SEARCH_DIR", "MAP", "ENTRY", "NEXT",
-  "SIZEOF", "ALIGNOF", "ADDR", "LOADADDR", "MAX_K", "MIN_K", "STARTUP",
-  "HLL", "SYSLIB", "FLOAT", "NOFLOAT", "NOCROSSREFS", "ORIGIN", "FILL",
-  "LENGTH", "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT",
-  "CONSTRUCTORS", "ALIGNMOD", "AT", "SUBALIGN", "PROVIDE",
-  "PROVIDE_HIDDEN", "AS_NEEDED", "CHIP", "LIST", "SECT", "ABSOLUTE",
-  "LOAD", "NEWLINE", "ENDWORD", "ORDER", "NAMEWORD", "ASSERT_K", "FORMAT",
-  "PUBLIC", "DEFSYMEND", "BASE", "ALIAS", "TRUNCATE", "REL",
-  "INPUT_SCRIPT", "INPUT_MRI_SCRIPT", "INPUT_DEFSYM", "CASE", "EXTERN",
-  "START", "VERS_TAG", "VERS_IDENTIFIER", "GLOBAL", "LOCAL", "VERSIONK",
-  "INPUT_VERSION_SCRIPT", "KEEP", "ONLY_IF_RO", "ONLY_IF_RW", "SPECIAL",
-  "EXCLUDE_FILE", "CONSTANT", "INPUT_DYNAMIC_LIST", "','", "';'", "')'",
-  "'['", "']'", "'!'", "'~'", "$accept", "file", "filename", "defsym_expr",
-  "@1", "mri_script_file", "@2", "mri_script_lines", "mri_script_command",
-  "@3", "ordernamelist", "mri_load_name_list", "mri_abs_name_list",
-  "casesymlist", "extern_name_list", "@4", "extern_name_list_body",
-  "script_file", "@5", "ifile_list", "ifile_p1", "@6", "@7", "input_list",
-  "@8", "@9", "@10", "sections", "sec_or_group_p1", "statement_anywhere",
-  "@11", "wildcard_name", "wildcard_spec", "exclude_name_list",
-  "file_NAME_list", "input_section_spec_no_keep", "input_section_spec",
-  "@12", "statement", "@13", "statement_list", "statement_list_opt",
-  "length", "fill_exp", "fill_opt", "assign_op", "end", "assignment",
-  "opt_comma", "memory", "memory_spec_list", "memory_spec", "@14",
-  "origin_spec", "length_spec", "attributes_opt", "attributes_list",
-  "attributes_string", "startup", "high_level_library",
+  "LONG", "SHORT", "BYTE", "SECTIONS", "PHDRS", "INSERT_K", "AFTER",
+  "BEFORE", "DATA_SEGMENT_ALIGN", "DATA_SEGMENT_RELRO_END",
+  "DATA_SEGMENT_END", "SORT_BY_NAME", "SORT_BY_ALIGNMENT", "'{'", "'}'",
+  "SIZEOF_HEADERS", "OUTPUT_FORMAT", "FORCE_COMMON_ALLOCATION",
+  "OUTPUT_ARCH", "INHIBIT_COMMON_ALLOCATION", "SEGMENT_START", "INCLUDE",
+  "MEMORY", "REGION_ALIAS", "NOLOAD", "DSECT", "COPY", "INFO", "OVERLAY",
+  "DEFINED", "TARGET_K", "SEARCH_DIR", "MAP", "ENTRY", "NEXT", "SIZEOF",
+  "ALIGNOF", "ADDR", "LOADADDR", "MAX_K", "MIN_K", "STARTUP", "HLL",
+  "SYSLIB", "FLOAT", "NOFLOAT", "NOCROSSREFS", "ORIGIN", "FILL", "LENGTH",
+  "CREATE_OBJECT_SYMBOLS", "INPUT", "GROUP", "OUTPUT", "CONSTRUCTORS",
+  "ALIGNMOD", "AT", "SUBALIGN", "PROVIDE", "PROVIDE_HIDDEN", "AS_NEEDED",
+  "CHIP", "LIST", "SECT", "ABSOLUTE", "LOAD", "NEWLINE", "ENDWORD",
+  "ORDER", "NAMEWORD", "ASSERT_K", "FORMAT", "PUBLIC", "DEFSYMEND", "BASE",
+  "ALIAS", "TRUNCATE", "REL", "INPUT_SCRIPT", "INPUT_MRI_SCRIPT",
+  "INPUT_DEFSYM", "CASE", "EXTERN", "START", "VERS_TAG", "VERS_IDENTIFIER",
+  "GLOBAL", "LOCAL", "VERSIONK", "INPUT_VERSION_SCRIPT", "KEEP",
+  "ONLY_IF_RO", "ONLY_IF_RW", "SPECIAL", "EXCLUDE_FILE", "CONSTANT",
+  "INPUT_DYNAMIC_LIST", "','", "';'", "')'", "'['", "']'", "'!'", "'~'",
+  "$accept", "file", "filename", "defsym_expr", "@1", "mri_script_file",
+  "@2", "mri_script_lines", "mri_script_command", "@3", "ordernamelist",
+  "mri_load_name_list", "mri_abs_name_list", "casesymlist",
+  "extern_name_list", "@4", "extern_name_list_body", "script_file", "@5",
+  "ifile_list", "ifile_p1", "@6", "@7", "input_list", "@8", "@9", "@10",
+  "sections", "sec_or_group_p1", "statement_anywhere", "@11",
+  "wildcard_name", "wildcard_spec", "exclude_name_list", "file_NAME_list",
+  "input_section_spec_no_keep", "input_section_spec", "@12", "statement",
+  "@13", "@14", "statement_list", "statement_list_opt", "length",
+  "fill_exp", "fill_opt", "assign_op", "end", "assignment", "opt_comma",
+  "memory", "memory_spec_list_opt", "memory_spec_list", "memory_spec",
+  "@15", "@16", "origin_spec", "length_spec", "attributes_opt",
+  "attributes_list", "attributes_string", "startup", "high_level_library",
   "high_level_library_NAME_list", "low_level_library",
   "low_level_library_NAME_list", "floating_point_support",
-  "nocrossref_list", "mustbe_exp", "@15", "exp", "memspec_at_opt",
+  "nocrossref_list", "mustbe_exp", "@17", "exp", "memspec_at_opt",
   "opt_at", "opt_align", "opt_subalign", "sect_constraint", "section",
-  "@16", "@17", "@18", "@19", "@20", "@21", "@22", "@23", "@24", "@25",
-  "@26", "@27", "type", "atype", "opt_exp_with_type",
+  "@18", "@19", "@20", "@21", "@22", "@23", "@24", "@25", "@26", "@27",
+  "@28", "@29", "@30", "type", "atype", "opt_exp_with_type",
   "opt_exp_without_type", "opt_nocrossrefs", "memspec_opt", "phdr_opt",
-  "overlay_section", "@28", "@29", "@30", "phdrs", "phdr_list", "phdr",
-  "@31", "@32", "phdr_type", "phdr_qualifiers", "phdr_val",
-  "dynamic_list_file", "@33", "dynamic_list_nodes", "dynamic_list_node",
-  "dynamic_list_tag", "version_script_file", "@34", "version", "@35",
-  "vers_nodes", "vers_node", "verdep", "vers_tag", "vers_defns", "@36",
-  "@37", "opt_semicolon", 0
+  "overlay_section", "@31", "@32", "@33", "phdrs", "phdr_list", "phdr",
+  "@34", "@35", "phdr_type", "phdr_qualifiers", "phdr_val",
+  "dynamic_list_file", "@36", "dynamic_list_nodes", "dynamic_list_node",
+  "dynamic_list_tag", "version_script_file", "@37", "version", "@38",
+  "vers_nodes", "vers_node", "verdep", "vers_tag", "vers_defns", "@39",
+  "@40", "opt_semicolon", 0
 };
 #endif
 
@@ -966,7 +976,7 @@ static const yytype_uint16 yytoknum[] =
       94,    38,   271,   272,    60,    62,   273,   274,   275,   276,
       43,    45,    42,    47,    37,   277,   278,    40,   279,   280,
      281,   282,   283,   284,   285,   286,   287,   288,   289,   290,
-     291,   292,   293,   123,   125,   294,   295,   296,   297,   298,
+     291,   292,   293,   294,   295,   296,   123,   125,   297,   298,
      299,   300,   301,   302,   303,   304,   305,   306,   307,   308,
      309,   310,   311,   312,   313,   314,   315,   316,   317,   318,
      319,   320,   321,   322,   323,   324,   325,   326,   327,   328,
@@ -974,49 +984,50 @@ static const yytype_uint16 yytoknum[] =
      339,   340,   341,   342,   343,   344,   345,   346,   347,   348,
      349,   350,   351,   352,   353,   354,   355,   356,   357,   358,
      359,   360,   361,   362,   363,   364,   365,   366,   367,   368,
-     369,   370,   371,   372,   373,   374,    44,    59,    41,    91,
-      93,    33,   126
+     369,   370,   371,   372,   373,   374,   375,   376,   377,   378,
+      44,    59,    41,    91,    93,    33,   126
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   143,   144,   144,   144,   144,   144,   145,   147,   146,
-     149,   148,   150,   150,   151,   151,   151,   151,   151,   151,
-     151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
-     151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
-     152,   151,   151,   151,   153,   153,   153,   154,   154,   155,
-     155,   156,   156,   156,   158,   157,   159,   159,   159,   161,
-     160,   162,   162,   163,   163,   163,   163,   163,   163,   163,
-     163,   163,   163,   163,   163,   163,   163,   163,   163,   163,
-     163,   163,   164,   163,   163,   165,   163,   163,   163,   166,
-     166,   166,   166,   166,   166,   167,   166,   168,   166,   169,
-     166,   170,   171,   171,   171,   172,   172,   173,   172,   174,
-     174,   174,   175,   175,   175,   175,   175,   175,   175,   175,
-     175,   176,   176,   177,   177,   178,   178,   178,   179,   180,
-     179,   181,   181,   181,   181,   181,   181,   181,   181,   182,
-     181,   183,   183,   184,   184,   185,   185,   185,   185,   185,
-     186,   187,   187,   188,   188,   188,   188,   188,   188,   188,
-     188,   189,   189,   190,   190,   190,   190,   191,   191,   192,
-     193,   193,   193,   195,   194,   196,   197,   198,   198,   199,
-     199,   200,   200,   201,   202,   202,   203,   203,   204,   205,
-     205,   206,   206,   207,   207,   207,   209,   208,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   211,   211,   212,   212,   213,
-     213,   214,   214,   215,   215,   215,   215,   217,   218,   219,
-     220,   221,   216,   222,   223,   224,   225,   226,   216,   227,
-     228,   216,   229,   229,   229,   229,   229,   230,   230,   230,
-     231,   231,   231,   231,   232,   232,   233,   233,   234,   234,
-     235,   235,   236,   237,   238,   239,   236,   240,   241,   241,
-     243,   244,   242,   245,   246,   246,   246,   247,   247,   249,
-     248,   250,   250,   251,   252,   254,   253,   256,   255,   257,
-     257,   258,   258,   258,   259,   259,   260,   260,   260,   260,
-     260,   261,   261,   261,   261,   262,   261,   263,   261,   261,
-     261,   261,   261,   261,   261,   264,   264
+       0,   147,   148,   148,   148,   148,   148,   149,   151,   150,
+     153,   152,   154,   154,   155,   155,   155,   155,   155,   155,
+     155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+     155,   155,   155,   155,   155,   155,   155,   155,   155,   155,
+     156,   155,   155,   155,   157,   157,   157,   158,   158,   159,
+     159,   160,   160,   160,   162,   161,   163,   163,   163,   165,
+     164,   166,   166,   167,   167,   167,   167,   167,   167,   167,
+     167,   167,   167,   167,   167,   167,   167,   167,   167,   167,
+     167,   167,   168,   167,   167,   169,   167,   167,   167,   167,
+     167,   167,   170,   170,   170,   170,   170,   170,   171,   170,
+     172,   170,   173,   170,   174,   175,   175,   175,   176,   176,
+     177,   176,   178,   178,   178,   179,   179,   179,   179,   179,
+     179,   179,   179,   179,   180,   180,   181,   181,   182,   182,
+     182,   183,   184,   183,   185,   185,   185,   185,   185,   185,
+     185,   185,   186,   185,   187,   185,   188,   188,   189,   189,
+     190,   190,   190,   190,   190,   191,   192,   192,   193,   193,
+     193,   193,   193,   193,   193,   193,   194,   194,   195,   195,
+     195,   195,   196,   196,   197,   198,   198,   199,   199,   201,
+     200,   202,   200,   203,   204,   205,   205,   206,   206,   207,
+     207,   208,   209,   209,   210,   210,   211,   212,   212,   213,
+     213,   214,   214,   214,   216,   215,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   218,   218,   219,   219,   220,   220,   221,
+     221,   222,   222,   222,   222,   224,   225,   226,   227,   228,
+     223,   229,   230,   231,   232,   233,   223,   234,   235,   223,
+     236,   223,   237,   237,   237,   237,   237,   238,   238,   238,
+     239,   239,   239,   239,   240,   240,   241,   241,   242,   242,
+     243,   243,   244,   245,   246,   247,   244,   248,   249,   249,
+     251,   252,   250,   253,   254,   254,   254,   255,   255,   257,
+     256,   258,   258,   259,   260,   262,   261,   264,   263,   265,
+     265,   266,   266,   266,   267,   267,   268,   268,   268,   268,
+     268,   269,   269,   269,   269,   270,   269,   271,   269,   269,
+     269,   269,   269,   269,   269,   272,   272
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -1030,26 +1041,27 @@ static const yytype_uint8 yyr2[] =
        3,     0,     1,     3,     0,     2,     1,     2,     3,     0,
        2,     2,     0,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     4,     4,     4,     4,     8,     4,     1,
-       1,     4,     0,     5,     4,     0,     5,     4,     4,     1,
-       3,     2,     1,     3,     2,     0,     5,     0,     7,     0,
-       6,     4,     2,     2,     0,     4,     2,     0,     7,     1,
-       1,     1,     1,     5,     4,     4,     7,     7,     7,     7,
-       8,     2,     1,     3,     1,     1,     3,     4,     1,     0,
-       5,     2,     1,     1,     1,     4,     1,     4,     4,     0,
-       8,     2,     1,     0,     1,     1,     1,     1,     1,     1,
-       1,     2,     0,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     3,     3,     6,     6,     1,     0,     5,
-       2,     3,     0,     0,     7,     3,     3,     0,     3,     1,
-       2,     1,     2,     4,     4,     3,     3,     1,     4,     3,
-       0,     1,     1,     0,     2,     3,     0,     2,     2,     3,
-       4,     2,     2,     2,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       5,     3,     3,     4,     1,     1,     4,     4,     4,     4,
-       4,     4,     4,     6,     6,     6,     4,     6,     4,     1,
-       6,     6,     6,     4,     4,     3,     0,     4,     0,     4,
-       0,     4,     0,     1,     1,     1,     0,     0,     0,     0,
-       0,     0,    19,     0,     0,     0,     0,     0,    18,     0,
-       0,     7,     1,     1,     1,     1,     1,     3,     0,     2,
+       1,     4,     0,     5,     4,     0,     5,     4,     4,     3,
+       3,     6,     1,     3,     2,     1,     3,     2,     0,     5,
+       0,     7,     0,     6,     4,     2,     2,     0,     4,     2,
+       0,     7,     1,     1,     1,     1,     5,     4,     4,     7,
+       7,     7,     7,     8,     2,     1,     3,     1,     1,     3,
+       4,     1,     0,     5,     2,     1,     1,     1,     4,     1,
+       4,     4,     0,     8,     0,     5,     2,     1,     0,     1,
+       1,     1,     1,     1,     1,     1,     2,     0,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
+       6,     6,     1,     0,     4,     1,     0,     3,     1,     0,
+       7,     0,     5,     3,     3,     0,     3,     1,     2,     1,
+       2,     4,     4,     3,     3,     1,     4,     3,     0,     1,
+       1,     0,     2,     3,     0,     2,     2,     3,     4,     2,
+       2,     2,     3,     3,     3,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     5,     3,
+       3,     4,     1,     1,     4,     4,     4,     4,     4,     4,
+       4,     6,     6,     6,     4,     6,     4,     1,     6,     6,
+       6,     4,     4,     3,     0,     4,     0,     4,     0,     4,
+       0,     1,     1,     1,     0,     0,     0,     0,     0,     0,
+      19,     0,     0,     0,     0,     0,    18,     0,     0,     7,
+       0,     5,     1,     1,     1,     1,     1,     3,     0,     2,
        3,     2,     6,    10,     2,     1,     0,     1,     2,     0,
        0,     3,     0,     0,     0,     0,    11,     4,     0,     2,
        0,     0,     6,     1,     0,     3,     5,     0,     3,     0,
@@ -1064,634 +1076,667 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,    59,    10,     8,   315,   309,     0,     2,    62,     3,
+       0,    59,    10,     8,   325,   319,     0,     2,    62,     3,
       13,     6,     0,     4,     0,     5,     0,     1,    60,    11,
-       0,   326,     0,   316,   319,     0,   310,   311,     0,     0,
-       0,     0,    79,     0,    80,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   191,   192,     0,     0,    82,     0,
-       0,     0,   107,     0,    72,    61,    64,    70,     0,    63,
-      66,    67,    68,    69,    65,    71,     0,    16,     0,     0,
-       0,     0,    17,     0,     0,     0,    19,    46,     0,     0,
-       0,     0,     0,     0,    51,    54,     0,     0,     0,   332,
-     343,   331,   339,   341,     0,     0,   326,   320,   339,   341,
-       0,     0,   312,   196,   160,   159,   158,   157,   156,   155,
-     154,   153,   196,   104,   298,     0,     0,     7,    85,     0,
-       0,     0,     0,     0,     0,     0,   190,   193,     0,     0,
-       0,     0,     0,     0,    54,   162,   161,   106,     0,     0,
-      40,     0,   224,   239,     0,     0,     0,     0,     0,     0,
-       0,     0,   225,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    14,
-       0,    49,    31,    47,    32,    18,    33,    23,     0,    36,
-       0,    37,    52,    38,    39,     0,    42,    12,     9,     0,
-       0,     0,     0,   327,     0,     0,   314,   163,     0,   164,
-       0,     0,     0,     0,    62,   173,   172,     0,     0,     0,
-       0,     0,   185,   187,   168,   168,   193,     0,    89,    92,
+       0,   336,     0,   326,   329,     0,   320,   321,     0,     0,
+       0,     0,     0,    79,     0,    80,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   199,   200,     0,     0,
+      82,     0,     0,     0,   110,     0,    72,    61,    64,    70,
+       0,    63,    66,    67,    68,    69,    65,    71,     0,    16,
+       0,     0,     0,     0,    17,     0,     0,     0,    19,    46,
+       0,     0,     0,     0,     0,     0,    51,    54,     0,     0,
+       0,   342,   353,   341,   349,   351,     0,     0,   336,   330,
+     349,   351,     0,     0,   322,   204,   165,   164,   163,   162,
+     161,   160,   159,   158,   204,   107,   308,     0,     0,     0,
+       0,     7,    85,   176,     0,     0,     0,     0,     0,     0,
+       0,   198,   201,     0,     0,     0,     0,     0,     0,    54,
+     167,   166,   109,     0,     0,    40,     0,   232,   247,     0,
+       0,     0,     0,     0,     0,     0,     0,   233,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    13,     0,     0,   202,   198,     0,     0,     0,     0,
+       0,     0,     0,     0,    14,     0,    49,    31,    47,    32,
+      18,    33,    23,     0,    36,     0,    37,    52,    38,    39,
+       0,    42,    12,     9,     0,     0,     0,     0,   337,     0,
+       0,   324,   168,     0,   169,     0,     0,    89,    90,     0,
+       0,    62,   179,     0,     0,   173,   178,     0,     0,     0,
+       0,     0,     0,   193,   195,   173,   173,   201,     0,    92,
+      95,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    13,     0,     0,   210,   206,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   201,   203,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   209,   211,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      25,     0,     0,    45,     0,     0,     0,    22,     0,     0,
-      56,    55,   337,     0,     0,   321,   334,   344,   333,   340,
-     342,     0,   313,   197,   257,   101,   263,   269,   103,   102,
-     300,   297,   299,     0,    76,    78,   317,   177,     0,    73,
-      74,    84,   105,   183,   167,   184,     0,   188,     0,   193,
-     194,    87,    95,    91,    94,     0,     0,    81,     0,    75,
-     196,   196,     0,    88,     0,    27,    28,    43,    29,    30,
-     199,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    25,     0,     0,    45,     0,     0,     0,    22,     0,
+       0,    56,    55,   347,     0,     0,   331,   344,   354,   343,
+     350,   352,     0,   323,   205,   265,   104,     0,   271,   277,
+     106,   105,   310,   307,   309,     0,    76,    78,   327,   185,
+     181,   174,   172,     0,     0,    73,    74,    84,   108,   191,
+     192,     0,   196,     0,   201,   202,    87,    98,    94,    97,
+       0,     0,    81,     0,    75,   204,   204,     0,    88,     0,
+      27,    28,    43,    29,    30,   207,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   222,   221,   219,   218,   217,   212,   211,   215,   216,
-     214,   213,   210,   209,   207,   208,   204,   205,   206,    15,
-      26,    24,    50,    48,    44,    20,    21,    35,    34,    53,
-      57,     0,     0,   328,   329,     0,   324,   322,     0,   278,
-       0,   278,     0,     0,    86,     0,     0,   169,     0,   170,
-     186,   189,   195,     0,    99,    90,    93,     0,    83,     0,
-       0,     0,   318,    41,     0,   232,   238,     0,     0,   236,
-       0,   223,   200,   227,   226,   228,   229,     0,     0,   243,
-     244,   231,     0,   230,     0,    58,   345,   342,   335,   325,
-     323,     0,     0,   278,     0,   248,   285,     0,   286,   270,
-     303,   304,     0,   181,     0,     0,   179,     0,   171,     0,
-       0,    97,   165,   166,     0,     0,     0,     0,     0,     0,
-       0,     0,   220,   346,     0,     0,     0,   272,   273,   274,
-     275,   276,   279,     0,     0,     0,     0,   281,     0,   250,
-     284,   287,   248,     0,   307,     0,   301,     0,   182,   178,
-     180,     0,   168,    96,     0,     0,   108,   233,   234,   235,
-     237,   240,   241,   242,   338,     0,   345,   277,     0,   280,
-       0,     0,   252,   252,   104,     0,   304,     0,     0,    77,
-     196,     0,   100,     0,   330,     0,   278,     0,     0,     0,
-     258,   264,     0,     0,   305,     0,   302,   175,     0,   174,
-      98,   336,     0,     0,   247,     0,     0,   256,     0,   271,
-     308,   304,   196,     0,   282,   249,     0,   253,   254,   255,
-       0,   265,   306,   176,     0,   251,   259,   292,   278,   143,
-       0,     0,   125,   111,   110,   145,   146,   147,   148,   149,
-       0,     0,     0,   132,   134,   139,     0,     0,   133,     0,
-     112,     0,   128,   136,   142,   144,     0,     0,     0,   293,
-     266,   283,     0,     0,   196,     0,   129,     0,   109,     0,
-     124,   168,     0,   141,   260,   196,   131,     0,   289,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   150,     0,
-       0,   122,     0,     0,   126,     0,   168,   289,     0,   143,
-       0,   246,     0,     0,   135,     0,   114,     0,     0,   115,
-     138,     0,   109,     0,     0,   121,   123,   127,   246,   137,
-       0,   288,     0,   290,     0,     0,     0,     0,     0,     0,
-     130,   113,   290,   294,     0,   152,     0,     0,     0,     0,
-       0,     0,   152,   290,   245,   196,     0,   267,   117,   116,
-       0,   118,   119,     0,   261,   152,   151,   291,   168,   120,
-     140,   168,   295,   268,   262,   168,   296
+       0,     0,     0,     0,     0,     0,   230,   229,   227,   226,
+     225,   220,   219,   223,   224,   222,   221,   218,   217,   215,
+     216,   212,   213,   214,    15,    26,    24,    50,    48,    44,
+      20,    21,    35,    34,    53,    57,     0,     0,   338,   339,
+       0,   334,   332,     0,   288,   280,     0,   288,     0,     0,
+      86,     0,     0,   176,   177,     0,   194,   197,   203,     0,
+     102,    93,    96,     0,    83,     0,     0,     0,   328,    41,
+       0,   240,   246,     0,     0,   244,     0,   231,   208,   235,
+     234,   236,   237,     0,     0,   251,   252,   239,     0,   238,
+       0,    58,   355,   352,   345,   335,   333,     0,     0,   288,
+       0,   256,   107,   295,     0,   296,   278,   313,   314,     0,
+     189,     0,     0,   187,     0,     0,    91,     0,     0,   100,
+     170,   171,     0,     0,     0,     0,     0,     0,     0,     0,
+     228,   356,     0,     0,     0,   282,   283,   284,   285,   286,
+     289,     0,     0,     0,     0,   291,     0,   258,     0,   294,
+     297,   256,     0,   317,     0,   311,     0,   190,   186,   188,
+       0,   173,   182,    99,     0,     0,   111,   241,   242,   243,
+     245,   248,   249,   250,   348,     0,   355,   287,     0,   290,
+       0,     0,   260,   281,   260,   107,     0,   314,     0,     0,
+      77,   204,     0,   103,     0,   340,     0,   288,     0,     0,
+       0,   266,   272,     0,     0,   315,     0,   312,   183,     0,
+     180,   101,   346,     0,     0,   255,     0,     0,   264,     0,
+     279,   318,   314,   204,     0,   292,   257,     0,   261,   262,
+     263,     0,   273,   316,   184,     0,   259,   267,   302,   288,
+     148,     0,     0,   128,   114,   113,   150,   151,   152,   153,
+     154,     0,     0,     0,     0,   135,   137,   142,     0,     0,
+     136,     0,   115,     0,   131,   139,   147,   149,     0,     0,
+       0,   303,   274,   293,     0,     0,   144,   204,     0,   132,
+       0,   112,     0,   127,   173,     0,   146,   268,   204,   134,
+       0,   299,     0,     0,     0,     0,     0,     0,     0,     0,
+     148,     0,   155,     0,     0,   125,     0,     0,   129,     0,
+     173,   299,     0,   148,     0,   254,     0,     0,   138,     0,
+     117,     0,     0,   118,     0,   141,     0,   112,     0,     0,
+     124,   126,   130,   254,   140,     0,   298,     0,   300,     0,
+       0,     0,     0,     0,   145,     0,   133,   116,   300,   304,
+       0,   157,     0,     0,     0,     0,     0,     0,   157,   300,
+     253,   204,     0,   275,   120,   119,     0,   121,   122,     0,
+     269,   157,   156,   301,   173,   123,   143,   173,   305,   276,
+     270,   173,   306
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     6,   118,    11,    12,     9,    10,    19,    87,   231,
-     175,   174,   172,   183,   184,   185,   291,     7,     8,    18,
-      55,   129,   204,   221,   423,   525,   480,    56,   200,    57,
-     133,   620,   621,   662,   641,   622,   623,   660,   624,   635,
-     625,   626,   627,   657,   717,   112,   137,    58,   665,    59,
-     318,   206,   317,   522,   569,   416,   475,   476,    60,    61,
-     214,    62,   215,    63,   217,   658,   198,   236,   693,   509,
-     542,   560,   590,   309,   409,   577,   599,   667,   731,   410,
-     578,   597,   648,   728,   411,   513,   503,   464,   465,   468,
-     512,   671,   705,   600,   647,   713,   735,    64,   201,   312,
-     412,   548,   471,   516,   546,    15,    16,    26,    27,   100,
-      13,    14,    65,    66,    23,    24,   408,    94,    95,   496,
-     402,   494
+      -1,     6,   122,    11,    12,     9,    10,    19,    89,   242,
+     180,   179,   177,   188,   189,   190,   302,     7,     8,    18,
+      57,   134,   211,   232,   439,   545,   498,    58,   205,   320,
+     138,   642,   643,   686,   664,   644,   645,   684,   646,   658,
+     680,   647,   648,   649,   681,   743,   114,   142,    60,   689,
+      61,   214,   215,   216,   329,   433,   541,   590,   432,   492,
+     493,    62,    63,   225,    64,   226,    65,   228,   682,   203,
+     247,   718,   527,   562,   581,   611,   321,   424,   598,   620,
+     691,   757,   426,   599,   618,   671,   754,   427,   532,   482,
+     521,   480,   481,   485,   531,   695,   731,   621,   670,   739,
+     761,    66,   206,   324,   428,   569,   488,   535,   567,    15,
+      16,    26,    27,   102,    13,    14,    67,    68,    23,    24,
+     423,    96,    97,   514,   417,   512
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -675
+#define YYPACT_NINF -621
 static const yytype_int16 yypact[] =
 {
-     293,  -675,  -675,  -675,  -675,  -675,    42,  -675,  -675,  -675,
-    -675,  -675,    46,  -675,   -18,  -675,    14,  -675,   736,  1472,
-      65,   104,    51,   -18,  -675,   206,    14,  -675,   445,    57,
-      63,    40,  -675,    86,  -675,   124,   119,   139,   140,   144,
-     189,   190,   196,   204,  -675,  -675,   209,   220,  -675,   223,
-     231,   236,  -675,   238,  -675,  -675,  -675,  -675,    -4,  -675,
-    -675,  -675,  -675,  -675,  -675,  -675,   153,  -675,   147,   124,
-     277,   613,  -675,   279,   280,   283,  -675,  -675,   285,   294,
-     296,   613,   298,   301,   302,  -675,   303,   205,   613,  -675,
-     305,  -675,   307,   308,   259,   180,   104,  -675,  -675,  -675,
-     264,   184,  -675,  -675,  -675,  -675,  -675,  -675,  -675,  -675,
-    -675,  -675,  -675,  -675,  -675,   321,   324,  -675,  -675,   331,
-     333,   124,   124,   338,   124,    16,  -675,   339,    20,   309,
-     124,   346,   348,   317,  -675,  -675,  -675,  -675,   311,    28,
-    -675,    35,  -675,  -675,   613,   613,   613,   320,   325,   328,
-     344,   345,  -675,   347,   350,   351,   355,   356,   357,   358,
-     363,   368,   369,   370,   371,   376,   395,   613,   613,  1295,
-     217,  -675,   225,  -675,   295,    10,  -675,  -675,   341,  1667,
-     299,  -675,  -675,   300,  -675,   381,  -675,  -675,  1667,   390,
-     206,   206,   310,   249,   380,   323,   249,  -675,   613,  -675,
-     394,    22,   -25,   326,  -675,  -675,  -675,   327,   329,   330,
-     332,   334,  -675,  -675,    73,   100,    11,   335,  -675,  -675,
-     408,    27,    20,   362,   440,   465,   613,   364,   -18,   613,
-     613,  -675,   613,   613,  -675,  -675,   929,   613,   613,   613,
-     613,   613,   480,   482,   613,   484,   489,   490,   491,   613,
-     613,   497,   500,   613,   613,   502,  -675,  -675,   613,   613,
-     613,   613,   613,   613,   613,   613,   613,   613,   613,   613,
-     613,   613,   613,   613,   613,   613,   613,   613,   613,   613,
-    1667,   506,   507,  -675,   511,   613,   613,  1667,   136,   512,
-    -675,    24,  -675,   384,   385,  -675,  -675,   514,  -675,  -675,
-    -675,   -75,  -675,  1667,   445,  -675,  -675,  -675,  -675,  -675,
-    -675,  -675,  -675,   519,  -675,  -675,   808,   488,    98,  -675,
-    -675,  -675,  -675,  -675,  -675,  -675,   124,  -675,   124,   339,
-    -675,  -675,  -675,  -675,  -675,   492,    32,  -675,    81,  -675,
-    -675,  -675,  1315,  -675,   -14,  1667,  1667,  1496,  1667,  1667,
-    -675,   745,   949,  1335,  1355,   969,   406,   388,   989,   393,
-     405,   410,   411,  1375,  1395,   412,   413,  1009,  1415,   422,
-    1627,  1494,  1516,  1682,   909,   701,   894,   894,   525,   525,
-     525,   525,   392,   392,   152,   152,  -675,  -675,  -675,  1667,
-    1667,  1667,  -675,  -675,  -675,  1667,  1667,  -675,  -675,  -675,
-    -675,   526,   206,   278,   249,   508,  -675,  -675,   -68,   459,
-     536,   459,   613,   427,  -675,     4,   548,  -675,   331,  -675,
-    -675,  -675,  -675,    20,  -675,  -675,  -675,   532,  -675,   432,
-     438,   573,  -675,  -675,   613,  -675,  -675,   613,   613,  -675,
-     613,  -675,  -675,  -675,  -675,  -675,  -675,   613,   613,  -675,
-    -675,  -675,   574,  -675,   613,  -675,   442,   564,  -675,  -675,
-    -675,    15,   544,  1604,   566,   503,  -675,  1647,   510,  -675,
-    1667,    25,   583,  -675,   588,     3,  -675,   513,  -675,   125,
-      20,  -675,  -675,  -675,   464,  1029,  1051,  1071,  1091,  1111,
-    1131,   467,  1667,   249,   543,   206,   206,  -675,  -675,  -675,
-    -675,  -675,  -675,   468,   613,   375,   587,  -675,   570,   580,
-    -675,  -675,   503,   555,   584,   586,  -675,   487,  -675,  -675,
-    -675,   620,   495,  -675,   133,    20,  -675,  -675,  -675,  -675,
-    -675,  -675,  -675,  -675,  -675,   496,   442,  -675,  1151,  -675,
-     613,   590,   540,   540,  -675,   613,    25,   613,   501,  -675,
-    -675,   549,  -675,   138,   249,   592,   212,  1173,   613,   591,
-    -675,  -675,   474,  1193,  -675,  1213,  -675,  -675,   634,  -675,
-    -675,  -675,   605,   631,  -675,  1233,   613,   113,   595,  -675,
-    -675,    25,  -675,   613,  -675,  -675,  1253,  -675,  -675,  -675,
-     596,  -675,  -675,  -675,  1273,  -675,  -675,  -675,   617,   652,
-      68,   639,   699,  -675,  -675,  -675,  -675,  -675,  -675,  -675,
-     621,   622,   623,  -675,  -675,  -675,   627,   629,  -675,   227,
-    -675,   632,  -675,  -675,  -675,   652,   603,   635,    -4,  -675,
-    -675,  -675,   304,   282,  -675,   637,  -675,   284,  -675,   638,
-    -675,   -93,   227,  -675,  -675,  -675,  -675,   618,   651,   642,
-     643,   545,   645,   547,   661,   663,   576,   577,  -675,   613,
-      83,  -675,    12,   297,  -675,   227,   114,   651,   579,   652,
-     698,   624,   284,   284,  -675,   284,  -675,   284,   284,  -675,
-    -675,  1435,   582,   599,   284,  -675,  -675,  -675,   624,  -675,
-     664,  -675,   696,  -675,   600,   604,    80,   606,   608,   739,
-    -675,  -675,  -675,  -675,   744,    43,   614,   615,   284,   619,
-     646,   648,    43,  -675,  -675,  -675,   747,  -675,  -675,  -675,
-     649,  -675,  -675,    -4,  -675,    43,  -675,  -675,   495,  -675,
-    -675,   495,  -675,  -675,  -675,   495,  -675
+     180,  -621,  -621,  -621,  -621,  -621,    27,  -621,  -621,  -621,
+    -621,  -621,    38,  -621,   -21,  -621,    23,  -621,   824,  1581,
+     111,   112,    75,   -21,  -621,   120,    23,  -621,   623,    95,
+     128,   170,   153,  -621,   201,  -621,   242,   195,   220,   223,
+     226,   238,   245,   252,   280,   285,  -621,  -621,   286,   288,
+    -621,   290,   291,   299,  -621,   315,  -621,  -621,  -621,  -621,
+     129,  -621,  -621,  -621,  -621,  -621,  -621,  -621,   206,  -621,
+     352,   242,   354,   680,  -621,   355,   359,   360,  -621,  -621,
+     361,   363,   366,   680,   367,   369,   372,  -621,   374,   266,
+     680,  -621,   378,  -621,   373,   376,   331,   253,   112,  -621,
+    -621,  -621,   338,   255,  -621,  -621,  -621,  -621,  -621,  -621,
+    -621,  -621,  -621,  -621,  -621,  -621,  -621,   402,   404,   405,
+     406,  -621,  -621,    24,   409,   411,   242,   242,   412,   242,
+       4,  -621,   418,    20,   388,   242,   423,   424,   392,  -621,
+    -621,  -621,  -621,   375,    33,  -621,    41,  -621,  -621,   680,
+     680,   680,   393,   399,   400,   401,   403,  -621,   408,   413,
+     414,   415,   417,   419,   420,   428,   429,   430,   432,   433,
+     435,   438,   680,   680,  1400,   228,  -621,   301,  -621,   302,
+       5,  -621,  -621,   381,  1756,   303,  -621,  -621,   307,  -621,
+     444,  -621,  -621,  1756,   421,   120,   120,   314,   217,   422,
+     335,   217,  -621,   680,  -621,   322,    46,  -621,  -621,    10,
+     336,  -621,  -621,   242,   425,    -2,  -621,   340,   341,   342,
+     343,   347,   348,  -621,  -621,    87,   114,    22,   349,  -621,
+    -621,   455,    32,    20,   356,   490,   491,   680,   357,   -21,
+     680,   680,  -621,   680,   680,  -621,  -621,   833,   680,   680,
+     680,   680,   680,   497,   498,   680,   503,   504,   505,   506,
+     680,   680,   509,   510,   680,   680,   511,  -621,  -621,   680,
+     680,   680,   680,   680,   680,   680,   680,   680,   680,   680,
+     680,   680,   680,   680,   680,   680,   680,   680,   680,   680,
+     680,  1756,   512,   513,  -621,   514,   680,   680,  1756,   310,
+     516,  -621,    25,  -621,   384,   387,  -621,  -621,   518,  -621,
+    -621,  -621,   -12,  -621,  1756,   623,  -621,   242,  -621,  -621,
+    -621,  -621,  -621,  -621,  -621,   525,  -621,  -621,   897,   493,
+    -621,  -621,  -621,    24,   528,  -621,  -621,  -621,  -621,  -621,
+    -621,   242,  -621,   242,   418,  -621,  -621,  -621,  -621,  -621,
+     496,    39,  -621,    86,  -621,  -621,  -621,  1420,  -621,     6,
+    1756,  1756,   691,  1756,  1756,  -621,  1022,  1042,  1440,  1460,
+    1062,   394,   395,  1082,   396,   426,   427,   436,  1480,  1500,
+     437,   440,  1102,  1524,   441,  1716,  1773,  1789,  1804,  1002,
+    1643,   987,   987,   371,   371,   371,   371,   300,   300,    37,
+      37,  -621,  -621,  -621,  1756,  1756,  1756,  -621,  -621,  -621,
+    1756,  1756,  -621,  -621,  -621,  -621,   531,   120,   232,   217,
+     480,  -621,  -621,    -7,   536,  -621,   608,   536,   680,   407,
+    -621,     3,   527,    24,  -621,   442,  -621,  -621,  -621,    20,
+    -621,  -621,  -621,   507,  -621,   443,   448,   537,  -621,  -621,
+     680,  -621,  -621,   680,   680,  -621,   680,  -621,  -621,  -621,
+    -621,  -621,  -621,   680,   680,  -621,  -621,  -621,   542,  -621,
+     680,  -621,   431,   532,  -621,  -621,  -621,    15,   522,  1693,
+     545,   461,  -621,  -621,  1736,   473,  -621,  1756,    19,   560,
+    -621,   566,     2,  -621,   481,   541,  -621,   122,    20,  -621,
+    -621,  -621,   449,  1122,  1148,  1168,  1188,  1208,  1228,   450,
+    1756,   217,   523,   120,   120,  -621,  -621,  -621,  -621,  -621,
+    -621,   451,   680,   227,   570,  -621,   558,   559,   410,  -621,
+    -621,   461,   540,   561,   563,  -621,   459,  -621,  -621,  -621,
+     596,   463,  -621,  -621,   132,    20,  -621,  -621,  -621,  -621,
+    -621,  -621,  -621,  -621,  -621,   465,   431,  -621,  1248,  -621,
+     680,   567,   520,  -621,   520,  -621,   680,    19,   680,   466,
+    -621,  -621,   517,  -621,   136,   217,   564,   248,  1274,   680,
+     585,  -621,  -621,   601,  1294,  -621,  1314,  -621,  -621,   617,
+    -621,  -621,  -621,   588,   611,  -621,  1334,   680,   214,   584,
+    -621,  -621,    19,  -621,   680,  -621,  -621,  1354,  -621,  -621,
+    -621,   586,  -621,  -621,  -621,  1374,  -621,  -621,  -621,   604,
+     736,    47,   628,   544,  -621,  -621,  -621,  -621,  -621,  -621,
+    -621,   613,   614,   242,   615,  -621,  -621,  -621,   616,   618,
+    -621,   284,  -621,   619,  -621,  -621,  -621,   736,   591,   620,
+     129,  -621,  -621,  -621,    57,   229,  -621,  -621,   625,  -621,
+     151,  -621,   626,  -621,   -31,   284,  -621,  -621,  -621,  -621,
+     598,   639,   630,   631,   533,   632,   534,   633,   636,   550,
+     736,   551,  -621,   680,    26,  -621,    16,   289,  -621,   284,
+     150,   639,   552,   736,   674,   580,   151,   151,  -621,   151,
+    -621,   151,   151,  -621,   661,  -621,  1544,   557,   562,   151,
+    -621,  -621,  -621,   580,  -621,   644,  -621,   681,  -621,   565,
+     571,    17,   574,   578,  -621,   701,  -621,  -621,  -621,  -621,
+     704,    58,   581,   582,   151,   583,   592,   593,    58,  -621,
+    -621,  -621,   705,  -621,  -621,  -621,   594,  -621,  -621,   129,
+    -621,    58,  -621,  -621,   463,  -621,  -621,   463,  -621,  -621,
+    -621,   463,  -621
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -675,  -675,   -64,  -675,  -675,  -675,  -675,   527,  -675,  -675,
-    -675,  -675,  -675,  -675,   625,  -675,  -675,  -675,  -675,   552,
-    -675,  -675,  -675,  -210,  -675,  -675,  -675,  -675,   244,  -194,
-    -675,   -43,  -407,   105,   148,   141,  -675,  -675,   171,  -675,
-    -675,   130,  -675,    85,  -674,  -675,  -606,  -569,  -211,  -675,
-    -675,  -297,  -675,  -675,  -675,  -675,  -675,   336,  -675,  -675,
-    -675,  -675,  -675,  -675,  -193,  -101,  -675,   -71,   115,   290,
-    -675,   261,  -675,  -675,  -675,  -675,  -675,  -675,  -675,  -675,
-    -675,  -675,  -675,  -675,  -675,  -675,  -675,  -450,   398,  -675,
-    -675,   143,  -588,  -675,  -675,  -675,  -675,  -675,  -675,  -675,
-    -675,  -675,  -675,  -513,  -675,  -675,  -675,  -675,   787,  -675,
-    -675,  -675,  -675,  -675,   594,   -22,  -675,   718,   -16,  -675,
-    -675,   287
+    -621,  -621,   -70,  -621,  -621,  -621,  -621,   470,  -621,  -621,
+    -621,  -621,  -621,  -621,   587,  -621,  -621,  -621,  -621,   519,
+    -621,  -621,  -621,  -221,  -621,  -621,  -621,  -621,  -444,   -13,
+    -621,   927,  -540,    29,    72,    55,  -621,  -621,    94,  -621,
+    -621,  -621,  -500,  -621,     1,  -508,  -621,  -617,  -425,  -212,
+    -621,   311,  -621,   389,  -621,  -621,  -621,  -621,  -621,  -621,
+     256,  -621,  -621,  -621,  -621,  -621,  -621,  -205,  -103,  -621,
+     -73,    34,   218,  -621,   181,  -621,  -621,  -621,  -621,  -621,
+    -621,  -621,  -621,  -621,  -621,  -621,  -621,  -621,  -621,  -621,
+    -621,  -463,   323,  -621,  -621,    65,  -620,  -621,  -621,  -621,
+    -621,  -621,  -621,  -621,  -621,  -621,  -621,  -527,  -621,  -621,
+    -621,  -621,   738,  -621,  -621,  -621,  -621,  -621,   526,   -19,
+    -621,   668,   -10,  -621,  -621,   211
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -318
+#define YYTABLE_NINF -328
 static const yytype_int16 yytable[] =
 {
-     169,    97,   197,   326,   328,   140,   308,   473,   473,   101,
-     179,   199,   338,   506,   283,   216,   638,   188,   142,   143,
-     117,   419,   646,   330,   218,   219,   310,   603,   400,   514,
-     628,   333,   334,   564,   229,    21,   425,   426,   724,    21,
-     432,   232,    17,   324,   604,   144,   145,   664,   406,   715,
-      20,   732,   146,   147,   148,   459,   628,   208,   209,   716,
-     211,   213,   407,   149,   150,   151,   223,    25,   592,   460,
-     152,    88,   629,   234,   235,   153,   311,   115,   497,   498,
-     499,   500,   501,   154,   638,   333,   334,   682,   155,   156,
-     157,   158,   159,   160,   161,   603,   256,   257,   603,   280,
-     628,   162,   205,   163,    96,    22,   573,   287,    89,    22,
-     113,   313,   604,   314,   712,   604,   114,   730,   164,   220,
-     515,   478,   630,   116,   165,   725,   335,   303,   117,   333,
-     334,   427,   135,   136,   639,   611,   422,   333,   334,   397,
-     398,   519,   333,   334,   474,   474,   284,   329,   601,   166,
-     684,   139,   417,   502,   212,   342,   167,   168,   345,   346,
-     401,   348,   349,   336,   230,   337,   351,   352,   353,   354,
-     355,   233,   119,   358,   293,   294,   120,   121,   363,   364,
-     335,   122,   367,   368,   274,   275,   276,   370,   371,   372,
-     373,   374,   375,   376,   377,   378,   379,   380,   381,   382,
-     383,   384,   385,   386,   387,   388,   389,   390,   391,   324,
-      89,   325,   640,   479,   395,   396,   617,   336,   708,   428,
-     142,   143,   619,   278,   335,    90,   123,   124,    91,    92,
-      93,   638,   335,   125,   418,   640,   324,   335,   327,   429,
-     430,   126,   603,   587,   588,   589,   127,   144,   145,   505,
-     324,   572,   687,   296,   146,   147,   148,   128,   686,   604,
-     130,   336,   420,   523,   421,   149,   150,   151,   131,   336,
-     524,   552,   152,   132,   336,   134,   570,   153,   639,   611,
-     138,   141,   296,   170,   171,   154,   638,   173,   638,   176,
-     155,   156,   157,   158,   159,   160,   161,   603,   177,   603,
-     178,   638,   180,   162,   181,   163,   182,   186,   638,   189,
-     187,   551,   603,   192,   604,   553,   604,   193,   195,   603,
-     164,   196,    97,   190,   191,   202,   165,    90,   203,   604,
-      91,    98,    99,   654,   655,   205,   604,   207,   463,   467,
-     463,   470,   210,   216,   142,   143,   222,   285,   649,   650,
-     224,   166,   225,   279,   226,   649,   650,   237,   167,   168,
-     617,   281,   238,   485,   228,   239,   486,   487,   308,   488,
-     297,   144,   145,   298,   299,   300,   489,   490,   146,   147,
-     148,   240,   241,   492,   242,   290,   456,   243,   244,   149,
-     150,   151,   245,   246,   247,   248,   152,   651,   304,   297,
-     249,   153,   298,   299,   457,   250,   251,   252,   253,   154,
-       1,     2,     3,   254,   155,   156,   157,   158,   159,   160,
-     161,     4,   272,   273,   274,   275,   276,   162,     5,   163,
-     652,   282,   255,   538,   301,   288,   289,   652,   497,   498,
-     499,   500,   501,   292,   164,   332,   340,   295,   305,   567,
-     165,   103,   104,   105,   106,   107,   108,   109,   110,   111,
-     302,   306,   142,   143,   315,   319,    40,   320,   321,   557,
-     322,   341,   323,   331,   563,   166,   565,   286,   304,   535,
-     536,   593,   167,   168,   356,   307,   357,   575,   359,   144,
-     145,    50,    51,   360,   361,   362,   461,   147,   148,   462,
-     339,   365,   343,    52,   366,   586,   369,   149,   150,   151,
-     392,   393,   594,   502,   152,   394,   399,   733,   405,   153,
-     734,   403,   404,   413,   736,   415,   441,   154,   579,   424,
-     455,   443,   155,   156,   157,   158,   159,   160,   161,   142,
-     143,   306,   440,   444,   668,   162,    40,   163,   445,   446,
-     449,   450,   466,   270,   271,   272,   273,   274,   275,   276,
-     453,   458,   164,   472,   477,   307,   144,   145,   165,   481,
-     482,    50,    51,   146,   147,   148,   483,   484,   491,   493,
-     495,   504,   507,    52,   149,   150,   151,   517,   681,   653,
-     656,   152,   518,   166,   661,   511,   153,   534,   508,   521,
-     167,   168,   526,   539,   154,   533,   537,   540,   544,   155,
-     156,   157,   158,   159,   160,   161,   142,   143,   541,   685,
-     653,   545,   162,   547,   163,   549,   550,   558,   576,   694,
-     695,   324,   661,   554,   697,   698,   559,   568,   566,   164,
-     582,   701,   583,   144,   145,   165,   571,   584,   591,   596,
-     146,   147,   148,   685,   505,   631,   602,   644,   632,   633,
-     634,   149,   150,   151,   636,   720,   637,   603,   152,   642,
-     166,   669,   645,   153,   659,   663,   670,   167,   168,   672,
-     673,   154,   675,   674,   604,   676,   155,   156,   157,   158,
-     159,   160,   161,   605,   606,   607,   608,   609,   677,   162,
-     678,   163,   691,   610,   611,   103,   104,   105,   106,   107,
-     108,   109,   110,   111,   679,   680,   164,   689,   703,   692,
-    -125,   704,   165,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,  -109,   700,   706,   612,
-      28,   613,   707,   711,   709,   614,   710,   166,   714,    50,
-      51,   727,   718,   719,   167,   168,   316,   721,   347,   227,
-     258,   615,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     696,   616,    29,    30,   722,   617,   723,   729,   562,   618,
-     666,   619,    31,    32,    33,    34,   643,    35,    36,   690,
-     726,   683,   543,   702,   561,    37,    38,    39,    40,   469,
-     688,   520,    28,   102,   194,     0,    41,    42,    43,    44,
-      45,    46,   344,   555,     0,     0,    47,    48,    49,     0,
-       0,     0,     0,    50,    51,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   414,    52,     0,     0,     0,     0,
-       0,     0,     0,     0,    29,    30,     0,    53,     0,     0,
-       0,     0,     0,  -317,    31,    32,    33,    34,     0,    35,
-      36,     0,     0,    54,     0,     0,     0,    37,    38,    39,
-      40,   434,     0,   435,     0,     0,     0,     0,    41,    42,
-      43,    44,    45,    46,     0,     0,     0,     0,    47,    48,
-      49,     0,     0,     0,     0,    50,    51,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    52,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,   276,    53,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   258,    54,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   258,     0,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   258,     0,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   258,     0,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   258,     0,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,   258,     0,   259,   260,   261,   262,
-     263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
-     273,   274,   275,   276,     0,     0,   258,   350,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   258,   436,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   258,   439,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   258,   442,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   258,   451,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   258,   527,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,     0,     0,   258,   528,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   258,   529,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   258,   530,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   258,   531,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   258,   532,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,   258,   556,
-     259,   260,   261,   262,   263,   264,   265,   266,   267,   268,
-     269,   270,   271,   272,   273,   274,   275,   276,     0,     0,
-     258,   574,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     258,   580,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     258,   581,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     258,   585,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     258,   595,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     258,   598,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     258,   277,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-     258,   431,   259,   260,   261,   262,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
-       0,   437,     0,     0,     0,     0,    67,     0,     0,     0,
+     174,   145,   202,   333,    99,    59,   490,   490,   121,   294,
+     184,   204,   353,   341,   343,   103,   524,   193,   147,   148,
+     661,   661,   345,   533,   229,   230,   227,    17,   212,   415,
+     707,   624,   624,   669,  -175,    21,   348,   349,   528,   240,
+     585,   624,    20,   441,   442,   149,   150,   243,   625,   625,
+     322,   651,   151,   152,   153,  -175,   219,   220,   625,   222,
+     224,   661,    21,   448,   741,   234,   154,   155,   156,   285,
+     286,   287,   624,   157,   742,   613,   245,   246,   158,    25,
+     662,   632,   515,   516,   517,   518,   519,   159,   213,   625,
+     348,   349,   160,   161,   162,   163,   164,   165,   166,   267,
+     268,   663,   291,   323,   652,   167,    22,   168,   738,   332,
+     298,   672,   673,   688,   594,   421,    91,    90,   534,   751,
+     475,   583,   169,   231,    91,   663,   348,   349,   170,   422,
+     314,    98,   756,    22,   476,   350,   348,   349,   332,   438,
+     348,   349,   443,   330,   538,   295,   223,   491,   491,   711,
+     325,   115,   326,   171,   674,   661,   622,   520,   709,   734,
+     172,   173,   344,   639,   357,   416,   624,   360,   361,   641,
+     363,   364,   351,   241,   352,   366,   367,   368,   369,   370,
+     704,   244,   373,   625,   116,   304,   305,   378,   379,   350,
+     119,   382,   383,   715,   675,   650,   385,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
+     399,   400,   401,   402,   403,   404,   405,   406,   497,   117,
+     118,   307,   650,   410,   411,   350,   351,   332,   444,   340,
+     750,   147,   148,   661,   289,   350,   307,    92,   120,   350,
+      93,    94,    95,   758,   624,    92,   121,   425,    93,   100,
+     101,   123,   445,   446,   332,   650,   342,   124,   149,   150,
+     125,   625,   351,   126,   543,   151,   152,   153,   650,   140,
+     141,   436,   351,   437,   573,   127,   351,   544,   591,   154,
+     155,   156,   128,   677,   678,   523,   157,   593,   661,   129,
+     332,   158,   712,   661,   515,   516,   517,   518,   519,   624,
+     159,     1,     2,     3,   624,   160,   161,   162,   163,   164,
+     165,   166,     4,   412,   413,    59,   625,   130,   167,     5,
+     168,   625,   131,   132,   574,   133,   315,   135,   136,   572,
+     283,   284,   285,   286,   287,   169,   137,   143,   662,   632,
+      99,   170,   308,   672,   673,   309,   310,   311,   608,   609,
+     610,   479,   139,   484,   479,   487,   144,   308,   146,   175,
+     309,   310,   473,   176,   178,   181,   171,   182,   290,   520,
+     183,   185,   186,   172,   173,   192,   187,   503,   191,   316,
+     504,   505,   194,   506,   147,   148,   317,   296,   197,   195,
+     507,   508,   196,   318,   198,   200,   201,   510,    42,   281,
+     282,   283,   284,   285,   286,   287,   207,   472,   208,   209,
+     210,   149,   150,   217,   315,   218,   221,   319,   151,   152,
+     153,   639,   227,    52,    53,   233,   675,   235,   236,   237,
+     248,   239,   154,   155,   156,    54,   249,   250,   251,   157,
+     252,   292,   293,   299,   158,   253,   563,   300,   301,   558,
+     254,   255,   256,   159,   257,   306,   258,   259,   160,   161,
+     162,   163,   164,   165,   166,   260,   261,   262,   588,   263,
+     264,   167,   265,   168,   317,   266,   313,   303,   327,   312,
+     334,   318,   331,   335,   336,   337,    42,   578,   169,   338,
+     339,   346,   347,   584,   170,   586,   355,   356,   354,   358,
+     614,   371,   372,   555,   556,   319,   596,   374,   375,   376,
+     377,    52,    53,   380,   381,   384,   407,   408,   409,   171,
+     414,   297,   420,    54,   607,   418,   172,   173,   419,   429,
+     431,   615,   435,   440,   456,   471,   474,   457,   459,   147,
+     148,   502,   759,   494,   499,   760,   509,   489,   513,   762,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   522,
+     526,   525,   530,   656,   536,   692,   149,   150,   460,   461,
+     537,   540,   511,   477,   152,   153,   478,   542,   462,   465,
+     554,  -112,   466,   469,   496,   500,   559,   154,   155,   156,
+     501,   546,   553,   557,   157,   560,   565,   561,   566,   158,
+     568,   570,   571,   332,   579,   315,   575,   587,   159,   589,
+     706,   147,   148,   160,   161,   162,   163,   164,   165,   166,
+     580,   592,   597,   603,   483,   604,   167,   605,   168,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   149,   150,
+     612,   523,   617,   169,   653,   151,   152,   153,   667,   170,
+     654,   655,   657,   659,   693,   660,   665,   668,   600,   154,
+     155,   156,   683,   687,   694,   317,   157,   696,   697,   699,
+     701,   158,   318,   702,   171,   698,   700,    42,   716,   717,
+     159,   172,   173,   147,   148,   160,   161,   162,   163,   164,
+     165,   166,   703,   705,   714,    69,   319,   724,   167,  -128,
+     168,   729,    52,    53,   726,   737,   730,   732,   740,   753,
+     149,   150,   362,   733,    54,   169,   735,   151,   152,   153,
+     736,   170,   434,   744,   745,   747,   238,   449,   721,    70,
+     328,   154,   155,   156,   748,   749,   755,   690,   157,   708,
+     623,   666,   752,   158,   495,   582,   171,   728,   539,   564,
+     486,   624,   159,   172,   173,    71,   713,   160,   161,   162,
+     163,   164,   165,   166,   104,   359,   199,   576,   625,     0,
+     167,     0,   168,     0,     0,     0,     0,   626,   627,   628,
+     629,   630,     0,     0,     0,     0,     0,   169,     0,    72,
+     631,   632,     0,   170,     0,    73,    74,    75,    76,    77,
+     633,    78,    79,    80,     0,    81,    82,     0,    83,    84,
+      85,     0,     0,     0,     0,    86,    87,    88,   171,     0,
+       0,     0,     0,     0,     0,   172,   173,   634,    28,   635,
+       0,     0,     0,   636,     0,     0,     0,    52,    53,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   269,   637,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,     0,   638,
+      29,    30,    31,   639,     0,     0,     0,   640,     0,   641,
+       0,     0,     0,    32,    33,    34,    35,     0,    36,    37,
+      38,     0,     0,     0,     0,     0,     0,    39,    40,    41,
+      42,    28,     0,     0,     0,     0,     0,     0,    43,    44,
+      45,    46,    47,    48,     0,     0,     0,     0,    49,    50,
+      51,     0,     0,     0,     0,    52,    53,     0,     0,     0,
+       0,     0,     0,   430,     0,     0,     0,    54,     0,     0,
+       0,     0,     0,    29,    30,    31,     0,     0,     0,    55,
+       0,     0,     0,     0,     0,  -327,    32,    33,    34,    35,
+       0,    36,    37,    38,     0,    56,     0,     0,     0,     0,
+      39,    40,    41,    42,     0,   365,     0,     0,     0,     0,
+       0,    43,    44,    45,    46,    47,    48,     0,     0,     0,
+       0,    49,    50,    51,     0,     0,     0,     0,    52,    53,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      54,   277,   278,   279,   280,   281,   282,   283,   284,   285,
+     286,   287,    55,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   269,    56,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   269,     0,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   269,     0,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   269,     0,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   269,     0,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,   269,     0,   270,
+     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
+     281,   282,   283,   284,   285,   286,   287,     0,     0,     0,
+       0,     0,   450,   269,   451,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   269,   452,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   269,   455,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   269,   458,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   269,   467,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   269,   547,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,     0,     0,     0,     0,     0,     0,   269,
+     548,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   269,
+     549,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   269,
+     550,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   269,
+     551,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   269,
+     552,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   269,
+     577,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,     0,
+       0,     0,     0,     0,     0,   269,   595,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   269,   601,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   269,   602,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   269,   606,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   269,   616,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   269,   619,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,     0,     0,     0,     0,   269,
+     288,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,   269,
+     447,   270,   271,   272,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287,     0,
+     453,   676,   679,     0,     0,    69,     0,   685,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   438,     0,     0,     0,     0,     0,     0,     0,     0,
-      67,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      68,   447,   260,   261,   262,   263,   264,   265,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
-       0,   448,   433,    69,    68,   261,   262,   263,   264,   265,
-     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
-     276,   452,     0,     0,     0,     0,     0,    69,     0,     0,
-       0,     0,     0,     0,     0,     0,    70,     0,     0,     0,
-       0,   699,    71,    72,    73,    74,    75,   -43,    76,    77,
-      78,     0,    79,    80,     0,    81,    82,    83,     0,     0,
-      70,     0,    84,    85,    86,     0,    71,    72,    73,    74,
-      75,     0,    76,    77,    78,     0,    79,    80,     0,    81,
-      82,    83,     0,     0,     0,     0,    84,    85,    86,   258,
-       0,   259,   260,   261,   262,   263,   264,   265,   266,   267,
-     268,   269,   270,   271,   272,   273,   274,   275,   276,     0,
-       0,   505,   258,   454,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   258,   510,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   258,     0,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   262,   263,   264,   265,   266,   267,   268,   269,
-     270,   271,   272,   273,   274,   275,   276
+     454,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   710,   676,     0,     0,     0,     0,    70,
+     463,     0,     0,   719,   720,     0,   685,     0,   722,   723,
+       0,     0,     0,     0,     0,     0,   727,     0,     0,     0,
+     464,     0,     0,     0,     0,    71,     0,     0,   710,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   746,     0,     0,   468,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,     0,    72,
+       0,     0,     0,     0,   725,    73,    74,    75,    76,    77,
+     -43,    78,    79,    80,     0,    81,    82,     0,    83,    84,
+      85,     0,     0,     0,     0,    86,    87,    88,   269,     0,
+     270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,     0,     0,
+     523,   269,   470,   270,   271,   272,   273,   274,   275,   276,
+     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
+     287,   269,   529,   270,   271,   272,   273,   274,   275,   276,
+     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
+     287,   269,     0,   270,   271,   272,   273,   274,   275,   276,
+     277,   278,   279,   280,   281,   282,   283,   284,   285,   286,
+     287,   271,   272,   273,   274,   275,   276,   277,   278,   279,
+     280,   281,   282,   283,   284,   285,   286,   287,   272,   273,
+     274,   275,   276,   277,   278,   279,   280,   281,   282,   283,
+     284,   285,   286,   287,   273,   274,   275,   276,   277,   278,
+     279,   280,   281,   282,   283,   284,   285,   286,   287
 };
 
 static const yytype_int16 yycheck[] =
 {
-      71,    23,   103,   214,   215,    69,   200,     4,     4,    25,
-      81,   112,   222,   463,     4,     4,     4,    88,     3,     4,
-       4,   318,   628,   216,     4,     5,     4,    15,     4,     4,
-     599,     4,     5,   546,     6,    53,     4,     5,   712,    53,
-      54,     6,     0,   136,    32,    30,    31,   140,   123,     6,
-       4,   725,    37,    38,    39,   123,   625,   121,   122,    16,
-     124,   125,   137,    48,    49,    50,   130,    53,   581,   137,
-      55,     6,     4,   144,   145,    60,    54,    37,    63,    64,
-      65,    66,    67,    68,     4,     4,     5,     4,    73,    74,
-      75,    76,    77,    78,    79,    15,   167,   168,    15,   170,
-     669,    86,     4,    88,    53,   123,   556,   178,     4,   123,
-      53,   136,    32,   138,   702,    32,    53,   723,   103,    99,
-      95,   418,    54,    37,   109,   713,    99,   198,     4,     4,
-       5,    99,   136,   137,    51,    52,   329,     4,     5,     3,
-       4,   138,     4,     5,   141,   141,   136,   136,   598,   134,
-     138,     4,    54,   138,   138,   226,   141,   142,   229,   230,
-     136,   232,   233,   136,   136,   138,   237,   238,   239,   240,
-     241,   136,    53,   244,   190,   191,    37,    37,   249,   250,
-      99,    37,   253,   254,    32,    33,    34,   258,   259,   260,
-     261,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   276,   277,   278,   279,   136,
-       4,   138,   619,   423,   285,   286,   133,   136,   138,   138,
-       3,     4,   139,     6,    99,   121,    37,    37,   124,   125,
-     126,     4,    99,    37,   136,   642,   136,    99,   138,   340,
-     341,    37,    15,   130,   131,   132,    37,    30,    31,    37,
-     136,    39,   138,     4,    37,    38,    39,    37,   665,    32,
-      37,   136,   326,   138,   328,    48,    49,    50,    37,   136,
-     480,   138,    55,    37,   136,    37,   138,    60,    51,    52,
-     127,     4,     4,     4,     4,    68,     4,     4,     4,     4,
-      73,    74,    75,    76,    77,    78,    79,    15,     4,    15,
-       4,     4,     4,    86,     3,    88,     4,     4,     4,     4,
-     105,   522,    15,    54,    32,   525,    32,   137,    54,    15,
-     103,   137,   344,    16,    16,     4,   109,   121,     4,    32,
-     124,   125,   126,    51,    52,     4,    32,     4,   409,   410,
-     411,   412,     4,     4,     3,     4,    37,     6,    51,    52,
-       4,   134,     4,   136,    37,    51,    52,    37,   141,   142,
-     133,   136,    37,   434,    53,    37,   437,   438,   562,   440,
-     121,    30,    31,   124,   125,   126,   447,   448,    37,    38,
-      39,    37,    37,   454,    37,     4,   402,    37,    37,    48,
-      49,    50,    37,    37,    37,    37,    55,    93,     4,   121,
-      37,    60,   124,   125,   126,    37,    37,    37,    37,    68,
-     117,   118,   119,    37,    73,    74,    75,    76,    77,    78,
-      79,   128,    30,    31,    32,    33,    34,    86,   135,    88,
-     133,   136,    37,   504,    54,   136,   136,   133,    63,    64,
-      65,    66,    67,    53,   103,    37,     6,   137,    54,   550,
-     109,     6,     7,     8,     9,    10,    11,    12,    13,    14,
-     137,    67,     3,     4,   138,   138,    72,   138,   138,   540,
-     138,     6,   138,   138,   545,   134,   547,   136,     4,   495,
-     496,   582,   141,   142,     4,    91,     4,   558,     4,    30,
-      31,    97,    98,     4,     4,     4,    37,    38,    39,    40,
-     138,     4,   138,   109,     4,   576,     4,    48,    49,    50,
-       4,     4,   583,   138,    55,     4,     4,   728,     4,    60,
-     731,   137,   137,     4,   735,    37,   138,    68,    54,    37,
-       4,   138,    73,    74,    75,    76,    77,    78,    79,     3,
-       4,    67,   136,   138,   645,    86,    72,    88,   138,   138,
-     138,   138,    16,    28,    29,    30,    31,    32,    33,    34,
-     138,    53,   103,   136,    16,    91,    30,    31,   109,    37,
-     138,    97,    98,    37,    38,    39,   138,     4,     4,   137,
-      16,    37,    16,   109,    48,    49,    50,     4,   659,   632,
-     633,    55,     4,   134,   637,    85,    60,    54,    95,    86,
-     141,   142,   138,    16,    68,   138,   138,    37,    53,    73,
-      74,    75,    76,    77,    78,    79,     3,     4,    38,   662,
-     663,    37,    86,    37,    88,   138,     6,    37,    37,   672,
-     673,   136,   675,   137,   677,   678,    96,    88,   137,   103,
-       6,   684,    37,    30,    31,   109,    54,    16,    53,    53,
-      37,    38,    39,   696,    37,    16,     4,    54,    37,    37,
-      37,    48,    49,    50,    37,   708,    37,    15,    55,    37,
-     134,    53,    37,    60,    37,    37,    25,   141,   142,    37,
-      37,    68,    37,   138,    32,   138,    73,    74,    75,    76,
-      77,    78,    79,    41,    42,    43,    44,    45,    37,    86,
-      37,    88,     4,    51,    52,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,   138,   138,   103,   138,    54,    95,
-     138,    25,   109,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    37,   138,   138,    87,
-       4,    89,   138,     4,   138,    93,   138,   134,     4,    97,
-      98,     4,   138,   138,   141,   142,   204,   138,   231,   134,
-      15,   109,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-     675,   129,    46,    47,   138,   133,   138,   138,   544,   137,
-     642,   139,    56,    57,    58,    59,   625,    61,    62,   669,
-     715,   660,   512,   688,   543,    69,    70,    71,    72,   411,
-     667,   475,     4,    26,    96,    -1,    80,    81,    82,    83,
-      84,    85,   228,   536,    -1,    -1,    90,    91,    92,    -1,
-      -1,    -1,    -1,    97,    98,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    36,   109,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    46,    47,    -1,   121,    -1,    -1,
-      -1,    -1,    -1,   127,    56,    57,    58,    59,    -1,    61,
-      62,    -1,    -1,   137,    -1,    -1,    -1,    69,    70,    71,
-      72,   136,    -1,   138,    -1,    -1,    -1,    -1,    80,    81,
-      82,    83,    84,    85,    -1,    -1,    -1,    -1,    90,    91,
-      92,    -1,    -1,    -1,    -1,    97,    98,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   109,    24,    25,
-      26,    27,    28,    29,    30,    31,    32,    33,    34,   121,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    15,   137,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    15,    -1,    17,    18,    19,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
-      31,    32,    33,    34,    -1,    -1,    15,   138,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    15,   138,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    15,   138,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    15,   138,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    15,   138,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    15,   138,    17,    18,
-      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    -1,    -1,    15,   138,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    15,   138,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    15,   138,
+      73,    71,   105,   215,    23,    18,     4,     4,     4,     4,
+      83,   114,   233,   225,   226,    25,   479,    90,     3,     4,
+       4,     4,   227,     4,     4,     5,     4,     0,     4,     4,
+       4,    15,    15,   650,    36,    56,     4,     5,   482,     6,
+     567,    15,     4,     4,     5,    30,    31,     6,    32,    32,
+       4,     4,    37,    38,    39,    57,   126,   127,    32,   129,
+     130,     4,    56,    57,     6,   135,    51,    52,    53,    32,
+      33,    34,    15,    58,    16,   602,   149,   150,    63,    56,
+      54,    55,    67,    68,    69,    70,    71,    72,    64,    32,
+       4,     5,    77,    78,    79,    80,    81,    82,    83,   172,
+     173,   641,   175,    57,    57,    90,   127,    92,   728,   140,
+     183,    54,    55,   144,   577,   127,     4,     6,    99,   739,
+     127,   565,   107,   103,     4,   665,     4,     5,   113,   141,
+     203,    56,   749,   127,   141,   103,     4,     5,   140,   344,
+       4,     5,   103,   213,   142,   140,   142,   145,   145,   689,
+     140,    56,   142,   138,    97,     4,   619,   142,   142,   142,
+     145,   146,   140,   137,   237,   140,    15,   240,   241,   143,
+     243,   244,   140,   140,   142,   248,   249,   250,   251,   252,
+     680,   140,   255,    32,    56,   195,   196,   260,   261,   103,
+      37,   264,   265,   693,   137,   620,   269,   270,   271,   272,
+     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
+     283,   284,   285,   286,   287,   288,   289,   290,   439,    49,
+      50,     4,   647,   296,   297,   103,   140,   140,   142,   142,
+     738,     3,     4,     4,     6,   103,     4,   125,    37,   103,
+     128,   129,   130,   751,    15,   125,     4,   317,   128,   129,
+     130,    56,   355,   356,   140,   680,   142,    37,    30,    31,
+      37,    32,   140,    37,   142,    37,    38,    39,   693,   140,
+     141,   341,   140,   343,   142,    37,   140,   498,   142,    51,
+      52,    53,    37,    54,    55,    37,    58,    39,     4,    37,
+     140,    63,   142,     4,    67,    68,    69,    70,    71,    15,
+      72,   121,   122,   123,    15,    77,    78,    79,    80,    81,
+      82,    83,   132,     3,     4,   328,    32,    37,    90,   139,
+      92,    32,    37,    37,   545,    37,     4,    37,    37,   541,
+      30,    31,    32,    33,    34,   107,    37,   131,    54,    55,
+     359,   113,   125,    54,    55,   128,   129,   130,   134,   135,
+     136,   424,    37,   426,   427,   428,     4,   125,     4,     4,
+     128,   129,   130,     4,     4,     4,   138,     4,   140,   142,
+       4,     4,     3,   145,   146,   109,     4,   450,     4,    57,
+     453,   454,     4,   456,     3,     4,    64,     6,    57,    16,
+     463,   464,    16,    71,   141,    57,   141,   470,    76,    28,
+      29,    30,    31,    32,    33,    34,     4,   417,     4,     4,
+       4,    30,    31,     4,     4,     4,     4,    95,    37,    38,
+      39,   137,     4,   101,   102,    37,   137,     4,     4,    37,
+      37,    56,    51,    52,    53,   113,    37,    37,    37,    58,
+      37,   140,   140,   140,    63,    37,    36,   140,     4,   522,
+      37,    37,    37,    72,    37,   141,    37,    37,    77,    78,
+      79,    80,    81,    82,    83,    37,    37,    37,   571,    37,
+      37,    90,    37,    92,    64,    37,   141,    56,   142,    57,
+     140,    71,    57,   142,   142,   142,    76,   560,   107,   142,
+     142,   142,    37,   566,   113,   568,     6,     6,   142,   142,
+     603,     4,     4,   513,   514,    95,   579,     4,     4,     4,
+       4,   101,   102,     4,     4,     4,     4,     4,     4,   138,
+       4,   140,     4,   113,   597,   141,   145,   146,   141,     4,
+      37,   604,     4,    37,   140,     4,    56,   142,   142,     3,
+       4,     4,   754,    16,    37,   757,     4,   140,    16,   761,
+       6,     7,     8,     9,    10,    11,    12,    13,    14,    37,
+      99,    16,    89,   633,     4,   668,    30,    31,   142,   142,
+       4,    90,   141,    37,    38,    39,    40,    36,   142,   142,
+      57,    37,   142,   142,   142,   142,    16,    51,    52,    53,
+     142,   142,   142,   142,    58,    37,    56,    38,    37,    63,
+      37,   142,     6,   140,    37,     4,   141,   141,    72,    92,
+     683,     3,     4,    77,    78,    79,    80,    81,    82,    83,
+     100,    57,    37,     6,    16,    37,    90,    16,    92,     6,
+       7,     8,     9,    10,    11,    12,    13,    14,    30,    31,
+      56,    37,    56,   107,    16,    37,    38,    39,    57,   113,
+      37,    37,    37,    37,    56,    37,    37,    37,    57,    51,
+      52,    53,    37,    37,    25,    64,    58,    37,    37,    37,
+      37,    63,    71,    37,   138,   142,   142,    76,     4,    99,
+      72,   145,   146,     3,     4,    77,    78,    79,    80,    81,
+      82,    83,   142,   142,   142,     4,    95,    36,    90,   142,
+      92,    57,   101,   102,   142,     4,    25,   142,     4,     4,
+      30,    31,   242,   142,   113,   107,   142,    37,    38,    39,
+     142,   113,   333,   142,   142,   142,   139,    36,   699,    38,
+     211,    51,    52,    53,   142,   142,   142,   665,    58,   684,
+       4,   647,   741,    63,   433,   564,   138,   713,   492,   531,
+     427,    15,    72,   145,   146,    64,   691,    77,    78,    79,
+      80,    81,    82,    83,    26,   239,    98,   556,    32,    -1,
+      90,    -1,    92,    -1,    -1,    -1,    -1,    41,    42,    43,
+      44,    45,    -1,    -1,    -1,    -1,    -1,   107,    -1,    98,
+      54,    55,    -1,   113,    -1,   104,   105,   106,   107,   108,
+      64,   110,   111,   112,    -1,   114,   115,    -1,   117,   118,
+     119,    -1,    -1,    -1,    -1,   124,   125,   126,   138,    -1,
+      -1,    -1,    -1,    -1,    -1,   145,   146,    91,     4,    93,
+      -1,    -1,    -1,    97,    -1,    -1,    -1,   101,   102,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    15,   113,
       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    15,   138,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    15,   138,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    15,   138,
-      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
-      15,   138,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      15,   138,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      15,   138,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      15,   138,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      15,   138,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      15,   138,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      15,   136,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      15,   136,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,   136,    -1,    -1,    -1,    -1,     4,    -1,    -1,    -1,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,   133,
+      46,    47,    48,   137,    -1,    -1,    -1,   141,    -1,   143,
+      -1,    -1,    -1,    59,    60,    61,    62,    -1,    64,    65,
+      66,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
+      76,     4,    -1,    -1,    -1,    -1,    -1,    -1,    84,    85,
+      86,    87,    88,    89,    -1,    -1,    -1,    -1,    94,    95,
+      96,    -1,    -1,    -1,    -1,   101,   102,    -1,    -1,    -1,
+      -1,    -1,    -1,    36,    -1,    -1,    -1,   113,    -1,    -1,
+      -1,    -1,    -1,    46,    47,    48,    -1,    -1,    -1,   125,
+      -1,    -1,    -1,    -1,    -1,   131,    59,    60,    61,    62,
+      -1,    64,    65,    66,    -1,   141,    -1,    -1,    -1,    -1,
+      73,    74,    75,    76,    -1,   142,    -1,    -1,    -1,    -1,
+      -1,    84,    85,    86,    87,    88,    89,    -1,    -1,    -1,
+      -1,    94,    95,    96,    -1,    -1,    -1,    -1,   101,   102,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       4,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      38,   136,    18,    19,    20,    21,    22,    23,    24,    25,
+     113,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,   125,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    15,   141,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    15,    -1,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    15,    -1,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    15,    -1,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    15,    -1,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    15,    -1,    17,
+      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    -1,    -1,    -1,
+      -1,    -1,   140,    15,   142,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    15,   142,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    15,   142,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    15,   142,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    15,   142,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    15,   142,    17,    18,    19,    20,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
+      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    15,
+     142,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    15,
+     142,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    15,
+     142,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    15,
+     142,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    15,
+     142,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    15,
+     142,    17,    18,    19,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      -1,   136,    36,    61,    38,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,   136,    -1,    -1,    -1,    -1,    -1,    61,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    94,    -1,    -1,    -1,
-      -1,   136,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,    -1,   110,   111,    -1,   113,   114,   115,    -1,    -1,
-      94,    -1,   120,   121,   122,    -1,   100,   101,   102,   103,
-     104,    -1,   106,   107,   108,    -1,   110,   111,    -1,   113,
-     114,   115,    -1,    -1,    -1,    -1,   120,   121,   122,    15,
-      -1,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      -1,    -1,    -1,    -1,    -1,    15,   142,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    15,   142,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    15,   142,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    15,   142,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    15,   142,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    15,   142,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    -1,    -1,    -1,    -1,    15,
+     140,    17,    18,    19,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34,    15,
+     140,    17,    18,    19,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
-      -1,    37,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    15,    -1,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
-      33,    34,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34
+     140,   654,   655,    -1,    -1,     4,    -1,   660,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     140,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   686,   687,    -1,    -1,    -1,    -1,    38,
+     140,    -1,    -1,   696,   697,    -1,   699,    -1,   701,   702,
+      -1,    -1,    -1,    -1,    -1,    -1,   709,    -1,    -1,    -1,
+     140,    -1,    -1,    -1,    -1,    64,    -1,    -1,   721,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   734,    -1,    -1,   140,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,    98,
+      -1,    -1,    -1,    -1,   140,   104,   105,   106,   107,   108,
+     109,   110,   111,   112,    -1,   114,   115,    -1,   117,   118,
+     119,    -1,    -1,    -1,    -1,   124,   125,   126,    15,    -1,
+      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    -1,    -1,
+      37,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    15,    -1,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
+      34,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    19,    20,
+      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
+      31,    32,    33,    34,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    29,    30,    31,    32,    33,    34
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    symbol of state STATE-NUM.  */
 static const yytype_uint16 yystos[] =
 {
-       0,   117,   118,   119,   128,   135,   144,   160,   161,   148,
-     149,   146,   147,   253,   254,   248,   249,     0,   162,   150,
-       4,    53,   123,   257,   258,    53,   250,   251,     4,    46,
-      47,    56,    57,    58,    59,    61,    62,    69,    70,    71,
-      72,    80,    81,    82,    83,    84,    85,    90,    91,    92,
-      97,    98,   109,   121,   137,   163,   170,   172,   190,   192,
-     201,   202,   204,   206,   240,   255,   256,     4,    38,    61,
-      94,   100,   101,   102,   103,   104,   106,   107,   108,   110,
-     111,   113,   114,   115,   120,   121,   122,   151,     6,     4,
-     121,   124,   125,   126,   260,   261,    53,   258,   125,   126,
-     252,   261,   251,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,   188,    53,    53,    37,    37,     4,   145,    53,
-      37,    37,    37,    37,    37,    37,    37,    37,    37,   164,
-      37,    37,    37,   173,    37,   136,   137,   189,   127,     4,
-     145,     4,     3,     4,    30,    31,    37,    38,    39,    48,
-      49,    50,    55,    60,    68,    73,    74,    75,    76,    77,
-      78,    79,    86,    88,   103,   109,   134,   141,   142,   210,
-       4,     4,   155,     4,   154,   153,     4,     4,     4,   210,
-       4,     3,     4,   156,   157,   158,     4,   105,   210,     4,
-      16,    16,    54,   137,   260,    54,   137,   208,   209,   208,
-     171,   241,     4,     4,   165,     4,   194,     4,   145,   145,
-       4,   145,   138,   145,   203,   205,     4,   207,     4,     5,
-      99,   166,    37,   145,     4,     4,    37,   157,    53,     6,
-     136,   152,     6,   136,   210,   210,   210,    37,    37,    37,
+       0,   121,   122,   123,   132,   139,   148,   164,   165,   152,
+     153,   150,   151,   261,   262,   256,   257,     0,   166,   154,
+       4,    56,   127,   265,   266,    56,   258,   259,     4,    46,
+      47,    48,    59,    60,    61,    62,    64,    65,    66,    73,
+      74,    75,    76,    84,    85,    86,    87,    88,    89,    94,
+      95,    96,   101,   102,   113,   125,   141,   167,   174,   176,
+     195,   197,   208,   209,   211,   213,   248,   263,   264,     4,
+      38,    64,    98,   104,   105,   106,   107,   108,   110,   111,
+     112,   114,   115,   117,   118,   119,   124,   125,   126,   155,
+       6,     4,   125,   128,   129,   130,   268,   269,    56,   266,
+     129,   130,   260,   269,   259,     6,     7,     8,     9,    10,
+      11,    12,    13,    14,   193,    56,    56,    49,    50,    37,
+      37,     4,   149,    56,    37,    37,    37,    37,    37,    37,
+      37,    37,    37,    37,   168,    37,    37,    37,   177,    37,
+     140,   141,   194,   131,     4,   149,     4,     3,     4,    30,
+      31,    37,    38,    39,    51,    52,    53,    58,    63,    72,
+      77,    78,    79,    80,    81,    82,    83,    90,    92,   107,
+     113,   138,   145,   146,   217,     4,     4,   159,     4,   158,
+     157,     4,     4,     4,   217,     4,     3,     4,   160,   161,
+     162,     4,   109,   217,     4,    16,    16,    57,   141,   268,
+      57,   141,   215,   216,   215,   175,   249,     4,     4,     4,
+       4,   169,     4,    64,   198,   199,   200,     4,     4,   149,
+     149,     4,   149,   142,   149,   210,   212,     4,   214,     4,
+       5,   103,   170,    37,   149,     4,     4,    37,   161,    56,
+       6,   140,   156,     6,   140,   217,   217,   217,    37,    37,
       37,    37,    37,    37,    37,    37,    37,    37,    37,    37,
-      37,    37,    37,    37,    37,    37,   210,   210,    15,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,   136,     6,   136,
-     210,   136,   136,     4,   136,     6,   136,   210,   136,   136,
-       4,   159,    53,   261,   261,   137,     4,   121,   124,   125,
-     126,    54,   137,   210,     4,    54,    67,    91,   172,   216,
-       4,    54,   242,   136,   138,   138,   162,   195,   193,   138,
-     138,   138,   138,   138,   136,   138,   191,   138,   191,   136,
-     207,   138,    37,     4,     5,    99,   136,   138,   166,   138,
-       6,     6,   210,   138,   257,   210,   210,   150,   210,   210,
-     138,   210,   210,   210,   210,   210,     4,     4,   210,     4,
-       4,     4,     4,   210,   210,     4,     4,   210,   210,     4,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
-     210,   210,     4,     4,     4,   210,   210,     3,     4,     4,
-       4,   136,   263,   137,   137,     4,   123,   137,   259,   217,
-     222,   227,   243,     4,    36,    37,   198,    54,   136,   194,
-     145,   145,   207,   167,    37,     4,     5,    99,   138,   208,
-     208,   136,    54,    36,   136,   138,   138,   136,   136,   138,
-     136,   138,   138,   138,   138,   138,   138,   136,   136,   138,
-     138,   138,   136,   138,    16,     4,   261,   126,    53,   123,
-     137,    37,    40,   210,   230,   231,    16,   210,   232,   231,
-     210,   245,   136,     4,   141,   199,   200,    16,   194,   166,
-     169,    37,   138,   138,     4,   210,   210,   210,   210,   210,
-     210,     4,   210,   137,   264,    16,   262,    63,    64,    65,
-      66,    67,   138,   229,    37,    37,   230,    16,    95,   212,
-      16,    85,   233,   228,     4,    95,   246,     4,     4,   138,
-     200,    86,   196,   138,   166,   168,   138,   138,   138,   138,
-     138,   138,   138,   138,    54,   261,   261,   138,   210,    16,
-      37,    38,   213,   212,    53,    37,   247,    37,   244,   138,
-       6,   191,   138,   166,   137,   264,   138,   210,    37,    96,
-     214,   214,   171,   210,   246,   210,   137,   208,    88,   197,
-     138,    54,    39,   230,   138,   210,    37,   218,   223,    54,
-     138,   138,     6,    37,    16,   138,   210,   130,   131,   132,
-     215,    53,   246,   208,   210,   138,    53,   224,   138,   219,
-     236,   230,     4,    15,    32,    41,    42,    43,    44,    45,
-      51,    52,    87,    89,    93,   109,   129,   133,   137,   139,
-     174,   175,   178,   179,   181,   183,   184,   185,   190,     4,
-      54,    16,    37,    37,    37,   182,    37,    37,     4,    51,
-     175,   177,    37,   181,    54,    37,   189,   237,   225,    51,
-      52,    93,   133,   174,    51,    52,   174,   186,   208,    37,
-     180,   174,   176,    37,   140,   191,   177,   220,   208,    53,
-      25,   234,    37,    37,   138,    37,   138,    37,    37,   138,
-     138,   210,     4,   178,   138,   174,   175,   138,   234,   138,
-     184,     4,    95,   211,   174,   174,   176,   174,   174,   136,
-     138,   174,   211,    54,    25,   235,   138,   138,   138,   138,
-     138,     4,   235,   238,     4,     6,    16,   187,   138,   138,
-     174,   138,   138,   138,   187,   235,   186,     4,   226,   138,
-     189,   221,   187,   191,   191,   239,   191
+      37,    37,    37,    37,    37,    37,    37,   217,   217,    15,
+      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,   140,     6,
+     140,   217,   140,   140,     4,   140,     6,   140,   217,   140,
+     140,     4,   163,    56,   269,   269,   141,     4,   125,   128,
+     129,   130,    57,   141,   217,     4,    57,    64,    71,    95,
+     176,   223,     4,    57,   250,   140,   142,   142,   166,   201,
+     149,    57,   140,   196,   140,   142,   142,   142,   142,   142,
+     142,   196,   142,   196,   140,   214,   142,    37,     4,     5,
+     103,   140,   142,   170,   142,     6,     6,   217,   142,   265,
+     217,   217,   154,   217,   217,   142,   217,   217,   217,   217,
+     217,     4,     4,   217,     4,     4,     4,     4,   217,   217,
+       4,     4,   217,   217,     4,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
+     217,   217,   217,   217,   217,   217,   217,     4,     4,     4,
+     217,   217,     3,     4,     4,     4,   140,   271,   141,   141,
+       4,   127,   141,   267,   224,   149,   229,   234,   251,     4,
+      36,    37,   205,   202,   200,     4,   149,   149,   214,   171,
+      37,     4,     5,   103,   142,   215,   215,   140,    57,    36,
+     140,   142,   142,   140,   140,   142,   140,   142,   142,   142,
+     142,   142,   142,   140,   140,   142,   142,   142,   140,   142,
+      16,     4,   269,   130,    56,   127,   141,    37,    40,   217,
+     238,   239,   236,    16,   217,   240,   239,   217,   253,   140,
+       4,   145,   206,   207,    16,   198,   142,   170,   173,    37,
+     142,   142,     4,   217,   217,   217,   217,   217,   217,     4,
+     217,   141,   272,    16,   270,    67,    68,    69,    70,    71,
+     142,   237,    37,    37,   238,    16,    99,   219,   175,    16,
+      89,   241,   235,     4,    99,   254,     4,     4,   142,   207,
+      90,   203,    36,   142,   170,   172,   142,   142,   142,   142,
+     142,   142,   142,   142,    57,   269,   269,   142,   217,    16,
+      37,    38,   220,    36,   219,    56,    37,   255,    37,   252,
+     142,     6,   196,   142,   170,   141,   272,   142,   217,    37,
+     100,   221,   221,   175,   217,   254,   217,   141,   215,    92,
+     204,   142,    57,    39,   238,   142,   217,    37,   225,   230,
+      57,   142,   142,     6,    37,    16,   142,   217,   134,   135,
+     136,   222,    56,   254,   215,   217,   142,    56,   231,   142,
+     226,   244,   238,     4,    15,    32,    41,    42,    43,    44,
+      45,    54,    55,    64,    91,    93,    97,   113,   133,   137,
+     141,   143,   178,   179,   182,   183,   185,   188,   189,   190,
+     195,     4,    57,    16,    37,    37,   149,    37,   186,    37,
+      37,     4,    54,   179,   181,    37,   185,    57,    37,   194,
+     245,   232,    54,    55,    97,   137,   178,    54,    55,   178,
+     187,   191,   215,    37,   184,   178,   180,    37,   144,   196,
+     181,   227,   215,    56,    25,   242,    37,    37,   142,    37,
+     142,    37,    37,   142,   189,   142,   217,     4,   182,   142,
+     178,   179,   142,   242,   142,   189,     4,    99,   218,   178,
+     178,   180,   178,   178,    36,   140,   142,   178,   218,    57,
+      25,   243,   142,   142,   142,   142,   142,     4,   243,   246,
+       4,     6,    16,   192,   142,   142,   178,   142,   142,   142,
+     192,   243,   191,     4,   233,   142,   194,   228,   192,   196,
+     196,   247,   196
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1765,7 +1810,7 @@ while (YYID (0))
    we won't break user code: when these are the locations we know.  */
 
 #ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)                 \
      fprintf (File, "%d.%d-%d.%d",                     \
              (Loc).first_line, (Loc).first_column,     \
@@ -2506,12 +2551,12 @@ yyreduce:
   switch (yyn)
     {
         case 8:
-#line 176 "ldgram.y"
+#line 174 "ldgram.y"
     { ldlex_defsym(); }
     break;
 
   case 9:
-#line 178 "ldgram.y"
+#line 176 "ldgram.y"
     {
                  ldlex_popstate();
                  lang_add_assignment(exp_assop((yyvsp[(3) - (4)].token),(yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)));
@@ -2519,7 +2564,7 @@ yyreduce:
     break;
 
   case 10:
-#line 186 "ldgram.y"
+#line 184 "ldgram.y"
     {
                  ldlex_mri_script ();
                  PUSH_ERROR (_("MRI style script"));
@@ -2527,7 +2572,7 @@ yyreduce:
     break;
 
   case 11:
-#line 191 "ldgram.y"
+#line 189 "ldgram.y"
     {
                  ldlex_popstate ();
                  mri_draw_tree ();
@@ -2536,362 +2581,377 @@ yyreduce:
     break;
 
   case 16:
-#line 206 "ldgram.y"
+#line 204 "ldgram.y"
     {
                        einfo(_("%P%F: unrecognised keyword in MRI style script '%s'\n"),(yyvsp[(1) - (1)].name));
                        }
     break;
 
   case 17:
-#line 209 "ldgram.y"
+#line 207 "ldgram.y"
     {
                        config.map_filename = "-";
                        }
     break;
 
   case 20:
-#line 215 "ldgram.y"
+#line 213 "ldgram.y"
     { mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
     break;
 
   case 21:
-#line 217 "ldgram.y"
+#line 215 "ldgram.y"
     { mri_public((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree)); }
     break;
 
   case 22:
-#line 219 "ldgram.y"
+#line 217 "ldgram.y"
     { mri_public((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree)); }
     break;
 
   case 23:
-#line 221 "ldgram.y"
+#line 219 "ldgram.y"
     { mri_format((yyvsp[(2) - (2)].name)); }
     break;
 
   case 24:
-#line 223 "ldgram.y"
+#line 221 "ldgram.y"
     { mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
     break;
 
   case 25:
-#line 225 "ldgram.y"
+#line 223 "ldgram.y"
     { mri_output_section((yyvsp[(2) - (3)].name), (yyvsp[(3) - (3)].etree));}
     break;
 
   case 26:
-#line 227 "ldgram.y"
+#line 225 "ldgram.y"
     { mri_output_section((yyvsp[(2) - (4)].name), (yyvsp[(4) - (4)].etree));}
     break;
 
   case 27:
-#line 229 "ldgram.y"
+#line 227 "ldgram.y"
     { mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
     break;
 
   case 28:
-#line 231 "ldgram.y"
+#line 229 "ldgram.y"
     { mri_align((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
     break;
 
   case 29:
-#line 233 "ldgram.y"
+#line 231 "ldgram.y"
     { mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
     break;
 
   case 30:
-#line 235 "ldgram.y"
+#line 233 "ldgram.y"
     { mri_alignmod((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].etree)); }
     break;
 
   case 33:
-#line 239 "ldgram.y"
+#line 237 "ldgram.y"
     { mri_name((yyvsp[(2) - (2)].name)); }
     break;
 
   case 34:
-#line 241 "ldgram.y"
+#line 239 "ldgram.y"
     { mri_alias((yyvsp[(2) - (4)].name),(yyvsp[(4) - (4)].name),0);}
     break;
 
   case 35:
-#line 243 "ldgram.y"
+#line 241 "ldgram.y"
     { mri_alias ((yyvsp[(2) - (4)].name), 0, (int) (yyvsp[(4) - (4)].bigint).integer); }
     break;
 
   case 36:
-#line 245 "ldgram.y"
+#line 243 "ldgram.y"
     { mri_base((yyvsp[(2) - (2)].etree)); }
     break;
 
   case 37:
-#line 247 "ldgram.y"
+#line 245 "ldgram.y"
     { mri_truncate ((unsigned int) (yyvsp[(2) - (2)].bigint).integer); }
     break;
 
   case 40:
-#line 251 "ldgram.y"
+#line 249 "ldgram.y"
     { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
     break;
 
   case 41:
-#line 253 "ldgram.y"
+#line 251 "ldgram.y"
     { ldlex_popstate (); }
     break;
 
   case 42:
-#line 255 "ldgram.y"
+#line 253 "ldgram.y"
     { lang_add_entry ((yyvsp[(2) - (2)].name), FALSE); }
     break;
 
   case 44:
-#line 260 "ldgram.y"
+#line 258 "ldgram.y"
     { mri_order((yyvsp[(3) - (3)].name)); }
     break;
 
   case 45:
-#line 261 "ldgram.y"
+#line 259 "ldgram.y"
     { mri_order((yyvsp[(2) - (2)].name)); }
     break;
 
   case 47:
-#line 267 "ldgram.y"
+#line 265 "ldgram.y"
     { mri_load((yyvsp[(1) - (1)].name)); }
     break;
 
   case 48:
-#line 268 "ldgram.y"
+#line 266 "ldgram.y"
     { mri_load((yyvsp[(3) - (3)].name)); }
     break;
 
   case 49:
-#line 273 "ldgram.y"
+#line 271 "ldgram.y"
     { mri_only_load((yyvsp[(1) - (1)].name)); }
     break;
 
   case 50:
-#line 275 "ldgram.y"
+#line 273 "ldgram.y"
     { mri_only_load((yyvsp[(3) - (3)].name)); }
     break;
 
   case 51:
-#line 279 "ldgram.y"
+#line 277 "ldgram.y"
     { (yyval.name) = NULL; }
     break;
 
   case 54:
-#line 286 "ldgram.y"
+#line 284 "ldgram.y"
     { ldlex_expression (); }
     break;
 
   case 55:
-#line 288 "ldgram.y"
+#line 286 "ldgram.y"
     { ldlex_popstate (); }
     break;
 
   case 56:
-#line 292 "ldgram.y"
+#line 290 "ldgram.y"
     { ldlang_add_undef ((yyvsp[(1) - (1)].name)); }
     break;
 
   case 57:
-#line 294 "ldgram.y"
+#line 292 "ldgram.y"
     { ldlang_add_undef ((yyvsp[(2) - (2)].name)); }
     break;
 
   case 58:
-#line 296 "ldgram.y"
+#line 294 "ldgram.y"
     { ldlang_add_undef ((yyvsp[(3) - (3)].name)); }
     break;
 
   case 59:
-#line 300 "ldgram.y"
+#line 298 "ldgram.y"
     { ldlex_both(); }
     break;
 
   case 60:
-#line 302 "ldgram.y"
+#line 300 "ldgram.y"
     { ldlex_popstate(); }
     break;
 
   case 73:
-#line 323 "ldgram.y"
+#line 321 "ldgram.y"
     { lang_add_target((yyvsp[(3) - (4)].name)); }
     break;
 
   case 74:
-#line 325 "ldgram.y"
+#line 323 "ldgram.y"
     { ldfile_add_library_path ((yyvsp[(3) - (4)].name), FALSE); }
     break;
 
   case 75:
-#line 327 "ldgram.y"
+#line 325 "ldgram.y"
     { lang_add_output((yyvsp[(3) - (4)].name), 1); }
     break;
 
   case 76:
-#line 329 "ldgram.y"
+#line 327 "ldgram.y"
     { lang_add_output_format ((yyvsp[(3) - (4)].name), (char *) NULL,
                                            (char *) NULL, 1); }
     break;
 
   case 77:
-#line 332 "ldgram.y"
+#line 330 "ldgram.y"
     { lang_add_output_format ((yyvsp[(3) - (8)].name), (yyvsp[(5) - (8)].name), (yyvsp[(7) - (8)].name), 1); }
     break;
 
   case 78:
-#line 334 "ldgram.y"
+#line 332 "ldgram.y"
     { ldfile_set_output_arch ((yyvsp[(3) - (4)].name), bfd_arch_unknown); }
     break;
 
   case 79:
-#line 336 "ldgram.y"
+#line 334 "ldgram.y"
     { command_line.force_common_definition = TRUE ; }
     break;
 
   case 80:
-#line 338 "ldgram.y"
+#line 336 "ldgram.y"
     { command_line.inhibit_common_definition = TRUE ; }
     break;
 
   case 82:
-#line 341 "ldgram.y"
+#line 339 "ldgram.y"
     { lang_enter_group (); }
     break;
 
   case 83:
-#line 343 "ldgram.y"
+#line 341 "ldgram.y"
     { lang_leave_group (); }
     break;
 
   case 84:
-#line 345 "ldgram.y"
+#line 343 "ldgram.y"
     { lang_add_map((yyvsp[(3) - (4)].name)); }
     break;
 
   case 85:
-#line 347 "ldgram.y"
+#line 345 "ldgram.y"
     { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
     break;
 
   case 86:
-#line 349 "ldgram.y"
+#line 347 "ldgram.y"
     { ldlex_popstate (); }
     break;
 
   case 87:
-#line 351 "ldgram.y"
+#line 349 "ldgram.y"
     {
                  lang_add_nocrossref ((yyvsp[(3) - (4)].nocrossref));
                }
     break;
 
   case 89:
-#line 359 "ldgram.y"
-    { lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_search_file_enum,
-                                (char *)NULL); }
+#line 354 "ldgram.y"
+    { lang_add_insert ((yyvsp[(3) - (3)].name), 0); }
     break;
 
   case 90:
-#line 362 "ldgram.y"
-    { lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_search_file_enum,
-                                (char *)NULL); }
+#line 356 "ldgram.y"
+    { lang_add_insert ((yyvsp[(3) - (3)].name), 1); }
     break;
 
   case 91:
-#line 365 "ldgram.y"
-    { lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_search_file_enum,
-                                (char *)NULL); }
+#line 358 "ldgram.y"
+    { lang_memory_region_alias ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].name)); }
     break;
 
   case 92:
-#line 368 "ldgram.y"
-    { lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_l_enum,
+#line 363 "ldgram.y"
+    { lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_search_file_enum,
                                 (char *)NULL); }
     break;
 
   case 93:
-#line 371 "ldgram.y"
-    { lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_l_enum,
+#line 366 "ldgram.y"
+    { lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_search_file_enum,
                                 (char *)NULL); }
     break;
 
   case 94:
-#line 374 "ldgram.y"
-    { lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_l_enum,
+#line 369 "ldgram.y"
+    { lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_search_file_enum,
                                 (char *)NULL); }
     break;
 
   case 95:
-#line 377 "ldgram.y"
-    { (yyval.integer) = as_needed; as_needed = TRUE; }
+#line 372 "ldgram.y"
+    { lang_add_input_file((yyvsp[(1) - (1)].name),lang_input_file_is_l_enum,
+                                (char *)NULL); }
     break;
 
   case 96:
-#line 379 "ldgram.y"
-    { as_needed = (yyvsp[(3) - (5)].integer); }
+#line 375 "ldgram.y"
+    { lang_add_input_file((yyvsp[(3) - (3)].name),lang_input_file_is_l_enum,
+                                (char *)NULL); }
     break;
 
   case 97:
+#line 378 "ldgram.y"
+    { lang_add_input_file((yyvsp[(2) - (2)].name),lang_input_file_is_l_enum,
+                                (char *)NULL); }
+    break;
+
+  case 98:
 #line 381 "ldgram.y"
     { (yyval.integer) = as_needed; as_needed = TRUE; }
     break;
 
-  case 98:
+  case 99:
 #line 383 "ldgram.y"
-    { as_needed = (yyvsp[(5) - (7)].integer); }
+    { as_needed = (yyvsp[(3) - (5)].integer); }
     break;
 
-  case 99:
+  case 100:
 #line 385 "ldgram.y"
     { (yyval.integer) = as_needed; as_needed = TRUE; }
     break;
 
-  case 100:
+  case 101:
 #line 387 "ldgram.y"
+    { as_needed = (yyvsp[(5) - (7)].integer); }
+    break;
+
+  case 102:
+#line 389 "ldgram.y"
+    { (yyval.integer) = as_needed; as_needed = TRUE; }
+    break;
+
+  case 103:
+#line 391 "ldgram.y"
     { as_needed = (yyvsp[(4) - (6)].integer); }
     break;
 
-  case 105:
-#line 402 "ldgram.y"
+  case 108:
+#line 406 "ldgram.y"
     { lang_add_entry ((yyvsp[(3) - (4)].name), FALSE); }
     break;
 
-  case 107:
-#line 404 "ldgram.y"
+  case 110:
+#line 408 "ldgram.y"
     {ldlex_expression ();}
     break;
 
-  case 108:
-#line 405 "ldgram.y"
+  case 111:
+#line 409 "ldgram.y"
     { ldlex_popstate ();
                  lang_add_assignment (exp_assert ((yyvsp[(4) - (7)].etree), (yyvsp[(6) - (7)].name))); }
     break;
 
-  case 109:
-#line 413 "ldgram.y"
+  case 112:
+#line 417 "ldgram.y"
     {
                          (yyval.cname) = (yyvsp[(1) - (1)].name);
                        }
     break;
 
-  case 110:
-#line 417 "ldgram.y"
+  case 113:
+#line 421 "ldgram.y"
     {
                          (yyval.cname) = "*";
                        }
     break;
 
-  case 111:
-#line 421 "ldgram.y"
+  case 114:
+#line 425 "ldgram.y"
     {
                          (yyval.cname) = "?";
                        }
     break;
 
-  case 112:
-#line 428 "ldgram.y"
+  case 115:
+#line 432 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(1) - (1)].cname);
                          (yyval.wildcard).sorted = none;
@@ -2899,8 +2959,8 @@ yyreduce:
                        }
     break;
 
-  case 113:
-#line 434 "ldgram.y"
+  case 116:
+#line 438 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(5) - (5)].cname);
                          (yyval.wildcard).sorted = none;
@@ -2908,8 +2968,8 @@ yyreduce:
                        }
     break;
 
-  case 114:
-#line 440 "ldgram.y"
+  case 117:
+#line 444 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
                          (yyval.wildcard).sorted = by_name;
@@ -2917,8 +2977,8 @@ yyreduce:
                        }
     break;
 
-  case 115:
-#line 446 "ldgram.y"
+  case 118:
+#line 450 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(3) - (4)].cname);
                          (yyval.wildcard).sorted = by_alignment;
@@ -2926,8 +2986,8 @@ yyreduce:
                        }
     break;
 
-  case 116:
-#line 452 "ldgram.y"
+  case 119:
+#line 456 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
                          (yyval.wildcard).sorted = by_name_alignment;
@@ -2935,8 +2995,8 @@ yyreduce:
                        }
     break;
 
-  case 117:
-#line 458 "ldgram.y"
+  case 120:
+#line 462 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
                          (yyval.wildcard).sorted = by_name;
@@ -2944,8 +3004,8 @@ yyreduce:
                        }
     break;
 
-  case 118:
-#line 464 "ldgram.y"
+  case 121:
+#line 468 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
                          (yyval.wildcard).sorted = by_alignment_name;
@@ -2953,8 +3013,8 @@ yyreduce:
                        }
     break;
 
-  case 119:
-#line 470 "ldgram.y"
+  case 122:
+#line 474 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(5) - (7)].cname);
                          (yyval.wildcard).sorted = by_alignment;
@@ -2962,8 +3022,8 @@ yyreduce:
                        }
     break;
 
-  case 120:
-#line 476 "ldgram.y"
+  case 123:
+#line 480 "ldgram.y"
     {
                          (yyval.wildcard).name = (yyvsp[(7) - (8)].cname);
                          (yyval.wildcard).sorted = by_name;
@@ -2971,8 +3031,8 @@ yyreduce:
                        }
     break;
 
-  case 121:
-#line 485 "ldgram.y"
+  case 124:
+#line 489 "ldgram.y"
     {
                          struct name_list *tmp;
                          tmp = (struct name_list *) xmalloc (sizeof *tmp);
@@ -2982,8 +3042,8 @@ yyreduce:
                        }
     break;
 
-  case 122:
-#line 494 "ldgram.y"
+  case 125:
+#line 498 "ldgram.y"
     {
                          struct name_list *tmp;
                          tmp = (struct name_list *) xmalloc (sizeof *tmp);
@@ -2993,8 +3053,8 @@ yyreduce:
                        }
     break;
 
-  case 123:
-#line 505 "ldgram.y"
+  case 126:
+#line 509 "ldgram.y"
     {
                          struct wildcard_list *tmp;
                          tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
@@ -3004,8 +3064,8 @@ yyreduce:
                        }
     break;
 
-  case 124:
-#line 514 "ldgram.y"
+  case 127:
+#line 518 "ldgram.y"
     {
                          struct wildcard_list *tmp;
                          tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
@@ -3015,8 +3075,8 @@ yyreduce:
                        }
     break;
 
-  case 125:
-#line 525 "ldgram.y"
+  case 128:
+#line 529 "ldgram.y"
     {
                          struct wildcard_spec tmp;
                          tmp.name = (yyvsp[(1) - (1)].name);
@@ -3026,169 +3086,179 @@ yyreduce:
                        }
     break;
 
-  case 126:
-#line 533 "ldgram.y"
+  case 129:
+#line 537 "ldgram.y"
     {
                          lang_add_wild (NULL, (yyvsp[(2) - (3)].wildcard_list), ldgram_had_keep);
                        }
     break;
 
-  case 127:
-#line 537 "ldgram.y"
+  case 130:
+#line 541 "ldgram.y"
     {
                          lang_add_wild (&(yyvsp[(1) - (4)].wildcard), (yyvsp[(3) - (4)].wildcard_list), ldgram_had_keep);
                        }
     break;
 
-  case 129:
-#line 545 "ldgram.y"
+  case 132:
+#line 549 "ldgram.y"
     { ldgram_had_keep = TRUE; }
     break;
 
-  case 130:
-#line 547 "ldgram.y"
+  case 133:
+#line 551 "ldgram.y"
     { ldgram_had_keep = FALSE; }
     break;
 
-  case 132:
-#line 553 "ldgram.y"
+  case 135:
+#line 557 "ldgram.y"
     {
                lang_add_attribute(lang_object_symbols_statement_enum);
                }
     break;
 
-  case 134:
-#line 558 "ldgram.y"
+  case 137:
+#line 562 "ldgram.y"
     {
 
                  lang_add_attribute(lang_constructors_statement_enum);
                }
     break;
 
-  case 135:
-#line 563 "ldgram.y"
+  case 138:
+#line 567 "ldgram.y"
     {
                  constructors_sorted = TRUE;
                  lang_add_attribute (lang_constructors_statement_enum);
                }
     break;
 
-  case 137:
-#line 569 "ldgram.y"
+  case 140:
+#line 573 "ldgram.y"
     {
                          lang_add_data ((int) (yyvsp[(1) - (4)].integer), (yyvsp[(3) - (4)].etree));
                        }
     break;
 
-  case 138:
-#line 574 "ldgram.y"
+  case 141:
+#line 578 "ldgram.y"
     {
                          lang_add_fill ((yyvsp[(3) - (4)].fill));
                        }
     break;
 
-  case 139:
-#line 577 "ldgram.y"
+  case 142:
+#line 581 "ldgram.y"
     {ldlex_expression ();}
     break;
 
-  case 140:
-#line 578 "ldgram.y"
+  case 143:
+#line 582 "ldgram.y"
     { ldlex_popstate ();
                          lang_add_assignment (exp_assert ((yyvsp[(4) - (8)].etree), (yyvsp[(6) - (8)].name))); }
     break;
 
+  case 144:
+#line 585 "ldgram.y"
+    { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
+    break;
+
   case 145:
-#line 594 "ldgram.y"
+#line 587 "ldgram.y"
+    { ldlex_popstate (); }
+    break;
+
+  case 150:
+#line 602 "ldgram.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].token); }
     break;
 
-  case 146:
-#line 596 "ldgram.y"
+  case 151:
+#line 604 "ldgram.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].token); }
     break;
 
-  case 147:
-#line 598 "ldgram.y"
+  case 152:
+#line 606 "ldgram.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].token); }
     break;
 
-  case 148:
-#line 600 "ldgram.y"
+  case 153:
+#line 608 "ldgram.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].token); }
     break;
 
-  case 149:
-#line 602 "ldgram.y"
+  case 154:
+#line 610 "ldgram.y"
     { (yyval.integer) = (yyvsp[(1) - (1)].token); }
     break;
 
-  case 150:
-#line 607 "ldgram.y"
+  case 155:
+#line 615 "ldgram.y"
     {
                  (yyval.fill) = exp_get_fill ((yyvsp[(1) - (1)].etree), 0, "fill value");
                }
     break;
 
-  case 151:
-#line 614 "ldgram.y"
+  case 156:
+#line 622 "ldgram.y"
     { (yyval.fill) = (yyvsp[(2) - (2)].fill); }
     break;
 
-  case 152:
-#line 615 "ldgram.y"
+  case 157:
+#line 623 "ldgram.y"
     { (yyval.fill) = (fill_type *) 0; }
     break;
 
-  case 153:
-#line 620 "ldgram.y"
+  case 158:
+#line 628 "ldgram.y"
     { (yyval.token) = '+'; }
     break;
 
-  case 154:
-#line 622 "ldgram.y"
+  case 159:
+#line 630 "ldgram.y"
     { (yyval.token) = '-'; }
     break;
 
-  case 155:
-#line 624 "ldgram.y"
+  case 160:
+#line 632 "ldgram.y"
     { (yyval.token) = '*'; }
     break;
 
-  case 156:
-#line 626 "ldgram.y"
+  case 161:
+#line 634 "ldgram.y"
     { (yyval.token) = '/'; }
     break;
 
-  case 157:
-#line 628 "ldgram.y"
+  case 162:
+#line 636 "ldgram.y"
     { (yyval.token) = LSHIFT; }
     break;
 
-  case 158:
-#line 630 "ldgram.y"
+  case 163:
+#line 638 "ldgram.y"
     { (yyval.token) = RSHIFT; }
     break;
 
-  case 159:
-#line 632 "ldgram.y"
+  case 164:
+#line 640 "ldgram.y"
     { (yyval.token) = '&'; }
     break;
 
-  case 160:
-#line 634 "ldgram.y"
+  case 165:
+#line 642 "ldgram.y"
     { (yyval.token) = '|'; }
     break;
 
-  case 163:
-#line 644 "ldgram.y"
+  case 168:
+#line 652 "ldgram.y"
     {
                  lang_add_assignment (exp_assop ((yyvsp[(2) - (3)].token), (yyvsp[(1) - (3)].name), (yyvsp[(3) - (3)].etree)));
                }
     break;
 
-  case 164:
-#line 648 "ldgram.y"
+  case 169:
+#line 656 "ldgram.y"
     {
                  lang_add_assignment (exp_assop ('=', (yyvsp[(1) - (3)].name),
                                                  exp_binop ((yyvsp[(2) - (3)].token),
@@ -3198,104 +3268,114 @@ yyreduce:
                }
     break;
 
-  case 165:
-#line 656 "ldgram.y"
+  case 170:
+#line 664 "ldgram.y"
     {
                  lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), FALSE));
                }
     break;
 
-  case 166:
-#line 660 "ldgram.y"
+  case 171:
+#line 668 "ldgram.y"
     {
                  lang_add_assignment (exp_provide ((yyvsp[(3) - (6)].name), (yyvsp[(5) - (6)].etree), TRUE));
                }
     break;
 
-  case 173:
-#line 682 "ldgram.y"
+  case 179:
+#line 691 "ldgram.y"
     { region = lang_memory_region_lookup ((yyvsp[(1) - (1)].name), TRUE); }
     break;
 
-  case 174:
-#line 685 "ldgram.y"
+  case 180:
+#line 694 "ldgram.y"
     {}
     break;
 
-  case 175:
-#line 690 "ldgram.y"
+  case 181:
+#line 696 "ldgram.y"
+    { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
+    break;
+
+  case 182:
+#line 698 "ldgram.y"
+    { ldlex_popstate (); }
+    break;
+
+  case 183:
+#line 703 "ldgram.y"
     {
                  region->origin = exp_get_vma ((yyvsp[(3) - (3)].etree), 0, "origin");
                  region->current = region->origin;
                }
     break;
 
-  case 176:
-#line 698 "ldgram.y"
+  case 184:
+#line 711 "ldgram.y"
     {
                  region->length = exp_get_vma ((yyvsp[(3) - (3)].etree), -1, "length");
                }
     break;
 
-  case 177:
-#line 705 "ldgram.y"
+  case 185:
+#line 718 "ldgram.y"
     { /* dummy action to avoid bison 1.25 error message */ }
     break;
 
-  case 181:
-#line 716 "ldgram.y"
+  case 189:
+#line 729 "ldgram.y"
     { lang_set_flags (region, (yyvsp[(1) - (1)].name), 0); }
     break;
 
-  case 182:
-#line 718 "ldgram.y"
+  case 190:
+#line 731 "ldgram.y"
     { lang_set_flags (region, (yyvsp[(2) - (2)].name), 1); }
     break;
 
-  case 183:
-#line 723 "ldgram.y"
+  case 191:
+#line 736 "ldgram.y"
     { lang_startup((yyvsp[(3) - (4)].name)); }
     break;
 
-  case 185:
-#line 729 "ldgram.y"
+  case 193:
+#line 742 "ldgram.y"
     { ldemul_hll((char *)NULL); }
     break;
 
-  case 186:
-#line 734 "ldgram.y"
+  case 194:
+#line 747 "ldgram.y"
     { ldemul_hll((yyvsp[(3) - (3)].name)); }
     break;
 
-  case 187:
-#line 736 "ldgram.y"
+  case 195:
+#line 749 "ldgram.y"
     { ldemul_hll((yyvsp[(1) - (1)].name)); }
     break;
 
-  case 189:
-#line 744 "ldgram.y"
+  case 197:
+#line 757 "ldgram.y"
     { ldemul_syslib((yyvsp[(3) - (3)].name)); }
     break;
 
-  case 191:
-#line 750 "ldgram.y"
+  case 199:
+#line 763 "ldgram.y"
     { lang_float(TRUE); }
     break;
 
-  case 192:
-#line 752 "ldgram.y"
+  case 200:
+#line 765 "ldgram.y"
     { lang_float(FALSE); }
     break;
 
-  case 193:
-#line 757 "ldgram.y"
+  case 201:
+#line 770 "ldgram.y"
     {
                  (yyval.nocrossref) = NULL;
                }
     break;
 
-  case 194:
-#line 761 "ldgram.y"
+  case 202:
+#line 774 "ldgram.y"
     {
                  struct lang_nocrossref *n;
 
@@ -3306,8 +3386,8 @@ yyreduce:
                }
     break;
 
-  case 195:
-#line 770 "ldgram.y"
+  case 203:
+#line 783 "ldgram.y"
     {
                  struct lang_nocrossref *n;
 
@@ -3318,213 +3398,213 @@ yyreduce:
                }
     break;
 
-  case 196:
-#line 780 "ldgram.y"
+  case 204:
+#line 793 "ldgram.y"
     { ldlex_expression (); }
     break;
 
-  case 197:
-#line 782 "ldgram.y"
+  case 205:
+#line 795 "ldgram.y"
     { ldlex_popstate (); (yyval.etree)=(yyvsp[(2) - (2)].etree);}
     break;
 
-  case 198:
-#line 787 "ldgram.y"
+  case 206:
+#line 800 "ldgram.y"
     { (yyval.etree) = exp_unop ('-', (yyvsp[(2) - (2)].etree)); }
     break;
 
-  case 199:
-#line 789 "ldgram.y"
+  case 207:
+#line 802 "ldgram.y"
     { (yyval.etree) = (yyvsp[(2) - (3)].etree); }
     break;
 
-  case 200:
-#line 791 "ldgram.y"
+  case 208:
+#line 804 "ldgram.y"
     { (yyval.etree) = exp_unop ((int) (yyvsp[(1) - (4)].integer),(yyvsp[(3) - (4)].etree)); }
     break;
 
-  case 201:
-#line 793 "ldgram.y"
+  case 209:
+#line 806 "ldgram.y"
     { (yyval.etree) = exp_unop ('!', (yyvsp[(2) - (2)].etree)); }
     break;
 
-  case 202:
-#line 795 "ldgram.y"
+  case 210:
+#line 808 "ldgram.y"
     { (yyval.etree) = (yyvsp[(2) - (2)].etree); }
     break;
 
-  case 203:
-#line 797 "ldgram.y"
+  case 211:
+#line 810 "ldgram.y"
     { (yyval.etree) = exp_unop ('~', (yyvsp[(2) - (2)].etree));}
     break;
 
-  case 204:
-#line 800 "ldgram.y"
+  case 212:
+#line 813 "ldgram.y"
     { (yyval.etree) = exp_binop ('*', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 205:
-#line 802 "ldgram.y"
+  case 213:
+#line 815 "ldgram.y"
     { (yyval.etree) = exp_binop ('/', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 206:
-#line 804 "ldgram.y"
+  case 214:
+#line 817 "ldgram.y"
     { (yyval.etree) = exp_binop ('%', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 207:
-#line 806 "ldgram.y"
+  case 215:
+#line 819 "ldgram.y"
     { (yyval.etree) = exp_binop ('+', (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 208:
-#line 808 "ldgram.y"
+  case 216:
+#line 821 "ldgram.y"
     { (yyval.etree) = exp_binop ('-' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 209:
-#line 810 "ldgram.y"
+  case 217:
+#line 823 "ldgram.y"
     { (yyval.etree) = exp_binop (LSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 210:
-#line 812 "ldgram.y"
+  case 218:
+#line 825 "ldgram.y"
     { (yyval.etree) = exp_binop (RSHIFT , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 211:
-#line 814 "ldgram.y"
+  case 219:
+#line 827 "ldgram.y"
     { (yyval.etree) = exp_binop (EQ , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 212:
-#line 816 "ldgram.y"
+  case 220:
+#line 829 "ldgram.y"
     { (yyval.etree) = exp_binop (NE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 213:
-#line 818 "ldgram.y"
+  case 221:
+#line 831 "ldgram.y"
     { (yyval.etree) = exp_binop (LE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 214:
-#line 820 "ldgram.y"
+  case 222:
+#line 833 "ldgram.y"
     { (yyval.etree) = exp_binop (GE , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 215:
-#line 822 "ldgram.y"
+  case 223:
+#line 835 "ldgram.y"
     { (yyval.etree) = exp_binop ('<' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 216:
-#line 824 "ldgram.y"
+  case 224:
+#line 837 "ldgram.y"
     { (yyval.etree) = exp_binop ('>' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 217:
-#line 826 "ldgram.y"
+  case 225:
+#line 839 "ldgram.y"
     { (yyval.etree) = exp_binop ('&' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 218:
-#line 828 "ldgram.y"
+  case 226:
+#line 841 "ldgram.y"
     { (yyval.etree) = exp_binop ('^' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 219:
-#line 830 "ldgram.y"
+  case 227:
+#line 843 "ldgram.y"
     { (yyval.etree) = exp_binop ('|' , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 220:
-#line 832 "ldgram.y"
+  case 228:
+#line 845 "ldgram.y"
     { (yyval.etree) = exp_trinop ('?' , (yyvsp[(1) - (5)].etree), (yyvsp[(3) - (5)].etree), (yyvsp[(5) - (5)].etree)); }
     break;
 
-  case 221:
-#line 834 "ldgram.y"
+  case 229:
+#line 847 "ldgram.y"
     { (yyval.etree) = exp_binop (ANDAND , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 222:
-#line 836 "ldgram.y"
+  case 230:
+#line 849 "ldgram.y"
     { (yyval.etree) = exp_binop (OROR , (yyvsp[(1) - (3)].etree), (yyvsp[(3) - (3)].etree)); }
     break;
 
-  case 223:
-#line 838 "ldgram.y"
+  case 231:
+#line 851 "ldgram.y"
     { (yyval.etree) = exp_nameop (DEFINED, (yyvsp[(3) - (4)].name)); }
     break;
 
-  case 224:
-#line 840 "ldgram.y"
+  case 232:
+#line 853 "ldgram.y"
     { (yyval.etree) = exp_bigintop ((yyvsp[(1) - (1)].bigint).integer, (yyvsp[(1) - (1)].bigint).str); }
     break;
 
-  case 225:
-#line 842 "ldgram.y"
+  case 233:
+#line 855 "ldgram.y"
     { (yyval.etree) = exp_nameop (SIZEOF_HEADERS,0); }
     break;
 
-  case 226:
-#line 845 "ldgram.y"
+  case 234:
+#line 858 "ldgram.y"
     { (yyval.etree) = exp_nameop (ALIGNOF,(yyvsp[(3) - (4)].name)); }
     break;
 
-  case 227:
-#line 847 "ldgram.y"
+  case 235:
+#line 860 "ldgram.y"
     { (yyval.etree) = exp_nameop (SIZEOF,(yyvsp[(3) - (4)].name)); }
     break;
 
-  case 228:
-#line 849 "ldgram.y"
+  case 236:
+#line 862 "ldgram.y"
     { (yyval.etree) = exp_nameop (ADDR,(yyvsp[(3) - (4)].name)); }
     break;
 
-  case 229:
-#line 851 "ldgram.y"
+  case 237:
+#line 864 "ldgram.y"
     { (yyval.etree) = exp_nameop (LOADADDR,(yyvsp[(3) - (4)].name)); }
     break;
 
-  case 230:
-#line 853 "ldgram.y"
+  case 238:
+#line 866 "ldgram.y"
     { (yyval.etree) = exp_nameop (CONSTANT,(yyvsp[(3) - (4)].name)); }
     break;
 
-  case 231:
-#line 855 "ldgram.y"
+  case 239:
+#line 868 "ldgram.y"
     { (yyval.etree) = exp_unop (ABSOLUTE, (yyvsp[(3) - (4)].etree)); }
     break;
 
-  case 232:
-#line 857 "ldgram.y"
+  case 240:
+#line 870 "ldgram.y"
     { (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[(3) - (4)].etree)); }
     break;
 
-  case 233:
-#line 859 "ldgram.y"
+  case 241:
+#line 872 "ldgram.y"
     { (yyval.etree) = exp_binop (ALIGN_K,(yyvsp[(3) - (6)].etree),(yyvsp[(5) - (6)].etree)); }
     break;
 
-  case 234:
-#line 861 "ldgram.y"
+  case 242:
+#line 874 "ldgram.y"
     { (yyval.etree) = exp_binop (DATA_SEGMENT_ALIGN, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree)); }
     break;
 
-  case 235:
-#line 863 "ldgram.y"
+  case 243:
+#line 876 "ldgram.y"
     { (yyval.etree) = exp_binop (DATA_SEGMENT_RELRO_END, (yyvsp[(5) - (6)].etree), (yyvsp[(3) - (6)].etree)); }
     break;
 
-  case 236:
-#line 865 "ldgram.y"
+  case 244:
+#line 878 "ldgram.y"
     { (yyval.etree) = exp_unop (DATA_SEGMENT_END, (yyvsp[(3) - (4)].etree)); }
     break;
 
-  case 237:
-#line 867 "ldgram.y"
+  case 245:
+#line 880 "ldgram.y"
     { /* The operands to the expression node are
                             placed in the opposite order from the way
                             in which they appear in the script as
@@ -3535,113 +3615,113 @@ yyreduce:
                                          exp_nameop (NAME, (yyvsp[(3) - (6)].name))); }
     break;
 
-  case 238:
-#line 876 "ldgram.y"
+  case 246:
+#line 889 "ldgram.y"
     { (yyval.etree) = exp_unop (ALIGN_K,(yyvsp[(3) - (4)].etree)); }
     break;
 
-  case 239:
-#line 878 "ldgram.y"
+  case 247:
+#line 891 "ldgram.y"
     { (yyval.etree) = exp_nameop (NAME,(yyvsp[(1) - (1)].name)); }
     break;
 
-  case 240:
-#line 880 "ldgram.y"
+  case 248:
+#line 893 "ldgram.y"
     { (yyval.etree) = exp_binop (MAX_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
     break;
 
-  case 241:
-#line 882 "ldgram.y"
+  case 249:
+#line 895 "ldgram.y"
     { (yyval.etree) = exp_binop (MIN_K, (yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].etree) ); }
     break;
 
-  case 242:
-#line 884 "ldgram.y"
+  case 250:
+#line 897 "ldgram.y"
     { (yyval.etree) = exp_assert ((yyvsp[(3) - (6)].etree), (yyvsp[(5) - (6)].name)); }
     break;
 
-  case 243:
-#line 886 "ldgram.y"
+  case 251:
+#line 899 "ldgram.y"
     { (yyval.etree) = exp_nameop (ORIGIN, (yyvsp[(3) - (4)].name)); }
     break;
 
-  case 244:
-#line 888 "ldgram.y"
+  case 252:
+#line 901 "ldgram.y"
     { (yyval.etree) = exp_nameop (LENGTH, (yyvsp[(3) - (4)].name)); }
     break;
 
-  case 245:
-#line 893 "ldgram.y"
+  case 253:
+#line 906 "ldgram.y"
     { (yyval.name) = (yyvsp[(3) - (3)].name); }
     break;
 
-  case 246:
-#line 894 "ldgram.y"
+  case 254:
+#line 907 "ldgram.y"
     { (yyval.name) = 0; }
     break;
 
-  case 247:
-#line 898 "ldgram.y"
+  case 255:
+#line 911 "ldgram.y"
     { (yyval.etree) = (yyvsp[(3) - (4)].etree); }
     break;
 
-  case 248:
-#line 899 "ldgram.y"
+  case 256:
+#line 912 "ldgram.y"
     { (yyval.etree) = 0; }
     break;
 
-  case 249:
-#line 903 "ldgram.y"
+  case 257:
+#line 916 "ldgram.y"
     { (yyval.etree) = (yyvsp[(3) - (4)].etree); }
     break;
 
-  case 250:
-#line 904 "ldgram.y"
+  case 258:
+#line 917 "ldgram.y"
     { (yyval.etree) = 0; }
     break;
 
-  case 251:
-#line 908 "ldgram.y"
+  case 259:
+#line 921 "ldgram.y"
     { (yyval.etree) = (yyvsp[(3) - (4)].etree); }
     break;
 
-  case 252:
-#line 909 "ldgram.y"
+  case 260:
+#line 922 "ldgram.y"
     { (yyval.etree) = 0; }
     break;
 
-  case 253:
-#line 913 "ldgram.y"
+  case 261:
+#line 926 "ldgram.y"
     { (yyval.token) = ONLY_IF_RO; }
     break;
 
-  case 254:
-#line 914 "ldgram.y"
+  case 262:
+#line 927 "ldgram.y"
     { (yyval.token) = ONLY_IF_RW; }
     break;
 
-  case 255:
-#line 915 "ldgram.y"
+  case 263:
+#line 928 "ldgram.y"
     { (yyval.token) = SPECIAL; }
     break;
 
-  case 256:
-#line 916 "ldgram.y"
+  case 264:
+#line 929 "ldgram.y"
     { (yyval.token) = 0; }
     break;
 
-  case 257:
-#line 919 "ldgram.y"
+  case 265:
+#line 932 "ldgram.y"
     { ldlex_expression(); }
     break;
 
-  case 258:
-#line 923 "ldgram.y"
+  case 266:
+#line 936 "ldgram.y"
     { ldlex_popstate (); ldlex_script (); }
     break;
 
-  case 259:
-#line 926 "ldgram.y"
+  case 267:
+#line 939 "ldgram.y"
     {
                          lang_enter_output_section_statement((yyvsp[(1) - (9)].name), (yyvsp[(3) - (9)].etree),
                                                              sectype,
@@ -3649,48 +3729,48 @@ yyreduce:
                        }
     break;
 
-  case 260:
-#line 932 "ldgram.y"
+  case 268:
+#line 945 "ldgram.y"
     { ldlex_popstate (); ldlex_expression (); }
     break;
 
-  case 261:
-#line 934 "ldgram.y"
+  case 269:
+#line 947 "ldgram.y"
     {
                  ldlex_popstate ();
                  lang_leave_output_section_statement ((yyvsp[(17) - (17)].fill), (yyvsp[(14) - (17)].name), (yyvsp[(16) - (17)].section_phdr), (yyvsp[(15) - (17)].name));
                }
     break;
 
-  case 262:
-#line 939 "ldgram.y"
+  case 270:
+#line 952 "ldgram.y"
     {}
     break;
 
-  case 263:
-#line 941 "ldgram.y"
+  case 271:
+#line 954 "ldgram.y"
     { ldlex_expression (); }
     break;
 
-  case 264:
-#line 943 "ldgram.y"
+  case 272:
+#line 956 "ldgram.y"
     { ldlex_popstate (); ldlex_script (); }
     break;
 
-  case 265:
-#line 945 "ldgram.y"
+  case 273:
+#line 958 "ldgram.y"
     {
                          lang_enter_overlay ((yyvsp[(3) - (8)].etree), (yyvsp[(6) - (8)].etree));
                        }
     break;
 
-  case 266:
-#line 950 "ldgram.y"
+  case 274:
+#line 963 "ldgram.y"
     { ldlex_popstate (); ldlex_expression (); }
     break;
 
-  case 267:
-#line 952 "ldgram.y"
+  case 275:
+#line 965 "ldgram.y"
     {
                          ldlex_popstate ();
                          lang_leave_overlay ((yyvsp[(5) - (16)].etree), (int) (yyvsp[(4) - (16)].integer),
@@ -3698,113 +3778,123 @@ yyreduce:
                        }
     break;
 
-  case 269:
-#line 962 "ldgram.y"
+  case 277:
+#line 975 "ldgram.y"
     { ldlex_expression (); }
     break;
 
-  case 270:
-#line 964 "ldgram.y"
+  case 278:
+#line 977 "ldgram.y"
     {
                  ldlex_popstate ();
                  lang_add_assignment (exp_assop ('=', ".", (yyvsp[(3) - (3)].etree)));
                }
     break;
 
-  case 272:
-#line 972 "ldgram.y"
+  case 280:
+#line 983 "ldgram.y"
+    { ldlex_script (); ldfile_open_command_file((yyvsp[(2) - (2)].name)); }
+    break;
+
+  case 281:
+#line 985 "ldgram.y"
+    { ldlex_popstate (); }
+    break;
+
+  case 282:
+#line 989 "ldgram.y"
     { sectype = noload_section; }
     break;
 
-  case 273:
-#line 973 "ldgram.y"
+  case 283:
+#line 990 "ldgram.y"
     { sectype = noalloc_section; }
     break;
 
-  case 274:
-#line 974 "ldgram.y"
+  case 284:
+#line 991 "ldgram.y"
     { sectype = noalloc_section; }
     break;
 
-  case 275:
-#line 975 "ldgram.y"
+  case 285:
+#line 992 "ldgram.y"
     { sectype = noalloc_section; }
     break;
 
-  case 276:
-#line 976 "ldgram.y"
+  case 286:
+#line 993 "ldgram.y"
     { sectype = noalloc_section; }
     break;
 
-  case 278:
-#line 981 "ldgram.y"
+  case 288:
+#line 998 "ldgram.y"
     { sectype = normal_section; }
     break;
 
-  case 279:
-#line 982 "ldgram.y"
+  case 289:
+#line 999 "ldgram.y"
     { sectype = normal_section; }
     break;
 
-  case 280:
-#line 986 "ldgram.y"
+  case 290:
+#line 1003 "ldgram.y"
     { (yyval.etree) = (yyvsp[(1) - (3)].etree); }
     break;
 
-  case 281:
-#line 987 "ldgram.y"
+  case 291:
+#line 1004 "ldgram.y"
     { (yyval.etree) = (etree_type *)NULL;  }
     break;
 
-  case 282:
-#line 992 "ldgram.y"
+  case 292:
+#line 1009 "ldgram.y"
     { (yyval.etree) = (yyvsp[(3) - (6)].etree); }
     break;
 
-  case 283:
-#line 994 "ldgram.y"
+  case 293:
+#line 1011 "ldgram.y"
     { (yyval.etree) = (yyvsp[(3) - (10)].etree); }
     break;
 
-  case 284:
-#line 998 "ldgram.y"
+  case 294:
+#line 1015 "ldgram.y"
     { (yyval.etree) = (yyvsp[(1) - (2)].etree); }
     break;
 
-  case 285:
-#line 999 "ldgram.y"
+  case 295:
+#line 1016 "ldgram.y"
     { (yyval.etree) = (etree_type *) NULL;  }
     break;
 
-  case 286:
-#line 1004 "ldgram.y"
+  case 296:
+#line 1021 "ldgram.y"
     { (yyval.integer) = 0; }
     break;
 
-  case 287:
-#line 1006 "ldgram.y"
+  case 297:
+#line 1023 "ldgram.y"
     { (yyval.integer) = 1; }
     break;
 
-  case 288:
-#line 1011 "ldgram.y"
+  case 298:
+#line 1028 "ldgram.y"
     { (yyval.name) = (yyvsp[(2) - (2)].name); }
     break;
 
-  case 289:
-#line 1012 "ldgram.y"
+  case 299:
+#line 1029 "ldgram.y"
     { (yyval.name) = DEFAULT_MEMORY_REGION; }
     break;
 
-  case 290:
-#line 1017 "ldgram.y"
+  case 300:
+#line 1034 "ldgram.y"
     {
                  (yyval.section_phdr) = NULL;
                }
     break;
 
-  case 291:
-#line 1021 "ldgram.y"
+  case 301:
+#line 1038 "ldgram.y"
     {
                  struct lang_output_section_phdr_list *n;
 
@@ -3817,47 +3907,47 @@ yyreduce:
                }
     break;
 
-  case 293:
-#line 1037 "ldgram.y"
+  case 303:
+#line 1054 "ldgram.y"
     {
                          ldlex_script ();
                          lang_enter_overlay_section ((yyvsp[(2) - (2)].name));
                        }
     break;
 
-  case 294:
-#line 1042 "ldgram.y"
+  case 304:
+#line 1059 "ldgram.y"
     { ldlex_popstate (); ldlex_expression (); }
     break;
 
-  case 295:
-#line 1044 "ldgram.y"
+  case 305:
+#line 1061 "ldgram.y"
     {
                          ldlex_popstate ();
                          lang_leave_overlay_section ((yyvsp[(9) - (9)].fill), (yyvsp[(8) - (9)].section_phdr));
                        }
     break;
 
-  case 300:
-#line 1061 "ldgram.y"
+  case 310:
+#line 1078 "ldgram.y"
     { ldlex_expression (); }
     break;
 
-  case 301:
-#line 1062 "ldgram.y"
+  case 311:
+#line 1079 "ldgram.y"
     { ldlex_popstate (); }
     break;
 
-  case 302:
-#line 1064 "ldgram.y"
+  case 312:
+#line 1081 "ldgram.y"
     {
                  lang_new_phdr ((yyvsp[(1) - (6)].name), (yyvsp[(3) - (6)].etree), (yyvsp[(4) - (6)].phdr).filehdr, (yyvsp[(4) - (6)].phdr).phdrs, (yyvsp[(4) - (6)].phdr).at,
                                 (yyvsp[(4) - (6)].phdr).flags);
                }
     break;
 
-  case 303:
-#line 1072 "ldgram.y"
+  case 313:
+#line 1089 "ldgram.y"
     {
                  (yyval.etree) = (yyvsp[(1) - (1)].etree);
 
@@ -3900,15 +3990,15 @@ yyreduce:
                }
     break;
 
-  case 304:
-#line 1116 "ldgram.y"
+  case 314:
+#line 1133 "ldgram.y"
     {
                  memset (&(yyval.phdr), 0, sizeof (struct phdr_info));
                }
     break;
 
-  case 305:
-#line 1120 "ldgram.y"
+  case 315:
+#line 1137 "ldgram.y"
     {
                  (yyval.phdr) = (yyvsp[(3) - (3)].phdr);
                  if (strcmp ((yyvsp[(1) - (3)].name), "FILEHDR") == 0 && (yyvsp[(2) - (3)].etree) == NULL)
@@ -3922,189 +4012,189 @@ yyreduce:
                }
     break;
 
-  case 306:
-#line 1132 "ldgram.y"
+  case 316:
+#line 1149 "ldgram.y"
     {
                  (yyval.phdr) = (yyvsp[(5) - (5)].phdr);
                  (yyval.phdr).at = (yyvsp[(3) - (5)].etree);
                }
     break;
 
-  case 307:
-#line 1140 "ldgram.y"
+  case 317:
+#line 1157 "ldgram.y"
     {
                  (yyval.etree) = NULL;
                }
     break;
 
-  case 308:
-#line 1144 "ldgram.y"
+  case 318:
+#line 1161 "ldgram.y"
     {
                  (yyval.etree) = (yyvsp[(2) - (3)].etree);
                }
     break;
 
-  case 309:
-#line 1150 "ldgram.y"
+  case 319:
+#line 1167 "ldgram.y"
     {
                  ldlex_version_file ();
                  PUSH_ERROR (_("dynamic list"));
                }
     break;
 
-  case 310:
-#line 1155 "ldgram.y"
+  case 320:
+#line 1172 "ldgram.y"
     {
                  ldlex_popstate ();
                  POP_ERROR ();
                }
     break;
 
-  case 314:
-#line 1172 "ldgram.y"
+  case 324:
+#line 1189 "ldgram.y"
     {
                  lang_append_dynamic_list ((yyvsp[(1) - (2)].versyms));
                }
     break;
 
-  case 315:
-#line 1180 "ldgram.y"
+  case 325:
+#line 1197 "ldgram.y"
     {
                  ldlex_version_file ();
                  PUSH_ERROR (_("VERSION script"));
                }
     break;
 
-  case 316:
-#line 1185 "ldgram.y"
+  case 326:
+#line 1202 "ldgram.y"
     {
                  ldlex_popstate ();
                  POP_ERROR ();
                }
     break;
 
-  case 317:
-#line 1194 "ldgram.y"
+  case 327:
+#line 1211 "ldgram.y"
     {
                  ldlex_version_script ();
                }
     break;
 
-  case 318:
-#line 1198 "ldgram.y"
+  case 328:
+#line 1215 "ldgram.y"
     {
                  ldlex_popstate ();
                }
     break;
 
-  case 321:
-#line 1210 "ldgram.y"
+  case 331:
+#line 1227 "ldgram.y"
     {
                  lang_register_vers_node (NULL, (yyvsp[(2) - (4)].versnode), NULL);
                }
     break;
 
-  case 322:
-#line 1214 "ldgram.y"
+  case 332:
+#line 1231 "ldgram.y"
     {
                  lang_register_vers_node ((yyvsp[(1) - (5)].name), (yyvsp[(3) - (5)].versnode), NULL);
                }
     break;
 
-  case 323:
-#line 1218 "ldgram.y"
+  case 333:
+#line 1235 "ldgram.y"
     {
                  lang_register_vers_node ((yyvsp[(1) - (6)].name), (yyvsp[(3) - (6)].versnode), (yyvsp[(5) - (6)].deflist));
                }
     break;
 
-  case 324:
-#line 1225 "ldgram.y"
+  case 334:
+#line 1242 "ldgram.y"
     {
                  (yyval.deflist) = lang_add_vers_depend (NULL, (yyvsp[(1) - (1)].name));
                }
     break;
 
-  case 325:
-#line 1229 "ldgram.y"
+  case 335:
+#line 1246 "ldgram.y"
     {
                  (yyval.deflist) = lang_add_vers_depend ((yyvsp[(1) - (2)].deflist), (yyvsp[(2) - (2)].name));
                }
     break;
 
-  case 326:
-#line 1236 "ldgram.y"
+  case 336:
+#line 1253 "ldgram.y"
     {
                  (yyval.versnode) = lang_new_vers_node (NULL, NULL);
                }
     break;
 
-  case 327:
-#line 1240 "ldgram.y"
+  case 337:
+#line 1257 "ldgram.y"
     {
                  (yyval.versnode) = lang_new_vers_node ((yyvsp[(1) - (2)].versyms), NULL);
                }
     break;
 
-  case 328:
-#line 1244 "ldgram.y"
+  case 338:
+#line 1261 "ldgram.y"
     {
                  (yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (4)].versyms), NULL);
                }
     break;
 
-  case 329:
-#line 1248 "ldgram.y"
+  case 339:
+#line 1265 "ldgram.y"
     {
                  (yyval.versnode) = lang_new_vers_node (NULL, (yyvsp[(3) - (4)].versyms));
                }
     break;
 
-  case 330:
-#line 1252 "ldgram.y"
+  case 340:
+#line 1269 "ldgram.y"
     {
                  (yyval.versnode) = lang_new_vers_node ((yyvsp[(3) - (8)].versyms), (yyvsp[(7) - (8)].versyms));
                }
     break;
 
-  case 331:
-#line 1259 "ldgram.y"
+  case 341:
+#line 1276 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, FALSE);
                }
     break;
 
-  case 332:
-#line 1263 "ldgram.y"
+  case 342:
+#line 1280 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern (NULL, (yyvsp[(1) - (1)].name), ldgram_vers_current_lang, TRUE);
                }
     break;
 
-  case 333:
-#line 1267 "ldgram.y"
+  case 343:
+#line 1284 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, FALSE);
                }
     break;
 
-  case 334:
-#line 1271 "ldgram.y"
+  case 344:
+#line 1288 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), (yyvsp[(3) - (3)].name), ldgram_vers_current_lang, TRUE);
                }
     break;
 
-  case 335:
-#line 1275 "ldgram.y"
+  case 345:
+#line 1292 "ldgram.y"
     {
                          (yyval.name) = ldgram_vers_current_lang;
                          ldgram_vers_current_lang = (yyvsp[(4) - (5)].name);
                        }
     break;
 
-  case 336:
-#line 1280 "ldgram.y"
+  case 346:
+#line 1297 "ldgram.y"
     {
                          struct bfd_elf_version_expr *pat;
                          for (pat = (yyvsp[(7) - (9)].versyms); pat->next != NULL; pat = pat->next);
@@ -4114,59 +4204,59 @@ yyreduce:
                        }
     break;
 
-  case 337:
-#line 1288 "ldgram.y"
+  case 347:
+#line 1305 "ldgram.y"
     {
                          (yyval.name) = ldgram_vers_current_lang;
                          ldgram_vers_current_lang = (yyvsp[(2) - (3)].name);
                        }
     break;
 
-  case 338:
-#line 1293 "ldgram.y"
+  case 348:
+#line 1310 "ldgram.y"
     {
                          (yyval.versyms) = (yyvsp[(5) - (7)].versyms);
                          ldgram_vers_current_lang = (yyvsp[(4) - (7)].name);
                        }
     break;
 
-  case 339:
-#line 1298 "ldgram.y"
+  case 349:
+#line 1315 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern (NULL, "global", ldgram_vers_current_lang, FALSE);
                }
     break;
 
-  case 340:
-#line 1302 "ldgram.y"
+  case 350:
+#line 1319 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "global", ldgram_vers_current_lang, FALSE);
                }
     break;
 
-  case 341:
-#line 1306 "ldgram.y"
+  case 351:
+#line 1323 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern (NULL, "local", ldgram_vers_current_lang, FALSE);
                }
     break;
 
-  case 342:
-#line 1310 "ldgram.y"
+  case 352:
+#line 1327 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "local", ldgram_vers_current_lang, FALSE);
                }
     break;
 
-  case 343:
-#line 1314 "ldgram.y"
+  case 353:
+#line 1331 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern (NULL, "extern", ldgram_vers_current_lang, FALSE);
                }
     break;
 
-  case 344:
-#line 1318 "ldgram.y"
+  case 354:
+#line 1335 "ldgram.y"
     {
                  (yyval.versyms) = lang_new_vers_pattern ((yyvsp[(1) - (3)].versyms), "extern", ldgram_vers_current_lang, FALSE);
                }
@@ -4174,7 +4264,7 @@ yyreduce:
 
 
 /* Line 1267 of yacc.c.  */
-#line 4178 "ldgram.c"
+#line 4268 "ldgram.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4388,7 +4478,7 @@ yyreturn:
 }
 
 
-#line 1328 "ldgram.y"
+#line 1345 "ldgram.y"
 
 void
 yyerror(arg)