Statistics
| Branch: | Revision:

iof-bird / bird-2.0.1 / obj / conf / cf-parse.tab.c @ 2b5ca73a

History | View | Annotate | Download (438 KB)

1
/* A Bison parser, made by GNU Bison 3.0.4.  */
2

    
3
/* Bison implementation for Yacc-like parsers in C
4

5
   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6

7
   This program is free software: you can redistribute it and/or modify
8
   it under the terms of the GNU General Public License as published by
9
   the Free Software Foundation, either version 3 of the License, or
10
   (at your option) any later version.
11

12
   This program is distributed in the hope that it will be useful,
13
   but WITHOUT ANY WARRANTY; without even the implied warranty of
14
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
   GNU General Public License for more details.
16

17
   You should have received a copy of the GNU General Public License
18
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19

    
20
/* As a special exception, you may create a larger work that contains
21
   part or all of the Bison parser skeleton and distribute that work
22
   under terms of your choice, so long as that work isn't itself a
23
   parser generator using the skeleton or a modified version thereof
24
   as a parser skeleton.  Alternatively, if you modify or redistribute
25
   the parser skeleton itself, you may (at your option) remove this
26
   special exception, which will cause the skeleton and the resulting
27
   Bison output files to be licensed under the GNU General Public
28
   License without this special exception.
29

30
   This special exception was added by the Free Software Foundation in
31
   version 2.2 of Bison.  */
32

    
33
/* C LALR(1) parser skeleton written by Richard Stallman, by
34
   simplifying the original so-called "semantic" parser.  */
35

    
36
/* All symbols defined below should begin with yy or YY, to avoid
37
   infringing on user name space.  This should be done even for local
38
   variables, as they might otherwise be expanded by user macros.
39
   There are some unavoidable exceptions within include files to
40
   define necessary library symbols; they are noted "INFRINGES ON
41
   USER NAME SPACE" below.  */
42

    
43
/* Identify Bison output.  */
44
#define YYBISON 1
45

    
46
/* Bison version.  */
47
#define YYBISON_VERSION "3.0.4"
48

    
49
/* Skeleton name.  */
50
#define YYSKELETON_NAME "yacc.c"
51

    
52
/* Pure parsers.  */
53
#define YYPURE 0
54

    
55
/* Push parsers.  */
56
#define YYPUSH 0
57

    
58
/* Pull parsers.  */
59
#define YYPULL 1
60

    
61

    
62
/* Substitute the variable and function names.  */
63
#define yyparse         cf_parse
64
#define yylex           cf_lex
65
#define yyerror         cf_error
66
#define yydebug         cf_debug
67
#define yynerrs         cf_nerrs
68

    
69
#define yylval          cf_lval
70
#define yychar          cf_char
71

    
72
/* Copy the first part of user declarations.  */
73
#line 1 "obj/conf/cf-parse.y" /* yacc.c:339  */
74

    
75
/* Headers from conf/confbase.Y */
76

    
77
#define PARSER 1
78

    
79
#include "nest/bird.h"
80
#include "conf/conf.h"
81
#include "lib/resource.h"
82
#include "lib/socket.h"
83
#include "lib/timer.h"
84
#include "lib/string.h"
85
#include "nest/protocol.h"
86
#include "nest/iface.h"
87
#include "nest/route.h"
88
#include "nest/cli.h"
89
#include "filter/filter.h"
90

    
91
/* FIXME: Turn on YYERROR_VERBOSE and work around lots of bison bugs? */
92

    
93
/* Defines from conf/confbase.Y */
94

    
95
static void
96
check_u16(uint val)
97
{
98
  if (val > 0xFFFF)
99
    cf_error("Value %u out of range (0-65535)", val);
100
}
101

    
102
/* Headers from conf/flowspec.Y */
103

    
104
#define PARSER 1
105

    
106
#include "nest/bird.h"
107
#include "lib/flowspec.h"
108

    
109

    
110
/* Defines from conf/flowspec.Y */
111

    
112
struct flow_builder *this_flow;
113

    
114

    
115
/* Headers from filter/config.Y */
116

    
117
/* Defines from filter/config.Y */
118

    
119
#define P(a,b) ((a << 8) | b)
120

    
121
static inline u32 pair(u32 a, u32 b) { return (a << 16) | b; }
122
static inline u32 pair_a(u32 p) { return p >> 16; }
123
static inline u32 pair_b(u32 p) { return p & 0xFFFF; }
124

    
125

    
126
/*
127
 * Sets and their items are during parsing handled as lists, linked
128
 * through left ptr. The first item in a list also contains a pointer
129
 * to the last item in a list (right ptr). For convenience, even items
130
 * are handled as one-item lists. Lists are merged by f_merge_items().
131
 */
132
static int
133
f_valid_set_type(int type)
134
{
135
  switch (type)
136
  {
137
  case T_INT:
138
  case T_PAIR:
139
  case T_QUAD:
140
  case T_ENUM:
141
  case T_IP:
142
  case T_EC:
143
  case T_LC:
144
    return 1;
145

    
146
  default:
147
    return 0;
148
  }
149
}
150

    
151
static inline struct f_tree *
152
f_new_item(struct f_val from, struct f_val to)
153
{
154
  struct f_tree *t = f_new_tree();
155
  t->right = t;
156
  t->from = from;
157
  t->to = to;
158
  return t;
159
}
160

    
161
static inline struct f_tree *
162
f_merge_items(struct f_tree *a, struct f_tree *b)
163
{
164
  if (!a) return b;
165
  a->right->left = b;
166
  a->right = b->right;
167
  b->right = NULL;
168
  return a;
169
}
170

    
171
static inline struct f_tree *
172
f_new_pair_item(int fa, int ta, int fb, int tb)
173
{
174
  check_u16(fa);
175
  check_u16(ta);
176
  check_u16(fb);
177
  check_u16(tb);
178

    
179
  if ((ta < fa) || (tb < fb))
180
    cf_error( "From value cannot be higher that To value in pair sets");
181

    
182
  struct f_tree *t = f_new_tree();
183
  t->right = t;
184
  t->from.type = t->to.type = T_PAIR;
185
  t->from.val.i = pair(fa, fb);
186
  t->to.val.i = pair(ta, tb);
187
  return t;
188
}
189

    
190
static inline struct f_tree *
191
f_new_pair_set(int fa, int ta, int fb, int tb)
192
{
193
  check_u16(fa);
194
  check_u16(ta);
195
  check_u16(fb);
196
  check_u16(tb);
197

    
198
  if ((ta < fa) || (tb < fb))
199
    cf_error( "From value cannot be higher that To value in pair sets");
200

    
201
  struct f_tree *lst = NULL;
202
  int i;
203

    
204
  for (i = fa; i <= ta; i++)
205
    lst = f_merge_items(lst, f_new_pair_item(i, i, fb, tb));
206

    
207
  return lst;
208
}
209

    
210
#define CC_ALL 0xFFFF
211
#define EC_ALL 0xFFFFFFFF
212
#define LC_ALL 0xFFFFFFFF
213

    
214
static struct f_tree *
215
f_new_ec_item(u32 kind, u32 ipv4_used, u32 key, u32 vf, u32 vt)
216
{
217
  u64 fm, to;
218

    
219
  if ((kind != EC_GENERIC) && (ipv4_used || (key >= 0x10000))) {
220
    check_u16(vf);
221
    if (vt == EC_ALL)
222
      vt = 0xFFFF;
223
    else
224
      check_u16(vt);
225
  }
226

    
227
  if (kind == EC_GENERIC) {
228
    fm = ec_generic(key, vf);
229
    to = ec_generic(key, vt);
230
  }
231
  else if (ipv4_used) {
232
    fm = ec_ip4(kind, key, vf);
233
    to = ec_ip4(kind, key, vt);
234
  }
235
  else if (key < 0x10000) {
236
    fm = ec_as2(kind, key, vf);
237
    to = ec_as2(kind, key, vt);
238
  }
239
  else {
240
    fm = ec_as4(kind, key, vf);
241
    to = ec_as4(kind, key, vt);
242
  }
243

    
244
  struct f_tree *t = f_new_tree();
245
  t->right = t;
246
  t->from.type = t->to.type = T_EC;
247
  t->from.val.ec = fm;
248
  t->to.val.ec = to;
249
  return t;
250
}
251

    
252
static struct f_tree *
253
f_new_lc_item(u32 f1, u32 t1, u32 f2, u32 t2, u32 f3, u32 t3)
254
{
255
  struct f_tree *t = f_new_tree();
256
  t->right = t;
257
  t->from.type = t->to.type = T_LC;
258
  t->from.val.lc = (lcomm) {f1, f2, f3};
259
  t->to.val.lc = (lcomm) {t1, t2, t3};
260
  return t;
261
}
262

    
263
static inline struct f_inst *
264
f_generate_empty(struct f_inst *dyn)
265
{
266
  struct f_inst *e = f_new_inst();
267
  e->code = 'E';
268

    
269
  switch (dyn->aux & EAF_TYPE_MASK) {
270
    case EAF_TYPE_AS_PATH:
271
      e->aux = T_PATH;
272
      break;
273
    case EAF_TYPE_INT_SET:
274
      e->aux = T_CLIST;
275
      break;
276
    case EAF_TYPE_EC_SET:
277
      e->aux = T_ECLIST;
278
      break;
279
    case EAF_TYPE_LC_SET:
280
      e->aux = T_LCLIST;
281
      break;
282
    default:
283
      cf_error("Can't empty that attribute");
284
  }
285

    
286
  dyn->code = P('e','S');
287
  dyn->a1.p = e;
288
  return dyn;
289
}
290

    
291

    
292
static inline struct f_inst *
293
f_generate_dpair(struct f_inst *t1, struct f_inst *t2)
294
{
295
  struct f_inst *rv;
296

    
297
  if ((t1->code == 'c') && (t2->code == 'c')) {
298
    if ((t1->aux != T_INT) || (t2->aux != T_INT))
299
      cf_error( "Can't operate with value of non-integer type in pair constructor");
300

    
301
    check_u16(t1->a2.i);
302
    check_u16(t2->a2.i);
303

    
304
    rv = f_new_inst();
305
    rv->code = 'c';
306
    rv->aux = T_PAIR;
307
    rv->a2.i = pair(t1->a2.i, t2->a2.i);
308
  }
309
  else {
310
    rv = f_new_inst();
311
    rv->code = P('m', 'p');
312
    rv->a1.p = t1;
313
    rv->a2.p = t2;
314
  }
315

    
316
  return rv;
317
}
318

    
319
static inline struct f_inst *
320
f_generate_ec(u16 kind, struct f_inst *tk, struct f_inst *tv)
321
{
322
  struct f_inst *rv;
323
  int c1 = 0, c2 = 0, ipv4_used = 0;
324
  u32 key = 0, val2 = 0;
325

    
326
  if (tk->code == 'c') {
327
    c1 = 1;
328

    
329
    if (tk->aux == T_INT) {
330
      ipv4_used = 0; key = tk->a2.i;
331
    }
332
    else if (tk->aux == T_QUAD) {
333
      ipv4_used = 1; key = tk->a2.i;
334
    }
335
    else
336
      cf_error("Can't operate with key of non-integer/IPv4 type in EC constructor");
337
  }
338

    
339
  /* IP->Quad implicit conversion */
340
  else if (tk->code == 'C') {
341
    c1 = 1;
342
    struct f_val *val = tk->a1.p;
343

    
344
    if (val->type == T_INT) {
345
      ipv4_used = 0; key = val->val.i;
346
    }
347
    else if (val->type == T_QUAD) {
348
      ipv4_used = 1; key = val->val.i;
349
    }
350
    else if ((val->type == T_IP) && ipa_is_ip4(val->val.ip)) {
351
      ipv4_used = 1; key = ipa_to_u32(val->val.ip);
352
    }
353
    else
354
      cf_error("Can't operate with key of non-integer/IPv4 type in EC constructor");
355
  }
356

    
357
  if (tv->code == 'c') {
358
    if (tv->aux != T_INT)
359
      cf_error("Can't operate with value of non-integer type in EC constructor");
360
    c2 = 1;
361
    val2 = tv->a2.i;
362
  }
363

    
364
  if (c1 && c2) {
365
    u64 ec;
366

    
367
    if (kind == EC_GENERIC) {
368
      ec = ec_generic(key, val2);
369
    }
370
    else if (ipv4_used) {
371
      check_u16(val2);
372
      ec = ec_ip4(kind, key, val2);
373
    }
374
    else if (key < 0x10000) {
375
      ec = ec_as2(kind, key, val2);
376
    }
377
    else {
378
      check_u16(val2);
379
      ec = ec_as4(kind, key, val2);
380
    }
381

    
382
    NEW_F_VAL;
383
    rv = f_new_inst();
384
    rv->code = 'C';
385
    rv->a1.p = val;
386
    val->type = T_EC;
387
    val->val.ec = ec;
388
  }
389
  else {
390
    rv = f_new_inst();
391
    rv->code = P('m','c');
392
    rv->aux = kind;
393
    rv->a1.p = tk;
394
    rv->a2.p = tv;
395
  }
396

    
397
  return rv;
398
}
399

    
400
static inline struct f_inst *
401
f_generate_lc(struct f_inst *t1, struct f_inst *t2, struct f_inst *t3)
402
{
403
  struct f_inst *rv;
404

    
405
  if ((t1->code == 'c') && (t2->code == 'c') && (t3->code == 'c')) {
406
    if ((t1->aux != T_INT) || (t2->aux != T_INT) || (t3->aux != T_INT))
407
      cf_error( "LC - Can't operate with value of non-integer type in tuple constructor");
408

    
409
    rv = f_new_inst();
410
    rv->code = 'C';
411

    
412
    NEW_F_VAL;
413
    rv->a1.p = val;
414
    val->type = T_LC;
415
    val->val.lc = (lcomm) { t1->a2.i, t2->a2.i, t3->a2.i };
416
  }
417
  else
418
  {
419
    rv = cfg_allocz(sizeof(struct f_inst3));
420
    rv->lineno = ifs->lino;
421
    rv->code = P('m','l');
422
    rv->a1.p = t1;
423
    rv->a2.p = t2;
424
    INST3(rv).p = t3;
425
  }
426

    
427
  return rv;
428
}
429

    
430
/*
431
 * Remove all new lines and doubled whitespaces
432
 * and convert all tabulators to spaces
433
 * and return a copy of string
434
 */
435
char *
436
assert_copy_expr(const char *start, size_t len)
437
{
438
  /* XXX: Allocates maybe a little more memory than we really finally need */
439
  char *str = cfg_alloc(len + 1);
440

    
441
  char *dst = str;
442
  const char *src = start - 1;
443
  const char *end = start + len;
444
  while (++src < end)
445
  {
446
    if (*src == '\n')
447
      continue;
448

    
449
    /* Skip doubled whitespaces */
450
    if (src != start)
451
    {
452
      const char *prev = src - 1;
453
      if ((*src == ' ' || *src == '\t') && (*prev == ' ' || *prev == '\t'))
454
        continue;
455
    }
456

    
457
    if (*src == '\t')
458
      *dst = ' ';
459
    else
460
      *dst = *src;
461

    
462
    dst++;
463
  }
464
  *dst = '\0';
465

    
466
  return str;
467
}
468

    
469
/*
470
 * assert_done - create f_instruction of bt_assert
471
 * @expr: expression in bt_assert()
472
 * @start: pointer to first char of test expression
473
 * @end: pointer to the last char of test expression
474
 */
475
static struct f_inst *
476
assert_done(struct f_inst *expr, const char *start, const char *end)
477
{
478
  struct f_inst *i;
479
  i = f_new_inst();
480
  i->code = P('a','s');
481
  i->a1.p = expr;
482

    
483
  if (end >= start)
484
  {
485
    i->a2.p = assert_copy_expr(start, end - start + 1);
486
  }
487
  else
488
  {
489
    /* this is a break of lexer buffer */
490
    i->a2.p = "???";
491
  }
492

    
493
  return i;
494
}
495

    
496
/* Headers from nest/config.Y */
497

    
498
#include "nest/rt-dev.h"
499
#include "nest/password.h"
500
#include "nest/cmds.h"
501
#include "lib/lists.h"
502
#include "lib/mac.h"
503

    
504
/* Defines from nest/config.Y */
505

    
506
static struct proto_config *this_proto;
507
static struct channel_config *this_channel;
508
static struct iface_patt *this_ipatt;
509
static struct iface_patt_node *this_ipn;
510
/* static struct roa_table_config *this_roa_table; */
511
static list *this_p_list;
512
static struct password_item *this_p_item;
513
static int password_id;
514

    
515
static void
516
iface_patt_check(void)
517
{
518
  struct iface_patt_node *pn;
519

    
520
  WALK_LIST(pn, this_ipatt->ipn_list)
521
    if (!pn->pattern || pn->prefix.type)
522
      cf_error("Interface name/mask expected, not IP prefix");
523
}
524

    
525

    
526
static inline void
527
reset_passwords(void)
528
{
529
  this_p_list = NULL;
530
}
531

    
532
static inline list *
533
get_passwords(void)
534
{
535
  list *rv = this_p_list;
536
  this_p_list = NULL;
537
  return rv;
538
}
539

    
540
static void
541
proto_postconfig(void)
542
{
543
  CALL(this_proto->protocol->postconfig, this_proto);
544
  this_channel = NULL;
545
  this_proto = NULL;
546
}
547

    
548

    
549
#define DIRECT_CFG ((struct rt_dev_config *) this_proto)
550

    
551
/* Headers from proto/bfd/config.Y */
552

    
553
#include "proto/bfd/bfd.h"
554

    
555
/* Defines from proto/bfd/config.Y */
556

    
557
#define BFD_CFG ((struct bfd_config *) this_proto)
558
#define BFD_IFACE ((struct bfd_iface_config *) this_ipatt)
559
#define BFD_NEIGHBOR this_bfd_neighbor
560

    
561
static struct bfd_neighbor *this_bfd_neighbor;
562

    
563
extern struct bfd_config *bfd_cf;
564

    
565
/* Headers from proto/babel/config.Y */
566

    
567
#include "proto/babel/babel.h"
568
#include "nest/iface.h"
569

    
570
/* Defines from proto/babel/config.Y */
571

    
572
#define BABEL_CFG ((struct babel_config *) this_proto)
573
#define BABEL_IFACE ((struct babel_iface_config *) this_ipatt)
574

    
575
/* Headers from proto/bgp/config.Y */
576

    
577
#include "proto/bgp/bgp.h"
578

    
579
/* Defines from proto/bgp/config.Y */
580

    
581
#define BGP_CFG ((struct bgp_config *) this_proto)
582
#define BGP_CC ((struct bgp_channel_config *) this_channel)
583

    
584
/* Headers from proto/ospf/config.Y */
585

    
586
#include "proto/ospf/ospf.h"
587

    
588
/* Defines from proto/ospf/config.Y */
589

    
590
#define OSPF_CFG ((struct ospf_config *) this_proto)
591
#define OSPF_PATT ((struct ospf_iface_patt *) this_ipatt)
592

    
593
static struct ospf_area_config *this_area;
594
static struct nbma_node *this_nbma;
595
static list *this_nets;
596
static struct area_net_config *this_pref;
597
static struct ospf_stubnet_config *this_stubnet;
598

    
599
static inline int ospf_cfg_is_v2(void) { return OSPF_CFG->ospf2; }
600
static inline int ospf_cfg_is_v3(void) { return ! OSPF_CFG->ospf2; }
601

    
602
static void
603
ospf_iface_finish(void)
604
{
605
  struct ospf_iface_patt *ip = OSPF_PATT;
606

    
607
  if (ip->deadint == 0)
608
    ip->deadint = ip->deadc * ip->helloint;
609

    
610
  if (ip->waitint == 0)
611
    ip->waitint = ip->deadc * ip->helloint;
612

    
613
  ip->passwords = get_passwords();
614

    
615
  if ((ip->autype == OSPF_AUTH_CRYPT) && (ip->helloint < 5))
616
    log(L_WARN "Hello or poll interval less that 5 makes cryptographic authenication prone to replay attacks");
617

    
618
  if ((ip->autype == OSPF_AUTH_NONE) && (ip->passwords != NULL))
619
    log(L_WARN "Password option without authentication option does not make sense");
620

    
621
  if (ip->passwords)
622
  {
623
    struct password_item *pass;
624
    WALK_LIST(pass, *ip->passwords)
625
    {
626
      if (pass->alg && (ip->autype != OSPF_AUTH_CRYPT))
627
        cf_error("Password algorithm option requires cryptographic authentication");
628

    
629
      /* Set default OSPF crypto algorithms */
630
      if (!pass->alg && (ip->autype == OSPF_AUTH_CRYPT))
631
        pass->alg = ospf_cfg_is_v2() ? ALG_MD5 : ALG_HMAC_SHA256;
632
    }
633
  }
634
}
635

    
636
static void
637
ospf_area_finish(void)
638
{
639
  if ((this_area->areaid == 0) && (this_area->type != OPT_E))
640
    cf_error("Backbone area cannot be stub/NSSA");
641

    
642
  if (this_area->summary && (this_area->type == OPT_E))
643
    cf_error("Only stub/NSSA areas can use summary propagation");
644

    
645
  if (this_area->default_nssa && ((this_area->type != OPT_N) || ! this_area->summary))
646
    cf_error("Only NSSA areas with summary propagation can use NSSA default route");
647

    
648
  if ((this_area->default_cost & LSA_EXT3_EBIT) && ! this_area->default_nssa)
649
    cf_error("Only NSSA default route can use type 2 metric");
650
}
651

    
652
static void
653
ospf_proto_finish(void)
654
{
655
  struct ospf_config *cf = OSPF_CFG;
656
  struct ospf_area_config *ac;
657
  struct ospf_iface_patt *ic;
658

    
659
  /* Define default channel */
660
  if (EMPTY_LIST(this_proto->channels))
661
  {
662
    uint net_type = this_proto->net_type = ospf_cfg_is_v2() ? NET_IP4 : NET_IP6;
663
    channel_config_new(NULL, net_label[net_type], net_type, this_proto);
664
  }
665

    
666
  /* Propagate global instance ID to interfaces */
667
  if (cf->instance_id_set)
668
  {
669
    WALK_LIST(ac, cf->area_list)
670
      WALK_LIST(ic, ac->patt_list)
671
        if (!ic->instance_id_set)
672
        { ic->instance_id = cf->instance_id; ic->instance_id_set = 1; }
673

    
674
    WALK_LIST(ic, cf->vlink_list)
675
      if (!ic->instance_id_set)
676
      { ic->instance_id = cf->instance_id; ic->instance_id_set = 1; }
677
  }
678

    
679
  if (ospf_cfg_is_v3())
680
  {
681
    uint ipv4 = (this_proto->net_type == NET_IP4);
682
    uint base = (ipv4 ? 64 : 0) + (cf->af_mc ? 32 : 0);
683

    
684
    /* RFC 5838 - OSPFv3-AF */
685
    if (cf->af_ext)
686
    {
687
      /* RFC 5838 2.1 - instance IDs based on AFs */
688
      WALK_LIST(ac, cf->area_list)
689
        WALK_LIST(ic, ac->patt_list)
690
        {
691
          if (!ic->instance_id_set)
692
            ic->instance_id = base;
693
          else if (ic->instance_id >= 128)
694
            log(L_WARN "Instance ID %d from unassigned/private range", ic->instance_id);
695
          else if ((ic->instance_id < base) || (ic->instance_id >= (base + 32)))
696
            cf_error("Instance ID %d invalid for given channel type", ic->instance_id);
697
        }
698

    
699
      /* RFC 5838 2.8 - vlinks limited to IPv6 unicast */
700
      if ((ipv4 || cf->af_mc) && !EMPTY_LIST(cf->vlink_list))
701
        cf_error("Vlinks not supported in AFs other than IPv6 unicast");
702
    }
703
    else
704
    {
705
      if (ipv4 || cf->af_mc)
706
        cf_error("Different channel type");
707
    }
708
  }
709

    
710
  if (EMPTY_LIST(cf->area_list))
711
    cf_error("No configured areas in OSPF");
712

    
713
  int areano = 0;
714
  int backbone = 0;
715
  int nssa = 0;
716
  WALK_LIST(ac, cf->area_list)
717
  {
718
    areano++;
719
    if (ac->areaid == 0)
720
      backbone = 1;
721
    if (ac->type == OPT_N)
722
      nssa = 1;
723
  }
724

    
725
  cf->abr = areano > 1;
726

    
727
  /* Route export or NSSA translation (RFC 3101 3.1) */
728
  cf->asbr = (proto_cf_main_channel(this_proto)->out_filter != FILTER_REJECT) || (nssa && cf->abr);
729

    
730
  if (cf->abr && !backbone)
731
  {
732
    struct ospf_area_config *ac = cfg_allocz(sizeof(struct ospf_area_config));
733
    ac->type = OPT_E; /* Backbone is non-stub */
734
    add_head(&cf->area_list, NODE ac);
735
    init_list(&ac->patt_list);
736
    init_list(&ac->net_list);
737
    init_list(&ac->enet_list);
738
    init_list(&ac->stubnet_list);
739
  }
740

    
741
  if (!cf->abr && !EMPTY_LIST(cf->vlink_list))
742
    cf_error("Vlinks cannot be used on single area router");
743

    
744
  if (cf->asbr && (areano == 1) && (this_area->type == 0))
745
    cf_error("ASBR must be in non-stub area");
746
}
747

    
748
static inline void
749
ospf_check_defcost(int cost)
750
{
751
  if ((cost <= 0) || (cost >= LSINFINITY))
752
   cf_error("Default cost must be in range 1-%u", LSINFINITY-1);
753
}
754

    
755
static inline void
756
ospf_check_auth(void)
757
{
758
  if (ospf_cfg_is_v3())
759
    cf_error("Authentication not supported in OSPFv3");
760
}
761

    
762

    
763
/* Headers from proto/pipe/config.Y */
764

    
765
#include "proto/pipe/pipe.h"
766

    
767
/* Defines from proto/pipe/config.Y */
768

    
769
#define PIPE_CFG ((struct pipe_config *) this_proto)
770

    
771
/* Headers from proto/radv/config.Y */
772

    
773
#include "proto/radv/radv.h"
774

    
775
/* Defines from proto/radv/config.Y */
776

    
777
#define RADV_CFG ((struct radv_config *) this_proto)
778
#define RADV_IFACE ((struct radv_iface_config *) this_ipatt)
779
#define RADV_PREFIX this_radv_prefix
780
#define RADV_RDNSS (&this_radv_rdnss)
781
#define RADV_DNSSL (&this_radv_dnssl)
782

    
783
static struct radv_prefix_config *this_radv_prefix;
784
static struct radv_rdnss_config this_radv_rdnss;
785
static struct radv_dnssl_config this_radv_dnssl;
786
static list radv_dns_list;        /* Used by radv_rdnss and radv_dnssl */
787
static u8 radv_mult_val;        /* Used by radv_mult for second return value */
788

    
789

    
790
/* Headers from proto/rip/config.Y */
791

    
792
#include "proto/rip/rip.h"
793
#include "nest/iface.h"
794

    
795
/* Defines from proto/rip/config.Y */
796

    
797
#define RIP_CFG ((struct rip_config *) this_proto)
798
#define RIP_IFACE ((struct rip_iface_config *) this_ipatt)
799

    
800
static inline int rip_cfg_is_v2(void) { return RIP_CFG->rip2; }
801
static inline int rip_cfg_is_ng(void) { return ! RIP_CFG->rip2; }
802

    
803
static inline void
804
rip_check_auth(void)
805
{
806
  if (rip_cfg_is_ng())
807
    cf_error("Authentication not supported in RIPng");
808
}
809

    
810

    
811
/* Headers from proto/static/config.Y */
812

    
813
#include "proto/static/static.h"
814

    
815
/* Defines from proto/static/config.Y */
816

    
817
#define STATIC_CFG ((struct static_config *) this_proto)
818
static struct static_route *this_srt, *this_snh;
819
static struct f_inst **this_srt_last_cmd;
820

    
821
static struct static_route *
822
static_nexthop_new(void)
823
{
824
  struct static_route *nh = this_srt;
825

    
826
  if (this_snh)
827
  {
828
    /* Additional next hop */
829
    nh = cfg_allocz(sizeof(struct static_route));
830
    nh->net = this_srt->net;
831
    this_snh->mp_next = nh;
832
  }
833

    
834
  nh->dest = RTD_UNICAST;
835
  nh->mp_head = this_srt;
836
  return nh;
837
};
838

    
839
static void
840
static_route_finish(void)
841
{
842
  if (net_type_match(this_srt->net, NB_DEST) == !this_srt->dest)
843
    cf_error("Unexpected or missing nexthop/type");
844
}
845

    
846
/* Headers from sysdep/linux/netlink.Y */
847

    
848
/* Headers from sysdep/unix/config.Y */
849

    
850
#include "sysdep/unix/unix.h"
851
#include <stdio.h>
852

    
853
/* Headers from sysdep/unix/krt.Y */
854

    
855
#include "sysdep/unix/krt.h"
856

    
857
/* Defines from sysdep/unix/krt.Y */
858

    
859
#define THIS_KRT ((struct krt_config *) this_proto)
860
#define THIS_KIF ((struct kif_config *) this_proto)
861
#define KIF_IFACE ((struct kif_iface_config *) this_ipatt)
862

    
863
static void
864
krt_set_merge_paths(struct channel_config *cc, uint merge, uint limit)
865
{
866
  if ((limit <= 0) || (limit > 255))
867
    cf_error("Merge paths limit must be in range 1-255");
868

    
869
  cc->ra_mode = merge ? RA_MERGED : RA_OPTIMAL;
870
  cc->merge_limit = limit;
871
}
872

    
873
static void
874
kif_set_preferred(ip_addr ip)
875
{
876
  if (ipa_is_ip4(ip))
877
    KIF_IFACE->pref_v4 = ip;
878
  else if (!ipa_is_link_local(ip))
879
    KIF_IFACE->pref_v6 = ip;
880
  else
881
    KIF_IFACE->pref_ll = ip;
882
}
883

    
884

    
885
#line 886 "obj/conf/cf-parse.tab.c" /* yacc.c:339  */
886

    
887
# ifndef YY_NULLPTR
888
#  if defined __cplusplus && 201103L <= __cplusplus
889
#   define YY_NULLPTR nullptr
890
#  else
891
#   define YY_NULLPTR 0
892
#  endif
893
# endif
894

    
895
/* Enabling verbose error messages.  */
896
#ifdef YYERROR_VERBOSE
897
# undef YYERROR_VERBOSE
898
# define YYERROR_VERBOSE 1
899
#else
900
# define YYERROR_VERBOSE 0
901
#endif
902

    
903
/* In a future release of Bison, this section will be replaced
904
   by #include "cf-parse.tab.h".  */
905
#ifndef YY_CF_OBJ_CONF_CF_PARSE_TAB_H_INCLUDED
906
# define YY_CF_OBJ_CONF_CF_PARSE_TAB_H_INCLUDED
907
/* Debug traces.  */
908
#ifndef YYDEBUG
909
# define YYDEBUG 0
910
#endif
911
#if YYDEBUG
912
extern int cf_debug;
913
#endif
914

    
915
/* Token type.  */
916
#ifndef YYTOKENTYPE
917
# define YYTOKENTYPE
918
  enum yytokentype
919
  {
920
    END = 258,
921
    CLI_MARKER = 259,
922
    INVALID_TOKEN = 260,
923
    ELSECOL = 261,
924
    DDOT = 262,
925
    GEQ = 263,
926
    LEQ = 264,
927
    NEQ = 265,
928
    AND = 266,
929
    OR = 267,
930
    PO = 268,
931
    PC = 269,
932
    NUM = 270,
933
    ENUM = 271,
934
    IP4 = 272,
935
    IP6 = 273,
936
    VPN_RD = 274,
937
    SYM = 275,
938
    TEXT = 276,
939
    PREFIX_DUMMY = 277,
940
    NMA = 278,
941
    DEFINE = 279,
942
    ON = 280,
943
    OFF = 281,
944
    YES = 282,
945
    NO = 283,
946
    S = 284,
947
    MS = 285,
948
    US = 286,
949
    PORT = 287,
950
    VPN = 288,
951
    MPLS = 289,
952
    FLOW4 = 290,
953
    FLOW6 = 291,
954
    DST = 292,
955
    SRC = 293,
956
    PROTO = 294,
957
    NEXT = 295,
958
    HEADER = 296,
959
    DPORT = 297,
960
    SPORT = 298,
961
    ICMP = 299,
962
    TYPE = 300,
963
    CODE = 301,
964
    TCP = 302,
965
    FLAGS = 303,
966
    LENGTH = 304,
967
    DSCP = 305,
968
    DONT_FRAGMENT = 306,
969
    IS_FRAGMENT = 307,
970
    FIRST_FRAGMENT = 308,
971
    LAST_FRAGMENT = 309,
972
    FRAGMENT = 310,
973
    LABEL = 311,
974
    OFFSET = 312,
975
    FUNCTION = 313,
976
    PRINT = 314,
977
    PRINTN = 315,
978
    UNSET = 316,
979
    RETURN = 317,
980
    ACCEPT = 318,
981
    REJECT = 319,
982
    ERROR = 320,
983
    QUITBIRD = 321,
984
    INT = 322,
985
    BOOL = 323,
986
    IP = 324,
987
    PREFIX = 325,
988
    RD = 326,
989
    PAIR = 327,
990
    QUAD = 328,
991
    EC = 329,
992
    LC = 330,
993
    SET = 331,
994
    STRING = 332,
995
    BGPMASK = 333,
996
    BGPPATH = 334,
997
    CLIST = 335,
998
    ECLIST = 336,
999
    LCLIST = 337,
1000
    IF = 338,
1001
    THEN = 339,
1002
    ELSE = 340,
1003
    CASE = 341,
1004
    TRUE = 342,
1005
    FALSE = 343,
1006
    RT = 344,
1007
    RO = 345,
1008
    UNKNOWN = 346,
1009
    GENERIC = 347,
1010
    FROM = 348,
1011
    GW = 349,
1012
    NET = 350,
1013
    MASK = 351,
1014
    SOURCE = 352,
1015
    SCOPE = 353,
1016
    DEST = 354,
1017
    IFNAME = 355,
1018
    IFINDEX = 356,
1019
    PREFERENCE = 357,
1020
    ROA_CHECK = 358,
1021
    ASN = 359,
1022
    IS_V4 = 360,
1023
    IS_V6 = 361,
1024
    LEN = 362,
1025
    MAXLEN = 363,
1026
    DEFINED = 364,
1027
    ADD = 365,
1028
    DELETE = 366,
1029
    CONTAINS = 367,
1030
    RESET = 368,
1031
    PREPEND = 369,
1032
    FIRST = 370,
1033
    LAST = 371,
1034
    LAST_NONAGGREGATED = 372,
1035
    MATCH = 373,
1036
    EMPTY = 374,
1037
    FILTER = 375,
1038
    WHERE = 376,
1039
    EVAL = 377,
1040
    BT_ASSERT = 378,
1041
    BT_TEST_SUITE = 379,
1042
    FORMAT = 380,
1043
    ROUTER = 381,
1044
    ID = 382,
1045
    PROTOCOL = 383,
1046
    TEMPLATE = 384,
1047
    DISABLED = 385,
1048
    DEBUG = 386,
1049
    ALL = 387,
1050
    DIRECT = 388,
1051
    INTERFACE = 389,
1052
    IMPORT = 390,
1053
    EXPORT = 391,
1054
    NONE = 392,
1055
    VRF = 393,
1056
    TABLE = 394,
1057
    STATES = 395,
1058
    ROUTES = 396,
1059
    FILTERS = 397,
1060
    IPV4 = 398,
1061
    IPV6 = 399,
1062
    VPN4 = 400,
1063
    VPN6 = 401,
1064
    ROA4 = 402,
1065
    ROA6 = 403,
1066
    RECEIVE = 404,
1067
    LIMIT = 405,
1068
    ACTION = 406,
1069
    WARN = 407,
1070
    BLOCK = 408,
1071
    RESTART = 409,
1072
    DISABLE = 410,
1073
    KEEP = 411,
1074
    FILTERED = 412,
1075
    PASSWORD = 413,
1076
    PASSIVE = 414,
1077
    TO = 415,
1078
    EVENTS = 416,
1079
    PACKETS = 417,
1080
    PROTOCOLS = 418,
1081
    INTERFACES = 419,
1082
    ALGORITHM = 420,
1083
    KEYED = 421,
1084
    HMAC = 422,
1085
    MD5 = 423,
1086
    SHA1 = 424,
1087
    SHA256 = 425,
1088
    SHA384 = 426,
1089
    SHA512 = 427,
1090
    PRIMARY = 428,
1091
    STATS = 429,
1092
    COUNT = 430,
1093
    BY = 431,
1094
    FOR = 432,
1095
    COMMANDS = 433,
1096
    PREEXPORT = 434,
1097
    NOEXPORT = 435,
1098
    GENERATE = 436,
1099
    BGP = 437,
1100
    PASSWORDS = 438,
1101
    DESCRIPTION = 439,
1102
    SORTED = 440,
1103
    RELOAD = 441,
1104
    IN = 442,
1105
    OUT = 443,
1106
    MRTDUMP = 444,
1107
    MESSAGES = 445,
1108
    RESTRICT = 446,
1109
    MEMORY = 447,
1110
    IGP_METRIC = 448,
1111
    CLASS = 449,
1112
    TIMEFORMAT = 450,
1113
    ISO = 451,
1114
    SHORT = 452,
1115
    LONG = 453,
1116
    ROUTE = 454,
1117
    BASE = 455,
1118
    LOG = 456,
1119
    GRACEFUL = 457,
1120
    WAIT = 458,
1121
    MAX = 459,
1122
    FLUSH = 460,
1123
    AS = 461,
1124
    IPV4_MC = 462,
1125
    IPV4_MPLS = 463,
1126
    IPV6_MC = 464,
1127
    IPV6_MPLS = 465,
1128
    VPN4_MC = 466,
1129
    VPN4_MPLS = 467,
1130
    VPN6_MC = 468,
1131
    VPN6_MPLS = 469,
1132
    PRI = 470,
1133
    SEC = 471,
1134
    SHOW = 472,
1135
    STATUS = 473,
1136
    SUMMARY = 474,
1137
    SYMBOLS = 475,
1138
    DUMP = 476,
1139
    RESOURCES = 477,
1140
    SOCKETS = 478,
1141
    NEIGHBORS = 479,
1142
    ATTRIBUTES = 480,
1143
    ECHO = 481,
1144
    ENABLE = 482,
1145
    BFD = 483,
1146
    MIN = 484,
1147
    IDLE = 485,
1148
    RX = 486,
1149
    TX = 487,
1150
    INTERVAL = 488,
1151
    MULTIPLIER = 489,
1152
    MULTIHOP = 490,
1153
    NEIGHBOR = 491,
1154
    DEV = 492,
1155
    LOCAL = 493,
1156
    AUTHENTICATION = 494,
1157
    SIMPLE = 495,
1158
    METICULOUS = 496,
1159
    SESSIONS = 497,
1160
    BABEL = 498,
1161
    METRIC = 499,
1162
    RXCOST = 500,
1163
    HELLO = 501,
1164
    UPDATE = 502,
1165
    WIRED = 503,
1166
    WIRELESS = 504,
1167
    BUFFER = 505,
1168
    CHECK = 506,
1169
    LINK = 507,
1170
    BABEL_METRIC = 508,
1171
    HOP = 509,
1172
    ENTRIES = 510,
1173
    HOLD = 511,
1174
    TIME = 512,
1175
    CONNECT = 513,
1176
    RETRY = 514,
1177
    KEEPALIVE = 515,
1178
    STARTUP = 516,
1179
    VIA = 517,
1180
    SELF = 518,
1181
    DEFAULT = 519,
1182
    PATH = 520,
1183
    START = 521,
1184
    DELAY = 522,
1185
    FORGET = 523,
1186
    AFTER = 524,
1187
    BGP_PATH = 525,
1188
    BGP_LOCAL_PREF = 526,
1189
    BGP_MED = 527,
1190
    BGP_ORIGIN = 528,
1191
    BGP_NEXT_HOP = 529,
1192
    BGP_ATOMIC_AGGR = 530,
1193
    BGP_AGGREGATOR = 531,
1194
    BGP_COMMUNITY = 532,
1195
    BGP_EXT_COMMUNITY = 533,
1196
    BGP_LARGE_COMMUNITY = 534,
1197
    ADDRESS = 535,
1198
    RR = 536,
1199
    RS = 537,
1200
    CLIENT = 538,
1201
    CLUSTER = 539,
1202
    AS4 = 540,
1203
    ADVERTISE = 541,
1204
    CAPABILITIES = 542,
1205
    PREFER = 543,
1206
    OLDER = 544,
1207
    MISSING = 545,
1208
    LLADDR = 546,
1209
    DROP = 547,
1210
    IGNORE = 548,
1211
    REFRESH = 549,
1212
    INTERPRET = 550,
1213
    COMMUNITIES = 551,
1214
    BGP_ORIGINATOR_ID = 552,
1215
    BGP_CLUSTER_LIST = 553,
1216
    IGP = 554,
1217
    GATEWAY = 555,
1218
    RECURSIVE = 556,
1219
    MED = 557,
1220
    TTL = 558,
1221
    SECURITY = 559,
1222
    DETERMINISTIC = 560,
1223
    SECONDARY = 561,
1224
    ALLOW = 562,
1225
    PATHS = 563,
1226
    AWARE = 564,
1227
    EXTENDED = 565,
1228
    SETKEY = 566,
1229
    STRICT = 567,
1230
    BIND = 568,
1231
    CONFEDERATION = 569,
1232
    MEMBER = 570,
1233
    MULTICAST = 571,
1234
    OSPF = 572,
1235
    V2 = 573,
1236
    V3 = 574,
1237
    OSPF_METRIC1 = 575,
1238
    OSPF_METRIC2 = 576,
1239
    OSPF_TAG = 577,
1240
    OSPF_ROUTER_ID = 578,
1241
    AREA = 579,
1242
    RFC1583COMPAT = 580,
1243
    STUB = 581,
1244
    TICK = 582,
1245
    COST = 583,
1246
    COST2 = 584,
1247
    RETRANSMIT = 585,
1248
    TRANSMIT = 586,
1249
    PRIORITY = 587,
1250
    DEAD = 588,
1251
    BROADCAST = 589,
1252
    BCAST = 590,
1253
    NONBROADCAST = 591,
1254
    NBMA = 592,
1255
    POINTOPOINT = 593,
1256
    PTP = 594,
1257
    POINTOMULTIPOINT = 595,
1258
    PTMP = 596,
1259
    CRYPTOGRAPHIC = 597,
1260
    ELIGIBLE = 598,
1261
    POLL = 599,
1262
    NETWORKS = 600,
1263
    HIDDEN = 601,
1264
    VIRTUAL = 602,
1265
    ONLY = 603,
1266
    LARGE = 604,
1267
    NORMAL = 605,
1268
    STUBNET = 606,
1269
    TAG = 607,
1270
    EXTERNAL = 608,
1271
    LSADB = 609,
1272
    ECMP = 610,
1273
    WEIGHT = 611,
1274
    NSSA = 612,
1275
    TRANSLATOR = 613,
1276
    STABILITY = 614,
1277
    GLOBAL = 615,
1278
    LSID = 616,
1279
    INSTANCE = 617,
1280
    REAL = 618,
1281
    NETMASK = 619,
1282
    MERGE = 620,
1283
    LSA = 621,
1284
    SUPPRESSION = 622,
1285
    RFC5838 = 623,
1286
    TOPOLOGY = 624,
1287
    STATE = 625,
1288
    PIPE = 626,
1289
    PEER = 627,
1290
    RADV = 628,
1291
    RA = 629,
1292
    MANAGED = 630,
1293
    OTHER = 631,
1294
    CONFIG = 632,
1295
    LINGER = 633,
1296
    MTU = 634,
1297
    REACHABLE = 635,
1298
    RETRANS = 636,
1299
    TIMER = 637,
1300
    CURRENT = 638,
1301
    VALID = 639,
1302
    PREFERRED = 640,
1303
    MULT = 641,
1304
    LIFETIME = 642,
1305
    SKIP = 643,
1306
    ONLINK = 644,
1307
    AUTONOMOUS = 645,
1308
    RDNSS = 646,
1309
    DNSSL = 647,
1310
    NS = 648,
1311
    DOMAIN = 649,
1312
    TRIGGER = 650,
1313
    SENSITIVE = 651,
1314
    LOW = 652,
1315
    MEDIUM = 653,
1316
    HIGH = 654,
1317
    PROPAGATE = 655,
1318
    RA_PREFERENCE = 656,
1319
    RA_LIFETIME = 657,
1320
    RIP = 658,
1321
    NG = 659,
1322
    INFINITY = 660,
1323
    TIMEOUT = 661,
1324
    GARBAGE = 662,
1325
    MODE = 663,
1326
    VERSION = 664,
1327
    SPLIT = 665,
1328
    HORIZON = 666,
1329
    POISON = 667,
1330
    REVERSE = 668,
1331
    ZERO = 669,
1332
    PLAINTEXT = 670,
1333
    RIP_METRIC = 671,
1334
    RIP_TAG = 672,
1335
    STATIC = 673,
1336
    PROHIBIT = 674,
1337
    BLACKHOLE = 675,
1338
    UNREACHABLE = 676,
1339
    KERNEL = 677,
1340
    KRT_PREFSRC = 678,
1341
    KRT_REALM = 679,
1342
    KRT_SCOPE = 680,
1343
    KRT_MTU = 681,
1344
    KRT_WINDOW = 682,
1345
    KRT_RTT = 683,
1346
    KRT_RTTVAR = 684,
1347
    KRT_SSTRESH = 685,
1348
    KRT_CWND = 686,
1349
    KRT_ADVMSS = 687,
1350
    KRT_REORDERING = 688,
1351
    KRT_HOPLIMIT = 689,
1352
    KRT_INITCWND = 690,
1353
    KRT_RTO_MIN = 691,
1354
    KRT_INITRWND = 692,
1355
    KRT_QUICKACK = 693,
1356
    KRT_LOCK_MTU = 694,
1357
    KRT_LOCK_WINDOW = 695,
1358
    KRT_LOCK_RTT = 696,
1359
    KRT_LOCK_RTTVAR = 697,
1360
    KRT_LOCK_SSTRESH = 698,
1361
    KRT_LOCK_CWND = 699,
1362
    KRT_LOCK_ADVMSS = 700,
1363
    KRT_LOCK_REORDERING = 701,
1364
    KRT_LOCK_HOPLIMIT = 702,
1365
    KRT_LOCK_RTO_MIN = 703,
1366
    KRT_FEATURE_ECN = 704,
1367
    KRT_FEATURE_ALLFRAG = 705,
1368
    SYSLOG = 706,
1369
    TRACE = 707,
1370
    INFO = 708,
1371
    REMOTE = 709,
1372
    WARNING = 710,
1373
    AUTH = 711,
1374
    FATAL = 712,
1375
    BUG = 713,
1376
    STDERR = 714,
1377
    SOFT = 715,
1378
    NAME = 716,
1379
    CONFIRM = 717,
1380
    UNDO = 718,
1381
    LATENCY = 719,
1382
    WATCHDOG = 720,
1383
    CONFIGURE = 721,
1384
    DOWN = 722,
1385
    PERSIST = 723,
1386
    SCAN = 724,
1387
    LEARN = 725,
1388
    DEVICE = 726,
1389
    KRT_SOURCE = 727,
1390
    KRT_METRIC = 728
1391
  };
1392
#endif
1393

    
1394
/* Value type.  */
1395
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1396

    
1397
union YYSTYPE
1398
{
1399
#line 815 "obj/conf/cf-parse.y" /* yacc.c:355  */
1400

    
1401
  uint i;
1402
  u32 i32;
1403
  u64 i64;
1404
  ip_addr a;
1405
  ip4_addr ip4;
1406
  ip6_addr ip6;
1407
  net_addr net;
1408
  net_addr *net_ptr;
1409
  struct symbol *s;
1410
  char *t;
1411
  struct rtable_config *r;
1412
  struct channel_config *cc;
1413
  struct f_inst *x;
1414
  struct filter *f;
1415
  struct f_tree *e;
1416
  struct f_trie *trie;
1417
  struct f_val v;
1418
  struct f_path_mask *h;
1419
  struct password_item *p;
1420
  struct rt_show_data *ra;
1421
  struct sym_show_data *sd;
1422
  struct lsadb_show_data *ld;
1423
  struct iface *iface;
1424
  void *g;
1425
  btime time;
1426
  struct f_prefix px;
1427
  struct proto_spec ps;
1428
  struct channel_limit cl;
1429
  struct timeformat *tf;
1430
  mpls_label_stack *mls;
1431

    
1432
#line 1433 "obj/conf/cf-parse.tab.c" /* yacc.c:355  */
1433
};
1434

    
1435
typedef union YYSTYPE YYSTYPE;
1436
# define YYSTYPE_IS_TRIVIAL 1
1437
# define YYSTYPE_IS_DECLARED 1
1438
#endif
1439

    
1440

    
1441
extern YYSTYPE cf_lval;
1442

    
1443
int cf_parse (void);
1444

    
1445
#endif /* !YY_CF_OBJ_CONF_CF_PARSE_TAB_H_INCLUDED  */
1446

    
1447
/* Copy the second part of user declarations.  */
1448

    
1449
#line 1450 "obj/conf/cf-parse.tab.c" /* yacc.c:358  */
1450

    
1451
#ifdef short
1452
# undef short
1453
#endif
1454

    
1455
#ifdef YYTYPE_UINT8
1456
typedef YYTYPE_UINT8 yytype_uint8;
1457
#else
1458
typedef unsigned char yytype_uint8;
1459
#endif
1460

    
1461
#ifdef YYTYPE_INT8
1462
typedef YYTYPE_INT8 yytype_int8;
1463
#else
1464
typedef signed char yytype_int8;
1465
#endif
1466

    
1467
#ifdef YYTYPE_UINT16
1468
typedef YYTYPE_UINT16 yytype_uint16;
1469
#else
1470
typedef unsigned short int yytype_uint16;
1471
#endif
1472

    
1473
#ifdef YYTYPE_INT16
1474
typedef YYTYPE_INT16 yytype_int16;
1475
#else
1476
typedef short int yytype_int16;
1477
#endif
1478

    
1479
#ifndef YYSIZE_T
1480
# ifdef __SIZE_TYPE__
1481
#  define YYSIZE_T __SIZE_TYPE__
1482
# elif defined size_t
1483
#  define YYSIZE_T size_t
1484
# elif ! defined YYSIZE_T
1485
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1486
#  define YYSIZE_T size_t
1487
# else
1488
#  define YYSIZE_T unsigned int
1489
# endif
1490
#endif
1491

    
1492
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1493

    
1494
#ifndef YY_
1495
# if defined YYENABLE_NLS && YYENABLE_NLS
1496
#  if ENABLE_NLS
1497
#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1498
#   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1499
#  endif
1500
# endif
1501
# ifndef YY_
1502
#  define YY_(Msgid) Msgid
1503
# endif
1504
#endif
1505

    
1506
#ifndef YY_ATTRIBUTE
1507
# if (defined __GNUC__                                               \
1508
      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
1509
     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
1510
#  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
1511
# else
1512
#  define YY_ATTRIBUTE(Spec) /* empty */
1513
# endif
1514
#endif
1515

    
1516
#ifndef YY_ATTRIBUTE_PURE
1517
# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
1518
#endif
1519

    
1520
#ifndef YY_ATTRIBUTE_UNUSED
1521
# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
1522
#endif
1523

    
1524
#if !defined _Noreturn \
1525
     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
1526
# if defined _MSC_VER && 1200 <= _MSC_VER
1527
#  define _Noreturn __declspec (noreturn)
1528
# else
1529
#  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
1530
# endif
1531
#endif
1532

    
1533
/* Suppress unused-variable warnings by "using" E.  */
1534
#if ! defined lint || defined __GNUC__
1535
# define YYUSE(E) ((void) (E))
1536
#else
1537
# define YYUSE(E) /* empty */
1538
#endif
1539

    
1540
#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1541
/* Suppress an incorrect diagnostic about yylval being uninitialized.  */
1542
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1543
    _Pragma ("GCC diagnostic push") \
1544
    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
1545
    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1546
# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1547
    _Pragma ("GCC diagnostic pop")
1548
#else
1549
# define YY_INITIAL_VALUE(Value) Value
1550
#endif
1551
#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1552
# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1553
# define YY_IGNORE_MAYBE_UNINITIALIZED_END
1554
#endif
1555
#ifndef YY_INITIAL_VALUE
1556
# define YY_INITIAL_VALUE(Value) /* Nothing. */
1557
#endif
1558

    
1559

    
1560
#if ! defined yyoverflow || YYERROR_VERBOSE
1561

    
1562
/* The parser invokes alloca or malloc; define the necessary symbols.  */
1563

    
1564
# ifdef YYSTACK_USE_ALLOCA
1565
#  if YYSTACK_USE_ALLOCA
1566
#   ifdef __GNUC__
1567
#    define YYSTACK_ALLOC __builtin_alloca
1568
#   elif defined __BUILTIN_VA_ARG_INCR
1569
#    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1570
#   elif defined _AIX
1571
#    define YYSTACK_ALLOC __alloca
1572
#   elif defined _MSC_VER
1573
#    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1574
#    define alloca _alloca
1575
#   else
1576
#    define YYSTACK_ALLOC alloca
1577
#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1578
#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1579
      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
1580
#     ifndef EXIT_SUCCESS
1581
#      define EXIT_SUCCESS 0
1582
#     endif
1583
#    endif
1584
#   endif
1585
#  endif
1586
# endif
1587

    
1588
# ifdef YYSTACK_ALLOC
1589
   /* Pacify GCC's 'empty if-body' warning.  */
1590
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1591
#  ifndef YYSTACK_ALLOC_MAXIMUM
1592
    /* The OS might guarantee only one guard page at the bottom of the stack,
1593
       and a page size can be as small as 4096 bytes.  So we cannot safely
1594
       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
1595
       to allow for a few compiler-allocated temporary stack slots.  */
1596
#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1597
#  endif
1598
# else
1599
#  define YYSTACK_ALLOC YYMALLOC
1600
#  define YYSTACK_FREE YYFREE
1601
#  ifndef YYSTACK_ALLOC_MAXIMUM
1602
#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1603
#  endif
1604
#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
1605
       && ! ((defined YYMALLOC || defined malloc) \
1606
             && (defined YYFREE || defined free)))
1607
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1608
#   ifndef EXIT_SUCCESS
1609
#    define EXIT_SUCCESS 0
1610
#   endif
1611
#  endif
1612
#  ifndef YYMALLOC
1613
#   define YYMALLOC malloc
1614
#   if ! defined malloc && ! defined EXIT_SUCCESS
1615
void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1616
#   endif
1617
#  endif
1618
#  ifndef YYFREE
1619
#   define YYFREE free
1620
#   if ! defined free && ! defined EXIT_SUCCESS
1621
void free (void *); /* INFRINGES ON USER NAME SPACE */
1622
#   endif
1623
#  endif
1624
# endif
1625
#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
1626

    
1627

    
1628
#if (! defined yyoverflow \
1629
     && (! defined __cplusplus \
1630
         || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1631

    
1632
/* A type that is properly aligned for any stack member.  */
1633
union yyalloc
1634
{
1635
  yytype_int16 yyss_alloc;
1636
  YYSTYPE yyvs_alloc;
1637
};
1638

    
1639
/* The size of the maximum gap between one aligned stack and the next.  */
1640
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1641

    
1642
/* The size of an array large to enough to hold all stacks, each with
1643
   N elements.  */
1644
# define YYSTACK_BYTES(N) \
1645
     ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1646
      + YYSTACK_GAP_MAXIMUM)
1647

    
1648
# define YYCOPY_NEEDED 1
1649

    
1650
/* Relocate STACK from its old location to the new one.  The
1651
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
1652
   elements in the stack, and YYPTR gives the new location of the
1653
   stack.  Advance YYPTR to a properly aligned location for the next
1654
   stack.  */
1655
# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
1656
    do                                                                  \
1657
      {                                                                 \
1658
        YYSIZE_T yynewbytes;                                            \
1659
        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
1660
        Stack = &yyptr->Stack_alloc;                                    \
1661
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1662
        yyptr += yynewbytes / sizeof (*yyptr);                          \
1663
      }                                                                 \
1664
    while (0)
1665

    
1666
#endif
1667

    
1668
#if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1669
/* Copy COUNT objects from SRC to DST.  The source and destination do
1670
   not overlap.  */
1671
# ifndef YYCOPY
1672
#  if defined __GNUC__ && 1 < __GNUC__
1673
#   define YYCOPY(Dst, Src, Count) \
1674
      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
1675
#  else
1676
#   define YYCOPY(Dst, Src, Count)              \
1677
      do                                        \
1678
        {                                       \
1679
          YYSIZE_T yyi;                         \
1680
          for (yyi = 0; yyi < (Count); yyi++)   \
1681
            (Dst)[yyi] = (Src)[yyi];            \
1682
        }                                       \
1683
      while (0)
1684
#  endif
1685
# endif
1686
#endif /* !YYCOPY_NEEDED */
1687

    
1688
/* YYFINAL -- State number of the termination state.  */
1689
#define YYFINAL  67
1690
/* YYLAST -- Last index in YYTABLE.  */
1691
#define YYLAST   4129
1692

    
1693
/* YYNTOKENS -- Number of terminals.  */
1694
#define YYNTOKENS  495
1695
/* YYNNTS -- Number of nonterminals.  */
1696
#define YYNNTS  372
1697
/* YYNRULES -- Number of rules.  */
1698
#define YYNRULES  1242
1699
/* YYNSTATES -- Number of states.  */
1700
#define YYNSTATES  2247
1701

    
1702
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
1703
   by yylex, with out-of-bounds checking.  */
1704
#define YYUNDEFTOK  2
1705
#define YYMAXUTOK   728
1706

    
1707
#define YYTRANSLATE(YYX)                                                \
1708
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1709

    
1710
/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1711
   as returned by yylex, without out-of-bounds checking.  */
1712
static const yytype_uint16 yytranslate[] =
1713
{
1714
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1715
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1716
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1717
       2,     2,     2,    33,     2,     2,     2,    32,     2,     2,
1718
     486,   487,    30,    28,   489,    29,    34,    31,     2,     2,
1719
       2,     2,     2,     2,     2,     2,     2,     2,   488,   485,
1720
      24,    23,    25,   492,     2,     2,     2,     2,     2,     2,
1721
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1722
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1723
       2,   493,     2,   494,     2,     2,     2,     2,     2,     2,
1724
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1725
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1726
       2,     2,     2,   490,     2,   491,    26,     2,     2,     2,
1727
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1728
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1729
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1730
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1731
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1732
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1733
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1734
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1735
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1736
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1737
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1738
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1739
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
1740
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1741
      15,    16,    17,    18,    19,    20,    21,    22,    27,    35,
1742
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1743
      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1744
      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1745
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1746
      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1747
      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1748
      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1749
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1750
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1751
     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1752
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1753
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1754
     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1755
     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1756
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1757
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1758
     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1759
     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1760
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1761
     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1762
     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1763
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1764
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
1765
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
1766
     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
1767
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
1768
     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1769
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
1770
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1771
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
1772
     336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
1773
     346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
1774
     356,   357,   358,   359,   360,   361,   362,   363,   364,   365,
1775
     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
1776
     376,   377,   378,   379,   380,   381,   382,   383,   384,   385,
1777
     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
1778
     396,   397,   398,   399,   400,   401,   402,   403,   404,   405,
1779
     406,   407,   408,   409,   410,   411,   412,   413,   414,   415,
1780
     416,   417,   418,   419,   420,   421,   422,   423,   424,   425,
1781
     426,   427,   428,   429,   430,   431,   432,   433,   434,   435,
1782
     436,   437,   438,   439,   440,   441,   442,   443,   444,   445,
1783
     446,   447,   448,   449,   450,   451,   452,   453,   454,   455,
1784
     456,   457,   458,   459,   460,   461,   462,   463,   464,   465,
1785
     466,   467,   468,   469,   470,   471,   472,   473,   474,   475,
1786
     476,   477,   478,   479,   480,   481,   482,   483,   484
1787
};
1788

    
1789
#if YYDEBUG
1790
  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
1791
static const yytype_uint16 yyrline[] =
1792
{
1793
       0,  1042,  1042,  1043,  1046,  1048,  1056,  1065,  1066,  1067,
1794
    1074,  1075,  1076,  1082,  1083,  1084,  1085,  1086,  1087,  1094,
1795
    1095,  1096,  1103,  1104,  1111,  1115,  1121,  1131,  1144,  1150,
1796
    1156,  1164,  1172,  1178,  1178,  1179,  1179,  1180,  1180,  1183,
1797
    1184,  1185,  1186,  1187,  1194,  1195,  1203,  1204,  1212,  1213,
1798
    1221,  1222,  1223,  1224,  1225,  1235,  1243,  1244,  1253,  1261,
1799
    1262,  1269,  1270,  1279,  1280,  1281,  1282,  1283,  1284,  1285,
1800
    1286,  1290,  1291,  1295,  1296,  1297,  1298,  1299,  1300,  1301,
1801
    1302,  1303,  1306,  1307,  1308,  1309,  1312,  1313,  1317,  1321,
1802
    1325,  1326,  1330,  1334,  1343,  1344,  1348,  1352,  1356,  1363,
1803
    1364,  1368,  1369,  1370,  1371,  1375,  1378,  1381,  1387,  1391,
1804
    1392,  1393,  1397,  1401,  1407,  1408,  1409,  1410,  1413,  1415,
1805
    1418,  1420,  1424,  1431,  1432,  1434,  1440,  1446,  1446,  1452,
1806
    1452,  1462,  1466,  1480,  1481,  1482,  1483,  1484,  1485,  1486,
1807
    1487,  1488,  1489,  1490,  1491,  1492,  1493,  1494,  1495,  1517,
1808
    1528,  1529,  1536,  1537,  1544,  1553,  1557,  1561,  1585,  1586,
1809
    1590,  1603,  1603,  1619,  1620,  1623,  1624,  1628,  1631,  1640,
1810
    1641,  1654,  1655,  1656,  1657,  1661,  1669,  1670,  1671,  1672,
1811
    1676,  1679,  1680,  1681,  1682,  1683,  1684,  1685,  1686,  1687,
1812
    1688,  1693,  1694,  1695,  1696,  1700,  1701,  1702,  1706,  1707,
1813
    1708,  1709,  1710,  1711,  1712,  1713,  1718,  1719,  1720,  1721,
1814
    1722,  1726,  1727,  1728,  1729,  1730,  1734,  1735,  1739,  1740,
1815
    1744,  1745,  1746,  1747,  1755,  1756,  1759,  1760,  1767,  1779,
1816
    1780,  1784,  1788,  1789,  1790,  1791,  1792,  1793,  1797,  1798,
1817
    1799,  1800,  1801,  1802,  1803,  1804,  1805,  1806,  1807,  1811,
1818
    1812,  1813,  1823,  1827,  1850,  1864,  1865,  1866,  1867,  1868,
1819
    1869,  1870,  1871,  1872,  1876,  1877,  1878,  1879,  1880,  1881,
1820
    1882,  1883,  1884,  1885,  1886,  1887,  1888,  1889,  1890,  1891,
1821
    1892,  1894,  1895,  1896,  1898,  1900,  1902,  1904,  1905,  1906,
1822
    1907,  1908,  1909,  1910,  1911,  1912,  1913,  1914,  1924,  1925,
1823
    1926,  1927,  1928,  1929,  1930,  1931,  1933,  1934,  1936,  1941,
1824
    1964,  1965,  1966,  1967,  1968,  1969,  1973,  1976,  1977,  1978,
1825
    1986,  1993,  2002,  2003,  2007,  2013,  2023,  2032,  2038,  2043,
1826
    2050,  2055,  2061,  2062,  2063,  2070,  2071,  2072,  2073,  2074,
1827
    2075,  2079,  2090,  2091,  2095,  2096,  2097,  2098,  2109,  2115,
1828
    2116,  2117,  2118,  2119,  2120,  2121,  2122,  2123,  2133,  2134,
1829
    2137,  2149,  2150,  2154,  2160,  2164,  2173,  2182,  2184,  2185,
1830
    2186,  2187,  2188,  2189,  2193,  2199,  2204,  2205,  2206,  2207,
1831
    2208,  2209,  2210,  2213,  2215,  2218,  2220,  2224,  2231,  2235,
1832
    2242,  2243,  2244,  2245,  2249,  2250,  2251,  2252,  2253,  2257,
1833
    2258,  2264,  2265,  2272,  2273,  2274,  2275,  2279,  2280,  2281,
1834
    2282,  2283,  2284,  2285,  2286,  2290,  2297,  2305,  2306,  2310,
1835
    2311,  2315,  2320,  2321,  2325,  2327,  2335,  2339,  2340,  2346,
1836
    2353,  2354,  2355,  2356,  2357,  2361,  2369,  2375,  2376,  2377,
1837
    2381,  2382,  2386,  2387,  2388,  2389,  2390,  2391,  2397,  2398,
1838
    2399,  2403,  2404,  2408,  2409,  2415,  2416,  2419,  2421,  2425,
1839
    2426,  2430,  2450,  2451,  2452,  2453,  2454,  2455,  2456,  2457,
1840
    2458,  2462,  2463,  2464,  2465,  2466,  2467,  2468,  2469,  2470,
1841
    2471,  2477,  2480,  2483,  2486,  2490,  2491,  2494,  2497,  2501,
1842
    2505,  2510,  2515,  2521,  2527,  2534,  2539,  2544,  2548,  2552,
1843
    2556,  2566,  2577,  2586,  2590,  2597,  2601,  2602,  2603,  2607,
1844
    2611,  2625,  2626,  2627,  2628,  2631,  2632,  2633,  2638,  2639,
1845
    2640,  2641,  2642,  2643,  2644,  2645,  2646,  2647,  2648,  2649,
1846
    2650,  2651,  2652,  2653,  2654,  2655,  2656,  2660,  2664,  2667,
1847
    2668,  2669,  2670,  2671,  2672,  2677,  2679,  2681,  2683,  2685,
1848
    2687,  2689,  2691,  2694,  2698,  2704,  2705,  2706,  2710,  2711,
1849
    2717,  2719,  2721,  2723,  2725,  2727,  2731,  2735,  2738,  2742,
1850
    2743,  2744,  2748,  2749,  2750,  2758,  2770,  2771,  2772,  2773,
1851
    2776,  2778,  2782,  2786,  2800,  2820,  2821,  2822,  2823,  2824,
1852
    2825,  2826,  2827,  2831,  2832,  2833,  2834,  2835,  2836,  2839,
1853
    2841,  2844,  2846,  2850,  2853,  2858,  2859,  2860,  2864,  2865,
1854
    2869,  2870,  2873,  2892,  2898,  2906,  2907,  2908,  2911,  2913,
1855
    2917,  2921,  2935,  2960,  2961,  2962,  2963,  2964,  2965,  2966,
1856
    2967,  2968,  2969,  2970,  2971,  2972,  2973,  2974,  2977,  2979,
1857
    2982,  2984,  2989,  2994,  2997,  3000,  3003,  3009,  3035,  3037,
1858
    3038,  3041,  3043,  3044,  3048,  3049,  3050,  3051,  3052,  3056,
1859
    3057,  3063,  3064,  3065,  3066,  3067,  3068,  3069,  3070,  3071,
1860
    3072,  3073,  3074,  3075,  3076,  3077,  3078,  3079,  3080,  3081,
1861
    3082,  3083,  3084,  3085,  3086,  3087,  3088,  3089,  3090,  3091,
1862
    3092,  3093,  3094,  3095,  3096,  3097,  3098,  3099,  3100,  3101,
1863
    3102,  3103,  3104,  3105,  3106,  3110,  3111,  3112,  3113,  3114,
1864
    3115,  3116,  3117,  3118,  3119,  3120,  3121,  3124,  3146,  3147,
1865
    3148,  3149,  3150,  3151,  3152,  3153,  3154,  3155,  3156,  3157,
1866
    3158,  3159,  3160,  3161,  3174,  3176,  3179,  3181,  3185,  3192,
1867
    3204,  3205,  3206,  3209,  3223,  3224,  3228,  3229,  3233,  3243,
1868
    3246,  3247,  3248,  3249,  3250,  3251,  3252,  3253,  3254,  3255,
1869
    3256,  3259,  3274,  3277,  3279,  3283,  3284,  3285,  3286,  3287,
1870
    3288,  3289,  3290,  3291,  3292,  3292,  3293,  3293,  3294,  3295,
1871
    3296,  3300,  3301,  3305,  3313,  3315,  3319,  3320,  3321,  3325,
1872
    3326,  3329,  3331,  3334,  3335,  3336,  3337,  3338,  3339,  3340,
1873
    3341,  3342,  3343,  3344,  3347,  3366,  3367,  3368,  3369,  3370,
1874
    3371,  3372,  3373,  3374,  3375,  3376,  3377,  3378,  3379,  3380,
1875
    3381,  3382,  3383,  3384,  3385,  3386,  3387,  3388,  3389,  3390,
1876
    3391,  3392,  3393,  3394,  3395,  3396,  3397,  3398,  3399,  3400,
1877
    3401,  3402,  3403,  3406,  3408,  3411,  3413,  3421,  3423,  3424,
1878
    3427,  3429,  3433,  3434,  3437,  3447,  3468,  3470,  3474,  3474,
1879
    3477,  3479,  3482,  3484,  3488,  3493,  3496,  3499,  3504,  3507,
1880
    3512,  3515,  3519,  3523,  3526,  3527,  3528,  3529,  3530,  3531,
1881
    3532,  3533,  3539,  3548,  3549,  3550,  3551,  3557,  3568,  3569,
1882
    3570,  3571,  3572,  3572,  3573,  3573,  3574,  3575,  3578,  3580,
1883
    3584,  3588,  3611,  3612,  3613,  3614,  3615,  3616,  3617,  3618,
1884
    3619,  3620,  3625,  3629,  3630,  3631,  3632,  3633,  3634,  3634,
1885
    3635,  3635,  3636,  3637,  3641,  3642,  3643,  3646,  3684,  3686,
1886
    3689,  3691,  3695,  3698,  3710,  3711,  3712,  3713,  3717,  3724,
1887
    3732,  3734,  3737,  3739,  3743,  3747,  3757,  3762,  3763,  3764,
1888
    3768,  3780,  3782,  3786,  3787,  3791,  3804,  3809,  3810,  3811,
1889
    3815,  3827,  3829,  3833,  3834,  3839,  3840,  3844,  3845,  3853,
1890
    3854,  3857,  3871,  3872,  3873,  3874,  3875,  3876,  3879,  3881,
1891
    3885,  3889,  3913,  3943,  3944,  3945,  3946,  3947,  3948,  3949,
1892
    3953,  3954,  3955,  3956,  3957,  3958,  3959,  3960,  3961,  3962,
1893
    3963,  3964,  3965,  3966,  3967,  3968,  3969,  3970,  3974,  3975,
1894
    3976,  3977,  3980,  3982,  3985,  3987,  3991,  3997,  4000,  4007,
1895
    4014,  4015,  4016,  4017,  4018,  4026,  4030,  4035,  4040,  4043,
1896
    4046,  4050,  4056,  4057,  4060,  4071,  4072,  4076,  4081,  4082,
1897
    4083,  4084,  4085,  4086,  4090,  4093,  4095,  4098,  4100,  4104,
1898
    4111,  4112,  4123,  4132,  4133,  4137,  4142,  4143,  4147,  4148,
1899
    4152,  4153,  4157,  4158,  4159,  4160,  4161,  4162,  4163,  4164,
1900
    4165,  4171,  4172,  4182,  4183,  4184,  4185,  4193,  4196,  4203,
1901
    4206,  4209,  4212,  4216,  4217,  4221,  4222,  4223,  4231,  4238,
1902
    4239,  4243,  4244,  4245,  4246,  4250,  4257,  4258,  4259,  4271,
1903
    4276,  4277,  4278,  4285,  4292,  4295,  4297,  4300,  4302,  4306,
1904
    4314,  4314,  4314,  4314,  4314,  4314,  4314,  4314,  4314,  4314,
1905
    4314,  4314,  4314,  4314,  4314,  4315,  4315,  4316,  4316,  4317,
1906
    4318,  4319,  4320,  4321,  4322,  4323,  4324,  4325,  4326,  4327,
1907
    4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,
1908
    4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,
1909
    4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,
1910
    4328,  4328,  4328,  4328,  4328,  4328,  4328,  4328,  4329,  4329,
1911
    4329,  4329,  4329,  4329,  4329,  4329,  4329,  4329,  4329,  4330,
1912
    4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,
1913
    4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,
1914
    4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,
1915
    4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,
1916
    4330,  4330,  4330,  4330,  4330,  4330,  4330,  4330,  4331,  4331,
1917
    4331,  4332,  4332
1918
};
1919
#endif
1920

    
1921
#if YYDEBUG || YYERROR_VERBOSE || 0
1922
/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1923
   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
1924
static const char *const yytname[] =
1925
{
1926
  "$end", "error", "$undefined", "END", "CLI_MARKER", "INVALID_TOKEN",
1927
  "ELSECOL", "DDOT", "GEQ", "LEQ", "NEQ", "AND", "OR", "PO", "PC", "NUM",
1928
  "ENUM", "IP4", "IP6", "VPN_RD", "SYM", "TEXT", "PREFIX_DUMMY", "'='",
1929
  "'<'", "'>'", "'~'", "NMA", "'+'", "'-'", "'*'", "'/'", "'%'", "'!'",
1930
  "'.'", "DEFINE", "ON", "OFF", "YES", "NO", "S", "MS", "US", "PORT",
1931
  "VPN", "MPLS", "FLOW4", "FLOW6", "DST", "SRC", "PROTO", "NEXT", "HEADER",
1932
  "DPORT", "SPORT", "ICMP", "TYPE", "CODE", "TCP", "FLAGS", "LENGTH",
1933
  "DSCP", "DONT_FRAGMENT", "IS_FRAGMENT", "FIRST_FRAGMENT",
1934
  "LAST_FRAGMENT", "FRAGMENT", "LABEL", "OFFSET", "FUNCTION", "PRINT",
1935
  "PRINTN", "UNSET", "RETURN", "ACCEPT", "REJECT", "ERROR", "QUITBIRD",
1936
  "INT", "BOOL", "IP", "PREFIX", "RD", "PAIR", "QUAD", "EC", "LC", "SET",
1937
  "STRING", "BGPMASK", "BGPPATH", "CLIST", "ECLIST", "LCLIST", "IF",
1938
  "THEN", "ELSE", "CASE", "TRUE", "FALSE", "RT", "RO", "UNKNOWN",
1939
  "GENERIC", "FROM", "GW", "NET", "MASK", "SOURCE", "SCOPE", "DEST",
1940
  "IFNAME", "IFINDEX", "PREFERENCE", "ROA_CHECK", "ASN", "IS_V4", "IS_V6",
1941
  "LEN", "MAXLEN", "DEFINED", "ADD", "DELETE", "CONTAINS", "RESET",
1942
  "PREPEND", "FIRST", "LAST", "LAST_NONAGGREGATED", "MATCH", "EMPTY",
1943
  "FILTER", "WHERE", "EVAL", "BT_ASSERT", "BT_TEST_SUITE", "FORMAT",
1944
  "ROUTER", "ID", "PROTOCOL", "TEMPLATE", "DISABLED", "DEBUG", "ALL",
1945
  "DIRECT", "INTERFACE", "IMPORT", "EXPORT", "NONE", "VRF", "TABLE",
1946
  "STATES", "ROUTES", "FILTERS", "IPV4", "IPV6", "VPN4", "VPN6", "ROA4",
1947
  "ROA6", "RECEIVE", "LIMIT", "ACTION", "WARN", "BLOCK", "RESTART",
1948
  "DISABLE", "KEEP", "FILTERED", "PASSWORD", "PASSIVE", "TO", "EVENTS",
1949
  "PACKETS", "PROTOCOLS", "INTERFACES", "ALGORITHM", "KEYED", "HMAC",
1950
  "MD5", "SHA1", "SHA256", "SHA384", "SHA512", "PRIMARY", "STATS", "COUNT",
1951
  "BY", "FOR", "COMMANDS", "PREEXPORT", "NOEXPORT", "GENERATE", "BGP",
1952
  "PASSWORDS", "DESCRIPTION", "SORTED", "RELOAD", "IN", "OUT", "MRTDUMP",
1953
  "MESSAGES", "RESTRICT", "MEMORY", "IGP_METRIC", "CLASS", "TIMEFORMAT",
1954
  "ISO", "SHORT", "LONG", "ROUTE", "BASE", "LOG", "GRACEFUL", "WAIT",
1955
  "MAX", "FLUSH", "AS", "IPV4_MC", "IPV4_MPLS", "IPV6_MC", "IPV6_MPLS",
1956
  "VPN4_MC", "VPN4_MPLS", "VPN6_MC", "VPN6_MPLS", "PRI", "SEC", "SHOW",
1957
  "STATUS", "SUMMARY", "SYMBOLS", "DUMP", "RESOURCES", "SOCKETS",
1958
  "NEIGHBORS", "ATTRIBUTES", "ECHO", "ENABLE", "BFD", "MIN", "IDLE", "RX",
1959
  "TX", "INTERVAL", "MULTIPLIER", "MULTIHOP", "NEIGHBOR", "DEV", "LOCAL",
1960
  "AUTHENTICATION", "SIMPLE", "METICULOUS", "SESSIONS", "BABEL", "METRIC",
1961
  "RXCOST", "HELLO", "UPDATE", "WIRED", "WIRELESS", "BUFFER", "CHECK",
1962
  "LINK", "BABEL_METRIC", "HOP", "ENTRIES", "HOLD", "TIME", "CONNECT",
1963
  "RETRY", "KEEPALIVE", "STARTUP", "VIA", "SELF", "DEFAULT", "PATH",
1964
  "START", "DELAY", "FORGET", "AFTER", "BGP_PATH", "BGP_LOCAL_PREF",
1965
  "BGP_MED", "BGP_ORIGIN", "BGP_NEXT_HOP", "BGP_ATOMIC_AGGR",
1966
  "BGP_AGGREGATOR", "BGP_COMMUNITY", "BGP_EXT_COMMUNITY",
1967
  "BGP_LARGE_COMMUNITY", "ADDRESS", "RR", "RS", "CLIENT", "CLUSTER", "AS4",
1968
  "ADVERTISE", "CAPABILITIES", "PREFER", "OLDER", "MISSING", "LLADDR",
1969
  "DROP", "IGNORE", "REFRESH", "INTERPRET", "COMMUNITIES",
1970
  "BGP_ORIGINATOR_ID", "BGP_CLUSTER_LIST", "IGP", "GATEWAY", "RECURSIVE",
1971
  "MED", "TTL", "SECURITY", "DETERMINISTIC", "SECONDARY", "ALLOW", "PATHS",
1972
  "AWARE", "EXTENDED", "SETKEY", "STRICT", "BIND", "CONFEDERATION",
1973
  "MEMBER", "MULTICAST", "OSPF", "V2", "V3", "OSPF_METRIC1",
1974
  "OSPF_METRIC2", "OSPF_TAG", "OSPF_ROUTER_ID", "AREA", "RFC1583COMPAT",
1975
  "STUB", "TICK", "COST", "COST2", "RETRANSMIT", "TRANSMIT", "PRIORITY",
1976
  "DEAD", "BROADCAST", "BCAST", "NONBROADCAST", "NBMA", "POINTOPOINT",
1977
  "PTP", "POINTOMULTIPOINT", "PTMP", "CRYPTOGRAPHIC", "ELIGIBLE", "POLL",
1978
  "NETWORKS", "HIDDEN", "VIRTUAL", "ONLY", "LARGE", "NORMAL", "STUBNET",
1979
  "TAG", "EXTERNAL", "LSADB", "ECMP", "WEIGHT", "NSSA", "TRANSLATOR",
1980
  "STABILITY", "GLOBAL", "LSID", "INSTANCE", "REAL", "NETMASK", "MERGE",
1981
  "LSA", "SUPPRESSION", "RFC5838", "TOPOLOGY", "STATE", "PIPE", "PEER",
1982
  "RADV", "RA", "MANAGED", "OTHER", "CONFIG", "LINGER", "MTU", "REACHABLE",
1983
  "RETRANS", "TIMER", "CURRENT", "VALID", "PREFERRED", "MULT", "LIFETIME",
1984
  "SKIP", "ONLINK", "AUTONOMOUS", "RDNSS", "DNSSL", "NS", "DOMAIN",
1985
  "TRIGGER", "SENSITIVE", "LOW", "MEDIUM", "HIGH", "PROPAGATE",
1986
  "RA_PREFERENCE", "RA_LIFETIME", "RIP", "NG", "INFINITY", "TIMEOUT",
1987
  "GARBAGE", "MODE", "VERSION", "SPLIT", "HORIZON", "POISON", "REVERSE",
1988
  "ZERO", "PLAINTEXT", "RIP_METRIC", "RIP_TAG", "STATIC", "PROHIBIT",
1989
  "BLACKHOLE", "UNREACHABLE", "KERNEL", "KRT_PREFSRC", "KRT_REALM",
1990
  "KRT_SCOPE", "KRT_MTU", "KRT_WINDOW", "KRT_RTT", "KRT_RTTVAR",
1991
  "KRT_SSTRESH", "KRT_CWND", "KRT_ADVMSS", "KRT_REORDERING",
1992
  "KRT_HOPLIMIT", "KRT_INITCWND", "KRT_RTO_MIN", "KRT_INITRWND",
1993
  "KRT_QUICKACK", "KRT_LOCK_MTU", "KRT_LOCK_WINDOW", "KRT_LOCK_RTT",
1994
  "KRT_LOCK_RTTVAR", "KRT_LOCK_SSTRESH", "KRT_LOCK_CWND",
1995
  "KRT_LOCK_ADVMSS", "KRT_LOCK_REORDERING", "KRT_LOCK_HOPLIMIT",
1996
  "KRT_LOCK_RTO_MIN", "KRT_FEATURE_ECN", "KRT_FEATURE_ALLFRAG", "SYSLOG",
1997
  "TRACE", "INFO", "REMOTE", "WARNING", "AUTH", "FATAL", "BUG", "STDERR",
1998
  "SOFT", "NAME", "CONFIRM", "UNDO", "LATENCY", "WATCHDOG", "CONFIGURE",
1999
  "DOWN", "PERSIST", "SCAN", "LEARN", "DEVICE", "KRT_SOURCE", "KRT_METRIC",
2000
  "';'", "'('", "')'", "':'", "','", "'{'", "'}'", "'?'", "'['", "']'",
2001
  "$accept", "config", "conf_entries", "definition", "expr", "expr_us",
2002
  "bool", "ipa", "ipa_scope", "pxlen4", "net_ip4_", "net_ip6_",
2003
  "net_vpn4_", "net_vpn6_", "net_roa4_", "net_roa6_", "net_mpls_",
2004
  "net_ip_", "net_vpn_", "net_roa_", "net_", "net_ip6", "net_ip",
2005
  "net_any", "net_or_ipa", "label_stack_start", "label_stack", "time",
2006
  "text", "opttext", "flow_num_op", "flow_logic_op", "flow_num_type_",
2007
  "flow_num_type", "flow_flag_type", "flow_frag_type", "flow_label_type",
2008
  "flow_srcdst", "flow_num_opts", "flow_num_opt_ext_expr",
2009
  "flow_num_opt_ext", "flow_bmk_opts", "flow_neg", "flow_frag_val",
2010
  "flow_frag_opts", "flow4_item", "flow6_item", "flow4_opts", "flow6_opts",
2011
  "flow_builder_init", "flow_builder_set_ipv4", "flow_builder_set_ipv6",
2012
  "net_flow4_", "net_flow6_", "net_flow_", "filter_def", "$@1",
2013
  "filter_eval", "bt_test_suite", "type", "one_decl", "decls", "declsn",
2014
  "filter_body", "filter", "where_filter", "function_params",
2015
  "function_body", "function_def", "$@2", "cmds", "cmds_int", "block",
2016
  "fipa", "set_atom", "switch_atom", "cnum", "pair_item", "ec_kind",
2017
  "ec_item", "lc_item", "set_item", "switch_item", "set_items",
2018
  "switch_items", "fprefix", "fprefix_set", "switch_body", "bgp_path_expr",
2019
  "bgp_path", "bgp_path_tail", "constant", "constructor", "rtadot",
2020
  "function_call", "symbol", "static_attr", "term", "break_command",
2021
  "print_one", "print_list", "var_listn", "var_list", "cmd",
2022
  "get_cf_position", "rtrid", "idval", "gr_opts", "net_type",
2023
  "table_sorted", "table", "proto_start", "proto_name", "proto_item",
2024
  "channel_start", "channel_item", "channel_opts", "channel_opt_list",
2025
  "channel_end", "proto_channel", "rtable", "imexport", "limit_action",
2026
  "limit_spec", "debug_default", "timeformat_which", "timeformat_spec",
2027
  "timeformat_base", "iface_patt_node_init", "iface_patt_node_body",
2028
  "iface_negate", "iface_patt_node", "iface_patt_list",
2029
  "iface_patt_list_nopx", "iface_patt_init", "iface_patt", "tos",
2030
  "dev_proto_start", "dev_proto", "dev_iface_init", "dev_iface_patt",
2031
  "debug_mask", "debug_list", "debug_flag", "mrtdump_mask", "mrtdump_list",
2032
  "mrtdump_flag", "password_list", "password_items", "password_item",
2033
  "password_item_begin", "password_item_params", "password_algorithm",
2034
  "cmd_SHOW_STATUS", "cmd_SHOW_MEMORY", "cmd_SHOW_PROTOCOLS",
2035
  "cmd_SHOW_PROTOCOLS_ALL", "optsym", "cmd_SHOW_INTERFACES",
2036
  "cmd_SHOW_INTERFACES_SUMMARY", "cmd_SHOW_ROUTE", "r_args", "r_args_for",
2037
  "r_args_for_val", "export_mode", "r_args_channel", "cmd_SHOW_SYMBOLS",
2038
  "sym_args", "cmd_DUMP_RESOURCES", "cmd_DUMP_SOCKETS", "cmd_DUMP_EVENTS",
2039
  "cmd_DUMP_INTERFACES", "cmd_DUMP_NEIGHBORS", "cmd_DUMP_ATTRIBUTES",
2040
  "cmd_DUMP_ROUTES", "cmd_DUMP_PROTOCOLS", "cmd_EVAL", "cmd_ECHO",
2041
  "echo_mask", "echo_size", "cmd_DISABLE", "cmd_ENABLE", "cmd_RESTART",
2042
  "cmd_RELOAD", "cmd_RELOAD_IN", "cmd_RELOAD_OUT", "cmd_DEBUG",
2043
  "cmd_MRTDUMP", "cmd_RESTRICT", "proto_patt", "proto_patt2",
2044
  "bfd_proto_start", "bfd_proto_item", "bfd_proto_opts", "bfd_proto",
2045
  "bfd_iface_start", "bfd_iface_finish", "bfd_iface_item", "bfd_auth_type",
2046
  "bfd_iface_opts", "bfd_iface_opt_list", "bfd_iface", "bfd_multihop",
2047
  "bfd_neigh_iface", "bfd_neigh_local", "bfd_neigh_multihop",
2048
  "bfd_neighbor", "cmd_SHOW_BFD_SESSIONS", "babel_proto_start",
2049
  "babel_proto_item", "babel_proto_opts", "babel_proto",
2050
  "babel_iface_start", "babel_iface_finish", "babel_iface_item",
2051
  "babel_iface_opts", "babel_iface_opt_list", "babel_iface",
2052
  "cmd_SHOW_BABEL_INTERFACES", "cmd_SHOW_BABEL_NEIGHBORS",
2053
  "cmd_SHOW_BABEL_ENTRIES", "cmd_SHOW_BABEL_ROUTES", "bgp_proto_start",
2054
  "bgp_loc_opts", "bgp_nbr_opts", "bgp_proto", "bgp_afi",
2055
  "bgp_channel_start", "bgp_channel_item", "bgp_channel_opts",
2056
  "bgp_channel_opt_list", "bgp_channel_end", "bgp_proto_channel",
2057
  "ospf_variant", "ospf_proto_start", "ospf_proto", "ospf_af_mc",
2058
  "ospf_channel_start", "ospf_channel", "ospf_proto_item",
2059
  "ospf_area_start", "ospf_area", "ospf_area_opts", "ospf_area_item",
2060
  "$@3", "$@4", "ospf_stubnet", "ospf_stubnet_start", "ospf_stubnet_opts",
2061
  "ospf_stubnet_item", "ospf_vlink", "ospf_vlink_opts", "ospf_vlink_item",
2062
  "ospf_vlink_start", "ospf_iface_item", "pref_list", "pref_item",
2063
  "pref_base", "pref_opt", "nbma_list", "nbma_eligible", "nbma_item",
2064
  "ospf_iface_start", "ospf_instance_id", "ospf_iface_patt_list", "$@5",
2065
  "ospf_iface_opts", "ospf_iface_opt_list", "ospf_iface", "cmd_SHOW_OSPF",
2066
  "cmd_SHOW_OSPF_NEIGHBORS", "cmd_SHOW_OSPF_INTERFACE",
2067
  "cmd_SHOW_OSPF_TOPOLOGY", "cmd_SHOW_OSPF_TOPOLOGY_ALL",
2068
  "cmd_SHOW_OSPF_STATE", "cmd_SHOW_OSPF_STATE_ALL", "cmd_SHOW_OSPF_LSADB",
2069
  "lsadb_args", "pipe_proto_start", "pipe_proto", "radv_proto_start",
2070
  "radv_proto_item", "$@6", "$@7", "radv_proto_opts", "radv_proto",
2071
  "radv_iface_start", "radv_iface_item", "$@8", "$@9", "radv_preference",
2072
  "radv_iface_finish", "radv_iface_opts", "radv_iface_opt_list",
2073
  "radv_iface", "radv_prefix_start", "radv_prefix_item",
2074
  "radv_prefix_finish", "radv_prefix_opts", "radv_prefix_opt_list",
2075
  "radv_prefix", "radv_rdnss_node", "radv_rdnss_start", "radv_rdnss_item",
2076
  "radv_rdnss_finish", "radv_rdnss_opts", "radv_rdnss", "radv_dnssl_node",
2077
  "radv_dnssl_start", "radv_dnssl_item", "radv_dnssl_finish",
2078
  "radv_dnssl_opts", "radv_dnssl", "radv_mult", "radv_sensitive",
2079
  "rip_variant", "rip_proto_start", "rip_proto_item", "rip_proto_opts",
2080
  "rip_proto", "rip_iface_start", "rip_iface_finish", "rip_iface_item",
2081
  "rip_auth", "rip_iface_opts", "rip_iface_opt_list", "rip_iface",
2082
  "cmd_SHOW_RIP_INTERFACES", "cmd_SHOW_RIP_NEIGHBORS",
2083
  "static_proto_start", "static_proto", "stat_nexthop", "stat_nexthops",
2084
  "stat_route0", "stat_route", "stat_route_item", "stat_route_opts",
2085
  "stat_route_opt_list", "cmd_SHOW_STATIC", "kern_sys_item", "log_config",
2086
  "syslog_name", "log_file", "log_mask", "log_mask_list", "log_cat",
2087
  "mrtdump_base", "debug_unix", "cmd_CONFIGURE", "cmd_CONFIGURE_SOFT",
2088
  "cmd_CONFIGURE_CONFIRM", "cmd_CONFIGURE_UNDO", "cmd_CONFIGURE_CHECK",
2089
  "cmd_DOWN", "cfg_name", "cfg_timeout", "kern_proto_start",
2090
  "kern_mp_limit", "kern_item", "kif_proto_start", "kif_item",
2091
  "kif_iface_start", "kif_iface_item", "kif_iface_opts",
2092
  "kif_iface_opt_list", "kif_iface", "conf", "dynamic_attr", "proto",
2093
  "cli_cmd", "kern_proto", "kif_proto", YY_NULLPTR
2094
};
2095
#endif
2096

    
2097
# ifdef YYPRINT
2098
/* YYTOKNUM[NUM] -- (External) token number corresponding to the
2099
   (internal) symbol number NUM (which must be that of a token).  */
2100
static const yytype_uint16 yytoknum[] =
2101
{
2102
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
2103
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
2104
     275,   276,   277,    61,    60,    62,   126,   278,    43,    45,
2105
      42,    47,    37,    33,    46,   279,   280,   281,   282,   283,
2106
     284,   285,   286,   287,   288,   289,   290,   291,   292,   293,
2107
     294,   295,   296,   297,   298,   299,   300,   301,   302,   303,
2108
     304,   305,   306,   307,   308,   309,   310,   311,   312,   313,
2109
     314,   315,   316,   317,   318,   319,   320,   321,   322,   323,
2110
     324,   325,   326,   327,   328,   329,   330,   331,   332,   333,
2111
     334,   335,   336,   337,   338,   339,   340,   341,   342,   343,
2112
     344,   345,   346,   347,   348,   349,   350,   351,   352,   353,
2113
     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
2114
     364,   365,   366,   367,   368,   369,   370,   371,   372,   373,
2115
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
2116
     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
2117
     394,   395,   396,   397,   398,   399,   400,   401,   402,   403,
2118
     404,   405,   406,   407,   408,   409,   410,   411,   412,   413,
2119
     414,   415,   416,   417,   418,   419,   420,   421,   422,   423,
2120
     424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
2121
     434,   435,   436,   437,   438,   439,   440,   441,   442,   443,
2122
     444,   445,   446,   447,   448,   449,   450,   451,   452,   453,
2123
     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
2124
     464,   465,   466,   467,   468,   469,   470,   471,   472,   473,
2125
     474,   475,   476,   477,   478,   479,   480,   481,   482,   483,
2126
     484,   485,   486,   487,   488,   489,   490,   491,   492,   493,
2127
     494,   495,   496,   497,   498,   499,   500,   501,   502,   503,
2128
     504,   505,   506,   507,   508,   509,   510,   511,   512,   513,
2129
     514,   515,   516,   517,   518,   519,   520,   521,   522,   523,
2130
     524,   525,   526,   527,   528,   529,   530,   531,   532,   533,
2131
     534,   535,   536,   537,   538,   539,   540,   541,   542,   543,
2132
     544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
2133
     554,   555,   556,   557,   558,   559,   560,   561,   562,   563,
2134
     564,   565,   566,   567,   568,   569,   570,   571,   572,   573,
2135
     574,   575,   576,   577,   578,   579,   580,   581,   582,   583,
2136
     584,   585,   586,   587,   588,   589,   590,   591,   592,   593,
2137
     594,   595,   596,   597,   598,   599,   600,   601,   602,   603,
2138
     604,   605,   606,   607,   608,   609,   610,   611,   612,   613,
2139
     614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
2140
     624,   625,   626,   627,   628,   629,   630,   631,   632,   633,
2141
     634,   635,   636,   637,   638,   639,   640,   641,   642,   643,
2142
     644,   645,   646,   647,   648,   649,   650,   651,   652,   653,
2143
     654,   655,   656,   657,   658,   659,   660,   661,   662,   663,
2144
     664,   665,   666,   667,   668,   669,   670,   671,   672,   673,
2145
     674,   675,   676,   677,   678,   679,   680,   681,   682,   683,
2146
     684,   685,   686,   687,   688,   689,   690,   691,   692,   693,
2147
     694,   695,   696,   697,   698,   699,   700,   701,   702,   703,
2148
     704,   705,   706,   707,   708,   709,   710,   711,   712,   713,
2149
     714,   715,   716,   717,   718,   719,   720,   721,   722,   723,
2150
     724,   725,   726,   727,   728,    59,    40,    41,    58,    44,
2151
     123,   125,    63,    91,    93
2152
};
2153
# endif
2154

    
2155
#define YYPACT_NINF -1751
2156

    
2157
#define yypact_value_is_default(Yystate) \
2158
  (!!((Yystate) == (-1751)))
2159

    
2160
#define YYTABLE_NINF -323
2161

    
2162
#define yytable_value_is_error(Yytable_value) \
2163
  (!!((Yytable_value) == (-323)))
2164

    
2165
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2166
     STATE-NUM.  */
2167
static const yytype_int16 yypact[] =
2168
{
2169
     119,  3639,   254,   831,  2490,   328,   328,   328,   720,   328,
2170
     279,  2158,  1202,    45,   328,    22,   421, -1751, -1751, -1751,
2171
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2172
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2173
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2174
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2175
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,   116,
2176
   -1751, -1751, -1751,   433,   530,  2490,   180,   550, -1751, -1751,
2177
     117, -1751, -1751, -1751, -1751, -1751, -1751,   516,   595,   265,
2178
     544,   221, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2179
     556, -1751,  3200, -1751, -1751,   183,  3339,   183, -1751,   183,
2180
   -1751,   183,  3423,   183,  3113,   183,  3638,   183, -1751,   183,
2181
   -1751,   183,  3173, -1751, -1751, -1751,   183,   183, -1751, -1751,
2182
    3140,   930,    76, -1751, -1751,    -2,   735,   987,   260, -1751,
2183
     660,   178,  2490,   807,   336,   377, -1751, -1751, -1751,   393,
2184
     399,   418,   423,   429,   440,   451,  1432,   113,   674,   678,
2185
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2186
   -1751, -1751, -1751, -1751, -1751, -1751,  2309, -1751,  3951, -1751,
2187
   -1751, -1751,    63,   920,   920,   328,   328,   946,   126, -1751,
2188
     522,   104,   969, -1751,   980, -1751,   763,   527,   468,   -70,
2189
    1001,  1021,  1031,  1054,  1066,  1071,  1073,  1084,  1088, -1751,
2190
   -1751,   584,  1091,   920, -1751,  1041,  1041,  1100,  1113,   705,
2191
   -1751,  1125, -1751, -1751,  3988,  1130,   282,    63,   383,    88,
2192
   -1751, -1751,   126,   676, -1751, -1751, -1751, -1751,   136,   690,
2193
     691, -1751, -1751,   -41,   975,   383,   383,  1171, -1751, -1751,
2194
   -1751, -1751,   716, -1751, -1751,   800, -1751, -1751, -1751, -1751,
2195
   -1751,  1116,  1216,   748,  1138,   431,    63, -1751,  1061,  1061,
2196
     126,   994, -1751, -1751,   783,   797,   788,   805,   814,   816,
2197
     825, -1751, -1751,   -54,  1026,   846,  1313,    64,    87,   135,
2198
     205,  1072,  1061,   431,  1188,   599,   431,   274,  1092,  1092,
2199
    1093,  1087,   122,  1101,  1103,   811,  1104,  1094,   847,  1079,
2200
     431,  1078,  1075,  1137,  1139,  1076,  1080,   131,   431,  1074,
2201
     166, -1751,   917, -1751,   915,   921,   919,   275,   431,  1280,
2202
     383,   431,  1274,  1058,   431, -1751,  1096, -1751,   797, -1751,
2203
     933,   937, -1751,   938,   383,   792,   796,  1409,  1271,  1283,
2204
   -1751,   949,   954,   951,   952,   964,  1127,  1193,  1308, -1751,
2205
     974,   978,   756,   981,   984,   985,  1299,   383,  1149,  1320,
2206
     431,  1205,   431,  1324, -1751, -1751, -1751,   998,  1000, -1751,
2207
    1219, -1751, -1751,  1007,    74, -1751,    76,  2490,    76,    76,
2208
    1483, -1751,  1485,  1484, -1751,  1487,    -2,   735, -1751, -1751,
2209
    1368,  1475,   241,  1477,  1473, -1751, -1751, -1751,  1409,  2490,
2210
    2490,  2490,  2490,  2490,  2490, -1751, -1751,  1495, -1751,  1022,
2211
     212, -1751, -1751, -1751,  1164, -1751, -1751,    90, -1751,  1505,
2212
   -1751, -1751, -1751, -1751,   243, -1751,   294,  1498,  1500, -1751,
2213
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2214
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2215
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2216
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2217
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2218
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2219
   -1751, -1751, -1751, -1751,  2490,  2490,  2490,  2490,  2490,  2490,
2220
    2490,  2490,  2490,  2490,  2490,  2490,  2490,  2490,  2373, -1751,
2221
   -1751,  1119,  1514, -1751,  1518,  1523,  1526,  1533, -1751, -1751,
2222
   -1751,   102,  1534, -1751, -1751,  1148,  1541, -1751,  1544, -1751,
2223
    3803, -1751,  1355,  1001,  1001,  1001,  1001,  1001, -1751,  1001,
2224
    1001, -1751,    30,   341,  1545,  1001,  1001,  1546, -1751, -1751,
2225
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2226
   -1751, -1751, -1751, -1751, -1751,   112, -1751, -1751,  1547,  1548,
2227
    1552,   705, -1751, -1751,   383,  1553,  2490,  1083,  3156,  1069,
2228
   -1751, -1751, -1751, -1751,  2490,  1077, -1751, -1751, -1751,  2490,
2229
   -1751, -1751, -1751, -1751, -1751,   383, -1751, -1751,  1085, -1751,
2230
     383,  1005, -1751,  1061, -1751, -1751,   584,  1099,   383,   935,
2231
   -1751, -1751,  1363, -1751, -1751, -1751,  1558, -1751, -1751,   275,
2232
   -1751, -1751, -1751, -1751, -1751, -1751,   431, -1751, -1751, -1751,
2233
   -1751, -1751, -1751, -1751, -1751,  1296,  1297,  1092, -1751,  1111,
2234
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1497,  1112,
2235
    1114,   427,  1276,   431,  1385,  1115, -1751,  1118, -1751, -1751,
2236
   -1751,  1557,    31,  1557,   176,   431,   383,  1334,  1336,   383,
2237
    1347,   383,   383,   431,  1348,   431,  1467,   431,  1133,   431,
2238
     431,   431,   431,   431,   431,  1402,   431,  1162,   431,   431,
2239
    1166, -1751, -1751, -1751, -1751, -1751, -1751, -1751,   431, -1751,
2240
    1460,   383,   431, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2241
   -1751,  3334,  2490, -1751, -1751,   327,  1481, -1751, -1751,   327,
2242
   -1751, -1751, -1751,   327,  1409, -1751, -1751, -1751, -1751, -1751,
2243
     987, -1751, -1751, -1751,   431,  1409, -1751, -1751, -1751,   837,
2244
   -1751,  1092, -1751, -1751, -1751,    -5,  1379, -1751,  1168, -1751,
2245
   -1751,   431, -1751,   431,   383, -1751,   383, -1751,   431, -1751,
2246
   -1751, -1751, -1751,   383, -1751,  1639, -1751, -1751,  1222, -1751,
2247
   -1751, -1751, -1751, -1751, -1751,   302, -1751,  1169, -1751,  1528,
2248
    1630, -1751, -1751, -1751,    92,  1337,   329,   407,   449,   746,
2249
    1583, -1751,  2490, -1751,  2490,  1172,    26,  1173,  1614, -1751,
2250
   -1751,  1645,   194,   211, -1751,   987, -1751,  1447,  1450,  3437,
2251
    3437,  3437,  3902,  3902,  3437,  3437,  3437,  3437,  3437,   891,
2252
     891,  1473,  1473, -1751, -1751, -1751,  1179, -1751, -1751, -1751,
2253
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2254
     326, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,   456,
2255
   -1751, -1751,  1667, -1751, -1751, -1751,  3334,  1652, -1751, -1751,
2256
     535, -1751, -1751, -1751, -1751,  1187, -1751, -1751, -1751, -1751,
2257
    1653, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1671,   920,
2258
     920,   920,   920,   920,   920,  1156,  1001,   920,  1001,   920,
2259
   -1751,   920,   920, -1751,   584, -1751, -1751, -1751, -1751,  1672,
2260
   -1751, -1751,  3064,  2476,  3156, -1751, -1751, -1751, -1751, -1751,
2261
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2262
     576,  1192,  1189, -1751, -1751,  1061, -1751,  1196,  1940, -1751,
2263
    2231, -1751, -1751,  1665,  1176,  1199, -1751,   465, -1751,  1208,
2264
   -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1658, -1751,  1201,
2265
    1217,   737, -1751,  1262,  3363,   383,   383,  1218, -1751,   431,
2266
   -1751, -1751,   383,  1220,  1221,   431,  1225,   431, -1751, -1751,
2267
    1684, -1751,   383,   383, -1751, -1751,   383,   383, -1751,  1230,
2268
    1231,   383,   383,  1237,   383,  1243,  1245,  1246,   383,  1247,
2269
     275,  1249, -1751,  1251,  1256,  1258,  1264,  1265,  1266,   278,
2270
    1270, -1751,  1277,  1282, -1751,  3492, -1751, -1751,   383, -1751,
2271
   -1751, -1751,  1371, -1751, -1751, -1751,  3988, -1751,  1549, -1751,
2272
     431, -1751, -1751,  1284,  3206,  3233,  1285,  1287, -1751,  1557,
2273
    1662,  1732,   431,   383,   431,    -5,   597, -1751, -1751,  1595,
2274
   -1751, -1751, -1751,  1201,  1269, -1751,    76, -1751,  2490, -1751,
2275
    1731,  1736, -1751, -1751, -1751,  2490, -1751,  2490,  2490,  2490,
2276
    2490, -1751,   983,   249,  2009,  2490,  2048,  2490, -1751,  1286,
2277
   -1751, -1751,  2490, -1751, -1751, -1751,  1761,  1763,  2490,  1119,
2278
   -1751,   102, -1751, -1751, -1751, -1751, -1751, -1751,    -2,   735,
2279
    1226, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1745, -1751,
2280
    1778,  1785,  1786,  1787,  1788,  1789, -1751, -1751,  1779,   275,
2281
   -1751, -1751,   275, -1751,   275,   920,  1790,   920,  1795,  1796,
2282
    1797, -1751, -1751, -1751, -1751,  1316,  1315, -1751, -1751, -1751,
2283
    3156,   767,  1318,  1201, -1751, -1751, -1751, -1751, -1751, -1751,
2284
   -1751, -1751, -1751, -1751, -1751,  1791, -1751, -1751, -1751,  1321,
2285
   -1751, -1751,  1092, -1751, -1751,  1322, -1751, -1751, -1751, -1751,
2286
    1323,  1329,  1325, -1751,  1340,  1341, -1751, -1751,  1342, -1751,
2287
    1344, -1751,   208, -1751, -1751,   238, -1751, -1751, -1751, -1751,
2288
    1345,  1346, -1751,  1349, -1751, -1751, -1751,  1356, -1751,  1357,
2289
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1358, -1751,
2290
   -1751, -1751,  1568,  1490,  1654,  1538,  1694,   -24,   431,  1794,
2291
   -1751, -1751,  1364, -1751, -1751,   431,   315,   549, -1751,  1585,
2292
    1136, -1751, -1751,   281, -1751,  1366, -1751,  1480,  1059, -1751,
2293
   -1751, -1751,   573, -1751, -1751, -1751,   573,  1705, -1751, -1751,
2294
   -1751,  1373, -1751,   431,   383, -1751, -1751, -1751,  1374, -1751,
2295
   -1751, -1751,  1732, -1751, -1751,  1829, -1751, -1751, -1751,    11,
2296
   -1751, -1751,  1378,  2490, -1751, -1751, -1751, -1751,  2490,  2490,
2297
    1842,  1380, -1751,  2309,  1382,  2170, -1751, -1751,   383, -1751,
2298
   -1751, -1751, -1751, -1751,  1839, -1751,  1275,  1047,  1109,  2519,
2299
    2623,  2650,  2677,  2490, -1751,  2490,   474,    35,  3988,  1381,
2300
     495,    34,  1383,  1859,  1614, -1751, -1751,  2704, -1751, -1751,
2301
      -2,   735,  1892, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2302
   -1751, -1751, -1751,  1873, -1751,  1874, -1751, -1751, -1751,  3156,
2303
   -1751, -1751,  1389,    40, -1751, -1751,  1140,  1178, -1751, -1751,
2304
   -1751, -1751, -1751,  1391, -1751,   291, -1751, -1751, -1751, -1751,
2305
   -1751,   383, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2306
   -1751, -1751, -1751, -1751, -1751,   430,   539,   431,   571,  1409,
2307
   -1751, -1751, -1751,  1617, -1751, -1751, -1751, -1751,   383,   383,
2308
     431,   383, -1751,  1393,   275, -1751, -1751, -1751, -1751,  1394,
2309
    1395,   383, -1751, -1751,   383,  1407, -1751, -1751, -1751, -1751,
2310
   -1751, -1751, -1751,  1412, -1751, -1751, -1751,    75,     0, -1751,
2311
     431, -1751, -1751, -1751,  1742, -1751, -1751,  1829,  1889,  2490,
2312
    1368, -1751,  3091,  3873,   167,  2490, -1751,  1882,   839, -1751,
2313
    3988,  1417,  1422, -1751,   134,  1881, -1751, -1751, -1751, -1751,
2314
    1861, -1751, -1751,  1198,  1858, -1751, -1751, -1751, -1751, -1751,
2315
     146,  1887,  1887,  1136,  1437, -1751, -1751,   146,  1887,  1887,
2316
    1887,   573,  1438,  2490, -1751, -1751, -1751, -1751,  2772,  2799,
2317
   -1751,  1896,  2490, -1751,  2205, -1751,  1898,  2490,  1922,  2327,
2318
    2362,  1439, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2319
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2320
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,    -2,   735,
2321
   -1751, -1751, -1751, -1751,  1391, -1751, -1751,  1912,  1061,  1687,
2322
    1443,  1455, -1751, -1751,  1092, -1751, -1751, -1751, -1751, -1751,
2323
   -1751, -1751, -1751,   431,  1201,  1451, -1751, -1751, -1751, -1751,
2324
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1453,
2325
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1456,
2326
     383, -1751,  3118,  1468,  2575, -1751,   926, -1751,  3145,  2490,
2327
    2490,  2490,   911,  2170, -1751,  1092, -1751,  1462, -1751, -1751,
2328
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2329
   -1751,  1947,   383,  1248, -1751,  1469, -1751,    56,   383,  1257,
2330
      58, -1751, -1751,  1248,    56,    58,    56,  1891, -1751,  2862,
2331
   -1751, -1751,  1470,  1474,   541,    37,  1486,   551,  1476,  1488,
2332
      38,  1491,    41, -1751, -1751,   658, -1751, -1751, -1751,  1092,
2333
    1726, -1751, -1751, -1751, -1751, -1751,  1480, -1751, -1751,    55,
2334
     445,    60,  1554,   728, -1751, -1751, -1751, -1751, -1751, -1751,
2335
   -1751, -1751, -1751, -1751,  1492,   767,  1885, -1751,    47, -1751,
2336
    3988,  3172,  3199,  1499,  1501,  1502,  1504,  1506, -1751, -1751,
2337
   -1751,   383, -1751, -1751,   383,  1675,   383, -1751,  1887,  1887,
2338
    1946, -1751, -1751, -1751, -1751, -1751,  1887,  1887,  1969, -1751,
2339
   -1751, -1751, -1751,  1960,  2490, -1751, -1751, -1751,  1964,  2490,
2340
   -1751,  2490,  1989, -1751,  2490, -1751, -1751,  1061,   431,  1507,
2341
    1037,  1755,   383,   383,   499, -1751, -1751, -1751,  1509,  1515,
2342
   -1751,   431, -1751,   909, -1751, -1751,  3514, -1751, -1751, -1751,
2343
     548,   431,   383,   431, -1751,  1516, -1751,   383,   343,   383,
2344
     383,  1725,   384, -1751, -1751,  1519,  1607,  1608,   431,   431,
2345
     431, -1751,  1522,  1180, -1751,   344,   403,  1669, -1751,  1529,
2346
    1517,   926,    70, -1751, -1751,  1164, -1751, -1751,  2004, -1751,
2347
   -1751, -1751, -1751,   794,  1530, -1751, -1751,  2490,  2490,  2490,
2348
   -1751,  2490, -1751,  1469,   383, -1751,   383,   383,   383,  1257,
2349
    1257, -1751,  1532,  1536,  1556,  1524,  1565,  1550,  1566, -1751,
2350
   -1751,  1846,  1772,  1800,  1813, -1751, -1751, -1751,  1117, -1751,
2351
    1854, -1751,   715, -1751, -1751,   383,  1767,  1043,   383,  1773,
2352
     139,   383,  1814,  1815,  1770, -1751,  1555,  1542,   383,  1551,
2353
     431,  1799,   313,   386,   383,  1808,  1685,  1757,  1727,   431,
2354
     383,   383,  1801,   383,   424,  1700,   383,  1713,  1739, -1751,
2355
   -1751,  1600, -1751,   383,  1606, -1751, -1751, -1751, -1751, -1751,
2356
   -1751, -1751, -1751, -1751, -1751,   383,   383, -1751, -1751,   383,
2357
     383, -1751, -1751, -1751, -1751,   169,   100,  1711,   -15,  1707,
2358
     -76,   431,  1710,  1831,  1709,  1835,  1855,  1856, -1751,  1618,
2359
     382,  1092, -1751,  1621,   382,  2088, -1751,  1635,   383,   431,
2360
     431,  1860,   480,   529,   383,  1857,   127,  1092,  1809,  1759,
2361
    1864,  1865,   337,   374,  1706,  1703, -1751, -1751,  1650, -1751,
2362
   -1751, -1751, -1751,  2889,   133,    70,   200,  1651,  2916,  2943,
2363
    2970,  3037, -1751,  2106,  2107, -1751, -1751, -1751, -1751, -1751,
2364
   -1751,  2490, -1751,  2490, -1751,  1648,  1656,   383,   383,   383,
2365
   -1751, -1751,  1129,   607,  2121,   383,  2121,  1134,   625,  1657,
2366
   -1751,  1184, -1751, -1751, -1751,   383,   383,   383,   383,   383,
2367
   -1751, -1751,   383,   383,   431, -1751, -1751, -1751, -1751, -1751,
2368
   -1751, -1751, -1751, -1751, -1751, -1751, -1751,     8,   383,   383,
2369
   -1751, -1751, -1751, -1751, -1751,   431,  1765,   569,   431, -1751,
2370
   -1751, -1751,   383, -1751,   383, -1751,   431, -1751,   383,   431,
2371
   -1751, -1751, -1751, -1751, -1751,  1737,  1737,  1883, -1751,   523,
2372
    1884,   383,  1905,   383,  1906,   383,   523,   383, -1751,   431,
2373
     383,   383,  1992,   431,    75,   431,     0, -1751,   383, -1751,
2374
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2375
   -1751,   383,   383,   383, -1751, -1751, -1751, -1751, -1751, -1751,
2376
   -1751,   383,   431,   431, -1751,   603,   383,   383,   383, -1751,
2377
   -1751,   431, -1751,   431,   431, -1751, -1751,  2490, -1751, -1751,
2378
   -1751, -1751,  1670,  1673,  1674,  1678,   383,   383,  1677,  1668,
2379
   -1751,  1846, -1751, -1751, -1751, -1751, -1751,  2121,  2121, -1751,
2380
    1680,  1681,  1682,  1360,  1448,  1686,  2121,  2121, -1751,  1092,
2381
    1092, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,    81,
2382
   -1751, -1751, -1751, -1751, -1751, -1751,   431,  1816, -1751, -1751,
2383
   -1751, -1751, -1751, -1751, -1751,   431, -1751, -1751,   383, -1751,
2384
   -1751, -1751, -1751,   383,  1737,   383, -1751,   383, -1751, -1751,
2385
    1737, -1751, -1751, -1751,   383, -1751, -1751, -1751, -1751, -1751,
2386
   -1751, -1751, -1751, -1751, -1751, -1751,  1817, -1751, -1751, -1751,
2387
   -1751, -1751, -1751, -1751,  2889, -1751, -1751, -1751, -1751, -1751,
2388
   -1751, -1751,  2490, -1751,  1689,  1692,   715,   715,   715, -1751,
2389
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,   715,
2390
    1693,  1695, -1751, -1751, -1751,  1802, -1751, -1751, -1751, -1751,
2391
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1683,   715,
2392
     715, -1751, -1751, -1751, -1751,   715,   715, -1751,  1696,  2490,
2393
   -1751, -1751, -1751, -1751, -1751,  1708, -1751
2394
};
2395

    
2396
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2397
     Performed when YYTABLE does not specify something else to do.  Zero
2398
     means the default is an error.  */
2399
static const yytype_uint16 yydefact[] =
2400
{
2401
       4,     0,     0,     0,   252,     0,     0,     0,     0,     0,
2402
       0,     0,     0,     0,     0,  1083,     0,  1189,  1190,  1191,
2403
    1192,  1193,  1194,  1195,  1196,  1197,  1198,  1199,  1200,  1201,
2404
    1202,  1203,  1204,  1205,  1206,  1207,  1208,  1209,  1210,  1211,
2405
    1212,  1213,  1214,  1215,  1216,  1217,  1218,  1219,  1220,  1221,
2406
    1222,  1223,  1224,  1225,  1226,  1227,  1228,  1229,  1230,  1231,
2407
    1232,  1233,  1234,  1235,  1236,  1237,     3,     1,     2,     0,
2408
     357,   355,   356,     0,     0,   252,     0,     0,   361,   362,
2409
       0,   349,   350,   351,   352,   353,   354,     0,     0,     0,
2410
       0,     0,  1110,  1111,  1112,  1113,  1114,  1115,  1116,  1117,
2411
       0,  1118,     0,  1120,  1121,   363,   367,   363,  1179,   363,
2412
    1180,   363,   367,   363,   367,   363,   367,   363,  1184,   363,
2413
    1185,   363,   367,  1122,  1123,  1124,   363,   363,     5,  1119,
2414
     367,   367,   237,   238,   247,   169,   170,   243,   254,   241,
2415
       0,     0,   252,     0,     0,     0,   239,   240,   284,     0,
2416
       0,     0,     0,     0,     0,     0,   252,     0,    33,    34,
2417
      35,    36,    37,    38,    43,    39,    40,    41,   244,   127,
2418
     128,    42,   242,   248,   282,   283,     0,   281,     0,   569,
2419
     571,   570,     0,    62,    62,     0,     0,     0,     0,   568,
2420
     573,     0,     0,   490,     0,   538,     0,     0,   486,     0,
2421
     486,     0,     0,     0,     0,     0,     0,     0,     0,   556,
2422
     555,     0,   558,    62,  1084,  1083,  1083,     0,     0,  1085,
2423
    1082,     0,   161,   129,   131,     0,     0,     0,     0,    18,
2424
      60,    59,     0,     0,   404,   403,   405,   406,     0,     0,
2425
    1054,  1057,  1055,     0,     0,     0,     0,     0,   429,   647,
2426
     575,   614,   740,   882,   887,   969,  1019,  1088,  1099,   743,
2427
     971,   364,     0,     0,     0,    18,     0,   435,     0,     0,
2428
       0,     0,  1178,   374,     0,   385,     0,     0,     0,     0,
2429
       0,   715,   716,     0,     0,     0,     0,   705,   706,     0,
2430
       0,     0,     0,    18,     0,     0,    18,     0,   651,   648,
2431
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2432
      18,     0,     0,     0,     0,     0,     0,     0,    18,     0,
2433
       0,  1181,     0,   717,   736,     0,     0,     0,    18,     0,
2434
       0,    18,     0,     0,    18,  1182,   746,   750,   385,   751,
2435
       0,     0,   760,     0,     0,     0,     0,     0,     0,     0,
2436
    1183,     0,     0,     0,     0,     0,     0,     0,     0,  1186,
2437
       0,     0,  1038,  1047,     0,     0,     0,     0,     0,     0,
2438
      18,     0,    18,     0,  1187,  1091,  1092,     0,     0,  1103,
2439
       0,  1188,  1100,     0,   237,   254,   237,   252,   237,   237,
2440
       0,   229,     0,     0,    26,     0,     0,     0,    28,    29,
2441
     252,     0,     0,     0,   279,    32,   122,   122,     0,   252,
2442
     252,   252,   252,   252,   252,   191,   192,     0,   194,     0,
2443
       0,   171,   173,   175,   252,    33,    34,   220,   172,   209,
2444
     206,   207,   208,   216,     0,   224,     0,     0,     0,  1125,
2445
     258,   255,   256,   257,   259,   260,   261,   262,   263,  1126,
2446
    1127,  1129,  1132,  1131,  1128,  1130,  1133,  1134,  1135,  1138,
2447
    1139,  1136,  1137,  1140,  1141,  1142,  1143,  1144,  1145,  1146,
2448
    1147,  1148,  1149,  1150,  1151,  1152,  1153,  1154,  1155,  1156,
2449
    1157,  1158,  1159,  1160,  1161,  1162,  1163,  1164,  1165,  1166,
2450
    1167,  1168,  1169,  1170,  1171,  1172,  1173,  1174,  1175,  1176,
2451
    1177,   285,   286,   553,   252,   252,   252,   252,   252,   252,
2452
     252,   252,   252,   252,   252,   252,   252,   252,     0,   438,
2453
     437,     0,     0,    61,     0,     0,     0,     0,   563,   449,
2454
     448,     0,     0,   572,   574,   573,     0,   487,     0,   482,
2455
       0,   481,     0,   486,   486,   486,   486,   486,   485,   486,
2456
     486,   873,   486,   486,     0,   486,   486,     0,   551,   547,
2457
     552,   548,   545,   546,   549,   550,  1067,  1062,  1063,  1064,
2458
    1065,  1066,  1068,  1069,  1070,     0,  1060,   559,     0,     0,
2459
       0,  1085,  1079,  1080,  1086,     0,   252,     0,   150,     0,
2460
     344,   346,   347,   425,   252,     0,   401,     7,     9,   252,
2461
     402,    14,    16,    15,    17,     0,    13,  1073,     0,  1072,
2462
     407,     0,   415,     0,  1056,  1058,     0,     0,     0,     0,
2463
    1076,  1075,   358,   741,   742,   970,     0,   365,   430,     0,
2464
     368,   369,   416,   373,   372,   370,    18,   431,   383,   387,
2465
     432,   433,   580,   618,   654,     0,     0,     0,   669,     0,
2466
     709,   707,   710,   708,   711,   713,   712,   714,     0,     0,
2467
       0,    18,     0,    18,     0,     0,   670,     0,    19,    20,
2468
      21,    22,     0,    22,     0,    18,     0,     0,     0,     0,
2469
       0,     0,     0,    18,     0,    18,     0,    18,     0,    18,
2470
      18,    18,    18,    18,    18,     0,    18,     0,    18,    18,
2471
       0,   655,   734,   738,   656,   744,   761,   752,    18,   758,
2472
     755,     0,    18,   753,   747,   748,   387,   745,   763,   883,
2473
     381,   150,   252,   392,   393,     0,     0,   391,   376,     0,
2474
     377,   389,   375,     0,     0,   884,   885,   898,   978,  1020,
2475
       0,    49,    48,  1034,    18,     0,  1021,  1022,  1040,     0,
2476
    1039,     0,  1043,  1041,  1042,  1032,  1035,  1045,     0,  1239,
2477
    1241,    18,  1051,    18,     0,  1093,     0,  1095,    18,  1238,
2478
    1240,   416,  1101,     0,  1242,     0,   232,   234,     0,   235,
2479
     236,   231,    24,    25,    27,   320,   323,     0,   298,     0,
2480
       0,   299,   123,   124,     0,     0,     0,     0,     0,     0,
2481
       0,   193,   252,   264,   252,     0,     0,     0,   180,   221,
2482
     222,     0,     0,     0,   245,     0,   246,     0,     0,   276,
2483
     274,   272,   269,   270,   271,   273,   275,   277,   278,   265,
2484
     266,   267,   268,   288,   289,   290,     0,   293,   287,   291,
2485
     292,   295,   296,   297,   442,   443,   444,   446,   447,   445,
2486
       0,   440,   566,   562,   560,   564,   565,   453,   454,     0,
2487
     451,   567,     0,   483,   488,   489,   150,     0,   497,   516,
2488
       0,   499,   498,   503,   504,     0,   515,   517,   491,   496,
2489
       0,   537,   544,   540,   541,   542,   543,   539,     0,    62,
2490
      62,    62,    62,    62,    62,     0,   486,    62,   486,    62,
2491
     865,    62,    62,  1049,     0,   557,   554,   561,  1081,     0,
2492
    1087,  1077,     0,     0,   150,   133,   134,   135,   137,   136,
2493
     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
2494
       0,     0,     0,   130,   154,     0,   416,     0,     0,   342,
2495
       0,  1074,  1071,     0,   409,   412,  1053,     0,  1052,     0,
2496
      10,    11,    12,   359,   360,   366,   371,   419,   422,   436,
2497
       0,     0,   388,   367,   367,     0,     0,     0,   661,    18,
2498
     692,   694,     0,     0,     0,    18,     0,    18,   704,   671,
2499
       0,   651,     0,     0,   659,   648,     0,     0,   657,     0,
2500
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2501
       0,     0,   691,     0,     0,     0,     0,     0,     0,     0,
2502
       0,   693,     0,     0,   665,     0,   739,   754,     0,   759,
2503
     757,   749,     0,   155,   156,   390,   157,   400,   394,   379,
2504
      18,   380,   378,     0,   367,   367,     0,     0,  1027,    22,
2505
    1036,     0,    18,     0,    18,  1033,   252,  1025,  1097,  1089,
2506
    1050,  1094,  1096,   424,  1107,  1102,   237,   230,   252,   309,
2507
       0,     0,   118,   120,   306,   252,   280,   252,   252,   252,
2508
     252,   308,     0,     0,   252,   252,   252,   252,   174,     0,
2509
     169,   170,   252,   210,   217,   225,     0,     0,   252,     0,
2510
     439,     0,   450,   484,   495,   502,   493,   494,   513,   514,
2511
       0,   510,   511,   512,   506,   507,   492,   505,   500,   613,
2512
       0,     0,     0,     0,     0,     0,   872,   881,     0,     0,
2513
     876,   879,     0,   874,     0,    62,     0,    62,     0,     0,
2514
       0,  1061,  1078,     6,   159,   152,     0,   162,   149,   148,
2515
     150,   252,     0,   426,   343,   345,     8,   408,   410,   411,
2516
     413,   414,  1059,   348,   420,    62,   416,   434,   386,     0,
2517
     583,   583,     0,   582,   576,     0,   621,   620,   615,   616,
2518
       0,     0,     0,   680,     0,     0,   700,   699,     0,   689,
2519
       0,    23,     0,   652,   653,     0,   649,   650,   703,   667,
2520
       0,     0,   684,     0,   679,   678,   673,     0,   663,     0,
2521
     664,   676,   695,   675,   674,   702,   677,   696,     0,   698,
2522
     672,   666,     0,     0,     0,     0,     0,     0,    18,     0,
2523
     737,   718,     0,   756,   855,    18,     0,    18,   774,     0,
2524
       0,   776,   766,    18,   762,     0,   780,   856,     0,   399,
2525
     382,   886,     0,   901,   892,   894,     0,     0,   900,   888,
2526
     889,     0,   981,    18,     0,   980,   972,   973,     0,  1023,
2527
    1024,  1026,     0,    55,    56,  1028,  1031,  1030,  1029,     0,
2528
     314,   315,     0,   252,   311,   312,   313,   310,   252,   252,
2529
       0,     0,  1048,     0,     0,   252,  1044,  1046,     0,  1098,
2530
    1105,  1109,   233,   321,     0,   300,     0,     0,     0,     0,
2531
       0,     0,     0,   252,   249,   252,     0,     0,   180,     0,
2532
       0,     0,     0,     0,     0,    30,    31,     0,   441,   452,
2533
     508,   509,     0,   646,   643,   644,   645,   867,   866,   877,
2534
     880,   875,   878,     0,   868,     0,   870,  1017,  1018,     0,
2535
     158,   151,     0,   252,   165,   132,   417,     0,   421,   423,
2536
     384,   416,   577,   601,   578,   605,   579,   581,   416,   617,
2537
     619,     0,   685,   687,   701,   688,   690,   660,   658,   683,
2538
     682,   668,   681,   662,   697,     0,    18,    18,     0,     0,
2539
     725,   726,   727,     0,   735,   416,   779,   767,     0,     0,
2540
      18,     0,   765,     0,     0,    47,    46,   783,   778,   782,
2541
       0,     0,   772,   764,     0,   790,   395,   396,   397,   398,
2542
      45,    44,   933,   942,   891,   416,   890,     0,     0,   896,
2543
      18,   899,   416,   977,   974,   976,   979,  1037,     0,   252,
2544
     252,   252,     0,     0,     0,   252,   341,     0,     0,   333,
2545
     316,   318,     0,  1090,     0,     0,    75,    86,    87,    73,
2546
       0,    76,    77,     0,     0,    80,    81,    84,   125,    82,
2547
       0,    99,    99,     0,     0,    85,   126,     0,    99,    99,
2548
      99,     0,     0,   252,   303,   304,   302,   305,     0,     0,
2549
     189,     0,   252,   187,   252,   183,     0,   252,   181,   252,
2550
     252,     0,   294,   534,   532,   533,   518,   521,   524,   527,
2551
     530,   531,   519,   520,   522,   523,   525,   526,   528,   529,
2552
     535,   536,   501,   869,   871,   153,   160,   166,    52,    53,
2553
      54,    50,    51,   418,   601,   599,   584,     0,     0,   608,
2554
     640,     0,   721,   720,     0,   730,   731,   732,   728,   722,
2555
     723,   724,   733,    18,   858,   862,   769,   770,   768,   771,
2556
     843,   804,   784,   843,   773,   857,   791,   940,   939,   930,
2557
     946,   945,   953,   893,   955,   956,   963,   895,   897,  1014,
2558
       0,    57,     0,     0,     0,   327,   252,   226,     0,   252,
2559
     252,   252,     0,   252,   332,     0,  1108,     0,   301,    74,
2560
      78,    79,    83,    69,    67,    65,    64,    66,    68,    63,
2561
      70,    92,     0,   109,    94,    90,   100,   110,     0,     0,
2562
     111,   108,   119,   114,   115,   116,   117,   112,   121,     0,
2563
     250,   251,     0,     0,     0,     0,     0,     0,     0,     0,
2564
       0,     0,     0,   223,   584,     0,   604,   606,   607,     0,
2565
     610,   638,   622,   686,   719,   729,   856,   860,   864,     0,
2566
       0,     0,   793,     0,   944,   928,   927,   951,   961,  1012,
2567
     982,   975,   326,   253,     0,   252,   324,   167,     0,   330,
2568
     341,     0,     0,     0,     0,     0,     0,     0,   319,  1104,
2569
    1106,     0,    88,    72,    71,     0,     0,    71,    99,    99,
2570
       0,   101,   102,   103,   104,   105,    99,    99,     0,   307,
2571
     204,   188,   186,     0,   252,   184,   202,   182,     0,   252,
2572
     200,   252,   198,   197,   252,   195,   603,     0,    18,     0,
2573
       0,     0,     0,     0,     0,   602,   592,   456,   460,     0,
2574
     609,    18,   612,   623,   642,   859,     0,   775,   846,   844,
2575
     847,    18,     0,    18,   781,     0,   777,     0,     0,     0,
2576
       0,     0,     0,   789,   803,     0,     0,     0,    18,    18,
2577
      18,   943,     0,     0,   932,   947,   957,     0,  1016,     0,
2578
       0,   252,   252,   176,   179,   252,   334,   178,   214,   211,
2579
     212,   213,   218,     0,     0,   329,   328,   252,   252,   252,
2580
     335,   252,    93,    91,     0,    95,     0,     0,     0,     0,
2581
       0,   113,     0,     0,     0,     0,     0,     0,     0,   461,
2582
     590,   457,     0,     0,     0,   585,   589,   593,     0,   594,
2583
       0,   591,   462,   600,   611,     0,     0,     0,     0,     0,
2584
       0,     0,     0,     0,     0,   641,     0,     0,     0,     0,
2585
      18,     0,     0,     0,     0,     0,     0,     0,     0,    18,
2586
       0,     0,     0,     0,     0,     0,     0,     0,     0,   863,
2587
     842,     0,   848,     0,     0,   787,   788,   786,   785,   797,
2588
     800,   801,   802,   794,   795,     0,     0,   798,   792,     0,
2589
       0,   934,   935,   936,   941,     0,     0,     0,     0,     0,
2590
       0,    18,     0,     0,     0,     0,   918,   920,   931,     0,
2591
       0,     0,   950,     0,     0,     0,   960,     0,     0,    18,
2592
      18,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2593
       0,     0,     0,     0,     0,     0,  1015,  1007,     0,   331,
2594
     168,   325,   228,   180,     0,   252,     0,     0,     0,     0,
2595
       0,     0,    89,     0,     0,    96,   107,   106,   203,   185,
2596
     201,   252,   199,   252,   196,     0,     0,     0,     0,     0,
2597
     595,   596,     0,     0,     0,     0,     0,     0,     0,     0,
2598
     624,     0,   627,   628,   626,     0,     0,     0,     0,     0,
2599
     633,   625,     0,     0,    18,   639,   812,   813,   814,   815,
2600
     816,   817,   818,   819,   809,   850,   841,     0,     0,     0,
2601
     836,   830,   831,   832,   806,    18,     0,    18,    18,   825,
2602
     805,   808,     0,   823,     0,   810,    18,   807,     0,    18,
2603
     861,   849,   845,   796,   799,   967,   967,     0,   917,     0,
2604
       0,     0,     0,     0,     0,     0,     0,     0,   905,    18,
2605
       0,     0,     0,    18,     0,    18,     0,   929,     0,   965,
2606
     949,   948,   954,   952,   959,   958,   964,   962,   988,   986,
2607
    1005,     0,     0,     0,  1000,  1008,  1011,  1010,  1009,  1006,
2608
     983,     0,    18,    18,   987,    18,     0,     0,     0,   984,
2609
     985,    18,   989,    18,    18,  1013,   177,   252,   215,   227,
2610
     219,   340,     0,     0,     0,     0,     0,     0,     0,     0,
2611
     455,   457,   586,   587,   588,   597,   598,     0,     0,    58,
2612
       0,     0,     0,     0,     0,     0,     0,     0,   459,     0,
2613
       0,   631,   632,   428,   427,   634,   629,   630,   635,     0,
2614
     834,   833,   835,   838,   837,   826,    18,     0,   839,   824,
2615
     822,   811,   821,   827,   820,    18,   937,   938,     0,   924,
2616
     925,   926,   914,     0,   967,     0,   904,     0,   907,   913,
2617
     967,   906,   908,   909,     0,   922,   919,   923,   921,   966,
2618
     998,   999,  1001,   994,  1004,   993,     0,  1002,   997,   995,
2619
     996,   990,   991,   992,     0,   337,   338,   336,   339,    98,
2620
      97,   190,   252,   458,     0,     0,   462,   462,   462,   471,
2621
     472,   473,   474,   475,   476,   477,   478,   479,   480,   462,
2622
       0,     0,   636,   637,   829,   852,   851,   828,   840,   968,
2623
     915,   916,   912,   903,   902,   911,   910,  1003,     0,   462,
2624
     462,   467,   469,   468,   470,   462,   462,   853,     0,   252,
2625
     465,   466,   463,   464,   854,     0,   205
2626
};
2627

    
2628
  /* YYPGOTO[NTERM-NUM].  */
2629
static const yytype_int16 yypgoto[] =
2630
{
2631
   -1751, -1751, -1751, -1751,  -162,  -238,   -63,  -297,  -638, -1751,
2632
    -126,  -131,  1279,  1307, -1751, -1751, -1751,  -153, -1751, -1751,
2633
    -235, -1167, -1091,  1660, -1751, -1751,   931, -1322,   -84,  -177,
2634
     507,  -530, -1751,   897,   899,   900, -1751,   904,   738,   518,
2635
     524,  -412,  -670,  -456,   733, -1751, -1751, -1751, -1751,  1803,
2636
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2637
    -854,  1067,   867,  1623,  1343,  1679, -1751,  1298, -1751, -1751,
2638
   -1138, -1751,   442,  -154,  1415,   280, -1061, -1571,  2072, -1509,
2639
   -1496,  1416,   295, -1751, -1751,  1421, -1751, -1751, -1751, -1751,
2640
    -337, -1751, -1751, -1019, -1751,  -122,   947,    -4, -1751, -1751,
2641
     649,  1186,   815, -1028,   567, -1751,  -308, -1751,   297, -1751,
2642
   -1751, -1751,  2725,   -92, -1751,  -516, -1751,  1908,  1531,  -105,
2643
    -399,  1902, -1751,  -477, -1751, -1751, -1751, -1751, -1751, -1751,
2644
   -1751,  1097,  -620,  -400, -1751, -1751, -1680, -1751, -1751, -1751,
2645
   -1751,   317, -1751,  1160,   475, -1751,  1175, -1286,   162, -1750,
2646
   -1751,  -472, -1751, -1751, -1751, -1751, -1751,  -168, -1751, -1751,
2647
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2648
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2649
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,  1194,
2650
    1729, -1751, -1751, -1751, -1751,  1106,   636, -1751, -1751, -1751,
2651
     747, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2652
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2653
   -1751, -1751, -1751,  1288,  1291, -1751, -1751, -1751, -1751, -1751,
2654
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2655
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2656
   -1751, -1751, -1751, -1751, -1751,   721, -1751, -1751, -1751, -1751,
2657
   -1751, -1751, -1751,   629, -1751, -1751, -1751, -1751, -1751, -1751,
2658
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2659
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2660
     240, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2661
     392,   378, -1751, -1751, -1751, -1751,   234,   375, -1751, -1751,
2662
   -1751, -1751,   235,   381, -1539, -1751, -1751, -1751, -1751, -1751,
2663
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2664
   -1751,  1537, -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1751,
2665
   -1751, -1751, -1751, -1751,  1666,  1384, -1751, -1751, -1751, -1751,
2666
   -1751, -1751, -1751, -1751,  1135,  1715, -1751, -1751, -1751, -1751,
2667
   -1751, -1751, -1751, -1751, -1751, -1751, -1751, -1229, -1751, -1751,
2668
   -1751, -1751
2669
};
2670

    
2671
  /* YYDEFGOTO[NTERM-NUM].  */
2672
static const yytype_int16 yydefgoto[] =
2673
{
2674
      -1,     2,     3,    93,   606,   620,   607,  1561,   981,   394,
2675
     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
2676
     168,  1412,  1738,   743,  1523,  1264,  1265,  2110,   233,   524,
2677
    1602,  1689,  1459,  1460,  1461,  1462,  1470,  1463,  1603,  1604,
2678
    1605,  1607,  1608,  1695,  1610,  1464,  1472,  1296,  1297,   792,
2679
    1062,  1063,   169,   170,   171,    94,   588,    95,    96,   930,
2680
     931,   932,  1136,  1024,  1025,   727,   914,   934,    97,   587,
2681
    1342,  1343,  1666,   172,   429,  1778,   806,   430,   807,   431,
2682
     432,   433,  1782,   434,  1783,   435,   436,  1668,   389,   173,
2683
     390,   174,   175,   176,  1284,   177,   501,  1308,  1285,  1441,
2684
    1442,   786,   787,  1344,  1579,    98,   595,    99,   273,   954,
2685
     101,   102,   263,   274,   275,   352,   961,   639,   962,   276,
2686
     732,   728,  1239,  1029,   103,   238,   239,   104,   957,  1348,
2687
    1155,   958,  1053,  1054,   936,   937,  1980,   105,   106,   632,
2688
     277,   522,   850,   851,   532,   859,   860,  1726,  1955,  1727,
2689
    1728,  1969,  2115,    17,    18,    19,    20,   554,    21,    22,
2690
      23,   540,  1106,  1107,   880,  1512,    24,   542,    25,    26,
2691
      27,    28,    29,    30,    31,    32,    33,    34,   212,   578,
2692
      35,    36,    37,    38,    39,    40,    41,    42,    43,   182,
2693
     536,   107,  1165,   963,   108,  1351,  1636,  1729,  1821,  1635,
2694
    1526,  1352,  1354,  1529,  1640,  1732,  1356,    44,   109,  1170,
2695
     964,   110,  1358,  1734,  1836,  1733,  1642,  1359,    45,    46,
2696
      47,    48,   111,   674,   672,   112,   323,   324,  1222,  1015,
2697
     703,  1016,   325,   259,   113,   114,   715,   338,   339,   340,
2698
     341,   342,  1022,  1235,  1393,  1400,  1398,  1399,  1650,  1745,
2699
    1236,  1652,  1755,  1237,  1861,  1649,  1739,  1740,  1864,  2129,
2700
    2238,  2216,  1385,  1405,  1545,  1646,  1736,  1648,  1386,    49,
2701
      50,    51,    52,    53,    54,    55,    56,   895,   115,   116,
2702
     117,  1251,  1417,  1418,  1034,   118,  1415,  1899,  2044,  2046,
2703
    2152,  1764,  1763,  1656,  1416,  1413,  1762,  1654,  1653,  1558,
2704
    1414,  1562,  1657,  1903,  2052,  1765,  1563,  1566,  1658,  1907,
2705
    2056,  1766,  1567,  2050,  2146,   260,   119,  1258,  1035,   120,
2706
    1422,  1768,  1928,  2069,  1767,  1660,  1423,    57,    58,   121,
2707
     122,   755,   756,   362,   363,  1287,  1046,   758,    59,   377,
2708
     123,   614,   243,   617,   575,   576,   124,   125,    60,    61,
2709
      62,    63,    64,    65,   219,   585,   126,  1289,   378,   127,
2710
     383,   771,  1587,  1444,  1291,   772,   128,   502,   129,    66,
2711
     130,   131
2712
};
2713

    
2714
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
2715
     positive, shift that token.  If negative, reduce the rule whose
2716
     number is the opposite.  If YYTABLE_NINF, syntax error.  */
2717
static const yytype_int16 yytable[] =
2718
{
2719
     178,   671,   673,   428,   427,   242,   399,   525,   621,   794,
2720
     391,   398,   959,  1307,  1309,  1311,  1312,   361,  1286,   706,
2721
     322,  1564,   337,   597,   351,   376,   426,  1283,   598,   392,
2722
     360,   425,   557,  1075,  1429,   985,   579,  2036,   375,   382,
2723
    1041,  1487,  1482,   214,  1704,  1711,  -164,   776,  1714,   777,
2724
     548,   779,   780,  1772,  1438,  -164,  -164,  -164,  -164,  1135,
2725
    1269,  1956,  1773,  1774,  1080,  1081,   600,  1683,  1687,  1683,
2726
    1687,   224,   396,   397,   982,  1395,  -163,   396,   397,  1419,
2727
    1395,   775,   209,   619,   619,  -163,  -163,  -163,  -163,   384,
2728
    1269,   384,   668,   669,   385,   670,   385,  1779,   668,   669,
2729
     519,   670,   615,   597,   386,   555,   386,   537,   598,   650,
2730
    1270,  1271,  1272,  1273,  1274,  1275,  1276,  1277,   809,   810,
2731
    1380,   742,  1283,     1,   601,   602,   603,   604,   421,   422,
2732
     135,   136,   652,   423,  1278,   667,   221,  1279,   404,  1397,
2733
    1270,  1271,  1272,  1273,  1274,  1275,  1276,  1277,  1773,  1774,
2734
    1080,  1081,   420,  1280,  1593,  1594,  1595,   610,   700,  1780,
2735
     645,   597,  2000,   529,  1278,   556,   598,  1279,   709,  1596,
2736
    1597,  1598,  1781,   896,  1281,   504,   505,   506,   507,   508,
2737
     654,   597,   720,  1280,   633,   634,   598,   397,   210,  1410,
2738
     509,   510,   511,   512,   513,   514,   515,   516,   517,  1976,
2739
    1977,   518,   630,   261,  1281,   762,   520,   402,   659,   421,
2740
     422,  1080,  1081,  2029,   423,  1773,  1774,  1080,  1081,   986,
2741
     504,   505,   506,   507,   508,   646,   421,   422,  1080,  1081,
2742
     660,   423,  2064,   665,  1042,   509,   510,   511,   512,   513,
2743
     514,   515,   516,   517,  1599,  1600,   518,   688,   983,   605,
2744
     656,   982,  1031,   857,    67,   697,  1032,   504,   505,   506,
2745
     507,   508,   391,  2033,   391,   707,   391,   391,   710,   530,
2746
     789,   713,   509,   510,   511,   512,   513,   514,   515,   516,
2747
     517,   986,   189,   518,   215,   230,   231,   262,  1381,   597,
2748
     590,   227,   591,   597,   598,   592,   597,   590,   598,   591,
2749
     100,   598,   592,   858,  1617,   742,   228,   765,   403,   767,
2750
     504,   505,   506,   507,   508,  1517,  1143,   601,   602,   603,
2751
     604,   956,  2037,  1527,  1283,   509,   510,   511,   512,   513,
2752
     514,   515,   516,   517,   538,  1033,   518,   504,   505,   506,
2753
     507,   508,   597,   611,  1978,  1664,  1037,   598,   179,   180,
2754
     967,  1956,   509,   510,   511,   512,   513,   514,   515,   516,
2755
     517,   548,  1043,   518,  1027,  1779,  1754,   941,  2130,  2131,
2756
    2034,   790,  1611,  1998,  1977,   888,   889,   890,   891,   892,
2757
     695,   893,   894,   778,   897,   899,   593,   901,   902,   597,
2758
    2072,   651,   677,   987,   598,  1044,   785,   597,   597,   597,
2759
     678,  1261,   598,   598,   598,   795,   796,   797,   798,   799,
2760
     800,   336,  1574,   696,   653,   504,   505,   506,   507,   508,
2761
     808,  1623,   910,  1625,   220,   983,  1627,  1780,  1630,  1632,
2762
     509,   510,   511,   512,   513,   514,   515,   516,   517,   597,
2763
    1781,   518,   597,   619,   598,  1159,   597,   598,   943,   616,
2764
    1860,   598,  1039,   222,  1040,   987,   949,   504,   505,   506,
2765
     507,   508,   655,   601,   602,   603,   604,   601,   602,   603,
2766
     604,   181,   509,   510,   511,   512,   513,   514,   515,   516,
2767
     517,  1927,  1979,   518,   898,  1135,   393,  2147,   548,  2030,
2768
    1565,  1870,   699,   216,   599,   217,   218,  1430,  2031,  1221,
2769
     819,   820,   821,   822,   823,   824,   825,   826,   827,   828,
2770
     829,   830,   831,   832,   990,  1076,   984,   993,  1978,   995,
2771
     996,  1488,  1483,  1489,  1705,  1712,  -164,  1770,  1715,   946,
2772
    1585,  -164,   657,  1775,  2001,   211,   230,   231,  1776,  1528,
2773
    2062,  1977,   533,   534,   596,  1688,  1737,  1696,  1667,  1019,
2774
     223,  1746,  2073,   521,   597,  1096,  -163,  1283,  2027,   598,
2775
     387,  -163,   387,  1028,   597,  1560,   388,  1028,   388,   598,
2776
    1876,  1028,  2214,   960,   599,   601,   602,   603,   604,  1064,
2777
     811,  1065,   912,   631,   597,   601,   602,   603,   604,   598,
2778
     938,   397,   229,  1410,  1871,   940,  1138,  1532,   974,   424,
2779
     976,   904,  1050,   905,  1051,   601,   602,   603,   604,   399,
2780
    2014,  1055,   989,   549,   398,  2222,   531,  1269,   597,  2087,
2781
     997,  2225,   999,   598,  1001,  1586,  1003,  1004,  1005,  1006,
2782
    1007,  1008,   599,  1010,  1932,  1012,  1013,  2002,   245,   601,
2783
     602,   603,   604,  1803,  2112,  1017,  1283,  1817,  1805,  1020,
2784
    1806,  1401,   599,  1808,  1388,  1389,  1999,  1577,   428,   428,
2785
     566,   988,   427,  1139,  2079,   535,   225,  1270,  1271,  1272,
2786
    1273,  1274,  1275,  1276,  1277,  1741,  1818,  2065,  1097,   544,
2787
    1082,  1036,  2080,  1390,   426,  1978,  1775,   246,   226,   425,
2788
     232,  1278,  1199,  1367,  1279,   972,  1872,   424,  1048,   803,
2789
    1049,   804,   545,   550,  1533,  1052,   247,   608,  2066,   244,
2790
    1280,  2107,  1110,  1111,  1112,  1113,  1114,  1115,  1026,  1292,
2791
    1126,  1534,  1128,  1368,  1129,  1130,   567,   240,  1125,  2116,
2792
    1127,  1281,   813,  2081,   234,   241,  1304,   814,  1305,  2003,
2793
     179,   180,  1900,  1667,  1103,   635,   400,   973,  1901,  1102,
2794
    1819,  1820,  1283,  1283,   504,   505,   506,   507,   508,   666,
2795
     599,   594,   546,  1207,   599,  1544,   395,   599,   594,   509,
2796
     510,   511,   512,   513,   514,   515,   516,   517,  2108,  2048,
2797
     518,  1535,  1536,   815,  1742,  2194,  2195,  1269,   816,  1963,
2798
     401,  1058,  1609,   547,  2210,  2211,  2117,  2089,  1072,  1609,
2799
    1073,  1904,  1743,  1171,  1172,   235,   236,   237,  1905,   662,
2800
    1175,  1330,  2137,   599,  1331,  1089,  1332,  1090,  1067,  1964,
2801
    1183,  1184,   405,  2063,  1186,  1187,   406,  1717,  1718,  1190,
2802
    1191,   748,  1193,   551,    68,  1902,  1197,  1270,  1271,  1272,
2803
    1273,  1274,  1275,  1276,  1277,  1539,  2176,  1208,   552,   553,
2804
     344,  1142,  1719,  1965,   668,   669,  1223,   670,  1038,  1169,
2805
     599,  1278,  1581,   181,  1279,  1355,    69,   407,   599,   599,
2806
     599,  1164,  1168,  1582,  1540,  1541,    70,    71,    72,   408,
2807
    1280,  1267,  2067,   345,   346,   409,  1966,   347,  1391,   437,
2808
    2098,  1967,  2099,   438,  1906,   663,  1068,   348,  1720,  1721,
2809
      73,  1281,  1722,  1723,   410,  1862,  1174,  1968,  1724,   411,
2810
     599,  1863,  1178,   599,  1180,   412,  1283,   599,   185,   186,
2811
     664,   516,   517,   721,   722,   518,   413,   721,   722,  1250,
2812
    1257,  2149,  2150,  2151,   391,   723,  1744,   414,  1069,   723,
2813
     724,   523,  1249,  1256,   724,  1091,  1269,  1092,  1333,   528,
2814
    1335,  1524,  1825,   725,   904,  2068,  1152,   729,  1530,   726,
2815
    1826,  1480,    74,  1481,    75,  1827,    76,  1240,    77,   399,
2816
      78,    79,   539,    80,   398,   950,   951,   952,  1347,  1266,
2817
    1542,  1268,  1485,   541,  1486,    81,    82,    83,    84,    85,
2818
      86,   504,   505,   506,   507,   508,  1270,  1271,  1272,  1273,
2819
    1274,  1275,  1276,  1277,   396,   397,   509,   510,   511,   512,
2820
     513,   514,   515,   516,   517,  1559,   543,   518,  1796,  1797,
2821
    1278,   548,  1569,  1279,   558,   599,  1799,  1800,  1702,   749,
2822
    1703,    87,  1673,  1674,   559,   599,  1675,    88,  1707,  1280,
2823
    1708,  1676,  1677,    89,    90,   623,   624,   568,   569,   570,
2824
     571,   572,   573,   574,   785,   599,  1614,   560,  1616,   750,
2825
    1281,  1298,   214,  1299,  1300,  1301,  1302,   264,   751,   561,
2826
    1828,   265,   266,  1685,   562,   379,   563,  1396,  1314,   268,
2827
    1697,   230,   231,  1685,  1317,  1697,  1551,   564,  1282,   599,
2828
    1446,   565,  1425,   681,   682,  1447,  1448,  1449,  1450,   426,
2829
    1451,  1452,  1453,   582,   425,  1454,   577,  1455,  1456,   668,
2830
     669,  1411,   670,  1457,  1465,  1411,   583,   504,   505,   506,
2831
     507,   508,   584,  1756,  1757,   269,  1443,  1758,  1759,  1760,
2832
     270,  2228,   509,   510,   511,   512,   513,   514,   515,   516,
2833
     517,   685,   686,   518,   396,   397,   740,   741,   586,  1725,
2834
     589,  1829,  1830,   396,   397,  1382,  1395,   -61,   -61,  1116,
2835
     -61,   609,  1387,   613,  1392,  1831,  1832,  1833,   533,   534,
2836
    1402,  1834,   143,   144,   145,   612,  1117,   132,  2245,   133,
2837
     134,   135,   136,   137,   138,   139,   752,   753,   754,   618,
2838
    1424,   622,   140,   141,   805,  1518,  1519,   142,  1520,  1531,
2839
     183,   184,   187,   188,  1098,  1099,  1100,  1101,   213,   143,
2840
     144,   145,  1118,   944,   945,   625,  1522,  1148,  1149,  1761,
2841
     626,  1521,  1406,  1407,  1408,  1409,  1546,  1547,  1158,  1549,
2842
     504,   505,   506,   507,   508,  1070,   627,  1644,   628,  1554,
2843
    1150,  1151,  1555,  1320,  1321,   509,   510,   511,   512,   513,
2844
     514,   515,   516,   517,  1590,  1591,   518,   636,  -163,  1683,
2845
    1684,  1885,   146,   147,   415,   416,   417,   418,   637,  1432,
2846
     844,   845,   846,   640,  1433,  1434,   629,   148,   149,  1812,
2847
    1813,  1440,  1935,  1936,   150,   151,   152,   638,  1679,   153,
2848
     641,   847,   848,  1119,   849,   154,  1960,  1961,  1601,  1478,
2849
     155,  1479,  1972,  1973,   642,  1601,   643,    91,  2105,  2106,
2850
    1396,  2113,  2114,  1537,  1538,   644,    92,   647,  1446,  1691,
2851
    1692,  1693,  1694,  1447,  1448,  1449,  1450,  1548,  1451,  1452,
2852
    1453,   648,   426,  1454,   649,  1455,  1456,   425,  2119,  2120,
2853
    1411,  1457,  1730,  1946,  1947,   504,   505,   506,   507,   508,
2854
     580,   581,   658,   661,   201,   676,   675,  1568,   881,   683,
2855
     509,   510,   511,   512,   513,   514,   515,   516,   517,   679,
2856
     680,   518,   684,   687,   202,   882,   203,   204,   689,   526,
2857
     527,   132,   690,   133,   134,   135,   136,   137,   138,   139,
2858
    1886,   693,   691,   694,   692,  1887,   140,   141,   698,   264,
2859
    1835,   142,   701,   265,   266,   702,   704,  1160,  1661,   705,
2860
     380,   268,   711,   143,   144,   145,  1665,   708,   717,  1120,
2861
    1888,   381,   712,   714,   883,  1572,   785,   718,   719,   731,
2862
    1121,  1578,   733,   734,   735,   205,   206,   207,   208,   736,
2863
    1682,   737,   738,  1889,  1638,   132,  1690,   133,   134,   135,
2864
     136,   137,   138,   139,   739,  1890,   744,   269,   745,   746,
2865
     140,   141,   270,   747,   761,   142,   146,   147,   763,  1619,
2866
     764,   757,  1303,   766,   759,   760,   768,   143,   144,   145,
2867
    1645,   148,   149,   769,  1815,   770,   884,   773,   150,   151,
2868
     152,  1122,   774,   153,   885,   886,  1396,   781,  1396,   154,
2869
     782,   783,   784,   788,   155,   887,   791,   518,  1161,  1162,
2870
     801,   802,   812,   817,  1777,   818,  1224,   852,   426,  1792,
2871
     426,   853,  1601,   425,  1601,   425,   854,  1123,  1124,   855,
2872
     146,   147,   415,   416,   417,   418,   856,   861,  1466,  2199,
2873
    2200,  2201,  2202,  2203,   863,   148,   149,   864,   900,   903,
2874
     906,   907,   150,   151,   152,   908,   911,   153,   935,   953,
2875
     619,  1816,   939,   154,   965,   966,  1891,  1892,   155,   913,
2876
     942,  1893,  1894,   969,  1895,  1670,  1671,  1672,   955,  1440,
2877
    1866,   975,  1896,  1897,   948,  1869,   977,  1873,  1874,   980,
2878
    1877,   504,   505,   506,   507,   508,   968,   970,  1473,   971,
2879
     978,  1225,   991,   979,   992,  1000,   509,   510,   511,   512,
2880
     513,   514,   515,   516,   517,   994,   998,   518,  1002,  1009,
2881
    2074,  1018,   504,   505,   506,   507,   508,  2204,  2205,  2206,
2882
    2207,  2208,  1942,  1809,  1943,  1944,  1945,   509,   510,   511,
2883
     512,   513,   514,   515,   516,   517,  1226,  1011,   518,  1030,
2884
     156,  1014,   749,  1047,  1056,  1810,  1059,   157,  1060,  1061,
2885
    1079,  1074,  1077,  1970,  1086,  1088,  1974,  1087,  1824,  1981,
2886
    1093,  1898,  1095,  1108,  1109,  1132,  1994,  1140,  1865,  1141,
2887
    1867,  1144,  2004,  1593,  1594,  1595,  1147,  1154,  2010,  2011,
2888
    1156,  2013,  2015,  1153,  2017,  1881,  1882,  1883,  1596,  1597,
2889
    1598,  2021,  1157,  1173,  1181,  1176,  1177,  1262,  1227,  1057,
2890
    1179,  1238,  1908,  2023,  2024,  1188,  1189,  2025,  2026,  2102,
2891
    2103,  2104,  1192,  1717,  2231,  2232,  2233,  1228,  1194,  1229,
2892
    1195,  1196,  1198,  1230,  1200,  1231,  1201,  2234,  2049,  1232,
2893
    1233,  1202,  2049,  1203,  2126,  2127,  2058,  1263,  1719,  1204,
2894
    1205,  1206,  2070,  1163,  1411,  1209,  1288,  2240,  2241,  1290,
2895
    1294,  2082,  1210,  2242,  2243,  1295,  1458,  1211,  1747,  1241,
2896
    1259,  1933,  1260,  1599,  1600,  1313,  1315,  1996,  1316,  1322,
2897
    1777,  1323,  1777,  1938,  1939,  1940,  2009,  1941,  1324,  1325,
2898
    1326,  1327,  1328,  1334,  1329,   619,   619,   619,  1336,  1337,
2899
    1338,  1339,  1340,  2111,  1748,  1345,  1350,  1357,  1360,  1376,
2900
    1362,  1749,  1346,  2121,  2122,  2123,  2124,  2125,  1361,  1377,
2901
     619,   619,  2212,  2213,  1066,  1363,  1364,  1365,  2038,  1366,
2902
    1369,  1370,  2215,  1375,  1371,  2132,  2133,  2134,  1717,  1909,
2903
    1378,  1372,  1373,  1374,  1379,  1383,  2059,  2060,  1394,  1384,
2904
    2140,  1403,  2141,  1404,   156,  -322,  2143,  1420,  1421,  1426,
2905
    1428,   157,  1234,  1719,  1431,  1435,  1436,  1439,  1445,  2154,
2906
    1484,  2156,  1490,  2158,  1491,  2160,  1513,  1514,  2162,  2163,
2907
    1516,  1525,  1543,  1550,  1552,  1553,  2169,  1986,  1987,  1988,
2908
    1989,  1990,  1991,  1992,  1993,  1750,  1751,  1556,  1752,  2170,
2909
    2171,  2172,  1557,  1570,  1571,  1580,  1583,  1584,  1910,  2173,
2910
    1588,  1911,  1912,  1589,  2178,  2179,  2180,  1592,   156,  1913,
2911
    1606,  2128,  1612,  1618,  1914,   157,  1622,  1915,  1626,  1628,
2912
    1633,  1916,  1637,  1641,  2189,  2190,  1639,  1493,  1494,  1495,
2913
    1643,  1647,  2135,  1655,  2138,  2139,  1659,  1680,   504,   505,
2914
     506,   507,   508,  2142,  1681,  1663,  2144,  1700,  1686,  1698,
2915
    1917,  1701,  1709,   509,   510,   511,   512,   513,   514,   515,
2916
     516,   517,  1731,  1706,   518,  1710,  2161,  1798,  1713,  1769,
2917
    2165,  1771,  2167,  1918,  1801,  1787,  2220,  1788,  1789,  1790,
2918
    1802,  2221,  1791,  2223,  1804,  2224,  1807,  1811,  1814,  1822,
2919
    1823,  1868,  2226,  1875,  1878,  1879,  1880,  1884,  1930,  2174,
2920
    2175,  1934,  2177,  1951,  1929,  1717,  1957,  1937,  2181,  1948,
2921
    2182,  2183,   132,  1949,   133,   134,   135,   136,   137,   138,
2922
     139,  1962,  1971,  1984,  1975,  1919,  1953,   140,   141,  1306,
2923
    1985,  1995,   142,  1950,  1958,  1753,  1496,  1497,  1498,  1499,
2924
    1500,  1501,  1952,  1954,   143,   144,   145,  1959,  1982,  1983,
2925
    1997,   132,  2006,   133,   134,   135,   136,   137,   138,   139,
2926
    1071,  2005,  2007,  2217,  2008,  2016,   140,   141,  1310,  2012,
2927
    2018,   142,  2219,  2184,  2019,  2020,  1920,  1921,  1922,  1923,
2928
    1924,  2022,  1925,   143,   144,   145,  2032,  2035,  2039,  2040,
2929
    2042,  1078,  2041,  2047,  2043,  2045,  2053,   146,   147,  1564,
2930
    1502,  1503,  1504,  1505,  1506,  1507,  1508,  1509,  1510,  1511,
2931
    2057,  2061,   148,   149,  2075,  2071,  2076,  2084,  2083,   150,
2932
     151,   152,  2077,  2078,   153,  2085,  2091,  2096,  2097,  2100,
2933
     154,  2101,  2109,  2136,  2145,   155,   146,   147,  2118,  2155,
2934
    2157,  2148,  2153,  2164,  1104,  2185,  2237,  2192,  2186,  2187,
2935
    1926,   148,   149,  2188,  2191,  2196,  2197,  2198,   150,   151,
2936
     152,  2209,  2239,   153,  2229,  2218,  2227,  2230,  2235,   154,
2937
    2236,  2244,  1105,   132,   155,   133,   134,   135,   136,   137,
2938
     138,   139,  1794,  1427,  1467,  2246,  1468,  1469,   140,   141,
2939
     878,  1471,  1615,   142,  1795,  1613,  1515,  1341,  1793,  1094,
2940
     793,   933,  1137,  1931,  2088,   143,   144,   145,   132,   879,
2941
     133,   134,   135,   136,   137,   138,   139,  1083,   419,  1084,
2942
    1437,  2090,  1678,   140,   141,  1624,  1085,  1784,   142,   504,
2943
     505,   506,   507,   508,  1293,  1573,   716,  1021,   730,  1318,
2944
     143,   144,   145,  1349,   509,   510,   511,   512,   513,   514,
2945
     515,   516,   517,  2193,   862,   518,  1319,  1353,   146,   147,
2946
    1716,  1634,  1182,  1185,  1651,  1735,  2159,  2028,  2166,  2051,
2947
    2055,  2168,   947,   148,   149,  2054,     0,     0,  1131,     0,
2948
     150,   151,   152,  1045,     0,   153,   909,     0,     0,     0,
2949
       0,   154,     0,   146,   147,     0,   155,     0,     0,     0,
2950
       0,     0,     0,     0,   439,     0,     0,     0,   148,   149,
2951
       0,     0,     0,     0,     0,   150,   151,   152,     0,     0,
2952
     153,     0,   190,   191,     0,     0,   154,     0,     0,     0,
2953
     132,   155,   133,   134,   135,   136,   137,   138,   139,     0,
2954
       0,     0,     0,     0,     0,   140,   141,  1629,     0,   440,
2955
     142,   192,     0,     0,     0,     0,     0,     0,   193,     0,
2956
       0,     0,   143,   144,   145,   132,     0,   133,   134,   135,
2957
     136,   137,   138,   139,     0,     0,     0,   194,     0,   195,
2958
     140,   141,  1631,     0,     0,   142,     0,   196,     0,     0,
2959
       0,     0,     0,     0,     0,     0,     0,   143,   144,   145,
2960
       0,     0,   197,   441,   442,   443,     0,   444,   445,   446,
2961
     447,   448,     0,     0,     0,   146,   147,  1145,     0,   833,
2962
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2963
     148,   149,     0,     0,     0,     0,     0,   150,   151,   152,
2964
       0,     0,   153,   834,     0,   835,     0,     0,   154,     0,
2965
     146,   147,     0,   155,     0,     0,     0,     0,     0,     0,
2966
       0,     0,     0,     0,     0,   148,   149,     0,     0,     0,
2967
     836,     0,   150,   151,   152,     0,   198,   153,   837,   838,
2968
       0,   839,   840,   154,     0,   156,     0,     0,   155,   841,
2969
     842,   843,   157,   132,     0,   133,   134,   135,   136,   137,
2970
     138,   139,     0,   449,     0,     0,     0,     0,   140,   141,
2971
       0,     0,     0,   142,     0,     0,     0,   504,   505,   506,
2972
     507,   508,     0,     0,   156,   143,   144,   145,     0,     0,
2973
       0,   157,   509,   510,   511,   512,   513,   514,   515,   516,
2974
     517,     0,     0,   518,   915,   916,   917,   918,   919,   920,
2975
     921,   922,   923,     0,   924,   925,   926,   927,   928,   929,
2976
       0,     0,   199,   450,     0,     0,     0,     0,     0,     0,
2977
     439,     0,     0,     0,     0,     0,     0,   200,   146,   147,
2978
     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
2979
       0,     0,     0,   148,   149,     0,     0,     0,     0,     0,
2980
     150,   151,   152,     0,     0,   153,     0,   461,   462,     0,
2981
       0,   154,     0,     0,     0,     0,   155,     0,     0,     0,
2982
       0,   504,   505,   506,   507,   508,     0,     0,     0,     0,
2983
     463,   464,   465,   466,     0,     0,   509,   510,   511,   512,
2984
     513,   514,   515,   516,   517,  -317,   156,   518,   504,   505,
2985
     506,   507,   508,   157,     0,     0,     0,     0,     0,     0,
2986
       0,     0,     0,   509,   510,   511,   512,   513,   514,   515,
2987
     516,   517,     0,     0,   518,   504,   505,   506,   507,   508,
2988
       0,   156,     0,     0,     0,     0,     0,     0,   157,     0,
2989
     509,   510,   511,   512,   513,   514,   515,   516,   517,     0,
2990
       0,   518,   504,   505,   506,   507,   508,     0,  1146,     0,
2991
       0,   467,   468,     0,     0,     0,     0,   509,   510,   511,
2992
     512,   513,   514,   515,   516,   517,   469,   470,   518,     0,
2993
       0,     0,     0,   471,   472,   473,   474,   475,   476,   477,
2994
     478,   479,   480,   481,   482,   483,   484,   485,   486,   487,
2995
     488,   489,   490,   491,   492</