~ubuntu-branches/ubuntu/natty/pgpool2/natty

« back to all changes in this revision

Viewing changes to parser/gram.c

  • Committer: Bazaar Package Importer
  • Author(s): Peter Eisentraut
  • Date: 2007-03-21 13:18:33 UTC
  • Revision ID: james.westby@ubuntu.com-20070321131833-0kj07cu429j8b94n
Tags: upstream-1.0.2
ImportĀ upstreamĀ versionĀ 1.0.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* A Bison parser, made by GNU Bison 1.875c.  */
 
2
 
 
3
/* Skeleton parser for Yacc-like parsing with Bison,
 
4
   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
5
 
 
6
   This program is free software; you can redistribute it and/or modify
 
7
   it under the terms of the GNU General Public License as published by
 
8
   the Free Software Foundation; either version 2, or (at your option)
 
9
   any later version.
 
10
 
 
11
   This program is distributed in the hope that it will be useful,
 
12
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
14
   GNU General Public License for more details.
 
15
 
 
16
   You should have received a copy of the GNU General Public License
 
17
   along with this program; if not, write to the Free Software
 
18
   Foundation, Inc., 59 Temple Place - Suite 330,
 
19
   Boston, MA 02111-1307, USA.  */
 
20
 
 
21
/* As a special exception, when this file is copied by Bison into a
 
22
   Bison output file, you may use that output file without restriction.
 
23
   This special exception was added by the Free Software Foundation
 
24
   in version 1.24 of Bison.  */
 
25
 
 
26
/* Written by Richard Stallman by simplifying the original so called
 
27
   ``semantic'' parser.  */
 
28
 
 
29
/* All symbols defined below should begin with yy or YY, to avoid
 
30
   infringing on user name space.  This should be done even for local
 
31
   variables, as they might otherwise be expanded by user macros.
 
32
   There are some unavoidable exceptions within include files to
 
33
   define necessary library symbols; they are noted "INFRINGES ON
 
34
   USER NAME SPACE" below.  */
 
35
 
 
36
/* Identify Bison output.  */
 
37
#define YYBISON 1
 
38
 
 
39
/* Skeleton name.  */
 
40
#define YYSKELETON_NAME "yacc.c"
 
41
 
 
42
/* Pure parsers.  */
 
43
#define YYPURE 0
 
44
 
 
45
/* Using locations.  */
 
46
#define YYLSP_NEEDED 0
 
47
 
 
48
 
 
49
 
 
50
/* Tokens.  */
 
51
#ifndef YYTOKENTYPE
 
52
# define YYTOKENTYPE
 
53
   /* Put the tokens into the symbol table, so that GDB and other debuggers
 
54
      know about them.  */
 
55
   enum yytokentype {
 
56
     ABORT_P = 258,
 
57
     ABSOLUTE_P = 259,
 
58
     ACCESS = 260,
 
59
     ACTION = 261,
 
60
     ADD = 262,
 
61
     ADMIN = 263,
 
62
     AFTER = 264,
 
63
     AGGREGATE = 265,
 
64
     ALL = 266,
 
65
     ALSO = 267,
 
66
     ALTER = 268,
 
67
     ANALYSE = 269,
 
68
     ANALYZE = 270,
 
69
     AND = 271,
 
70
     ANY = 272,
 
71
     ARRAY = 273,
 
72
     AS = 274,
 
73
     ASC = 275,
 
74
     ASSERTION = 276,
 
75
     ASSIGNMENT = 277,
 
76
     ASYMMETRIC = 278,
 
77
     AT = 279,
 
78
     AUTHORIZATION = 280,
 
79
     BACKWARD = 281,
 
80
     BEFORE = 282,
 
81
     BEGIN_P = 283,
 
82
     BETWEEN = 284,
 
83
     BIGINT = 285,
 
84
     BINARY = 286,
 
85
     BIT = 287,
 
86
     BOOLEAN_P = 288,
 
87
     BOTH = 289,
 
88
     BY = 290,
 
89
     CACHE = 291,
 
90
     CALLED = 292,
 
91
     CASCADE = 293,
 
92
     CASE = 294,
 
93
     CAST = 295,
 
94
     CHAIN = 296,
 
95
     CHAR_P = 297,
 
96
     CHARACTER = 298,
 
97
     CHARACTERISTICS = 299,
 
98
     CHECK = 300,
 
99
     CHECKPOINT = 301,
 
100
     CLASS = 302,
 
101
     CLOSE = 303,
 
102
     CLUSTER = 304,
 
103
     COALESCE = 305,
 
104
     COLLATE = 306,
 
105
     COLUMN = 307,
 
106
     COMMENT = 308,
 
107
     COMMIT = 309,
 
108
     COMMITTED = 310,
 
109
     CONNECTION = 311,
 
110
     CONSTRAINT = 312,
 
111
     CONSTRAINTS = 313,
 
112
     CONVERSION_P = 314,
 
113
     CONVERT = 315,
 
114
     COPY = 316,
 
115
     CREATE = 317,
 
116
     CREATEDB = 318,
 
117
     CREATEROLE = 319,
 
118
     CREATEUSER = 320,
 
119
     CROSS = 321,
 
120
     CSV = 322,
 
121
     CURRENT_DATE = 323,
 
122
     CURRENT_ROLE = 324,
 
123
     CURRENT_TIME = 325,
 
124
     CURRENT_TIMESTAMP = 326,
 
125
     CURRENT_USER = 327,
 
126
     CURSOR = 328,
 
127
     CYCLE = 329,
 
128
     DATABASE = 330,
 
129
     DAY_P = 331,
 
130
     DEALLOCATE = 332,
 
131
     DEC = 333,
 
132
     DECIMAL_P = 334,
 
133
     DECLARE = 335,
 
134
     DEFAULT = 336,
 
135
     DEFAULTS = 337,
 
136
     DEFERRABLE = 338,
 
137
     DEFERRED = 339,
 
138
     DEFINER = 340,
 
139
     DELETE_P = 341,
 
140
     DELIMITER = 342,
 
141
     DELIMITERS = 343,
 
142
     DESC = 344,
 
143
     DISABLE_P = 345,
 
144
     DISTINCT = 346,
 
145
     DO = 347,
 
146
     DOMAIN_P = 348,
 
147
     DOUBLE_P = 349,
 
148
     DROP = 350,
 
149
     EACH = 351,
 
150
     ELSE = 352,
 
151
     ENABLE_P = 353,
 
152
     ENCODING = 354,
 
153
     ENCRYPTED = 355,
 
154
     END_P = 356,
 
155
     ESCAPE = 357,
 
156
     EXCEPT = 358,
 
157
     EXCLUDING = 359,
 
158
     EXCLUSIVE = 360,
 
159
     EXECUTE = 361,
 
160
     EXISTS = 362,
 
161
     EXPLAIN = 363,
 
162
     EXTERNAL = 364,
 
163
     EXTRACT = 365,
 
164
     FALSE_P = 366,
 
165
     FETCH = 367,
 
166
     FIRST_P = 368,
 
167
     FLOAT_P = 369,
 
168
     FOR = 370,
 
169
     FORCE = 371,
 
170
     FOREIGN = 372,
 
171
     FORWARD = 373,
 
172
     FREEZE = 374,
 
173
     FROM = 375,
 
174
     FULL = 376,
 
175
     FUNCTION = 377,
 
176
     GLOBAL = 378,
 
177
     GRANT = 379,
 
178
     GRANTED = 380,
 
179
     GREATEST = 381,
 
180
     GROUP_P = 382,
 
181
     HANDLER = 383,
 
182
     HAVING = 384,
 
183
     HEADER = 385,
 
184
     HOLD = 386,
 
185
     HOUR_P = 387,
 
186
     ILIKE = 388,
 
187
     IMMEDIATE = 389,
 
188
     IMMUTABLE = 390,
 
189
     IMPLICIT_P = 391,
 
190
     IN_P = 392,
 
191
     INCLUDING = 393,
 
192
     INCREMENT = 394,
 
193
     INDEX = 395,
 
194
     INHERIT = 396,
 
195
     INHERITS = 397,
 
196
     INITIALLY = 398,
 
197
     INNER_P = 399,
 
198
     INOUT = 400,
 
199
     INPUT_P = 401,
 
200
     INSENSITIVE = 402,
 
201
     INSERT = 403,
 
202
     INSTEAD = 404,
 
203
     INT_P = 405,
 
204
     INTEGER = 406,
 
205
     INTERSECT = 407,
 
206
     INTERVAL = 408,
 
207
     INTO = 409,
 
208
     INVOKER = 410,
 
209
     IS = 411,
 
210
     ISNULL = 412,
 
211
     ISOLATION = 413,
 
212
     JOIN = 414,
 
213
     KEY = 415,
 
214
     LANCOMPILER = 416,
 
215
     LANGUAGE = 417,
 
216
     LARGE_P = 418,
 
217
     LAST_P = 419,
 
218
     LEADING = 420,
 
219
     LEAST = 421,
 
220
     LEFT = 422,
 
221
     LEVEL = 423,
 
222
     LIKE = 424,
 
223
     LIMIT = 425,
 
224
     LISTEN = 426,
 
225
     LOAD = 427,
 
226
     LOCAL = 428,
 
227
     LOCALTIME = 429,
 
228
     LOCALTIMESTAMP = 430,
 
229
     LOCATION = 431,
 
230
     LOCK_P = 432,
 
231
     LOGIN_P = 433,
 
232
     MATCH = 434,
 
233
     MAXVALUE = 435,
 
234
     MINUTE_P = 436,
 
235
     MINVALUE = 437,
 
236
     MODE = 438,
 
237
     MONTH_P = 439,
 
238
     MOVE = 440,
 
239
     NAMES = 441,
 
240
     NATIONAL = 442,
 
241
     NATURAL = 443,
 
242
     NCHAR = 444,
 
243
     NEW = 445,
 
244
     NEXT = 446,
 
245
     NO = 447,
 
246
     NOCREATEDB = 448,
 
247
     NOCREATEROLE = 449,
 
248
     NOCREATEUSER = 450,
 
249
     NOINHERIT = 451,
 
250
     NOLOGIN_P = 452,
 
251
     NONE = 453,
 
252
     NOSUPERUSER = 454,
 
253
     NOT = 455,
 
254
     NOTHING = 456,
 
255
     NOTIFY = 457,
 
256
     NOTNULL = 458,
 
257
     NOWAIT = 459,
 
258
     NULL_P = 460,
 
259
     NULLIF = 461,
 
260
     NUMERIC = 462,
 
261
     OBJECT_P = 463,
 
262
     OF = 464,
 
263
     OFF = 465,
 
264
     OFFSET = 466,
 
265
     OIDS = 467,
 
266
     OLD = 468,
 
267
     ON = 469,
 
268
     ONLY = 470,
 
269
     OPERATOR = 471,
 
270
     OPTION = 472,
 
271
     OR = 473,
 
272
     ORDER = 474,
 
273
     OUT_P = 475,
 
274
     OUTER_P = 476,
 
275
     OVERLAPS = 477,
 
276
     OVERLAY = 478,
 
277
     OWNER = 479,
 
278
     PARTIAL = 480,
 
279
     PASSWORD = 481,
 
280
     PLACING = 482,
 
281
     POSITION = 483,
 
282
     PRECISION = 484,
 
283
     PRESERVE = 485,
 
284
     PREPARE = 486,
 
285
     PREPARED = 487,
 
286
     PRIMARY = 488,
 
287
     PRIOR = 489,
 
288
     PRIVILEGES = 490,
 
289
     PROCEDURAL = 491,
 
290
     PROCEDURE = 492,
 
291
     QUOTE = 493,
 
292
     READ = 494,
 
293
     REAL = 495,
 
294
     RECHECK = 496,
 
295
     REFERENCES = 497,
 
296
     REINDEX = 498,
 
297
     RELATIVE_P = 499,
 
298
     RELEASE = 500,
 
299
     RENAME = 501,
 
300
     REPEATABLE = 502,
 
301
     REPLACE = 503,
 
302
     RESET = 504,
 
303
     RESTART = 505,
 
304
     RESTRICT = 506,
 
305
     RETURNS = 507,
 
306
     REVOKE = 508,
 
307
     RIGHT = 509,
 
308
     ROLE = 510,
 
309
     ROLLBACK = 511,
 
310
     ROW = 512,
 
311
     ROWS = 513,
 
312
     RULE = 514,
 
313
     SAVEPOINT = 515,
 
314
     SCHEMA = 516,
 
315
     SCROLL = 517,
 
316
     SECOND_P = 518,
 
317
     SECURITY = 519,
 
318
     SELECT = 520,
 
319
     SEQUENCE = 521,
 
320
     SERIALIZABLE = 522,
 
321
     SESSION = 523,
 
322
     SESSION_USER = 524,
 
323
     SET = 525,
 
324
     SETOF = 526,
 
325
     SHARE = 527,
 
326
     SHOW = 528,
 
327
     SIMILAR = 529,
 
328
     SIMPLE = 530,
 
329
     SMALLINT = 531,
 
330
     SOME = 532,
 
331
     STABLE = 533,
 
332
     START = 534,
 
333
     STATEMENT = 535,
 
334
     STATISTICS = 536,
 
335
     STDIN = 537,
 
336
     STDOUT = 538,
 
337
     STORAGE = 539,
 
338
     STRICT_P = 540,
 
339
     SUBSTRING = 541,
 
340
     SUPERUSER_P = 542,
 
341
     SYMMETRIC = 543,
 
342
     SYSID = 544,
 
343
     SYSTEM_P = 545,
 
344
     TABLE = 546,
 
345
     TABLESPACE = 547,
 
346
     TEMP = 548,
 
347
     TEMPLATE = 549,
 
348
     TEMPORARY = 550,
 
349
     THEN = 551,
 
350
     TIME = 552,
 
351
     TIMESTAMP = 553,
 
352
     TO = 554,
 
353
     TOAST = 555,
 
354
     TRAILING = 556,
 
355
     TRANSACTION = 557,
 
356
     TREAT = 558,
 
357
     TRIGGER = 559,
 
358
     TRIM = 560,
 
359
     TRUE_P = 561,
 
360
     TRUNCATE = 562,
 
361
     TRUSTED = 563,
 
362
     TYPE_P = 564,
 
363
     UNCOMMITTED = 565,
 
364
     UNENCRYPTED = 566,
 
365
     UNION = 567,
 
366
     UNIQUE = 568,
 
367
     UNKNOWN = 569,
 
368
     UNLISTEN = 570,
 
369
     UNTIL = 571,
 
370
     UPDATE = 572,
 
371
     USER = 573,
 
372
     USING = 574,
 
373
     VACUUM = 575,
 
374
     VALID = 576,
 
375
     VALIDATOR = 577,
 
376
     VALUES = 578,
 
377
     VARCHAR = 579,
 
378
     VARYING = 580,
 
379
     VERBOSE = 581,
 
380
     VIEW = 582,
 
381
     VOLATILE = 583,
 
382
     WHEN = 584,
 
383
     WHERE = 585,
 
384
     WITH = 586,
 
385
     WITHOUT = 587,
 
386
     WORK = 588,
 
387
     WRITE = 589,
 
388
     YEAR_P = 590,
 
389
     ZONE = 591,
 
390
     UNIONJOIN = 592,
 
391
     IDENT = 593,
 
392
     FCONST = 594,
 
393
     SCONST = 595,
 
394
     BCONST = 596,
 
395
     XCONST = 597,
 
396
     Op = 598,
 
397
     ICONST = 599,
 
398
     PARAM = 600,
 
399
     POSTFIXOP = 601,
 
400
     UMINUS = 602,
 
401
     TYPECAST = 603
 
402
   };
 
403
#endif
 
404
#define ABORT_P 258
 
405
#define ABSOLUTE_P 259
 
406
#define ACCESS 260
 
407
#define ACTION 261
 
408
#define ADD 262
 
409
#define ADMIN 263
 
410
#define AFTER 264
 
411
#define AGGREGATE 265
 
412
#define ALL 266
 
413
#define ALSO 267
 
414
#define ALTER 268
 
415
#define ANALYSE 269
 
416
#define ANALYZE 270
 
417
#define AND 271
 
418
#define ANY 272
 
419
#define ARRAY 273
 
420
#define AS 274
 
421
#define ASC 275
 
422
#define ASSERTION 276
 
423
#define ASSIGNMENT 277
 
424
#define ASYMMETRIC 278
 
425
#define AT 279
 
426
#define AUTHORIZATION 280
 
427
#define BACKWARD 281
 
428
#define BEFORE 282
 
429
#define BEGIN_P 283
 
430
#define BETWEEN 284
 
431
#define BIGINT 285
 
432
#define BINARY 286
 
433
#define BIT 287
 
434
#define BOOLEAN_P 288
 
435
#define BOTH 289
 
436
#define BY 290
 
437
#define CACHE 291
 
438
#define CALLED 292
 
439
#define CASCADE 293
 
440
#define CASE 294
 
441
#define CAST 295
 
442
#define CHAIN 296
 
443
#define CHAR_P 297
 
444
#define CHARACTER 298
 
445
#define CHARACTERISTICS 299
 
446
#define CHECK 300
 
447
#define CHECKPOINT 301
 
448
#define CLASS 302
 
449
#define CLOSE 303
 
450
#define CLUSTER 304
 
451
#define COALESCE 305
 
452
#define COLLATE 306
 
453
#define COLUMN 307
 
454
#define COMMENT 308
 
455
#define COMMIT 309
 
456
#define COMMITTED 310
 
457
#define CONNECTION 311
 
458
#define CONSTRAINT 312
 
459
#define CONSTRAINTS 313
 
460
#define CONVERSION_P 314
 
461
#define CONVERT 315
 
462
#define COPY 316
 
463
#define CREATE 317
 
464
#define CREATEDB 318
 
465
#define CREATEROLE 319
 
466
#define CREATEUSER 320
 
467
#define CROSS 321
 
468
#define CSV 322
 
469
#define CURRENT_DATE 323
 
470
#define CURRENT_ROLE 324
 
471
#define CURRENT_TIME 325
 
472
#define CURRENT_TIMESTAMP 326
 
473
#define CURRENT_USER 327
 
474
#define CURSOR 328
 
475
#define CYCLE 329
 
476
#define DATABASE 330
 
477
#define DAY_P 331
 
478
#define DEALLOCATE 332
 
479
#define DEC 333
 
480
#define DECIMAL_P 334
 
481
#define DECLARE 335
 
482
#define DEFAULT 336
 
483
#define DEFAULTS 337
 
484
#define DEFERRABLE 338
 
485
#define DEFERRED 339
 
486
#define DEFINER 340
 
487
#define DELETE_P 341
 
488
#define DELIMITER 342
 
489
#define DELIMITERS 343
 
490
#define DESC 344
 
491
#define DISABLE_P 345
 
492
#define DISTINCT 346
 
493
#define DO 347
 
494
#define DOMAIN_P 348
 
495
#define DOUBLE_P 349
 
496
#define DROP 350
 
497
#define EACH 351
 
498
#define ELSE 352
 
499
#define ENABLE_P 353
 
500
#define ENCODING 354
 
501
#define ENCRYPTED 355
 
502
#define END_P 356
 
503
#define ESCAPE 357
 
504
#define EXCEPT 358
 
505
#define EXCLUDING 359
 
506
#define EXCLUSIVE 360
 
507
#define EXECUTE 361
 
508
#define EXISTS 362
 
509
#define EXPLAIN 363
 
510
#define EXTERNAL 364
 
511
#define EXTRACT 365
 
512
#define FALSE_P 366
 
513
#define FETCH 367
 
514
#define FIRST_P 368
 
515
#define FLOAT_P 369
 
516
#define FOR 370
 
517
#define FORCE 371
 
518
#define FOREIGN 372
 
519
#define FORWARD 373
 
520
#define FREEZE 374
 
521
#define FROM 375
 
522
#define FULL 376
 
523
#define FUNCTION 377
 
524
#define GLOBAL 378
 
525
#define GRANT 379
 
526
#define GRANTED 380
 
527
#define GREATEST 381
 
528
#define GROUP_P 382
 
529
#define HANDLER 383
 
530
#define HAVING 384
 
531
#define HEADER 385
 
532
#define HOLD 386
 
533
#define HOUR_P 387
 
534
#define ILIKE 388
 
535
#define IMMEDIATE 389
 
536
#define IMMUTABLE 390
 
537
#define IMPLICIT_P 391
 
538
#define IN_P 392
 
539
#define INCLUDING 393
 
540
#define INCREMENT 394
 
541
#define INDEX 395
 
542
#define INHERIT 396
 
543
#define INHERITS 397
 
544
#define INITIALLY 398
 
545
#define INNER_P 399
 
546
#define INOUT 400
 
547
#define INPUT_P 401
 
548
#define INSENSITIVE 402
 
549
#define INSERT 403
 
550
#define INSTEAD 404
 
551
#define INT_P 405
 
552
#define INTEGER 406
 
553
#define INTERSECT 407
 
554
#define INTERVAL 408
 
555
#define INTO 409
 
556
#define INVOKER 410
 
557
#define IS 411
 
558
#define ISNULL 412
 
559
#define ISOLATION 413
 
560
#define JOIN 414
 
561
#define KEY 415
 
562
#define LANCOMPILER 416
 
563
#define LANGUAGE 417
 
564
#define LARGE_P 418
 
565
#define LAST_P 419
 
566
#define LEADING 420
 
567
#define LEAST 421
 
568
#define LEFT 422
 
569
#define LEVEL 423
 
570
#define LIKE 424
 
571
#define LIMIT 425
 
572
#define LISTEN 426
 
573
#define LOAD 427
 
574
#define LOCAL 428
 
575
#define LOCALTIME 429
 
576
#define LOCALTIMESTAMP 430
 
577
#define LOCATION 431
 
578
#define LOCK_P 432
 
579
#define LOGIN_P 433
 
580
#define MATCH 434
 
581
#define MAXVALUE 435
 
582
#define MINUTE_P 436
 
583
#define MINVALUE 437
 
584
#define MODE 438
 
585
#define MONTH_P 439
 
586
#define MOVE 440
 
587
#define NAMES 441
 
588
#define NATIONAL 442
 
589
#define NATURAL 443
 
590
#define NCHAR 444
 
591
#define NEW 445
 
592
#define NEXT 446
 
593
#define NO 447
 
594
#define NOCREATEDB 448
 
595
#define NOCREATEROLE 449
 
596
#define NOCREATEUSER 450
 
597
#define NOINHERIT 451
 
598
#define NOLOGIN_P 452
 
599
#define NONE 453
 
600
#define NOSUPERUSER 454
 
601
#define NOT 455
 
602
#define NOTHING 456
 
603
#define NOTIFY 457
 
604
#define NOTNULL 458
 
605
#define NOWAIT 459
 
606
#define NULL_P 460
 
607
#define NULLIF 461
 
608
#define NUMERIC 462
 
609
#define OBJECT_P 463
 
610
#define OF 464
 
611
#define OFF 465
 
612
#define OFFSET 466
 
613
#define OIDS 467
 
614
#define OLD 468
 
615
#define ON 469
 
616
#define ONLY 470
 
617
#define OPERATOR 471
 
618
#define OPTION 472
 
619
#define OR 473
 
620
#define ORDER 474
 
621
#define OUT_P 475
 
622
#define OUTER_P 476
 
623
#define OVERLAPS 477
 
624
#define OVERLAY 478
 
625
#define OWNER 479
 
626
#define PARTIAL 480
 
627
#define PASSWORD 481
 
628
#define PLACING 482
 
629
#define POSITION 483
 
630
#define PRECISION 484
 
631
#define PRESERVE 485
 
632
#define PREPARE 486
 
633
#define PREPARED 487
 
634
#define PRIMARY 488
 
635
#define PRIOR 489
 
636
#define PRIVILEGES 490
 
637
#define PROCEDURAL 491
 
638
#define PROCEDURE 492
 
639
#define QUOTE 493
 
640
#define READ 494
 
641
#define REAL 495
 
642
#define RECHECK 496
 
643
#define REFERENCES 497
 
644
#define REINDEX 498
 
645
#define RELATIVE_P 499
 
646
#define RELEASE 500
 
647
#define RENAME 501
 
648
#define REPEATABLE 502
 
649
#define REPLACE 503
 
650
#define RESET 504
 
651
#define RESTART 505
 
652
#define RESTRICT 506
 
653
#define RETURNS 507
 
654
#define REVOKE 508
 
655
#define RIGHT 509
 
656
#define ROLE 510
 
657
#define ROLLBACK 511
 
658
#define ROW 512
 
659
#define ROWS 513
 
660
#define RULE 514
 
661
#define SAVEPOINT 515
 
662
#define SCHEMA 516
 
663
#define SCROLL 517
 
664
#define SECOND_P 518
 
665
#define SECURITY 519
 
666
#define SELECT 520
 
667
#define SEQUENCE 521
 
668
#define SERIALIZABLE 522
 
669
#define SESSION 523
 
670
#define SESSION_USER 524
 
671
#define SET 525
 
672
#define SETOF 526
 
673
#define SHARE 527
 
674
#define SHOW 528
 
675
#define SIMILAR 529
 
676
#define SIMPLE 530
 
677
#define SMALLINT 531
 
678
#define SOME 532
 
679
#define STABLE 533
 
680
#define START 534
 
681
#define STATEMENT 535
 
682
#define STATISTICS 536
 
683
#define STDIN 537
 
684
#define STDOUT 538
 
685
#define STORAGE 539
 
686
#define STRICT_P 540
 
687
#define SUBSTRING 541
 
688
#define SUPERUSER_P 542
 
689
#define SYMMETRIC 543
 
690
#define SYSID 544
 
691
#define SYSTEM_P 545
 
692
#define TABLE 546
 
693
#define TABLESPACE 547
 
694
#define TEMP 548
 
695
#define TEMPLATE 549
 
696
#define TEMPORARY 550
 
697
#define THEN 551
 
698
#define TIME 552
 
699
#define TIMESTAMP 553
 
700
#define TO 554
 
701
#define TOAST 555
 
702
#define TRAILING 556
 
703
#define TRANSACTION 557
 
704
#define TREAT 558
 
705
#define TRIGGER 559
 
706
#define TRIM 560
 
707
#define TRUE_P 561
 
708
#define TRUNCATE 562
 
709
#define TRUSTED 563
 
710
#define TYPE_P 564
 
711
#define UNCOMMITTED 565
 
712
#define UNENCRYPTED 566
 
713
#define UNION 567
 
714
#define UNIQUE 568
 
715
#define UNKNOWN 569
 
716
#define UNLISTEN 570
 
717
#define UNTIL 571
 
718
#define UPDATE 572
 
719
#define USER 573
 
720
#define USING 574
 
721
#define VACUUM 575
 
722
#define VALID 576
 
723
#define VALIDATOR 577
 
724
#define VALUES 578
 
725
#define VARCHAR 579
 
726
#define VARYING 580
 
727
#define VERBOSE 581
 
728
#define VIEW 582
 
729
#define VOLATILE 583
 
730
#define WHEN 584
 
731
#define WHERE 585
 
732
#define WITH 586
 
733
#define WITHOUT 587
 
734
#define WORK 588
 
735
#define WRITE 589
 
736
#define YEAR_P 590
 
737
#define ZONE 591
 
738
#define UNIONJOIN 592
 
739
#define IDENT 593
 
740
#define FCONST 594
 
741
#define SCONST 595
 
742
#define BCONST 596
 
743
#define XCONST 597
 
744
#define Op 598
 
745
#define ICONST 599
 
746
#define PARAM 600
 
747
#define POSTFIXOP 601
 
748
#define UMINUS 602
 
749
#define TYPECAST 603
 
750
 
 
751
 
 
752
 
 
753
 
 
754
/* Copy the first part of user declarations.  */
 
755
#line 1 "gram.y"
 
756
 
 
757
 
 
758
/*#define YYDEBUG 1*/
 
759
/*-------------------------------------------------------------------------
 
760
 *
 
761
 * gram.y
 
762
 *        POSTGRES SQL YACC rules/actions
 
763
 *
 
764
 * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
 
765
 * Portions Copyright (c) 1994, Regents of the University of California
 
766
 *
 
767
 *
 
768
 * IDENTIFICATION
 
769
 *        $PostgreSQL: pgsql/src/backend/parser/gram.y,v 2.511.2.2 2006/01/31 22:40:12 tgl Exp $
 
770
 *
 
771
 * HISTORY
 
772
 *        AUTHOR                        DATE                    MAJOR EVENT
 
773
 *        Andrew Yu                     Sept, 1994              POSTQUEL to SQL conversion
 
774
 *        Andrew Yu                     Oct, 1994               lispy code conversion
 
775
 *
 
776
 * NOTES
 
777
 *        CAPITALS are used to represent terminal symbols.
 
778
 *        non-capitals are used to represent non-terminals.
 
779
 *        SQL92-specific syntax is separated from plain SQL/Postgres syntax
 
780
 *        to help isolate the non-extensible portions of the parser.
 
781
 *
 
782
 *        In general, nothing in this file should initiate database accesses
 
783
 *        nor depend on changeable state (such as SET variables).  If you do
 
784
 *        database accesses, your code will fail when we have aborted the
 
785
 *        current transaction and are just parsing commands to find the next
 
786
 *        ROLLBACK or COMMIT.  If you make use of SET variables, then you
 
787
 *        will do the wrong thing in multi-query strings like this:
 
788
 *                      SET SQL_inheritance TO off; SELECT * FROM foo;
 
789
 *        because the entire string is parsed by gram.y before the SET gets
 
790
 *        executed.  Anything that depends on the database or changeable state
 
791
 *        should be handled inside parse_analyze() so that it happens at the
 
792
 *        right time not the wrong time.  The handling of SQL_inheritance is
 
793
 *        a good example.
 
794
 *
 
795
 * WARNINGS
 
796
 *        If you use a list, make sure the datum is a node so that the printing
 
797
 *        routines work.
 
798
 *
 
799
 *        Sometimes we assign constants to makeStrings. Make sure we don't free
 
800
 *        those.
 
801
 *
 
802
 *-------------------------------------------------------------------------
 
803
 */
 
804
#include "pool_parser.h"
 
805
 
 
806
#include <ctype.h>
 
807
#include <limits.h>
 
808
#include <stdlib.h>
 
809
#include <string.h>
 
810
 
 
811
#include "pool_memory.h"
 
812
#include "gramparse.h"
 
813
#include "makefuncs.h"
 
814
 
 
815
#define yylex sql_yylex
 
816
 
 
817
#define ereport(a,b)
 
818
#define Assert
 
819
 
 
820
List *parsetree;                        /* final parse result is delivered here */
 
821
 
 
822
static bool QueryIsRule = FALSE;
 
823
 
 
824
extern TypeName *SystemTypeName(char *name);
 
825
extern List *SystemFuncName(char *name);
 
826
extern char *NameListToQuotedString(List *names);
 
827
extern void yyerror(const char *s);
 
828
 
 
829
/*
 
830
 * If you need access to certain yacc-generated variables and find that
 
831
 * they're static by default, uncomment the next line.  (this is not a
 
832
 * problem, yet.)
 
833
 */
 
834
/*#define __YYSCLASS*/
 
835
 
 
836
static Node *makeColumnRef(char *relname, List *indirection);
 
837
static Node *makeTypeCast(Node *arg, TypeName *typename);
 
838
static Node *makeStringConst(char *str, TypeName *typename);
 
839
static Node *makeIntConst(int val);
 
840
static Node *makeFloatConst(char *str);
 
841
static Node *makeAConst(Value *v);
 
842
static Node *makeRowNullTest(NullTestType test, RowExpr *row);
 
843
static DefElem *makeDefElem(char *name, Node *arg);
 
844
static A_Const *makeBoolAConst(bool state);
 
845
static FuncCall *makeOverlaps(List *largs, List *rargs);
 
846
static void check_qualified_name(List *names);
 
847
static List *check_func_name(List *names);
 
848
static List *extractArgTypes(List *parameters);
 
849
static SelectStmt *findLeftmostSelect(SelectStmt *node);
 
850
static void insertSelectOptions(SelectStmt *stmt,
 
851
                                                                List *sortClause, Node *lockingClause,
 
852
                                                                Node *limitOffset, Node *limitCount);
 
853
static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg);
 
854
static Node *doNegate(Node *n);
 
855
static void doNegateFloat(Value *v);
 
856
 
 
857
 
 
858
 
 
859
/* Enabling traces.  */
 
860
#ifndef YYDEBUG
 
861
# define YYDEBUG 0
 
862
#endif
 
863
 
 
864
/* Enabling verbose error messages.  */
 
865
#ifdef YYERROR_VERBOSE
 
866
# undef YYERROR_VERBOSE
 
867
# define YYERROR_VERBOSE 1
 
868
#else
 
869
# define YYERROR_VERBOSE 0
 
870
#endif
 
871
 
 
872
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 
873
#line 106 "gram.y"
 
874
typedef union YYSTYPE {
 
875
        int                                     ival;
 
876
        char                            chr;
 
877
        char                            *str;
 
878
        const char                      *keyword;
 
879
        bool                            boolean;
 
880
        JoinType                        jtype;
 
881
        DropBehavior            dbehavior;
 
882
        OnCommitAction          oncommit;
 
883
        ContainsOids            withoids;
 
884
        List                            *list;
 
885
        Node                            *node;
 
886
        Value                           *value;
 
887
        ObjectType                      objtype;
 
888
 
 
889
        TypeName                        *typnam;
 
890
        FunctionParameter   *fun_param;
 
891
        FunctionParameterMode fun_param_mode;
 
892
        FuncWithArgs            *funwithargs;
 
893
        DefElem                         *defelt;
 
894
        SortBy                          *sortby;
 
895
        JoinExpr                        *jexpr;
 
896
        IndexElem                       *ielem;
 
897
        Alias                           *alias;
 
898
        RangeVar                        *range;
 
899
        A_Indices                       *aind;
 
900
        ResTarget                       *target;
 
901
        PrivTarget                      *privtarget;
 
902
 
 
903
        InsertStmt                      *istmt;
 
904
        VariableSetStmt         *vsetstmt;
 
905
} YYSTYPE;
 
906
/* Line 191 of yacc.c.  */
 
907
#line 908 "gram.c"
 
908
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
 
909
# define YYSTYPE_IS_DECLARED 1
 
910
# define YYSTYPE_IS_TRIVIAL 1
 
911
#endif
 
912
 
 
913
 
 
914
 
 
915
/* Copy the second part of user declarations.  */
 
916
 
 
917
 
 
918
/* Line 214 of yacc.c.  */
 
919
#line 920 "gram.c"
 
920
 
 
921
#if ! defined (yyoverflow) || YYERROR_VERBOSE
 
922
 
 
923
# ifndef YYFREE
 
924
#  define YYFREE free
 
925
# endif
 
926
# ifndef YYMALLOC
 
927
#  define YYMALLOC malloc
 
928
# endif
 
929
 
 
930
/* The parser invokes alloca or malloc; define the necessary symbols.  */
 
931
 
 
932
# ifdef YYSTACK_USE_ALLOCA
 
933
#  if YYSTACK_USE_ALLOCA
 
934
#   define YYSTACK_ALLOC alloca
 
935
#  endif
 
936
# else
 
937
#  if defined (alloca) || defined (_ALLOCA_H)
 
938
#   define YYSTACK_ALLOC alloca
 
939
#  else
 
940
#   ifdef __GNUC__
 
941
#    define YYSTACK_ALLOC __builtin_alloca
 
942
#   endif
 
943
#  endif
 
944
# endif
 
945
 
 
946
# ifdef YYSTACK_ALLOC
 
947
   /* Pacify GCC's `empty if-body' warning. */
 
948
#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
 
949
# else
 
950
#  if defined (__STDC__) || defined (__cplusplus)
 
951
#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 
952
#   define YYSIZE_T size_t
 
953
#  endif
 
954
#  define YYSTACK_ALLOC YYMALLOC
 
955
#  define YYSTACK_FREE YYFREE
 
956
# endif
 
957
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
958
 
 
959
 
 
960
#if (! defined (yyoverflow) \
 
961
     && (! defined (__cplusplus) \
 
962
         || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
 
963
 
 
964
/* A type that is properly aligned for any stack member.  */
 
965
union yyalloc
 
966
{
 
967
  short yyss;
 
968
  YYSTYPE yyvs;
 
969
  };
 
970
 
 
971
/* The size of the maximum gap between one aligned stack and the next.  */
 
972
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
973
 
 
974
/* The size of an array large to enough to hold all stacks, each with
 
975
   N elements.  */
 
976
# define YYSTACK_BYTES(N) \
 
977
     ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \
 
978
      + YYSTACK_GAP_MAXIMUM)
 
979
 
 
980
/* Copy COUNT objects from FROM to TO.  The source and destination do
 
981
   not overlap.  */
 
982
# ifndef YYCOPY
 
983
#  if defined (__GNUC__) && 1 < __GNUC__
 
984
#   define YYCOPY(To, From, Count) \
 
985
      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
 
986
#  else
 
987
#   define YYCOPY(To, From, Count)              \
 
988
      do                                        \
 
989
        {                                       \
 
990
          register YYSIZE_T yyi;                \
 
991
          for (yyi = 0; yyi < (Count); yyi++)   \
 
992
            (To)[yyi] = (From)[yyi];            \
 
993
        }                                       \
 
994
      while (0)
 
995
#  endif
 
996
# endif
 
997
 
 
998
/* Relocate STACK from its old location to the new one.  The
 
999
   local variables YYSIZE and YYSTACKSIZE give the old and new number of
 
1000
   elements in the stack, and YYPTR gives the new location of the
 
1001
   stack.  Advance YYPTR to a properly aligned location for the next
 
1002
   stack.  */
 
1003
# define YYSTACK_RELOCATE(Stack)                                        \
 
1004
    do                                                                  \
 
1005
      {                                                                 \
 
1006
        YYSIZE_T yynewbytes;                                            \
 
1007
        YYCOPY (&yyptr->Stack, Stack, yysize);                          \
 
1008
        Stack = &yyptr->Stack;                                          \
 
1009
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 
1010
        yyptr += yynewbytes / sizeof (*yyptr);                          \
 
1011
      }                                                                 \
 
1012
    while (0)
 
1013
 
 
1014
#endif
 
1015
 
 
1016
#if defined (__STDC__) || defined (__cplusplus)
 
1017
   typedef signed char yysigned_char;
 
1018
#else
 
1019
   typedef short yysigned_char;
 
1020
#endif
 
1021
 
 
1022
/* YYFINAL -- State number of the termination state. */
 
1023
#define YYFINAL  555
 
1024
/* YYLAST -- Last index in YYTABLE.  */
 
1025
#define YYLAST   34910
 
1026
 
 
1027
/* YYNTOKENS -- Number of terminals. */
 
1028
#define YYNTOKENS  366
 
1029
/* YYNNTS -- Number of nonterminals. */
 
1030
#define YYNNTS  391
 
1031
/* YYNRULES -- Number of rules. */
 
1032
#define YYNRULES  1613
 
1033
/* YYNRULES -- Number of states. */
 
1034
#define YYNSTATES  2807
 
1035
 
 
1036
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 
1037
#define YYUNDEFTOK  2
 
1038
#define YYMAXUTOK   603
 
1039
 
 
1040
#define YYTRANSLATE(YYX)                                                \
 
1041
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
1042
 
 
1043
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 
1044
static const unsigned short yytranslate[] =
 
1045
{
 
1046
       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1047
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1048
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1049
       2,     2,     2,     2,     2,     2,     2,   354,     2,     2,
 
1050
     359,   360,   352,   350,   364,   351,   362,   353,     2,     2,
 
1051
       2,     2,     2,     2,     2,     2,     2,     2,   365,   363,
 
1052
     347,   346,   348,     2,     2,     2,     2,     2,     2,     2,
 
1053
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1054
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1055
       2,   357,     2,   358,   355,     2,     2,     2,     2,     2,
 
1056
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1057
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1058
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1059
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1060
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1061
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1062
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1063
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1064
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1065
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1066
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1067
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1068
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1069
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1070
       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
 
1071
       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
 
1072
       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
 
1073
      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
 
1074
      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
 
1075
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
 
1076
      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
 
1077
      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
 
1078
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
 
1079
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
 
1080
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
 
1081
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
 
1082
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
 
1083
     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
 
1084
     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
 
1085
     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
 
1086
     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
 
1087
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
 
1088
     165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
 
1089
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
 
1090
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
 
1091
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
 
1092
     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
 
1093
     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
 
1094
     225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
 
1095
     235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
 
1096
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
 
1097
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 
1098
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 
1099
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
 
1100
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
 
1101
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
 
1102
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
 
1103
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
 
1104
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
 
1105
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
 
1106
     345,   349,   356,   361
 
1107
};
 
1108
 
 
1109
#if YYDEBUG
 
1110
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
 
1111
   YYRHS.  */
 
1112
static const unsigned short yyprhs[] =
 
1113
{
 
1114
       0,     0,     3,     5,     9,    11,    13,    15,    17,    19,
 
1115
      21,    23,    25,    27,    29,    31,    33,    35,    37,    39,
 
1116
      41,    43,    45,    47,    49,    51,    53,    55,    57,    59,
 
1117
      61,    63,    65,    67,    69,    71,    73,    75,    77,    79,
 
1118
      81,    83,    85,    87,    89,    91,    93,    95,    97,    99,
 
1119
     101,   103,   105,   107,   109,   111,   113,   115,   117,   119,
 
1120
     121,   123,   125,   127,   129,   131,   133,   135,   137,   139,
 
1121
     141,   143,   145,   147,   149,   151,   153,   155,   157,   159,
 
1122
     161,   163,   165,   167,   169,   171,   173,   175,   177,   178,
 
1123
     184,   186,   187,   190,   191,   194,   198,   202,   204,   206,
 
1124
     208,   210,   212,   214,   216,   218,   220,   222,   224,   226,
 
1125
     230,   234,   237,   240,   243,   246,   250,   254,   260,   266,
 
1126
     272,   277,   283,   289,   294,   298,   302,   308,   315,   317,
 
1127
     319,   323,   330,   335,   337,   338,   341,   342,   344,   346,
 
1128
     348,   350,   352,   354,   357,   361,   365,   369,   373,   377,
 
1129
     380,   386,   389,   392,   396,   400,   402,   406,   408,   410,
 
1130
     412,   416,   418,   420,   422,   425,   428,   431,   433,   435,
 
1131
     437,   439,   441,   443,   445,   449,   456,   458,   460,   462,
 
1132
     464,   466,   467,   469,   471,   474,   478,   483,   487,   490,
 
1133
     493,   497,   502,   506,   509,   514,   516,   518,   520,   522,
 
1134
     524,   529,   534,   536,   540,   544,   549,   556,   563,   570,
 
1135
     577,   582,   589,   592,   597,   601,   605,   609,   613,   617,
 
1136
     621,   625,   629,   633,   637,   639,   641,   645,   649,   653,
 
1137
     657,   660,   662,   664,   665,   668,   669,   672,   683,   685,
 
1138
     687,   689,   691,   693,   696,   697,   699,   701,   705,   709,
 
1139
     711,   713,   717,   721,   725,   730,   732,   733,   736,   737,
 
1140
     741,   742,   744,   745,   757,   770,   772,   774,   777,   780,
 
1141
     783,   786,   787,   789,   790,   792,   796,   798,   800,   802,
 
1142
     806,   809,   810,   814,   816,   818,   821,   823,   826,   830,
 
1143
     835,   838,   844,   846,   849,   852,   855,   859,   862,   865,
 
1144
     866,   870,   872,   877,   883,   890,   902,   906,   907,   909,
 
1145
     913,   915,   918,   921,   924,   925,   927,   929,   932,   935,
 
1146
     936,   940,   944,   947,   949,   951,   954,   957,   962,   963,
 
1147
     966,   969,   970,   974,   979,   984,   985,   988,   989,   994,
 
1148
     995,  1003,  1007,  1011,  1013,  1017,  1018,  1020,  1024,  1026,
 
1149
    1032,  1037,  1040,  1041,  1044,  1046,  1049,  1053,  1056,  1059,
 
1150
    1062,  1065,  1069,  1073,  1075,  1076,  1078,  1080,  1082,  1085,
 
1151
    1087,  1093,  1103,  1105,  1106,  1108,  1111,  1114,  1115,  1118,
 
1152
    1119,  1125,  1127,  1128,  1135,  1138,  1139,  1143,  1158,  1178,
 
1153
    1180,  1182,  1184,  1188,  1194,  1196,  1198,  1200,  1204,  1205,
 
1154
    1207,  1208,  1210,  1212,  1214,  1218,  1219,  1221,  1223,  1225,
 
1155
    1227,  1229,  1231,  1234,  1235,  1237,  1240,  1242,  1245,  1246,
 
1156
    1249,  1251,  1254,  1257,  1264,  1273,  1278,  1283,  1288,  1293,
 
1157
    1301,  1305,  1307,  1311,  1315,  1317,  1319,  1321,  1323,  1325,
 
1158
    1338,  1340,  1344,  1349,  1357,  1362,  1365,  1367,  1368,  1370,
 
1159
    1371,  1379,  1384,  1386,  1388,  1390,  1392,  1394,  1396,  1398,
 
1160
    1400,  1402,  1406,  1408,  1411,  1414,  1418,  1422,  1429,  1439,
 
1161
    1447,  1457,  1466,  1475,  1482,  1491,  1501,  1509,  1520,  1528,
 
1162
    1530,  1532,  1534,  1536,  1538,  1540,  1542,  1544,  1546,  1548,
 
1163
    1550,  1552,  1557,  1560,  1565,  1568,  1569,  1571,  1573,  1575,
 
1164
    1577,  1580,  1583,  1585,  1587,  1589,  1592,  1595,  1597,  1600,
 
1165
    1603,  1605,  1607,  1615,  1623,  1634,  1636,  1638,  1641,  1643,
 
1166
    1647,  1649,  1651,  1653,  1655,  1657,  1660,  1663,  1666,  1669,
 
1167
    1672,  1675,  1677,  1681,  1683,  1686,  1690,  1691,  1693,  1697,
 
1168
    1700,  1707,  1714,  1724,  1728,  1729,  1733,  1734,  1747,  1749,
 
1169
    1750,  1753,  1754,  1756,  1760,  1763,  1766,  1771,  1773,  1776,
 
1170
    1777,  1787,  1795,  1798,  1799,  1803,  1806,  1808,  1812,  1816,
 
1171
    1820,  1823,  1826,  1828,  1830,  1832,  1834,  1837,  1839,  1841,
 
1172
    1843,  1848,  1854,  1856,  1859,  1864,  1870,  1872,  1874,  1876,
 
1173
    1878,  1882,  1886,  1889,  1892,  1895,  1898,  1900,  1902,  1906,
 
1174
    1909,  1910,  1916,  1918,  1921,  1923,  1924,  1930,  1938,  1940,
 
1175
    1942,  1950,  1952,  1956,  1960,  1964,  1966,  1970,  1982,  1993,
 
1176
    1996,  1999,  2000,  2009,  2014,  2019,  2024,  2026,  2028,  2030,
 
1177
    2031,  2041,  2048,  2055,  2063,  2070,  2077,  2087,  2094,  2101,
 
1178
    2108,  2117,  2126,  2133,  2140,  2147,  2149,  2150,  2160,  2167,
 
1179
    2175,  2182,  2189,  2196,  2206,  2213,  2220,  2227,  2235,  2245,
 
1180
    2255,  2262,  2269,  2276,  2277,  2292,  2294,  2296,  2300,  2304,
 
1181
    2306,  2308,  2310,  2312,  2314,  2316,  2318,  2319,  2321,  2323,
 
1182
    2325,  2327,  2329,  2331,  2332,  2339,  2342,  2345,  2348,  2351,
 
1183
    2354,  2358,  2362,  2365,  2368,  2371,  2374,  2378,  2381,  2387,
 
1184
    2392,  2396,  2400,  2404,  2406,  2408,  2409,  2413,  2416,  2419,
 
1185
    2421,  2425,  2428,  2430,  2431,  2439,  2449,  2452,  2458,  2461,
 
1186
    2462,  2466,  2470,  2474,  2478,  2482,  2486,  2490,  2494,  2498,
 
1187
    2503,  2507,  2511,  2513,  2514,  2520,  2526,  2531,  2534,  2535,
 
1188
    2540,  2544,  2551,  2556,  2563,  2570,  2576,  2584,  2586,  2587,
 
1189
    2598,  2603,  2606,  2608,  2613,  2619,  2625,  2628,  2633,  2635,
 
1190
    2637,  2639,  2640,  2642,  2643,  2645,  2646,  2650,  2651,  2656,
 
1191
    2658,  2660,  2662,  2664,  2666,  2668,  2670,  2671,  2677,  2681,
 
1192
    2682,  2684,  2688,  2690,  2692,  2694,  2696,  2700,  2710,  2714,
 
1193
    2715,  2718,  2722,  2727,  2732,  2735,  2737,  2745,  2750,  2752,
 
1194
    2756,  2759,  2765,  2768,  2769,  2775,  2779,  2780,  2783,  2786,
 
1195
    2789,  2793,  2795,  2799,  2801,  2804,  2806,  2807,  2814,  2822,
 
1196
    2823,  2827,  2830,  2833,  2836,  2837,  2840,  2843,  2845,  2847,
 
1197
    2851,  2855,  2857,  2860,  2865,  2870,  2872,  2874,  2883,  2888,
 
1198
    2893,  2898,  2901,  2902,  2906,  2910,  2915,  2920,  2925,  2930,
 
1199
    2933,  2935,  2937,  2938,  2940,  2942,  2943,  2945,  2951,  2953,
 
1200
    2954,  2956,  2957,  2961,  2963,  2967,  2971,  2974,  2977,  2979,
 
1201
    2984,  2989,  2992,  2995,  3000,  3002,  3003,  3005,  3007,  3009,
 
1202
    3013,  3014,  3017,  3018,  3023,  3028,  3032,  3034,  3035,  3038,
 
1203
    3039,  3042,  3043,  3045,  3049,  3051,  3054,  3056,  3059,  3065,
 
1204
    3072,  3078,  3080,  3083,  3085,  3090,  3094,  3099,  3103,  3109,
 
1205
    3114,  3120,  3125,  3131,  3134,  3139,  3141,  3144,  3147,  3150,
 
1206
    3152,  3154,  3155,  3160,  3163,  3165,  3168,  3171,  3176,  3178,
 
1207
    3181,  3182,  3184,  3188,  3191,  3194,  3198,  3204,  3211,  3215,
 
1208
    3220,  3221,  3223,  3225,  3227,  3229,  3231,  3234,  3240,  3243,
 
1209
    3245,  3247,  3249,  3251,  3253,  3255,  3257,  3259,  3261,  3263,
 
1210
    3265,  3268,  3271,  3274,  3277,  3280,  3282,  3286,  3287,  3293,
 
1211
    3297,  3298,  3304,  3308,  3309,  3311,  3313,  3315,  3317,  3323,
 
1212
    3326,  3328,  3330,  3332,  3334,  3340,  3343,  3346,  3349,  3351,
 
1213
    3355,  3359,  3362,  3364,  3365,  3369,  3370,  3376,  3379,  3385,
 
1214
    3388,  3390,  3394,  3398,  3399,  3401,  3403,  3405,  3407,  3409,
 
1215
    3411,  3415,  3419,  3423,  3427,  3431,  3435,  3439,  3440,  3442,
 
1216
    3446,  3452,  3455,  3458,  3462,  3466,  3470,  3474,  3478,  3482,
 
1217
    3486,  3490,  3494,  3498,  3501,  3504,  3508,  3512,  3515,  3519,
 
1218
    3525,  3530,  3537,  3541,  3547,  3552,  3559,  3564,  3571,  3577,
 
1219
    3585,  3588,  3592,  3595,  3600,  3604,  3608,  3613,  3617,  3622,
 
1220
    3626,  3631,  3637,  3644,  3652,  3659,  3667,  3674,  3682,  3686,
 
1221
    3691,  3696,  3703,  3706,  3708,  3712,  3715,  3718,  3722,  3726,
 
1222
    3730,  3734,  3738,  3742,  3746,  3750,  3754,  3758,  3761,  3764,
 
1223
    3770,  3777,  3785,  3787,  3789,  3792,  3797,  3799,  3801,  3803,
 
1224
    3806,  3809,  3812,  3814,  3818,  3823,  3829,  3835,  3840,  3842,
 
1225
    3844,  3849,  3851,  3856,  3858,  3863,  3865,  3870,  3872,  3874,
 
1226
    3876,  3878,  3885,  3890,  3895,  3900,  3905,  3912,  3918,  3924,
 
1227
    3930,  3935,  3942,  3947,  3954,  3959,  3964,  3969,  3974,  3978,
 
1228
    3984,  3986,  3988,  3990,  3992,  3994,  3996,  3998,  4000,  4002,
 
1229
    4004,  4006,  4008,  4010,  4012,  4014,  4019,  4021,  4026,  4028,
 
1230
    4033,  4035,  4038,  4040,  4043,  4045,  4049,  4053,  4054,  4058,
 
1231
    4060,  4062,  4066,  4070,  4074,  4076,  4078,  4080,  4082,  4084,
 
1232
    4086,  4088,  4090,  4095,  4099,  4102,  4106,  4107,  4111,  4115,
 
1233
    4118,  4121,  4123,  4124,  4127,  4130,  4134,  4137,  4139,  4141,
 
1234
    4145,  4151,  4153,  4156,  4161,  4164,  4165,  4167,  4168,  4170,
 
1235
    4173,  4176,  4179,  4183,  4189,  4191,  4194,  4195,  4198,  4200,
 
1236
    4201,  4203,  4207,  4211,  4213,  4215,  4217,  4221,  4226,  4231,
 
1237
    4233,  4237,  4239,  4241,  4243,  4245,  4247,  4251,  4253,  4256,
 
1238
    4258,  4262,  4264,  4266,  4268,  4270,  4272,  4274,  4276,  4279,
 
1239
    4281,  4283,  4285,  4287,  4289,  4292,  4296,  4303,  4305,  4307,
 
1240
    4309,  4311,  4313,  4315,  4317,  4320,  4322,  4324,  4326,  4328,
 
1241
    4330,  4332,  4334,  4336,  4338,  4340,  4342,  4344,  4346,  4348,
 
1242
    4350,  4352,  4354,  4356,  4358,  4360,  4362,  4364,  4366,  4368,
 
1243
    4370,  4372,  4374,  4376,  4378,  4380,  4382,  4384,  4386,  4388,
 
1244
    4390,  4392,  4394,  4396,  4398,  4400,  4402,  4404,  4406,  4408,
 
1245
    4410,  4412,  4414,  4416,  4418,  4420,  4422,  4424,  4426,  4428,
 
1246
    4430,  4432,  4434,  4436,  4438,  4440,  4442,  4444,  4446,  4448,
 
1247
    4450,  4452,  4454,  4456,  4458,  4460,  4462,  4464,  4466,  4468,
 
1248
    4470,  4472,  4474,  4476,  4478,  4480,  4482,  4484,  4486,  4488,
 
1249
    4490,  4492,  4494,  4496,  4498,  4500,  4502,  4504,  4506,  4508,
 
1250
    4510,  4512,  4514,  4516,  4518,  4520,  4522,  4524,  4526,  4528,
 
1251
    4530,  4532,  4534,  4536,  4538,  4540,  4542,  4544,  4546,  4548,
 
1252
    4550,  4552,  4554,  4556,  4558,  4560,  4562,  4564,  4566,  4568,
 
1253
    4570,  4572,  4574,  4576,  4578,  4580,  4582,  4584,  4586,  4588,
 
1254
    4590,  4592,  4594,  4596,  4598,  4600,  4602,  4604,  4606,  4608,
 
1255
    4610,  4612,  4614,  4616,  4618,  4620,  4622,  4624,  4626,  4628,
 
1256
    4630,  4632,  4634,  4636,  4638,  4640,  4642,  4644,  4646,  4648,
 
1257
    4650,  4652,  4654,  4656,  4658,  4660,  4662,  4664,  4666,  4668,
 
1258
    4670,  4672,  4674,  4676,  4678,  4680,  4682,  4684,  4686,  4688,
 
1259
    4690,  4692,  4694,  4696,  4698,  4700,  4702,  4704,  4706,  4708,
 
1260
    4710,  4712,  4714,  4716,  4718,  4720,  4722,  4724,  4726,  4728,
 
1261
    4730,  4732,  4734,  4736,  4738,  4740,  4742,  4744,  4746,  4748,
 
1262
    4750,  4752,  4754,  4756,  4758,  4760,  4762,  4764,  4766,  4768,
 
1263
    4770,  4772,  4774,  4776,  4778,  4780,  4782,  4784,  4786,  4788,
 
1264
    4790,  4792,  4794,  4796,  4798,  4800,  4802,  4804,  4806,  4808,
 
1265
    4810,  4812,  4814,  4816,  4818,  4820,  4822,  4824,  4826,  4828,
 
1266
    4830,  4832,  4834,  4836,  4838,  4840,  4842,  4844,  4846,  4848,
 
1267
    4850,  4852,  4854,  4856,  4858,  4860,  4862,  4864,  4866,  4868,
 
1268
    4870,  4872,  4874,  4876,  4878,  4880,  4882,  4884,  4886,  4888,
 
1269
    4890,  4892,  4894,  4896,  4898,  4900,  4902,  4904,  4906,  4908,
 
1270
    4910,  4912,  4914,  4916,  4918,  4920,  4922,  4924,  4926,  4928,
 
1271
    4930,  4932,  4934,  4936,  4938,  4940,  4942,  4944,  4946,  4948,
 
1272
    4950,  4952,  4954,  4956,  4958,  4960,  4962,  4964,  4966,  4968,
 
1273
    4970,  4972,  4974,  4976,  4978,  4980,  4982,  4984,  4986,  4988,
 
1274
    4990,  4992,  4994,  4996,  4998,  5000,  5002,  5004,  5006,  5008,
 
1275
    5010,  5012,  5014,  5016
 
1276
};
 
1277
 
 
1278
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 
1279
static const short yyrhs[] =
 
1280
{
 
1281
     367,     0,    -1,   368,    -1,   368,   363,   369,    -1,   369,
 
1282
      -1,   590,    -1,   591,    -1,   596,    -1,   548,    -1,   382,
 
1283
      -1,   565,    -1,   566,    -1,   457,    -1,   406,    -1,   376,
 
1284
      -1,   375,    -1,   378,    -1,   377,    -1,   601,    -1,   405,
 
1285
      -1,   414,    -1,   599,    -1,   507,    -1,   402,    -1,   415,
 
1286
      -1,   451,    -1,   488,    -1,   557,    -1,   598,    -1,   595,
 
1287
      -1,   534,    -1,   381,    -1,   495,    -1,   464,    -1,   385,
 
1288
      -1,   456,    -1,   424,    -1,   471,    -1,   474,    -1,   370,
 
1289
      -1,   374,    -1,   586,    -1,   616,    -1,   628,    -1,   490,
 
1290
      -1,   621,    -1,   489,    -1,   559,    -1,   384,    -1,   500,
 
1291
      -1,   469,    -1,   575,    -1,   501,    -1,   473,    -1,   487,
 
1292
      -1,   379,    -1,   380,    -1,   594,    -1,   614,    -1,   607,
 
1293
      -1,   510,    -1,   513,    -1,   524,    -1,   528,    -1,   617,
 
1294
      -1,   577,    -1,   585,    -1,   623,    -1,   576,    -1,   610,
 
1295
      -1,   560,    -1,   552,    -1,   551,    -1,   554,    -1,   563,
 
1296
      -1,   514,    -1,   525,    -1,   567,    -1,   631,    -1,   579,
 
1297
      -1,   506,    -1,   578,    -1,   627,    -1,   600,    -1,   401,
 
1298
      -1,   389,    -1,   400,    -1,   584,    -1,    -1,    62,   255,
 
1299
     746,   371,   372,    -1,   331,    -1,    -1,   372,   373,    -1,
 
1300
      -1,   226,   745,    -1,   100,   226,   745,    -1,   311,   226,
 
1301
     745,    -1,   287,    -1,   199,    -1,   141,    -1,   196,    -1,
 
1302
      63,    -1,   193,    -1,    64,    -1,   194,    -1,    65,    -1,
 
1303
     195,    -1,   178,    -1,   197,    -1,    56,   170,   747,    -1,
 
1304
     321,   316,   745,    -1,   318,   735,    -1,   289,   744,    -1,
 
1305
       8,   735,    -1,   255,   735,    -1,   137,   255,   735,    -1,
 
1306
     137,   127,   735,    -1,    62,   318,   746,   371,   372,    -1,
 
1307
      13,   255,   746,   371,   372,    -1,    13,   255,   746,   270,
 
1308
     390,    -1,    13,   255,   746,   401,    -1,    13,   318,   746,
 
1309
     371,   372,    -1,    13,   318,   746,   270,   390,    -1,    13,
 
1310
     318,   746,   401,    -1,    95,   255,   735,    -1,    95,   318,
 
1311
     735,    -1,    62,   127,   746,   371,   372,    -1,    13,   127,
 
1312
     746,   383,   318,   735,    -1,     7,    -1,    95,    -1,    95,
 
1313
     127,   735,    -1,    62,   261,   386,    25,   746,   387,    -1,
 
1314
      62,   261,   748,   387,    -1,   748,    -1,    -1,   387,   388,
 
1315
      -1,    -1,   424,    -1,   528,    -1,   456,    -1,   474,    -1,
 
1316
     513,    -1,   584,    -1,   270,   390,    -1,   270,   173,   390,
 
1317
      -1,   270,   268,   390,    -1,   391,   299,   392,    -1,   391,
 
1318
     346,   392,    -1,   297,   336,   397,    -1,   302,   582,    -1,
 
1319
     268,    44,    19,   302,   582,    -1,   186,   398,    -1,   255,
 
1320
     399,    -1,   268,    25,   399,    -1,   268,    25,    81,    -1,
 
1321
     748,    -1,   391,   362,   748,    -1,   393,    -1,    81,    -1,
 
1322
     394,    -1,   393,   364,   394,    -1,   396,    -1,   399,    -1,
 
1323
     461,    -1,   239,   310,    -1,   239,    55,    -1,   247,   239,
 
1324
      -1,   267,    -1,   306,    -1,   111,    -1,   214,    -1,   210,
 
1325
      -1,   745,    -1,   338,    -1,   688,   745,   690,    -1,   688,
 
1326
     359,   744,   360,   745,   690,    -1,   461,    -1,    81,    -1,
 
1327
     173,    -1,   745,    -1,    81,    -1,    -1,   748,    -1,   340,
 
1328
      -1,   273,   391,    -1,   273,   297,   336,    -1,   273,   302,
 
1329
     158,   168,    -1,   273,   268,    25,    -1,   273,    11,    -1,
 
1330
     249,   391,    -1,   249,   297,   336,    -1,   249,   302,   158,
 
1331
     168,    -1,   249,   268,    25,    -1,   249,    11,    -1,   270,
 
1332
      58,   403,   404,    -1,    11,    -1,   735,    -1,    84,    -1,
 
1333
     134,    -1,    46,    -1,    13,   291,   662,   407,    -1,    13,
 
1334
     140,   662,   409,    -1,   408,    -1,   407,   364,   408,    -1,
 
1335
       7,   564,   429,    -1,    13,   564,   748,   411,    -1,    13,
 
1336
     564,   748,    95,   200,   205,    -1,    13,   564,   748,   270,
 
1337
     200,   205,    -1,    13,   564,   748,   270,   281,   463,    -1,
 
1338
      13,   564,   748,   270,   284,   748,    -1,    95,   564,   748,
 
1339
     412,    -1,    13,   564,   748,   309,   667,   413,    -1,     7,
 
1340
     436,    -1,    95,    57,   736,   412,    -1,   270,   332,   212,
 
1341
      -1,    62,   300,   291,    -1,    49,   214,   736,    -1,   270,
 
1342
     332,    49,    -1,    98,   304,   736,    -1,    98,   304,    11,
 
1343
      -1,    98,   304,   318,    -1,    90,   304,   736,    -1,    90,
 
1344
     304,    11,    -1,    90,   304,   318,    -1,   410,    -1,   410,
 
1345
      -1,   409,   364,   410,    -1,   224,   299,   746,    -1,   270,
 
1346
     292,   736,    -1,   270,    81,   691,    -1,    95,    81,    -1,
 
1347
      38,    -1,   251,    -1,    -1,   319,   691,    -1,    -1,    48,
 
1348
     736,    -1,    61,   420,   734,   438,   421,   416,   417,   422,
 
1349
     371,   418,    -1,   120,    -1,   299,    -1,   745,    -1,   282,
 
1350
      -1,   283,    -1,   418,   419,    -1,    -1,    31,    -1,   212,
 
1351
      -1,    87,   597,   745,    -1,   205,   597,   745,    -1,    67,
 
1352
      -1,   130,    -1,   238,   597,   745,    -1,   102,   597,   745,
 
1353
      -1,   116,   238,   439,    -1,   116,   200,   205,   439,    -1,
 
1354
      31,    -1,    -1,   331,   212,    -1,    -1,   423,    88,   745,
 
1355
      -1,    -1,   319,    -1,    -1,    62,   425,   291,   734,   359,
 
1356
     426,   360,   446,   447,   448,   449,    -1,    62,   425,   291,
 
1357
     734,   209,   734,   359,   426,   360,   447,   448,   449,    -1,
 
1358
     295,    -1,   293,    -1,   173,   295,    -1,   173,   293,    -1,
 
1359
     123,   295,    -1,   123,   293,    -1,    -1,   427,    -1,    -1,
 
1360
     428,    -1,   427,   364,   428,    -1,   429,    -1,   434,    -1,
 
1361
     436,    -1,   748,   667,   430,    -1,   430,   431,    -1,    -1,
 
1362
      57,   736,   432,    -1,   432,    -1,   433,    -1,   200,   205,
 
1363
      -1,   205,    -1,   313,   450,    -1,   233,   160,   450,    -1,
 
1364
      45,   359,   691,   360,    -1,    81,   692,    -1,   242,   734,
 
1365
     438,   441,   442,    -1,    83,    -1,   200,    83,    -1,   143,
 
1366
      84,    -1,   143,   134,    -1,   169,   734,   435,    -1,   138,
 
1367
      82,    -1,   104,    82,    -1,    -1,    57,   736,   437,    -1,
 
1368
     437,    -1,    45,   359,   691,   360,    -1,   313,   359,   439,
 
1369
     360,   450,    -1,   233,   160,   359,   439,   360,   450,    -1,
 
1370
     117,   160,   359,   439,   360,   242,   734,   438,   441,   442,
 
1371
     484,    -1,   359,   439,   360,    -1,    -1,   440,    -1,   439,
 
1372
     364,   440,    -1,   748,    -1,   179,   121,    -1,   179,   225,
 
1373
      -1,   179,   275,    -1,    -1,   443,    -1,   444,    -1,   443,
 
1374
     444,    -1,   444,   443,    -1,    -1,   214,   317,   445,    -1,
 
1375
     214,    86,   445,    -1,   192,     6,    -1,   251,    -1,    38,
 
1376
      -1,   270,   205,    -1,   270,    81,    -1,   142,   359,   733,
 
1377
     360,    -1,    -1,   331,   212,    -1,   332,   212,    -1,    -1,
 
1378
     214,    54,    95,    -1,   214,    54,    86,   258,    -1,   214,
 
1379
      54,   230,   258,    -1,    -1,   292,   736,    -1,    -1,   319,
 
1380
     140,   292,   736,    -1,    -1,    62,   425,   291,   734,   453,
 
1381
     452,   631,    -1,   331,   212,    19,    -1,   332,   212,    19,
 
1382
      -1,    19,    -1,   359,   454,   360,    -1,    -1,   455,    -1,
 
1383
     454,   364,   455,    -1,   748,    -1,    62,   425,   266,   734,
 
1384
     458,    -1,    13,   266,   734,   458,    -1,   458,   459,    -1,
 
1385
      -1,    36,   461,    -1,    74,    -1,   192,    74,    -1,   139,
 
1386
     460,   461,    -1,   180,   461,    -1,   182,   461,    -1,   192,
 
1387
     180,    -1,   192,   182,    -1,   279,   371,   461,    -1,   250,
 
1388
     371,   461,    -1,    35,    -1,    -1,   462,    -1,   463,    -1,
 
1389
     339,    -1,   351,   339,    -1,   747,    -1,    62,   465,   470,
 
1390
     162,   399,    -1,    62,   465,   470,   162,   399,   128,   466,
 
1391
     467,   468,    -1,   308,    -1,    -1,   736,    -1,   736,   505,
 
1392
      -1,   322,   466,    -1,    -1,   161,   745,    -1,    -1,    95,
 
1393
     470,   162,   399,   412,    -1,   236,    -1,    -1,    62,   292,
 
1394
     736,   472,   176,   745,    -1,   224,   736,    -1,    -1,    95,
 
1395
     292,   736,    -1,    62,   304,   736,   475,   476,   214,   734,
 
1396
     478,   106,   237,   742,   359,   481,   360,    -1,    62,    57,
 
1397
     304,   736,     9,   476,   214,   734,   483,   484,   115,    96,
 
1398
     257,   106,   237,   742,   359,   481,   360,    -1,    27,    -1,
 
1399
       9,    -1,   477,    -1,   477,   218,   477,    -1,   477,   218,
 
1400
     477,   218,   477,    -1,   148,    -1,    86,    -1,   317,    -1,
 
1401
     115,   479,   480,    -1,    -1,    96,    -1,    -1,   257,    -1,
 
1402
     280,    -1,   482,    -1,   481,   364,   482,    -1,    -1,   344,
 
1403
      -1,   339,    -1,   745,    -1,   341,    -1,   342,    -1,   748,
 
1404
      -1,   120,   734,    -1,    -1,   485,    -1,   485,   486,    -1,
 
1405
     486,    -1,   486,   485,    -1,    -1,   200,    83,    -1,    83,
 
1406
      -1,   143,   134,    -1,   143,    84,    -1,    95,   304,   736,
 
1407
     214,   734,   412,    -1,    62,    21,   736,    45,   359,   691,
 
1408
     360,   484,    -1,    95,    21,   736,   412,    -1,    62,    10,
 
1409
     742,   491,    -1,    62,   216,   556,   491,    -1,    62,   309,
 
1410
     504,   491,    -1,    62,   309,   504,    19,   359,   665,   360,
 
1411
      -1,   359,   492,   360,    -1,   493,    -1,   492,   364,   493,
 
1412
      -1,   751,   346,   494,    -1,   751,    -1,   542,    -1,   700,
 
1413
      -1,   461,    -1,   745,    -1,    62,   216,    47,   504,   498,
 
1414
     115,   309,   667,   319,   738,    19,   496,    -1,   497,    -1,
 
1415
     496,   364,   497,    -1,   216,   744,   556,   499,    -1,   216,
 
1416
     744,   556,   359,   555,   360,   499,    -1,   122,   744,   742,
 
1417
     536,    -1,   284,   667,    -1,    81,    -1,    -1,   241,    -1,
 
1418
      -1,    95,   216,    47,   504,   319,   738,   412,    -1,    95,
 
1419
     502,   503,   412,    -1,   291,    -1,   266,    -1,   327,    -1,
 
1420
     140,    -1,   309,    -1,    93,    -1,    59,    -1,   261,    -1,
 
1421
     504,    -1,   503,   364,   504,    -1,   748,    -1,   748,   505,
 
1422
      -1,   362,   739,    -1,   505,   362,   739,    -1,   307,   638,
 
1423
     733,    -1,    53,   214,   508,   504,   156,   509,    -1,    53,
 
1424
     214,    10,   742,   359,   553,   360,   156,   509,    -1,    53,
 
1425
     214,   122,   742,   536,   156,   509,    -1,    53,   214,   216,
 
1426
     556,   359,   555,   360,   156,   509,    -1,    53,   214,    57,
 
1427
     736,   214,   504,   156,   509,    -1,    53,   214,   259,   736,
 
1428
     214,   504,   156,   509,    -1,    53,   214,   259,   736,   156,
 
1429
     509,    -1,    53,   214,   304,   736,   214,   504,   156,   509,
 
1430
      -1,    53,   214,   216,    47,   504,   319,   738,   156,   509,
 
1431
      -1,    53,   214,   163,   208,   461,   156,   509,    -1,    53,
 
1432
     214,    40,   359,   667,    19,   667,   360,   156,   509,    -1,
 
1433
      53,   214,   470,   162,   504,   156,   509,    -1,    52,    -1,
 
1434
      75,    -1,   261,    -1,   140,    -1,   266,    -1,   291,    -1,
 
1435
      93,    -1,   309,    -1,   327,    -1,    59,    -1,   745,    -1,
 
1436
     205,    -1,   112,   511,   512,   736,    -1,   112,   736,    -1,
 
1437
     185,   511,   512,   736,    -1,   185,   736,    -1,    -1,   191,
 
1438
      -1,   234,    -1,   113,    -1,   164,    -1,     4,   747,    -1,
 
1439
     244,   747,    -1,   747,    -1,    11,    -1,   118,    -1,   118,
 
1440
     747,    -1,   118,    11,    -1,    26,    -1,    26,   747,    -1,
 
1441
      26,    11,    -1,   120,    -1,   137,    -1,   124,   515,   214,
 
1442
     518,   299,   519,   521,    -1,   253,   515,   214,   518,   120,
 
1443
     519,   412,    -1,   253,   124,   217,   115,   515,   214,   518,
 
1444
     120,   519,   412,    -1,   516,    -1,    11,    -1,    11,   235,
 
1445
      -1,   517,    -1,   516,   364,   517,    -1,   265,    -1,   242,
 
1446
      -1,    62,    -1,   748,    -1,   733,    -1,   291,   733,    -1,
 
1447
     122,   522,    -1,    75,   735,    -1,   162,   735,    -1,   261,
 
1448
     735,    -1,   292,   735,    -1,   520,    -1,   519,   364,   520,
 
1449
      -1,   746,    -1,   127,   746,    -1,   331,   124,   217,    -1,
 
1450
      -1,   523,    -1,   522,   364,   523,    -1,   742,   536,    -1,
 
1451
     124,   516,   299,   735,   526,   527,    -1,   253,   516,   120,
 
1452
     735,   527,   412,    -1,   253,     8,   217,   115,   516,   120,
 
1453
     735,   527,   412,    -1,   331,     8,   217,    -1,    -1,   125,
 
1454
      35,   746,    -1,    -1,    62,   529,   140,   740,   214,   734,
 
1455
     530,   359,   531,   360,   449,   664,    -1,   313,    -1,    -1,
 
1456
     319,   738,    -1,    -1,   532,    -1,   531,   364,   532,    -1,
 
1457
     748,   533,    -1,   694,   533,    -1,   359,   691,   360,   533,
 
1458
      -1,   504,    -1,   319,   504,    -1,    -1,    62,   535,   122,
 
1459
     742,   536,   252,   541,   543,   547,    -1,    62,   535,   122,
 
1460
     742,   536,   543,   547,    -1,   218,   248,    -1,    -1,   359,
 
1461
     537,   360,    -1,   359,   360,    -1,   538,    -1,   537,   364,
 
1462
     538,    -1,   539,   540,   542,    -1,   540,   539,   542,    -1,
 
1463
     540,   542,    -1,   539,   542,    -1,   542,    -1,   137,    -1,
 
1464
     220,    -1,   145,    -1,   137,   220,    -1,   750,    -1,   542,
 
1465
      -1,   667,    -1,   749,   505,   354,   309,    -1,   271,   749,
 
1466
     505,   354,   309,    -1,   545,    -1,   543,   545,    -1,    37,
 
1467
     214,   205,   146,    -1,   252,   205,   214,   205,   146,    -1,
 
1468
     285,    -1,   135,    -1,   278,    -1,   328,    -1,   109,   264,
 
1469
      85,    -1,   109,   264,   155,    -1,   264,    85,    -1,   264,
 
1470
     155,    -1,    19,   546,    -1,   162,   399,    -1,   544,    -1,
 
1471
     745,    -1,   745,   364,   745,    -1,   331,   491,    -1,    -1,
 
1472
      13,   122,   523,   549,   550,    -1,   544,    -1,   549,   544,
 
1473
      -1,   251,    -1,    -1,    95,   122,   742,   536,   412,    -1,
 
1474
      95,    10,   742,   359,   553,   360,   412,    -1,   667,    -1,
 
1475
     352,    -1,    95,   216,   556,   359,   555,   360,   412,    -1,
 
1476
     667,    -1,   667,   364,   667,    -1,   198,   364,   667,    -1,
 
1477
     667,   364,   198,    -1,   697,    -1,   748,   362,   556,    -1,
 
1478
      62,    40,   359,   667,    19,   667,   360,   331,   122,   523,
 
1479
     558,    -1,    62,    40,   359,   667,    19,   667,   360,   332,
 
1480
     122,   558,    -1,    19,   136,    -1,    19,    22,    -1,    -1,
 
1481
      95,    40,   359,   667,    19,   667,   360,   412,    -1,   243,
 
1482
     561,   734,   562,    -1,   243,   290,   736,   562,    -1,   243,
 
1483
      75,   736,   562,    -1,   140,    -1,   291,    -1,   116,    -1,
 
1484
      -1,    13,    10,   742,   359,   553,   360,   246,   299,   736,
 
1485
      -1,    13,    59,   504,   246,   299,   736,    -1,    13,    75,
 
1486
     737,   246,   299,   737,    -1,    13,   122,   742,   536,   246,
 
1487
     299,   736,    -1,    13,   127,   746,   246,   299,   746,    -1,
 
1488
      13,   162,   736,   246,   299,   736,    -1,    13,   216,    47,
 
1489
     504,   319,   738,   246,   299,   736,    -1,    13,   261,   736,
 
1490
     246,   299,   736,    -1,    13,   291,   662,   246,   299,   736,
 
1491
      -1,    13,   140,   662,   246,   299,   736,    -1,    13,   291,
 
1492
     662,   246,   564,   736,   299,   736,    -1,    13,   304,   736,
 
1493
     214,   662,   246,   299,   736,    -1,    13,   255,   746,   246,
 
1494
     299,   746,    -1,    13,   318,   746,   246,   299,   746,    -1,
 
1495
      13,   292,   736,   246,   299,   736,    -1,    52,    -1,    -1,
 
1496
      13,    10,   742,   359,   553,   360,   270,   261,   736,    -1,
 
1497
      13,    93,   504,   270,   261,   736,    -1,    13,   122,   742,
 
1498
     536,   270,   261,   736,    -1,    13,   266,   662,   270,   261,
 
1499
     736,    -1,    13,   291,   662,   270,   261,   736,    -1,    13,
 
1500
     309,   504,   270,   261,   736,    -1,    13,    10,   742,   359,
 
1501
     553,   360,   224,   299,   746,    -1,    13,    59,   504,   224,
 
1502
     299,   746,    -1,    13,    75,   737,   224,   299,   746,    -1,
 
1503
      13,    93,   504,   224,   299,   746,    -1,    13,   122,   742,
 
1504
     536,   224,   299,   746,    -1,    13,   216,   556,   359,   555,
 
1505
     360,   224,   299,   746,    -1,    13,   216,    47,   504,   319,
 
1506
     738,   224,   299,   746,    -1,    13,   261,   736,   224,   299,
 
1507
     746,    -1,    13,   309,   504,   224,   299,   746,    -1,    13,
 
1508
     292,   736,   224,   299,   746,    -1,    -1,    62,   535,   259,
 
1509
     736,    19,   568,   214,   573,   299,   734,   664,    92,   574,
 
1510
     569,    -1,   201,    -1,   571,    -1,   359,   570,   360,    -1,
 
1511
     570,   363,   572,    -1,   572,    -1,   631,    -1,   617,    -1,
 
1512
     627,    -1,   621,    -1,   576,    -1,   571,    -1,    -1,   265,
 
1513
      -1,   317,    -1,    86,    -1,   148,    -1,   149,    -1,    12,
 
1514
      -1,    -1,    95,   259,   736,   214,   734,   412,    -1,   202,
 
1515
     734,    -1,   171,   734,    -1,   315,   734,    -1,   315,   352,
 
1516
      -1,     3,   580,    -1,    28,   580,   583,    -1,   279,   302,
 
1517
     583,    -1,    54,   580,    -1,   101,   580,    -1,   256,   580,
 
1518
      -1,   260,   748,    -1,   245,   260,   748,    -1,   245,   748,
 
1519
      -1,   256,   580,   299,   260,   748,    -1,   256,   580,   299,
 
1520
     748,    -1,   231,   302,   745,    -1,    54,   232,   745,    -1,
 
1521
     256,   232,   745,    -1,   333,    -1,   302,    -1,    -1,   158,
 
1522
     168,   395,    -1,   239,   215,    -1,   239,   334,    -1,   581,
 
1523
      -1,   582,   364,   581,    -1,   582,   581,    -1,   582,    -1,
 
1524
      -1,    62,   425,   327,   734,   438,    19,   631,    -1,    62,
 
1525
     218,   248,   425,   327,   734,   438,    19,   631,    -1,   172,
 
1526
     741,    -1,    62,    75,   737,   371,   587,    -1,   587,   588,
 
1527
      -1,    -1,   292,   589,   736,    -1,   292,   589,    81,    -1,
 
1528
     176,   589,   745,    -1,   176,   589,    81,    -1,   294,   589,
 
1529
     736,    -1,   294,   589,    81,    -1,    99,   589,   745,    -1,
 
1530
      99,   589,   744,    -1,    99,   589,    81,    -1,    56,   170,
 
1531
     589,   747,    -1,   224,   589,   736,    -1,   224,   589,    81,
 
1532
      -1,   346,    -1,    -1,    13,    75,   737,   371,   592,    -1,
 
1533
      13,    75,   737,   270,   390,    -1,    13,    75,   737,   401,
 
1534
      -1,   592,   593,    -1,    -1,    56,   170,   589,   747,    -1,
 
1535
      95,    75,   737,    -1,    62,    93,   504,   597,   667,   430,
 
1536
      -1,    13,    93,   504,   411,    -1,    13,    93,   504,    95,
 
1537
     200,   205,    -1,    13,    93,   504,   270,   200,   205,    -1,
 
1538
      13,    93,   504,     7,   436,    -1,    13,    93,   504,    95,
 
1539
      57,   736,   412,    -1,    19,    -1,    -1,    62,   498,    59,
 
1540
     504,   115,   745,   299,   745,   120,   504,    -1,    49,   740,
 
1541
     214,   734,    -1,    49,   734,    -1,    49,    -1,   320,   604,
 
1542
     605,   603,    -1,   320,   604,   605,   603,   734,    -1,   320,
 
1543
     604,   605,   603,   601,    -1,   602,   603,    -1,   602,   603,
 
1544
     734,   606,    -1,    15,    -1,    14,    -1,   326,    -1,    -1,
 
1545
     121,    -1,    -1,   119,    -1,    -1,   359,   735,   360,    -1,
 
1546
      -1,   108,   609,   603,   608,    -1,   631,    -1,   617,    -1,
 
1547
     627,    -1,   621,    -1,   628,    -1,   614,    -1,   602,    -1,
 
1548
      -1,   231,   736,   611,    19,   613,    -1,   359,   612,   360,
 
1549
      -1,    -1,   667,    -1,   612,   364,   667,    -1,   631,    -1,
 
1550
     617,    -1,   627,    -1,   621,    -1,   106,   736,   615,    -1,
 
1551
      62,   425,   291,   734,   453,    19,   106,   736,   615,    -1,
 
1552
     359,   702,   360,    -1,    -1,    77,   736,    -1,    77,   231,
 
1553
     736,    -1,   148,   154,   734,   618,    -1,   323,   359,   730,
 
1554
     360,    -1,    81,   323,    -1,   631,    -1,   359,   619,   360,
 
1555
     323,   359,   730,   360,    -1,   359,   619,   360,   631,    -1,
 
1556
     620,    -1,   619,   364,   620,    -1,   748,   724,    -1,    86,
 
1557
     120,   662,   622,   664,    -1,   319,   655,    -1,    -1,   177,
 
1558
     638,   733,   624,   626,    -1,   137,   625,   183,    -1,    -1,
 
1559
       5,   272,    -1,   257,   272,    -1,   257,   105,    -1,   272,
 
1560
     317,   105,    -1,   272,    -1,   272,   257,   105,    -1,   105,
 
1561
      -1,     5,   105,    -1,   204,    -1,    -1,   317,   662,   270,
 
1562
     728,   654,   664,    -1,    80,   736,   629,    73,   630,   115,
 
1563
     631,    -1,    -1,   629,   192,   262,    -1,   629,   262,    -1,
 
1564
     629,    31,    -1,   629,   147,    -1,    -1,   331,   131,    -1,
 
1565
     332,   131,    -1,   633,    -1,   632,    -1,   359,   633,   360,
 
1566
      -1,   359,   632,   360,    -1,   635,    -1,   634,   642,    -1,
 
1567
     634,   641,   651,   646,    -1,   634,   641,   645,   652,    -1,
 
1568
     635,    -1,   632,    -1,   265,   640,   726,   636,   654,   664,
 
1569
     649,   650,    -1,   634,   312,   639,   634,    -1,   634,   152,
 
1570
     639,   634,    -1,   634,   103,   639,   634,    -1,   154,   637,
 
1571
      -1,    -1,   295,   638,   734,    -1,   293,   638,   734,    -1,
 
1572
     173,   295,   638,   734,    -1,   173,   293,   638,   734,    -1,
 
1573
     123,   295,   638,   734,    -1,   123,   293,   638,   734,    -1,
 
1574
     291,   734,    -1,   734,    -1,   291,    -1,    -1,    11,    -1,
 
1575
      91,    -1,    -1,    91,    -1,    91,   214,   359,   702,   360,
 
1576
      -1,    11,    -1,    -1,   642,    -1,    -1,   219,    35,   643,
 
1577
      -1,   644,    -1,   643,   364,   644,    -1,   691,   319,   700,
 
1578
      -1,   691,    20,    -1,   691,    89,    -1,   691,    -1,   170,
 
1579
     647,   211,   648,    -1,   211,   648,   170,   647,    -1,   170,
 
1580
     647,    -1,   211,   648,    -1,   170,   647,   364,   648,    -1,
 
1581
     645,    -1,    -1,   691,    -1,    11,    -1,   691,    -1,   127,
 
1582
      35,   702,    -1,    -1,   129,   691,    -1,    -1,   115,   317,
 
1583
     653,   626,    -1,   115,   272,   653,   626,    -1,   115,   239,
 
1584
     215,    -1,   651,    -1,    -1,   209,   735,    -1,    -1,   120,
 
1585
     655,    -1,    -1,   656,    -1,   655,   364,   656,    -1,   662,
 
1586
      -1,   662,   658,    -1,   663,    -1,   663,   658,    -1,   663,
 
1587
      19,   359,   665,   360,    -1,   663,    19,   748,   359,   665,
 
1588
     360,    -1,   663,   748,   359,   665,   360,    -1,   632,    -1,
 
1589
     632,   658,    -1,   657,    -1,   359,   657,   360,   658,    -1,
 
1590
     359,   657,   360,    -1,   656,    66,   159,   656,    -1,   656,
 
1591
     337,   656,    -1,   656,   659,   159,   656,   661,    -1,   656,
 
1592
     159,   656,   661,    -1,   656,   188,   659,   159,   656,    -1,
 
1593
     656,   188,   159,   656,    -1,    19,   748,   359,   735,   360,
 
1594
      -1,    19,   748,    -1,   748,   359,   735,   360,    -1,   748,
 
1595
      -1,   121,   660,    -1,   167,   660,    -1,   254,   660,    -1,
 
1596
     144,    -1,   221,    -1,    -1,   319,   359,   735,   360,    -1,
 
1597
     214,   691,    -1,   734,    -1,   734,   352,    -1,   215,   734,
 
1598
      -1,   215,   359,   734,   360,    -1,   694,    -1,   330,   691,
 
1599
      -1,    -1,   666,    -1,   665,   364,   666,    -1,   748,   667,
 
1600
      -1,   669,   668,    -1,   271,   669,   668,    -1,   669,    18,
 
1601
     357,   744,   358,    -1,   271,   669,    18,   357,   744,   358,
 
1602
      -1,   668,   357,   358,    -1,   668,   357,   744,   358,    -1,
 
1603
      -1,   671,    -1,   672,    -1,   676,    -1,   680,    -1,   687,
 
1604
      -1,   688,   690,    -1,   688,   359,   744,   360,   690,    -1,
 
1605
     749,   505,    -1,   671,    -1,   672,    -1,   677,    -1,   681,
 
1606
      -1,   687,    -1,   749,    -1,   150,    -1,   151,    -1,   276,
 
1607
      -1,    30,    -1,   240,    -1,   114,   673,    -1,    94,   229,
 
1608
      -1,    79,   675,    -1,    78,   675,    -1,   207,   674,    -1,
 
1609
      33,    -1,   359,   744,   360,    -1,    -1,   359,   744,   364,
 
1610
     744,   360,    -1,   359,   744,   360,    -1,    -1,   359,   744,
 
1611
     364,   744,   360,    -1,   359,   744,   360,    -1,    -1,   678,
 
1612
      -1,   679,    -1,   678,    -1,   679,    -1,    32,   685,   359,
 
1613
     744,   360,    -1,    32,   685,    -1,   682,    -1,   683,    -1,
 
1614
     682,    -1,   683,    -1,   684,   359,   744,   360,   686,    -1,
 
1615
     684,   686,    -1,    43,   685,    -1,    42,   685,    -1,   324,
 
1616
      -1,   187,    43,   685,    -1,   187,    42,   685,    -1,   189,
 
1617
     685,    -1,   325,    -1,    -1,    43,   270,   748,    -1,    -1,
 
1618
     298,   359,   744,   360,   689,    -1,   298,   689,    -1,   297,
 
1619
     359,   744,   360,   689,    -1,   297,   689,    -1,   153,    -1,
 
1620
     331,   297,   336,    -1,   332,   297,   336,    -1,    -1,   335,
 
1621
      -1,   184,    -1,    76,    -1,   132,    -1,   181,    -1,   263,
 
1622
      -1,   335,   299,   184,    -1,    76,   299,   132,    -1,    76,
 
1623
     299,   181,    -1,    76,   299,   263,    -1,   132,   299,   181,
 
1624
      -1,   132,   299,   263,    -1,   181,   299,   263,    -1,    -1,
 
1625
     693,    -1,   691,   361,   667,    -1,   691,    24,   297,   336,
 
1626
     691,    -1,   350,   691,    -1,   351,   691,    -1,   691,   350,
 
1627
     691,    -1,   691,   351,   691,    -1,   691,   352,   691,    -1,
 
1628
     691,   353,   691,    -1,   691,   354,   691,    -1,   691,   355,
 
1629
     691,    -1,   691,   347,   691,    -1,   691,   348,   691,    -1,
 
1630
     691,   346,   691,    -1,   691,   699,   691,    -1,   699,   691,
 
1631
      -1,   691,   699,    -1,   691,    16,   691,    -1,   691,   218,
 
1632
     691,    -1,   200,   691,    -1,   691,   169,   691,    -1,   691,
 
1633
     169,   691,   102,   691,    -1,   691,   200,   169,   691,    -1,
 
1634
     691,   200,   169,   691,   102,   691,    -1,   691,   133,   691,
 
1635
      -1,   691,   133,   691,   102,   691,    -1,   691,   200,   133,
 
1636
     691,    -1,   691,   200,   133,   691,   102,   691,    -1,   691,
 
1637
     274,   299,   691,    -1,   691,   274,   299,   691,   102,   691,
 
1638
      -1,   691,   200,   274,   299,   691,    -1,   691,   200,   274,
 
1639
     299,   691,   102,   691,    -1,   691,   157,    -1,   691,   156,
 
1640
     205,    -1,   691,   203,    -1,   691,   156,   200,   205,    -1,
 
1641
     695,   222,   695,    -1,   691,   156,   306,    -1,   691,   156,
 
1642
     200,   306,    -1,   691,   156,   111,    -1,   691,   156,   200,
 
1643
     111,    -1,   691,   156,   314,    -1,   691,   156,   200,   314,
 
1644
      -1,   691,   156,    91,   120,   691,    -1,   691,   156,   209,
 
1645
     359,   704,   360,    -1,   691,   156,   200,   209,   359,   704,
 
1646
     360,    -1,   691,    29,   725,   692,    16,   692,    -1,   691,
 
1647
     200,    29,   725,   692,    16,   692,    -1,   691,    29,   288,
 
1648
     692,    16,   692,    -1,   691,   200,    29,   288,   692,    16,
 
1649
     692,    -1,   691,   137,   715,    -1,   691,   200,   137,   715,
 
1650
      -1,   691,   701,   696,   632,    -1,   691,   701,   696,   359,
 
1651
     691,   360,    -1,   313,   632,    -1,   693,    -1,   692,   361,
 
1652
     667,    -1,   350,   692,    -1,   351,   692,    -1,   692,   350,
 
1653
     692,    -1,   692,   351,   692,    -1,   692,   352,   692,    -1,
 
1654
     692,   353,   692,    -1,   692,   354,   692,    -1,   692,   355,
 
1655
     692,    -1,   692,   347,   692,    -1,   692,   348,   692,    -1,
 
1656
     692,   346,   692,    -1,   692,   699,   692,    -1,   699,   692,
 
1657
      -1,   692,   699,    -1,   692,   156,    91,   120,   692,    -1,
 
1658
     692,   156,   209,   359,   704,   360,    -1,   692,   156,   200,
 
1659
     209,   359,   704,   360,    -1,   721,    -1,   743,    -1,   345,
 
1660
     724,    -1,   359,   691,   360,   724,    -1,   716,    -1,   694,
 
1661
      -1,   632,    -1,   107,   632,    -1,    18,   632,    -1,    18,
 
1662
     706,    -1,   695,    -1,   742,   359,   360,    -1,   742,   359,
 
1663
     702,   360,    -1,   742,   359,    11,   702,   360,    -1,   742,
 
1664
     359,    91,   702,   360,    -1,   742,   359,   352,   360,    -1,
 
1665
      68,    -1,    70,    -1,    70,   359,   744,   360,    -1,    71,
 
1666
      -1,    71,   359,   744,   360,    -1,   174,    -1,   174,   359,
 
1667
     744,   360,    -1,   175,    -1,   175,   359,   744,   360,    -1,
 
1668
      69,    -1,    72,    -1,   269,    -1,   318,    -1,    40,   359,
 
1669
     691,    19,   667,   360,    -1,   110,   359,   703,   360,    -1,
 
1670
     223,   359,   708,   360,    -1,   228,   359,   710,   360,    -1,
 
1671
     286,   359,   711,   360,    -1,   303,   359,   691,    19,   667,
 
1672
     360,    -1,   305,   359,    34,   714,   360,    -1,   305,   359,
 
1673
     165,   714,   360,    -1,   305,   359,   301,   714,   360,    -1,
 
1674
     305,   359,   714,   360,    -1,    60,   359,   691,   319,   504,
 
1675
     360,    -1,    60,   359,   702,   360,    -1,   206,   359,   691,
 
1676
     364,   691,   360,    -1,    50,   359,   702,   360,    -1,   126,
 
1677
     359,   702,   360,    -1,   166,   359,   702,   360,    -1,   257,
 
1678
     359,   702,   360,    -1,   257,   359,   360,    -1,   359,   702,
 
1679
     364,   691,   360,    -1,    17,    -1,   277,    -1,    11,    -1,
 
1680
     343,    -1,   698,    -1,   350,    -1,   351,    -1,   352,    -1,
 
1681
     353,    -1,   354,    -1,   355,    -1,   347,    -1,   348,    -1,
 
1682
     346,    -1,   343,    -1,   216,   359,   556,   360,    -1,   697,
 
1683
      -1,   216,   359,   556,   360,    -1,   697,    -1,   216,   359,
 
1684
     556,   360,    -1,   169,    -1,   200,   169,    -1,   133,    -1,
 
1685
     200,   133,    -1,   691,    -1,   702,   364,   691,    -1,   707,
 
1686
     120,   691,    -1,    -1,   704,   364,   667,    -1,   667,    -1,
 
1687
     706,    -1,   705,   364,   706,    -1,   357,   702,   358,    -1,
 
1688
     357,   705,   358,    -1,   338,    -1,   335,    -1,   184,    -1,
 
1689
      76,    -1,   132,    -1,   181,    -1,   263,    -1,   340,    -1,
 
1690
     691,   709,   712,   713,    -1,   691,   709,   712,    -1,   227,
 
1691
     691,    -1,   692,   137,   692,    -1,    -1,   691,   712,   713,
 
1692
      -1,   691,   713,   712,    -1,   691,   712,    -1,   691,   713,
 
1693
      -1,   702,    -1,    -1,   120,   691,    -1,   115,   691,    -1,
 
1694
     691,   120,   702,    -1,   120,   702,    -1,   702,    -1,   632,
 
1695
      -1,   359,   702,   360,    -1,    39,   720,   717,   719,   101,
 
1696
      -1,   718,    -1,   717,   718,    -1,   329,   691,   296,   691,
 
1697
      -1,    97,   691,    -1,    -1,   691,    -1,    -1,   732,    -1,
 
1698
     732,   723,    -1,   362,   739,    -1,   362,   352,    -1,   357,
 
1699
     691,   358,    -1,   357,   691,   365,   691,   358,    -1,   722,
 
1700
      -1,   723,   722,    -1,    -1,   724,   722,    -1,    23,    -1,
 
1701
      -1,   727,    -1,   726,   364,   727,    -1,   691,    19,   751,
 
1702
      -1,   691,    -1,   352,    -1,   729,    -1,   728,   364,   729,
 
1703
      -1,   748,   724,   346,   691,    -1,   748,   724,   346,    81,
 
1704
      -1,   731,    -1,   730,   364,   731,    -1,   691,    -1,    81,
 
1705
      -1,   756,    -1,   748,    -1,   734,    -1,   733,   364,   734,
 
1706
      -1,   732,    -1,   732,   723,    -1,   736,    -1,   735,   364,
 
1707
     736,    -1,   748,    -1,   748,    -1,   748,    -1,   751,    -1,
 
1708
     748,    -1,   745,    -1,   750,    -1,   732,   723,    -1,   744,
 
1709
      -1,   339,    -1,   745,    -1,   341,    -1,   342,    -1,   670,
 
1710
     745,    -1,   688,   745,   690,    -1,   688,   359,   744,   360,
 
1711
     745,   690,    -1,   306,    -1,   111,    -1,   205,    -1,   344,
 
1712
      -1,   340,    -1,   748,    -1,   344,    -1,   351,   344,    -1,
 
1713
     338,    -1,   752,    -1,   753,    -1,   338,    -1,   752,    -1,
 
1714
     338,    -1,   752,    -1,   754,    -1,   338,    -1,   752,    -1,
 
1715
     753,    -1,   754,    -1,   755,    -1,     3,    -1,     4,    -1,
 
1716
       5,    -1,     6,    -1,     7,    -1,     8,    -1,     9,    -1,
 
1717
      10,    -1,    12,    -1,    13,    -1,    21,    -1,    22,    -1,
 
1718
      24,    -1,    26,    -1,    27,    -1,    28,    -1,    35,    -1,
 
1719
      36,    -1,    37,    -1,    38,    -1,    41,    -1,    44,    -1,
 
1720
      46,    -1,    47,    -1,    48,    -1,    49,    -1,    53,    -1,
 
1721
      54,    -1,    55,    -1,    56,    -1,    58,    -1,    59,    -1,
 
1722
      61,    -1,    63,    -1,    64,    -1,    65,    -1,    67,    -1,
 
1723
      73,    -1,    74,    -1,    75,    -1,    76,    -1,    77,    -1,
 
1724
      80,    -1,    82,    -1,    84,    -1,    85,    -1,    86,    -1,
 
1725
      87,    -1,    88,    -1,    90,    -1,    93,    -1,    94,    -1,
 
1726
      95,    -1,    96,    -1,    98,    -1,    99,    -1,   100,    -1,
 
1727
     102,    -1,   104,    -1,   105,    -1,   106,    -1,   108,    -1,
 
1728
     109,    -1,   112,    -1,   113,    -1,   116,    -1,   118,    -1,
 
1729
     122,    -1,   123,    -1,   125,    -1,   128,    -1,   130,    -1,
 
1730
     131,    -1,   132,    -1,   134,    -1,   135,    -1,   136,    -1,
 
1731
     138,    -1,   139,    -1,   140,    -1,   141,    -1,   142,    -1,
 
1732
     146,    -1,   147,    -1,   148,    -1,   149,    -1,   155,    -1,
 
1733
     158,    -1,   160,    -1,   161,    -1,   162,    -1,   163,    -1,
 
1734
     164,    -1,   168,    -1,   171,    -1,   172,    -1,   173,    -1,
 
1735
     176,    -1,   177,    -1,   178,    -1,   179,    -1,   180,    -1,
 
1736
     181,    -1,   182,    -1,   183,    -1,   184,    -1,   185,    -1,
 
1737
     186,    -1,   191,    -1,   192,    -1,   193,    -1,   194,    -1,
 
1738
     195,    -1,   196,    -1,   197,    -1,   199,    -1,   201,    -1,
 
1739
     202,    -1,   204,    -1,   208,    -1,   209,    -1,   212,    -1,
 
1740
     216,    -1,   217,    -1,   224,    -1,   225,    -1,   226,    -1,
 
1741
     231,    -1,   232,    -1,   230,    -1,   234,    -1,   235,    -1,
 
1742
     236,    -1,   237,    -1,   238,    -1,   239,    -1,   241,    -1,
 
1743
     243,    -1,   244,    -1,   245,    -1,   246,    -1,   247,    -1,
 
1744
     248,    -1,   249,    -1,   250,    -1,   251,    -1,   252,    -1,
 
1745
     253,    -1,   255,    -1,   256,    -1,   258,    -1,   259,    -1,
 
1746
     260,    -1,   261,    -1,   262,    -1,   263,    -1,   264,    -1,
 
1747
     266,    -1,   267,    -1,   268,    -1,   270,    -1,   272,    -1,
 
1748
     273,    -1,   275,    -1,   278,    -1,   279,    -1,   280,    -1,
 
1749
     281,    -1,   282,    -1,   283,    -1,   284,    -1,   287,    -1,
 
1750
     289,    -1,   290,    -1,   285,    -1,   292,    -1,   293,    -1,
 
1751
     294,    -1,   295,    -1,   300,    -1,   302,    -1,   304,    -1,
 
1752
     307,    -1,   308,    -1,   309,    -1,   310,    -1,   311,    -1,
 
1753
     314,    -1,   315,    -1,   316,    -1,   317,    -1,   320,    -1,
 
1754
     321,    -1,   322,    -1,   323,    -1,   325,    -1,   327,    -1,
 
1755
     328,    -1,   331,    -1,   332,    -1,   333,    -1,   334,    -1,
 
1756
     335,    -1,   336,    -1,    30,    -1,    32,    -1,    33,    -1,
 
1757
      42,    -1,    43,    -1,    50,    -1,    60,    -1,    78,    -1,
 
1758
      79,    -1,   107,    -1,   110,    -1,   114,    -1,   126,    -1,
 
1759
     145,    -1,   150,    -1,   151,    -1,   153,    -1,   166,    -1,
 
1760
     187,    -1,   189,    -1,   198,    -1,   206,    -1,   207,    -1,
 
1761
     220,    -1,   223,    -1,   228,    -1,   229,    -1,   240,    -1,
 
1762
     257,    -1,   271,    -1,   276,    -1,   286,    -1,   297,    -1,
 
1763
     298,    -1,   303,    -1,   305,    -1,   324,    -1,    25,    -1,
 
1764
      29,    -1,    31,    -1,    66,    -1,   119,    -1,   121,    -1,
 
1765
     133,    -1,   144,    -1,   156,    -1,   157,    -1,   159,    -1,
 
1766
     167,    -1,   169,    -1,   188,    -1,   203,    -1,   221,    -1,
 
1767
     222,    -1,   254,    -1,   274,    -1,   326,    -1,    11,    -1,
 
1768
      14,    -1,    15,    -1,    16,    -1,    17,    -1,    18,    -1,
 
1769
      19,    -1,    20,    -1,    23,    -1,    34,    -1,    39,    -1,
 
1770
      40,    -1,    45,    -1,    51,    -1,    52,    -1,    57,    -1,
 
1771
      62,    -1,    68,    -1,    69,    -1,    70,    -1,    71,    -1,
 
1772
      72,    -1,    81,    -1,    83,    -1,    89,    -1,    91,    -1,
 
1773
      92,    -1,    97,    -1,   101,    -1,   103,    -1,   111,    -1,
 
1774
     115,    -1,   117,    -1,   120,    -1,   124,    -1,   127,    -1,
 
1775
     129,    -1,   137,    -1,   143,    -1,   152,    -1,   154,    -1,
 
1776
     165,    -1,   170,    -1,   174,    -1,   175,    -1,   190,    -1,
 
1777
     200,    -1,   205,    -1,   210,    -1,   211,    -1,   213,    -1,
 
1778
     214,    -1,   215,    -1,   218,    -1,   219,    -1,   227,    -1,
 
1779
     233,    -1,   242,    -1,   265,    -1,   269,    -1,   277,    -1,
 
1780
     288,    -1,   291,    -1,   296,    -1,   299,    -1,   301,    -1,
 
1781
     306,    -1,   312,    -1,   313,    -1,   318,    -1,   319,    -1,
 
1782
     329,    -1,   330,    -1,   213,    -1,   190,    -1
 
1783
};
 
1784
 
 
1785
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 
1786
static const unsigned short yyrline[] =
 
1787
{
 
1788
       0,   478,   478,   482,   488,   497,   498,   499,   500,   501,
 
1789
     502,   503,   504,   505,   506,   507,   508,   509,   510,   511,
 
1790
     512,   513,   514,   515,   516,   517,   518,   519,   520,   521,
 
1791
     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
 
1792
     532,   533,   534,   535,   536,   537,   538,   539,   540,   541,
 
1793
     542,   543,   544,   545,   546,   547,   548,   549,   550,   551,
 
1794
     552,   553,   554,   555,   556,   557,   558,   559,   560,   561,
 
1795
     562,   563,   564,   565,   566,   567,   568,   569,   570,   571,
 
1796
     572,   573,   574,   575,   576,   577,   578,   579,   581,   591,
 
1797
     602,   603,   612,   613,   617,   622,   627,   632,   636,   640,
 
1798
     644,   648,   652,   656,   660,   664,   669,   673,   677,   681,
 
1799
     685,   690,   695,   699,   703,   707,   711,   725,   743,   754,
 
1800
     762,   780,   792,   800,   821,   839,   855,   873,   884,   885,
 
1801
     897,   913,   925,   937,   938,   942,   943,   951,   952,   953,
 
1802
     954,   955,   956,   970,   976,   982,   990,   997,  1004,  1012,
 
1803
    1019,  1026,  1034,  1041,  1048,  1058,  1059,  1071,  1072,  1075,
 
1804
    1076,  1079,  1081,  1083,  1087,  1088,  1089,  1090,  1094,  1095,
 
1805
    1096,  1097,  1109,  1113,  1117,  1130,  1157,  1158,  1159,  1163,
 
1806
    1164,  1165,  1169,  1170,  1175,  1181,  1187,  1193,  1199,  1208,
 
1807
    1214,  1220,  1226,  1232,  1242,  1252,  1253,  1257,  1258,  1266,
 
1808
    1281,  1289,  1300,  1301,  1307,  1315,  1324,  1332,  1340,  1349,
 
1809
    1358,  1370,  1380,  1388,  1397,  1404,  1411,  1419,  1427,  1435,
 
1810
    1442,  1449,  1457,  1464,  1470,  1477,  1478,  1484,  1492,  1502,
 
1811
    1510,  1514,  1515,  1516,  1520,  1521,  1534,  1553,  1577,  1578,
 
1812
    1587,  1588,  1589,  1595,  1596,  1601,  1605,  1609,  1613,  1617,
 
1813
    1621,  1625,  1629,  1633,  1637,  1646,  1650,  1654,  1658,  1663,
 
1814
    1667,  1671,  1672,  1683,  1697,  1723,  1724,  1725,  1726,  1727,
 
1815
    1728,  1729,  1733,  1734,  1738,  1742,  1749,  1750,  1751,  1754,
 
1816
    1766,  1767,  1771,  1792,  1793,  1812,  1823,  1834,  1845,  1856,
 
1817
    1867,  1886,  1914,  1920,  1926,  1932,  1950,  1961,  1962,  1963,
 
1818
    1972,  1993,  1997,  2007,  2018,  2029,  2047,  2048,  2052,  2053,
 
1819
    2056,  2062,  2066,  2073,  2078,  2090,  2092,  2094,  2096,  2099,
 
1820
    2102,  2105,  2109,  2110,  2111,  2112,  2113,  2116,  2117,  2121,
 
1821
    2122,  2123,  2126,  2127,  2128,  2129,  2132,  2133,  2136,  2137,
 
1822
    2147,  2176,  2177,  2178,  2182,  2183,  2187,  2188,  2192,  2218,
 
1823
    2229,  2238,  2239,  2242,  2246,  2250,  2254,  2258,  2262,  2266,
 
1824
    2270,  2274,  2278,  2284,  2285,  2289,  2290,  2293,  2294,  2301,
 
1825
    2313,  2323,  2337,  2338,  2346,  2347,  2351,  2352,  2356,  2357,
 
1826
    2361,  2371,  2372,  2382,  2392,  2393,  2406,  2423,  2441,  2465,
 
1827
    2466,  2470,  2476,  2482,  2491,  2492,  2493,  2497,  2502,  2512,
 
1828
    2513,  2517,  2518,  2522,  2523,  2524,  2528,  2534,  2535,  2536,
 
1829
    2537,  2538,  2542,  2543,  2547,  2549,  2557,  2564,  2573,  2577,
 
1830
    2578,  2582,  2583,  2588,  2609,  2628,  2651,  2659,  2667,  2675,
 
1831
    2711,  2714,  2715,  2718,  2722,  2729,  2730,  2731,  2732,  2745,
 
1832
    2759,  2760,  2764,  2774,  2784,  2793,  2802,  2803,  2806,  2807,
 
1833
    2812,  2831,  2841,  2842,  2843,  2844,  2845,  2846,  2847,  2848,
 
1834
    2852,  2853,  2856,  2857,  2860,  2862,  2875,  2901,  2910,  2920,
 
1835
    2929,  2939,  2948,  2957,  2967,  2976,  2985,  2994,  3003,  3015,
 
1836
    3016,  3017,  3018,  3019,  3020,  3021,  3022,  3023,  3024,  3028,
 
1837
    3029,  3039,  3046,  3055,  3062,  3075,  3081,  3088,  3095,  3102,
 
1838
    3109,  3116,  3123,  3130,  3137,  3144,  3151,  3158,  3165,  3172,
 
1839
    3181,  3182,  3192,  3207,  3220,  3246,  3248,  3250,  3254,  3256,
 
1840
    3260,  3261,  3262,  3263,  3271,  3278,  3285,  3292,  3299,  3306,
 
1841
    3313,  3324,  3325,  3328,  3338,  3352,  3353,  3357,  3358,  3363,
 
1842
    3379,  3392,  3402,  3414,  3415,  3418,  3419,  3434,  3450,  3451,
 
1843
    3455,  3456,  3459,  3460,  3468,  3475,  3482,  3491,  3492,  3493,
 
1844
    3508,  3520,  3535,  3536,  3539,  3540,  3544,  3545,  3559,  3567,
 
1845
    3575,  3583,  3591,  3602,  3603,  3604,  3605,  3611,  3615,  3629,
 
1846
    3630,  3637,  3650,  3651,  3658,  3662,  3666,  3670,  3674,  3678,
 
1847
    3682,  3686,  3690,  3694,  3701,  3705,  3709,  3715,  3716,  3723,
 
1848
    3724,  3736,  3747,  3748,  3753,  3754,  3769,  3780,  3791,  3792,
 
1849
    3796,  3807,  3814,  3816,  3818,  3823,  3825,  3836,  3846,  3858,
 
1850
    3859,  3860,  3864,  3886,  3894,  3904,  3917,  3918,  3921,  3922,
 
1851
    3932,  3941,  3949,  3957,  3966,  3974,  3982,  3991,  3999,  4008,
 
1852
    4017,  4026,  4035,  4043,  4051,  4061,  4062,  4072,  4081,  4089,
 
1853
    4098,  4106,  4114,  4130,  4139,  4147,  4155,  4163,  4172,  4181,
 
1854
    4190,  4198,  4206,  4224,  4223,  4242,  4243,  4244,  4249,  4255,
 
1855
    4264,  4265,  4266,  4267,  4268,  4272,  4273,  4277,  4278,  4279,
 
1856
    4280,  4284,  4285,  4286,  4291,  4311,  4319,  4328,  4334,  4355,
 
1857
    4362,  4369,  4376,  4383,  4390,  4397,  4405,  4413,  4421,  4429,
 
1858
    4437,  4444,  4451,  4460,  4461,  4462,  4466,  4469,  4472,  4479,
 
1859
    4481,  4483,  4488,  4490,  4501,  4512,  4532,  4548,  4558,  4559,
 
1860
    4563,  4567,  4571,  4575,  4579,  4583,  4587,  4591,  4595,  4599,
 
1861
    4603,  4607,  4617,  4618,  4629,  4639,  4647,  4659,  4660,  4664,
 
1862
    4678,  4694,  4706,  4715,  4723,  4731,  4740,  4751,  4752,  4766,
 
1863
    4789,  4796,  4803,  4820,  4832,  4844,  4856,  4868,  4883,  4884,
 
1864
    4888,  4889,  4892,  4893,  4896,  4897,  4901,  4902,  4913,  4924,
 
1865
    4925,  4926,  4927,  4928,  4929,  4933,  4934,  4944,  4954,  4955,
 
1866
    4958,  4959,  4964,  4965,  4966,  4967,  4977,  4985,  5001,  5002,
 
1867
    5012,  5018,  5034,  5042,  5049,  5056,  5063,  5070,  5080,  5082,
 
1868
    5087,  5104,  5115,  5116,  5119,  5130,  5131,  5134,  5135,  5136,
 
1869
    5137,  5138,  5139,  5140,  5141,  5144,  5145,  5156,  5177,  5189,
 
1870
    5190,  5191,  5192,  5193,  5196,  5197,  5198,  5246,  5247,  5251,
 
1871
    5252,  5262,  5263,  5269,  5275,  5284,  5285,  5312,  5328,  5332,
 
1872
    5336,  5343,  5344,  5352,  5357,  5362,  5367,  5372,  5377,  5382,
 
1873
    5387,  5394,  5395,  5398,  5399,  5400,  5407,  5408,  5409,  5410,
 
1874
    5414,  5415,  5419,  5423,  5424,  5427,  5434,  5441,  5448,  5459,
 
1875
    5461,  5463,  5465,  5467,  5478,  5480,  5484,  5485,  5495,  5499,
 
1876
    5500,  5504,  5505,  5509,  5517,  5525,  5529,  5530,  5534,  5535,
 
1877
    5547,  5548,  5552,  5553,  5563,  5567,  5572,  5579,  5587,  5594,
 
1878
    5604,  5614,  5633,  5640,  5644,  5670,  5674,  5686,  5700,  5713,
 
1879
    5727,  5738,  5753,  5759,  5764,  5770,  5777,  5778,  5779,  5780,
 
1880
    5784,  5785,  5797,  5798,  5803,  5810,  5817,  5824,  5834,  5839,
 
1881
    5840,  5845,  5849,  5855,  5876,  5881,  5887,  5893,  5903,  5905,
 
1882
    5908,  5920,  5921,  5922,  5923,  5924,  5925,  5931,  5949,  5967,
 
1883
    5968,  5969,  5970,  5971,  5975,  5986,  5990,  5994,  5998,  6002,
 
1884
    6006,  6010,  6014,  6019,  6024,  6029,  6035,  6051,  6057,  6072,
 
1885
    6083,  6090,  6105,  6116,  6127,  6131,  6139,  6143,  6151,  6172,
 
1886
    6193,  6197,  6203,  6207,  6220,  6255,  6278,  6280,  6282,  6284,
 
1887
    6286,  6288,  6293,  6294,  6298,  6299,  6303,  6329,  6340,  6362,
 
1888
    6372,  6376,  6377,  6378,  6382,  6383,  6384,  6385,  6386,  6387,
 
1889
    6388,  6390,  6392,  6395,  6398,  6400,  6403,  6405,  6431,  6432,
 
1890
    6434,  6452,  6454,  6456,  6458,  6460,  6462,  6464,  6466,  6468,
 
1891
    6470,  6472,  6475,  6477,  6479,  6482,  6484,  6486,  6489,  6491,
 
1892
    6500,  6502,  6511,  6513,  6522,  6524,  6534,  6545,  6554,  6565,
 
1893
    6584,  6596,  6608,  6620,  6632,  6636,  6643,  6650,  6657,  6664,
 
1894
    6671,  6678,  6682,  6686,  6690,  6696,  6702,  6712,  6722,  6752,
 
1895
    6784,  6796,  6803,  6829,  6831,  6833,  6835,  6837,  6839,  6841,
 
1896
    6843,  6845,  6847,  6849,  6851,  6853,  6855,  6857,  6859,  6861,
 
1897
    6865,  6869,  6883,  6884,  6885,  6899,  6911,  6913,  6915,  6924,
 
1898
    6933,  6942,  6944,  6961,  6970,  6979,  6992,  7001,  7026,  7054,
 
1899
    7071,  7101,  7114,  7145,  7162,  7192,  7209,  7240,  7249,  7258,
 
1900
    7267,  7276,  7278,  7287,  7301,  7311,  7323,  7339,  7351,  7360,
 
1901
    7369,  7378,  7392,  7401,  7405,  7411,  7418,  7437,  7438,  7439,
 
1902
    7442,  7443,  7444,  7447,  7448,  7451,  7452,  7453,  7454,  7455,
 
1903
    7456,  7457,  7458,  7459,  7462,  7464,  7469,  7471,  7476,  7478,
 
1904
    7480,  7482,  7484,  7486,  7498,  7502,  7509,  7516,  7519,  7523,
 
1905
    7529,  7531,  7535,  7541,  7554,  7555,  7556,  7557,  7558,  7559,
 
1906
    7560,  7561,  7570,  7574,  7581,  7588,  7589,  7605,  7609,  7614,
 
1907
    7618,  7633,  7638,  7642,  7645,  7648,  7649,  7650,  7653,  7660,
 
1908
    7670,  7683,  7684,  7688,  7698,  7699,  7702,  7703,  7711,  7715,
 
1909
    7722,  7726,  7730,  7737,  7747,  7748,  7752,  7753,  7756,  7757,
 
1910
    7768,  7769,  7773,  7780,  7787,  7800,  7801,  7805,  7812,  7823,
 
1911
    7824,  7828,  7835,  7852,  7853,  7857,  7858,  7869,  7876,  7902,
 
1912
    7904,  7909,  7912,  7915,  7917,  7919,  7921,  7931,  7933,  7941,
 
1913
    7948,  7955,  7962,  7969,  7981,  7989,  8000,  8023,  8027,  8031,
 
1914
    8039,  8040,  8041,  8043,  8044,  8060,  8061,  8062,  8067,  8068,
 
1915
    8074,  8075,  8076,  8082,  8083,  8084,  8085,  8086,  8102,  8103,
 
1916
    8104,  8105,  8106,  8107,  8108,  8109,  8110,  8111,  8112,  8113,
 
1917
    8114,  8115,  8116,  8117,  8118,  8119,  8120,  8121,  8122,  8123,
 
1918
    8124,  8125,  8126,  8127,  8128,  8129,  8130,  8131,  8132,  8133,
 
1919
    8134,  8135,  8136,  8137,  8138,  8139,  8140,  8141,  8142,  8143,
 
1920
    8144,  8145,  8146,  8147,  8148,  8149,  8150,  8151,  8152,  8153,
 
1921
    8154,  8155,  8156,  8157,  8158,  8159,  8160,  8161,  8162,  8163,
 
1922
    8164,  8165,  8166,  8167,  8168,  8169,  8170,  8171,  8172,  8173,
 
1923
    8174,  8175,  8176,  8177,  8178,  8179,  8180,  8181,  8182,  8183,
 
1924
    8184,  8185,  8186,  8187,  8188,  8189,  8190,  8191,  8192,  8193,
 
1925
    8194,  8195,  8196,  8197,  8198,  8199,  8200,  8201,  8202,  8203,
 
1926
    8204,  8205,  8206,  8207,  8208,  8209,  8210,  8211,  8212,  8213,
 
1927
    8214,  8215,  8216,  8217,  8218,  8219,  8220,  8221,  8222,  8223,
 
1928
    8224,  8225,  8226,  8227,  8228,  8229,  8230,  8231,  8232,  8233,
 
1929
    8234,  8235,  8236,  8237,  8238,  8239,  8240,  8241,  8242,  8243,
 
1930
    8244,  8245,  8246,  8247,  8248,  8249,  8250,  8251,  8252,  8253,
 
1931
    8254,  8255,  8256,  8257,  8258,  8259,  8260,  8261,  8262,  8263,
 
1932
    8264,  8265,  8266,  8267,  8268,  8269,  8270,  8271,  8272,  8273,
 
1933
    8274,  8275,  8276,  8277,  8278,  8279,  8280,  8281,  8282,  8283,
 
1934
    8284,  8285,  8286,  8287,  8288,  8289,  8290,  8291,  8292,  8293,
 
1935
    8294,  8295,  8296,  8297,  8298,  8299,  8300,  8301,  8302,  8303,
 
1936
    8304,  8305,  8319,  8320,  8321,  8322,  8323,  8324,  8325,  8326,
 
1937
    8327,  8328,  8329,  8330,  8331,  8332,  8333,  8334,  8335,  8336,
 
1938
    8337,  8338,  8339,  8340,  8341,  8342,  8343,  8344,  8345,  8346,
 
1939
    8347,  8348,  8349,  8350,  8351,  8352,  8353,  8354,  8355,  8369,
 
1940
    8370,  8371,  8372,  8373,  8374,  8375,  8376,  8377,  8378,  8379,
 
1941
    8380,  8381,  8382,  8383,  8384,  8385,  8386,  8387,  8388,  8398,
 
1942
    8399,  8400,  8401,  8402,  8403,  8404,  8405,  8406,  8407,  8408,
 
1943
    8409,  8410,  8411,  8412,  8413,  8414,  8415,  8416,  8417,  8418,
 
1944
    8419,  8420,  8421,  8422,  8423,  8424,  8425,  8426,  8427,  8428,
 
1945
    8429,  8430,  8431,  8432,  8433,  8434,  8435,  8436,  8437,  8438,
 
1946
    8439,  8440,  8441,  8442,  8443,  8444,  8445,  8446,  8447,  8448,
 
1947
    8449,  8450,  8451,  8452,  8453,  8454,  8455,  8456,  8457,  8458,
 
1948
    8459,  8460,  8461,  8462,  8463,  8464,  8465,  8466,  8467,  8468,
 
1949
    8469,  8470,  8475,  8484
 
1950
};
 
1951
#endif
 
1952
 
 
1953
#if YYDEBUG || YYERROR_VERBOSE
 
1954
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
 
1955
   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 
1956
static const char *const yytname[] =
 
1957
{
 
1958
  "$end", "error", "$undefined", "ABORT_P", "ABSOLUTE_P", "ACCESS",
 
1959
  "ACTION", "ADD", "ADMIN", "AFTER", "AGGREGATE", "ALL", "ALSO", "ALTER",
 
1960
  "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC", "ASSERTION",
 
1961
  "ASSIGNMENT", "ASYMMETRIC", "AT", "AUTHORIZATION", "BACKWARD", "BEFORE",
 
1962
  "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT", "BOOLEAN_P", "BOTH",
 
1963
  "BY", "CACHE", "CALLED", "CASCADE", "CASE", "CAST", "CHAIN", "CHAR_P",
 
1964
  "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE",
 
1965
  "CLUSTER", "COALESCE", "COLLATE", "COLUMN", "COMMENT", "COMMIT",
 
1966
  "COMMITTED", "CONNECTION", "CONSTRAINT", "CONSTRAINTS", "CONVERSION_P",
 
1967
  "CONVERT", "COPY", "CREATE", "CREATEDB", "CREATEROLE", "CREATEUSER",
 
1968
  "CROSS", "CSV", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_TIME",
 
1969
  "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE", "DATABASE",
 
1970
  "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P", "DECLARE", "DEFAULT",
 
1971
  "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER", "DELETE_P", "DELIMITER",
 
1972
  "DELIMITERS", "DESC", "DISABLE_P", "DISTINCT", "DO", "DOMAIN_P",
 
1973
  "DOUBLE_P", "DROP", "EACH", "ELSE", "ENABLE_P", "ENCODING", "ENCRYPTED",
 
1974
  "END_P", "ESCAPE", "EXCEPT", "EXCLUDING", "EXCLUSIVE", "EXECUTE",
 
1975
  "EXISTS", "EXPLAIN", "EXTERNAL", "EXTRACT", "FALSE_P", "FETCH",
 
1976
  "FIRST_P", "FLOAT_P", "FOR", "FORCE", "FOREIGN", "FORWARD", "FREEZE",
 
1977
  "FROM", "FULL", "FUNCTION", "GLOBAL", "GRANT", "GRANTED", "GREATEST",
 
1978
  "GROUP_P", "HANDLER", "HAVING", "HEADER", "HOLD", "HOUR_P", "ILIKE",
 
1979
  "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P", "IN_P", "INCLUDING", "INCREMENT",
 
1980
  "INDEX", "INHERIT", "INHERITS", "INITIALLY", "INNER_P", "INOUT",
 
1981
  "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD", "INT_P", "INTEGER",
 
1982
  "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS", "ISNULL", "ISOLATION",
 
1983
  "JOIN", "KEY", "LANCOMPILER", "LANGUAGE", "LARGE_P", "LAST_P", "LEADING",
 
1984
  "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT", "LISTEN", "LOAD", "LOCAL",
 
1985
  "LOCALTIME", "LOCALTIMESTAMP", "LOCATION", "LOCK_P", "LOGIN_P", "MATCH",
 
1986
  "MAXVALUE", "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAMES",
 
1987
  "NATIONAL", "NATURAL", "NCHAR", "NEW", "NEXT", "NO", "NOCREATEDB",
 
1988
  "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT", "NOLOGIN_P", "NONE",
 
1989
  "NOSUPERUSER", "NOT", "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P",
 
1990
  "NULLIF", "NUMERIC", "OBJECT_P", "OF", "OFF", "OFFSET", "OIDS", "OLD",
 
1991
  "ON", "ONLY", "OPERATOR", "OPTION", "OR", "ORDER", "OUT_P", "OUTER_P",
 
1992
  "OVERLAPS", "OVERLAY", "OWNER", "PARTIAL", "PASSWORD", "PLACING",
 
1993
  "POSITION", "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY",
 
1994
  "PRIOR", "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "QUOTE", "READ",
 
1995
  "REAL", "RECHECK", "REFERENCES", "REINDEX", "RELATIVE_P", "RELEASE",
 
1996
  "RENAME", "REPEATABLE", "REPLACE", "RESET", "RESTART", "RESTRICT",
 
1997
  "RETURNS", "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROW", "ROWS", "RULE",
 
1998
  "SAVEPOINT", "SCHEMA", "SCROLL", "SECOND_P", "SECURITY", "SELECT",
 
1999
  "SEQUENCE", "SERIALIZABLE", "SESSION", "SESSION_USER", "SET", "SETOF",
 
2000
  "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SMALLINT", "SOME", "STABLE",
 
2001
  "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT", "STORAGE",
 
2002
  "STRICT_P", "SUBSTRING", "SUPERUSER_P", "SYMMETRIC", "SYSID", "SYSTEM_P",
 
2003
  "TABLE", "TABLESPACE", "TEMP", "TEMPLATE", "TEMPORARY", "THEN", "TIME",
 
2004
  "TIMESTAMP", "TO", "TOAST", "TRAILING", "TRANSACTION", "TREAT",
 
2005
  "TRIGGER", "TRIM", "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P",
 
2006
  "UNCOMMITTED", "UNENCRYPTED", "UNION", "UNIQUE", "UNKNOWN", "UNLISTEN",
 
2007
  "UNTIL", "UPDATE", "USER", "USING", "VACUUM", "VALID", "VALIDATOR",
 
2008
  "VALUES", "VARCHAR", "VARYING", "VERBOSE", "VIEW", "VOLATILE", "WHEN",
 
2009
  "WHERE", "WITH", "WITHOUT", "WORK", "WRITE", "YEAR_P", "ZONE",
 
2010
  "UNIONJOIN", "IDENT", "FCONST", "SCONST", "BCONST", "XCONST", "Op",
 
2011
  "ICONST", "PARAM", "'='", "'<'", "'>'", "POSTFIXOP", "'+'", "'-'", "'*'",
 
2012
  "'/'", "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "TYPECAST",
 
2013
  "'.'", "';'", "','", "':'", "$accept", "stmtblock", "stmtmulti", "stmt",
 
2014
  "CreateRoleStmt", "opt_with", "OptRoleList", "OptRoleElem",
 
2015
  "CreateUserStmt", "AlterRoleStmt", "AlterRoleSetStmt", "AlterUserStmt",
 
2016
  "AlterUserSetStmt", "DropRoleStmt", "DropUserStmt", "CreateGroupStmt",
 
2017
  "AlterGroupStmt", "add_drop", "DropGroupStmt", "CreateSchemaStmt",
 
2018
  "OptSchemaName", "OptSchemaEltList", "schema_stmt", "VariableSetStmt",
 
2019
  "set_rest", "var_name", "var_list_or_default", "var_list", "var_value",
 
2020
  "iso_level", "opt_boolean", "zone_value", "opt_encoding",
 
2021
  "ColId_or_Sconst", "VariableShowStmt", "VariableResetStmt",
 
2022
  "ConstraintsSetStmt", "constraints_set_list", "constraints_set_mode",
 
2023
  "CheckPointStmt", "AlterTableStmt", "alter_table_cmds",
 
2024
  "alter_table_cmd", "alter_rel_cmds", "alter_rel_cmd",
 
2025
  "alter_column_default", "opt_drop_behavior", "alter_using",
 
2026
  "ClosePortalStmt", "CopyStmt", "copy_from", "copy_file_name",
 
2027
  "copy_opt_list", "copy_opt_item", "opt_binary", "opt_oids",
 
2028
  "copy_delimiter", "opt_using", "CreateStmt", "OptTemp",
 
2029
  "OptTableElementList", "TableElementList", "TableElement", "columnDef",
 
2030
  "ColQualList", "ColConstraint", "ColConstraintElem", "ConstraintAttr",
 
2031
  "TableLikeClause", "like_including_defaults", "TableConstraint",
 
2032
  "ConstraintElem", "opt_column_list", "columnList", "columnElem",
 
2033
  "key_match", "key_actions", "key_update", "key_delete", "key_action",
 
2034
  "OptInherit", "OptWithOids", "OnCommitOption", "OptTableSpace",
 
2035
  "OptConsTableSpace", "CreateAsStmt", "WithOidsAs", "OptCreateAs",
 
2036
  "CreateAsList", "CreateAsElement", "CreateSeqStmt", "AlterSeqStmt",
 
2037
  "OptSeqList", "OptSeqElem", "opt_by", "NumericOnly", "FloatOnly",
 
2038
  "IntegerOnly", "CreatePLangStmt", "opt_trusted", "handler_name",
 
2039
  "opt_validator", "opt_lancompiler", "DropPLangStmt", "opt_procedural",
 
2040
  "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt",
 
2041
  "CreateTrigStmt", "TriggerActionTime", "TriggerEvents",
 
2042
  "TriggerOneEvent", "TriggerForSpec", "TriggerForOpt", "TriggerForType",
 
2043
  "TriggerFuncArgs", "TriggerFuncArg", "OptConstrFromTable",
 
2044
  "ConstraintAttributeSpec", "ConstraintDeferrabilitySpec",
 
2045
  "ConstraintTimeSpec", "DropTrigStmt", "CreateAssertStmt",
 
2046
  "DropAssertStmt", "DefineStmt", "definition", "def_list", "def_elem",
 
2047
  "def_arg", "CreateOpClassStmt", "opclass_item_list", "opclass_item",
 
2048
  "opt_default", "opt_recheck", "DropOpClassStmt", "DropStmt", "drop_type",
 
2049
  "any_name_list", "any_name", "attrs", "TruncateStmt", "CommentStmt",
 
2050
  "comment_type", "comment_text", "FetchStmt", "fetch_direction",
 
2051
  "from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list",
 
2052
  "privilege", "privilege_target", "grantee_list", "grantee",
 
2053
  "opt_grant_grant_option", "function_with_argtypes_list",
 
2054
  "function_with_argtypes", "GrantRoleStmt", "RevokeRoleStmt",
 
2055
  "opt_grant_admin_option", "opt_granted_by", "IndexStmt",
 
2056
  "index_opt_unique", "access_method_clause", "index_params", "index_elem",
 
2057
  "opt_class", "CreateFunctionStmt", "opt_or_replace", "func_args",
 
2058
  "func_args_list", "func_arg", "arg_class", "param_name", "func_return",
 
2059
  "func_type", "createfunc_opt_list", "common_func_opt_item",
 
2060
  "createfunc_opt_item", "func_as", "opt_definition", "AlterFunctionStmt",
 
2061
  "alterfunc_opt_list", "opt_restrict", "RemoveFuncStmt", "RemoveAggrStmt",
 
2062
  "aggr_argtype", "RemoveOperStmt", "oper_argtypes", "any_operator",
 
2063
  "CreateCastStmt", "cast_context", "DropCastStmt", "ReindexStmt",
 
2064
  "reindex_type", "opt_force", "RenameStmt", "opt_column",
 
2065
  "AlterObjectSchemaStmt", "AlterOwnerStmt", "RuleStmt", "@1",
 
2066
  "RuleActionList", "RuleActionMulti", "RuleActionStmt",
 
2067
  "RuleActionStmtOrEmpty", "event", "opt_instead", "DropRuleStmt",
 
2068
  "NotifyStmt", "ListenStmt", "UnlistenStmt", "TransactionStmt",
 
2069
  "opt_transaction", "transaction_mode_item", "transaction_mode_list",
 
2070
  "transaction_mode_list_or_empty", "ViewStmt", "LoadStmt", "CreatedbStmt",
 
2071
  "createdb_opt_list", "createdb_opt_item", "opt_equal",
 
2072
  "AlterDatabaseStmt", "AlterDatabaseSetStmt", "alterdb_opt_list",
 
2073
  "alterdb_opt_item", "DropdbStmt", "CreateDomainStmt", "AlterDomainStmt",
 
2074
  "opt_as", "CreateConversionStmt", "ClusterStmt", "VacuumStmt",
 
2075
  "AnalyzeStmt", "analyze_keyword", "opt_verbose", "opt_full",
 
2076
  "opt_freeze", "opt_name_list", "ExplainStmt", "ExplainableStmt",
 
2077
  "opt_analyze", "PrepareStmt", "prep_type_clause", "prep_type_list",
 
2078
  "PreparableStmt", "ExecuteStmt", "execute_param_clause",
 
2079
  "DeallocateStmt", "InsertStmt", "insert_rest", "insert_column_list",
 
2080
  "insert_column_item", "DeleteStmt", "using_clause", "LockStmt",
 
2081
  "opt_lock", "lock_type", "opt_nowait", "UpdateStmt", "DeclareCursorStmt",
 
2082
  "cursor_options", "opt_hold", "SelectStmt", "select_with_parens",
 
2083
  "select_no_parens", "select_clause", "simple_select", "into_clause",
 
2084
  "OptTempTableName", "opt_table", "opt_all", "opt_distinct",
 
2085
  "opt_sort_clause", "sort_clause", "sortby_list", "sortby",
 
2086
  "select_limit", "opt_select_limit", "select_limit_value",
 
2087
  "select_offset_value", "group_clause", "having_clause",
 
2088
  "for_locking_clause", "opt_for_locking_clause", "locked_rels_list",
 
2089
  "from_clause", "from_list", "table_ref", "joined_table", "alias_clause",
 
2090
  "join_type", "join_outer", "join_qual", "relation_expr", "func_table",
 
2091
  "where_clause", "TableFuncElementList", "TableFuncElement", "Typename",
 
2092
  "opt_array_bounds", "SimpleTypename", "ConstTypename", "GenericType",
 
2093
  "Numeric", "opt_float", "opt_numeric", "opt_decimal", "Bit", "ConstBit",
 
2094
  "BitWithLength", "BitWithoutLength", "Character", "ConstCharacter",
 
2095
  "CharacterWithLength", "CharacterWithoutLength", "character",
 
2096
  "opt_varying", "opt_charset", "ConstDatetime", "ConstInterval",
 
2097
  "opt_timezone", "opt_interval", "a_expr", "b_expr", "c_expr",
 
2098
  "func_expr", "row", "sub_type", "all_Op", "MathOp", "qual_Op",
 
2099
  "qual_all_Op", "subquery_Op", "expr_list", "extract_list", "type_list",
 
2100
  "array_expr_list", "array_expr", "extract_arg", "overlay_list",
 
2101
  "overlay_placing", "position_list", "substr_list", "substr_from",
 
2102
  "substr_for", "trim_list", "in_expr", "case_expr", "when_clause_list",
 
2103
  "when_clause", "case_default", "case_arg", "columnref", "indirection_el",
 
2104
  "indirection", "opt_indirection", "opt_asymmetric", "target_list",
 
2105
  "target_el", "update_target_list", "update_target_el",
 
2106
  "insert_target_list", "insert_target_el", "relation_name",
 
2107
  "qualified_name_list", "qualified_name", "name_list", "name",
 
2108
  "database_name", "access_method", "attr_name", "index_name", "file_name",
 
2109
  "func_name", "AexprConst", "Iconst", "Sconst", "RoleId", "SignedIconst",
 
2110
  "ColId", "type_name", "function_name", "ColLabel", "unreserved_keyword",
 
2111
  "col_name_keyword", "func_name_keyword", "reserved_keyword",
 
2112
  "SpecialRuleRelation", 0
 
2113
};
 
2114
#endif
 
2115
 
 
2116
# ifdef YYPRINT
 
2117
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
 
2118
   token YYLEX-NUM.  */
 
2119
static const unsigned short yytoknum[] =
 
2120
{
 
2121
       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 
2122
     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 
2123
     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
 
2124
     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
 
2125
     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
 
2126
     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
 
2127
     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
 
2128
     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
 
2129
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
 
2130
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
 
2131
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
 
2132
     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
 
2133
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
 
2134
     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
 
2135
     395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
 
2136
     405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
 
2137
     415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
 
2138
     425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
 
2139
     435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
 
2140
     445,   446,   447,   448,   449,   450,   451,   452,   453,   454,
 
2141
     455,   456,   457,   458,   459,   460,   461,   462,   463,   464,
 
2142
     465,   466,   467,   468,   469,   470,   471,   472,   473,   474,
 
2143
     475,   476,   477,   478,   479,   480,   481,   482,   483,   484,
 
2144
     485,   486,   487,   488,   489,   490,   491,   492,   493,   494,
 
2145
     495,   496,   497,   498,   499,   500,   501,   502,   503,   504,
 
2146
     505,   506,   507,   508,   509,   510,   511,   512,   513,   514,
 
2147
     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
 
2148
     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
 
2149
     535,   536,   537,   538,   539,   540,   541,   542,   543,   544,
 
2150
     545,   546,   547,   548,   549,   550,   551,   552,   553,   554,
 
2151
     555,   556,   557,   558,   559,   560,   561,   562,   563,   564,
 
2152
     565,   566,   567,   568,   569,   570,   571,   572,   573,   574,
 
2153
     575,   576,   577,   578,   579,   580,   581,   582,   583,   584,
 
2154
     585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
 
2155
     595,   596,   597,   598,   599,   600,    61,    60,    62,   601,
 
2156
      43,    45,    42,    47,    37,    94,   602,    91,    93,    40,
 
2157
      41,   603,    46,    59,    44,    58
 
2158
};
 
2159
# endif
 
2160
 
 
2161
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 
2162
static const unsigned short yyr1[] =
 
2163
{
 
2164
       0,   366,   367,   368,   368,   369,   369,   369,   369,   369,
 
2165
     369,   369,   369,   369,   369,   369,   369,   369,   369,   369,
 
2166
     369,   369,   369,   369,   369,   369,   369,   369,   369,   369,
 
2167
     369,   369,   369,   369,   369,   369,   369,   369,   369,   369,
 
2168
     369,   369,   369,   369,   369,   369,   369,   369,   369,   369,
 
2169
     369,   369,   369,   369,   369,   369,   369,   369,   369,   369,
 
2170
     369,   369,   369,   369,   369,   369,   369,   369,   369,   369,
 
2171
     369,   369,   369,   369,   369,   369,   369,   369,   369,   369,
 
2172
     369,   369,   369,   369,   369,   369,   369,   369,   369,   370,
 
2173
     371,   371,   372,   372,   373,   373,   373,   373,   373,   373,
 
2174
     373,   373,   373,   373,   373,   373,   373,   373,   373,   373,
 
2175
     373,   373,   373,   373,   373,   373,   373,   374,   375,   376,
 
2176
     376,   377,   378,   378,   379,   380,   381,   382,   383,   383,
 
2177
     384,   385,   385,   386,   386,   387,   387,   388,   388,   388,
 
2178
     388,   388,   388,   389,   389,   389,   390,   390,   390,   390,
 
2179
     390,   390,   390,   390,   390,   391,   391,   392,   392,   393,
 
2180
     393,   394,   394,   394,   395,   395,   395,   395,   396,   396,
 
2181
     396,   396,   397,   397,   397,   397,   397,   397,   397,   398,
 
2182
     398,   398,   399,   399,   400,   400,   400,   400,   400,   401,
 
2183
     401,   401,   401,   401,   402,   403,   403,   404,   404,   405,
 
2184
     406,   406,   407,   407,   408,   408,   408,   408,   408,   408,
 
2185
     408,   408,   408,   408,   408,   408,   408,   408,   408,   408,
 
2186
     408,   408,   408,   408,   408,   409,   409,   410,   410,   411,
 
2187
     411,   412,   412,   412,   413,   413,   414,   415,   416,   416,
 
2188
     417,   417,   417,   418,   418,   419,   419,   419,   419,   419,
 
2189
     419,   419,   419,   419,   419,   420,   420,   421,   421,   422,
 
2190
     422,   423,   423,   424,   424,   425,   425,   425,   425,   425,
 
2191
     425,   425,   426,   426,   427,   427,   428,   428,   428,   429,
 
2192
     430,   430,   431,   431,   431,   432,   432,   432,   432,   432,
 
2193
     432,   432,   433,   433,   433,   433,   434,   435,   435,   435,
 
2194
     436,   436,   437,   437,   437,   437,   438,   438,   439,   439,
 
2195
     440,   441,   441,   441,   441,   442,   442,   442,   442,   442,
 
2196
     443,   444,   445,   445,   445,   445,   445,   446,   446,   447,
 
2197
     447,   447,   448,   448,   448,   448,   449,   449,   450,   450,
 
2198
     451,   452,   452,   452,   453,   453,   454,   454,   455,   456,
 
2199
     457,   458,   458,   459,   459,   459,   459,   459,   459,   459,
 
2200
     459,   459,   459,   460,   460,   461,   461,   462,   462,   463,
 
2201
     464,   464,   465,   465,   466,   466,   467,   467,   468,   468,
 
2202
     469,   470,   470,   471,   472,   472,   473,   474,   474,   475,
 
2203
     475,   476,   476,   476,   477,   477,   477,   478,   478,   479,
 
2204
     479,   480,   480,   481,   481,   481,   482,   482,   482,   482,
 
2205
     482,   482,   483,   483,   484,   484,   484,   484,   484,   485,
 
2206
     485,   486,   486,   487,   488,   489,   490,   490,   490,   490,
 
2207
     491,   492,   492,   493,   493,   494,   494,   494,   494,   495,
 
2208
     496,   496,   497,   497,   497,   497,   498,   498,   499,   499,
 
2209
     500,   501,   502,   502,   502,   502,   502,   502,   502,   502,
 
2210
     503,   503,   504,   504,   505,   505,   506,   507,   507,   507,
 
2211
     507,   507,   507,   507,   507,   507,   507,   507,   507,   508,
 
2212
     508,   508,   508,   508,   508,   508,   508,   508,   508,   509,
 
2213
     509,   510,   510,   510,   510,   511,   511,   511,   511,   511,
 
2214
     511,   511,   511,   511,   511,   511,   511,   511,   511,   511,
 
2215
     512,   512,   513,   514,   514,   515,   515,   515,   516,   516,
 
2216
     517,   517,   517,   517,   518,   518,   518,   518,   518,   518,
 
2217
     518,   519,   519,   520,   520,   521,   521,   522,   522,   523,
 
2218
     524,   525,   525,   526,   526,   527,   527,   528,   529,   529,
 
2219
     530,   530,   531,   531,   532,   532,   532,   533,   533,   533,
 
2220
     534,   534,   535,   535,   536,   536,   537,   537,   538,   538,
 
2221
     538,   538,   538,   539,   539,   539,   539,   540,   541,   542,
 
2222
     542,   542,   543,   543,   544,   544,   544,   544,   544,   544,
 
2223
     544,   544,   544,   544,   545,   545,   545,   546,   546,   547,
 
2224
     547,   548,   549,   549,   550,   550,   551,   552,   553,   553,
 
2225
     554,   555,   555,   555,   555,   556,   556,   557,   557,   558,
 
2226
     558,   558,   559,   560,   560,   560,   561,   561,   562,   562,
 
2227
     563,   563,   563,   563,   563,   563,   563,   563,   563,   563,
 
2228
     563,   563,   563,   563,   563,   564,   564,   565,   565,   565,
 
2229
     565,   565,   565,   566,   566,   566,   566,   566,   566,   566,
 
2230
     566,   566,   566,   568,   567,   569,   569,   569,   570,   570,
 
2231
     571,   571,   571,   571,   571,   572,   572,   573,   573,   573,
 
2232
     573,   574,   574,   574,   575,   576,   577,   578,   578,   579,
 
2233
     579,   579,   579,   579,   579,   579,   579,   579,   579,   579,
 
2234
     579,   579,   579,   580,   580,   580,   581,   581,   581,   582,
 
2235
     582,   582,   583,   583,   584,   584,   585,   586,   587,   587,
 
2236
     588,   588,   588,   588,   588,   588,   588,   588,   588,   588,
 
2237
     588,   588,   589,   589,   590,   591,   591,   592,   592,   593,
 
2238
     594,   595,   596,   596,   596,   596,   596,   597,   597,   598,
 
2239
     599,   599,   599,   600,   600,   600,   601,   601,   602,   602,
 
2240
     603,   603,   604,   604,   605,   605,   606,   606,   607,   608,
 
2241
     608,   608,   608,   608,   608,   609,   609,   610,   611,   611,
 
2242
     612,   612,   613,   613,   613,   613,   614,   614,   615,   615,
 
2243
     616,   616,   617,   618,   618,   618,   618,   618,   619,   619,
 
2244
     620,   621,   622,   622,   623,   624,   624,   625,   625,   625,
 
2245
     625,   625,   625,   625,   625,   626,   626,   627,   628,   629,
 
2246
     629,   629,   629,   629,   630,   630,   630,   631,   631,   632,
 
2247
     632,   633,   633,   633,   633,   634,   634,   635,   635,   635,
 
2248
     635,   636,   636,   637,   637,   637,   637,   637,   637,   637,
 
2249
     637,   638,   638,   639,   639,   639,   640,   640,   640,   640,
 
2250
     641,   641,   642,   643,   643,   644,   644,   644,   644,   645,
 
2251
     645,   645,   645,   645,   646,   646,   647,   647,   648,   649,
 
2252
     649,   650,   650,   651,   651,   651,   652,   652,   653,   653,
 
2253
     654,   654,   655,   655,   656,   656,   656,   656,   656,   656,
 
2254
     656,   656,   656,   656,   656,   657,   657,   657,   657,   657,
 
2255
     657,   657,   658,   658,   658,   658,   659,   659,   659,   659,
 
2256
     660,   660,   661,   661,   662,   662,   662,   662,   663,   664,
 
2257
     664,   665,   665,   666,   667,   667,   667,   667,   668,   668,
 
2258
     668,   669,   669,   669,   669,   669,   669,   669,   669,   670,
 
2259
     670,   670,   670,   670,   671,   672,   672,   672,   672,   672,
 
2260
     672,   672,   672,   672,   672,   672,   673,   673,   674,   674,
 
2261
     674,   675,   675,   675,   676,   676,   677,   677,   678,   679,
 
2262
     680,   680,   681,   681,   682,   683,   684,   684,   684,   684,
 
2263
     684,   684,   685,   685,   686,   686,   687,   687,   687,   687,
 
2264
     688,   689,   689,   689,   690,   690,   690,   690,   690,   690,
 
2265
     690,   690,   690,   690,   690,   690,   690,   690,   691,   691,
 
2266
     691,   691,   691,   691,   691,   691,   691,   691,   691,   691,
 
2267
     691,   691,   691,   691,   691,   691,   691,   691,   691,   691,
 
2268
     691,   691,   691,   691,   691,   691,   691,   691,   691,   691,
 
2269
     691,   691,   691,   691,   691,   691,   691,   691,   691,   691,
 
2270
     691,   691,   691,   691,   691,   691,   691,   691,   691,   691,
 
2271
     691,   691,   691,   692,   692,   692,   692,   692,   692,   692,
 
2272
     692,   692,   692,   692,   692,   692,   692,   692,   692,   692,
 
2273
     692,   692,   693,   693,   693,   693,   693,   693,   693,   693,
 
2274
     693,   693,   693,   694,   694,   694,   694,   694,   694,   694,
 
2275
     694,   694,   694,   694,   694,   694,   694,   694,   694,   694,
 
2276
     694,   694,   694,   694,   694,   694,   694,   694,   694,   694,
 
2277
     694,   694,   694,   694,   694,   694,   694,   695,   695,   695,
 
2278
     696,   696,   696,   697,   697,   698,   698,   698,   698,   698,
 
2279
     698,   698,   698,   698,   699,   699,   700,   700,   701,   701,
 
2280
     701,   701,   701,   701,   702,   702,   703,   703,   704,   704,
 
2281
     705,   705,   706,   706,   707,   707,   707,   707,   707,   707,
 
2282
     707,   707,   708,   708,   709,   710,   710,   711,   711,   711,
 
2283
     711,   711,   711,   712,   713,   714,   714,   714,   715,   715,
 
2284
     716,   717,   717,   718,   719,   719,   720,   720,   721,   721,
 
2285
     722,   722,   722,   722,   723,   723,   724,   724,   725,   725,
 
2286
     726,   726,   727,   727,   727,   728,   728,   729,   729,   730,
 
2287
     730,   731,   731,   732,   732,   733,   733,   734,   734,   735,
 
2288
     735,   736,   737,   738,   739,   740,   741,   742,   742,   743,
 
2289
     743,   743,   743,   743,   743,   743,   743,   743,   743,   743,
 
2290
     744,   745,   746,   747,   747,   748,   748,   748,   749,   749,
 
2291
     750,   750,   750,   751,   751,   751,   751,   751,   752,   752,
 
2292
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2293
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2294
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2295
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2296
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2297
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2298
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2299
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2300
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2301
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2302
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2303
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2304
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2305
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2306
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2307
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2308
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2309
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2310
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2311
     752,   752,   752,   752,   752,   752,   752,   752,   752,   752,
 
2312
     752,   752,   753,   753,   753,   753,   753,   753,   753,   753,
 
2313
     753,   753,   753,   753,   753,   753,   753,   753,   753,   753,
 
2314
     753,   753,   753,   753,   753,   753,   753,   753,   753,   753,
 
2315
     753,   753,   753,   753,   753,   753,   753,   753,   753,   754,
 
2316
     754,   754,   754,   754,   754,   754,   754,   754,   754,   754,
 
2317
     754,   754,   754,   754,   754,   754,   754,   754,   754,   755,
 
2318
     755,   755,   755,   755,   755,   755,   755,   755,   755,   755,
 
2319
     755,   755,   755,   755,   755,   755,   755,   755,   755,   755,
 
2320
     755,   755,   755,   755,   755,   755,   755,   755,   755,   755,
 
2321
     755,   755,   755,   755,   755,   755,   755,   755,   755,   755,
 
2322
     755,   755,   755,   755,   755,   755,   755,   755,   755,   755,
 
2323
     755,   755,   755,   755,   755,   755,   755,   755,   755,   755,
 
2324
     755,   755,   755,   755,   755,   755,   755,   755,   755,   755,
 
2325
     755,   755,   756,   756
 
2326
};
 
2327
 
 
2328
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 
2329
static const unsigned char yyr2[] =
 
2330
{
 
2331
       0,     2,     1,     3,     1,     1,     1,     1,     1,     1,
 
2332
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2333
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2334
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2335
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2336
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2337
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2338
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2339
       1,     1,     1,     1,     1,     1,     1,     1,     0,     5,
 
2340
       1,     0,     2,     0,     2,     3,     3,     1,     1,     1,
 
2341
       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
 
2342
       3,     2,     2,     2,     2,     3,     3,     5,     5,     5,
 
2343
       4,     5,     5,     4,     3,     3,     5,     6,     1,     1,
 
2344
       3,     6,     4,     1,     0,     2,     0,     1,     1,     1,
 
2345
       1,     1,     1,     2,     3,     3,     3,     3,     3,     2,
 
2346
       5,     2,     2,     3,     3,     1,     3,     1,     1,     1,
 
2347
       3,     1,     1,     1,     2,     2,     2,     1,     1,     1,
 
2348
       1,     1,     1,     1,     3,     6,     1,     1,     1,     1,
 
2349
       1,     0,     1,     1,     2,     3,     4,     3,     2,     2,
 
2350
       3,     4,     3,     2,     4,     1,     1,     1,     1,     1,
 
2351
       4,     4,     1,     3,     3,     4,     6,     6,     6,     6,
 
2352
       4,     6,     2,     4,     3,     3,     3,     3,     3,     3,
 
2353
       3,     3,     3,     3,     1,     1,     3,     3,     3,     3,
 
2354
       2,     1,     1,     0,     2,     0,     2,    10,     1,     1,
 
2355
       1,     1,     1,     2,     0,     1,     1,     3,     3,     1,
 
2356
       1,     3,     3,     3,     4,     1,     0,     2,     0,     3,
 
2357
       0,     1,     0,    11,    12,     1,     1,     2,     2,     2,
 
2358
       2,     0,     1,     0,     1,     3,     1,     1,     1,     3,
 
2359
       2,     0,     3,     1,     1,     2,     1,     2,     3,     4,
 
2360
       2,     5,     1,     2,     2,     2,     3,     2,     2,     0,
 
2361
       3,     1,     4,     5,     6,    11,     3,     0,     1,     3,
 
2362
       1,     2,     2,     2,     0,     1,     1,     2,     2,     0,
 
2363
       3,     3,     2,     1,     1,     2,     2,     4,     0,     2,
 
2364
       2,     0,     3,     4,     4,     0,     2,     0,     4,     0,
 
2365
       7,     3,     3,     1,     3,     0,     1,     3,     1,     5,
 
2366
       4,     2,     0,     2,     1,     2,     3,     2,     2,     2,
 
2367
       2,     3,     3,     1,     0,     1,     1,     1,     2,     1,
 
2368
       5,     9,     1,     0,     1,     2,     2,     0,     2,     0,
 
2369
       5,     1,     0,     6,     2,     0,     3,    14,    19,     1,
 
2370
       1,     1,     3,     5,     1,     1,     1,     3,     0,     1,
 
2371
       0,     1,     1,     1,     3,     0,     1,     1,     1,     1,
 
2372
       1,     1,     2,     0,     1,     2,     1,     2,     0,     2,
 
2373
       1,     2,     2,     6,     8,     4,     4,     4,     4,     7,
 
2374
       3,     1,     3,     3,     1,     1,     1,     1,     1,    12,
 
2375
       1,     3,     4,     7,     4,     2,     1,     0,     1,     0,
 
2376
       7,     4,     1,     1,     1,     1,     1,     1,     1,     1,
 
2377
       1,     3,     1,     2,     2,     3,     3,     6,     9,     7,
 
2378
       9,     8,     8,     6,     8,     9,     7,    10,     7,     1,
 
2379
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2380
       1,     4,     2,     4,     2,     0,     1,     1,     1,     1,
 
2381
       2,     2,     1,     1,     1,     2,     2,     1,     2,     2,
 
2382
       1,     1,     7,     7,    10,     1,     1,     2,     1,     3,
 
2383
       1,     1,     1,     1,     1,     2,     2,     2,     2,     2,
 
2384
       2,     1,     3,     1,     2,     3,     0,     1,     3,     2,
 
2385
       6,     6,     9,     3,     0,     3,     0,    12,     1,     0,
 
2386
       2,     0,     1,     3,     2,     2,     4,     1,     2,     0,
 
2387
       9,     7,     2,     0,     3,     2,     1,     3,     3,     3,
 
2388
       2,     2,     1,     1,     1,     1,     2,     1,     1,     1,
 
2389
       4,     5,     1,     2,     4,     5,     1,     1,     1,     1,
 
2390
       3,     3,     2,     2,     2,     2,     1,     1,     3,     2,
 
2391
       0,     5,     1,     2,     1,     0,     5,     7,     1,     1,
 
2392
       7,     1,     3,     3,     3,     1,     3,    11,    10,     2,
 
2393
       2,     0,     8,     4,     4,     4,     1,     1,     1,     0,
 
2394
       9,     6,     6,     7,     6,     6,     9,     6,     6,     6,
 
2395
       8,     8,     6,     6,     6,     1,     0,     9,     6,     7,
 
2396
       6,     6,     6,     9,     6,     6,     6,     7,     9,     9,
 
2397
       6,     6,     6,     0,    14,     1,     1,     3,     3,     1,
 
2398
       1,     1,     1,     1,     1,     1,     0,     1,     1,     1,
 
2399
       1,     1,     1,     0,     6,     2,     2,     2,     2,     2,
 
2400
       3,     3,     2,     2,     2,     2,     3,     2,     5,     4,
 
2401
       3,     3,     3,     1,     1,     0,     3,     2,     2,     1,
 
2402
       3,     2,     1,     0,     7,     9,     2,     5,     2,     0,
 
2403
       3,     3,     3,     3,     3,     3,     3,     3,     3,     4,
 
2404
       3,     3,     1,     0,     5,     5,     4,     2,     0,     4,
 
2405
       3,     6,     4,     6,     6,     5,     7,     1,     0,    10,
 
2406
       4,     2,     1,     4,     5,     5,     2,     4,     1,     1,
 
2407
       1,     0,     1,     0,     1,     0,     3,     0,     4,     1,
 
2408
       1,     1,     1,     1,     1,     1,     0,     5,     3,     0,
 
2409
       1,     3,     1,     1,     1,     1,     3,     9,     3,     0,
 
2410
       2,     3,     4,     4,     2,     1,     7,     4,     1,     3,
 
2411
       2,     5,     2,     0,     5,     3,     0,     2,     2,     2,
 
2412
       3,     1,     3,     1,     2,     1,     0,     6,     7,     0,
 
2413
       3,     2,     2,     2,     0,     2,     2,     1,     1,     3,
 
2414
       3,     1,     2,     4,     4,     1,     1,     8,     4,     4,
 
2415
       4,     2,     0,     3,     3,     4,     4,     4,     4,     2,
 
2416
       1,     1,     0,     1,     1,     0,     1,     5,     1,     0,
 
2417
       1,     0,     3,     1,     3,     3,     2,     2,     1,     4,
 
2418
       4,     2,     2,     4,     1,     0,     1,     1,     1,     3,
 
2419
       0,     2,     0,     4,     4,     3,     1,     0,     2,     0,
 
2420
       2,     0,     1,     3,     1,     2,     1,     2,     5,     6,
 
2421
       5,     1,     2,     1,     4,     3,     4,     3,     5,     4,
 
2422
       5,     4,     5,     2,     4,     1,     2,     2,     2,     1,
 
2423
       1,     0,     4,     2,     1,     2,     2,     4,     1,     2,
 
2424
       0,     1,     3,     2,     2,     3,     5,     6,     3,     4,
 
2425
       0,     1,     1,     1,     1,     1,     2,     5,     2,     1,
 
2426
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2427
       2,     2,     2,     2,     2,     1,     3,     0,     5,     3,
 
2428
       0,     5,     3,     0,     1,     1,     1,     1,     5,     2,
 
2429
       1,     1,     1,     1,     5,     2,     2,     2,     1,     3,
 
2430
       3,     2,     1,     0,     3,     0,     5,     2,     5,     2,
 
2431
       1,     3,     3,     0,     1,     1,     1,     1,     1,     1,
 
2432
       3,     3,     3,     3,     3,     3,     3,     0,     1,     3,
 
2433
       5,     2,     2,     3,     3,     3,     3,     3,     3,     3,
 
2434
       3,     3,     3,     2,     2,     3,     3,     2,     3,     5,
 
2435
       4,     6,     3,     5,     4,     6,     4,     6,     5,     7,
 
2436
       2,     3,     2,     4,     3,     3,     4,     3,     4,     3,
 
2437
       4,     5,     6,     7,     6,     7,     6,     7,     3,     4,
 
2438
       4,     6,     2,     1,     3,     2,     2,     3,     3,     3,
 
2439
       3,     3,     3,     3,     3,     3,     3,     2,     2,     5,
 
2440
       6,     7,     1,     1,     2,     4,     1,     1,     1,     2,
 
2441
       2,     2,     1,     3,     4,     5,     5,     4,     1,     1,
 
2442
       4,     1,     4,     1,     4,     1,     4,     1,     1,     1,
 
2443
       1,     6,     4,     4,     4,     4,     6,     5,     5,     5,
 
2444
       4,     6,     4,     6,     4,     4,     4,     4,     3,     5,
 
2445
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2446
       1,     1,     1,     1,     1,     4,     1,     4,     1,     4,
 
2447
       1,     2,     1,     2,     1,     3,     3,     0,     3,     1,
 
2448
       1,     3,     3,     3,     1,     1,     1,     1,     1,     1,
 
2449
       1,     1,     4,     3,     2,     3,     0,     3,     3,     2,
 
2450
       2,     1,     0,     2,     2,     3,     2,     1,     1,     3,
 
2451
       5,     1,     2,     4,     2,     0,     1,     0,     1,     2,
 
2452
       2,     2,     3,     5,     1,     2,     0,     2,     1,     0,
 
2453
       1,     3,     3,     1,     1,     1,     3,     4,     4,     1,
 
2454
       3,     1,     1,     1,     1,     1,     3,     1,     2,     1,
 
2455
       3,     1,     1,     1,     1,     1,     1,     1,     2,     1,
 
2456
       1,     1,     1,     1,     2,     3,     6,     1,     1,     1,
 
2457
       1,     1,     1,     1,     2,     1,     1,     1,     1,     1,
 
2458
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2459
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2460
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2461
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2462
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2463
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2464
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2465
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2466
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2467
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2468
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2469
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2470
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2471
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2472
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2473
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2474
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2475
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2476
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2477
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2478
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2479
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2480
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2481
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2482
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2483
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2484
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2485
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2486
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2487
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2488
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2489
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2490
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2491
       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
 
2492
       1,     1,     1,     1
 
2493
};
 
2494
 
 
2495
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
 
2496
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
 
2497
   means the default is an error.  */
 
2498
static const unsigned short yydefact[] =
 
2499
{
 
2500
      88,   705,     0,   759,   758,   705,   199,     0,   752,     0,
 
2501
     705,   256,   271,     0,     0,     0,   382,   705,     0,   776,
 
2502
     495,     0,     0,     0,     0,   852,   495,     0,     0,     0,
 
2503
       0,     0,     0,   705,     0,   859,     0,     0,     0,   852,
 
2504
       0,     0,   763,     0,     0,     2,     4,    39,    40,    15,
 
2505
      14,    17,    16,    55,    56,    31,     9,    48,    34,    85,
 
2506
      86,    84,    23,    19,    13,    20,    24,    36,    25,    35,
 
2507
      12,    33,    50,    37,    53,    38,    54,    26,    46,    44,
 
2508
      32,    49,    52,    80,    22,    60,    61,    75,    62,    76,
 
2509
      63,    30,     8,    72,    71,    73,    27,    47,    70,    74,
 
2510
      10,    11,    77,    51,    68,    65,    81,    79,    87,    66,
 
2511
      41,     5,     6,    57,    29,     7,    28,    21,    83,    18,
 
2512
     761,    59,    69,    58,    42,    64,    45,    67,    82,    43,
 
2513
      78,   836,   827,   861,   835,   704,   703,   689,     0,     0,
 
2514
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2515
       0,     0,     0,     0,     0,   713,  1278,  1279,  1280,  1281,
 
2516
    1282,  1283,  1284,  1285,  1286,  1287,  1288,  1289,  1290,  1291,
 
2517
    1292,  1293,  1482,  1483,  1484,  1294,  1295,  1296,  1297,  1298,
 
2518
    1485,  1486,  1299,  1300,  1301,  1302,  1303,  1487,  1304,  1305,
 
2519
    1306,  1307,  1308,  1309,  1488,  1310,  1311,  1312,  1313,  1314,
 
2520
    1315,  1316,  1317,  1318,  1319,  1489,  1490,  1320,  1321,  1322,
 
2521
    1323,  1324,  1325,  1326,  1327,  1328,  1329,  1330,  1331,  1332,
 
2522
    1333,  1334,  1335,  1336,  1337,  1338,  1491,  1339,  1340,  1492,
 
2523
    1341,  1342,  1493,  1343,  1344,  1345,  1346,  1347,  1494,  1348,
 
2524
    1349,  1350,  1351,  1352,  1353,  1354,  1355,  1356,  1357,  1358,
 
2525
    1359,  1495,  1360,  1361,  1362,  1363,  1496,  1497,  1498,  1364,
 
2526
    1365,  1366,  1367,  1368,  1369,  1370,  1499,  1371,  1372,  1373,
 
2527
    1374,  1375,  1376,  1377,  1378,  1379,  1380,  1381,  1382,  1383,
 
2528
    1384,  1385,  1500,  1501,  1386,  1387,  1388,  1389,  1390,  1391,
 
2529
    1392,  1502,  1393,  1394,  1395,  1396,  1503,  1504,  1397,  1398,
 
2530
    1399,  1400,  1401,  1505,  1506,  1402,  1403,  1404,  1507,  1508,
 
2531
    1407,  1405,  1406,  1408,  1409,  1410,  1411,  1412,  1413,  1509,
 
2532
    1414,  1415,  1416,  1417,  1418,  1419,  1420,  1421,  1422,  1423,
 
2533
    1424,  1425,  1426,  1427,  1510,  1428,  1429,  1430,  1431,  1432,
 
2534
    1433,  1434,  1435,  1436,  1437,  1438,  1511,  1439,  1440,  1441,
 
2535
    1512,  1442,  1443,  1444,  1445,  1446,  1447,  1448,  1452,  1513,
 
2536
    1449,  1450,  1451,  1453,  1454,  1455,  1456,  1514,  1515,  1457,
 
2537
    1458,  1516,  1459,  1517,  1460,  1461,  1462,  1463,  1464,  1465,
 
2538
    1466,  1467,  1468,  1469,  1470,  1471,  1472,  1518,  1473,  1474,
 
2539
    1475,  1476,  1477,  1478,  1479,  1480,  1481,  1265,   236,  1241,
 
2540
    1266,  1267,  1613,  1612,  1237,   751,     0,  1234,  1233,   382,
 
2541
       0,   692,   255,     0,     0,     0,     0,     0,     0,   446,
 
2542
       0,     0,     0,     0,     0,     0,     0,   134,     0,   266,
 
2543
     265,     0,   372,     0,   548,     0,     0,   382,     0,     0,
 
2544
       0,  1405,   790,   819,     0,     0,     0,     0,   458,     0,
 
2545
     457,     0,     0,   455,     0,   381,     0,     0,   459,   453,
 
2546
     452,     0,     0,   456,     0,   454,     0,     0,   693,   789,
 
2547
     775,   761,  1279,   503,   507,   498,   504,   499,   496,   497,
 
2548
    1416,  1263,     0,     0,   492,   502,   516,   522,   521,   520,
 
2549
       0,   515,   518,   523,     0,   686,  1234,  1261,   716,  1246,
 
2550
     851,     0,     0,   494,   685,  1458,   779,     0,   626,     0,
 
2551
     627,     0,  1430,   697,   193,  1437,  1514,  1458,   189,   155,
 
2552
    1283,     0,     0,   515,     0,   694,   695,   858,   856,     0,
 
2553
    1308,  1374,  1385,  1426,  1437,  1514,  1458,   143,     0,   188,
 
2554
    1437,  1514,  1458,   184,   713,     0,   688,   687,     0,     0,
 
2555
     924,   762,   765,   836,     0,     1,    88,   760,   756,   855,
 
2556
     855,     0,   855,     0,   832,  1519,  1520,  1521,  1522,  1523,
 
2557
    1524,  1525,  1526,  1527,  1528,  1529,  1530,  1531,  1532,  1533,
 
2558
    1534,  1535,  1536,  1537,  1538,  1265,     0,     0,  1247,  1266,
 
2559
    1272,     0,   462,    91,  1242,     0,     0,     0,     0,  1262,
 
2560
       0,     0,  1301,  1143,  1153,  1151,  1152,  1145,  1146,  1147,
 
2561
    1148,  1149,  1150,     0,   615,  1144,     0,    91,     0,     0,
 
2562
     352,     0,     0,     0,     0,    91,     0,     0,   709,   712,
 
2563
     690,     0,     0,  1214,  1238,     0,     0,     0,   479,     0,
 
2564
     488,   480,   485,     0,   482,     0,     0,     0,   481,   483,
 
2565
     484,     0,   486,   487,     0,     0,   701,   307,     0,     0,
 
2566
       0,     0,    91,   748,   270,   269,    91,   268,   267,  1301,
 
2567
       0,   562,    91,     0,   136,   385,     0,     0,    91,     0,
 
2568
       0,     0,     0,     0,     0,     0,     0,   791,     0,   803,
 
2569
       0,   233,     0,   740,     0,   130,  1239,  1301,     0,   124,
 
2570
       0,   386,     0,   125,     0,   233,   460,     0,   786,     0,
 
2571
     500,   509,   508,   506,   505,   501,  1264,   510,   511,     0,
 
2572
     517,     0,     0,     0,     0,   806,  1235,     0,   700,     0,
 
2573
       0,   629,   629,   629,   696,   192,   190,     0,     0,     0,
 
2574
       0,     0,     0,   702,     0,     0,     0,  1482,  1483,  1484,
 
2575
    1207,     0,  1485,  1486,  1487,  1488,  1108,  1117,  1109,  1111,
 
2576
    1118,  1489,  1490,  1329,  1491,  1492,  1258,  1493,  1494,  1496,
 
2577
    1497,  1498,  1499,  1113,  1115,  1500,  1501,     0,  1259,  1503,
 
2578
    1504,  1400,  1506,  1507,  1509,  1510,  1119,  1512,  1513,  1514,
 
2579
    1515,  1516,  1517,  1257,     0,  1120,  1518,  1265,  1250,  1252,
 
2580
    1253,  1154,  1260,  1216,     0,     0,  1224,     0,  1098,     0,
 
2581
     949,   950,   951,   976,   977,   952,   982,   983,   995,   953,
 
2582
       0,  1223,  1018,  1097,  1102,     0,  1096,  1092,   842,  1220,
 
2583
    1208,     0,  1093,  1249,  1251,   954,  1266,   195,     0,   196,
 
2584
    1437,   144,   180,   151,   179,   183,   152,   182,     0,  1299,
 
2585
     145,     0,   149,     0,     0,   187,   185,     0,   691,   466,
 
2586
       0,   926,     0,   925,   764,   761,   830,   829,     3,   767,
 
2587
     853,   854,     0,     0,     0,     0,     0,     0,     0,   887,
 
2588
     875,  1248,     0,     0,     0,     0,   463,     0,     0,     0,
 
2589
      90,   738,   736,     0,     0,     0,     0,   742,     0,     0,
 
2590
     587,     0,     0,   588,   586,   589,   602,   605,     0,   539,
 
2591
     128,   129,     0,     0,     0,     0,     0,   201,   225,     0,
 
2592
       0,     0,     0,     0,     0,    93,   120,     0,     0,     0,
 
2593
     350,   646,   646,     0,     0,     0,   646,     0,   646,     0,
 
2594
     200,   202,   224,     0,     0,     0,     0,     0,     0,     0,
 
2595
      93,   123,     0,   707,   708,     0,   711,     0,  1539,  1540,
 
2596
    1541,  1542,  1543,  1544,  1545,  1546,  1547,  1548,  1549,  1550,
 
2597
    1551,  1552,  1553,  1554,  1555,  1556,  1557,  1558,  1559,  1560,
 
2598
    1561,  1562,  1563,  1564,  1565,  1566,  1567,  1568,  1569,  1570,
 
2599
    1571,  1572,  1573,  1574,  1575,  1576,  1577,  1578,  1579,  1580,
 
2600
    1581,  1582,  1583,  1584,  1585,  1586,  1587,  1588,  1589,  1590,
 
2601
    1591,  1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,  1600,
 
2602
    1601,  1602,  1603,  1604,  1605,  1606,  1607,  1608,  1609,  1610,
 
2603
    1611,  1273,  1211,  1210,  1244,  1274,  1275,  1276,  1277,  1215,
 
2604
     750,     0,     0,     0,     0,     0,  1301,     0,     0,     0,
 
2605
       0,     0,     0,   258,     0,   426,     0,   958,   993,   965,
 
2606
     993,   993,   973,   973,   967,   955,   956,  1000,     0,   993,
 
2607
     970,   959,     0,   957,  1003,  1003,   988,  1268,     0,   940,
 
2608
     941,   942,   943,   974,   975,   944,   980,   981,   945,  1017,
 
2609
     954,  1269,     0,   719,   747,     0,    93,   447,   427,     0,
 
2610
      93,     0,   132,     0,     0,   390,   389,     0,     0,   428,
 
2611
      93,   352,   345,   307,     0,     0,     0,  1245,     0,     0,
 
2612
     822,   824,   823,     0,   821,     0,   930,     0,   231,   232,
 
2613
     425,     0,   233,     0,     0,     0,     0,     0,   233,     0,
 
2614
     451,  1164,     0,   271,   768,   774,   770,   772,   771,   773,
 
2615
     769,   491,  1317,  1345,  1368,  1431,     0,  1453,     0,   524,
 
2616
     544,   519,     0,     0,     0,   792,   795,     0,     0,   816,
 
2617
     493,     0,   780,     0,   628,   625,   624,   623,   191,   156,
 
2618
       0,     0,     0,   546,  1430,   699,     0,     0,  1100,  1101,
 
2619
     992,   979,  1206,     0,     0,   987,   986,     0,     0,     0,
 
2620
       0,     0,   963,   962,   961,  1099,  1167,     0,   960,     0,
 
2621
       0,     0,     0,   993,   993,   991,  1037,     0,     0,   964,
 
2622
       0,     0,  1186,     0,  1192,     0,     0,     0,   999,     0,
 
2623
     997,     0,     0,  1072,  1094,  1021,  1022,  1098,  1164,     0,
 
2624
    1254,     0,     0,   985,     0,  1017,     0,     0,     0,  1219,
 
2625
    1162,     0,     0,  1050,  1160,     0,  1052,     0,     0,     0,
 
2626
    1154,  1153,  1151,  1152,  1145,  1146,  1147,  1148,  1149,  1150,
 
2627
       0,  1158,  1034,     0,     0,  1033,     0,     0,   891,  1209,
 
2628
       0,   197,   198,   194,     0,   154,   153,     0,   177,   178,
 
2629
     173,   367,     0,   148,   176,   365,   366,     0,   172,   369,
 
2630
     158,   169,   171,   170,   168,   146,   157,   159,   161,   162,
 
2631
     163,   147,   186,     0,   891,  1225,  1216,   753,     0,   757,
 
2632
     836,   840,   835,   839,   862,   863,   868,   838,     0,   889,
 
2633
     889,   877,   871,   876,   872,   878,   886,   834,   874,   833,
 
2634
     609,     0,   608,     0,     0,   464,     0,     0,     0,   735,
 
2635
     734,     0,     0,     0,     0,     0,   745,   301,     0,   230,
 
2636
       0,     0,     0,     0,     0,     0,     0,     0,   592,   593,
 
2637
     604,   603,   601,   573,   575,   574,     0,  1270,   565,     0,
 
2638
     566,     0,     0,   572,   579,   954,   577,  1271,     0,     0,
 
2639
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2640
       0,   611,   616,     0,   119,   118,     0,     0,     0,     0,
 
2641
     354,   364,     0,     0,     0,    91,    91,   351,   645,   212,
 
2642
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2643
       0,     0,     0,     0,     0,     0,     0,     0,     0,   122,
 
2644
     121,     0,     0,   167,   706,   710,  1212,     0,     0,     0,
 
2645
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2646
       0,   308,   310,     0,     0,     0,   431,   434,     0,   940,
 
2647
       0,     0,   934,  1006,  1007,  1008,  1005,  1009,  1004,     0,
 
2648
     946,   948,     0,   717,   281,   126,     0,     0,    89,   136,
 
2649
     271,     0,   135,   137,   139,   140,   141,   138,   142,   384,
 
2650
       0,   395,   394,   396,     0,   391,     0,   117,   349,     0,
 
2651
     273,     0,     0,   370,     0,     0,     0,   663,     0,     0,
 
2652
       0,   820,     0,   901,   802,   892,   903,   894,   896,   928,
 
2653
    1237,     0,   801,     0,     0,   606,  1240,     0,     0,   233,
 
2654
     233,   380,   461,   788,     0,     0,   527,   526,   537,     0,
 
2655
     528,   529,   525,   530,     0,     0,   546,   794,     0,     0,
 
2656
     798,  1216,     0,   813,     0,   811,     0,  1236,   815,   804,
 
2657
     778,     0,   777,   783,   785,   784,   782,     0,     0,   515,
 
2658
       0,     0,   233,   698,     0,     0,     0,  1170,     0,     0,
 
2659
    1205,  1201,     0,     0,  1164,     0,     0,     0,     0,  1177,
 
2660
    1178,  1179,  1176,  1180,  1175,  1174,  1181,     0,     0,     0,
 
2661
       0,     0,     0,     0,   990,   989,     0,     0,     0,     0,
 
2662
       0,     0,     0,     0,  1073,  1102,     0,     0,  1138,     0,
 
2663
    1164,  1191,     0,     0,     0,     0,     0,     0,     0,     0,
 
2664
       0,     0,  1164,  1197,     0,  1217,  1216,     0,     0,     0,
 
2665
       0,  1255,  1035,  1222,     0,  1218,     0,     0,  1042,     0,
 
2666
    1198,  1068,     0,  1057,     0,  1051,     0,  1055,  1059,  1038,
 
2667
    1219,  1163,     0,  1161,     0,     0,  1036,     0,  1031,  1029,
 
2668
    1030,  1023,  1024,  1025,  1026,  1027,  1028,  1019,  1032,  1142,
 
2669
    1140,  1141,     0,     0,     0,  1054,  1346,  1374,     0,   852,
 
2670
     852,   841,   850,  1221,     0,   930,     0,     0,     0,  1103,
 
2671
       0,     0,   368,     0,  1017,     0,   927,     0,   930,     0,
 
2672
     755,   754,     0,     0,   866,   867,     0,   885,     0,   816,
 
2673
     816,     0,     0,     0,     0,   654,   631,   465,   655,   632,
 
2674
       0,   737,     0,     0,     0,     0,     0,   233,   743,   656,
 
2675
     229,   744,   648,     0,   590,   591,     0,   576,   954,   564,
 
2676
       0,     0,   571,     0,   570,   948,     0,     0,     0,   634,
 
2677
     127,   227,   639,   228,   226,   635,     0,  1243,     0,     0,
 
2678
       0,   642,     0,     0,   101,   103,   105,     0,     0,    99,
 
2679
     107,   102,   104,   106,   100,   108,    98,     0,     0,    97,
 
2680
       0,     0,     0,     0,    92,   660,   637,   650,   353,   363,
 
2681
       0,   357,   358,   355,   359,   360,     0,     0,   204,     0,
 
2682
       0,   216,   215,   222,   223,   221,   233,   233,   219,   220,
 
2683
     218,   638,     0,   651,   217,   214,     0,   203,   662,   644,
 
2684
       0,   661,   652,   643,   165,   164,   166,     0,     0,     0,
 
2685
       0,     0,     0,     0,     0,   490,   473,   489,     0,     0,
 
2686
       0,   467,   306,     0,   257,   238,   239,     0,   430,     0,
 
2687
       0,     0,     0,   935,     0,     0,     0,     0,     0,     0,
 
2688
       0,     0,     0,     0,   733,   733,   733,   733,   733,   718,
 
2689
     741,     0,   307,   131,     0,     0,   383,     0,     0,     0,
 
2690
     931,     0,     0,     0,     0,   272,   274,   276,   277,   278,
 
2691
       0,   346,   348,   343,     0,     0,     0,     0,     0,     0,
 
2692
     551,     0,     0,     0,   600,   596,   582,     0,   825,   826,
 
2693
       0,   901,     0,   903,     0,   902,   915,     0,     0,   921,
 
2694
     919,     0,   921,     0,   921,     0,     0,   895,     0,   897,
 
2695
     915,  1238,   929,   233,     0,   233,   233,   684,   423,  1165,
 
2696
       0,     0,   539,     0,   536,   531,   533,     0,   540,  1232,
 
2697
    1231,     0,  1229,     0,     0,   800,   814,   807,   809,   808,
 
2698
       0,     0,   805,   781,     0,     0,   233,     0,   541,   857,
 
2699
    1172,  1173,     0,     0,     0,     0,  1202,     0,     0,  1134,
 
2700
       0,  1132,  1110,  1112,   972,     0,  1122,     0,   966,  1135,
 
2701
    1136,  1114,  1116,     0,   969,     0,  1155,     0,     0,  1123,
 
2702
    1075,  1076,     0,     0,     0,     0,     0,     0,     0,     0,
 
2703
       0,     0,     0,     0,     0,  1088,  1087,  1124,  1137,     0,
 
2704
       0,  1189,  1190,  1125,  1001,  1002,  1003,  1003,     0,     0,
 
2705
    1196,     0,     0,     0,  1130,  1095,  1165,   994,   995,     0,
 
2706
       0,     0,     0,     0,     0,     0,  1058,  1053,     0,  1056,
 
2707
    1060,     0,     0,     0,     0,  1044,  1069,  1040,     0,     0,
 
2708
    1046,     0,  1070,   852,   852,   852,   852,   849,     0,     0,
 
2709
     890,   880,     0,     0,  1107,  1104,   150,     0,   174,   160,
 
2710
    1226,   817,     0,   766,   864,     0,  1156,   865,   888,   884,
 
2711
     883,   869,   873,   870,     0,     0,     0,   733,     0,   300,
 
2712
       0,     0,     0,   746,   584,     0,   948,   567,   568,   569,
 
2713
       0,   657,   633,   649,     0,     0,   613,     0,   614,   612,
 
2714
     113,     0,     0,     0,     0,    94,   114,   112,     0,   111,
 
2715
       0,   356,   362,   361,   281,     0,     0,     0,   205,   213,
 
2716
     210,     0,     0,  1213,     0,     0,     0,   469,   476,     0,
 
2717
       0,     0,     0,   478,   309,   241,   242,   260,   240,   432,
 
2718
    1400,  1146,   437,   433,   435,   436,   438,   418,     0,     0,
 
2719
       0,   938,     0,  1011,  1012,  1013,  1014,  1015,  1016,  1010,
 
2720
    1017,     0,   733,   732,     0,     0,     0,     0,     0,     0,
 
2721
       0,     0,   292,     0,     0,   286,     0,     0,   339,   280,
 
2722
     283,   284,     0,     0,   271,     0,   398,   392,   429,     0,
 
2723
     933,   273,   299,   328,     0,   344,     0,     0,     0,     0,
 
2724
     340,   714,   377,   374,     0,     0,     0,   594,   597,   595,
 
2725
       0,   578,     0,   583,   561,     0,   818,   905,   913,     0,
 
2726
     893,     0,   920,   916,     0,   917,     0,     0,   918,   907,
 
2727
       0,     0,   913,     0,   607,   233,   450,   610,   345,   538,
 
2728
     534,     0,     0,   512,   543,   793,     0,     0,   797,   799,
 
2729
     812,   810,   546,     0,   513,   545,  1171,   978,     0,  1204,
 
2730
    1200,     0,     0,     0,  1166,     0,     0,  1184,  1183,  1185,
 
2731
       0,     0,     0,  1085,  1083,  1084,  1077,  1078,  1079,  1080,
 
2732
    1081,  1082,  1074,  1086,  1194,  1193,  1187,  1188,   998,   996,
 
2733
       0,  1127,  1128,  1129,  1195,  1139,   984,  1017,  1020,     0,
 
2734
       0,  1043,  1199,  1061,     0,  1169,     0,  1039,     0,     0,
 
2735
       0,     0,  1048,  1155,     0,     0,     0,     0,     0,     0,
 
2736
     844,   843,     0,   882,  1105,  1106,     0,  1228,  1227,     0,
 
2737
       0,     0,     0,     0,   302,     0,     0,   339,   585,     0,
 
2738
     580,     0,     0,     0,   109,    95,   116,   115,    96,   110,
 
2739
     279,     0,     0,     0,     0,   235,   640,   641,     0,     0,
 
2740
     471,     0,     0,   472,   474,   261,    91,     0,   420,     0,
 
2741
       0,   424,   414,   416,     0,     0,     0,   936,   939,   947,
 
2742
     413,     0,   728,   727,   726,   723,   722,   731,   730,   721,
 
2743
     720,   725,   724,     0,     0,   290,   294,   295,   293,   285,
 
2744
     339,   307,     0,   287,     0,     0,     0,   400,     0,     0,
 
2745
     932,     0,     0,     0,   296,     0,   331,   275,   347,   348,
 
2746
     789,   341,   342,     0,   379,   375,     0,   550,     0,     0,
 
2747
     600,   599,   679,   680,   677,   678,     0,   904,     0,     0,
 
2748
     906,     0,     0,   909,   911,     0,     0,     0,     0,     0,
 
2749
    1241,   622,     0,     0,     0,   532,  1230,     0,   233,     0,
 
2750
    1203,  1121,  1131,   971,  1133,   968,  1182,     0,     0,     0,
 
2751
    1126,  1256,  1066,  1064,     0,  1062,     0,     0,     0,  1045,
 
2752
    1041,     0,  1047,  1071,   848,   847,   846,   845,     0,     0,
 
2753
     837,  1017,     0,   653,   630,   647,   739,     0,   339,   303,
 
2754
     581,   659,   636,   658,   206,   207,   208,   209,     0,   211,
 
2755
     468,     0,   475,   470,   244,     0,   422,   421,   419,   415,
 
2756
     417,   937,     0,   621,     0,   418,   729,     0,     0,   282,
 
2757
     288,   314,     0,     0,   715,   273,   399,     0,     0,   393,
 
2758
     331,   298,   297,     0,     0,     0,   335,   787,   376,     0,
 
2759
     371,     0,     0,     0,   552,   559,   559,   598,   560,     0,
 
2760
       0,   914,   923,     0,   910,   908,   898,     0,   900,     0,
 
2761
     535,     0,   542,   233,  1089,     0,     0,  1063,  1168,  1067,
 
2762
    1065,  1049,   879,   881,   175,  1157,     0,   304,   234,   477,
 
2763
     237,   259,   621,     0,   618,   412,     0,   289,     0,   319,
 
2764
       0,     0,   401,   402,   397,     0,   335,     0,   329,   330,
 
2765
       0,   337,   378,   749,     0,   337,     0,     0,   557,   555,
 
2766
     554,   930,   912,     0,   899,   796,   514,     0,  1090,   307,
 
2767
     245,   249,   748,   748,     0,   250,   748,   246,   748,   243,
 
2768
     617,   620,   619,     0,   311,   312,   313,     0,   291,   315,
 
2769
     316,   338,     0,     0,   337,   327,     0,     0,   263,   559,
 
2770
     930,   553,   558,     0,   922,  1091,   314,     0,     0,     0,
 
2771
       0,     0,     0,     0,     0,     0,     0,   317,     0,   318,
 
2772
       0,     0,     0,   439,   440,   405,   264,     0,   332,     0,
 
2773
     336,   556,   547,   683,   319,   247,   252,     0,   253,   248,
 
2774
     251,     0,   324,     0,   323,     0,   321,   320,     0,     0,
 
2775
     445,     0,   407,   409,   410,   406,     0,   403,   408,   411,
 
2776
     333,   334,   682,   681,     0,   418,   254,     0,   322,   326,
 
2777
     325,     0,   449,   441,   387,     0,   665,   676,   664,   666,
 
2778
     674,   671,   673,   672,   670,   305,     0,   444,   448,     0,
 
2779
     442,   404,     0,   675,   669,   836,   827,     0,     0,   667,
 
2780
     676,   405,   449,   668,     0,   443,   388
 
2781
};
 
2782
 
 
2783
/* YYDEFGOTO[NTERM-NUM]. */
 
2784
static const short yydefgoto[] =
 
2785
{
 
2786
      -1,    44,    45,    46,    47,   891,  1405,  1804,    48,    49,
 
2787
      50,    51,    52,    53,    54,    55,    56,   913,    57,    58,
 
2788
     673,  1102,  1492,    59,   537,   538,  1305,  1306,  1307,  1444,
 
2789
    1308,  1293,   843,  1309,    60,    61,    62,   838,  1283,    63,
 
2790
      64,   940,   941,   917,   942,   897,  1130,  2549,    65,    66,
 
2791
    1867,  2177,  2630,  2679,   413,  1464,  2406,  2407,    67,  1099,
 
2792
    1904,  1905,  1906,  1907,  1890,  2219,  2220,  2221,  1908,  2454,
 
2793
    1909,  1357,  1053,  1460,  1461,  2639,  2688,  2689,  2690,  2746,
 
2794
    2456,  2586,  2651,  2698,  2443,    68,  1916,  1511,  1910,  1911,
 
2795
      69,    70,   930,  1417,  1810,  1310,  1295,  1296,    71,   437,
 
2796
    2242,  2464,  2590,    72,   466,    73,  1104,    74,    75,  1107,
 
2797
    1504,  1505,  2448,  2577,  2644,  2756,  2757,  2565,  2411,  2412,
 
2798
    2413,    76,    77,    78,    79,  1055,  1465,  1466,  2183,    80,
 
2799
    2723,  2724,   438,  2790,    81,    82,   467,   705,  2658,   886,
 
2800
      83,    84,   655,  1856,    85,   483,   719,    86,    87,   490,
 
2801
    1579,   492,  1158,  1964,  1965,  2283,  1547,   596,    88,    89,
 
2802
    1556,  1582,    90,   439,  2246,  2593,  2594,  2659,    91,   440,
 
2803
     909,  1379,  1380,  1381,  1382,  2250,  1383,  1924,  1925,  1926,
 
2804
    2247,  2254,    92,   907,  1372,    93,    94,  1341,    95,  1400,
 
2805
     613,    96,  2634,    97,    98,   511,  1175,    99,  1420,   100,
 
2806
     101,   102,  1927,  2778,  2792,  2793,  2794,  2476,  2764,   103,
 
2807
    2780,   105,   106,   107,   137,   628,   629,   630,   108,   109,
 
2808
     110,  1483,  1889,  2204,   111,   112,  1350,  1741,   113,   114,
 
2809
     115,  1095,   116,   117,   118,   119,   120,   558,   552,   865,
 
2810
    1319,   121,  1144,   471,   122,   730,  1171,  1572,   123,   708,
 
2811
     124,  2781,  1165,  1559,  1560,  2782,  1126,   127,  1169,  1566,
 
2812
    1569,  2783,   129,   688,  1520,  2784,   808,   132,   133,   134,
 
2813
    1278,  1701,   501,   872,   529,   563,   564,  1324,  1325,   879,
 
2814
    1339,  1332,  1334,  2363,  2530,   880,  1337,  1729,  1705,  1524,
 
2815
    1525,  1526,  1935,  1946,  2263,  2483,  1527,  1528,  1532,  1899,
 
2816
    1900,  1384,  1472,  1079,   809,   810,   811,  1208,  1219,  1202,
 
2817
    1082,   812,   813,   814,  1085,   815,   816,   817,   818,  1191,
 
2818
    1243,   819,   820,  1228,  1480,  1141,  1623,   822,   823,   824,
 
2819
    1692,  1271,   615,   825,  2107,  1273,  1643,  1607,  2346,  1586,
 
2820
    1189,  1608,  1620,  2018,  1627,  1632,  2041,  2042,  1644,  1661,
 
2821
     826,  1590,  1591,  1997,  1193,   827,   633,   634,  1234,  1657,
 
2822
     828,   829,  1314,  1315,  1971,  1972,   830,  1159,   550,  2479,
 
2823
     696,   593,  1776,  1033,   406,   498,   831,   832,   833,   834,
 
2824
    1966,  1299,   496,   835,   588,  1034,   400,   401,   590,  1038,
 
2825
     408
 
2826
};
 
2827
 
 
2828
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
 
2829
   STATE-NUM.  */
 
2830
#define YYPACT_NINF -2400
 
2831
static const int yypact[] =
 
2832
{
 
2833
    6310,   515,  2674, -2400, -2400,   515, -2400, 29904, 25200,    14,
 
2834
     597,   263, 34592, 30240, 29904,   492, 34550,   515, 29904,   268,
 
2835
   19110, 22848,   474, 25200,   340,   369, 19110, 25200, 30576,   529,
 
2836
   30912, 26208, 22512,   629, 29904,   251, 31248, 26544,   476,   369,
 
2837
   17740, 23520,   747,    27,   797,   531, -2400, -2400, -2400, -2400,
 
2838
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2839
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2840
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2841
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2842
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2843
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2844
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2845
     608, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2846
   -2400,   117, -2400,   516,   207, -2400, -2400, -2400, 21504, 29904,
 
2847
   29904, 29904, 21504, 29904, 23520, 29904, 15286, 29904, 29904, 23520,
 
2848
   23520, 29904, 29904, 29904, 29904,   106, -2400, -2400, -2400, -2400,
 
2849
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2850
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2851
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2852
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2853
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2854
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2855
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2856
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2857
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2858
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2859
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2860
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2861
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2862
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2863
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2864
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2865
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2866
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2867
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2868
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2869
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2870
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2871
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2872
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2873
   -2400, -2400, -2400, -2400,   338, -2400,   664,   765, -2400,  4443,
 
2874
     340, -2400, -2400, 25200, 21504, 29904,   643,   726, 29904, -2400,
 
2875
   29904,   631, 29904,   971, 15639,   844, 29904, 29904, 29904, -2400,
 
2876
   -2400, 29904, -2400, 29904, -2400, 29904,   543,   838,  1079,  1027,
 
2877
      90, 29904, -2400, -2400, 23520, 21504, 29904,   738, -2400, 29904,
 
2878
   -2400, 21504, 29904, -2400, 15992, -2400, 29904, 29904, -2400, -2400,
 
2879
   -2400, 29904, 29904, -2400, 29904, -2400,  1013, 29904, -2400,   843,
 
2880
   -2400,   608,   712, -2400,   101,   123,   103,   130,   133,   138,
 
2881
     712, -2400,   861,   946, -2400, -2400,   994, -2400, -2400, -2400,
 
2882
    1022,   349, -2400, -2400, 25200, -2400, -2400, -2400, -2400, -2400,
 
2883
   -2400, 25200,   946, -2400, -2400,   340,   895, 29904, -2400, 29904,
 
2884
   -2400, 25200, 29904, -2400, -2400,  1274,   966,  1147,   949, -2400,
 
2885
    1097,  1123,  1131,    38,   340,  1073, -2400, -2400,  1178,  9343,
 
2886
   26880, 31584,   173, 20830, 27216,  1026,   106, -2400,   417, -2400,
 
2887
    1378,  1072,  1253,   949,   106, 25200, -2400, -2400, 14278,  1146,
 
2888
    1093, -2400,  1302,  1064,  1094, -2400,  6310, -2400, 25200,   582,
 
2889
     582,  1404,   582,   508,   522, -2400, -2400, -2400, -2400, -2400,
 
2890
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2891
   -2400, -2400, -2400, -2400, -2400,  1116,   338,  1127, -2400,  1133,
 
2892
   -2400,   609,  1099,   676, -2400,   153,  1078,  1145,   154, -2400,
 
2893
     718,  1259, 29904, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2894
   -2400, -2400, -2400,  1151, -2400, -2400,  1149,   418,   776,  1242,
 
2895
     -15,  1624,   819,  1307,    47,   857,  1364,     2, -2400,   367,
 
2896
   -2400, 11842, 17404, -2400,   338, 25200, 21504,  1189, -2400, 29904,
 
2897
   -2400, -2400, -2400, 21504, -2400,  1351, 16345, 29904, -2400, -2400,
 
2898
   -2400, 29904, -2400, -2400,  1400, 29904, -2400,  1206,  1214,  1522,
 
2899
   33600, 29904,  1243,  1556, -2400, -2400,  1243, -2400, -2400, 29904,
 
2900
    1214,    64,  1243,  1551,  1552,  1354,   768,    83,  1243, 25200,
 
2901
   25200, 25200,  1417, 29904, 29904, 21504, 29904, -2400,   652,  1263,
 
2902
    1225,   125, 33600, -2400,  1145,  1221, -2400, 29904,  1228,  1221,
 
2903
    1380, -2400,  1381,  1221, 20830,    60, -2400, 11842, -2400,   545,
 
2904
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, 29904,
 
2905
   -2400, 23856, 29904, 24192,    37,    25, -2400, 29904, -2400, 33600,
 
2906
    1573,  1480,  1480,  1480, -2400, -2400, -2400,  1430, 29904,  1485,
 
2907
    1486, 23856, 29904, -2400, 31920,  1245,  1040,  1265,   500,  1266,
 
2908
   11842,  1250,   254,   254,  1251,  1252, -2400, -2400,  1254,  1255,
 
2909
   -2400,   -60,   -60,  1386,  1257,  1258, -2400,   431,  1267,  1278,
 
2910
    1282,   632,  1268,  1270,  1271,  1087,   254, 11842, -2400,  1273,
 
2911
     722,  1275,  1276,  1277,  1284,  1279, -2400,  1293,  1280,   781,
 
2912
     791,  1283,  1286, -2400,  1257, -2400,   171,   737, -2400, -2400,
 
2913
   -2400, -2400, -2400, -2400, 11842, 11842, -2400,  9700, -2400,   340,
 
2914
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,   113, -2400,
 
2915
     746,  5185, -2400, -2400,  1403, 11842, -2400, -2400,    24, -2400,
 
2916
     338,  1292, -2400, -2400, -2400, -2400,   778, -2400,   182,  1221,
 
2917
    1126, -2400, -2400, -2400, -2400, -2400, -2400, -2400, 20492,  1622,
 
2918
   -2400,   600,   367, 18412, 18412, -2400, -2400,  1476, -2400,  1291,
 
2919
   25200, -2400, 29904, -2400, -2400,   608, -2400, -2400, -2400,  1295,
 
2920
   -2400, -2400,    27,    27, 11842,    27,   471, 10057, 11842,  1541,
 
2921
     438,   338, 18076,  1358,  1359, 21168,  1298,  1363,  1365, 31584,
 
2922
   -2400, -2400, -2400,   107,   589,  1367,    87, -2400,  1454,  1405,
 
2923
   -2400,  1466,   550, -2400, -2400, -2400, -2400,   116,  8649,   753,
 
2924
   -2400, -2400,  1371,  1356,  1379,  1383,  1385,  1315, -2400,  1389,
 
2925
    1370, 32592, 16698,  1391, 31584, -2400, -2400,  1394,  1397,  1423,
 
2926
     829,    92,  1643,  1483,  1398,  1395,   786,  1407,   163,   637,
 
2927
    1338, -2400, -2400,  1408,  1409, 23520,  1413,  1452,  1416, 31584,
 
2928
   -2400, -2400,   669, -2400, -2400,   106, -2400,  2852, -2400, -2400,
 
2929
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2930
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2931
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2932
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2933
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2934
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2935
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2936
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2937
   -2400,  1357, 33600,  1503,  1145,   894, 29904,  1372,   433,  1509,
 
2938
   29904,  1577, 29904,  1406, 21168, -2400,  1382, -2400,  1420, -2400,
 
2939
    1420,  1420,  1402,  1402,  1410, -2400, -2400, -2400,  1087,  1420,
 
2940
    1424, -2400, 34272, -2400,   729,   802, -2400, -2400,  1710,  1720,
 
2941
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,   473,
 
2942
    1099, -2400,  1744, -2400, -2400, 33600, -2400,  1674, -2400,  1429,
 
2943
   -2400, 29904,   552, 29904,  1583, -2400, -2400,   479,  1425, -2400,
 
2944
   -2400, -2400,    -5,  1206, 20830,  1647,  1549, -2400,  1145,  1745,
 
2945
   -2400,   811, -2400,  1505, -2400, 13606,  1435, 18076, -2400, -2400,
 
2946
   -2400,  1749,   125, 29904,  1453, 32592, 25200, 25200,   125, 29904,
 
2947
   -2400, 19791,   832,   457, -2400, -2400, -2400, -2400, -2400, -2400,
 
2948
   -2400, -2400, 29904, 21504, 29904, 29904, 25200, 29904,  1477,  1291,
 
2949
     -61, -2400,  1462,  1428, 14614, -2400, -2400,   126, 25200,  1586,
 
2950
   -2400,   854, -2400,    62, -2400, -2400, -2400, -2400, -2400, -2400,
 
2951
   24192, 22848,  1671,   187, 29904, -2400, 11842, 10414, -2400, -2400,
 
2952
   -2400,  1433, 19791,  1467, 11842, -2400, -2400, 11842, 11842,  1456,
 
2953
    1456,  1456, -2400, -2400, -2400, -2400,   978,  1456, -2400, 11842,
 
2954
   11842,  1456,  1456,  1420,  1420, -2400,  2361, 11842,  1456, -2400,
 
2955
   16698, 11842, 12199,  7954, 11842,  1498,  1510,  1456, -2400,  1456,
 
2956
   -2400, 11842,  8986, -2400,   338,  1460,  1460,   808,  5663,  1449,
 
2957
   -2400,  1544,  1456, -2400,  1456,   553, 11842, 21168,  1525,   111,
 
2958
   11842,  1470,  1285, -2400, 11842,   528, -2400,  1471, 11842,  1532,
 
2959
     115, 11842, 11842, 11842, 11842, 11842, 11842, 11842, 11842, 11842,
 
2960
   33600, -2400, 12556,   148,   -35,    82, 24528,  9343,  1704,   863,
 
2961
    7596, -2400, -2400, -2400,  1622, -2400, -2400,  1530, -2400, -2400,
 
2962
   -2400, -2400,   622, -2400, -2400, -2400, -2400,   813, -2400, -2400,
 
2963
   -2400, -2400, -2400, -2400, -2400, -2400,  1469, -2400, -2400, -2400,
 
2964
   -2400, -2400, -2400,  1474,    54, -2400, -2400, 23184, 29904, -2400,
 
2965
   -2400,  1683, -2400, -2400,  1472, -2400,  4841,  1683,  1623,  1630,
 
2966
    1630, -2400,   -34, 19791,  1670, 19791, -2400, -2400, -2400, -2400,
 
2967
   -2400,  1484, -2400, 29904, 29904, -2400, 21168, 29904, 29904, -2400,
 
2968
    1787,  1487, 29904,  1687,  1689,  1491, -2400, -2400, 29904, -2400,
 
2969
    1648, 29904, 11842,  1649, 29904,  1650,   614,  1638, -2400, -2400,
 
2970
   -2400, -2400, -2400,  1636, -2400, -2400, 34272,    89, -2400,   879,
 
2971
   -2400, 24864, 32256, -2400, -2400,  1099, -2400,   224,  1559,  1561,
 
2972
    1603, 29904, 29904, 29904, 29904, 29904,    51, 29904, 29904,  1504,
 
2973
    1507,  1508, -2400, 29904, -2400,  3274, 29904, 29904, 29904,   894,
 
2974
   -2400,  1834,   894,   894,   800,  1243,  1243, -2400, -2400, -2400,
 
2975
   29904, 29904, 29904,  1582, 25536, 29904, 29904, 25872, 29904, 29904,
 
2976
   29904,   144,  1142, 29904, 29904,  1628, 29904, 29904, 29904, -2400,
 
2977
    3274,    96,  1637, -2400, -2400, -2400, -2400, 11842, 18076,  1858,
 
2978
   29904,  1722,  1725,  1563, 32592,    41, 29904, 29904,  1727,    41,
 
2979
     892, -2400, -2400,  1672,   199,   893, -2400,  1543, 11842,  1869,
 
2980
   33600,  1534,  1538,  1598,  1600,  1601, -2400, -2400,  1602,  1456,
 
2981
   -2400,  1298,   479,   615, -2400,  3274,  1788, 25200,  3274, -2400,
 
2982
    1390, 22848, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
2983
     340, -2400, -2400, -2400,  1688,  1686, 29904,  3274,   829, 25200,
 
2984
   21840,   215,  1888,  1780,   340, 25200,   850, -2400,  1778,  1779,
 
2985
    1796, -2400, 13270, 27552,  1548,   119, -2400, 27552, 27888, -2400,
 
2986
     338, 11842, -2400,  1553, 33600, -2400, -2400, 29904,  1554,   125,
 
2987
     125, -2400, -2400, -2400, 11842,  1627,  1221,  1555, -2400,  1145,
 
2988
    1221,  1221,  1291,  1221, 28224,  1907,  1795, -2400, 10771,   909,
 
2989
   -2400, -2400,    93, -2400,    97,    17,  1738, -2400, -2400, -2400,
 
2990
   -2400, 33600, -2400, -2400, -2400, -2400, -2400,   145,  1708,  1562,
 
2991
   28224,  1892,   125, -2400,   911,   275,   656, -2400,  1456, 11842,
 
2992
      74, -2400,  5714,   919,  5826,   940,  1568,  1569,   959, -2400,
 
2993
   -2400, -2400, -2400, -2400, -2400, -2400, -2400,  1572,  1803,  1574,
 
2994
     962,   965,  1579,  1584, -2400, -2400,  1864,   972,  1587,  6435,
 
2995
    1590, 12199, 12199,  1451, -2400, -2400, 12199,  1591, -2400,   974,
 
2996
    2880,  1578,  1593,  1597,  1610,  1594,  1596,  6499, 11128, 11842,
 
2997
   11128, 11128,  6674,  1578,  1599, -2400, -2400, 11842, 29904,  1604,
 
2998
    1607, -2400,  2361, -2400,  1626, -2400, 12199, 12199,  3140,  9700,
 
2999
   -2400, -2400,  1840, -2400,   596, -2400,  1609, -2400, -2400,  3639,
 
3000
     124, 11842,  1470, 11842,  1664, 16698,  4593, 11842,  3111,  3413,
 
3001
    3413,   208,   208,   168,   168,   168,    80, -2400,    82, -2400,
 
3002
   -2400, -2400,  1616,  1279, 11842, -2400,  1038,  1107, 25200,  1290,
 
3003
    1828, -2400, -2400, -2400, 13606,  1435, 11842, 11842,  1618, -2400,
 
3004
     983,   106, -2400,  1456,   553, 18761, -2400, 29904,  1435,   869,
 
3005
   -2400, -2400,   986, 11842, -2400, -2400,  1770, -2400, 29904,  1586,
 
3006
    1586, 11842, 11842, 10057,   824, -2400, -2400, -2400, -2400, -2400,
 
3007
    1799, -2400, 11842,   298,  1617,  1620, 29904,   125, -2400, -2400,
 
3008
   19791, -2400, -2400,  1836, -2400, -2400,  1782, -2400,  1099, -2400,
 
3009
   22176, 33936, -2400, 33936, -2400,   468, 29904, 29904, 29904, -2400,
 
3010
    1221, -2400, -2400, -2400, -2400, -2400,   821, -2400, 33600,  1759,
 
3011
   32928, -2400, 29904,  1814, -2400, -2400, -2400,  1762,   108, -2400,
 
3012
   -2400, -2400, -2400, -2400, -2400, -2400, -2400,   340, 29904, -2400,
 
3013
    1456,  1763, 29904,  1669, -2400, -2400, -2400, -2400, -2400, -2400,
 
3014
     894, -2400, -2400, -2400, -2400, -2400,   894,   894, -2400, 33600,
 
3015
      81, -2400, -2400, -2400, -2400, -2400,   125,   125, -2400, -2400,
 
3016
   -2400, -2400,  1691, -2400, -2400, -2400,   352, -2400, -2400, -2400,
 
3017
    1693, -2400, -2400, -2400, -2400, -2400, -2400,  6711,  1633, 33600,
 
3018
    1838,    41,    41, 29904,  1635, -2400, -2400, -2400,  1843,  1844,
 
3019
      41, -2400, -2400, 29904, -2400, -2400, -2400,   607, -2400, 21168,
 
3020
   17051,  6728,  1639,  1538,  1642,  1456,   626,   443,   390,  1741,
 
3021
    1821,  1651,  1793,  1839,  1666,  1666,  1666,  1666,  1666, -2400,
 
3022
    1215,  1701,  1206,   552,  1765,   646, -2400, 25200,   479,   991,
 
3023
   -2400, 33600,  1655, 25200,  1656,  1654, -2400, -2400, -2400, -2400,
 
3024
    1005, -2400, 33600,  1909,  1807,  1812,    27,    27, 29904,  1724,
 
3025
    1706,   340, 20830, 33264,   964, -2400, -2400,  1815, -2400, -2400,
 
3026
      27,  8312,   119,  1668, 29904, -2400,  1667, 13606,  1872,  1813,
 
3027
   -2400, 13606,  1813,    85,  1813, 13606,  1873, -2400, 14950, -2400,
 
3028
    1676,   863, 19791,   125,  1677,   125,   125, -2400, -2400, 19791,
 
3029
   25200, 21504, -2400, 29904,   391, -2400, -2400,  1819, -2400, -2400,
 
3030
   19791,  1034, -2400,   320, 29904,   338, -2400, -2400, -2400, -2400,
 
3031
    1933,  1935, -2400, -2400, 29904, 23856,    67, 29904, -2400, -2400,
 
3032
   -2400, -2400,  1685,  1690, 19382, 11842, -2400,  1945, 33600, -2400,
 
3033
   29904, -2400, -2400, -2400, -2400,  1456, -2400, 11842, -2400, -2400,
 
3034
   -2400, -2400, -2400, 11842, -2400,  1456, -2400, 11842,  1928, -2400,
 
3035
    1692,  1692, 12199,   487,  1275, 12199, 12199, 12199, 12199, 12199,
 
3036
   12199, 12199, 12199, 12199, 33600, 12913,  1028, -2400, -2400, 11842,
 
3037
   11842,  1934,  1928, -2400, -2400, -2400,   915,   915, 33600,  1695,
 
3038
    1578,  1696,  1703, 11842, -2400,   338, 19423, -2400,  2008,   340,
 
3039
   11842,   499,   602, 11842,  1049, 11842, -2400, -2400,  1711, -2400,
 
3040
   -2400, 33600, 11842, 12199, 12199,  4119, -2400,  4870, 11842,  1705,
 
3041
    5235,  9700, -2400,   369,   369,   369,   369, -2400, 25200, 25200,
 
3042
    1548,  1925,  1063,  1066, -2400, -2400,   367,  1709, -2400, -2400,
 
3043
   -2400, -2400, 11485, -2400, -2400,  1712, -2400, -2400,  1221, -2400,
 
3044
   -2400, -2400, -2400, -2400,  1773,  1776,  1816,  1666, 19450, -2400,
 
3045
   29904, 29904,  1069, -2400, -2400,  1932,   565, -2400, -2400, -2400,
 
3046
    1775, -2400, -2400, -2400,  1792,  1800, -2400,  1801, -2400, -2400,
 
3047
    1221,   712,   340, 29904, 29904, -2400,  1221, -2400,   340,  1221,
 
3048
     340, -2400, -2400, -2400, -2400,   462,   458, 33600, -2400, -2400,
 
3049
   -2400, 29904, 29904, -2400,  1930,  1755,    41, -2400, -2400,  1931,
 
3050
    1942,    41,    41, -2400, -2400, -2400, -2400,   218, -2400, -2400,
 
3051
    1712,   622, -2400, -2400, -2400, -2400, -2400,   162,  1456,   957,
 
3052
    1768, -2400,  1772, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
3053
     553, 25200,  1666, -2400,    69,   120, 28560, 28896, 29232,  1743,
 
3054
   29904, 12199, -2400,   189,   150, -2400,  1968, 25200,  1817, -2400,
 
3055
   -2400, -2400, 33600,  2113,   457, 25200,  2018,  1916, -2400, 29904,
 
3056
   -2400, 21840,   143,  1993, 21840, -2400, 29904, 29904,  2118,  2120,
 
3057
   -2400, -2400,  1822,  1099,   340, 29904,  1784, -2400,  1777, -2400,
 
3058
    1039, -2400,  1214, -2400, -2400,    68, -2400, 27552,  1790, 29904,
 
3059
     119, 13606, -2400, -2400,   931, -2400, 13606,  1987, -2400, -2400,
 
3060
   13606, 29904,  1791, 29904, -2400,   125, -2400, -2400,  1797, -2400,
 
3061
   -2400,  2023, 28224, -2400, -2400, -2400, 10771,  1798, -2400, -2400,
 
3062
   -2400, -2400,   187,  2031, -2400, -2400, -2400, -2400, 11842, 19791,
 
3063
   -2400,  1794,  1802,  1805, 19791, 19471,  1806, 19791,  1934,  1742,
 
3064
    2039,  1952,  1808,  1742,  1396,  1396,   932,   932,   822,   822,
 
3065
     822,  1692, -2400,  1028, 19791, 19791, -2400, -2400, -2400, -2400,
 
3066
    1810, -2400, -2400, -2400,  1578, -2400, -2400,   553,  1460, 12199,
 
3067
   12199,  3582, -2400,   248, 33600, -2400,  1092,  3582,   685,  1427,
 
3068
   11842, 11842,  6094,   250, 11842, 19498, 25200, 25200, 25200, 25200,
 
3069
   -2400, -2400,  2133,  2043, -2400, -2400,   340, -2400, 19791, 16698,
 
3070
   29904, 29904, 29904,   712, -2400,  1095,  1102,  1817, -2400,  1865,
 
3071
   -2400, 29904, 29904, 29904, -2400, -2400,  1221,  1221, -2400, -2400,
 
3072
    1215,  1972,  1973,   712, 29904,  1854, -2400, -2400,    41,  2024,
 
3073
   -2400,    41,    41, -2400, -2400, -2400,  1243,  2091, -2400,   538,
 
3074
    2100, -2400,  2041,   175,  1831,  2070,  2071, -2400, -2400, -2400,
 
3075
    2074,   712, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
3076
   -2400, -2400, -2400, 11842,   593,  1742, -2400, -2400, -2400, -2400,
 
3077
    1817,  1206,  2055, -2400,  1878,    27,    -1,  2102,  2093,   479,
 
3078
   -2400,  1842,  2121,  2124, -2400,  1841,  1053, -2400, -2400, -2400,
 
3079
     843, -2400, -2400, 29904,  2047,  1298,  2089, -2400, 13942,   340,
 
3080
     964, -2400, -2400, -2400, -2400, -2400,  1921, -2400, 29904,  1114,
 
3081
   -2400, 11842,  1863, -2400, -2400, 13606,   931,  1124, 29904,  1138,
 
3082
   33600, -2400, 29904,  2205,  2009, -2400, -2400, 10771,   125, 28224,
 
3083
   19791, -2400, -2400, -2400, -2400, -2400, -2400, 12199,  1868, 33600,
 
3084
   -2400, -2400,  1465,  1465,  1160, -2400, 33600, 12199, 12199,  3582,
 
3085
    3582, 11842,  3582, -2400, -2400, -2400, -2400, -2400, 11842, 11842,
 
3086
   -2400,   553,  1870, -2400, -2400, -2400, -2400,  1989,  1817, -2400,
 
3087
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, 11842, -2400,
 
3088
   -2400,    41, -2400, -2400, -2400,   340, -2400, -2400, -2400, -2400,
 
3089
   -2400, -2400, 21504,  2213, 25200,   162, -2400, 19539,  2028, -2400,
 
3090
   -2400,  2056,  1944, 29904, -2400, 21840, -2400,   406,  1997, -2400,
 
3091
    1053, -2400, -2400, 25200,  2025,  2026,  2027, -2400, -2400,   340,
 
3092
   -2400, 29904, 11842,  1167, -2400, 29568,  7254, -2400, -2400, 25200,
 
3093
    1169, -2400, 19791, 29904, -2400, -2400, -2400,  1177, -2400,  1909,
 
3094
   -2400,  1180, -2400,    67,  1164, 33600,  1183, -2400, -2400,  1465,
 
3095
    1465,  3582,  1578, 19791, -2400, -2400, 25200, -2400, 19791, -2400,
 
3096
    1132, -2400,  2213,   246, -2400, -2400,  2125, -2400,   466,  2029,
 
3097
   29904,  2220, -2400, -2400, -2400, 21504,  2027,  1191, -2400, -2400,
 
3098
    2188,  1953, -2400, -2400, 19765,  1953, 13942, 29904, -2400, -2400,
 
3099
   -2400,  1435, -2400,  1194, -2400, -2400, -2400,  1197, -2400,  1206,
 
3100
   -2400, -2400,  1556,  1556,   568, -2400,  1556, -2400,  1556, -2400,
 
3101
   -2400, -2400, -2400,  2150, -2400, -2400, -2400,   255, -2400,  2033,
 
3102
    2034, -2400,    77,  1893,  1953, -2400,   141, 29904, -2400, 29568,
 
3103
    1435, -2400, -2400,  2162, -2400, -2400,  2056,   340,   340,  2051,
 
3104
   29904,   340,   340,  2001,   510,   510,  2173, -2400,  1943, -2400,
 
3105
    1456,  1456, 33600,  1898, -2400, 20150, -2400,  2005, -2400,  2006,
 
3106
   -2400, -2400, -2400,   201,  2029, -2400, -2400, 29904,  1904, -2400,
 
3107
   -2400,  2163, -2400,  2265, -2400,   142, -2400, -2400, 21504, 16698,
 
3108
   -2400,    77, -2400, -2400, -2400, -2400,  1200, -2400, -2400, -2400,
 
3109
   -2400, -2400, -2400, -2400,    55,   162,  1904,  2038, -2400, -2400,
 
3110
   -2400,  1145,   -30, -2400, -2400, 20150, -2400,    57, -2400, -2400,
 
3111
   -2400, -2400, -2400, -2400, -2400, -2400, 21504, -2400, -2400, 32592,
 
3112
   -2400, -2400,   744, -2400, -2400,   826,  1094,  1917,  1918, -2400,
 
3113
      57, 20150,  2040, -2400,  1208, -2400, -2400
 
3114
};
 
3115
 
 
3116
/* YYPGOTO[NTERM-NUM].  */
 
3117
static const short yypgoto[] =
 
3118
{
 
3119
   -2400, -2400, -2400,  1726, -2400,  -579,  -324, -2400, -2400, -2400,
 
3120
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,
 
3121
   -2400,   794, -2400, -2400,  -421,   956,  1431, -2400,   569, -2400,
 
3122
   -2400, -2400, -2400,  -504, -2400,   378, -2400, -2400, -2400, -2400,
 
3123
   -2400, -2400,   855, -2400,  -530,   469,  -647, -2400, -2400, -2400,
 
3124
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400, -1017,    -7,
 
3125
      61, -2400,    52,   871,   139, -2400,  -139, -2400, -2400, -2400,
 
3126
    -118,   551, -1100, -1693,   434,  -410,  -436,  -391,  -388,  -412,
 
3127
   -2400,  -275,  -340, -2379, -1781, -2400, -2400,    32, -2400,    73,
 
3128
   -1016, -2400,  1201, -2400, -2400,  -792, -2400,   -80, -2400, -2400,
 
3129
    -146, -2400, -2400, -2400,   504, -2400, -2400, -2400, -1014, -2400,
 
3130
     837, -1807, -2400, -2400, -2400,  -481,  -452, -2400, -2399,   -91,
 
3131
     -88, -2400, -2400, -2400, -2400,  -663, -2400,   459, -2400, -2400,
 
3132
   -2400,  -425,  1230,  -470, -2400, -2400, -2400, -2400,  -129, -1050,
 
3133
   -2400, -2400, -2400, -1412, -2400,  2307,  1832, -1013, -2400,     9,
 
3134
      23,  1612,  -715, -1518,    56, -2400, -2400, -1137, -2400, -2400,
 
3135
   -2400, -1480, -1008, -2400, -2400, -2400,  -319, -2346, -2400, -2400,
 
3136
    -692, -2400,   590,   969,   976, -2400, -1273,   102,  -485, -1834,
 
3137
   -2400,  -112, -2400, -2400, -2400, -2400, -2400,  -991, -2400, -1126,
 
3138
    -420, -2400,  -273, -2400, -2400, -2400,   478, -2400,   222, -2400,
 
3139
   -2400, -2400, -2400, -2400, -2400,  -404,  -437, -2400, -2400, -2400,
 
3140
      84, -2400, -2400, -2400,  1054,  -609,  -505,  1820, -1007, -2400,
 
3141
   -2400, -2400, -2400, -1667, -2400, -2400, -2400, -2400, -2400, -2400,
 
3142
   -2400, -1507, -2400, -2400, -2400,  1050,  2347,  -371, -2400, -2400,
 
3143
   -2400, -2400, -2400, -2400, -2400, -2400, -2400, -2400,  1659,   -90,
 
3144
   -2400,    35, -2400, -2400,   395,    36, -2400, -2400, -2400, -2400,
 
3145
    -298,    39,  1662, -2400, -2400,     8,     0,   -40,   386,   502,
 
3146
   -2400, -2400,   -24,   716, -2400, -2400, -2400, -2400,   650,  1494,
 
3147
   -2400,   648,  -235, -2400, -2400,  1497, -2400,  1052,  1065,   679,
 
3148
   -1403,   862, -1446,   446,  -453,  -100,    31, -2400, -1653, -2104,
 
3149
     164,   -26,   922,  -957, -2400,  2245,  2889, -2400, -2400,  -646,
 
3150
   -2400, -2400,  2985,  3257, -2400, -2400,  3437,  3604, -2400,  -631,
 
3151
     334,  3647,  1811,  -765, -1196,  4360,  1148,   314, -1114,    79,
 
3152
   -2400,  -140, -2400,  4651,   524, -2400,  -665, -2400, -2220, -2400,
 
3153
   -1109, -2400, -2400, -2400, -2400, -2400, -1741, -1921,  -281,   723,
 
3154
   -2400, -2400,   806, -2400, -2400, -2400,  -602,  -532, -1191,   727,
 
3155
   -2400,  1121, -2400,   682,   -96,   118,   370,  -500,  1045,  -434,
 
3156
    1714,  -352, -1489,  -793,  1718, -2400,  -119, -2400, -1072,   206,
 
3157
    -126,     7,    43,  3886,  -840,  -987,  2166,  -595,  -572, -2400,
 
3158
   -2400
 
3159
};
 
3160
 
 
3161
/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
 
3162
   positive, shift that token.  If negative, reduce the rule which
 
3163
   number is the opposite.  If zero, do what YYDEFACT says.
 
3164
   If YYTABLE_NINF, syntax error.  */
 
3165
#define YYTABLE_NINF -1457
 
3166
static const short yytable[] =
 
3167
{
 
3168
     131,   725,  1132,   554,   670,   436,   614,  1098,   130,  1538,
 
3169
     591,  1529,   595,  1512,  1109,   545,  1548,   598,   695,   587,
 
3170
     956,   617,   699,   597,   624,  1230,  1182,   485,   625,   846,
 
3171
     703,   852,  1039,   485,   698,   125,   126,  1036,   925,   128,
 
3172
    1481,   522,  1142,   553,   491,   859,   950,  1861,  1955,  1651,
 
3173
     399,   407,  2091,  2122,   881,   523,   399,   399,  1140,  1294,
 
3174
    1037,   399,  1986,   399,   493,  2101,   662,  1467,  1386,   399,
 
3175
     918,   399,   549,   513,   519,   493,  1968,   526,  1587,   519,
 
3176
     519,  1947,  1949,  1093,   104,  1493,  1494,  1096,  1495,  1496,
 
3177
    2253,  2227,  1345,  1100,  1497,  1498,   839,   693,  1128,  1110,
 
3178
     709, -1291,  1108, -1344,  1248,  1128,  1248, -1268,  1762,  1764,
 
3179
     841,   906,   711,   850,   713,  1469,  1203,  -828,  1162,  1932,
 
3180
    2326,  1195,  1196, -1342,  2514,  1719, -1143,  1596,  1597,  1598,
 
3181
   -1370,  1562, -1143, -1386,  1655,  1609,  1533,  1351, -1408,  1612,
 
3182
    1613,    15,  1239,    15,  1418,  1215,  1617,  1655,    15,  1352,
 
3183
    2422,  1844,  1351,   898,  2472,  1635,  1241,  1636,   742,  1689,
 
3184
     893,   910,  1167,  1128,  1352,  1690,  2636,  2487,  1362,  2489,
 
3185
    1649,  1995,  1650,  -181,  1704,   600,  2155,  1731,  1276,  -828,
 
3186
     619,   621,   592,   594,   592,  1938,   599,   421,   399,   616,
 
3187
     599,   399,  1248,  1834,   399,   399,   592,   599,  1976,  2720,
 
3188
    1138,  2425,  1978,    22,  1509,    22,  1939,  -831,  1509,  1353,
 
3189
      22,  2788,   685,  2762,  -988,  1418,  2473,   953,  2205,  2206,
 
3190
    2207,  2208,  1693,  2769,  1353,   899,  1047,  2727,   409,  1940,
 
3191
     499,  1563,  1248,  2438,  1913,  2143,  2728,   423,  1252,  1253,
 
3192
    1939,  -828, -1269,   956,  2266,  2408,  1855,  2452,   894,   911,
 
3193
    2660,   900,  1942,  1452,   842,  -924,  2776,    27,  2408,    27,
 
3194
    1653, -1159,   527,  1940,   626,  1984,  1281, -1159,  2681,  -831,
 
3195
    1555,   946,  1248,  2436,  1980,   914,  2700,  2308,  1941,  1039,
 
3196
    -973,  2453,     3,     4,   614,  1256,  1942,  1363,  1160,  2616,
 
3197
    1036,   663,    35,  2721,   412,   658,   666,  -993,  1279,  1201,
 
3198
     672,  2327,    35,  1133,   677,  2409,  -262,  1943,  1183,   678,
 
3199
    1230,  1129,  1581,  1037,   614,  2726,  1282,   947,  1129,  1865,
 
3200
      35,   916,    35,  2437,  1694,  1354,   690,    35,  1854,  2789,
 
3201
    1732,  -831,   694,  2474,  1981,  1765,   954,   863,   706,  1944,
 
3202
    1354,  2714,   528,  1351,  1286,   627,  1445,  2770,  1364,   686,
 
3203
    2763,  2156,  1451,  2731,  1510,  2439,  1835,   429,  2575,   430,
 
3204
    1163,  2722,  2410,  2144,  2169,  1977,  2785,  1370,   901,  1979,
 
3205
    1975,  2729,    41,  1944,    41,  2410,  1129,   895,   404,    41,
 
3206
     902,   497,  2682,  1564,  2607,  2475,    43,  2506,  1277,  1168,
 
3207
    2157,  -271, -1143,   404,   903,  2667,  1164,   404,  1565,  1656,
 
3208
     912,   904,   723,  1589, -1457,  1355,  1845,  1881,  1529,   497,
 
3209
     404,   404,  2073,   802,  2777,  1353,    43,  1203,  1717,  1469,
 
3210
    1355,    43,  1371,   896,  1139,  1691,  1516,  2375,  2376,  1195,
 
3211
    1196,  2282,  1264,  1265,  1266,  1267,  1268,  1269,  1215,  2167,
 
3212
    2168,  1270,  1054,  1270,   905,   481, -1268,   481,  2173, -1268,
 
3213
    2373, -1268,   482, -1268,   482,  2055,  1945,  1848,   399,  1036,
 
3214
     497,   594,  1428,   592, -1291,   599, -1344,   616,  1349,   599,
 
3215
     674,   399,  1242,   920,   399,   689,   592,  -828,   599,   710,
 
3216
    -828,   712,  1037,   714,   399,  1535, -1342,   715,  2128,   399,
 
3217
    2129,  1541,   594, -1370,  1317,   399, -1386,   616,  1866,   399,
 
3218
     399, -1408,  1402,  1404,   399,   399,   614,   399,   586,   723,
 
3219
     592,  -988,   586,   497,   404,  2339,  1993,  1041,  2098,   404,
 
3220
     404,  1584,  1585,  1269,  1044,   626,  1051, -1159,  1439,  1270,
 
3221
    -988,  1354,  1593,  1595,  2260,  2421,  -181,  2405,  2264,  1362,
 
3222
    1097,  1386,  2269,  1359,  1610,  1611,  1914,  1915,  2742,  1473,
 
3223
     399,  1133,   399,  1737,  1115,   734,   131,  1670,  1629,  1631,
 
3224
    1266,  1267,  1268,  1269,   130,  1501,  1118,  -831,  1134,  1270,
 
3225
    -831,  2196,  2715,   399,   519,  2193,   847,   519,  2310,  1190,
 
3226
     421, -1269,  1614,  1615, -1269,    35, -1269,  2684, -1269,  1455,
 
3227
    1529,   125,   126,   870,  -993,   128,  2539,  2184,  1264,  1265,
 
3228
    1266,  1267,  1268,  1269,   507,  1474,   627,  1143,   877,  1270,
 
3229
    1513,  1355,   444,  -993,  1490,  1710,   656,  1808,  2340,   559,
 
3230
    1811,  1812,  2556,   876,  2194,    14,  1440,  1502,   494,  1473,
 
3231
     423,    15,  1645,  1990,  1078,  1368,  2253,  -860,  2209,  1544,
 
3232
     104,  2097,  2579,  2287,  1395,   592,  1358,  1456,   722,   878,
 
3233
    2251,    18,  1036,  2197,  1475,  2023,  1552,  1476,  2392,  2570,
 
3234
     500,  1671,  2391,  2642,   923,  1672,  1131,    31,   560,   508,
 
3235
    1359,  1883,  2557,   871,  2211,  1037,  1491,  1039,   877,    43,
 
3236
     497,  1288,   399,  1120,  1431,  1474,  2643,  2311,   924,   616,
 
3237
     399,  2685,  -860,    22,   399,   631,  2312,  1673,   592,  1754,
 
3238
     632,  2517,  2743,  1172,   399,  1369,  2195,  2066,  2126,   131,
 
3239
    1328,   728,   592,   723,  1884,  2024,   853,  1150,  1546,   878,
 
3240
    1550,  1551,  2281,  1553,   131,  1121,   592,  1117,  2147,   399,
 
3241
     743,   955,  1166,  -860,  1475,   561,  1477,  1476,   844,  2393,
 
3242
     592,  2686,  2394,  1329,  1146,  1147,  1188,   847,  1148,   890,
 
3243
     429,  1036,   430,  1067,  2400,  2282,  2467,  2627,  2023,  2403,
 
3244
    2404,  2744,   399,   854,  1205,   399,   493,   554,  2709,  1755,
 
3245
     399,  -967,  1485,  1289,  1037,  1356,  1488,  1105,   544,   738,
 
3246
    2745,  1179,   614,   404,   586,   399,  1507,  1185,  1330,  1360,
 
3247
    1207,  1885,  2223,  2568,  1233,  1106,  1503,   555,  2215,  1122,
 
3248
    1618,  2067,  1674,  2190,  2192,  2068,  2710,  1237,  1478,   679,
 
3249
      35,  2477,  2498,  1419,   404,   586,  1477,   135,  2024,   509,
 
3250
     510,   586,  2130,  1529,  2279,  1190,  2216,  1529,   562,   410,
 
3251
    1346,  1529,  1479,   883,   680,  2217,  1816,  1817,  1418,  1886,
 
3252
    -993,  2023,   801,  1425,  1123,  2025,  2026,  2027,   136,  2028,
 
3253
    2029,  2030,  2031,  2032,  2033,   884,  1342,  1962,  2480,  -993,
 
3254
    2034,   524,    41,  2484,   404,  1409,  1774,  2486,   551,  1921,
 
3255
     681,   404,  1320,  1320,  1813,  1320,  1493,  1494,   635,  1495,
 
3256
    1496,   404,  1467,  2296,  1722,  1497,  1498,   898,  1478,  2175,
 
3257
    2176,   847,  1957,  1958,   556,  1401,   847,   847,  1430,   135,
 
3258
     887,  2024,  2069,  1410,    43,  1316,  2218,  1887,  1441,  1888,
 
3259
    2070,  -836,   679,   654,  1124,   404,  1442,  1453,   404,  2379,
 
3260
    1386,  1458,   888,  -836,   664,    31,   665,  1346,   404,  1395,
 
3261
     136,   135,   519,  2303,   557,  1988,  1443,  2225,  1290,  1291,
 
3262
     497,   682,   914,  2306,   481,   801,   889,   497,  2025,  2026,
 
3263
    2027,  1292,  2028,  2029,  2030,  2031,  2032,  2033,  1770,   899,
 
3264
    -836,  1712,   136,  2034,   915,   616,   716,   519,  1411,  1431,
 
3265
     802,   892, -1000,   681,  2050,  1489,  1435,  1388,  -836, -1245,
 
3266
    1814,  2613,  1815,  1921,  2191,   900,  2550,   518,   916,  2552,
 
3267
    2553, -1000,   519,   543,  2064,   926,  1739,  1938,  1951,  1389,
 
3268
     927,   898,   660,   951,  2419,   404,   586,   890,  2703,  1412,
 
3269
    1542,  1413,  1922,   586,  1991,  1240,  1449,  2738,  2151,  -836,
 
3270
    1992,  1414,   928,  1390,  2152,  2153,  1245,  -836,   801,  1239,
 
3271
     661,  2025,  2026,  2027,  1549,  2028,  2029,  2030,  2031,  2032,
 
3272
    2033,  2092,  2093,   943,  2766,  2134,  2034,  2732,  2114,   404,
 
3273
     404,   404,  1939,   405,  1599,   586,   481,  1298,  1921,   155,
 
3274
    1225,  1226,  -970,   482,   411,   944,   717,  2135,   495,  1484,
 
3275
    2115,   468,   504,   899,   455,  1940,   898, -1268,  2182,  1415,
 
3276
     614,  1218,  2604,   718,  2641,   547,   497,   525,  1227,   592,
 
3277
    1941,   404,   671,   592,  2116,  1462, -1270,   692,  1942,   900,
 
3278
    2123,  1342,  1923,   948,  2799,  1244,    31,  2800,  1416,  1401,
 
3279
    1600,   404,  1225,  1226,   902,   898,  2414,  1645, -1269,  1943,
 
3280
    -836, -1003,  1225,  1226,   554,  1523,  1922,   949,   903,  1213,
 
3281
    1214, -1003,  2423,  1225,  1226,   904,  1545, -1271,   683,  2629,
 
3282
    1227,  2511,  1518,  1519,   599,  2481,   399,  1529,   899,   931,
 
3283
    1229,   848,  1529,   497,  1421,   932,  1529,   847,  1426,  1601,
 
3284
    1429,  1229,  1602,  2670,   553,  2707,  2708,   684,   866,  2711,
 
3285
    1284,  2712,  1713,   131,   900,   704,   399,  2033,   905,  2159,
 
3286
    2160,  1576,   592,  2034,  2023,  1944,   866,   899,   890,  -828,
 
3287
    1578,   933,  1543,  2465,   620,   399,  1544,   399,   399,  2671,
 
3288
     399,  1922,   707,  1577,   934,   716,  2096,  1561,  1573,  1574,
 
3289
    1176,  1177,  1575,   900,  1570,  2102,   901,  1735,  1571,  2672,
 
3290
     631,  1738, -1248,   493,   493,   632,   631,  1583,   902,   720,
 
3291
     404,   632,   935,  1291,  2673,  1749,   721,   936,   481,  1759,
 
3292
     937,  1603,   903,  1760,  1687,  1292,  1225,  1226,  2674,   904,
 
3293
    2482,  1660,  1862,  1868,   729,  2079,  1863,  1869,  1321,  1323,
 
3294
    2209,  1327,  2675,   616,   667,  1769,   668,  1771,  1945,  1973,
 
3295
    2293,  1989,  2210,  1974,  1036,  1544,   873,  1781,   875,  1999,
 
3296
    1805,  2328,  2329,  1544,  2030,  2031,  2032,  2033,  2415,  2416,
 
3297
   -1454,   901,   905,  2034,  2108,  2252,  2211,  1037,  2212,   735,
 
3298
    2001,  1625,   736,   902,  1544,   737,  2274,  1838,  2276,  2277,
 
3299
    1841,   738,  1843,  1604,   739,   404,  1605,   903,  1606,  2004,
 
3300
   -1457,  1850,  2009,  2005,   904,  2010,  1544,  1858,  1859,  1544,
 
3301
     901,  2083,  2014,  2084,  2038,  2624,  2015,  2676,  1544,  2294,
 
3302
     740,  2571,   902,  2095,  2677,   741,  2103,  1544,  2140,  1039,
 
3303
    1133,  2228, -1454,  1695,  2595,  2229,   903,  2049,  2213,  2051,
 
3304
    2052,   399,   851,   904,  2146,  2235,   914,   905,  2149,  2236,
 
3305
    2678,  1529,   744,  1645,  1322,  1322,  1662,  1322,  2028,  2029,
 
3306
    2030,  2031,  2032,  2033,  2584,  2585,   599,   399,  2334,  2034,
 
3307
     599,   594,   745, -1454,  2285,   399,  1663,  1187,  2286,    43,
 
3308
    2085,   399,  2086,   855,   599, -1454,   905,   399,   856,  2342,
 
3309
   -1454,   857,  1836,  1544, -1454,  2214,   862, -1454,  2249, -1454,
 
3310
    2215,   864,  1342,  2364,   866,  2632,  2365,  1544,  1401,  2377,
 
3311
    1544,  2109,  2110,  1863,   599,   399,   599,   399,   399,   874,
 
3312
     399,  1777, -1454,  2518,  1874,   863,   599,   417,  2216,   599,
 
3313
     399,   399,  2515,  1645,   867,  2537,  2516,  2217,   657,  1863,
 
3314
   -1454,   885,  2538,  1819,  1820,   399,  1863,   399,   399,  1827,
 
3315
     399,   399,   399,   399,  2601, -1270,   599,   399,  1133,   599,
 
3316
     399,   599,   554,  1895,  2606,  1664,   882,   956,  2229,  2265,
 
3317
    1665,  2268, -1271,   592,  1666,  1530,  2111,  2112,  2608,   592,
 
3318
     592, -1454,  2229,  1714,   908,   919,   404,   404,  1954, -1454,
 
3319
     921,   922,   929,   421,  2028,  2029,  2030,  2031,  2032,  2033,
 
3320
    2617,   945,  1931,   586,  2516,  2034,   404,  2655,  2218,  2662,
 
3321
    -549,  2656,   952,  1133,   493,   614,  1624,  2664,   404,   724,
 
3322
    2665,  2229,  2595,  2668,  2286,  1983,   726,  2516,  1042,  1901,
 
3323
    2292,  2695,  2023,  1912,  2704,  1168,   733,  2705,  1133,  1045,
 
3324
    2774,  2516,  1050,   423,  2775,  1052,  1936,  1056,  2806,  2706,
 
3325
    1936,  1950,  2775,  1054,   890,  1094,  1101,  -133,  1103,  1114,
 
3326
    1777,   500,  1125,  2023,  1127,  1133,  2106,  1135,  2022,  2471,
 
3327
     726,  1667,  1173,   861,  1136,  1137,  1174,   599,  1178,  1668,
 
3328
    1180,  1181, -1454,   869,  1186,  -958,  -965,  2023,  1894,  1194,
 
3329
    1197,  1198,  2024,  1199,  1200,  1204,    43,  1206,  -955,   554,
 
3330
   -1454,  2023,  -956,   599,  -959,  1274,  1209,  1210,  2491,  1211,
 
3331
    1212,   931,  1217,  -957,  1220,  1221,  1222,   932,  1223,  1224,
 
3332
    2131,  1287,  1231,  2024,  1312,  1232,   404, -1454,  2748,  2749,
 
3333
   -1454,  1280, -1454, -1454,  1318,  1168,   876,  1343,  1344,  1237,
 
3334
    1346,  1857,  1347,  2798,  1348,  1857,  1361,  2024,  1365,  1366,
 
3335
    1391,  1367,  1660,   933,  1392,  2088,  2089,  1395,  1393,  1396,
 
3336
    1040,  2024,  1394,   429,  1408,   430,   934,   404,  1397,  1398,
 
3337
    1403,  2057,  2082,  1406,   431,  1418,  1407,  1422,  1423,  1424,
 
3338
    1625,  1625,  1432,   434,  1523,  1625,  1896,  1433,  1434,  2386,
 
3339
    2387,  1427,  1436,  1437,   935,  1438,  1448,  1450,   616,   936,
 
3340
    1919,   398,   937,  1457,  1111,  1112,  1113,   442,   443,  1470,
 
3341
    2106,  1454,   469,  1459,   484,  1625,  1625,  1463,  1471,   801,
 
3342
     503,  1468,   506, -1457, -1457,  1190,  2028,  2029,  2030,  2031,
 
3343
    2032,  2033,  2136,  1482,  2139,   419,  1487,  2034,   847,  1500,
 
3344
    1316,  1201,  1514,  1515,  1517,  1531,   726,  1521,  1534,  1207,
 
3345
     801,   399,  1537,  2025,  2026,  2027,  1554,  2028,  2029,  2030,
 
3346
    2031,  2032,  2033,  1218,  1506,  1557,   726,  1558,  2034,  1462,
 
3347
    1568,  1580,  1588,  2154,   801,  1633,  1589,  2025,  2026,  2027,
 
3348
     802,  2028,  2029,  2030,  2031,  2032,  2033,  1634,   801,   599,
 
3349
     399,   399,  2034,  1647,  1648,  2028,  2029,  2030,  2031,  2032,
 
3350
    2033,  1270,  1654,  2165,  1704,   399,  2034,  2554, -1456,  1659,
 
3351
    1675,  1677,  1711,  1715,  1716,   560,  1723,  2280,  1727,  1728,
 
3352
    1733,   399,  1549,  1740,  1734,   399,  1742,  1744,   914,  1745,
 
3353
    1746,  2612,  1756,  1748,  1751,  1753,  1757,   404,  1766,   601,
 
3354
    1767,  2295,   618,  2622,  1768,   622,   623,  1779,  1778,  1809,
 
3355
     938,  2302,  1780,  1822,  1840,  2230,  1846,  1849,  1851,   404,
 
3356
    1246,  1852,  1853,  1860,  1864,   404,  2154,  1872,  1248,  1870,
 
3357
   -1456,  1875,  1530,  1249,   939,  1876,  1777,  1877,  2023,  1878,
 
3358
    1879,  1880,  1897,  1891,  1898,  1313,  1462,  1917,  1918,  1928,
 
3359
    1929,  1930,  1937,  1953,  1956,  1967,   131,   131,  1960,  1961,
 
3360
    1581,  1982,  1985,  2007,  2240,  2241,   723,  1987,  2002,  2003,
 
3361
     131, -1456,  2006,  2044,  2008,  1624,  1624,  1523,  2256,  2011,
 
3362
    1624,  1523,  1544, -1456,  2012,  1523,  2045,  2016, -1456,  2532,
 
3363
    2019,  2037, -1456,  2043,  2046, -1456,  2047, -1456,  2024,  2054,
 
3364
    2065,   399,  2060,  2078,  2058,   847,  2666,  2059,  2071,  2117,
 
3365
    1624,  1624,  2301,   131,  1936,  2081,  2120,  2258,  2094,  2121,
 
3366
   -1456,  2288,  2124,  2137,  2141,  2150,  2105,  2125,  2142,  2148,
 
3367
    2161,  2272,  2162,  2164,  2166,  2170,  2188,  1250, -1456,  2171,
 
3368
    2172,  1251,  2189,  2145,  2198,  2199,   599,  2201,  2322,  2202,
 
3369
    2222,  2200,  2203,  2224,  2231,  2237,  2233,  1561,  2234,  2238,
 
3370
    1252,  1253,  2330,  2244,  2239,  2245,  2259,   399,  2257,  2255,
 
3371
     599,  2261,  2270,  1254,  2262,  2273,  2284,  2275,  2290, -1456,
 
3372
    2291,   554,  1187,   592,  2600,  2345,  2300, -1456,  2040,  2039,
 
3373
    2297,  1241,  2362,  2034,  2600,  2331,  2332,  1857,  1857,  2356,
 
3374
    2357,  2358,  2359,  2333,  1255,  2353,  1857,  1256,   404,  2366,
 
3375
    2344,  2369,  2370,  2178,  1530,  2371,  2186,  2372,  2378,  2787,
 
3376
    1257,  1237,  1258,  2647,  2380,   801,  2398,  2401,  2025,  2026,
 
3377
    2027,  2381,  2028,  2029,  2030,  2031,  2032,  2033,  2402,  2382,
 
3378
    2383,  1625,  2433,  2034,  1625,  1625,  1625,  1625,  1625,  1625,
 
3379
    1625,  1625,  1625,   603,  1625,  2399,   604,   605,   606,   500,
 
3380
     607,   608,   609,   610,   611,   612,  2417,  2248,  2440,   659,
 
3381
    2418,  2395,  2445,  2447,  2449,  2455,  2442,  2461,  1259,  2462,
 
3382
   -1456,  2469,   675,  2468,  2463,   676,  2485,  2494,  2384,  2478,
 
3383
    2488,  2499,  1625,  1625,  2501,   687,  2492,  2497, -1456,  2507,
 
3384
     691,  2508,  2502,  1462,  1462,  2503,  2505,  2509,  2528,  2663,
 
3385
    2510,   700,  2529,  2548,  2540,   701,   702,  2544,  2545,  2555,
 
3386
    2551,  1539,  1540,  2558,  2409, -1456,   399,   399, -1456,  2561,
 
3387
   -1456, -1456,  2562,  2563,  2564,  2572,  2444,  2573,  2576,  2578,
 
3388
    2583,   726,  2580,  2581,   399,   399,  2582,  1260,  2589,  2591,
 
3389
    1261,  1262,  1263,  1567,  1264,  1265,  1266,  1267,  1268,  1269,
 
3390
    2599,   731,  2603,   732,  2609,  1270,  2610,  2615,  2013,   614,
 
3391
    2625,  2626,  2633,  2439,  2645,  2638,  2640,  2648,  2649,  2692,
 
3392
    2683,  2650,  2696,  2687,  2533,  2697,  2713,  2716,  2718,   399,
 
3393
     399,   399,  2725,   399,  2733,  2541,  2737,  2543,  2741,  2714,
 
3394
    2715,  1523,  2751,  2760,  2761,  2337,  1523,   404,  1863,  2767,
 
3395
    1523,  2768,  1901,   404,  1819,  2786,  2801,  1819,  2802,  2459,
 
3396
     399,  2788,   868,  1893,  2099,  1311,  2457,  1837,  1777,  2158,
 
3397
    1625,  1818,  2451,  2390,  2119,  2569,  2734,  2174,  2765,  2719,
 
3398
    1936,  2717,   399,  2747,   589,  2646,  2694,  1530,   589,  2458,
 
3399
    2493,  1530,  1508,  2546,  1901,  1530,  2490,  2588,  2345,  1882,
 
3400
    2804,  1702,  2560,  2791,  2559,   599,  2773,  1486,  2179,  2772,
 
3401
     404,   586,  2805,   502,   727,  1161,  1624,  2701,  2495,  1624,
 
3402
    1624,  1624,  1624,  1624,  1624,  1624,  1624,  1624,  2385,  1624,
 
3403
    2127,  1763,  2470,  1043,  2388,   404,  2389,  1761,  2598,  2680,
 
3404
    2779,  1048,  1721,  2803,   858,  1049,   470,  1720,  1145,  2289,
 
3405
    2587,  1149,  1857,  2104,  1338,  1092,  1336,  1857,  1857,  1718,
 
3406
    2536,  2113,  1730,  2090,  1933,  1248,  2605,  1624,  1624,  2267,
 
3407
    1249,  1873,  2336,  2450,  2185,  2076,  1996,  2074,  1703,  2100,
 
3408
    1119,  2611,  1116,     0,  2496,     0,     0,     0,     0,     0,
 
3409
    2424,  2426,   616,   599,   399,   399,     0,     0,  1625,  1625,
 
3410
       0,     0,     0,     0,   599,   399,   599,     0,  2566,     0,
 
3411
       0,     0,     0,  1151,     0,     0,     0,  2547,     0,     0,
 
3412
       0,  1170,     0,  1549,     0,   131,     0,     0,     0,     0,
 
3413
    2466,     0,     0,  2574,     0,     0,     0,     0,   404,   404,
 
3414
       0,     0,  2653,     0,  2230,     0,     0,     0,     0,     0,
 
3415
       0,  1089,     0,     0,     0,     0,     0,     0,     0,     0,
 
3416
       0,     0,     0,  2345,     0,  1523,     0,     0,     0,     0,
 
3417
    2618,     0,     0,     0,  1250,     0,     0,     0,  1251,     0,
 
3418
       0,     0,     0,  1089,     0,     0,   399,     0,     0,     0,
 
3419
       0,  2596,     0,     0,     0,     0,     0,  1252,  1253,     0,
 
3420
       0,   399,     0,     0,     0,  1624,  2693,     0,  2702,     0,
 
3421
    1254,  2490,  1892,     0,     0,  2459,     0,     0,     0,     0,
 
3422
    1089,     0,   599,     0,     0,     0,     0,     0,     0,     0,
 
3423
       0,     0,     0,     0,  1902,     0,     0,     0,     0,     0,
 
3424
    1920,  1255,     0,     0,  1256,     0,     0,     0,     0,     0,
 
3425
       0,   404,  2531,     0,     0,     0,     0,  1257,     0,     0,
 
3426
     589,     0,     0,     0,     0,     0,  1625,   404,     0,  2345,
 
3427
       0,     0,     0,     0,     0,   404,  1625,  1625,     0,     0,
 
3428
       0,     0,     0,     0,  1857,     0,     0,  1857,  1857,   614,
 
3429
       0,   589,     0,     0,     0,     0,  1777,   589,  1819,     0,
 
3430
       0,     0,     0,     0,     0,     0,     0,     0,     0,  2771,
 
3431
       0,  1530,     0,     0,   592,  1259,  1530,     0,   592,   592,
 
3432
    1530,     0,     0,     0,     0,     0,   399,     0,     0,     0,
 
3433
       0,     0,     0,  1624,  1624,     0,     0,     0,     0,     0,
 
3434
       0,     0,  1297,     0,     0,     0,     0,  2797,     0,     0,
 
3435
       0,     0,     0,     0,     0,  2597,     0,     0,     0,     0,
 
3436
       0,     0,     0,   399,   138,     0,     0,     0,     0,     0,
 
3437
       0,     0,     0,  1089,     0,   836,  2750,     0,     0,  2596,
 
3438
     592,     0,     0,     0,  1260,     0,     0,  1261,  1262,  1263,
 
3439
       0,  1264,  1265,  1266,  1267,  1268,  1269,     0,     0,  1089,
 
3440
       0,     0,  1270,     0,     0,     0,   404,   404,   404,   404,
 
3441
       0,     0,  1089,   139,     0,     0,     0,  2796,     0,     0,
 
3442
     399,     0,   592,  2087,     0,     0,     0,     0,     0,   140,
 
3443
       0,     0,     0,  1462,     0,     0,     0,  1857,     0,     0,
 
3444
       0,  2631,     0,  1401,   131,     0,     0,   141,  2759,  2020,
 
3445
    2021,     0,     0,     0,  2036,     0,     0,  2795,     0,     0,
 
3446
    1462,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3447
       0,     0,   616,     0,     0,  2652,   142,   836,  1035,     0,
 
3448
     131,   143,   589,     0,  2061,  2062,     0,     0,     0,   589,
 
3449
       0,     0,     0,     0,   144,     0,     0,  1499,  2759,     0,
 
3450
       0,  1624,     0,     0,     0,     0,  1091,     0,     0,     0,
 
3451
       0,  1624,  1624,     0,     0,     0,   145,     0,   586,     0,
 
3452
       0,     0,     0,     0,  2759,     0,     0,  1536,     0,     0,
 
3453
       0,   589,     0,  1089,     0,  1530,     0,     0,  1091,     0,
 
3454
       0,     0,     0,     0,     0,     0,     0,     0,  1246,     0,
 
3455
       0,     0,     0,   836,     0,     0,  1248,     0,     0,     0,
 
3456
       0,  1249,     0,  1089,     0,     0,     0,     0,     0,     0,
 
3457
     146,     0,     0,     0,     0,  1091,  1246,     0,     0,     0,
 
3458
       0,     0,     0,     0,  1248,  1080,  1089,     0,     0,  1249,
 
3459
       0,     0,     0,  2735,  2736,     0,   836,  2739,  2740,     0,
 
3460
       0,     0,     0,     0,     0,     0,     0,     0,     0,   147,
 
3461
       0,  2758,   586,     0,   404,   148,     0,  1080,  1089,     0,
 
3462
     149,     0,  2226,   836,     0,     0,  1089,     0,  2232,     0,
 
3463
       0,     0,     0,   404,     0,     0,     0,     0,     0,     0,
 
3464
       0,     0,     0,     0,     0,   150,   151,     0,     0,   404,
 
3465
     836,   836,     0,   836,  1080,     0,     0,     0,   152,     0,
 
3466
       0,  2758,     0,   153,     0,  1250,     0,     0,     0,  1251,
 
3467
       0,   836,   154,     0,     0,  2039,   404,     0,     0,     0,
 
3468
    2040,     0,     0,     0,     0,  2278,     0,  2758,  1252,  1253,
 
3469
       0,     0,     0,  1250,     0,   586,     0,  1251,     0,     0,
 
3470
       0,  1254,     0,     0,     0,     0,   586,     0,     0,     0,
 
3471
     726,     0,     0,     0,     0,     0,  1252,  1253,     0,     0,
 
3472
     836,     0,     0,   836,   836,     0,     0,     0,  1091,  1254,
 
3473
       0,  1035,  1255,     0,     0,  1256,     0,     0,  1736,     0,
 
3474
       0,     0,     0,     0,     0,     0,  1743,     0,  1257,     0,
 
3475
    1258,     0,  1747,     0,  1387,     0,     0,     0,  1752,     0,
 
3476
    1255,  1089,     0,  1256,     0,     0,     0,  1091,     0,     0,
 
3477
       0,     0,     0,     0,     0,     0,  1257,     0,  1258,     0,
 
3478
       0,     0,     0,     0,     0,     0,     0,     0,  1772,  1773,
 
3479
       0,  1775,     0,     0,     0,     0,     0,     0,   586,     0,
 
3480
       0,  1806,  1807,     0,     0,     0,  1259,  1080,     0,     0,
 
3481
       0,     0,     0,  2360,  2361,  1248,  1821,     0,  1825,  1826,
 
3482
    1249,  1830,  1831,  1832,  1833,     0,     0,     0,  1839,     0,
 
3483
       0,  1842,     0,  1080,  1259,     0,   586,     0,     0,     0,
 
3484
       0,     0,     0,     0,  1248,     0,  1080,     0,     0,  1249,
 
3485
    2309,     0,     0,  2313,  2314,  2315,  2316,  2317,  2318,  2319,
 
3486
    2320,  2321,     0,  2323,     0,     0,     0,  1089,     0,     0,
 
3487
       0,     0,  1089,  1089,     0,  1260,     0,     0,  1261,  1262,
 
3488
    1263,     0,  1264,  1265,  1266,  1267,  1268,  1269,  1091,     0,
 
3489
    1446,     0,     0,  1270,     0,     0,     0,  1447,     0,     0,
 
3490
    1035,  2348,  2349,  1260,     0,     0,  1261,  1262,  1263,     0,
 
3491
    1264,  1265,  1266,  1267,  1268,  1269,     0,     0,  1091,     0,
 
3492
       0,  1270,  2063,     0,  1250,     0,  2420,     0,  1251,     0,
 
3493
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1089,
 
3494
       0,  1091,  2441,     0,     0,  1089,     0,  1252,  1253,     0,
 
3495
    2446,     0,     0, -1457,     0,     0,     0,  1251,     0,     0,
 
3496
    1254,  1089,  1782,     0,     0,     0,     0,  1080,     0,     0,
 
3497
       0,   589,     0,  1091,     0,     0,  1252,  1253,     0,     0,
 
3498
       0,  1091,     0,     0,     0,     0,     0,     0,     0, -1457,
 
3499
       0,     0,     0,     0,  1256,     0,     0,  1080,     0,   589,
 
3500
       0,     0,     0,     0,     0,     0,     0,  1257,     0,     0,
 
3501
    1783,     0,     0,     0,     0,     0,     0,  1784,  1785,  1786,
 
3502
    1080,     0,     0,  1256,     0,  1089,     0,     0,     0,     0,
 
3503
       0,     0,   836,   836,     0,     0,  1257,     0,     0,  2435,
 
3504
     836,     0,     0,   836,   836,     0,     0,     0,     0,     0,
 
3505
       0,     0,  1080,     0,  1787,   836,   836,     0,     0,     0,
 
3506
    1080,     0,  1089,   836,     0,  1259,     0,   836,   836,   836,
 
3507
     836,     0,     0,     0,     0,     0,     0,   836,   836,     0,
 
3508
       0,  2524,  2525,  2526,  2527,     0,     0,     0,     0,     0,
 
3509
       0,  1788,   836,  1035, -1457,  1789,   836,     0,     0,     0,
 
3510
     836,     0,     0,     0,   836,     0,     0,   836,   836,   836,
 
3511
     836,   836,   836,   836,   836,   836,  1091,  1248,   836,     0,
 
3512
       0,     0,  1249,   836,     0,     0,   836,     0,     0,     0,
 
3513
       0,     0,  1790,     0,  1260,     0,     0,  1261,  1262,  1263,
 
3514
       0,  1264,  1265,  1266,  1267,  1268,  1269,  1791,  1792,  1793,
 
3515
    1794,  1795,  1270,  1796,     0,     0,     0,     0,     0,     0,
 
3516
       0,  2132,  2133,  1260,     0,     0,     0,  2512,  2513,     0,
 
3517
    1264,  1265,  1266,  1267,  1268,  1269,     0,     0,     0,     0,
 
3518
    1797,  1270,     0,     0,     0,     0,     0,     0,     0,     0,
 
3519
       0,     0,  1035,     0,     0,  1080,     0,     0,     0,     0,
 
3520
       0,     0,     0,     0,     0,     0,     0,     0,   836,  1798,
 
3521
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3522
       0,     0,  1091,     0,     0,     0,  1250,  1387,  1091,  1081,
 
3523
    1251,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3524
       0,  1799,     0,  1800,     0,     0,     0,     0,     0,  1252,
 
3525
    1253,  1089,  1089,     0,  1089,     0,     0,     0,     0,     0,
 
3526
       0,  1081,  1254,     0,     0,  1801,     0,     0,     0,  1089,
 
3527
       0,  1089,  1802,     0,     0,  1803,     0,     0,     0,     0,
 
3528
       0,     0,     0,     0,     0,     0,  1248,     0,     0,  2635,
 
3529
       0,  1249,     0,   836,  1091,     0,  1256,     0,  1081,     0,
 
3530
    1091,  1080,     0,     0,     0,     0,  1080,  1080,   726,  1257,
 
3531
    1089,     0,  2243,     0,   836,     0,  1091,     0,     0,     0,
 
3532
       0,     0,     0,     0,  2661,  1083,     0,     0,     0,     0,
 
3533
       0,     0,     0,     0,     0,  2614,     0,     0,     0,     0,
 
3534
    1089,     0,     0,  1248,     0,  2619,  2620,     0,  1249,     0,
 
3535
       0,  2669,     0,     0,     0,     0,     0,  1083,     0,     0,
 
3536
       0,  1089,     0,     0,     0,     0,     0,  1259,   589,     0,
 
3537
       0,     0,     0,  1080,     0,     0,     0,   836,     0,  1080,
 
3538
    1091,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3539
     836,     0,  1089,     0,  1083,  1080,     0,     0,     0,  1251,
 
3540
       0,     0,     0,  1089,   836,     0,     0,     0,     0,     0,
 
3541
       0,     0,     0,     0,  1089,     0,     0,  1091,  1252,  1253,
 
3542
       0,  2072,     0,     0,     0,     0,     0,     0,     0,     0,
 
3543
       0,     0,     0,     0,     0,   836,  1260,     0,     0,     0,
 
3544
   -1457, -1457,     0,  1264,  1265,  1266,  1267,  1268,  1269,     0,
 
3545
       0,  1081, -1457,     0,  1270,     0,  1251,     0,     0,  1080,
 
3546
       0,     0,     0,     0,     0,  1256,     0,   836,   836,     0,
 
3547
       0,     0,   836,     0,     0,  1252,  1253,  1081,  1257,     0,
 
3548
       0,     0,     0,     0,   836,   836,   836,   836, -1457,  1089,
 
3549
    1081,     0,     0,   836,     0,     0,  1080,     0,     0,     0,
 
3550
       0,     0,   836,   836,     0,   836,     0,     0,     0,     0,
 
3551
       0,     0,     0,     0,     0,     0,     0,   836,     0,   836,
 
3552
       0,     0,  1256,   836,     0,  1089,     0,     0,     0,     0,
 
3553
       0,     0,     0,     0,     0,  1257,     0,     0,     0,  1089,
 
3554
     836,     0,     0,     0,     0,     0,     0,  1083,     0,     0,
 
3555
     589,     0,   836,   836,     0,  2396,  2397,     0,     0,     0,
 
3556
       0,     0,  1089,     0,     0,     0,     0,     0,     0,   836,
 
3557
       0,     0,     0,  1083,     0,     0,     0,   836,   836,   836,
 
3558
       0,     0,     0,     0,     0,     0,  1083,     0,   836,     0,
 
3559
       0,     0,     0, -1457,     0,     0,     0,  1084,     0,     0,
 
3560
    2428,  2430,  2432,     0,  2434,  1260,  1387,  1091,     0,  1091,
 
3561
       0,  1081,  1264,  1265,  1266,  1267,  1268,  1269,     0,     0,
 
3562
       0,     0,     0,  1270,  1091,     0,  1091,     0,     0,  1084,
 
3563
       0,  2460,     0,     0,     0,     0,     0,     0,     0,     0,
 
3564
       0,  1081,     0,     0,     0,     0,     0,     0,  1089,     0,
 
3565
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3566
       0,     0,  1260,     0,  1081,  1091,  1084,     0,     0,  1264,
 
3567
    1265,  1266,  1267,  1268,  1269,     0,     0,     0,     0,     0,
 
3568
    1270,     0,     0,     0,     0,  1080,  1080,     0,  1080,     0,
 
3569
       0,     0,     0,     0,     0,  1091,  1081,     0,     0,     0,
 
3570
       0,     0,     0,  1080,  1081,  1080,     0,  1083,     0,     0,
 
3571
       0,     0,     0,  1089,     0,  1035,  1091,     0,     0,     0,
 
3572
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3573
       0,     0,     0,     0,     0,     0,     0,  1083,     0,     0,
 
3574
       0,     0,     0,     0,  1080,     0,     0,  1091,     0,     0,
 
3575
       0,     0,     0,     0,     0,     0,     0,     0,  1091,     0,
 
3576
    1083,     0,     0,     0,     0,  2534,  2535,     0,     0,  1091,
 
3577
       0,     0,     0,     0,  1080,     0,  2542,  1086,     0,     0,
 
3578
       0,     0,     0,   589,     0,     0,     0,   589,     0,     0,
 
3579
       0,   589,  1083,     0,     0,  1080,     0,     0,     0,     0,
 
3580
    1083,     0,     0,     0,     0,     0,     0,   589,     0,  1086,
 
3581
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1084,
 
3582
       0,     0,     0,  1248,     0,     0,  1080,     0,  1249,     0,
 
3583
       0,     0,     0,     0,     0,  1089,     0,  1080,     0,  1081,
 
3584
       0,   836,     0,     0,  1091,  1084,  1086,     0,  1080,     0,
 
3585
       0,     0,     0,   836,     0,     0,     0,  2243,  1084,   836,
 
3586
       0,     0,     0,   836,     0,     0,     0,     0,   836,     0,
 
3587
       0,   836,   836,   836,   836,   836,   836,   836,   836,   836,
 
3588
    1091,   836,     0,     0,     0,   836,   836,     0,     0,     0,
 
3589
       0,     0,     0,     0,  1091,     0,     0,     0,     0,   836,
 
3590
       0,  2350,     0,     0,     0,     0,   836,     0,     0,   836,
 
3591
       0,   836,     0,     0,     0,     0,     0,  1091,   836,   836,
 
3592
     836,     0,     0,  1080,   836,     0,     0,   836,     0,     0,
 
3593
       0,     0, -1457,     0,     0,  1083,  1251,     0,     0,     0,
 
3594
       0,     0,     0,     0,  1087,  1081,     0,     0,   836,     0,
 
3595
    1081,  1081,     0,     0,     0,  1252,  1253,     0,     0,  1080,
 
3596
       0,     0,     0,     0,     0,     0,     0,     0, -1457,     0,
 
3597
       0,     0,     0,  1080,     0,     0,  1087,     0,     0,  1084,
 
3598
       0,  1089,     0,     0,     0,     0,     0,  1088,     0,     0,
 
3599
       0,     0,     0,     0,     0,     0,  1080,     0,     0,  1086,
 
3600
    1089,     0,  1256,  1091,     0,     0,     0,  1089,     0,  1084,
 
3601
       0,     0,     0,  1087,     0,  1257,     0,  1081,     0,  1088,
 
3602
       0,     0,     0,  1081,     0,  1086,     0,     0,     0,     0,
 
3603
       0,     0,  1084,     0,  2691,     0,     0,     0,  1086,  1081,
 
3604
       0,  1083,     0,     0,     0,     0,  1083,  1083,     0,     0,
 
3605
       0,     0,     0,     0,     0,     0,  1088,   836,     0,     0,
 
3606
       0,     0,     0,     0,  1084,     0,     0,     0,  1091,     0,
 
3607
       0,     0,  1084, -1457,     0,     0,     0,     0,     0,     0,
 
3608
       0,     0,  1080,     0,     0,     0,     0,     0,     0,     0,
 
3609
       0,  2730,     0,     0,     0,     0,     0,     0,     0,     0,
 
3610
       0,     0,     0,  1081,     0,     0,  1089,   589,     0,     0,
 
3611
       0,     0,   589,  1083,     0,     0,   589,     0,     0,  1083,
 
3612
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3613
       0,     0,   836,   636,     0,  1083,     0,     0,     0,     0,
 
3614
    1081,     0,  1260,     0,   836,     0,     0,  1080,     0,  1264,
 
3615
    1265,  1266,  1267,  1268,  1269,     0,     0,     0,     0,  1086,
 
3616
    1270,     0,     0,   637,     0,     0,  1087,     0,     0,     0,
 
3617
       0,     0,     0,     0,     0,   638,     0,     0,     0,     0,
 
3618
     639,     0,   640,     0,     0,   836,   836,     0,     0,  1086,
 
3619
    1091,     0,  1087,     0,     0,     0,   836,   836,   641,  1083,
 
3620
     836,     0,     0,     0,     0,  1087,     0,  1084,     0,  1088,
 
3621
       0,     0,  1086,  1089,     0,     0,   642,     0,     0,     0,
 
3622
       0,     0,     0,     0,     0,     0,  1090,     0,     0,     0,
 
3623
       0,     0,     0,     0,     0,  1088,  1083,     0,     0,     0,
 
3624
       0,     0,     0,     0,  1086,   643,     0,     0,  1088,     0,
 
3625
       0,     0,  1086,     0,     0,     0,     0,     0,  1090,     0,
 
3626
       0,     0,     0,   644,     0,     0,     0,     0,     0,  1080,
 
3627
       0,     0,     0,     0,     0,     0,     0,     0,     0,   836,
 
3628
    1089,     0,     0,     0,     0,     0,   645,     0,     0,  1246,
 
3629
       0,     0,     0,     0,     0,  1090,     0,  1248,     0,     0,
 
3630
       0,     0,  1249,     0,     0,     0,     0,     0,     0,     0,
 
3631
       0,     0,     0,  1084,   589,     0,     0,     0,  1084,  1084,
 
3632
       0,     0,     0,     0,     0,     0,  1087,   836,     0,  1081,
 
3633
    1081,   589,  1081,     0,     0,     0,  1091,     0,     0,   646,
 
3634
       0,     0,     0,   836,     0,     0,     0,  1081,     0,  1081,
 
3635
       0,     0,     0,   836,     0,  1091,  1087,     0,     0,   455,
 
3636
       0,     0,  1091,   836,   836,     0,     0,   836,     0,  1088,
 
3637
       0,     0,     0,     0,   836,   836,     0,     0,     0,  1087,
 
3638
       0,     0,   647,     0,   648,  1084,     0,  1086,  1081,   649,
 
3639
       0,  1084,     0,     0,   836,     0,     0,     0,     0,  1088,
 
3640
       0,     0,     0,     0,     0,     0,  1250,  1084,   589,     0,
 
3641
    1251,  1087,     0,     0,   650,  1080,     0,     0,  1081,  1087,
 
3642
       0,     0,  1088,     0,     0,  1083,  1083,   651,  1083,  1252,
 
3643
    1253,     0,   652,     0,  1080,     0,     0,     0,   836,  1081,
 
3644
       0,  1080,  1254,  1083,     0,  1083,     0,     0,  1090,     0,
 
3645
     653,     0,     0,     0,  1088,     0,     0,     0,     0,     0,
 
3646
       0,  1091,  1088,     0,     0,     0,     0,     0,     0,     0,
 
3647
    1081,  1084,     0,  1255,  1385,     0,  1256,     0,     0,     0,
 
3648
       0,  1081,     0,     0,  1083,     0,     0,  1090,     0,  1257,
 
3649
       0,   589,  1081,  1086,     0,     0,     0,     0,  1086,  1086,
 
3650
       0,     0,   589,     0,     0,     0,     0,     0,  1084,     0,
 
3651
       0,     0,     0,     0,  1083,     0,     0,     0,     0,     0,
 
3652
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3653
       0,     0,     0,     0,     0,  1083,     0,  1246,     0,     0,
 
3654
    1080,  1724,     0,     0,     0,  1248,     0,  1259,     0,     0,
 
3655
    1249,     0,     0,     0,  1087,     0,     0,     0,     0,     0,
 
3656
       0,     0,     0,     0,     0,  1086,  1083,  1081,  1091,   821,
 
3657
       0,  1086,     0,     0,  1248,     0,     0,  1083,     0,  1249,
 
3658
       0,     0,     0,     0,     0,     0,     0,  1086,  1083,     0,
 
3659
       0,     0,     0,     0,   589,     0,     0,  1088,     0,     0,
 
3660
       0,     0,     0,  1081,     0,     0,     0,     0,  1090,     0,
 
3661
    1725,     0,     0,     0,     0,     0,  1260,  1081,     0,  1261,
 
3662
    1262,  1263,     0,  1264,  1265,  1266,  1267,  1268,  1269,     0,
 
3663
       0,     0,   589,     0,  1270,  1091,     0,     0,  1090,     0,
 
3664
    1081,     0,     0,     0,     0,     0,     0,  1080,     0,     0,
 
3665
       0,  1086,  2351,     0,  1250,     0,     0,     0,  1251,     0,
 
3666
    1087,  1090,     0,  1083,     0,  1087,  1087,     0,     0,     0,
 
3667
       0,   957,     0,     0,     0,     0,     0,  1252,  1253,     0,
 
3668
       0,     0,     0, -1457,     0,     0,     0,  1251,  1086,     0,
 
3669
    1254,     0,     0,  1090,     0,     0,     0,  1084,  1084,  1083,
 
3670
    1084,  1090,     0,  1088,     0,     0,  1252,  1253,  1088,  1088,
 
3671
       0,     0,     0,  1083,  1080,  1084,     0,  1084,     0, -1457,
 
3672
       0,  1255,     0,     0,  1256,     0,  1081,     0,     0,     0,
 
3673
       0,     0,  1087,     0,     0,     0,  1083,  1257,  1087,  1258,
 
3674
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3675
       0,     0,     0,  1256,  1087,     0,  1084,     0,     0,     0,
 
3676
       0,     0,     0,     0,     0,     0,  1257,     0,     0,     0,
 
3677
       0,     0,     0,     0,     0,  1088,     0,     0,     0,     0,
 
3678
       0,  1088,     0,     0,     0,     0,  1084,     0,     0,     0,
 
3679
    1192,  1081,     0,     0,     0,  1259,     0,  1088,     0,     0,
 
3680
       0,     0,     0,     0,     0,     0,     0,  1084,     0,     0,
 
3681
       0,     0,     0,     0,     0,     0,     0,  1216,  1087,     0,
 
3682
       0,     0,  1083,     0, -1457,     0,     0,     0,     0,     0,
 
3683
       0,     0,     0,     0,     0,     0,  1090,     0,  1084,     0,
 
3684
    1726,     0,     0,     0,  1235,  1236,     0,  1238,     0,  1084,
 
3685
       0,     0,     0,     0,     0,  1087,     0,     0,     0,     0,
 
3686
    1084,  1088,     0,     0,  1260,  1275,     0,  1261,  1262,  1263,
 
3687
       0,  1264,  1265,  1266,  1267,  1268,  1269,  1086,  1086,     0,
 
3688
    1086,  1246,  1270,     0,  1247,     0,     0,  1083,     0,  1248,
 
3689
       0,     0,     0,  1260,  1249,  1086,     0,  1086,  1088,     0,
 
3690
    1264,  1265,  1266,  1267,  1268,  1269,     0,     0,     0,     0,
 
3691
       0,  1270,     0,  1081,  1326,     0,     0,  1333,  1335,     0,
 
3692
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3693
       0,     0,     0,     0,     0,  1084,  1086,     0,     0,  1248,
 
3694
       0,     0,  1758,     0,  1249,     0,     0,  1385,  1385,     0,
 
3695
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3696
       0,     0,     0,     0,     0,     0,  1086,     0,     0,     0,
 
3697
       0,  1084,     0,     0,     0,     0,     0,     0,     0,     0,
 
3698
       0,     0,     0,     0,     0,  1084,     0,  1086,     0,     0,
 
3699
       0,     0,     0,     0,     0,     0,     0,     0,  1250,     0,
 
3700
       0,     0,  1251,     0,     0,     0,     0,     0,  1084,  1083,
 
3701
       0,     0,     0,     0,  1090,     0,     0,  2354,  1086,     0,
 
3702
    1090,  1252,  1253,     0,     0,     0,     0,     0,     0,  1086,
 
3703
       0,     0,     0,     0,  1254,     0,  1090,     0,     0,     0,
 
3704
    1086,     0,     0,     0,  1087,  1087,     0,  1087, -1457,     0,
 
3705
       0,     0,  1251,     0,     0,     0,     0,     0,     0,  1081,
 
3706
       0,     0,  1087,     0,  1087,  1255,     0,     0,  1256,     0,
 
3707
       0,  1252,  1253,     0,     0,     0,     0,     0,  1081,     0,
 
3708
       0,  1257,     0,  1258, -1457,  1081,     0,  1088,  1088,     0,
 
3709
    1088,     0,     0,     0,  1084,     0,     0,     0,     0,     0,
 
3710
    1090,     0,     0,  1087,     0,  1088,     0,  1088,     0,     0,
 
3711
       0,     0,     0,     0,     0,  1086,     0,     0,  1256,     0,
 
3712
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3713
       0,  1257,     0,  1087,     0,     0,     0,  1090,     0,  1259,
 
3714
       0,     0,     0,     0,     0,     0,  1088,     0,     0,     0,
 
3715
       0,  1086,  1272,     0,  1087,  1083,     0,     0,     0,  1084,
 
3716
       0,     0,     0,     0,     0,  1086,     0,     0,     0,     0,
 
3717
       0,     0,     0,     0,  1083,     0,  1088,     0,     0,     0,
 
3718
       0,  1083,     0,     0,  1081,  1087,     0,     0,  1086, -1457,
 
3719
       0,     0,     0,     0,     0,     0,  1087,  1088,     0,     0,
 
3720
       0,     0,     0,     0,     0,     0,     0,  1087,  1260,     0,
 
3721
       0,  1261,  1262,  1263,     0,  1264,  1265,  1266,  1267,  1268,
 
3722
    1269,     0,     0,     0,     0,     0,  1270,     0,  1088,     0,
 
3723
       0,     0,     0,     0,  1592,     0,     0,     0,  1594,  1088,
 
3724
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3725
    1088,     0,     0,     0,     0,     0,     0,  1616,  1260,     0,
 
3726
       0,  1619,     0,     0,  1630,  1264,  1265,  1266,  1267,  1268,
 
3727
    1269,  1637,  1642,     0,  1086,     0,  1270,     0,     0,     0,
 
3728
    1083,  1084,  1087,     0,     0,     0,  1652,     0,  1272,     0,
 
3729
    1658,  1081,     0,     0,  1669,     0,     0,     0,  1676,     0,
 
3730
       0,  1678,  1679,  1680,  1681,  1682,  1683,  1684,  1685,  1686,
 
3731
       0,     0,  1688,     0,     0,     0,     0,   821,  1087,     0,
 
3732
       0,     0,     0,     0,     0,  1088,  1385,  1385,     0,  1385,
 
3733
       0,     0,  1087,     0,     0,     0,     0,     0,     0,  1086,
 
3734
       0,     0,     0,     0,  1090,     0,  1090,     0,     0,     0,
 
3735
       0,     0,     0,     0,     0,  1087,     0,     0,  1081,  1246,
 
3736
       0,  1088,     0,     0,     0,     0,     0,  1248,     0,     0,
 
3737
       0,     0,  1249,     0,     0,  1088,     0,     0,     0,     0,
 
3738
       0,     0,     0,     0,     0,  1090,     0,  1083,     0,     0,
 
3739
       0,     0,     0,     0,     0,     0,     0,     0,  1088,     0,
 
3740
       0,     0,  1750,     0,     0,     0,     0,     0,     0,     0,
 
3741
    1246,     0,     0,  1998,     0,  1090,     0,     0,  1248,     0,
 
3742
       0,     0,     0,  1249,     0,     0,     0,  1084,     0,     0,
 
3743
       0,     0,     0,     0,     0,     0,  1385,     0,     0,     0,
 
3744
       0,  1087,     0,     0,     0,     0,  1084,     0,     0,     0,
 
3745
       0,     0,     0,  1084,  1083,     0,     0,     0,     0,     0,
 
3746
       0,  1086,     0,     0,     0,     0,     0,  1090,     0,     0,
 
3747
       0,     0,  1272,     0,     0,     0,  1250,     0,  1090,     0,
 
3748
    1251,     0,     0,     0,  1088,     0,     0,  1847,     0,  1385,
 
3749
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1252,
 
3750
    1253,     0,     0,     0,     0,     0,  1087,     0,  1871,     0,
 
3751
       0,     0,  1254,     0,     0,     0,     0,     0,     0,     0,
 
3752
       0,     0,  1246,  1272,     0,     0,     0,  1250,     0,     0,
 
3753
    1248,  1251,     0,     0,     0,  1249,     0,     0,     0,     0,
 
3754
       0,     0,     0,  1255,     0,     0,  1256,  1272,     0,  1088,
 
3755
    1252,  1253,  1084,  1626,     0,     0,     0,     0,     0,  1257,
 
3756
       0,  1258,     0,  1254,  1090,     0,  1272,  1272,     0,  1272,
 
3757
       0,  1952,     0,     0,     0,     0,     0,     0,     0,     0,
 
3758
       0,     0,     0,     0,  1959,     0,     0,     0,     0,     0,
 
3759
       0,     0,     0,     0,  1255,     0,     0,  1256,  1970,     0,
 
3760
    1090,     0,     0,     0,     0,     0,  1272,  1086,     0,     0,
 
3761
    1257,     0,  1258,     0,  1090,     0,     0,  1259,     0,     0,
 
3762
       0,     0,     0,     0,     0,     0,  1086,     0,  1087,  1994,
 
3763
       0,     0,     0,  1086,     0,     0,     0,  1090,     0,  1250,
 
3764
       0,     0,     0,  1251,     0,     0,     0,     0,     0,     0,
 
3765
       0,     0,     0,     0,     0,     0,     0,  1272,     0,  1084,
 
3766
       0,     0,  1252,  1253,  1272,     0,  1272,     0,  1259,     0,
 
3767
       0,  1088,     0,     0,     0,  1254,     0,     0,  1642,     0,
 
3768
    1642,  1642,     0,     0,     0,     0,  1260,  2056,     0,  1261,
 
3769
    1262,  1263,     0,  1264,  1265,  1266,  1267,  1268,  1269,     0,
 
3770
       0,     0,     0,  1646,  1270,     0,  1255,     0,     0,  1256,
 
3771
       0,  2075,     0,  2077,     0,     0,     0,  2080,     0,     0,
 
3772
       0,     0,  1257,  1090,  1258,     0,  1084,     0,     0,     0,
 
3773
       0,     0,  1086,     0,     0,     0,     0,  1260,     0,     0,
 
3774
    1261,  1262,  1263,     0,  1264,  1265,  1266,  1267,  1268,  1269,
 
3775
       0,     0,     0,     0,     0,  1270,     0,     0,     0,     0,
 
3776
       0,     0,     0,  1326,     0,     0,     0,     0,     0,     0,
 
3777
       0,  1335,  1335,  1333,  1087,     0,     0,     0,     0,     0,
 
3778
    1259,     0,  2118,     0,     0,     0,     0,     0,  1090,     0,
 
3779
       0,     0,     0,  1087,     0,     0,     0,     0,  1248,     0,
 
3780
    1087,     0,     0,  1249,     0,     0,     0,     0,     0,     0,
 
3781
       0,     0,     0,     0,     0,     0,     0,  1088,     0,     0,
 
3782
       0,     0,     0,     0,     0,  2000,     0,     0,     0,     0,
 
3783
       0,     0,     0,     0,     0,     0,  1088,     0,     0,  1086,
 
3784
       0,     0,     0,  1088,     0,     0,     0,     0,     0,  1260,
 
3785
       0,     0,  1261,  1262,  1263,     0,  1264,  1265,  1266,  1267,
 
3786
    1268,  1269,     0,     0,     0,     0,     0,  1270,     0,     0,
 
3787
       0,     0,     0,     0,     0,     0,  2521,     0,     0,     0,
 
3788
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3789
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1087,
 
3790
       0,     0,     0,     0,     0,     0,  1086, -1457,     0,     0,
 
3791
    1090,  1251,     0,     0,     0,     0,     0,     0,     0,     0,
 
3792
       0,     0,     0,  1272,     0,  1272,     0,     0,     0,     0,
 
3793
    1252,  1253,     0,     0,     0,     0,     0,     0,     0,     0,
 
3794
       0,     0,  1088, -1457,     0,     0,     0,  1272,     0,     0,
 
3795
    1272,     0,  1626,  1626,  2035,     0,     0,  1626,     0,     0,
 
3796
       0,  1272,     0,     0,     0,     0,     0,     0,  1272,     0,
 
3797
       0,     0,     0,  1272,     0,     0,     0,  1256,     0,     0,
 
3798
       0,     0,     0,  1272,     0,     0,     0,  1626,  1626,  1272,
 
3799
    1257,     0,     0,     1,     0,     0,     0,     0,     0,     0,
 
3800
    1272,     0,     0,     2,     3,     4,  1087,  1272,     0,  1272,
 
3801
    1272,  1272,  1272,  1272,  1272,  1272,  1272,  1272,     5,  1272,
 
3802
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3803
       0,     0,     0,     0,     0,  2299,     6,     0,     7,     8,
 
3804
       0,     0,     0,     9,    10,     0,     0,  2304, -1457,  1088,
 
3805
       0,    11,    12,  2305,     0,     0,  1090,  2307,     0,     0,
 
3806
       0,     0,     0,     0,     0,     0,     0,    13,     0,     0,
 
3807
      14,     0,     0,  1087,     0,  1090,    15,     0,     0,  2324,
 
3808
    2325,  1272,  1090,     0,     0,    16,     0,     0,     0,     0,
 
3809
       0,    17,     0,     0,     0,     0,    18,     0,    19,     0,
 
3810
    2338,     0,    20,  2341,     0,  2343,     0,     0,     0,     0,
 
3811
       0,     0,  2347,     0,    21,     0,  1088,  1260,  2352,     0,
 
3812
       0,  2355,     0,     0,  1264,  1265,  1266,  1267,  1268,  1269,
 
3813
       0,  1246,     0,     0,     0,  1270,     0,     0,    22,  1248,
 
3814
       0,     0,  2368,     0,  1249,     0,     0,     0,     0,     0,
 
3815
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3816
       0,    23,    24,     0,     0,     0,     0,    25,     0,     0,
 
3817
       0,     0,     0,     0,     0,    26,     0,     0,  1272,     0,
 
3818
       0,  1090,     0,     0,     0,     0,     0,     0,     0,     0,
 
3819
       0,     0,    27,     0,     0,  1246,     0,     0,  2048,     0,
 
3820
       0,     0,  1272,  1248,     0,     0,     0,     0,  1249,     0,
 
3821
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3822
       0,    28,     0,     0,     0,     0,     0,     0,     0,     0,
 
3823
       0,     0,     0,    29,     0,    30,     0,     0,     0,    31,
 
3824
       0,     0,     0,    32,     0,     0,    33,     0,  1250,     0,
 
3825
      34,     0,  1251,     0,     0,    35,     0,     0,     0,     0,
 
3826
      36,     0,     0,    37,     0,     0,     0,     0,     0,    38,
 
3827
       0,  1252,  1253,     0,     0,     0,     0,     0,     0,     0,
 
3828
       0,     0,     0,  1272,  1254,     0,     0,     0,  1090,     0,
 
3829
    1272,     0,     0,     0,     0,     0,     0,    39,     0,     0,
 
3830
       0,  1272,     0,     0,     0,    40,     0,    41,     0,     0,
 
3831
      42,     0,  1250,     0,     0,  1255,  1251,     0,  1256,     0,
 
3832
       0,     0,     0,     0,     0,  1272,  1970,     0,     0,     0,
 
3833
       0,  1257,     0,  1258,     0,  1252,  1253,     0,  2500,     0,
 
3834
       0,     0,  2017,     0,     0,     0,     0,     0,  1254,    43,
 
3835
       0,  2035,  2035,  1626,     0,  1090,  1626,  1626,  1626,  1626,
 
3836
    1626,  1626,  1626,  1626,  1626,     0,  1626,  2035,     0,     0,
 
3837
    1246,     0,     0,     0,     0,     0,     0,     0,  1248,  1255,
 
3838
       0,     0,  1256,  1249,     0,     0,     0,  1272,     0,  1259,
 
3839
    2519,  2520,  2035,  2035,  2522,  1257,     0,  1258,     0,     0,
 
3840
       0,     0,     0,     0,  1626,  1626,  1272,  1246,  1272,     0,
 
3841
       0,  1272,     0,     0,     0,  1248,     0,     0,     0,     0,
 
3842
    1249,     0,     0,     0,  1246,     0,     0,     0,     0,     0,
 
3843
       0,     0,  1248,     0,     0,     0,     0,  1249,     0,     0,
 
3844
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1272,
 
3845
       0,     0,     0,  1259,     0,     0,     0,     0,  1260,     0,
 
3846
       0,  1261,  1262,  1263,     0,  1264,  1265,  1266,  1267,  1268,
 
3847
    1269,     0,     0,  2567,  2053,     0,  1270,     0,     0,     0,
 
3848
       0,     0,     0,     0,     0,     0,     0,  1250,     0,     0,
 
3849
       0,  1251,     0,     0,     0,     0,     0,     0,     0,     0,
 
3850
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3851
    1252,  1253,     0,     0,     0,     0,     0,     0,     0,     0,
 
3852
       0,  2602,  1260,  1254,  1250,  1261,  1262,  1263,  1251,  1264,
 
3853
    1265,  1266,  1267,  1268,  1269,     0,     0,  1970,     0,     0,
 
3854
    1270,  1250,  1626,     0,     0,  1251,     0,  1252,  1253,     0,
 
3855
       0,     0,     0,     0,  1255,     0,     0,  1256,     0,     0,
 
3856
    1254,  2621,     0,     0,  1252,  1253,     0,     0,     0,  2623,
 
3857
    1257,     0,  1258,     0,     0,     0,     0,  1254,     0,     0,
 
3858
       0,     0,     0,     0,     0,     0,     0,     0,  2628,     0,
 
3859
       0,  1255,     0,     0,  1256,     0,     0,     0,     0,     0,
 
3860
       0,     0,     0,     0,     0,     0,     0,  1257,  1255,  1258,
 
3861
       0,  1256,     0,     0,     0,     0,     0,     0,     0,     0,
 
3862
       0,     0,     0,     0,  1257,     0,  1258,     0,  1259,     0,
 
3863
    1272,     0,  2654,     0,     0,  1272,  1272,     0,  1272,     0,
 
3864
    2035,     0,     0,     0,  2035,  2035,  2035,  2035,  2035,  2035,
 
3865
    2035,  2035,  2035,     0,  2035,  1272,  1272,     0,     0,     0,
 
3866
       0,     0,     0,     0,     0,  1259,     0,     0,     0,  1272,
 
3867
    1626,  1626,  1272,     0,  1272,     0,     0,     0,  1272,  2035,
 
3868
    2035,     0,  1259,  1272,     0,     0,  1272,     0,     0,     0,
 
3869
       0,     0,     0,     0,     0,     0,     0,  1260,     0,  1272,
 
3870
    1261,  1262,  1263,     0,  1264,  1265,  1266,  1267,  1268,  1269,
 
3871
       0,     0,     0,     0,     0,  1270,     0,     0,     0,     0,
 
3872
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3873
       0,     0,     0,     0,  1260,     0,     0,  1261,  1262,  1263,
 
3874
       0,  1264,  1265,  1266,  1267,  1268,  1269,     0,     0,  2163,
 
3875
       0,  1260,  1270,     0,  1261,  1262,  1263,     0,  1264,  1265,
 
3876
    1266,  1267,  1268,  1269,     0,     0,  2035,     0,  2187,  1270,
 
3877
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3878
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3879
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3880
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3881
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3882
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3883
       0,  1272,     0,     0,     0,     0,     0,     0,  1626,     0,
 
3884
       0,     0,     0,  2035,  2035,     0,     0,     0,  1626,  1626,
 
3885
    1272,  1272,     0,  1272,     0,     0,     0,     0,     0,     0,
 
3886
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3887
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3888
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3889
       0,     0,     0,     0,     0,     0,     0,     0,  1272,     0,
 
3890
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3891
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3892
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
3893
       0,     0,     0,  1272,     0,     0,     0,   156,   157,   158,
 
3894
     159,   160,   161,   162,   163,  2035,   164,   165,     0,     0,
 
3895
    2035,  2035,  1272,     0,  1272,   166,   167,     0,   168,  1272,
 
3896
     169,   170,   171,     0,   172,     0,   173,   174,     0,   175,
 
3897
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
3898
     183,   184,   185,   186,   187,  1272,     0,   188,   189,   190,
 
3899
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
3900
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
3901
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
3902
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
3903
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
3904
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
3905
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
3906
     238,     0,   239,     0,   240,   241,   242,     0,   243,   244,
 
3907
     245,     0,   246,   247,   248,   249,   250,     0,     0,   251,
 
3908
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
3909
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
3910
     266,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
3911
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
3912
     281,   282,     0,   283,     0,   284,   285,   286,   287,   288,
 
3913
     289,   290,   291,   292,     0,   293,   294,     0,   295,     0,
 
3914
     296,   297,   298,   299,     0,     0,   300,     0,     0,     0,
 
3915
     301,   302,     0,     0,   303,     0,     0,   304,   305,   306,
 
3916
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
3917
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
3918
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
 
3919
     333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
 
3920
     342,   343,   344,     0,   345,   346,   347,   348,     0,   349,
 
3921
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
3922
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
3923
       0,   367,   368,     0,   369,     0,   370,   371,   372,   373,
 
3924
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
3925
     381,   382,     0,  2657,   383,   384,   385,   386,   387,   388,
 
3926
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
3927
     396,     0,   397,     0,     0,     0,     0,     0,     0,   156,
 
3928
     157,   158,   159,   160,   161,   162,   163,  1706,   164,   165,
 
3929
       0, -1234,     0,     0,   746,     0, -1234,   166,   167,     0,
 
3930
     168,   565,   169,   170,   171,   566,   747,   567,   748,   749,
 
3931
       0,   175,   176,   177,   178,   750,   751,   179,   752,   753,
 
3932
     182,     0,   183,   184,   185,   186,   754,     0,     0,   188,
 
3933
     189,   190,   191,     0,   192,   193,   755,   195,     0,   196,
 
3934
     197,   198,   568,   199,   756,   757,   758,   759,   760,   200,
 
3935
     201,   202,   203,   204,   761,   762,   207,     0,   208,     0,
 
3936
     209,   210,   211,   212,   213,     0,   214,  1707,     0,   215,
 
3937
     763,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
3938
     223,   224,   225,   764,   227,   228,   765,   766,   230,   231,
 
3939
     767,     0,   233,     0,   234,   569,     0,   570,   235,   236,
 
3940
       0,   237,   768,     0,   239,     0,   240,   241,   242,   571,
 
3941
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
3942
     572,   251,   252,   253,   254,   255,   769,   770,     0,   771,
 
3943
       0,   259,   573,   574,   260,   575,   261,   262,   263,   264,
 
3944
     265,     0,   772,   576,   267,   577,     0,   268,   269,   270,
 
3945
     773,   774,   271,   272,   273,   274,   275,   276,   277,   278,
 
3946
     279,   280,   281,   775,   578,   776,   402,   284,   285,   286,
 
3947
     287,   288,   289,   290,   291,   292,   777,   293,   294,   579,
 
3948
     295,   778,   779,   780,   298,   299,     0,     0,   300,   403,
 
3949
       0,     0,   781,   302,     0,     0,   303,   580,   581,   782,
 
3950
     305,   306,   307,     0,   783,   309,   310,   311,   312,     0,
 
3951
     313,   314,   315,   316,   317,   318,   784,   320,     0,   321,
 
3952
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
3953
     582,   332,   333,   785,   335,   336,   337,   338,   339,   340,
 
3954
     341,     0,   342,   343,   344,   786,   345,   346,   347,   348,
 
3955
     583,   349,   787,     0,   351,   352,   353,   354,   355,   356,
 
3956
     357,   358,   788,   360,     0,   361,   362,     0,   363,   364,
 
3957
     365,   366,     0,   789,   790,     0,   369,     0,   370,   791,
 
3958
     372,   792,   793,   374,   375,   376,   377,   378,     0,   794,
 
3959
     379,   380,   381,   382,   795,     0,   383,   384,   385,   386,
 
3960
     796,   388,   584,   389,   390,     0,     0,   391,   392,   393,
 
3961
     394,   395,   396,     0,   797,   798,   497,   799,   800,   801,
 
3962
     802,   803,     0,     0,     0,     0,   804,   805,  1708,     0,
 
3963
       0,     0,     0,     0,     0,   807,  1709,   156,   157,   158,
 
3964
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
3965
       0,     0,   746,     0,     0,   166,   167,     0,   168,   565,
 
3966
     169,   170,   171,   566,   747,   567,   748,   749,     0,   175,
 
3967
     176,   177,   178,   750,   751,   179,   752,   753,   182,     0,
 
3968
     183,   184,   185,   186,   754,     0,     0,   188,   189,   190,
 
3969
     191,     0,   192,   193,   755,   195,     0,   196,   197,   198,
 
3970
     568,   199,   756,   757,   758,   759,   760,   200,   201,   202,
 
3971
     203,   204,   761,   762,   207,     0,   208,     0,   209,   210,
 
3972
     211,   212,   213,     0,   214,     0,     0,   215,   763,   217,
 
3973
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
3974
     225,   764,   227,   228,   765,   766,   230,   231,   767,     0,
 
3975
     233,     0,   234,   569,     0,   570,   235,   236,     0,   237,
 
3976
     768,     0,   239,     0,   240,   241,   242,   571,   243,   244,
 
3977
     245,     0,   246,   247,   248,   249,   250,     0,   572,   251,
 
3978
     252,   253,   254,   255,   769,   770,     0,   771,     0,   259,
 
3979
     573,   574,   260,   575,   261,   262,   263,   264,   265,     0,
 
3980
     772,   576,   267,   577,     0,   268,   269,   270,   773,   774,
 
3981
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
3982
     281,   775,   578,   776,   402,   284,   285,   286,   287,   288,
 
3983
     289,   290,   291,   292,   777,   293,   294,   579,   295,   778,
 
3984
     779,   780,   298,   299,     0,     0,   300,   403,     0,     0,
 
3985
     781,   302,     0,     0,   303,   580,   581,   782,   305,   306,
 
3986
     307,     0,   783,   309,   310,   311,   312,     0,   313,   314,
 
3987
     315,   316,   317,   318,   784,   320,     0,   321,   322,   323,
 
3988
     324,   325,   326,   327,   328,   329,   330,   331,   582,   332,
 
3989
     333,   785,   335,   336,   337,   338,   339,   340,   341,     0,
 
3990
     342,   343,   344,   786,   345,   346,   347,   348,   583,   349,
 
3991
     787,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
3992
     788,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
3993
       0,   789,   790,     0,   369,     0,   370,   791,   372,   792,
 
3994
     793,   374,   375,   376,   377,   378,     0,   794,   379,   380,
 
3995
     381,   382,   795,     0,   383,   384,   385,   386,   796,   388,
 
3996
     584,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
3997
     396,     0,   797,   798,   497,   799,   800,   801,   802,   803,
 
3998
       0,     0,     0,     0,   804,   805,     0,     0,     0,     0,
 
3999
       0,     0,     0,   807,  1628,   156,   157,   158,   159,   160,
 
4000
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
4001
       0,  1934,     0,   166,   167,     0,   168,     0,   169,   170,
 
4002
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
4003
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
4004
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
4005
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
4006
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
4007
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
4008
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
4009
     219,   220,   221,     0,   222,  -836,   223,   224,   225,   226,
 
4010
     227,   228,   229,     0,   230,   231,   232,  -836,   233,     0,
 
4011
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
4012
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
4013
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
4014
     254,   255,   256,   257,  -836,   258,     0,   259,     0,     0,
 
4015
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
4016
     267,     0,  -836,   268,   269,   270,     0,     0,   271,   272,
 
4017
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
4018
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
4019
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
4020
     298,   299,     0,  -836,   300,     0,     0,     0,   301,   302,
 
4021
       0,  -836,   303,     0,     0,   304,   305,   306,   307,     0,
 
4022
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
4023
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
4024
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
4025
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
4026
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
4027
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
4028
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
4029
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
4030
     375,   376,   377,   378,  -836,     0,   379,   380,   381,   382,
 
4031
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
4032
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
4033
     397,     0,   156,   157,   158,   159,   160,   161,   162,   163,
 
4034
       0,   164,   165,     0,     0,     0,     0,     0,     0,     0,
 
4035
     166,   167,   866,   168,   565,   169,   170,   171,   566,  1057,
 
4036
     567,  1058,  1059,     0,   175,   176,   177,   178,     0,     0,
 
4037
     179,  1060,  1061,   182,     0,   183,   184,   185,   186,     0,
 
4038
       0,     0,   188,   189,   190,   191,     0,   192,   193,     0,
 
4039
     195,     0,   196,   197,   198,   568,   199,     0,     0,     0,
 
4040
       0,     0,   200,   201,   202,   203,   204,  1062,  1063,   207,
 
4041
       0,   208,     0,   209,   210,   211,   212,   213,     0,   214,
 
4042
       0,     0,   215,   763,   217,   218,     0,   219,   220,   221,
 
4043
       0,   222,     0,   223,   224,   225,     0,   227,   228,     0,
 
4044
       0,   230,   231,  1064,     0,   233,     0,   234,   569,     0,
 
4045
     570,   235,   236,     0,   237,     0,     0,   239,     0,   240,
 
4046
     241,   242,   571,   243,   244,   245,  1373,   246,   247,   248,
 
4047
     249,   250,     0,   572,  1374,   252,   253,   254,   255,  1065,
 
4048
    1066,     0,  1067,     0,   259,   573,   574,   260,   575,   261,
 
4049
     262,   263,   264,   265,     0,     0,   576,   267,   577,     0,
 
4050
     268,   269,   270,     0,     0,   271,   272,   273,   274,   275,
 
4051
     276,   277,   278,   279,   280,   281,  1068,   578,  1069,     0,
 
4052
     284,   285,   286,   287,   288,   289,   290,     0,   292,     0,
 
4053
     293,   294,   579,   295,     0,     0,  1070,   298,   299,     0,
 
4054
       0,   300,     0,     0,     0,   301,   302,     0,     0,  1375,
 
4055
     580,   581,     0,   305,   306,   307,     0,     0,     0,   310,
 
4056
     311,   312,     0,   313,   314,   315,   316,   317,   318,  1071,
 
4057
     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
 
4058
     329,   330,   331,   582,   332,   333,     0,   335,   336,   337,
 
4059
     338,   339,   340,   341,     0,   342,   343,   344,     0,   345,
 
4060
    1376,   347,   348,   583,   349,  1073,     0,   351,   352,   353,
 
4061
     354,   355,   356,   357,   358,     0,   360,     0,   361,   362,
 
4062
       0,   363,   364,   365,   366,     0,  1074,  1075,     0,   369,
 
4063
       0,   370,     0,   372,     0,     0,   374,   375,   376,   377,
 
4064
     378,     0,     0,   379,   380,   381,   382,     0,     0,   383,
 
4065
     384,   385,   386,  1076,   388,   584,   389,   390,     0,     0,
 
4066
     391,   392,   393,   394,   395,   396,     0,  1377,     0,   156,
 
4067
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
4068
       0,     0,     0,     0,   746,     0,     0,   166,   167,  1378,
 
4069
     168,   565,   169,   170,   171,   566,   747,   567,   748,   749,
 
4070
    1638,   175,   176,   177,   178,   750,   751,   179,   752,   753,
 
4071
     182,     0,   183,   184,   185,   186,   754,     0,     0,   188,
 
4072
     189,   190,   191,     0,   192,   193,   755,   195,     0,   196,
 
4073
     197,   198,   568,   199,   756,   757,   758,   759,   760,   200,
 
4074
     201,   202,   203,   204,   761,   762,   207,     0,   208,     0,
 
4075
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
4076
     763,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
4077
     223,   224,   225,   764,   227,   228,   765,   766,   230,   231,
 
4078
     767,     0,   233,     0,   234,   569,  1639,   570,   235,   236,
 
4079
       0,   237,   768,     0,   239,     0,   240,   241,   242,   571,
 
4080
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
4081
     572,   251,   252,   253,   254,   255,   769,   770,     0,   771,
 
4082
       0,   259,   573,   574,   260,   575,   261,   262,   263,   264,
 
4083
     265,  1640,   772,   576,   267,   577,     0,   268,   269,   270,
 
4084
     773,   774,   271,   272,   273,   274,   275,   276,   277,   278,
 
4085
     279,   280,   281,   775,   578,   776,   402,   284,   285,   286,
 
4086
     287,   288,   289,   290,   291,   292,   777,   293,   294,   579,
 
4087
     295,   778,   779,   780,   298,   299,     0,     0,   300,   403,
 
4088
       0,     0,   781,   302,     0,     0,   303,   580,   581,   782,
 
4089
     305,   306,   307,     0,   783,   309,   310,   311,   312,     0,
 
4090
     313,   314,   315,   316,   317,   318,   784,   320,     0,   321,
 
4091
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
4092
     582,   332,   333,   785,   335,   336,   337,   338,   339,   340,
 
4093
     341,     0,   342,   343,   344,   786,   345,   346,   347,   348,
 
4094
     583,   349,   787,     0,   351,   352,   353,   354,   355,   356,
 
4095
     357,   358,   788,   360,     0,   361,   362,     0,   363,   364,
 
4096
     365,   366,     0,   789,   790,     0,   369,  1641,   370,   791,
 
4097
     372,   792,   793,   374,   375,   376,   377,   378,     0,   794,
 
4098
     379,   380,   381,   382,   795,     0,   383,   384,   385,   386,
 
4099
     796,   388,   584,   389,   390,     0,     0,   391,   392,   393,
 
4100
     394,   395,   396,     0,   797,   798,   497,   799,   800,   801,
 
4101
     802,   803,     0,     0,     0,     0,   804,   805,     0,     0,
 
4102
       0,     0,     0,     0,     0,   807,   156,   157,   158,   159,
 
4103
     160,   161,   162,   163,     0,   164,   165,     0,     0,     0,
 
4104
       0,   746,     0,     0,   166,   167,     0,   168,   565,   169,
 
4105
     170,   171,   566,   747,   567,   748,   749,     0,   175,   176,
 
4106
     177,   178,   750,   751,   179,   752,   753,   182,     0,   183,
 
4107
     184,   185,   186,   754,     0,     0,   188,   189,   190,   191,
 
4108
       0,   192,   193,   755,   195,     0,   196,   197,   198,   568,
 
4109
     199,   756,   757,   758,   759,   760,   200,   201,   202,   203,
 
4110
     204,   761,   762,   207,     0,   208,     0,   209,   210,   211,
 
4111
     212,   213,     0,   214,     0,     0,   215,   763,   217,   218,
 
4112
       0,   219,   220,   221,     0,   222,     0,   223,   224,   225,
 
4113
     764,   227,   228,   765,   766,   230,   231,   767,     0,   233,
 
4114
       0,   234,   569,     0,   570,   235,   236,     0,   237,   768,
 
4115
       0,   239,     0,   240,   241,   242,   571,   243,   244,   245,
 
4116
       0,   246,   247,   248,   249,   250,     0,   572,   251,   252,
 
4117
     253,   254,   255,   769,   770,     0,   771,     0,   259,   573,
 
4118
     574,   260,   575,   261,   262,   263,   264,   265,     0,   772,
 
4119
     576,   267,   577,     0,   268,   269,   270,   773,   774,   271,
 
4120
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
 
4121
     775,   578,   776,   402,   284,   285,   286,   287,   288,   289,
 
4122
     290,   291,   292,   777,   293,   294,   579,   295,   778,   779,
 
4123
     780,   298,   299,     0,     0,   300,   403,     0,     0,   781,
 
4124
     302,     0,     0,   303,   580,   581,   782,   305,   306,   307,
 
4125
       0,   783,   309,   310,   311,   312,     0,   313,   314,   315,
 
4126
     316,   317,   318,   784,   320,     0,   321,   322,   323,   324,
 
4127
     325,   326,   327,   328,   329,   330,   331,   582,   332,   333,
 
4128
     785,   335,   336,   337,   338,   339,   340,   341,     0,   342,
 
4129
     343,   344,   786,   345,   346,   347,   348,   583,   349,   787,
 
4130
       0,   351,   352,   353,   354,   355,   356,   357,   358,   788,
 
4131
     360,     0,   361,   362,     0,   363,   364,   365,   366,     0,
 
4132
     789,   790,     0,   369,     0,   370,   791,   372,   792,   793,
 
4133
     374,   375,   376,   377,   378,     0,   794,   379,   380,   381,
 
4134
     382,   795,     0,   383,   384,   385,   386,   796,   388,   584,
 
4135
     389,   390,     0,     0,   391,   392,   393,   394,   395,   396,
 
4136
       0,   797,   798,   497,   799,   800,   801,   802,   803,     0,
 
4137
       0,     0,     0,   804,   805,   806,     0,     0,     0,     0,
 
4138
       0,     0,   807,   156,   157,   158,   159,   160,   161,   162,
 
4139
     163,     0,   164,   165,     0,     0,     0,     0,   746,     0,
 
4140
       0,   166,   167,     0,   168,   565,   169,   170,   171,   566,
 
4141
     747,   567,   748,   749,     0,   175,   176,   177,   178,   750,
 
4142
     751,   179,   752,   753,   182,     0,   183,   184,   185,   186,
 
4143
     754,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
4144
     755,   195,     0,   196,   197,   198,   568,   199,   756,   757,
 
4145
     758,   759,   760,   200,   201,   202,   203,   204,   761,   762,
 
4146
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
4147
     214,     0,     0,   215,   763,   217,   218,     0,   219,   220,
 
4148
     221,     0,   222,     0,   223,   224,   225,   764,   227,   228,
 
4149
     765,   766,   230,   231,   767,     0,   233,     0,   234,   569,
 
4150
       0,   570,   235,   236,     0,   237,   768,     0,   239,     0,
 
4151
     240,   241,   242,   571,   243,   244,   245,     0,   246,   247,
 
4152
     248,   249,   250,     0,   572,   251,   252,   253,   254,   255,
 
4153
     769,   770,     0,   771,     0,   259,   573,   574,   260,   575,
 
4154
     261,   262,   263,   264,   265,     0,   772,   576,   267,   577,
 
4155
       0,   268,   269,   270,   773,   774,   271,   272,   273,   274,
 
4156
     275,   276,   277,   278,   279,   280,   281,   775,   578,   776,
 
4157
     402,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
4158
     777,   293,   294,   579,   295,   778,   779,   780,   298,   299,
 
4159
       0,     0,   300,   403,     0,     0,   781,   302,     0,     0,
 
4160
     303,   580,   581,   782,   305,   306,   307,     0,   783,   309,
 
4161
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
4162
     784,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
4163
     328,   329,   330,   331,   582,   332,   333,   785,   335,   336,
 
4164
     337,   338,   339,   340,   341,    35,   342,   343,   344,   786,
 
4165
     345,   346,   347,   348,   583,   349,   787,     0,   351,   352,
 
4166
     353,   354,   355,   356,   357,   358,   788,   360,     0,   361,
 
4167
     362,     0,   363,   364,   365,   366,     0,   789,   790,     0,
 
4168
     369,     0,   370,   791,   372,   792,   793,   374,   375,   376,
 
4169
     377,   378,     0,   794,   379,   380,   381,   382,   795,     0,
 
4170
     383,   384,   385,   386,   796,   388,   584,   389,   390,     0,
 
4171
       0,   391,   392,   393,   394,   395,   396,     0,   797,   798,
 
4172
     497,   799,   800,   801,   802,   803,     0,     0,     0,     0,
 
4173
     804,   805,     0,     0,     0,     0,     0,     0,     0,   807,
 
4174
     156,   157,   158,   159,   160,   161,   162,   163,  1331,   164,
 
4175
     165,     0,     0,     0,     0,   746,     0,     0,   166,   167,
 
4176
       0,   168,   565,   169,   170,   171,   566,   747,   567,   748,
 
4177
     749,     0,   175,   176,   177,   178,   750,   751,   179,   752,
 
4178
     753,   182,     0,   183,   184,   185,   186,   754,     0,     0,
 
4179
     188,   189,   190,   191,     0,   192,   193,   755,   195,     0,
 
4180
     196,   197,   198,   568,   199,   756,   757,   758,   759,   760,
 
4181
     200,   201,   202,   203,   204,   761,   762,   207,     0,   208,
 
4182
       0,   209,   210,   211,   212,   213,     0,   214,     0,     0,
 
4183
     215,   763,   217,   218,     0,   219,   220,   221,     0,   222,
 
4184
       0,   223,   224,   225,   764,   227,   228,   765,   766,   230,
 
4185
     231,   767,     0,   233,     0,   234,   569,     0,   570,   235,
 
4186
     236,     0,   237,   768,     0,   239,     0,   240,   241,   242,
 
4187
     571,   243,   244,   245,     0,   246,   247,   248,   249,   250,
 
4188
       0,   572,   251,   252,   253,   254,   255,   769,   770,     0,
 
4189
     771,     0,   259,   573,   574,   260,   575,   261,   262,   263,
 
4190
     264,   265,     0,   772,   576,   267,   577,     0,   268,   269,
 
4191
     270,   773,   774,   271,   272,   273,   274,   275,   276,   277,
 
4192
     278,   279,   280,   281,   775,   578,   776,   402,   284,   285,
 
4193
     286,   287,   288,   289,   290,   291,   292,   777,   293,   294,
 
4194
     579,   295,   778,   779,   780,   298,   299,     0,     0,   300,
 
4195
     403,     0,     0,   781,   302,     0,     0,   303,   580,   581,
 
4196
     782,   305,   306,   307,     0,   783,   309,   310,   311,   312,
 
4197
       0,   313,   314,   315,   316,   317,   318,   784,   320,     0,
 
4198
     321,   322,   323,   324,   325,   326,   327,   328,   329,   330,
 
4199
     331,   582,   332,   333,   785,   335,   336,   337,   338,   339,
 
4200
     340,   341,     0,   342,   343,   344,   786,   345,   346,   347,
 
4201
     348,   583,   349,   787,     0,   351,   352,   353,   354,   355,
 
4202
     356,   357,   358,   788,   360,     0,   361,   362,     0,   363,
 
4203
     364,   365,   366,     0,   789,   790,     0,   369,     0,   370,
 
4204
     791,   372,   792,   793,   374,   375,   376,   377,   378,     0,
 
4205
     794,   379,   380,   381,   382,   795,     0,   383,   384,   385,
 
4206
     386,   796,   388,   584,   389,   390,     0,     0,   391,   392,
 
4207
     393,   394,   395,   396,     0,   797,   798,   497,   799,   800,
 
4208
     801,   802,   803,     0,     0,     0,     0,   804,   805,     0,
 
4209
       0,     0,     0,     0,     0,     0,   807,   156,   157,   158,
 
4210
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
4211
       0,     0,   746,     0,     0,   166,   167,     0,   168,   565,
 
4212
     169,   170,   171,   566,   747,   567,   748,   749,     0,   175,
 
4213
     176,   177,   178,   750,   751,   179,   752,   753,   182,     0,
 
4214
     183,   184,   185,   186,   754,     0,     0,   188,   189,   190,
 
4215
     191,     0,   192,   193,   755,   195,     0,   196,   197,   198,
 
4216
     568,   199,   756,   757,   758,   759,   760,   200,   201,   202,
 
4217
     203,   204,   761,   762,   207,     0,   208,     0,   209,   210,
 
4218
     211,   212,   213,     0,   214,     0,     0,   215,   763,   217,
 
4219
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
4220
     225,   764,   227,   228,   765,   766,   230,   231,   767,     0,
 
4221
     233,     0,   234,   569,     0,   570,   235,   236,     0,   237,
 
4222
     768,     0,   239,     0,   240,   241,   242,   571,   243,   244,
 
4223
     245,     0,   246,   247,   248,   249,   250,     0,   572,   251,
 
4224
     252,   253,   254,   255,   769,   770,     0,   771,     0,   259,
 
4225
     573,   574,   260,   575,   261,   262,   263,   264,   265,     0,
 
4226
     772,   576,   267,   577,     0,   268,   269,   270,   773,   774,
 
4227
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
4228
     281,   775,   578,   776,   402,   284,   285,   286,   287,   288,
 
4229
     289,   290,   291,   292,   777,   293,   294,   579,   295,   778,
 
4230
     779,   780,   298,   299,     0,     0,   300,   403,     0,     0,
 
4231
     781,   302,     0,     0,   303,   580,   581,   782,   305,   306,
 
4232
     307,     0,   783,   309,   310,   311,   312,     0,   313,   314,
 
4233
     315,   316,   317,   318,   784,   320,     0,   321,   322,   323,
 
4234
     324,   325,   326,   327,   328,   329,   330,   331,   582,   332,
 
4235
     333,   785,   335,   336,   337,   338,   339,   340,   341,     0,
 
4236
     342,   343,   344,   786,   345,   346,   347,   348,   583,   349,
 
4237
     787,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
4238
     788,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
4239
       0,   789,   790,     0,   369,     0,   370,   791,   372,   792,
 
4240
     793,   374,   375,   376,   377,   378,     0,   794,   379,   380,
 
4241
     381,   382,   795,     0,   383,   384,   385,   386,   796,   388,
 
4242
     584,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
4243
     396,     0,   797,   798,   497,   799,   800,   801,   802,   803,
 
4244
       0,     0,     0,     0,   804,   805,     0,     0,     0,     0,
 
4245
       0,  1187,     0,   807,   156,   157,   158,   159,   160,   161,
 
4246
     162,   163,     0,   164,   165,     0,     0,     0,     0,   746,
 
4247
       0,     0,   166,   167,     0,   168,   565,   169,   170,   171,
 
4248
     566,   747,   567,   748,   749,     0,   175,   176,   177,   178,
 
4249
     750,   751,   179,   752,   753,   182,     0,   183,   184,   185,
 
4250
     186,   754,     0,     0,   188,   189,   190,   191,     0,   192,
 
4251
     193,   755,   195,     0,   196,   197,   198,   568,   199,   756,
 
4252
     757,   758,   759,   760,   200,   201,   202,   203,   204,   761,
 
4253
     762,   207,  1969,   208,     0,   209,   210,   211,   212,   213,
 
4254
       0,   214,     0,     0,   215,   763,   217,   218,     0,   219,
 
4255
     220,   221,     0,   222,     0,   223,   224,   225,   764,   227,
 
4256
     228,   765,   766,   230,   231,   767,     0,   233,     0,   234,
 
4257
     569,     0,   570,   235,   236,     0,   237,   768,     0,   239,
 
4258
       0,   240,   241,   242,   571,   243,   244,   245,     0,   246,
 
4259
     247,   248,   249,   250,     0,   572,   251,   252,   253,   254,
 
4260
     255,   769,   770,     0,   771,     0,   259,   573,   574,   260,
 
4261
     575,   261,   262,   263,   264,   265,     0,   772,   576,   267,
 
4262
     577,     0,   268,   269,   270,   773,   774,   271,   272,   273,
 
4263
     274,   275,   276,   277,   278,   279,   280,   281,   775,   578,
 
4264
     776,   402,   284,   285,   286,   287,   288,   289,   290,   291,
 
4265
     292,   777,   293,   294,   579,   295,   778,   779,   780,   298,
 
4266
     299,     0,     0,   300,   403,     0,     0,   781,   302,     0,
 
4267
       0,   303,   580,   581,   782,   305,   306,   307,     0,   783,
 
4268
     309,   310,   311,   312,     0,   313,   314,   315,   316,   317,
 
4269
     318,   784,   320,     0,   321,   322,   323,   324,   325,   326,
 
4270
     327,   328,   329,   330,   331,   582,   332,   333,   785,   335,
 
4271
     336,   337,   338,   339,   340,   341,     0,   342,   343,   344,
 
4272
     786,   345,   346,   347,   348,   583,   349,   787,     0,   351,
 
4273
     352,   353,   354,   355,   356,   357,   358,   788,   360,     0,
 
4274
     361,   362,     0,   363,   364,   365,   366,     0,   789,   790,
 
4275
       0,   369,     0,   370,   791,   372,   792,   793,   374,   375,
 
4276
     376,   377,   378,     0,   794,   379,   380,   381,   382,   795,
 
4277
       0,   383,   384,   385,   386,   796,   388,   584,   389,   390,
 
4278
       0,     0,   391,   392,   393,   394,   395,   396,     0,   797,
 
4279
     798,   497,   799,   800,   801,   802,   803,     0,     0,     0,
 
4280
       0,   804,   805,     0,     0,     0,     0,     0,     0,     0,
 
4281
     807,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
4282
     164,   165,     0,     0,     0,     0,   746,     0,     0,   166,
 
4283
     167,     0,   168,   565,   169,   170,   171,   566,   747,   567,
 
4284
     748,   749,     0,   175,   176,   177,   178,   750,   751,   179,
 
4285
     752,   753,   182,     0,   183,   184,   185,   186,   754,     0,
 
4286
       0,   188,   189,   190,   191,     0,   192,   193,   755,   195,
 
4287
       0,   196,   197,   198,   568,   199,   756,   757,   758,   759,
 
4288
     760,   200,   201,   202,   203,   204,   761,   762,   207,     0,
 
4289
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
4290
       0,   215,   763,   217,   218,     0,   219,   220,   221,     0,
 
4291
     222,     0,   223,   224,   225,   764,   227,   228,   765,   766,
 
4292
     230,   231,   767,     0,   233,     0,   234,   569,  1639,   570,
 
4293
     235,   236,     0,   237,   768,     0,   239,     0,   240,   241,
 
4294
     242,   571,   243,   244,   245,     0,   246,   247,   248,   249,
 
4295
     250,     0,   572,   251,   252,   253,   254,   255,   769,   770,
 
4296
       0,   771,     0,   259,   573,   574,   260,   575,   261,   262,
 
4297
     263,   264,   265,     0,   772,   576,   267,   577,     0,   268,
 
4298
     269,   270,   773,   774,   271,   272,   273,   274,   275,   276,
 
4299
     277,   278,   279,   280,   281,   775,   578,   776,   402,   284,
 
4300
     285,   286,   287,   288,   289,   290,   291,   292,   777,   293,
 
4301
     294,   579,   295,   778,   779,   780,   298,   299,     0,     0,
 
4302
     300,   403,     0,     0,   781,   302,     0,     0,   303,   580,
 
4303
     581,   782,   305,   306,   307,     0,   783,   309,   310,   311,
 
4304
     312,     0,   313,   314,   315,   316,   317,   318,   784,   320,
 
4305
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
4306
     330,   331,   582,   332,   333,   785,   335,   336,   337,   338,
 
4307
     339,   340,   341,     0,   342,   343,   344,   786,   345,   346,
 
4308
     347,   348,   583,   349,   787,     0,   351,   352,   353,   354,
 
4309
     355,   356,   357,   358,   788,   360,     0,   361,   362,     0,
 
4310
     363,   364,   365,   366,     0,   789,   790,     0,   369,     0,
 
4311
     370,   791,   372,   792,   793,   374,   375,   376,   377,   378,
 
4312
       0,   794,   379,   380,   381,   382,   795,     0,   383,   384,
 
4313
     385,   386,   796,   388,   584,   389,   390,     0,     0,   391,
 
4314
     392,   393,   394,   395,   396,     0,   797,   798,   497,   799,
 
4315
     800,   801,   802,   803,     0,     0,     0,     0,   804,   805,
 
4316
       0,     0,     0,     0,     0,     0,     0,   807,   156,   157,
 
4317
     158,   159,   160,   161,   162,   163,     0,   164,   165,     0,
 
4318
       0,     0,     0,   746,     0,     0,   166,   167,     0,   168,
 
4319
     565,   169,   170,   171,   566,   747,   567,   748,   749,     0,
 
4320
     175,   176,   177,   178,   750,   751,   179,   752,   753,   182,
 
4321
       0,   183,   184,   185,   186,   754,     0,     0,   188,   189,
 
4322
     190,   191,     0,   192,   193,   755,   195,     0,   196,   197,
 
4323
     198,   568,   199,   756,   757,   758,   759,   760,   200,   201,
 
4324
     202,   203,   204,   761,   762,   207,  2367,   208,     0,   209,
 
4325
     210,   211,   212,   213,     0,   214,     0,     0,   215,   763,
 
4326
     217,   218,     0,   219,   220,   221,     0,   222,     0,   223,
 
4327
     224,   225,   764,   227,   228,   765,   766,   230,   231,   767,
 
4328
       0,   233,     0,   234,   569,     0,   570,   235,   236,     0,
 
4329
     237,   768,     0,   239,     0,   240,   241,   242,   571,   243,
 
4330
     244,   245,     0,   246,   247,   248,   249,   250,     0,   572,
 
4331
     251,   252,   253,   254,   255,   769,   770,     0,   771,     0,
 
4332
     259,   573,   574,   260,   575,   261,   262,   263,   264,   265,
 
4333
       0,   772,   576,   267,   577,     0,   268,   269,   270,   773,
 
4334
     774,   271,   272,   273,   274,   275,   276,   277,   278,   279,
 
4335
     280,   281,   775,   578,   776,   402,   284,   285,   286,   287,
 
4336
     288,   289,   290,   291,   292,   777,   293,   294,   579,   295,
 
4337
     778,   779,   780,   298,   299,     0,     0,   300,   403,     0,
 
4338
       0,   781,   302,     0,     0,   303,   580,   581,   782,   305,
 
4339
     306,   307,     0,   783,   309,   310,   311,   312,     0,   313,
 
4340
     314,   315,   316,   317,   318,   784,   320,     0,   321,   322,
 
4341
     323,   324,   325,   326,   327,   328,   329,   330,   331,   582,
 
4342
     332,   333,   785,   335,   336,   337,   338,   339,   340,   341,
 
4343
       0,   342,   343,   344,   786,   345,   346,   347,   348,   583,
 
4344
     349,   787,     0,   351,   352,   353,   354,   355,   356,   357,
 
4345
     358,   788,   360,     0,   361,   362,     0,   363,   364,   365,
 
4346
     366,     0,   789,   790,     0,   369,     0,   370,   791,   372,
 
4347
     792,   793,   374,   375,   376,   377,   378,     0,   794,   379,
 
4348
     380,   381,   382,   795,     0,   383,   384,   385,   386,   796,
 
4349
     388,   584,   389,   390,     0,     0,   391,   392,   393,   394,
 
4350
     395,   396,     0,   797,   798,   497,   799,   800,   801,   802,
 
4351
     803,     0,     0,     0,     0,   804,   805,     0,     0,     0,
 
4352
       0,     0,     0,     0,   807,   156,   157,   158,   159,   160,
 
4353
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
4354
     746,     0,     0,   166,   167,     0,   168,   565,   169,   170,
 
4355
     171,   566,   747,   567,   748,   749,     0,   175,   176,   177,
 
4356
     178,   750,   751,   179,   752,   753,   182,     0,   183,   184,
 
4357
     185,   186,   754,     0,     0,   188,   189,   190,   191,     0,
 
4358
     192,   193,   755,   195,     0,   196,   197,   198,   568,   199,
 
4359
     756,   757,   758,   759,   760,   200,   201,   202,   203,   204,
 
4360
     761,   762,   207,     0,   208,     0,   209,   210,   211,   212,
 
4361
     213,     0,   214,     0,     0,   215,   763,   217,   218,     0,
 
4362
     219,   220,   221,     0,   222,     0,   223,   224,   225,   764,
 
4363
     227,   228,   765,   766,   230,   231,   767,     0,   233,     0,
 
4364
     234,   569,     0,   570,   235,   236,     0,   237,   768,     0,
 
4365
     239,     0,   240,   241,   242,   571,   243,   244,   245,     0,
 
4366
     246,   247,   248,   249,   250,     0,   572,   251,   252,   253,
 
4367
     254,   255,   769,   770,     0,   771,     0,   259,   573,   574,
 
4368
     260,   575,   261,   262,   263,   264,   265,     0,   772,   576,
 
4369
     267,   577,     0,   268,   269,   270,   773,   774,   271,   272,
 
4370
     273,   274,   275,   276,   277,   278,   279,   280,   281,   775,
 
4371
     578,   776,   402,   284,   285,   286,   287,   288,   289,   290,
 
4372
     291,   292,   777,   293,   294,   579,   295,   778,   779,   780,
 
4373
     298,   299,     0,     0,   300,   403,     0,     0,   781,   302,
 
4374
       0,     0,   303,   580,   581,   782,   305,   306,   307,     0,
 
4375
     783,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
4376
     317,   318,   784,   320,     0,   321,   322,   323,   324,   325,
 
4377
     326,   327,   328,   329,   330,   331,   582,   332,   333,   785,
 
4378
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
4379
     344,   786,   345,   346,   347,   348,   583,   349,   787,     0,
 
4380
     351,   352,   353,   354,   355,   356,   357,   358,   788,   360,
 
4381
       0,   361,   362,     0,   363,   364,   365,   366,     0,   789,
 
4382
     790,     0,   369,     0,   370,   791,   372,   792,   793,   374,
 
4383
     375,   376,   377,   378,     0,   794,   379,   380,   381,   382,
 
4384
     795,     0,   383,   384,   385,   386,   796,   388,   584,   389,
 
4385
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
4386
     797,   798,   497,   799,   800,   801,   802,   803,     0,     0,
 
4387
       0,     0,   804,   805,     0,     0,     0,     0,     0,     0,
 
4388
       0,   807,   156,   157,   158,   159,   160,   161,   162,   163,
 
4389
       0,   164,   165,     0,     0,     0,     0,   746,     0,     0,
 
4390
     166,   167,     0,   168,   565,   169,   170,   171,   566,   747,
 
4391
     567,   748,   749,     0,   175,   176,   177,   178,   750,   751,
 
4392
     179,   752,   753,   182,     0,   183,   184,   185,   186,   754,
 
4393
       0,     0,   188,   189,   190,   191,     0,   192,   193,   755,
 
4394
     195,     0,   196,   197,   198,   568,   199,   756,   757,   758,
 
4395
     759,   760,   200,   201,   202,   203,   204,   761,   762,   207,
 
4396
       0,   208,     0,   209,   210,   211,   212,   213,     0,   214,
 
4397
       0,     0,   215,   763,   217,   218,     0,   219,   220,   221,
 
4398
       0,   222,     0,   223,   224,   225,   764,   227,   228,   765,
 
4399
     766,   230,   231,   767,     0,   233,     0,   234,   569,     0,
 
4400
     570,   235,   236,     0,   237,   768,     0,   239,     0,   240,
 
4401
     241,   242,   571,   243,   244,   245,     0,   246,   247,   248,
 
4402
     249,   250,     0,   572,   251,   252,   253,   254,   255,   769,
 
4403
     770,     0,   771,     0,   259,   573,   574,   260,   575,   261,
 
4404
     262,   263,   264,   265,     0,   772,   576,   267,   577,     0,
 
4405
     268,   269,   270,   773,   774,   271,   272,   273,   274,   275,
 
4406
     276,   277,   278,   279,   280,   281,   775,   578,   776,   402,
 
4407
     284,   285,   286,   287,   288,   289,   290,   291,   292,     0,
 
4408
     293,   294,   579,   295,   778,   779,   780,   298,   299,     0,
 
4409
       0,   300,   403,     0,     0,   781,   302,     0,     0,   303,
 
4410
     580,   581,   782,   305,   306,   307,     0,   783,   309,   310,
 
4411
     311,   312,     0,   313,   314,   315,   316,   317,   318,   784,
 
4412
     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
 
4413
     329,   330,   331,   582,   332,   333,   785,   335,   336,   337,
 
4414
     338,   339,   340,   341,     0,   342,   343,   344,   786,   345,
 
4415
     346,   347,   348,   583,   349,   787,     0,   351,   352,   353,
 
4416
     354,   355,   356,   357,   358,   788,   360,     0,   361,   362,
 
4417
       0,   363,   364,   365,   366,     0,   789,   790,     0,   369,
 
4418
       0,   370,   791,   372,   792,   793,   374,   375,   376,   377,
 
4419
     378,     0,     0,   379,   380,   381,   382,   795,     0,   383,
 
4420
     384,   385,   386,   796,   388,   584,   389,   390,     0,     0,
 
4421
     391,   392,   393,   394,   395,   396,     0,   797,   798,   497,
 
4422
     799,   800,   801,   802,   803,     0,     0,     0,     0,  1621,
 
4423
    1622,     0,     0,     0,     0,     0,     0,     0,   807,   156,
 
4424
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
4425
       0,     0,     0,     0,   746,     0,     0,   166,   167,     0,
 
4426
     168,   565,   169,   170,   171,     0,   747,   567,   748,   749,
 
4427
       0,   175,   176,   177,   178,   750,   751,   179,   752,   753,
 
4428
     182,     0,   183,   184,   185,   186,   754,     0,     0,   188,
 
4429
     189,   190,   191,     0,   192,   193,   755,   195,     0,   196,
 
4430
     197,   198,   568,   199,   756,   757,   758,   759,   760,   200,
 
4431
     201,   202,   203,   204,   761,   762,   207,     0,   208,     0,
 
4432
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
4433
     763,   217,   218,     0,   219,   220,   221,     0,     0,     0,
 
4434
     223,   224,   225,   764,   227,   228,   765,   766,   230,   231,
 
4435
     767,     0,   233,     0,   234,   569,     0,   570,   235,   236,
 
4436
       0,   237,   768,     0,   239,     0,   240,   241,   242,     0,
 
4437
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
4438
     572,   251,   252,   253,   254,   255,   769,   770,     0,   771,
 
4439
       0,   259,   573,   574,   260,   575,   261,   262,   263,   264,
 
4440
     265,     0,   772,   576,   267,     0,     0,   268,   269,   270,
 
4441
     773,   774,   271,   272,   273,   274,   275,   276,   277,   278,
 
4442
     279,   280,   281,   775,   578,   776,   402,   284,   285,   286,
 
4443
     287,   288,   289,   290,   291,   292,     0,   293,   294,   579,
 
4444
     295,   778,   779,   780,   298,   299,     0,     0,   300,   403,
 
4445
       0,     0,   781,   302,     0,     0,   303,   580,   581,   782,
 
4446
     305,   306,   307,     0,   783,   309,   310,   311,   312,     0,
 
4447
     313,   314,   315,   316,   317,   318,   784,   320,     0,   321,
 
4448
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
4449
     582,   332,   333,   785,   335,   336,   337,   338,   339,   340,
 
4450
     341,     0,   342,   343,   344,   786,   345,   346,   347,   348,
 
4451
       0,   349,   787,     0,   351,   352,   353,   354,   355,   356,
 
4452
     357,   358,   788,   360,     0,   361,   362,     0,   363,   364,
 
4453
     365,   366,     0,   789,   790,     0,   369,     0,   370,   791,
 
4454
     372,   792,   793,   374,   375,   376,   377,   378,     0,   794,
 
4455
     379,   380,   381,   382,   795,     0,   383,   384,   385,   386,
 
4456
     796,   388,   584,   389,   390,     0,     0,   391,   392,   393,
 
4457
     394,   395,   396,     0,   797,   798,   497,   799,   800,   801,
 
4458
     802,   803,     0,     0,     0,     0,   804,   805,     0,     0,
 
4459
       0,     0,     0,     0,     0,   807,   156,   157,   158,   159,
 
4460
     160,   161,   162,   163,     0,   164,   165,     0,     0,     0,
 
4461
       0,   746,     0,     0,   166,   167,     0,   168,   565,   169,
 
4462
     170,   171,     0,   747,   567,   748,   749,     0,   175,   176,
 
4463
     177,   178,   750,   751,   179,   752,   753,   182,     0,   183,
 
4464
     184,   185,   186,   754,     0,     0,   188,   189,   190,   191,
 
4465
       0,   192,   193,   755,   195,     0,   196,   197,   198,   568,
 
4466
     199,   756,   757,   758,   759,   760,   200,   201,   202,   203,
 
4467
     204,   761,   762,   207,     0,   208,     0,   209,   210,   211,
 
4468
     212,   213,     0,   214,     0,     0,   215,   763,   217,   218,
 
4469
       0,   219,   220,   221,     0,     0,     0,   223,   224,   225,
 
4470
     764,   227,   228,   765,   766,   230,   231,   767,     0,   233,
 
4471
       0,   234,   569,     0,   570,   235,   236,     0,   237,   768,
 
4472
       0,   239,     0,   240,   241,   242,     0,   243,   244,   245,
 
4473
       0,   246,   247,   248,   249,   250,     0,   572,   251,   252,
 
4474
     253,   254,   255,   769,   770,     0,   771,     0,   259,   573,
 
4475
     574,   260,   575,   261,   262,   263,   264,   265,     0,   772,
 
4476
     576,   267,     0,     0,   268,   269,   270,   773,   774,   271,
 
4477
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
 
4478
     775,   578,   776,   402,   284,   285,   286,   287,   288,   289,
 
4479
     290,   291,   292,     0,   293,   294,   579,   295,   778,   779,
 
4480
     780,   298,   299,     0,     0,   300,   403,     0,     0,   781,
 
4481
     302,     0,     0,   303,   580,   581,   782,   305,   306,   307,
 
4482
       0,   783,   309,   310,   311,   312,     0,   313,   314,   315,
 
4483
     316,   317,   318,   784,   320,     0,   321,   322,   323,   324,
 
4484
     325,   326,   327,   328,   329,   330,   331,   582,   332,   333,
 
4485
     785,   335,   336,   337,   338,   339,   340,   341,     0,   342,
 
4486
     343,   344,   786,   345,   346,   347,   348,     0,   349,   787,
 
4487
       0,   351,   352,   353,   354,   355,   356,   357,   358,   788,
 
4488
     360,     0,   361,   362,     0,   363,   364,   365,   366,     0,
 
4489
     789,   790,     0,   369,     0,   370,   791,   372,   792,   793,
 
4490
     374,   375,   376,   377,   378,     0,     0,   379,   380,   381,
 
4491
     382,   795,     0,   383,   384,   385,   386,   796,   388,   584,
 
4492
     389,   390,     0,     0,   391,   392,   393,   394,   395,   396,
 
4493
       0,   797,   798,   497,   799,   800,   801,   802,   803,     0,
 
4494
       0,     0,     0,  1621,  1622,     0,     0,     0,     0,     0,
 
4495
       0,     0,   807,   156,   157,   158,   159,   160,   161,   162,
 
4496
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
4497
       0,   166,   167,     0,   168,   565,   169,   170,   171,   566,
 
4498
     172,   567,   173,   174,     0,   175,   176,   177,   178,     0,
 
4499
     751,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
4500
     754,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
4501
     755,   195,     0,   196,   197,   198,   568,   199,   756,   757,
 
4502
     758,   759,   760,   200,   201,   202,   203,   204,   205,   206,
 
4503
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
4504
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
4505
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
4506
     765,     0,   230,   231,   232,     0,   233,     0,   234,   569,
 
4507
       0,   570,   235,   236,     0,   237,   768,     0,   239,     0,
 
4508
     240,   241,   242,   571,   243,   244,   245,     0,   246,   247,
 
4509
     248,   249,   250,     0,   572,   251,   252,   253,   254,   255,
 
4510
     256,   257,     0,   258,     0,   259,   573,   574,   260,   575,
 
4511
     261,   262,   263,   264,   265,     0,   772,   576,   267,   577,
 
4512
       0,   268,   269,   270,   773,   774,   271,   272,   273,   274,
 
4513
     275,   276,   277,   278,   279,   280,   281,   282,   578,   283,
 
4514
     402,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
4515
       0,   293,   294,   579,   295,     0,   779,   297,   298,   299,
 
4516
       0,     0,   300,   403,     0,   548,   301,   302,     0,     0,
 
4517
     303,   580,   581,   782,   305,   306,   307,     0,   783,   309,
 
4518
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
4519
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
4520
     328,   329,   330,   331,   582,   332,   333,   334,   335,   336,
 
4521
     337,   338,   339,   340,   341,    35,   342,   343,   344,   786,
 
4522
     345,   346,   347,   348,   583,   349,   350,     0,   351,   352,
 
4523
     353,   354,   355,   356,   357,   358,   788,   360,     0,   361,
 
4524
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
4525
     369,     0,   370,   791,   372,   792,     0,   374,   375,   376,
 
4526
     377,   378,     0,     0,   379,   380,   381,   382,   795,     0,
 
4527
     383,   384,   385,   386,   387,   388,   584,   389,   390,     0,
 
4528
       0,   391,   392,   393,   394,   395,   396,     0,   585,   156,
 
4529
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
4530
       0,     0,     0,     0,     0,     0,     0,   166,   167,  1522,
 
4531
     168,   565,   169,   170,   171,   566,   172,   567,   173,   174,
 
4532
       0,   175,   176,   177,   178,     0,   751,   179,   180,   181,
 
4533
     182,     0,   183,   184,   185,   186,   754,     0,     0,   188,
 
4534
     189,   190,   191,     0,   192,   193,   755,   195,     0,   196,
 
4535
     197,   198,   568,   199,   756,   757,   758,   759,   760,   200,
 
4536
     201,   202,   203,   204,   205,   206,   207,     0,   208,     0,
 
4537
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
4538
     216,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
4539
     223,   224,   225,   226,   227,   228,   765,     0,   230,   231,
 
4540
     232,     0,   233,     0,   234,   569,     0,   570,   235,   236,
 
4541
       0,   237,   768,     0,   239,     0,   240,   241,   242,   571,
 
4542
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
4543
     572,   251,   252,   253,   254,   255,   256,   257,     0,   258,
 
4544
       0,   259,   573,   574,   260,   575,   261,   262,   263,   264,
 
4545
     265,     0,   772,   576,   267,   577,     0,   268,   269,   270,
 
4546
     773,   774,   271,   272,   273,   274,   275,   276,   277,   278,
 
4547
     279,   280,   281,   282,   578,   283,   402,   284,   285,   286,
 
4548
     287,   288,   289,   290,   291,   292,     0,   293,   294,   579,
 
4549
     295,     0,   779,   297,   298,   299,     0,     0,   300,   403,
 
4550
       0,   548,   301,   302,     0,     0,   303,   580,   581,   782,
 
4551
     305,   306,   307,     0,   783,   309,   310,   311,   312,     0,
 
4552
     313,   314,   315,   316,   317,   318,   319,   320,     0,   321,
 
4553
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
4554
     582,   332,   333,   334,   335,   336,   337,   338,   339,   340,
 
4555
     341,     0,   342,   343,   344,   786,   345,   346,   347,   348,
 
4556
     583,   349,   350,     0,   351,   352,   353,   354,   355,   356,
 
4557
     357,   358,   788,   360,     0,   361,   362,     0,   363,   364,
 
4558
     365,   366,     0,   367,   368,     0,   369,     0,   370,   791,
 
4559
     372,   792,     0,   374,   375,   376,   377,   378,     0,     0,
 
4560
     379,   380,   381,   382,   795,     0,   383,   384,   385,   386,
 
4561
     387,   388,   584,   389,   390,     0,     0,   391,   392,   393,
 
4562
     394,   395,   396,     0,   585,   156,   157,   158,   159,   160,
 
4563
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
4564
       0,     0,     0,   166,   167,  1522,   168,   565,   169,   170,
 
4565
     171,   566,   172,   567,   173,   174,     0,   175,   176,   177,
 
4566
     178,     0,   751,   179,   180,   181,   182,     0,   183,   184,
 
4567
     185,   186,   754,     0,     0,   188,   189,   190,   191,     0,
 
4568
     192,   193,   755,   195,     0,   196,   197,   198,   568,   199,
 
4569
     756,   757,   758,   759,   760,   200,   201,   202,   203,   204,
 
4570
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
4571
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
4572
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
4573
     227,   228,   765,     0,   230,   231,   232,     0,   233,     0,
 
4574
     234,   569,     0,   570,   235,   236,     0,   237,   768,     0,
 
4575
     239,     0,   240,   241,   242,   571,   243,   244,   245,     0,
 
4576
     246,   247,   248,   249,   250,     0,   572,   251,   252,   253,
 
4577
     254,   255,   256,   257,     0,   258,     0,   259,   573,   574,
 
4578
     260,   575,   261,   262,   263,   264,   265,     0,   772,   576,
 
4579
     267,   577,     0,   268,   269,   270,   773,   774,   271,   272,
 
4580
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
4581
     578,   283,   402,   284,   285,   286,   287,   288,   289,   290,
 
4582
     291,   292,     0,   293,   294,   579,   295,     0,   779,   297,
 
4583
     298,   299,     0,     0,   300,   403,     0,     0,   301,   302,
 
4584
       0,     0,   303,   580,   581,   782,   305,   306,   307,     0,
 
4585
     783,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
4586
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
4587
     326,   327,   328,   329,   330,   331,   582,   332,   333,   334,
 
4588
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
4589
     344,   786,   345,   346,   347,   348,   583,   349,   350,     0,
 
4590
     351,   352,   353,   354,   355,   356,   357,   358,   788,   360,
 
4591
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
4592
     368,     0,   369,     0,   370,   791,   372,   792,     0,   374,
 
4593
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
4594
     795,     0,   383,   384,   385,   386,   387,   388,   584,   389,
 
4595
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
4596
     585,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
4597
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
4598
     167,  2592,   168,     0,   169,   170,   171,     0,   172,     0,
 
4599
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
4600
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
4601
       0,   188,   189,   190,   191,     0,   192,   193,   194,   195,
 
4602
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
4603
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
4604
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
4605
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
4606
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
4607
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
4608
     235,   236,     0,   237,   238,     0,   239,     0,   240,   241,
 
4609
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
4610
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
4611
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
4612
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
4613
     269,   270,     0,     0,   271,   272,   273,   274,   275,   276,
 
4614
     277,   278,   279,   280,   281,   282,     0,   283,   402,   284,
 
4615
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
4616
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
4617
     300,   403,     0,     0,   301,   302,     0,     0,   303,     0,
 
4618
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
4619
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
4620
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
4621
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
 
4622
     339,   340,   341,     0,   342,   343,   344,     0,   345,   346,
 
4623
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
4624
     355,   356,   357,   358,   359,   360,     0,   361,   362,     0,
 
4625
     363,   364,   365,   366,     0,   367,   368,     0,   369,     0,
 
4626
     370,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
4627
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
4628
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
4629
     392,   393,   394,   395,   396,     0,   397,   156,   157,   158,
 
4630
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
4631
       0,     0,     0,     0,     0,   166,   167,   860,   168,     0,
 
4632
     169,   170,   171,     0,   172,     0,   173,   174,     0,   175,
 
4633
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
4634
     183,   184,   185,   186,   187,     0,     0,   188,   189,   190,
 
4635
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
4636
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
4637
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
4638
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
4639
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
4640
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
4641
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
4642
     238,     0,   239,     0,   240,   241,   242,     0,   243,   244,
 
4643
     245,     0,   246,   247,   248,   249,   250,     0,     0,   251,
 
4644
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
4645
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
4646
     266,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
4647
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
4648
     281,   282,     0,   283,     0,   284,   285,   286,   287,   288,
 
4649
     289,   290,   291,   292,     0,   293,   294,     0,   295,     0,
 
4650
     296,   297,   298,   299,     0,     0,   300,     0,     0,     0,
 
4651
     301,   302,     0,     0,   303,     0,     0,   304,   305,   306,
 
4652
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
4653
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
4654
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
 
4655
     333,   334,   335,   336,   337,   338,   339,   340,   341,    35,
 
4656
     342,   343,   344,     0,   345,   346,   347,   348,     0,   349,
 
4657
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
4658
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
4659
       0,   367,   368,     0,   369,     0,   370,   371,   372,   373,
 
4660
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
4661
     381,   382,     0,     0,   383,   384,   385,   386,   387,   388,
 
4662
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
4663
     396,     0,   397,   156,   157,   158,   159,   160,   161,   162,
 
4664
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
4665
       0,   166,   167,    43,   168,     0,   169,   170,   171,     0,
 
4666
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
4667
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
4668
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
4669
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
4670
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
4671
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
4672
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
4673
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
4674
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
4675
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
4676
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
4677
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
4678
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
4679
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
4680
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
4681
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
4682
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
4683
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
4684
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
4685
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
4686
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
4687
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
4688
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
4689
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
4690
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
4691
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
4692
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
4693
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
4694
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
4695
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
4696
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
4697
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
4698
       0,     0,     0,     0,     0,     0,     0,   166,   167,  2271,
 
4699
     168,     0,   169,   170,   171,     0,   172,     0,   173,   174,
 
4700
       0,   175,   176,   177,   178,     0,     0,   179,   180,   181,
 
4701
     182,     0,   183,   602,   185,   186,   187,     0,     0,   188,
 
4702
     189,   190,   191,     0,   192,   193,   194,   195,     0,   196,
 
4703
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
4704
     201,   202,   203,   204,   205,   206,   207,     0,   208,     0,
 
4705
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
4706
     216,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
4707
     223,   224,   225,   226,   227,   228,   229,     0,   230,   231,
 
4708
     232,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
4709
       0,   237,   238,     0,   239,     0,   240,   241,   242,     0,
 
4710
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
4711
       0,   251,   252,   253,   254,   255,   256,   257,     0,   258,
 
4712
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
4713
     265,     0,   266,     0,   267,     0,     0,   268,   269,   270,
 
4714
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
4715
     279,   280,   281,   282,     0,   283,     0,   284,   285,   286,
 
4716
     287,   288,   289,   290,   291,   292,     0,   293,   294,     0,
 
4717
     295,     0,   296,   297,   298,   299,     0,     0,   300,     0,
 
4718
       0,     0,   301,   302,     0,     0,   303,     0,     0,   304,
 
4719
     305,   306,   307,     0,   308,   309,   310,   311,   312,     0,
 
4720
     313,   314,   315,   316,   317,   318,   319,   320,     0,   321,
 
4721
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
4722
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
 
4723
     341,     0,   342,   343,   344,     0,   345,   346,   347,   348,
 
4724
       0,   349,   350,     0,   351,   352,   353,   354,   355,   356,
 
4725
     357,   358,   359,   360,     0,   361,   362,     0,   363,   364,
 
4726
     365,   366,     0,   367,   368,     0,   369,     0,   370,   371,
 
4727
     372,   373,     0,   374,   375,   376,   377,   378,     0,     0,
 
4728
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
4729
     387,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
4730
     394,   395,   396,     0,   397,     0,     0,     0,     0,   603,
 
4731
       0,     0,   604,   605,   606,     0,   607,   608,   609,   610,
 
4732
     611,   612,   156,   157,   158,   159,   160,   161,   162,   163,
 
4733
       0,   164,   165,     0,     0,     0,     0,     0,     0,     0,
 
4734
     166,   167,     0,   168,     0,   169,   170,   171,     0,   172,
 
4735
       0,   173,   174,     0,   175,   176,   177,   178,     0,     0,
 
4736
     179,   180,   181,   182,     0,   183,   669,   185,   186,   187,
 
4737
       0,     0,   188,   189,   190,   191,     0,   192,   193,   194,
 
4738
     195,     0,   196,   197,   198,     0,   199,     0,     0,     0,
 
4739
       0,     0,   200,   201,   202,   203,   204,   205,   206,   207,
 
4740
       0,   208,     0,   209,   210,   211,   212,   213,     0,   214,
 
4741
       0,     0,   215,   216,   217,   218,     0,   219,   220,   221,
 
4742
       0,   222,     0,   223,   224,   225,   226,   227,   228,   229,
 
4743
       0,   230,   231,   232,     0,   233,     0,   234,     0,     0,
 
4744
       0,   235,   236,     0,   237,   238,     0,   239,     0,   240,
 
4745
     241,   242,     0,   243,   244,   245,     0,   246,   247,   248,
 
4746
     249,   250,     0,     0,   251,   252,   253,   254,   255,   256,
 
4747
     257,     0,   258,     0,   259,     0,     0,   260,     0,   261,
 
4748
     262,   263,   264,   265,     0,   266,     0,   267,     0,     0,
 
4749
     268,   269,   270,     0,     0,   271,   272,   273,   274,   275,
 
4750
     276,   277,   278,   279,   280,   281,   282,     0,   283,     0,
 
4751
     284,   285,   286,   287,   288,   289,   290,   291,   292,     0,
 
4752
     293,   294,     0,   295,     0,   296,   297,   298,   299,     0,
 
4753
       0,   300,     0,     0,     0,   301,   302,     0,     0,   303,
 
4754
       0,     0,   304,   305,   306,   307,     0,   308,   309,   310,
 
4755
     311,   312,     0,   313,   314,   315,   316,   317,   318,   319,
 
4756
     320,     0,   321,   322,   323,   324,   325,   326,   327,   328,
 
4757
     329,   330,   331,     0,   332,   333,   334,   335,   336,   337,
 
4758
     338,   339,   340,   341,     0,   342,   343,   344,     0,   345,
 
4759
     346,   347,   348,     0,   349,   350,     0,   351,   352,   353,
 
4760
     354,   355,   356,   357,   358,   359,   360,     0,   361,   362,
 
4761
       0,   363,   364,   365,   366,     0,   367,   368,     0,   369,
 
4762
       0,   370,   371,   372,   373,     0,   374,   375,   376,   377,
 
4763
     378,     0,     0,   379,   380,   381,   382,     0,     0,   383,
 
4764
     384,   385,   386,   387,   388,     0,   389,   390,     0,     0,
 
4765
     391,   392,   393,   394,   395,   396,     0,   397,     0,     0,
 
4766
       0,     0,   603,     0,     0,   604,   605,   606,     0,   607,
 
4767
     608,   609,   610,   611,   612,   156,   157,   158,   159,   160,
 
4768
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
4769
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
4770
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
4771
     178,     0,     0,   179,   180,   181,   182,     0,   183,   697,
 
4772
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
4773
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
4774
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
4775
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
4776
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
4777
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
4778
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
4779
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
4780
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
4781
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
4782
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
4783
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
4784
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
4785
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
4786
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
4787
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
4788
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
4789
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
4790
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
4791
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
4792
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
4793
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
4794
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
4795
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
4796
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
4797
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
4798
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
4799
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
4800
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
4801
     397,     0,     0,     0,     0,   603,     0,     0,   604,   605,
 
4802
     606,     0,   607,   608,   609,   610,   611,   612,   156,   157,
 
4803
     158,   159,   160,   161,   162,   163,     0,   164,   165,     0,
 
4804
       0,     0,     0,     0,     0,     0,   166,   167,     0,   168,
 
4805
       0,   169,   170,   171,     0,   172,     0,   173,   174,     0,
 
4806
     175,   176,   177,   178,     0,     0,   179,   180,   181,   182,
 
4807
       0,   183,  1046,   185,   186,   187,     0,     0,   188,   189,
 
4808
     190,   191,     0,   192,   193,   194,   195,     0,   196,   197,
 
4809
     198,     0,   199,     0,     0,     0,     0,     0,   200,   201,
 
4810
     202,   203,   204,   205,   206,   207,     0,   208,     0,   209,
 
4811
     210,   211,   212,   213,     0,   214,     0,     0,   215,   216,
 
4812
     217,   218,     0,   219,   220,   221,     0,   222,     0,   223,
 
4813
     224,   225,   226,   227,   228,   229,     0,   230,   231,   232,
 
4814
       0,   233,     0,   234,     0,     0,     0,   235,   236,     0,
 
4815
     237,   238,     0,   239,     0,   240,   241,   242,     0,   243,
 
4816
     244,   245,     0,   246,   247,   248,   249,   250,     0,     0,
 
4817
     251,   252,   253,   254,   255,   256,   257,     0,   258,     0,
 
4818
     259,     0,     0,   260,     0,   261,   262,   263,   264,   265,
 
4819
       0,   266,     0,   267,     0,     0,   268,   269,   270,     0,
 
4820
       0,   271,   272,   273,   274,   275,   276,   277,   278,   279,
 
4821
     280,   281,   282,     0,   283,     0,   284,   285,   286,   287,
 
4822
     288,   289,   290,   291,   292,     0,   293,   294,     0,   295,
 
4823
       0,   296,   297,   298,   299,     0,     0,   300,     0,     0,
 
4824
       0,   301,   302,     0,     0,   303,     0,     0,   304,   305,
 
4825
     306,   307,     0,   308,   309,   310,   311,   312,     0,   313,
 
4826
     314,   315,   316,   317,   318,   319,   320,     0,   321,   322,
 
4827
     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
 
4828
     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
 
4829
       0,   342,   343,   344,     0,   345,   346,   347,   348,     0,
 
4830
     349,   350,     0,   351,   352,   353,   354,   355,   356,   357,
 
4831
     358,   359,   360,     0,   361,   362,     0,   363,   364,   365,
 
4832
     366,     0,   367,   368,     0,   369,     0,   370,   371,   372,
 
4833
     373,     0,   374,   375,   376,   377,   378,     0,     0,   379,
 
4834
     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
 
4835
     388,     0,   389,   390,     0,     0,   391,   392,   393,   394,
 
4836
     395,   396,     0,   397,     0,     0,     0,     0,   603,     0,
 
4837
       0,   604,   605,   606,     0,   607,   608,   609,   610,   611,
 
4838
     612,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
4839
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
4840
     167,     0,   168,     0,   169,   170,   171,     0,   172,     0,
 
4841
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
4842
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
4843
       0,   188,   189,   190,   191,     0,   192,   193,   194,   195,
 
4844
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
4845
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
4846
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
4847
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
4848
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
4849
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
4850
     235,   236,     0,   237,   238,     0,   239,     0,   240,   241,
 
4851
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
4852
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
4853
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
4854
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
4855
     269,   270,     0,     0,   271,   272,   273,   274,   275,   276,
 
4856
     277,   278,   279,   280,   281,   282,     0,   283,     0,   284,
 
4857
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
4858
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
4859
     300,     0,     0,     0,   301,   302,     0,     0,   303,     0,
 
4860
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
4861
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
4862
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
4863
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
 
4864
     339,   340,   341,     0,   342,   343,   344,     0,   345,   346,
 
4865
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
4866
     355,   356,   357,   358,   359,   360,     0,   361,   362,     0,
 
4867
     363,   364,   365,   366,     0,   367,   368,     0,   369,     0,
 
4868
     370,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
4869
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
4870
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
4871
     392,   393,   394,   395,   396,     0,   397,     0,     0,     0,
 
4872
       0,   603,     0,     0,   604,   605,   606,     0,   607,   608,
 
4873
     609,   610,   611,   612,   156,   157,   158,   159,   160,   161,
 
4874
     162,   163,     0,   164,   165,     0,     0,     0,     0,     0,
 
4875
       0,     0,   166,   167,     0,   168,     0,   169,   170,   171,
 
4876
       0,  1057,     0,  1058,  1059,     0,   175,   176,   177,   178,
 
4877
       0,     0,   179,  1060,  1061,   182,     0,   183,   184,   185,
 
4878
     186,     0,     0,     0,   188,   189,   190,   191,     0,   192,
 
4879
     193,     0,   195,     0,   196,   197,   198,     0,   199,     0,
 
4880
       0,     0,     0,     0,   200,   201,   202,   203,   204,  1062,
 
4881
    1063,   207,     0,   208,     0,   209,   210,   211,   212,   213,
 
4882
       0,   214,     0,     0,   215,   763,   217,   218,     0,   219,
 
4883
     220,   221,     0,   222,     0,   223,   224,   225,     0,   227,
 
4884
     228,     0,     0,   230,   231,  1064,     0,   233,     0,   234,
 
4885
       0,     0,     0,   235,   236,     0,   237,     0,     0,   239,
 
4886
       0,   240,   241,   242,     0,   243,   244,   245,     0,   246,
 
4887
     247,   248,   249,   250,     0,     0,     0,   252,   253,   254,
 
4888
     255,  1065,  1066,     0,  1067,     0,   259,     0,     0,   260,
 
4889
       0,   261,   262,   263,   264,   265,     0,     0,     0,   267,
 
4890
       0,     0,   268,   269,   270,     0,     0,   271,   272,   273,
 
4891
     274,   275,   276,   277,   278,   279,   280,   281,  1068,     0,
 
4892
    1069,     0,   284,   285,   286,   287,   288,   289,   290,     0,
 
4893
     292,     0,   293,   294,     0,   295,     0,     0,  1070,   298,
 
4894
     299,     0,     0,   300,     0,     0,     0,  2180,   302,     0,
 
4895
       0,     0,     0,     0,     0,   305,   306,   307,     0,     0,
 
4896
       0,   310,   311,   312,     0,   313,   314,   315,   316,   317,
 
4897
     318,  1071,   320,     0,   321,   322,   323,   324,   325,   326,
 
4898
     327,   328,   329,   330,   331,     0,   332,   333,     0,   335,
 
4899
     336,   337,   338,   339,   340,   341,     0,   342,   343,   344,
 
4900
       0,   345,  1376,   347,   348,     0,   349,  1073,     0,   351,
 
4901
     352,   353,   354,   355,   356,   357,   358,     0,   360,     0,
 
4902
     361,   362,     0,   363,   364,   365,   366,     0,  1074,  1075,
 
4903
       0,   369,     0,   370,     0,   372,     0,     0,   374,   375,
 
4904
     376,   377,   378,     0,     0,   379,   380,   381,   382,     0,
 
4905
       0,   383,   384,   385,   386,  1076,   388,     0,   389,   390,
 
4906
       0,     0,   391,   392,   393,   394,   395,   396,     0,  1077,
 
4907
    1291,   497,     0,     0,   603,   481,     0,   604,   605,   606,
 
4908
       0,   607,  2181,   609,   610,   611,   612,   156,   157,   158,
 
4909
     159,   160,   161,   162,   163,   958,   164,   165,   959,   960,
 
4910
     961,   962,   963,   964,   965,   166,   167,   966,   168,   565,
 
4911
     169,   170,   171,   566,   172,   567,   173,   174,   967,   175,
 
4912
     176,   177,   178,   968,   969,   179,   180,   181,   182,   970,
 
4913
     183,   184,   185,   186,   187,   971,   972,   188,   189,   190,
 
4914
     191,   973,   192,   193,   194,   195,   974,   196,   197,   198,
 
4915
     568,   199,   975,   976,   977,   978,   979,   200,   201,   202,
 
4916
     203,   204,   205,   206,   207,   980,   208,   981,   209,   210,
 
4917
     211,   212,   213,   982,   214,   983,   984,   215,   216,   217,
 
4918
     218,   985,   219,   220,   221,   986,   222,   987,   223,   224,
 
4919
     225,   226,   227,   228,   229,   988,   230,   231,   232,   989,
 
4920
     233,   990,   234,   569,   991,   570,   235,   236,   992,   237,
 
4921
     238,   993,   239,   994,   240,   241,   242,   571,   243,   244,
 
4922
     245,   995,   246,   247,   248,   249,   250,   996,   572,   251,
 
4923
     252,   253,   254,   255,   256,   257,   997,   258,   998,   259,
 
4924
     573,   574,   260,   575,   261,   262,   263,   264,   265,   999,
 
4925
     266,   576,   267,   577,  1000,   268,   269,   270,  1001,  1002,
 
4926
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
4927
     281,   282,   578,   283,  1003,   284,   285,   286,   287,   288,
 
4928
     289,   290,   291,   292,  1004,   293,   294,   579,   295,  1005,
 
4929
     296,   297,   298,   299,  1006,  1007,   300,  1008,  1009,  1010,
 
4930
     301,   302,  1011,  1012,   303,   580,   581,   304,   305,   306,
 
4931
     307,  1013,   308,   309,   310,   311,   312,  1014,   313,   314,
 
4932
     315,   316,   317,   318,   319,   320,  1015,   321,   322,   323,
 
4933
     324,   325,   326,   327,   328,   329,   330,   331,   582,   332,
 
4934
     333,   334,   335,   336,   337,   338,   339,   340,   341,  1016,
 
4935
     342,   343,   344,  1017,   345,   346,   347,   348,   583,   349,
 
4936
     350,  1018,   351,   352,   353,   354,   355,   356,   357,   358,
 
4937
     359,   360,  1019,   361,   362,  1020,   363,   364,   365,   366,
 
4938
    1021,   367,   368,  1022,   369,  1023,   370,   371,   372,   373,
 
4939
    1024,   374,   375,   376,   377,   378,  1025,  1026,   379,   380,
 
4940
     381,   382,  1027,  1028,   383,   384,   385,   386,   387,   388,
 
4941
     584,   389,   390,  1029,  1030,   391,   392,   393,   394,   395,
 
4942
     396,     0,  1031,   156,   157,   158,   159,   160,   161,   162,
 
4943
     163,     0,   164,   165,     0,     0,  1032,     0,     0,     0,
 
4944
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
4945
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
4946
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
4947
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
4948
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
4949
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
4950
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
4951
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
4952
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
4953
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
4954
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
4955
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
4956
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
4957
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
4958
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
4959
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
4960
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
4961
     402,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
4962
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
4963
       0,     0,   300,   403,     0,     0,   301,   302,     0,     0,
 
4964
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
4965
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
4966
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
4967
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
4968
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
4969
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
4970
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
4971
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
4972
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
4973
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
4974
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
4975
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
4976
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
4977
       0,     0,   546,     0,     0,     0,     0,   166,   167,     0,
 
4978
     168,     0,   169,   170,   171,     0,  1057,     0,  1058,  1059,
 
4979
       0,   175,   176,   177,   178,     0,     0,   179,  1060,  1061,
 
4980
     182,     0,   183,   184,   185,   186,     0,     0,     0,   188,
 
4981
     189,   190,   191,     0,   192,   193,     0,   195,     0,   196,
 
4982
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
4983
     201,   202,   203,   204,  1062,  1063,   207,     0,   208,     0,
 
4984
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
4985
     763,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
4986
     223,   224,   225,     0,   227,   228,     0,     0,   230,   231,
 
4987
    1064,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
4988
       0,   237,     0,     0,   239,     0,   240,   241,   242,     0,
 
4989
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
4990
       0,     0,   252,   253,   254,   255,  1065,  1066,     0,  1067,
 
4991
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
4992
     265,     0,     0,     0,   267,     0,     0,   268,   269,   270,
 
4993
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
4994
     279,   280,   281,  1068,     0,  1069,     0,   284,   285,   286,
 
4995
     287,   288,   289,   290,     0,   292,     0,   293,   294,     0,
 
4996
     295,     0,     0,  1070,   298,   299,     0,     0,   300,     0,
 
4997
       0,     0,   301,   302,     0,     0,     0,     0,     0,     0,
 
4998
     305,   306,   307,     0,     0,     0,   310,   311,   312,     0,
 
4999
     313,   314,   315,   316,   317,   318,  1071,   320,     0,   321,
 
5000
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
5001
       0,   332,   333,     0,   335,   336,   337,   338,   339,   340,
 
5002
     341,     0,   342,   343,   344,     0,   345,  1072,   347,   348,
 
5003
       0,   349,  1073,     0,   351,   352,   353,   354,   355,   356,
 
5004
     357,   358,     0,   360,     0,   361,   362,     0,   363,   364,
 
5005
     365,   366,     0,  1074,  1075,     0,   369,     0,   370,     0,
 
5006
     372,     0,     0,   374,   375,   376,   377,   378,     0,     0,
 
5007
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
5008
    1076,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
5009
     394,   395,   396,     0,  1077,   156,   157,   158,   159,   160,
 
5010
     161,   162,   163,     0,   164,   165,     0,     0,  1340,     0,
 
5011
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
5012
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
5013
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
5014
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
5015
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
5016
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
5017
     205,   206,   207,  1300,   208,     0,   209,   210,   211,   212,
 
5018
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
5019
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
5020
     227,   228,   229,  1301,   230,   231,   232,     0,   233,     0,
 
5021
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
5022
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
5023
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
5024
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
5025
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
5026
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
5027
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
5028
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
5029
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
5030
     298,   299,  1302,     0,   300,     0,  1303,     0,   301,   302,
 
5031
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
5032
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
5033
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
5034
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
5035
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
5036
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
5037
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
5038
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
5039
     368,     0,   369,     0,   370,   371,   372,   373,  1304,   374,
 
5040
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
5041
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
5042
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
5043
     397,  1291,   845,     0,     0,     0,   481,     0,     0,     0,
 
5044
       0,     0,     0,  1292,   156,   157,   158,   159,   160,   161,
 
5045
     162,   163,     0,   164,   165,     0,     0,     0,     0,     0,
 
5046
       0,     0,   166,   167,     0,   168,     0,   169,   170,   171,
 
5047
       0,   172,     0,   173,   174,     0,   175,   176,   177,   178,
 
5048
       0,     0,   179,   180,   181,   182,     0,   183,   184,   185,
 
5049
     186,   187,     0,     0,   188,   189,   190,   191,     0,   192,
 
5050
     193,   194,   195,     0,   196,   197,   198,     0,   199,     0,
 
5051
       0,     0,     0,     0,   200,   201,   202,   203,   204,   205,
 
5052
     206,   207,     0,   208,     0,   209,   210,   211,   212,   213,
 
5053
       0,   214,     0,     0,   215,   216,   217,   218,     0,   219,
 
5054
     220,   221,     0,   222,     0,   223,   224,   225,   226,   227,
 
5055
     228,   229,  1301,   230,   231,   232,     0,   233,     0,   234,
 
5056
       0,     0,     0,   235,   236,     0,   237,   238,     0,   239,
 
5057
       0,   240,   241,   242,     0,   243,   244,   245,     0,   246,
 
5058
     247,   248,   249,   250,     0,     0,   251,   252,   253,   254,
 
5059
     255,   256,   257,     0,   258,     0,   259,     0,     0,   260,
 
5060
       0,   261,   262,   263,   264,   265,     0,   266,     0,   267,
 
5061
       0,     0,   268,   269,   270,     0,     0,   271,   272,   273,
 
5062
     274,   275,   276,   277,   278,   279,   280,   281,   282,     0,
 
5063
     283,     0,   284,   285,   286,   287,   288,   289,   290,   291,
 
5064
     292,     0,   293,   294,     0,   295,     0,   296,   297,   298,
 
5065
     299,  1302,     0,   300,     0,  1303,     0,   301,   302,     0,
 
5066
       0,   303,     0,     0,   304,   305,   306,   307,     0,   308,
 
5067
     309,   310,   311,   312,     0,   313,   314,   315,   316,   317,
 
5068
     318,   319,   320,     0,   321,   322,   323,   324,   325,   326,
 
5069
     327,   328,   329,   330,   331,     0,   332,   333,   334,   335,
 
5070
     336,   337,   338,   339,   340,   341,     0,   342,   343,   344,
 
5071
       0,   345,   346,   347,   348,     0,   349,   350,     0,   351,
 
5072
     352,   353,   354,   355,   356,   357,   358,   359,   360,     0,
 
5073
     361,   362,     0,   363,   364,   365,   366,     0,   367,   368,
 
5074
       0,   369,     0,   370,   371,   372,   373,  1304,   374,   375,
 
5075
     376,   377,   378,     0,     0,   379,   380,   381,   382,     0,
 
5076
       0,   383,   384,   385,   386,   387,   388,     0,   389,   390,
 
5077
       0,     0,   391,   392,   393,   394,   395,   396,     0,   397,
 
5078
    1291,   845,     0,     0,     0,   481,     0,     0,     0,     0,
 
5079
       0,     0,  1292,   156,   472,   158,   159,   160,   161,   162,
 
5080
     163,   473,   164,   165,     0,     0,     0,     0,     0,     0,
 
5081
       0,   166,   167,     0,   168,     0,   474,   170,   171,     0,
 
5082
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
5083
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
5084
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
5085
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
5086
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
5087
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
5088
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
5089
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
5090
     229,     0,   230,   475,   232,     0,   233,     0,   476,     0,
 
5091
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
5092
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
5093
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
5094
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
5095
     261,   262,   263,   264,   477,     0,   266,     0,   267,     0,
 
5096
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
5097
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
5098
       0,   478,   285,   286,   287,   288,   289,   290,   291,   292,
 
5099
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
5100
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
5101
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
5102
     310,   311,   312,     0,   479,   314,   315,   316,   317,   318,
 
5103
     319,   320,     0,   321,   480,   323,   324,   325,   326,   327,
 
5104
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
5105
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
5106
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
5107
     353,   354,   355,   356,   357,   358,   359,   360,  1246,   361,
 
5108
     362,     0,   363,   364,   365,   366,  1248,   367,   368,     0,
 
5109
     369,  1249,   370,   371,   372,   373,     0,   374,   375,   376,
 
5110
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
5111
     383,   384,   385,   386,   387,   388,     0,   389,   390,  1246,
 
5112
       0,   391,   392,   393,   394,   395,   396,  1248,   397,     0,
 
5113
       0,     0,  1249,     0,   481,     0,     0,     0,     0,     0,
 
5114
       0,   482,     0,     0,     0,     0,  1246,     0,     0,     0,
 
5115
       0,     0,     0,     0,  1248,     0,     0,     0,     0,  1249,
 
5116
       0,     0,     0,     0,     0,     0,     0,  1246,     0,     0,
 
5117
       0,     0,     0,     0,     0,  1248,     0,     0,     0,     0,
 
5118
    1249,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5119
       0,     0,     0,     0,  1246,  1250,     0,     0,     0,  1251,
 
5120
       0,     0,  1248,     0,     0,     0,     0,  1249,     0,     0,
 
5121
       0,     0,     0,     0,     0,     0,     0,     0,  1252,  1253,
 
5122
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5123
       0,  1254,     0,     0,     0,  1246,  1250,     0,     0,     0,
 
5124
    1251,     0,     0,  1248,     0,     0,     0,     0,  1249,     0,
 
5125
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1252,
 
5126
    1253,     0,  1255,  1250,     0,  1256,     0,  1251,     0,     0,
 
5127
       0,     0,  1254,     0,     0,     0,     0,     0,  1257,     0,
 
5128
    1258,     0,     0,     0,  1250,     0,  1252,  1253,  1251,     0,
 
5129
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1254,
 
5130
       0,     0,     0,  1255,     0,     0,  1256,  1252,  1253,     0,
 
5131
       0,  1250,     0,     0,     0,  1251,     0,     0,     0,  1257,
 
5132
    1254,  1258,     0,     0,     0,     0,     0,     0,     0,     0,
 
5133
    1255,     0,     0,  1256,  1252,  1253,  1259,     0,     0,     0,
 
5134
       0,     0,     0,     0,     0,     0,  1257,  1254,  1258,     0,
 
5135
       0,  1255,  1250,     0,  1256,     0,  1251,     0,  2298,     0,
 
5136
       0,     0,     0,     0,     0,     0,     0,  1257,     0,  1258,
 
5137
       0,     0,     0,     0,     0,  1252,  1253,  1259,  1255,     0,
 
5138
       0,  1256,     0,     0,     0,     0,     0,     0,  1254,     0,
 
5139
       0,     0,     0,     0,  1257,     0,  1258,     0,     0,     0,
 
5140
       0,     0,     0,     0,  1259,  1260,     0,     0,  1261,  1262,
 
5141
    1263,     0,  1264,  1265,  1266,  1267,  1268,  1269,     0,  1255,
 
5142
       0,     0,  1256,  1270,     0,  1259,     0,     0,     0,     0,
 
5143
       0,     0,     0,     0,     0,  1257,     0,  1258,     0,     0,
 
5144
       0,     0,     0,     0,     0,     0,  1260,     0,     0,  1261,
 
5145
    1262,  1263,  1259,  1264,  1265,  1266,  1267,  1268,  1269,     0,
 
5146
       0,  1246,     0,  2335,  1270,     0,     0,     0,     0,  1248,
 
5147
       0,     0,     0,  1260,  1249,     0,  1261,  1262,  1263,     0,
 
5148
    1264,  1265,  1266,  1267,  1268,  1269,     0,  1246,     0,     0,
 
5149
    2374,  1270,     0,  1259,  1260,  1248,     0,  1261,  1262,  1263,
 
5150
    1249,  1264,  1265,  1266,  1267,  1268,  1269,     0,     0,     0,
 
5151
       0,  2504,  1270,     0,     0,     0,     0,     0,     0,     0,
 
5152
       0,  1260,     0,     0,  1261,  1262,  1263,     0,  1264,  1265,
 
5153
    1266,  1267,  1268,  1269,     0,     0,     0,     0,  2523,  1270,
 
5154
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5155
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5156
       0,     0,  1260,     0,     0,  1261,  1262,  1263,     0,  1264,
 
5157
    1265,  1266,  1267,  1268,  1269,     0,     0,     0,  1250,  2637,
 
5158
    1270,     0,  1251,     0,     0,     0,     0,     0,     0,     0,
 
5159
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5160
       0,  1252,  1253,     0,  1250,     0,     0,     0,  1251,     0,
 
5161
       0,     0,     0,     0,  1254,     0,     0,     0,     0,     0,
 
5162
       0,     0,     0,     0,     0,     0,     0,  1252,  1253,     0,
 
5163
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5164
    1254,     0,     0,     0,     0,  1255,     0,     0,  1256,     0,
 
5165
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5166
       0,  1257,     0,  1258,     0,     0,     0,     0,     0,     0,
 
5167
       0,  1255,     0,     0,  1256,     0,     0,     0,     0,     0,
 
5168
       0,     0,     0,     0,     0,     0,     0,  1257,     0,  1258,
 
5169
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5170
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5171
       0,     0,     0,     0,     0,     0,     0,     0,     0,  1259,
 
5172
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5173
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5174
       0,     0,     0,     0,     0,  1259,     0,     0,     0,     0,
 
5175
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5176
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5177
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
5178
       0,     0,     0,     0,     0,     0,     0,     0,  1260,     0,
 
5179
       0,  1261,  1262,  1263,     0,  1264,  1265,  1266,  1267,  1268,
 
5180
    1269,     0,     0,     0,     0,  2699,  1270,     0,     0,     0,
 
5181
       0,     0,     0,     0,  1260,     0,     0,  1261,  1262,  1263,
 
5182
       0,  1264,  1265,  1266,  1267,  1268,  1269,     0,     0,     0,
 
5183
       0,     0,  1270,   156,   157,   158,   159,   160,   161,   162,
 
5184
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
5185
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
5186
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
5187
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
5188
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
5189
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
5190
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
5191
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
5192
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
5193
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
5194
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
5195
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
5196
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
5197
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
5198
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
5199
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
5200
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
5201
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
5202
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
5203
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
5204
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
5205
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
5206
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
5207
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
5208
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
5209
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
5210
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
5211
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
5212
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
5213
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
5214
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
5215
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
5216
       0,   391,   392,   393,   394,   395,   396,     0,   397,  2752,
 
5217
     497,  2753,  2754,     0,  2755,   156,   157,   158,   159,   160,
 
5218
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
5219
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
5220
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
5221
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
5222
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
5223
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
5224
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
5225
     205,   206,   207,  1285,   208,     0,   209,   210,   211,   212,
 
5226
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
5227
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
5228
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
5229
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
5230
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
5231
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
5232
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
5233
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
5234
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
5235
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
5236
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
5237
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
5238
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
5239
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
5240
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
5241
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
5242
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
5243
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
5244
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
5245
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
5246
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
5247
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
5248
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
5249
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
5250
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
5251
     397,     0,   845,   156,   157,   158,   159,   160,   161,   162,
 
5252
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
5253
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
5254
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
5255
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
5256
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
5257
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
5258
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
5259
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
5260
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
5261
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
5262
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
5263
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
5264
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
5265
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
5266
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
5267
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
5268
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
5269
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
5270
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
5271
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
5272
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
5273
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
5274
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
5275
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
5276
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
5277
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
5278
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
5279
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
5280
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
5281
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
5282
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
5283
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
5284
       0,   391,   392,   393,   394,   395,   396,     0,   397,     0,
 
5285
     845,   156,   157,   158,   159,   160,   161,   162,   163,   958,
 
5286
     164,   165,   959,   960,   961,   962,   963,   964,   965,   166,
 
5287
     167,   966,   168,   565,   169,   170,   171,   566,   172,   567,
 
5288
     173,   174,   967,   175,   176,   177,   178,   968,   969,   179,
 
5289
     180,   181,   182,   970,   183,   184,   185,   186,   187,   971,
 
5290
     972,   188,   189,   190,   191,   973,   192,   193,   194,   195,
 
5291
     974,   196,   197,   198,   568,   199,   975,   976,   977,   978,
 
5292
     979,   200,   201,   202,   203,   204,   205,   206,   207,   980,
 
5293
     208,   981,   209,   210,   211,   212,   213,   982,   214,   983,
 
5294
     984,   215,   216,   217,   218,   985,   219,   220,   221,   986,
 
5295
     222,   987,   223,   224,   225,   226,   227,   228,   229,   988,
 
5296
     230,   231,   232,   989,   233,   990,   234,   569,   991,   570,
 
5297
     235,   236,   992,   237,   238,   993,   239,   994,   240,   241,
 
5298
     242,   571,   243,   244,   245,   995,   246,   247,   248,   249,
 
5299
     250,   996,   572,   251,   252,   253,   254,   255,   256,   257,
 
5300
     997,   258,   998,   259,   573,   574,   260,   575,   261,   262,
 
5301
     263,   264,   265,   999,   266,   576,   267,   577,  1000,   268,
 
5302
     269,   270,  1001,  1002,   271,   272,   273,   274,   275,   276,
 
5303
     277,   278,   279,   280,   281,   282,   578,   283,  1003,   284,
 
5304
     285,   286,   287,   288,   289,   290,   291,   292,  1004,   293,
 
5305
     294,   579,   295,  1005,   296,   297,   298,   299,  1006,  1007,
 
5306
     300,  1008,  1009,  1010,   301,   302,  1011,  1012,   303,   580,
 
5307
     581,   304,   305,   306,   307,  1013,   308,   309,   310,   311,
 
5308
     312,  1014,   313,   314,   315,   316,   317,   318,   319,   320,
 
5309
    1015,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
5310
     330,   331,   582,   332,   333,   334,   335,   336,   337,   338,
 
5311
     339,   340,   341,  1016,   342,   343,   344,  1017,   345,   346,
 
5312
     347,   348,   583,   349,   350,  1018,   351,   352,   353,   354,
 
5313
     355,   356,   357,   358,   359,   360,  1019,   361,   362,  1020,
 
5314
     363,   364,   365,   366,  1021,   367,   368,  1022,   369,  1023,
 
5315
     370,   371,   372,   373,  1024,   374,   375,   376,   377,   378,
 
5316
    1025,  1026,   379,   380,   381,   382,  1027,  1028,   383,   384,
 
5317
     385,   386,   387,   388,   584,   389,   390,  1029,  1030,   391,
 
5318
     392,   393,   394,   395,   396,     0,  1031,   156,   157,   158,
 
5319
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
5320
       0,     0,     0,     0,     0,   166,   167,     0,   168,   565,
 
5321
     169,   170,   171,   566,   172,   567,   173,   174,     0,   175,
 
5322
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
5323
     183,   184,   185,   186,   187,     0,     0,   188,   189,   190,
 
5324
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
5325
     568,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
5326
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
5327
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
5328
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
5329
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
5330
     233,     0,   234,   569,     0,   570,   235,   236,     0,   237,
 
5331
     238,     0,   239,     0,   240,   241,   242,   571,   243,   244,
 
5332
     245,     0,   246,   247,   248,   249,   250,     0,   572,   251,
 
5333
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
5334
     573,   574,   260,   575,   261,   262,   263,   264,   265,     0,
 
5335
     266,   576,   267,   577,     0,   268,   269,   270,     0,     0,
 
5336
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
5337
     281,   282,   578,   283,   402,   284,   285,   286,   287,   288,
 
5338
     289,   290,   291,   292,     0,   293,   294,   579,   295,     0,
 
5339
     296,   297,   298,   299,     0,     0,   300,   403,     0,     0,
 
5340
     301,   302,     0,     0,   303,   580,   581,   304,   305,   306,
 
5341
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
5342
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
5343
     324,   325,   326,   327,   328,   329,   330,   331,   582,   332,
 
5344
     333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
 
5345
     342,   343,   344,     0,   345,   346,   347,   348,   583,   349,
 
5346
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
5347
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
5348
       0,   367,   368,     0,   369,     0,   370,   371,   372,   373,
 
5349
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
5350
     381,   382,     0,     0,   383,   384,   385,   386,   387,   388,
 
5351
     584,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
5352
     396,     0,   585,   156,   157,   158,   159,   160,   161,   162,
 
5353
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
5354
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
5355
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
5356
       0,   179,   180,   181,   182,  1351,   183,   184,   185,   186,
 
5357
     187,     0,     0,   188,   189,   190,   191,  1352,   192,   193,
 
5358
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
5359
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
5360
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
5361
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
5362
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
5363
     229,     0,   230,   231,   232,     0,   233,  1353,   234,     0,
 
5364
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
5365
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
5366
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
5367
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
5368
     261,   262,   263,   264,   265,     0,   266,     0,   267,  1903,
 
5369
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
5370
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
5371
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
5372
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
5373
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
5374
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
5375
     310,   311,   312,  1354,   313,   314,   315,   316,   317,   318,
 
5376
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
5377
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
5378
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
5379
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
5380
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
5381
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
5382
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
5383
     377,   378,     0,  1355,   379,   380,   381,   382,     0,     0,
 
5384
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
5385
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
5386
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
5387
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
5388
     168,   565,   169,   170,   171,   566,  1057,   567,  1058,  1059,
 
5389
       0,   175,   176,   177,   178,     0,     0,   179,  1060,  1061,
 
5390
     182,     0,   183,   184,   185,   186,     0,     0,     0,   188,
 
5391
     189,   190,   191,     0,   192,   193,     0,   195,     0,   196,
 
5392
     197,   198,   568,   199,     0,     0,     0,     0,     0,   200,
 
5393
     201,   202,   203,   204,  1062,  1063,   207,     0,   208,     0,
 
5394
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
5395
     763,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
5396
     223,   224,   225,     0,   227,   228,     0,     0,   230,   231,
 
5397
    1064,     0,   233,     0,   234,   569,     0,   570,   235,   236,
 
5398
       0,   237,     0,     0,   239,     0,   240,   241,   242,   571,
 
5399
     243,   244,   245,  1373,   246,   247,   248,   249,   250,     0,
 
5400
     572,  1374,   252,   253,   254,   255,  1065,  1066,     0,  1067,
 
5401
       0,   259,   573,   574,   260,   575,   261,   262,   263,   264,
 
5402
     265,     0,     0,   576,   267,   577,     0,   268,   269,   270,
 
5403
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
5404
     279,   280,   281,  1068,   578,  1069,     0,   284,   285,   286,
 
5405
     287,   288,   289,   290,     0,   292,     0,   293,   294,   579,
 
5406
     295,     0,     0,  1070,   298,   299,     0,     0,   300,     0,
 
5407
       0,     0,   301,   302,     0,     0,  1375,   580,   581,     0,
 
5408
     305,   306,   307,     0,     0,     0,   310,   311,   312,     0,
 
5409
     313,   314,   315,   316,   317,   318,  1071,   320,     0,   321,
 
5410
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
5411
     582,   332,   333,     0,   335,   336,   337,   338,   339,   340,
 
5412
     341,     0,   342,   343,   344,     0,   345,  1376,   347,   348,
 
5413
     583,   349,  1073,     0,   351,   352,   353,   354,   355,   356,
 
5414
     357,   358,     0,   360,     0,   361,   362,     0,   363,   364,
 
5415
     365,   366,     0,  1074,  1075,     0,   369,     0,   370,     0,
 
5416
     372,     0,     0,   374,   375,   376,   377,   378,     0,     0,
 
5417
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
5418
    1076,   388,   584,   389,   390,     0,     0,   391,   392,   393,
 
5419
     394,   395,   396,     0,  1377,   156,   157,   158,   159,   160,
 
5420
     520,   162,   163,   486,   164,   165,     0,     0,     0,     0,
 
5421
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
5422
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
5423
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
5424
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
5425
     192,   193,   194,   195,   487,   196,   197,   198,     0,   199,
 
5426
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
5427
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
5428
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
5429
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
5430
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
5431
     234,     0,     0,     0,   235,   236,   521,   237,   238,     0,
 
5432
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
5433
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
5434
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
5435
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
5436
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
5437
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
5438
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
5439
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
5440
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
5441
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
5442
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
5443
     317,   318,   319,   320,   488,   321,   322,   323,   324,   325,
 
5444
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
5445
     335,   336,   337,   338,   339,   340,   341,   489,   342,   343,
 
5446
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
5447
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
5448
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
5449
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
5450
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
5451
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
5452
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
5453
     397,   156,   157,   158,   159,   160,   161,   162,   163,   486,
 
5454
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
5455
     167,     0,   168,     0,   169,   170,   171,     0,   172,     0,
 
5456
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
5457
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
5458
       0,   188,   189,   190,   191,     0,   192,   193,   194,   195,
 
5459
     487,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
5460
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
5461
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
5462
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
5463
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
5464
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
5465
     235,   236,     0,   237,   238,     0,   239,     0,   240,   241,
 
5466
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
5467
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
5468
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
5469
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
5470
     269,   270,     0,     0,   271,   272,   273,   274,   275,   276,
 
5471
     277,   278,   279,   280,   281,   282,     0,   283,     0,   284,
 
5472
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
5473
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
5474
     300,     0,     0,     0,   301,   302,     0,     0,   303,     0,
 
5475
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
5476
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
5477
     488,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
5478
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
 
5479
     339,   340,   341,   489,   342,   343,   344,     0,   345,   346,
 
5480
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
5481
     355,   356,   357,   358,   359,   360,     0,   361,   362,     0,
 
5482
     363,   364,   365,   366,     0,   367,   368,     0,   369,     0,
 
5483
     370,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
5484
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
5485
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
5486
     392,   393,   394,   395,   396,     0,   397,   156,   157,   158,
 
5487
     159,   160,   161,   162,   163,     0,   164,   165,     3,     4,
 
5488
       0,     0,     0,     0,     0,   166,   167,     0,   168,     0,
 
5489
     169,   170,   171,     0,   172,     0,   173,   174,     0,   175,
 
5490
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
5491
     183,   184,   185,   186,   187,     0,     0,   188,   189,   190,
 
5492
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
5493
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
5494
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
5495
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
5496
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
5497
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
5498
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
5499
     238,     0,   239,     0,   240,   241,   242,     0,   243,   244,
 
5500
     245,     0,   246,   247,   248,   249,   250,     0,     0,   251,
 
5501
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
5502
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
5503
     266,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
5504
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
5505
     281,   282,     0,   283,   402,   284,   285,   286,   287,   288,
 
5506
     289,   290,   291,   292,     0,   293,   294,     0,   295,     0,
 
5507
     296,   297,   298,   299,     0,     0,   300,   403,     0,     0,
 
5508
     301,   302,     0,     0,   303,     0,     0,   304,   305,   306,
 
5509
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
5510
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
5511
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
 
5512
     333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
 
5513
     342,   343,   344,     0,   345,   346,   347,   348,     0,   349,
 
5514
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
5515
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
5516
       0,   367,   368,     0,   369,     0,   370,   371,   372,   373,
 
5517
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
5518
     381,   382,     0,     0,   383,   384,   385,   386,   387,   388,
 
5519
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
5520
     396,     0,   397,   156,   157,   158,   159,   160,   161,   162,
 
5521
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
5522
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
5523
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
5524
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
5525
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
5526
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
5527
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
5528
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
5529
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
5530
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
5531
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
5532
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
5533
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
5534
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
5535
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
5536
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
5537
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
5538
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
5539
     402,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
5540
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
5541
       0,     0,   300,   403,     0,   548,   301,   302,     0,     0,
 
5542
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
5543
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
5544
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
5545
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
5546
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
5547
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
5548
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
5549
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
5550
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
5551
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
5552
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
5553
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
5554
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
5555
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
5556
     168,     0,   169,   170,   171,     0,   172,     0,   173,   174,
 
5557
       0,   175,   176,   177,   178,     0,     0,   179,   180,   181,
 
5558
     182,     0,   183,   184,   185,   186,   187,     0,     0,   188,
 
5559
     189,   190,   191,     0,   192,   193,   194,   195,     0,   196,
 
5560
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
5561
     201,  1152,   203,   204,   205,   206,   207,     0,   208,     0,
 
5562
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
5563
     216,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
5564
     223,   224,   225,   226,   227,   228,   229,     0,   230,   231,
 
5565
     232,     0,   233,     0,   234,     0,     0,     0,  1153,   236,
 
5566
       0,   237,   238,     0,   239,     0,   240,   241,   242,     0,
 
5567
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
5568
       0,   251,   252,   253,   254,   255,   256,   257,     0,   258,
 
5569
       0,   259,     0,     0,   260,     0,   261,   262,  1154,   264,
 
5570
     265,     0,   266,     0,   267,     0,     0,   268,   269,   270,
 
5571
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
5572
     279,   280,   281,   282,     0,   283,   402,   284,   285,   286,
 
5573
     287,   288,   289,   290,   291,   292,     0,   293,   294,     0,
 
5574
     295,     0,   296,   297,   298,   299,     0,     0,   300,   403,
 
5575
       0,     0,   301,   302,     0,     0,   303,     0,     0,   304,
 
5576
     305,   306,   307,     0,   308,   309,   310,   311,   312,     0,
 
5577
     313,   314,   315,   316,   317,   318,   319,   320,     0,   321,
 
5578
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
5579
       0,   332,   333,   334,   335,   336,   337,  1155,   339,   340,
 
5580
     341,     0,   342,   343,   344,     0,   345,   346,   347,   348,
 
5581
       0,   349,   350,     0,   351,   352,   353,   354,   355,   356,
 
5582
     357,   358,   359,   360,     0,   361,   362,  1156,  1157,   364,
 
5583
     365,   366,     0,   367,   368,     0,   369,     0,   370,   371,
 
5584
     372,   373,     0,   374,   375,   376,   377,   378,     0,     0,
 
5585
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
5586
     387,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
5587
     394,   395,   396,     0,   397,   156,   157,   158,   159,   160,
 
5588
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
5589
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
5590
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
5591
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
5592
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
5593
     192,   193,   194,   195,   487,   196,   197,   198,     0,   199,
 
5594
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
5595
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
5596
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
5597
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
5598
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
5599
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
5600
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
5601
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
5602
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
5603
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
5604
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
5605
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
5606
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
5607
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
5608
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
5609
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
5610
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
5611
     317,   318,   319,   320,   488,   321,   322,   323,   324,   325,
 
5612
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
5613
     335,   336,   337,   338,   339,   340,   341,   489,   342,   343,
 
5614
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
5615
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
5616
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
5617
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
5618
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
5619
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
5620
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
5621
     397,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
5622
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
5623
     167,     0,   168,     0,   169,   170,   171,     0,   172,     0,
 
5624
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
5625
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
5626
       0,   188,   189,   190,   191,     0,   192,   193,   194,   195,
 
5627
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
5628
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
5629
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
5630
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
5631
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
5632
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
5633
     235,  1696,     0,   237,   238,     0,   239,     0,   240,   241,
 
5634
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
5635
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
5636
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
5637
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
5638
     269,  1697,     0,     0,   271,   272,   273,   274,   275,   276,
 
5639
     277,   278,   279,   280,   281,   282,     0,   283,   402,   284,
 
5640
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
5641
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
5642
     300,   403,     0,     0,   301,   302,     0,     0,   303,     0,
 
5643
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
5644
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
5645
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
5646
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
 
5647
     339,   340,   341,     0,   342,   343,   344,     0,   345,   346,
 
5648
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
5649
     355,   356,   357,   358,   359,   360,     0,   361,   362,  1698,
 
5650
     363,  1699,   365,  1700,     0,   367,   368,     0,   369,     0,
 
5651
     370,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
5652
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
5653
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
5654
     392,   393,   394,   395,   396,     0,   397,   156,   157,   158,
 
5655
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
5656
       0,     0,     0,     0,     0,   166,   167,     0,   168,   565,
 
5657
     169,   170,   171,   566,  1057,   567,  1058,  1059,     0,   175,
 
5658
     176,   177,   178,     0,     0,   179,  1060,  1061,   182,     0,
 
5659
     183,   184,   185,   186,     0,     0,     0,   188,   189,   190,
 
5660
     191,     0,   192,   193,     0,   195,     0,   196,   197,   198,
 
5661
     568,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
5662
     203,   204,  1062,  1063,   207,     0,   208,     0,   209,   210,
 
5663
     211,   212,   213,     0,   214,     0,     0,   215,   763,   217,
 
5664
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
5665
     225,     0,   227,   228,     0,     0,   230,   231,  1064,     0,
 
5666
     233,     0,   234,   569,     0,   570,   235,   236,     0,   237,
 
5667
       0,     0,   239,     0,   240,   241,   242,   571,   243,   244,
 
5668
     245,     0,   246,   247,   248,   249,   250,     0,   572,     0,
 
5669
     252,   253,   254,   255,  1065,  1066,     0,  1067,     0,   259,
 
5670
     573,   574,   260,   575,   261,   262,   263,   264,   265,     0,
 
5671
       0,   576,   267,   577,     0,   268,   269,   270,     0,     0,
 
5672
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
5673
     281,  1068,   578,  1069,     0,   284,   285,   286,   287,   288,
 
5674
     289,   290,     0,   292,     0,   293,   294,   579,   295,     0,
 
5675
       0,  1070,   298,   299,     0,     0,   300,     0,     0,     0,
 
5676
     301,   302,     0,     0,     0,   580,   581,     0,   305,   306,
 
5677
     307,     0,     0,     0,   310,   311,   312,     0,   313,   314,
 
5678
     315,   316,   317,   318,  1071,   320,     0,   321,   322,   323,
 
5679
     324,   325,   326,   327,   328,   329,   330,   331,   582,   332,
 
5680
     333,     0,   335,   336,   337,   338,   339,   340,   341,     0,
 
5681
     342,   343,   344,     0,   345,  1376,   347,   348,   583,   349,
 
5682
    1073,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
5683
       0,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
5684
       0,  1074,  1075,     0,   369,     0,   370,     0,   372,     0,
 
5685
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
5686
     381,   382,     0,     0,   383,   384,   385,   386,  1076,   388,
 
5687
     584,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
5688
     396,     0,  1377,   156,   157,   158,   159,   160,   161,   162,
 
5689
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
5690
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
5691
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
5692
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
5693
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
5694
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
5695
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
5696
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
5697
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
5698
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
5699
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
5700
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
5701
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
5702
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
5703
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
5704
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
5705
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
5706
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
5707
     402,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
5708
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
5709
       0,     0,   300,   403,     0,     0,   301,   302,     0,     0,
 
5710
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
5711
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
5712
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
5713
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
5714
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
5715
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
5716
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
5717
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
5718
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
5719
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
5720
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
5721
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
5722
     157,   158,   159,   160,   161,   162,   163,  1823,   164,   165,
 
5723
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
5724
     168,     0,   169,   170,   171,     0,   172,     0,   173,   174,
 
5725
       0,   175,   176,   177,   178,     0,     0,   179,   180,   181,
 
5726
     182,     0,   183,   184,   185,   186,   187,     0,     0,   188,
 
5727
     189,   190,   191,     0,   192,   193,   194,   195,     0,   196,
 
5728
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
5729
     201,   202,   203,   204,   205,   206,   207,     0,   208,     0,
 
5730
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
5731
     216,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
5732
     223,   224,   225,   226,   227,   228,   229,     0,   230,   231,
 
5733
     232,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
5734
       0,   237,   238,     0,   239,     0,   240,   241,   242,     0,
 
5735
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
5736
       0,   251,   252,   253,   254,   255,   256,   257,     0,   258,
 
5737
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
5738
     265,     0,   266,     0,   267,     0,     0,   268,   269,   270,
 
5739
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
5740
     279,   280,   281,   282,     0,   283,     0,   284,   285,   286,
 
5741
     287,   288,   289,   290,   291,   292,     0,   293,   294,     0,
 
5742
     295,     0,   296,   297,   298,   299,     0,     0,   300,     0,
 
5743
       0,     0,   301,   302,     0,     0,   303,     0,     0,   304,
 
5744
     305,   306,   307,     0,   308,   309,   310,   311,   312,     0,
 
5745
     313,   314,   315,   316,   317,   318,   319,   320,     0,   321,
 
5746
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
5747
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
 
5748
     341,     0,   342,   343,   344,     0,   345,   346,   347,   348,
 
5749
       0,   349,   350,     0,   351,   352,   353,   354,   355,   356,
 
5750
     357,   358,   359,   360,     0,   361,   362,     0,   363,   364,
 
5751
     365,   366,     0,   367,   368,     0,   369,     0,   370,   371,
 
5752
     372,   373,     0,   374,   375,   376,   377,   378,     0,     0,
 
5753
     379,   380,   381,   382,  1824,     0,   383,   384,   385,   386,
 
5754
     387,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
5755
     394,   395,   396,     0,   397,   156,   157,   158,   159,   160,
 
5756
     161,   162,   163,  1828,   164,   165,     0,     0,     0,     0,
 
5757
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
5758
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
5759
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
5760
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
5761
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
5762
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
5763
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
5764
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
5765
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
5766
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
5767
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
5768
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
5769
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
5770
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
5771
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
5772
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
5773
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
5774
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
5775
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
5776
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
5777
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
5778
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
5779
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
5780
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
5781
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
5782
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
5783
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
5784
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
5785
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
5786
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
5787
    1829,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
5788
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
5789
     397,   156,   157,   158,   159,   160,   161,   162,   163,   514,
 
5790
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
5791
     167,     0,   168,     0,   169,   170,   171,     0,   172,     0,
 
5792
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
5793
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
5794
       0,   188,   189,   190,   191,     0,   192,   193,   194,   195,
 
5795
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
5796
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
5797
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
5798
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
5799
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
5800
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
5801
     235,   236,     0,   237,   238,     0,   239,     0,   240,   241,
 
5802
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
5803
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
5804
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
5805
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
5806
     269,   270,     0,     0,   271,   272,   273,   274,   275,   276,
 
5807
     277,   278,   279,   280,   281,   282,     0,   283,     0,   284,
 
5808
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
5809
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
5810
     300,     0,     0,     0,   301,   302,     0,     0,   303,     0,
 
5811
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
5812
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
5813
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
5814
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
 
5815
     339,   340,   341,     0,   342,   343,   515,     0,   345,   346,
 
5816
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
5817
     355,   356,   357,   358,   359,   360,     0,   361,   362,     0,
 
5818
     363,   364,   365,   366,     0,   516,   368,     0,   369,     0,
 
5819
     517,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
5820
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
5821
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
5822
     392,   393,   394,   395,   396,     0,   397,   156,   157,   158,
 
5823
     159,   160,   161,   162,   163,   539,   164,   165,     0,     0,
 
5824
       0,     0,     0,     0,     0,   166,   167,     0,   168,     0,
 
5825
     169,   170,   171,     0,   172,     0,   173,   174,     0,   175,
 
5826
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
5827
     183,   184,   185,   186,   187,     0,     0,   188,   189,   190,
 
5828
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
5829
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
5830
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
5831
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
5832
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
5833
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
5834
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
5835
     238,     0,   239,     0,   240,   241,   242,     0,   243,   244,
 
5836
     245,     0,   246,   247,   248,   249,   250,     0,     0,   251,
 
5837
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
5838
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
5839
     266,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
5840
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
5841
     281,   282,     0,   283,     0,   284,   285,   286,   287,   288,
 
5842
     289,   290,   291,   292,     0,   293,   294,     0,   295,     0,
 
5843
     296,   297,   298,   299,     0,     0,   300,     0,     0,     0,
 
5844
     301,   302,     0,     0,   303,     0,     0,   304,   305,   306,
 
5845
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
5846
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
5847
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
 
5848
     333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
 
5849
     342,   343,   540,     0,   345,   346,   347,   348,     0,   349,
 
5850
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
5851
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
5852
       0,   541,   368,     0,   369,     0,   542,   371,   372,   373,
 
5853
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
5854
     381,   382,     0,     0,   383,   384,   385,   386,   387,   388,
 
5855
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
5856
     396,     0,   397,   156,   157,   158,   159,   160,   161,   162,
 
5857
     163,   837,   164,   165,     0,     0,     0,     0,     0,     0,
 
5858
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
5859
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
5860
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
5861
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
5862
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
5863
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
5864
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
5865
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
5866
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
5867
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
5868
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
5869
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
5870
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
5871
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
5872
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
5873
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
5874
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
5875
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
5876
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
5877
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
5878
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
5879
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
5880
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
5881
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
5882
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
5883
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
5884
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
5885
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
5886
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
5887
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
5888
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
5889
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
5890
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
5891
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
5892
     168,   848,   169,   170,   171,     0,   172,     0,   173,   174,
 
5893
       0,   175,   176,   177,   178,     0,     0,   179,   180,   181,
 
5894
     849,     0,   183,   184,   185,   186,   187,     0,     0,   188,
 
5895
     189,   190,   191,     0,   192,   193,   194,   195,     0,   196,
 
5896
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
5897
     201,   202,   203,   204,   205,   206,   207,     0,   208,     0,
 
5898
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
5899
     216,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
5900
     223,   224,   225,   226,   227,   228,   229,     0,   230,   231,
 
5901
     232,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
5902
       0,   237,   238,     0,   239,     0,   240,   241,   242,     0,
 
5903
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
5904
       0,   251,   252,   253,   254,   255,   256,   257,     0,   258,
 
5905
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
5906
     265,     0,   266,     0,   267,     0,     0,   268,   269,   270,
 
5907
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
5908
     279,   280,   532,   282,     0,   283,     0,   284,   285,   286,
 
5909
     287,   288,   289,   290,   291,   292,     0,   293,   294,     0,
 
5910
     295,     0,   296,   297,   298,   299,     0,     0,   300,     0,
 
5911
       0,     0,   301,   302,     0,     0,   303,     0,     0,   304,
 
5912
     305,   306,   307,     0,   308,   309,   310,   311,   312,     0,
 
5913
     313,   314,   315,   316,   317,   318,   319,   320,     0,   321,
 
5914
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
5915
       0,   533,   333,   334,   335,   336,   337,   338,   339,   340,
 
5916
     341,     0,   342,   343,   840,     0,   345,   346,   347,   348,
 
5917
       0,   349,   350,     0,   351,   352,   353,   354,   355,   356,
 
5918
     357,   358,   359,   360,     0,   361,   362,     0,   363,   364,
 
5919
     365,   366,     0,   535,   368,     0,   369,     0,   536,   371,
 
5920
     372,   373,     0,   374,   375,   376,   377,   378,     0,     0,
 
5921
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
5922
     387,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
5923
     394,   395,   396,     0,   397,   156,   157,   158,   159,   160,
 
5924
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
5925
       0,  1934,     0,   166,   167,     0,   168,     0,   169,   170,
 
5926
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
5927
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
5928
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
5929
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
5930
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
5931
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
5932
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
5933
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
5934
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
5935
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
5936
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
5937
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
5938
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
5939
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
5940
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
5941
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
5942
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
5943
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
5944
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
5945
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
5946
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
5947
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
5948
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
5949
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
5950
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
5951
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
5952
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
5953
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
5954
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
5955
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
5956
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
5957
     397,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
5958
     164,   165,     0,     0,     0,     0,     0,  1948,     0,   166,
 
5959
     167,     0,   168,     0,   169,   170,   171,     0,   172,     0,
 
5960
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
5961
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
5962
       0,   188,   189,   190,   191,     0,   192,   193,   194,   195,
 
5963
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
5964
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
5965
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
5966
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
5967
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
5968
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
5969
     235,   236,     0,   237,   238,     0,   239,     0,   240,   241,
 
5970
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
5971
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
5972
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
5973
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
5974
     269,   270,     0,     0,   271,   272,   273,   274,   275,   276,
 
5975
     277,   278,   279,   280,   281,   282,     0,   283,     0,   284,
 
5976
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
5977
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
5978
     300,     0,     0,     0,   301,   302,     0,     0,   303,     0,
 
5979
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
5980
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
5981
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
5982
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
 
5983
     339,   340,   341,     0,   342,   343,   344,     0,   345,   346,
 
5984
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
5985
     355,   356,   357,   358,   359,   360,     0,   361,   362,     0,
 
5986
     363,   364,   365,   366,     0,   367,   368,     0,   369,     0,
 
5987
     370,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
5988
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
5989
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
5990
     392,   393,   394,   395,   396,     0,   397,   156,   157,   158,
 
5991
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
5992
       0,     0,     0,     0,     0,   166,   167,     0,   168,     0,
 
5993
     169,   170,   171,     0,   172,     0,   173,   174,     0,   175,
 
5994
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
5995
     183,   184,   185,   186,   187,     0,     0,   188,   189,   190,
 
5996
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
5997
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
5998
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
5999
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
6000
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
6001
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
6002
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
6003
     238,  1963,   239,     0,   240,   241,   242,     0,   243,   244,
 
6004
     245,     0,   246,   247,   248,   249,   250,     0,     0,   251,
 
6005
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
6006
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
6007
     266,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
6008
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
6009
     281,   282,     0,   283,     0,   284,   285,   286,   287,   288,
 
6010
     289,   290,   291,   292,     0,   293,   294,     0,   295,     0,
 
6011
     296,   297,   298,   299,     0,     0,   300,     0,     0,     0,
 
6012
     301,   302,     0,     0,   303,     0,     0,   304,   305,   306,
 
6013
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
6014
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
6015
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
 
6016
     333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
 
6017
     342,   343,   344,     0,   345,   346,   347,   348,     0,   349,
 
6018
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
6019
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
6020
       0,   367,   368,     0,   369,     0,   370,   371,   372,   373,
 
6021
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
6022
     381,   382,     0,     0,   383,   384,   385,   386,   387,   388,
 
6023
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
6024
     396,     0,   397,   156,   157,   158,   159,   160,   161,   162,
 
6025
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
6026
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
6027
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
6028
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
6029
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
6030
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
6031
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
6032
     207,  2427,   208,     0,   209,   210,   211,   212,   213,     0,
 
6033
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
6034
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
6035
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
6036
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
6037
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
6038
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
6039
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
6040
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
6041
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
6042
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
6043
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
6044
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
6045
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
6046
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
6047
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
6048
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
6049
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
6050
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
6051
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
6052
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
6053
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
6054
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
6055
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
6056
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
6057
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
6058
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
6059
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
6060
     168,     0,   169,   170,   171,     0,   172,     0,   173,   174,
 
6061
       0,   175,   176,   177,   178,     0,     0,   179,   180,   181,
 
6062
     182,     0,   183,   184,   185,   186,   187,     0,     0,   188,
 
6063
     189,   190,   191,     0,   192,   193,   194,   195,     0,   196,
 
6064
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
6065
     201,   202,   203,   204,   205,   206,   207,  2429,   208,     0,
 
6066
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
6067
     216,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
6068
     223,   224,   225,   226,   227,   228,   229,     0,   230,   231,
 
6069
     232,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
6070
       0,   237,   238,     0,   239,     0,   240,   241,   242,     0,
 
6071
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
6072
       0,   251,   252,   253,   254,   255,   256,   257,     0,   258,
 
6073
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
6074
     265,     0,   266,     0,   267,     0,     0,   268,   269,   270,
 
6075
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
6076
     279,   280,   281,   282,     0,   283,     0,   284,   285,   286,
 
6077
     287,   288,   289,   290,   291,   292,     0,   293,   294,     0,
 
6078
     295,     0,   296,   297,   298,   299,     0,     0,   300,     0,
 
6079
       0,     0,   301,   302,     0,     0,   303,     0,     0,   304,
 
6080
     305,   306,   307,     0,   308,   309,   310,   311,   312,     0,
 
6081
     313,   314,   315,   316,   317,   318,   319,   320,     0,   321,
 
6082
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
6083
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
 
6084
     341,     0,   342,   343,   344,     0,   345,   346,   347,   348,
 
6085
       0,   349,   350,     0,   351,   352,   353,   354,   355,   356,
 
6086
     357,   358,   359,   360,     0,   361,   362,     0,   363,   364,
 
6087
     365,   366,     0,   367,   368,     0,   369,     0,   370,   371,
 
6088
     372,   373,     0,   374,   375,   376,   377,   378,     0,     0,
 
6089
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
6090
     387,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
6091
     394,   395,   396,     0,   397,   156,   157,   158,   159,   160,
 
6092
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
6093
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
6094
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
6095
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
6096
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
6097
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
6098
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
6099
     205,   206,   207,  2431,   208,     0,   209,   210,   211,   212,
 
6100
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
6101
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
6102
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
6103
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
6104
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
6105
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
6106
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
6107
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
6108
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
6109
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
6110
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
6111
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
6112
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
6113
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
6114
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
6115
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
6116
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
6117
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
6118
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
6119
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
6120
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
6121
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
6122
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
6123
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
6124
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
6125
     397,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
6126
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
6127
     167,     0,   168,     0,   169,   170,   171,     0,   172,     0,
 
6128
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
6129
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
6130
       0,   188,   189,   190,   191,     0,   192,   193,   194,   195,
 
6131
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
6132
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
6133
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
6134
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
6135
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
6136
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
6137
     235,   236,     0,   237,   238,     0,   239,     0,   240,   241,
 
6138
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
6139
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
6140
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
6141
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
6142
     269,   270,     0,     0,   271,   272,   273,   274,   275,   276,
 
6143
     277,   278,   279,   280,   281,   282,     0,   283,     0,   284,
 
6144
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
6145
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
6146
     300,     0,     0,     0,   301,   302,     0,     0,   303,     0,
 
6147
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
6148
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
6149
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
6150
     330,   331,     0,   332,   333,   334,   335,   336,   337,   338,
 
6151
     339,   340,   341,     0,   342,   343,   344,     0,   345,   346,
 
6152
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
6153
     355,   356,   357,   358,   359,   360,     0,   361,   362,     0,
 
6154
     363,   364,   365,   366,     0,   367,   368,     0,   369,     0,
 
6155
     370,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
6156
       0,     0,   379,   380,   381,   382,     0,  2657,   383,   384,
 
6157
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
6158
     392,   393,   394,   395,   396,     0,   397,   156,   157,   158,
 
6159
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
6160
       0,     0,     0,     0,     0,   166,   167,     0,   168,     0,
 
6161
     169,   170,   171,     0,   172,     0,   173,   174,     0,   175,
 
6162
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
6163
     183,   184,   185,   186,   187,     0,     0,   188,   189,   190,
 
6164
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
6165
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
6166
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
6167
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
6168
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
6169
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
6170
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
6171
     238,     0,   239,     0,   240,   241,   242,     0,   243,   244,
 
6172
     245,     0,   246,   247,   248,   249,   250,     0,     0,   251,
 
6173
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
6174
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
6175
     266,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
6176
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
6177
     281,   282,     0,   283,     0,   284,   285,   286,   287,   288,
 
6178
     289,   290,   291,   292,     0,   293,   294,     0,   295,     0,
 
6179
     296,   297,   298,   299,     0,     0,   300,     0,     0,     0,
 
6180
     301,   302,     0,     0,   303,     0,     0,   304,   305,   306,
 
6181
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
6182
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
6183
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
 
6184
     333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
 
6185
     342,   343,   344,     0,   345,   346,   347,   348,     0,   349,
 
6186
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
6187
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
6188
       0,   367,   368,     0,   369,     0,   370,   371,   372,   373,
 
6189
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
6190
     381,   382,     0,     0,   383,   384,   385,   386,   387,   388,
 
6191
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
6192
     396,     0,   397,   156,   157,   158,   159,   160,   161,   162,
 
6193
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
6194
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
6195
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
6196
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
6197
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
6198
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
6199
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
6200
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
6201
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
6202
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
6203
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
6204
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
6205
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
6206
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
6207
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
6208
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
6209
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
6210
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
6211
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
6212
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
6213
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
6214
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
6215
     310,   441,   312,     0,   313,   314,   315,   316,   317,   318,
 
6216
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
6217
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
6218
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
6219
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
6220
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
6221
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
6222
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
6223
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
6224
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
6225
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
6226
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
6227
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
6228
     168,     0,   169,   170,   171,     0,   172,     0,   173,   174,
 
6229
       0,   175,   176,   177,   178,     0,     0,   179,   180,   181,
 
6230
     182,     0,   183,   184,   185,   186,   187,     0,     0,   188,
 
6231
     189,   190,   191,     0,   192,   193,   194,   195,     0,   196,
 
6232
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
6233
     201,   202,   203,   204,   205,   206,   207,     0,   208,     0,
 
6234
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
6235
     216,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
6236
     223,   224,   225,   226,   227,   228,   229,     0,   230,   231,
 
6237
     232,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
6238
       0,   237,   238,     0,   239,     0,   240,   241,   242,     0,
 
6239
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
6240
       0,   251,   252,   253,   254,   255,   256,   257,     0,   258,
 
6241
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
6242
     265,     0,   266,     0,   267,     0,     0,   268,   269,   270,
 
6243
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
6244
     279,   280,   281,   282,     0,   283,     0,   284,   285,   286,
 
6245
     287,   288,   289,   290,   291,   292,     0,   293,   294,     0,
 
6246
     295,     0,   296,   297,   298,   299,     0,     0,   300,     0,
 
6247
       0,     0,   301,   302,     0,     0,   303,     0,     0,   304,
 
6248
     305,   306,   307,     0,   308,   309,   310,   311,   312,     0,
 
6249
     313,   314,   315,   316,   317,   318,   319,   320,     0,   321,
 
6250
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
6251
       0,   332,   333,   334,   335,   336,   337,   338,   339,   340,
 
6252
     341,     0,   342,   343,   344,     0,   345,   346,   347,   348,
 
6253
       0,   349,   350,     0,   351,   352,   353,   354,   355,   356,
 
6254
     357,   358,   359,   360,     0,   361,   362,     0,   363,   364,
 
6255
     365,   366,     0,   367,   368,     0,   369,     0,   505,   371,
 
6256
     372,   373,     0,   374,   375,   376,   377,   378,     0,     0,
 
6257
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
6258
     387,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
6259
     394,   395,   396,     0,   397,   156,   157,   158,   159,   160,
 
6260
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
6261
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
6262
     171,     0,   172,     0,   173,   174,     0,   175,   176,   177,
 
6263
     178,     0,     0,   179,   180,   181,   182,     0,   183,   184,
 
6264
     185,   186,   187,     0,     0,   188,   189,   190,   191,     0,
 
6265
     192,   193,   194,   195,     0,   196,   197,   198,     0,   199,
 
6266
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
6267
     205,   206,   207,     0,   208,     0,   209,   210,   211,   212,
 
6268
     213,     0,   214,     0,     0,   215,   216,   217,   218,     0,
 
6269
     219,   220,   221,     0,   222,     0,   223,   224,   225,   226,
 
6270
     227,   228,   229,     0,   230,   231,   232,     0,   233,     0,
 
6271
     234,     0,     0,     0,   235,   236,     0,   237,   238,     0,
 
6272
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
6273
     246,   247,   248,   249,   250,     0,     0,   251,   252,   253,
 
6274
     254,   255,   256,   257,     0,   258,     0,   259,     0,     0,
 
6275
     260,     0,   261,   262,   263,   264,   265,     0,   266,     0,
 
6276
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
6277
     273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
 
6278
       0,   283,     0,   284,   285,   286,   287,   288,   289,   290,
 
6279
     291,   292,     0,   293,   294,     0,   295,     0,   296,   297,
 
6280
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
6281
       0,     0,   303,     0,     0,   304,   305,   306,   307,     0,
 
6282
     308,   309,   310,   311,   312,     0,   313,   314,   315,   316,
 
6283
     317,   318,   319,   320,     0,   321,   322,   323,   324,   325,
 
6284
     326,   327,   328,   329,   330,   331,     0,   332,   333,   334,
 
6285
     335,   336,   512,   338,   339,   340,   341,     0,   342,   343,
 
6286
     344,     0,   345,   346,   347,   348,     0,   349,   350,     0,
 
6287
     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,
 
6288
       0,   361,   362,     0,   363,   364,   365,   366,     0,   367,
 
6289
     368,     0,   369,     0,   370,   371,   372,   373,     0,   374,
 
6290
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
6291
       0,     0,   383,   384,   385,   386,   387,   388,     0,   389,
 
6292
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
6293
     397,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
6294
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
6295
     167,     0,   168,     0,   169,   170,   171,     0,   172,     0,
 
6296
     173,   174,     0,   175,   176,   177,   178,     0,     0,   179,
 
6297
     180,   181,   182,     0,   183,   184,   185,   186,   187,     0,
 
6298
       0,   188,   189,   190,   191,     0,   530,   193,   194,   195,
 
6299
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
6300
       0,   200,   201,   202,   203,   204,   205,   206,   207,     0,
 
6301
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
6302
       0,   215,   216,   217,   218,     0,   219,   220,   221,     0,
 
6303
     222,     0,   223,   224,   225,   226,   227,   228,   229,     0,
 
6304
     230,   231,   232,     0,   233,     0,   234,     0,     0,     0,
 
6305
     235,   236,     0,   237,   238,     0,   239,     0,   240,   241,
 
6306
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
6307
     250,     0,     0,   251,   252,   253,   254,   255,   256,   257,
 
6308
       0,   258,     0,   259,     0,     0,   260,     0,   261,   262,
 
6309
     263,   264,   265,     0,   266,     0,   267,     0,     0,   268,
 
6310
     269,   531,     0,     0,   271,   272,   273,   274,   275,   276,
 
6311
     277,   278,   279,   280,   532,   282,     0,   283,     0,   284,
 
6312
     285,   286,   287,   288,   289,   290,   291,   292,     0,   293,
 
6313
     294,     0,   295,     0,   296,   297,   298,   299,     0,     0,
 
6314
     300,     0,     0,     0,   301,   302,     0,     0,   303,     0,
 
6315
       0,   304,   305,   306,   307,     0,   308,   309,   310,   311,
 
6316
     312,     0,   313,   314,   315,   316,   317,   318,   319,   320,
 
6317
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
6318
     330,   331,     0,   533,   333,   334,   335,   336,   337,   338,
 
6319
     339,   340,   341,     0,   342,   343,   534,     0,   345,   346,
 
6320
     347,   348,     0,   349,   350,     0,   351,   352,   353,   354,
 
6321
     355,   356,   357,   358,   359,   360,     0,   361,   362,     0,
 
6322
     363,   364,   365,   366,     0,   535,   368,     0,   369,     0,
 
6323
     536,   371,   372,   373,     0,   374,   375,   376,   377,   378,
 
6324
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
6325
     385,   386,   387,   388,     0,   389,   390,     0,     0,   391,
 
6326
     392,   393,   394,   395,   396,     0,   397,   156,   157,   158,
 
6327
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
6328
       0,     0,     0,     0,     0,   166,   167,     0,   168,     0,
 
6329
     169,   170,   171,     0,   172,     0,   173,   174,     0,   175,
 
6330
     176,   177,   178,     0,     0,   179,   180,   181,   182,     0,
 
6331
     183,   184,   185,   186,   187,     0,     0,   188,   189,   190,
 
6332
     191,     0,   192,   193,   194,   195,     0,   196,   197,   198,
 
6333
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
6334
     203,   204,   205,   206,   207,     0,   208,     0,   209,   210,
 
6335
     211,   212,   213,     0,   214,     0,     0,   215,   216,   217,
 
6336
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
6337
     225,   226,   227,   228,   229,     0,   230,   231,   232,     0,
 
6338
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
6339
     238,     0,   239,     0,   240,   241,   242,     0,   243,   244,
 
6340
     245,     0,   246,   247,   248,   249,   250,     0,     0,   251,
 
6341
     252,   253,   254,   255,   256,   257,     0,   258,     0,   259,
 
6342
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
6343
     266,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
6344
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
6345
     532,   282,     0,   283,     0,   284,   285,   286,   287,   288,
 
6346
     289,   290,   291,   292,     0,   293,   294,     0,   295,     0,
 
6347
     296,   297,   298,   299,     0,     0,   300,     0,     0,     0,
 
6348
     301,   302,     0,     0,   303,     0,     0,   304,   305,   306,
 
6349
     307,     0,   308,   309,   310,   311,   312,     0,   313,   314,
 
6350
     315,   316,   317,   318,   319,   320,     0,   321,   322,   323,
 
6351
     324,   325,   326,   327,   328,   329,   330,   331,     0,   533,
 
6352
     333,   334,   335,   336,   337,   338,   339,   340,   341,     0,
 
6353
     342,   343,   840,     0,   345,   346,   347,   348,     0,   349,
 
6354
     350,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
6355
     359,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
6356
       0,   535,   368,     0,   369,     0,   536,   371,   372,   373,
 
6357
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
6358
     381,   382,     0,     0,   383,   384,   385,   386,   387,   388,
 
6359
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
6360
     396,     0,   397,   156,   157,   158,   159,   160,   161,   162,
 
6361
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
6362
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
6363
     172,     0,   173,   174,     0,   175,   176,   177,   178,     0,
 
6364
       0,   179,   180,   181,   182,     0,   183,   184,   185,   186,
 
6365
     187,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
6366
     194,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
6367
       0,     0,     0,   200,   201,   202,   203,   204,   205,   206,
 
6368
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
6369
     214,     0,     0,   215,   216,   217,   218,     0,   219,   220,
 
6370
     221,     0,   222,     0,   223,   224,   225,   226,   227,   228,
 
6371
     229,     0,   230,   231,   232,     0,   233,     0,   234,     0,
 
6372
       0,     0,   235,   236,     0,   237,   238,     0,   239,     0,
 
6373
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
6374
     248,   249,   250,     0,     0,   251,   252,   253,   254,   255,
 
6375
     256,   257,     0,   258,     0,   259,     0,     0,   260,     0,
 
6376
     261,   262,   263,   264,   265,     0,   266,     0,   267,     0,
 
6377
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
6378
     275,   276,   277,   278,   279,   280,   281,   282,     0,   283,
 
6379
       0,   284,   285,   286,   287,   288,   289,   290,   291,   292,
 
6380
       0,   293,   294,     0,   295,     0,   296,   297,   298,   299,
 
6381
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
6382
     303,     0,     0,   304,   305,   306,   307,     0,   308,   309,
 
6383
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
6384
     319,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
6385
     328,   329,   330,   331,     0,   332,   333,   334,   335,   336,
 
6386
    1184,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
6387
     345,   346,   347,   348,     0,   349,   350,     0,   351,   352,
 
6388
     353,   354,   355,   356,   357,   358,   359,   360,     0,   361,
 
6389
     362,     0,   363,   364,   365,   366,     0,   367,   368,     0,
 
6390
     369,     0,   370,   371,   372,   373,     0,   374,   375,   376,
 
6391
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
6392
     383,   384,   385,   386,   387,   388,     0,   389,   390,     0,
 
6393
       0,   391,   392,   393,   394,   395,   396,     0,   397,   156,
 
6394
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
6395
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
6396
     168,     0,   169,   170,   171,     0,  1057,     0,  1058,  1059,
 
6397
       0,   175,   176,   177,   178,     0,     0,   179,  1060,  1061,
 
6398
     182,     0,   183,   184,   185,   186,     0,     0,     0,   188,
 
6399
     189,   190,   191,     0,   192,   193,     0,   195,     0,   196,
 
6400
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
6401
     201,   202,   203,   204,  1062,  1063,   207,     0,   208,     0,
 
6402
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
6403
     763,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
6404
     223,   224,   225,     0,   227,   228,     0,     0,   230,   231,
 
6405
    1064,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
6406
       0,   237,     0,     0,   239,     0,   240,   241,   242,     0,
 
6407
     243,   244,   245,  1373,   246,   247,   248,   249,   250,     0,
 
6408
       0,  1374,   252,   253,   254,   255,  1065,  1066,     0,  1067,
 
6409
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
6410
     265,     0,     0,     0,   267,     0,     0,   268,   269,   270,
 
6411
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
6412
     279,   280,   281,  1068,     0,  1069,     0,   284,   285,   286,
 
6413
     287,   288,   289,   290,     0,   292,     0,   293,   294,     0,
 
6414
     295,     0,     0,  1070,   298,   299,     0,     0,   300,     0,
 
6415
       0,     0,   301,   302,     0,     0,  1375,     0,     0,     0,
 
6416
     305,   306,   307,     0,     0,     0,   310,   311,   312,     0,
 
6417
     313,   314,   315,   316,   317,   318,  1071,   320,     0,   321,
 
6418
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
6419
       0,   332,   333,     0,   335,   336,   337,   338,   339,   340,
 
6420
     341,     0,   342,   343,   344,     0,   345,  1376,   347,   348,
 
6421
       0,   349,  1073,     0,   351,   352,   353,   354,   355,   356,
 
6422
     357,   358,     0,   360,     0,   361,   362,     0,   363,   364,
 
6423
     365,   366,     0,  1074,  1075,     0,   369,     0,   370,     0,
 
6424
     372,     0,     0,   374,   375,   376,   377,   378,     0,     0,
 
6425
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
6426
    1076,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
6427
     394,   395,   396,     0,  1077,   156,   157,   158,   159,   160,
 
6428
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
6429
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
6430
     171,     0,  1057,     0,  1058,  1059,     0,   175,   176,   177,
 
6431
     178,     0,     0,   179,  1060,  1061,   182,     0,   183,   184,
 
6432
     185,   186,     0,     0,     0,   188,   189,   190,   191,     0,
 
6433
     192,   193,     0,   195,     0,   196,   197,   198,     0,   199,
 
6434
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
6435
    1062,  1063,   207,     0,   208,     0,   209,   210,   211,   212,
 
6436
     213,     0,   214,     0,     0,   215,   763,   217,   218,     0,
 
6437
     219,   220,   221,     0,   222,     0,   223,   224,   225,     0,
 
6438
     227,   228,     0,     0,   230,   231,  1064,     0,   233,     0,
 
6439
     234,     0,     0,     0,   235,   236,     0,   237,     0,     0,
 
6440
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
6441
     246,   247,   248,   249,   250,     0,     0,     0,   252,   253,
 
6442
     254,   255,  1065,  1066,     0,  1067,     0,   259,     0,     0,
 
6443
     260,     0,   261,   262,   263,   264,   265,     0,     0,     0,
 
6444
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
6445
     273,   274,   275,   276,   277,   278,   279,   280,   281,  1068,
 
6446
       0,  1069,     0,   284,   285,   286,   287,   288,   289,   290,
 
6447
    1399,   292,     0,   293,   294,     0,   295,     0,     0,  1070,
 
6448
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
6449
       0,     0,     0,     0,     0,     0,   305,   306,   307,     0,
 
6450
       0,     0,   310,   311,   312,     0,   313,   314,   315,   316,
 
6451
     317,   318,  1071,   320,     0,   321,   322,   323,   324,   325,
 
6452
     326,   327,   328,   329,   330,   331,     0,   332,   333,     0,
 
6453
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
6454
     344,     0,   345,  1072,   347,   348,     0,   349,  1073,     0,
 
6455
     351,   352,   353,   354,   355,   356,   357,   358,     0,   360,
 
6456
       0,   361,   362,     0,   363,   364,   365,   366,     0,  1074,
 
6457
    1075,     0,   369,     0,   370,     0,   372,     0,     0,   374,
 
6458
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
6459
       0,     0,   383,   384,   385,   386,  1076,   388,     0,   389,
 
6460
     390,     0,     0,   391,   392,   393,   394,   395,   396,     0,
 
6461
    1077,   156,   157,   158,   159,   160,   161,   162,   163,     0,
 
6462
     164,   165,     0,     0,     0,     0,     0,     0,     0,   166,
 
6463
     167,     0,   168,     0,   169,   170,   171,     0,  1057,     0,
 
6464
    1058,  1059,     0,   175,   176,   177,   178,     0,     0,   179,
 
6465
    1060,  1061,   182,     0,   183,   184,   185,   186,     0,     0,
 
6466
       0,   188,   189,   190,   191,     0,   192,   193,     0,   195,
 
6467
       0,   196,   197,   198,     0,   199,     0,     0,     0,     0,
 
6468
       0,   200,   201,   202,   203,   204,  1062,  1063,   207,     0,
 
6469
     208,     0,   209,   210,   211,   212,   213,     0,   214,     0,
 
6470
       0,   215,   763,   217,   218,     0,   219,   220,   221,     0,
 
6471
     222,     0,   223,   224,   225,     0,   227,   228,     0,     0,
 
6472
     230,   231,  1064,     0,   233,     0,   234,     0,     0,     0,
 
6473
     235,   236,     0,   237,     0,     0,   239,     0,   240,   241,
 
6474
     242,     0,   243,   244,   245,     0,   246,   247,   248,   249,
 
6475
     250,     0,     0,     0,   252,   253,   254,   255,  1065,  1066,
 
6476
       0,  1067,     0,   259,     0,     0,   260,     0,   261,   262,
 
6477
     263,   264,   265,     0,     0,     0,   267,     0,     0,   268,
 
6478
     269,   270,     0,     0,   271,   272,   273,   274,   275,   276,
 
6479
     277,   278,   279,   280,   281,  1068,     0,  1069,     0,   284,
 
6480
     285,   286,   287,   288,   289,   290,  2138,   292,     0,   293,
 
6481
     294,     0,   295,     0,     0,  1070,   298,   299,     0,     0,
 
6482
     300,     0,     0,     0,   301,   302,     0,     0,     0,     0,
 
6483
       0,     0,   305,   306,   307,     0,     0,     0,   310,   311,
 
6484
     312,     0,   313,   314,   315,   316,   317,   318,  1071,   320,
 
6485
       0,   321,   322,   323,   324,   325,   326,   327,   328,   329,
 
6486
     330,   331,     0,   332,   333,     0,   335,   336,   337,   338,
 
6487
     339,   340,   341,     0,   342,   343,   344,     0,   345,  1072,
 
6488
     347,   348,     0,   349,  1073,     0,   351,   352,   353,   354,
 
6489
     355,   356,   357,   358,     0,   360,     0,   361,   362,     0,
 
6490
     363,   364,   365,   366,     0,  1074,  1075,     0,   369,     0,
 
6491
     370,     0,   372,     0,     0,   374,   375,   376,   377,   378,
 
6492
       0,     0,   379,   380,   381,   382,     0,     0,   383,   384,
 
6493
     385,   386,  1076,   388,     0,   389,   390,     0,     0,   391,
 
6494
     392,   393,   394,   395,   396,     0,  1077,   156,   157,   158,
 
6495
     159,   160,   161,   162,   163,     0,   164,   165,     0,     0,
 
6496
       0,     0,     0,     0,     0,   166,   167,     0,   168,     0,
 
6497
     169,   170,   171,     0,  1057,     0,  1058,  1059,     0,   175,
 
6498
     176,   177,   178,     0,     0,   179,  1060,  1061,   182,     0,
 
6499
     183,   184,   185,   186,     0,     0,     0,   188,   189,   190,
 
6500
     191,     0,   192,   193,     0,   195,     0,   196,   197,   198,
 
6501
       0,   199,     0,     0,     0,     0,     0,   200,   201,   202,
 
6502
     203,   204,  1062,  1063,   207,     0,   208,     0,   209,   210,
 
6503
     211,   212,   213,     0,   214,     0,     0,   215,   763,   217,
 
6504
     218,     0,   219,   220,   221,     0,   222,     0,   223,   224,
 
6505
     225,     0,   227,   228,     0,     0,   230,   231,  1064,     0,
 
6506
     233,     0,   234,     0,     0,     0,   235,   236,     0,   237,
 
6507
       0,     0,   239,     0,   240,   241,   242,     0,   243,   244,
 
6508
     245,     0,   246,   247,   248,   249,   250,     0,     0,     0,
 
6509
     252,   253,   254,   255,  1065,  1066,     0,  1067,     0,   259,
 
6510
       0,     0,   260,     0,   261,   262,   263,   264,   265,     0,
 
6511
       0,     0,   267,     0,     0,   268,   269,   270,     0,     0,
 
6512
     271,   272,   273,   274,   275,   276,   277,   278,   279,   280,
 
6513
     281,  1068,     0,  1069,     0,   284,   285,   286,   287,   288,
 
6514
     289,   290,     0,   292,     0,   293,   294,     0,   295,  1367,
 
6515
       0,  1070,   298,   299,     0,     0,   300,     0,     0,     0,
 
6516
     301,   302,     0,     0,     0,     0,     0,     0,   305,   306,
 
6517
     307,     0,     0,     0,   310,   311,   312,     0,   313,   314,
 
6518
     315,   316,   317,   318,  1071,   320,     0,   321,   322,   323,
 
6519
     324,   325,   326,   327,   328,   329,   330,   331,     0,   332,
 
6520
     333,     0,   335,   336,   337,   338,   339,   340,   341,     0,
 
6521
     342,   343,   344,     0,   345,  1376,   347,   348,     0,   349,
 
6522
    1073,     0,   351,   352,   353,   354,   355,   356,   357,   358,
 
6523
       0,   360,     0,   361,   362,     0,   363,   364,   365,   366,
 
6524
       0,  1074,  1075,     0,   369,     0,   370,     0,   372,     0,
 
6525
       0,   374,   375,   376,   377,   378,     0,     0,   379,   380,
 
6526
     381,   382,     0,     0,   383,   384,   385,   386,  1076,   388,
 
6527
       0,   389,   390,     0,     0,   391,   392,   393,   394,   395,
 
6528
     396,     0,  1077,   156,   157,   158,   159,   160,   161,   162,
 
6529
     163,     0,   164,   165,     0,     0,     0,     0,     0,     0,
 
6530
       0,   166,   167,     0,   168,     0,   169,   170,   171,     0,
 
6531
    1057,     0,  1058,  1059,     0,   175,   176,   177,   178,     0,
 
6532
       0,   179,  1060,  1061,   182,     0,   183,   184,   185,   186,
 
6533
       0,     0,     0,   188,   189,   190,   191,     0,   192,   193,
 
6534
       0,   195,     0,   196,   197,   198,     0,   199,     0,     0,
 
6535
       0,     0,     0,   200,   201,   202,   203,   204,  1062,  1063,
 
6536
     207,     0,   208,     0,   209,   210,   211,   212,   213,     0,
 
6537
     214,     0,     0,   215,   763,   217,   218,     0,   219,   220,
 
6538
     221,     0,   222,     0,   223,   224,   225,     0,   227,   228,
 
6539
       0,     0,   230,   231,  1064,     0,   233,     0,   234,     0,
 
6540
       0,     0,   235,   236,     0,   237,     0,     0,   239,     0,
 
6541
     240,   241,   242,     0,   243,   244,   245,     0,   246,   247,
 
6542
     248,   249,   250,     0,     0,     0,   252,   253,   254,   255,
 
6543
    1065,  1066,     0,  1067,     0,   259,     0,     0,   260,     0,
 
6544
     261,   262,   263,   264,   265,     0,     0,     0,   267,     0,
 
6545
       0,   268,   269,   270,     0,     0,   271,   272,   273,   274,
 
6546
     275,   276,   277,   278,   279,   280,   281,  1068,     0,  1069,
 
6547
       0,   284,   285,   286,   287,   288,   289,   290,     0,   292,
 
6548
       0,   293,   294,     0,   295,     0,     0,  1070,   298,   299,
 
6549
       0,     0,   300,     0,     0,     0,   301,   302,     0,     0,
 
6550
       0,     0,     0,     0,   305,   306,   307,     0,     0,     0,
 
6551
     310,   311,   312,     0,   313,   314,   315,   316,   317,   318,
 
6552
    1071,   320,     0,   321,   322,   323,   324,   325,   326,   327,
 
6553
     328,   329,   330,   331,     0,   332,   333,     0,   335,   336,
 
6554
     337,   338,   339,   340,   341,     0,   342,   343,   344,     0,
 
6555
     345,  1072,   347,   348,     0,   349,  1073,     0,   351,   352,
 
6556
     353,   354,   355,   356,   357,   358,     0,   360,     0,   361,
 
6557
     362,     0,   363,   364,   365,   366,     0,  1074,  1075,     0,
 
6558
     369,     0,   370,     0,   372,     0,     0,   374,   375,   376,
 
6559
     377,   378,     0,     0,   379,   380,   381,   382,     0,     0,
 
6560
     383,   384,   385,   386,  1076,   388,     0,   389,   390,     0,
 
6561
       0,   391,   392,   393,   394,   395,   396,     0,  1077,   156,
 
6562
     157,   158,   159,   160,   161,   162,   163,     0,   164,   165,
 
6563
       0,     0,     0,     0,     0,     0,     0,   166,   167,     0,
 
6564
     168,     0,   169,   170,   171,     0,  1057,     0,  1058,  1059,
 
6565
       0,   175,   176,   177,   178,     0,     0,   179,  1060,  1061,
 
6566
     182,     0,   183,   184,   185,   186,     0,     0,     0,   188,
 
6567
     189,   190,   191,     0,   192,   193,     0,   195,     0,   196,
 
6568
     197,   198,     0,   199,     0,     0,     0,     0,     0,   200,
 
6569
     201,   202,   203,   204,  1062,  1063,   207,     0,   208,     0,
 
6570
     209,   210,   211,   212,   213,     0,   214,     0,     0,   215,
 
6571
     763,   217,   218,     0,   219,   220,   221,     0,   222,     0,
 
6572
     223,   224,   225,     0,   227,   228,     0,     0,   230,   231,
 
6573
    1064,     0,   233,     0,   234,     0,     0,     0,   235,   236,
 
6574
       0,   237,     0,     0,   239,     0,   240,   241,   242,     0,
 
6575
     243,   244,   245,     0,   246,   247,   248,   249,   250,     0,
 
6576
       0,     0,   252,   253,   254,   255,  1065,  1066,     0,  1067,
 
6577
       0,   259,     0,     0,   260,     0,   261,   262,   263,   264,
 
6578
     265,     0,     0,     0,   267,     0,     0,   268,   269,   270,
 
6579
       0,     0,   271,   272,   273,   274,   275,   276,   277,   278,
 
6580
     279,   280,   281,  1068,     0,  1069,     0,   284,   285,   286,
 
6581
     287,   288,   289,   290,     0,   292,     0,   293,   294,     0,
 
6582
     295,     0,     0,  1070,   298,   299,     0,     0,   300,     0,
 
6583
       0,     0,   301,   302,     0,     0,     0,     0,     0,     0,
 
6584
     305,   306,   307,     0,     0,     0,   310,   311,   312,     0,
 
6585
     313,   314,   315,   316,   317,   318,  1071,   320,     0,   321,
 
6586
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
6587
       0,   332,   333,     0,   335,   336,   337,   338,   339,   340,
 
6588
     341,     0,   342,   343,   344,     0,   345,  1376,   347,   348,
 
6589
       0,   349,  1073,     0,   351,   352,   353,   354,   355,   356,
 
6590
     357,   358,     0,   360,     0,   361,   362,     0,   363,   364,
 
6591
     365,   366,     0,  1074,  1075,     0,   369,     0,   370,     0,
 
6592
     372,     0,     0,   374,   375,   376,   377,   378,     0,     0,
 
6593
     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
 
6594
    1076,   388,     0,   389,   390,     0,     0,   391,   392,   393,
 
6595
     394,   395,   396,     0,  1077,   156,   157,   158,   159,   160,
 
6596
     161,   162,   163,     0,   164,   165,     0,     0,     0,     0,
 
6597
       0,     0,     0,   166,   167,     0,   168,     0,   169,   170,
 
6598
     171,     0,  1057,     0,  1058,  1059,     0,   175,   176,   177,
 
6599
     178,     0,     0,   179,  1060,  1061,   182,     0,   183,   184,
 
6600
     185,   186,     0,     0,     0,   188,   189,   190,   191,     0,
 
6601
     192,   193,     0,   195,     0,   196,   197,   198,     0,   199,
 
6602
       0,     0,     0,     0,     0,   200,   201,   202,   203,   204,
 
6603
    1062,  1063,   207,     0,   208,     0,   209,   210,   211,   212,
 
6604
     213,     0,   214,     0,     0,   215,   763,   217,   218,     0,
 
6605
     219,   220,   221,     0,   222,     0,   223,   224,   225,     0,
 
6606
     227,   228,     0,     0,   230,   231,  1064,     0,   233,     0,
 
6607
     234,     0,     0,     0,   235,   236,     0,   237,     0,     0,
 
6608
     239,     0,   240,   241,   242,     0,   243,   244,   245,     0,
 
6609
     246,   247,   248,   249,   250,     0,     0,     0,   252,   253,
 
6610
     254,   255,  1065,  1066,     0,  1067,     0,   259,     0,     0,
 
6611
     260,     0,   261,   262,   263,   264,   265,     0,     0,     0,
 
6612
     267,     0,     0,   268,   269,   270,     0,     0,   271,   272,
 
6613
     273,   274,   275,   276,   277,   278,   279,   280,   281,  1068,
 
6614
       0,  1069,     0,   284,   285,   286,   287,   288,   289,   290,
 
6615
       0,   292,     0,   293,   294,     0,   295,     0,     0,  1070,
 
6616
     298,   299,     0,     0,   300,     0,     0,     0,   301,   302,
 
6617
       0,     0,     0,     0,     0,     0,   305,   306,   307,     0,
 
6618
       0,     0,   310,   311,   312,     0,   313,   314,   315,   316,
 
6619
     317,   318,  1071,   320,     0,   321,   322,   323,   324,   325,
 
6620
     326,   327,   328,   329,   330,   331,     0,   332,   333,     0,
 
6621
     335,   336,   337,   338,   339,   340,   341,     0,   342,   343,
 
6622
     344,     0,   345,     0,   347,   348,     0,   349,  1073,     0,
 
6623
     351,   352,   353,   354,   355,   356,   357,   358,     0,   360,
 
6624
     445,   361,   362,     0,   363,   364,   365,   366,     0,  1074,
 
6625
    1075,   446,   369,     0,   370,     0,   372,     0,     0,   374,
 
6626
     375,   376,   377,   378,     0,     0,   379,   380,   381,   382,
 
6627
     447,     0,   383,   384,   385,   386,  1076,   388,     0,   389,
 
6628
     390,     0,   414,   391,   392,   393,   394,   395,   396,   448,
 
6629
    1077,     0,     0,   415,     0,     0,     0,     0,     0,     0,
 
6630
       0,     0,     0,     0,     0,   449,     0,     0,     0,     0,
 
6631
       0,     0,   416,     0,     0,     0,     0,     0,     0,     0,
 
6632
       0,     0,     0,   450,     0,     0,     0,     0,     0,   417,
 
6633
       0,  -447,     0,     0,     0,     0,     0,     0,     0,     0,
 
6634
       0,     0,     0,     0,     0,     0,     0,   418,     0,     0,
 
6635
       0,     0,   451,   419,     0,     0,     0,   452,     0,     0,
 
6636
       0,     0,     0,     0,     0,   420,     0,     0,     0,     0,
 
6637
     453,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
6638
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
6639
       0,     0,     0,     0,  -563,   421,     0,     0,     0,   422,
 
6640
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
6641
       0,     0,  -549,     0,     0,     0,     0,     0,     0,     0,
 
6642
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
6643
       0,     0,     0,     0,  -373,     0,     0,     0,     0,     0,
 
6644
       0,     0,     0,     0,     0,   423,   454,     0,     0,     0,
 
6645
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
6646
       0,     0,     0,     0,     0,     0,   455,     0,     0,     0,
 
6647
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
6648
       0,     0,     0,     0,     0,   456,     0,     0,   424,   457,
 
6649
     425,   458,     0,     0,     0,     0,   459,     0,     0,     0,
 
6650
       0,     0,     0,     0,     0,     0,     0,     0,  -373,     0,
 
6651
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
6652
       0,   460,   461,     0,     0,     0,     0,   426,     0,     0,
 
6653
       0,  -563,     0,   427,   462,     0,     0,     0,     0,   463,
 
6654
       0,     0,     0,     0,     0,     0,     0,     0,   464,     0,
 
6655
       0,     0,     0,     0,     0,     0,     0,   465,     0,     0,
 
6656
       0,     0,     0,     0,   428,   429,     0,   430,     0,     0,
 
6657
       0,     0,     0,     0,     0,     0,   431,     0,     0,     0,
 
6658
     432,   433,     0,     0,     0,   434,     0,     0,     0,     0,
 
6659
     435
 
6660
};
 
6661
 
 
6662
static const short yycheck[] =
 
6663
{
 
6664
       0,   501,   694,    43,   424,    12,   146,   670,     0,  1135,
 
6665
     139,  1125,   141,  1113,   677,    39,  1153,   143,   452,   138,
 
6666
     629,   147,   456,   142,   153,   790,   741,    20,   154,   533,
 
6667
     464,   536,   634,    26,   454,     0,     0,   632,   617,     0,
 
6668
    1090,    32,   707,    43,    21,   545,   625,  1459,  1537,  1245,
 
6669
       7,     8,  1705,  1746,   586,    32,    13,    14,   705,   851,
 
6670
     632,    18,  1580,    20,    21,  1718,   418,  1054,   908,    26,
 
6671
     600,    28,    41,    30,    31,    32,  1556,    34,  1187,    36,
 
6672
      37,  1527,  1528,   662,     0,  1102,  1102,   666,  1102,  1102,
 
6673
    1924,  1898,   885,   672,  1102,  1102,   530,   449,    38,   678,
 
6674
     471,     0,    19,     0,    24,    38,    24,    18,  1381,  1382,
 
6675
     531,   596,    11,   534,    11,  1072,   762,     0,    81,  1522,
 
6676
    2041,   752,   753,     0,  2344,  1316,    11,  1199,  1200,  1201,
 
6677
       0,     5,    17,     0,    23,  1207,  1127,    45,     0,  1211,
 
6678
    1212,    86,   807,    86,    52,   776,  1218,    23,    86,    57,
 
6679
      81,    55,    45,    37,    86,  1227,    43,  1229,   120,    11,
 
6680
       7,     7,   137,    38,    57,    17,  2565,  2271,    81,  2273,
 
6681
    1242,    97,  1244,     0,   120,   144,    95,   211,   154,    62,
 
6682
     149,   150,   139,   140,   141,    66,   143,   123,   145,   146,
 
6683
     147,   148,    24,    49,   151,   152,   153,   154,   105,   122,
 
6684
     704,    81,   105,   148,   209,   148,   121,     0,   209,   117,
 
6685
     148,   241,   122,    12,    43,    52,   148,   215,  1885,  1886,
 
6686
    1887,  1888,   257,    81,   117,   109,   646,    86,   214,   144,
 
6687
      24,   105,    24,    83,    19,   127,    95,   173,   156,   157,
 
6688
     121,   124,    18,   852,   159,    83,   205,   104,    95,    95,
 
6689
    2596,   135,   167,  1045,    81,   270,   201,   202,    83,   202,
 
6690
    1247,    11,    11,   144,   158,   120,    84,    17,    22,    62,
 
6691
     331,   224,    24,    84,   257,   224,  2655,  2018,   159,   881,
 
6692
     340,   138,    14,    15,   424,   203,   167,   200,   722,  2509,
 
6693
     885,   420,   265,   216,    31,   414,   422,    43,   830,   359,
 
6694
     426,  2042,   265,   364,   433,   143,    88,   188,   742,   435,
 
6695
    1075,   251,   125,   885,   454,  2694,   134,   270,   251,   120,
 
6696
     265,   270,   265,   134,   359,   233,   445,   265,  1454,   359,
 
6697
     364,   124,   451,   265,   317,  1385,   334,   352,   467,   254,
 
6698
     233,    86,    91,    45,   848,   239,   955,   205,   261,   259,
 
6699
     149,   270,  1044,  2699,   359,   205,   212,   293,   359,   295,
 
6700
     323,   284,   200,   255,  1853,   272,  2765,   251,   252,   272,
 
6701
    1561,   230,   317,   254,   317,   200,   251,   224,     8,   317,
 
6702
     264,   340,   136,   257,  2488,   317,   359,  2308,   364,   364,
 
6703
     309,   327,   277,    23,   278,  2615,   359,    27,   272,   288,
 
6704
     246,   285,   364,   329,   156,   313,   310,  1479,  1522,   340,
 
6705
      40,    41,   288,   344,   359,   117,   359,  1063,   364,  1376,
 
6706
     313,   359,   907,   270,   364,   277,  1118,  2120,  2121,  1060,
 
6707
    1061,   364,   350,   351,   352,   353,   354,   355,  1069,  1851,
 
6708
    1852,   361,   359,   361,   328,   344,   357,   344,  1860,   360,
 
6709
    2117,   362,   351,   364,   351,  1646,   337,  1448,   415,  1054,
 
6710
     340,   418,   299,   420,   363,   422,   363,   424,   889,   426,
 
6711
     427,   428,   359,   602,   431,   444,   433,   360,   435,   472,
 
6712
     363,   474,  1054,   476,   441,  1132,   363,   480,  1761,   446,
 
6713
    1763,  1138,   449,   363,   865,   452,   363,   454,   299,   456,
 
6714
     457,   363,   922,   924,   461,   462,   646,   464,   138,   364,
 
6715
     467,   340,   142,   340,   144,    16,  1588,   636,  1714,   149,
 
6716
     150,  1186,  1187,   355,   643,   158,   655,   277,   949,   361,
 
6717
     359,   233,  1197,  1198,  1937,  2202,   363,   319,  1941,    81,
 
6718
     669,  1381,  1945,    81,  1209,  1210,   331,   332,    38,    76,
 
6719
     507,   364,   509,  1346,   683,   512,   556,    29,  1223,  1224,
 
6720
     352,   353,   354,   355,   556,    86,   685,   360,   697,   361,
 
6721
     363,   181,   317,   530,   531,   132,   533,   534,    91,   325,
 
6722
     123,   357,  1213,  1214,   360,   265,   362,   121,   364,   156,
 
6723
    1704,   556,   556,    11,   340,   556,  2377,  1870,   350,   351,
 
6724
     352,   353,   354,   355,    75,   132,   239,    62,   170,   361,
 
6725
    1114,   313,   120,   359,    62,  1280,   410,  1409,    16,   103,
 
6726
    1412,  1413,    84,   115,   181,    80,   950,   148,   154,    76,
 
6727
     173,    86,  1234,   358,   660,    85,  2470,   115,    45,   364,
 
6728
     556,  1713,  2449,   323,   292,   602,    57,   214,   299,   211,
 
6729
    1923,   106,  1247,   263,   181,   156,  1156,   184,   200,  2440,
 
6730
     291,   133,   200,   257,   246,   137,   692,   249,   152,   140,
 
6731
      81,    56,   134,    91,    81,  1247,   124,  1279,   170,   359,
 
6732
     340,    81,   639,    31,   332,   132,   280,   200,   270,   646,
 
6733
     647,   225,   170,   148,   651,   357,   209,   169,   655,    85,
 
6734
     362,    16,   192,   729,   661,   155,   263,   111,  1758,   709,
 
6735
     239,   505,   669,   364,    99,   216,   299,   709,  1152,   211,
 
6736
    1154,  1155,   331,  1157,   724,    73,   683,   684,  1800,   686,
 
6737
     524,   364,   724,   211,   181,   219,   263,   184,   532,   281,
 
6738
     697,   275,   284,   272,   709,   709,   746,   704,   709,   331,
 
6739
     293,  1346,   295,   153,  2166,   364,  2245,  2538,   156,  2171,
 
6740
    2172,   251,   719,   346,   764,   722,   723,   807,   200,   155,
 
6741
     727,   340,  1096,   173,  1346,   893,  1100,     9,   302,   362,
 
6742
     270,   738,   922,   413,   414,   742,  1110,   744,   317,   200,
 
6743
     359,   176,  1892,   200,   794,    27,   317,     0,   205,   147,
 
6744
    1220,   205,   274,  1875,  1876,   209,   238,   807,   335,   266,
 
6745
     265,  2257,  2292,   931,   444,   445,   263,   302,   216,   290,
 
6746
     291,   451,   354,  1937,  1961,   325,   233,  1941,   312,   232,
 
6747
     362,  1945,   359,   224,   291,   242,  1415,  1416,    52,   224,
 
6748
     340,   156,   343,    57,   192,   346,   347,   348,   333,   350,
 
6749
     351,   352,   353,   354,   355,   246,   882,  1549,  2261,   359,
 
6750
     361,   232,   317,  2266,   494,    36,  1396,  2270,   121,    19,
 
6751
     327,   501,   872,   873,    74,   875,  1893,  1893,   214,  1893,
 
6752
    1893,   511,  1869,  1992,  1318,  1893,  1893,    37,   335,   282,
 
6753
     283,   848,  1539,  1540,   363,   921,   853,   854,   261,   302,
 
6754
     224,   216,   306,    74,   359,   862,   313,   292,   239,   294,
 
6755
     314,   103,   266,   409,   262,   545,   247,  1046,   548,   354,
 
6756
    1760,  1050,   246,   115,   293,   249,   295,   362,   558,   292,
 
6757
     333,   302,   889,  2005,   326,  1582,   267,   291,   338,   339,
 
6758
     340,   437,   224,  2015,   344,   343,   270,   340,   346,   347,
 
6759
     348,   351,   350,   351,   352,   353,   354,   355,  1392,   109,
 
6760
     152,   339,   333,   361,   246,   922,   344,   924,   139,   332,
 
6761
     344,   593,   340,   327,  1639,  1101,   945,   224,   170,   214,
 
6762
     180,  2499,   182,    19,   358,   135,  2398,    31,   270,  2401,
 
6763
    2402,   359,   949,    37,  1659,   617,  1348,    66,  1530,   246,
 
6764
     224,    37,   359,   625,  2200,   635,   636,   331,  2661,   180,
 
6765
    1139,   182,   162,   643,   358,   809,  1042,  2710,  1810,   211,
 
6766
     364,   192,   246,   270,  1816,  1817,   820,   219,   343,  1694,
 
6767
     304,   346,   347,   348,  1153,   350,   351,   352,   353,   354,
 
6768
     355,  1706,  1707,   224,  2737,   224,   361,  2700,   224,   679,
 
6769
     680,   681,   121,     8,    76,   685,   344,   851,    19,     5,
 
6770
     331,   332,   340,   351,    10,   246,   120,   246,    23,  1095,
 
6771
     246,    17,    27,   109,   236,   144,    37,   340,  1870,   250,
 
6772
    1220,   359,  2485,   137,  2573,    40,   340,    33,   359,  1046,
 
6773
     159,   721,   248,  1050,   270,  1052,   359,   359,   167,   135,
 
6774
    1747,  1127,   252,   246,   360,   359,   249,   363,   279,  1135,
 
6775
     132,   741,   331,   332,   264,    37,  2188,  1719,   340,   188,
 
6776
     312,   340,   331,   332,  1164,  1125,   162,   270,   278,    42,
 
6777
      43,   340,  2204,   331,   332,   285,  1143,   359,    59,  2551,
 
6778
     359,  2337,   331,   332,  1101,   214,  1103,  2261,   109,     7,
 
6779
     359,    25,  2266,   340,   932,    13,  2270,  1114,   936,   181,
 
6780
     938,   359,   184,    31,  1164,  2672,  2673,   140,   360,  2676,
 
6781
      44,  2678,   359,  1173,   135,   162,  1133,   355,   328,  1826,
 
6782
    1827,  1173,  1139,   361,   156,   254,   360,   109,   331,   363,
 
6783
    1181,    49,   360,  2243,   149,  1152,   364,  1154,  1155,    67,
 
6784
    1157,   162,   359,  1180,    62,   344,  1711,  1164,  1173,  1173,
 
6785
     732,   733,  1173,   135,   360,   346,   252,  1343,   364,    87,
 
6786
     357,  1347,   359,  1180,  1181,   362,   357,  1184,   264,   235,
 
6787
     860,   362,    90,   339,   102,  1361,   214,    95,   344,   360,
 
6788
      98,   263,   278,   364,  1270,   351,   331,   332,   116,   285,
 
6789
     319,  1251,   360,   360,   359,  1675,   364,   364,   872,   873,
 
6790
      45,   875,   130,  1220,   293,  1391,   295,  1393,   337,   360,
 
6791
    1985,   360,    57,   364,  1869,   364,   560,  1403,   562,   360,
 
6792
    1406,  2046,  2047,   364,   352,   353,   354,   355,   331,   332,
 
6793
       0,   252,   328,   361,  1728,   331,    81,  1869,    83,    25,
 
6794
     360,  1222,   336,   264,   364,   158,  1953,  1433,  1955,  1956,
 
6795
    1436,   362,  1438,   335,   217,   945,   338,   278,   340,   360,
 
6796
     156,  1450,   360,   364,   285,   360,   364,  1456,  1457,   364,
 
6797
     252,   293,   360,   295,   360,  2531,   364,   205,   364,  1986,
 
6798
     217,  2441,   264,   360,   212,   214,   360,   364,  1782,  1951,
 
6799
     364,   360,    62,  1274,  2468,   364,   278,  1638,   143,  1640,
 
6800
    1641,  1318,   336,   285,  1798,   360,   224,   328,  1802,   364,
 
6801
     238,  2485,   299,  1975,   872,   873,    91,   875,   350,   351,
 
6802
     352,   353,   354,   355,   331,   332,  1343,  1344,  2053,   361,
 
6803
    1347,  1348,   214,   103,   360,  1352,   111,   357,   364,   359,
 
6804
     293,  1358,   295,    25,  1361,   115,   328,  1364,   336,   360,
 
6805
     120,   158,   270,   364,   124,   200,   270,   127,  1922,   129,
 
6806
     205,   119,  1448,   360,   360,  2562,   360,   364,  1454,   360,
 
6807
     364,  1729,  1730,   364,  1391,  1392,  1393,  1394,  1395,    35,
 
6808
    1397,  1398,   152,    16,  1470,   352,  1403,    57,   233,  1406,
 
6809
    1407,  1408,   360,  2055,   360,   360,   364,   242,   413,   364,
 
6810
     170,   362,   360,  1420,  1421,  1422,   364,  1424,  1425,  1426,
 
6811
    1427,  1428,  1429,  1430,   360,   359,  1433,  1434,   364,  1436,
 
6812
    1437,  1438,  1522,  1490,   360,   200,   359,  2096,   364,  1942,
 
6813
     205,  1944,   359,  1450,   209,  1125,  1731,  1732,   360,  1456,
 
6814
    1457,   211,   364,  1297,   359,   246,  1136,  1137,  1534,   219,
 
6815
     359,   362,   270,   123,   350,   351,   352,   353,   354,   355,
 
6816
     360,   214,  1522,  1153,   364,   361,  1156,   360,   313,   360,
 
6817
     140,   364,   168,   364,  1491,  1675,  1222,   360,  1168,   494,
 
6818
     360,   364,  2656,   360,   364,  1571,   501,   364,   359,  1506,
 
6819
    1984,   360,   156,  1510,   360,   364,   511,   360,   364,   208,
 
6820
     360,   364,   162,   173,   364,   359,  1523,    45,   360,  2669,
 
6821
    1527,  1528,   364,   359,   331,    19,    25,    25,   224,   162,
 
6822
    1537,   291,   319,   156,   359,   364,  1726,   359,   137,  2252,
 
6823
     545,   306,    19,   548,   214,   214,   116,  1554,   168,   314,
 
6824
     115,   115,   312,   558,   359,   340,   340,   156,   218,   359,
 
6825
     359,   359,   216,   359,   359,   229,   359,   359,   340,  1659,
 
6826
     330,   156,   340,  1580,   340,   222,   359,   359,  2275,   359,
 
6827
     359,     7,   359,   340,   359,   359,   359,    13,   359,   359,
 
6828
    1766,    19,   359,   216,   168,   359,  1276,   357,  2720,  2721,
 
6829
     360,   359,   362,   363,   359,   364,   115,   299,   299,  1659,
 
6830
     362,  1455,   299,  2789,   299,  1459,   299,   216,   214,   264,
 
6831
     299,   205,  1672,    49,   318,  1699,  1700,   292,   299,   364,
 
6832
     635,   216,   299,   293,   261,   295,    62,  1317,   299,   319,
 
6833
     299,  1648,  1692,   299,   304,    52,   299,   214,   300,   304,
 
6834
    1621,  1622,   364,   313,  1704,  1626,  1500,   299,   299,  2143,
 
6835
    2144,   304,   299,   261,    90,   299,   359,   214,  1675,    95,
 
6836
    1514,     7,    98,   214,   679,   680,   681,    13,    14,    19,
 
6837
    1870,   359,    18,   156,    20,  1656,  1657,   331,    18,   343,
 
6838
      26,   359,    28,   347,   348,   325,   350,   351,   352,   353,
 
6839
     354,   355,  1778,     9,  1780,    81,   327,   361,  1715,   176,
 
6840
    1717,   359,   115,   214,    19,   330,   721,   262,    19,   359,
 
6841
     343,  1728,   319,   346,   347,   348,   299,   350,   351,   352,
 
6842
     353,   354,   355,   359,   359,   323,   741,   359,   361,  1746,
 
6843
     204,   120,   359,  1819,   343,   297,   329,   346,   347,   348,
 
6844
     344,   350,   351,   352,   353,   354,   355,   297,   343,  1766,
 
6845
    1767,  1768,   361,   364,   270,   350,   351,   352,   353,   354,
 
6846
     355,   361,   297,  1849,   120,  1782,   361,  2406,     0,   359,
 
6847
     359,   299,   302,   364,   360,   152,   364,  1963,   215,   209,
 
6848
     170,  1798,  1961,    56,   360,  1802,   359,   160,   224,   160,
 
6849
     359,  2498,   214,   205,   205,   205,   220,  1487,   299,   145,
 
6850
     299,  1987,   148,  2528,   261,   151,   152,   360,   364,    35,
 
6851
     246,  2000,   364,   291,   246,  1901,   239,    19,   156,  1509,
 
6852
      16,   156,   319,   156,   212,  1515,  1912,    18,    24,   346,
 
6853
      62,   357,  1522,    29,   270,   357,  1853,   299,   156,   299,
 
6854
     299,   299,   214,   115,   218,   860,  1863,    19,   128,   131,
 
6855
     131,   115,   364,   360,   360,     8,  1916,  1917,   291,   364,
 
6856
     125,   183,   214,   120,  1916,  1917,   364,    35,   360,   360,
 
6857
    1930,   103,   360,   336,   360,  1621,  1622,  1937,  1930,   360,
 
6858
    1626,  1941,   364,   115,   360,  1945,   336,   360,   120,  2369,
 
6859
     360,   360,   124,   360,   360,   127,   360,   129,   216,   360,
 
6860
     120,  1918,   336,   299,   360,  1922,  2613,   360,   359,   170,
 
6861
    1656,  1657,  1998,  1973,  1931,   359,   359,  1934,   360,   359,
 
6862
     152,  1973,   146,   224,   170,   316,   216,   205,   226,   226,
 
6863
     299,  1948,   299,   360,   156,   360,   357,   133,   170,   156,
 
6864
     156,   137,   360,  1797,   263,   184,  1963,   214,  2034,   170,
 
6865
     309,   360,   346,   248,   359,   106,   360,  1974,   364,   212,
 
6866
     156,   157,  2048,   299,   212,   319,   359,  1984,   360,   214,
 
6867
    1987,   159,   159,   169,   221,   359,   217,   360,   105,   211,
 
6868
     105,  2081,   357,  2000,  2478,  2071,   101,   219,   120,   115,
 
6869
     360,    43,   127,   361,  2488,   360,   360,  1851,  1852,  2083,
 
6870
    2084,  2085,  2086,   360,   200,   360,  1860,   203,  1698,   360,
 
6871
     359,   359,   299,  1867,  1704,   299,  1870,   261,   146,  2771,
 
6872
     216,  2081,   218,  2583,   309,   343,   156,   156,   346,   347,
 
6873
     348,   299,   350,   351,   352,   353,   354,   355,   156,   299,
 
6874
     299,  2022,   359,   361,  2025,  2026,  2027,  2028,  2029,  2030,
 
6875
    2031,  2032,  2033,   343,  2035,   360,   346,   347,   348,   291,
 
6876
     350,   351,   352,   353,   354,   355,   358,  1921,   160,   415,
 
6877
     358,  2157,    19,   115,   218,   142,   319,    19,   274,    19,
 
6878
     312,   364,   428,   359,   322,   431,   159,   124,  2141,   359,
 
6879
     359,   120,  2073,  2074,   360,   441,   359,   359,   330,   120,
 
6880
     446,   209,   360,  2120,  2121,   360,   360,   359,    35,  2603,
 
6881
     360,   457,   129,   319,   309,   461,   462,   205,   205,    88,
 
6882
     156,  1136,  1137,    83,   143,   357,  2143,  2144,   360,   358,
 
6883
     362,   363,   122,   122,   120,   140,  2222,   319,    96,   106,
 
6884
     359,  1156,   360,    82,  2161,  2162,    82,   343,   161,   120,
 
6885
     346,   347,   348,  1168,   350,   351,   352,   353,   354,   355,
 
6886
     299,   507,   359,   509,    19,   361,   217,   359,   364,  2369,
 
6887
     360,   242,    19,   205,   237,   179,   292,   212,   212,    19,
 
6888
     115,   214,    54,   214,  2370,   292,    96,   214,   214,  2206,
 
6889
    2207,  2208,   359,  2210,    92,  2381,   205,  2383,   257,    86,
 
6890
     317,  2261,   364,   258,   258,  2059,  2266,  1897,   364,   106,
 
6891
    2270,     6,  2229,  1903,  2231,   237,   359,  2234,   360,  2236,
 
6892
    2237,   241,   556,  1489,  1715,   854,  2234,  1432,  2245,  1820,
 
6893
    2211,  1420,  2231,  2154,  1743,  2434,  2706,  1863,  2734,  2690,
 
6894
    2257,  2689,  2259,  2715,   138,  2580,  2646,  1937,   142,  2236,
 
6895
    2278,  1941,  1111,  2393,  2271,  1945,  2273,  2463,  2344,  1482,
 
6896
    2801,  1276,  2413,  2775,  2412,  2282,  2751,  1097,  1869,  2749,
 
6897
    1960,  1961,  2802,    26,   502,   723,  2022,  2656,  2282,  2025,
 
6898
    2026,  2027,  2028,  2029,  2030,  2031,  2032,  2033,  2142,  2035,
 
6899
    1760,  1382,  2250,   639,  2148,  1985,  2150,  1381,  2470,  2632,
 
6900
    2764,   647,  1317,  2800,   544,   651,    19,  1317,   709,  1974,
 
6901
    2460,   709,  2166,  1723,   880,   661,   879,  2171,  2172,  1314,
 
6902
    2373,  1733,  1330,  1704,  1522,    24,  2486,  2073,  2074,  1943,
 
6903
      29,  1469,  2058,  2229,  1870,  1672,  1590,  1670,  1277,  1717,
 
6904
     686,  2497,   684,    -1,  2286,    -1,    -1,    -1,    -1,    -1,
 
6905
    2204,  2205,  2369,  2370,  2371,  2372,    -1,    -1,  2339,  2340,
 
6906
      -1,    -1,    -1,    -1,  2381,  2382,  2383,    -1,  2421,    -1,
 
6907
      -1,    -1,    -1,   719,    -1,    -1,    -1,  2394,    -1,    -1,
 
6908
      -1,   727,    -1,  2562,    -1,  2445,    -1,    -1,    -1,    -1,
 
6909
    2244,    -1,    -1,  2445,    -1,    -1,    -1,    -1,  2088,  2089,
 
6910
      -1,    -1,  2591,    -1,  2490,    -1,    -1,    -1,    -1,    -1,
 
6911
      -1,   660,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
6912
      -1,    -1,    -1,  2509,    -1,  2485,    -1,    -1,    -1,    -1,
 
6913
    2516,    -1,    -1,    -1,   133,    -1,    -1,    -1,   137,    -1,
 
6914
      -1,    -1,    -1,   692,    -1,    -1,  2463,    -1,    -1,    -1,
 
6915
      -1,  2468,    -1,    -1,    -1,    -1,    -1,   156,   157,    -1,
 
6916
      -1,  2478,    -1,    -1,    -1,  2211,  2645,    -1,  2657,    -1,
 
6917
     169,  2488,  1487,    -1,    -1,  2492,    -1,    -1,    -1,    -1,
 
6918
     729,    -1,  2499,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
6919
      -1,    -1,    -1,    -1,  1509,    -1,    -1,    -1,    -1,    -1,
 
6920
    1515,   200,    -1,    -1,   203,    -1,    -1,    -1,    -1,    -1,
 
6921
      -1,  2201,  2366,    -1,    -1,    -1,    -1,   216,    -1,    -1,
 
6922
     414,    -1,    -1,    -1,    -1,    -1,  2507,  2217,    -1,  2615,
 
6923
      -1,    -1,    -1,    -1,    -1,  2225,  2517,  2518,    -1,    -1,
 
6924
      -1,    -1,    -1,    -1,  2398,    -1,    -1,  2401,  2402,  2749,
 
6925
      -1,   445,    -1,    -1,    -1,    -1,  2573,   451,  2575,    -1,
 
6926
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2748,
 
6927
      -1,  2261,    -1,    -1,  2591,   274,  2266,    -1,  2595,  2596,
 
6928
    2270,    -1,    -1,    -1,    -1,    -1,  2603,    -1,    -1,    -1,
 
6929
      -1,    -1,    -1,  2339,  2340,    -1,    -1,    -1,    -1,    -1,
 
6930
      -1,    -1,   851,    -1,    -1,    -1,    -1,  2786,    -1,    -1,
 
6931
      -1,    -1,    -1,    -1,    -1,  2469,    -1,    -1,    -1,    -1,
 
6932
      -1,    -1,    -1,  2640,    10,    -1,    -1,    -1,    -1,    -1,
 
6933
      -1,    -1,    -1,   882,    -1,   529,  2722,    -1,    -1,  2656,
 
6934
    2657,    -1,    -1,    -1,   343,    -1,    -1,   346,   347,   348,
 
6935
      -1,   350,   351,   352,   353,   354,   355,    -1,    -1,   908,
 
6936
      -1,    -1,   361,    -1,    -1,    -1,  2356,  2357,  2358,  2359,
 
6937
      -1,    -1,   921,    59,    -1,    -1,    -1,  2777,    -1,    -1,
 
6938
    2697,    -1,  2699,  1698,    -1,    -1,    -1,    -1,    -1,    75,
 
6939
      -1,    -1,    -1,  2710,    -1,    -1,    -1,  2551,    -1,    -1,
 
6940
      -1,  2555,    -1,  2789,  2764,    -1,    -1,    93,  2725,  1621,
 
6941
    1622,    -1,    -1,    -1,  1626,    -1,    -1,  2777,    -1,    -1,
 
6942
    2737,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
6943
      -1,    -1,  2749,    -1,    -1,  2589,   122,   631,   632,    -1,
 
6944
    2800,   127,   636,    -1,  1656,  1657,    -1,    -1,    -1,   643,
 
6945
      -1,    -1,    -1,    -1,   140,    -1,    -1,  1103,  2775,    -1,
 
6946
      -1,  2507,    -1,    -1,    -1,    -1,   660,    -1,    -1,    -1,
 
6947
      -1,  2517,  2518,    -1,    -1,    -1,   162,    -1,  2468,    -1,
 
6948
      -1,    -1,    -1,    -1,  2801,    -1,    -1,  1133,    -1,    -1,
 
6949
      -1,   685,    -1,  1042,    -1,  2485,    -1,    -1,   692,    -1,
 
6950
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    16,    -1,
 
6951
      -1,    -1,    -1,   707,    -1,    -1,    24,    -1,    -1,    -1,
 
6952
      -1,    29,    -1,  1072,    -1,    -1,    -1,    -1,    -1,    -1,
 
6953
     216,    -1,    -1,    -1,    -1,   729,    16,    -1,    -1,    -1,
 
6954
      -1,    -1,    -1,    -1,    24,   660,  1095,    -1,    -1,    29,
 
6955
      -1,    -1,    -1,  2707,  2708,    -1,   750,  2711,  2712,    -1,
 
6956
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   255,
 
6957
      -1,  2725,  2562,    -1,  2564,   261,    -1,   692,  1127,    -1,
 
6958
     266,    -1,  1897,   777,    -1,    -1,  1135,    -1,  1903,    -1,
 
6959
      -1,    -1,    -1,  2583,    -1,    -1,    -1,    -1,    -1,    -1,
 
6960
      -1,    -1,    -1,    -1,    -1,   291,   292,    -1,    -1,  2599,
 
6961
     804,   805,    -1,   807,   729,    -1,    -1,    -1,   304,    -1,
 
6962
      -1,  2775,    -1,   309,    -1,   133,    -1,    -1,    -1,   137,
 
6963
      -1,   825,   318,    -1,    -1,   115,  2626,    -1,    -1,    -1,
 
6964
     120,    -1,    -1,    -1,    -1,  1960,    -1,  2801,   156,   157,
 
6965
      -1,    -1,    -1,   133,    -1,  2645,    -1,   137,    -1,    -1,
 
6966
      -1,   169,    -1,    -1,    -1,    -1,  2656,    -1,    -1,    -1,
 
6967
    1985,    -1,    -1,    -1,    -1,    -1,   156,   157,    -1,    -1,
 
6968
     874,    -1,    -1,   877,   878,    -1,    -1,    -1,   882,   169,
 
6969
      -1,   885,   200,    -1,    -1,   203,    -1,    -1,  1344,    -1,
 
6970
      -1,    -1,    -1,    -1,    -1,    -1,  1352,    -1,   216,    -1,
 
6971
     218,    -1,  1358,    -1,   908,    -1,    -1,    -1,  1364,    -1,
 
6972
     200,  1270,    -1,   203,    -1,    -1,    -1,   921,    -1,    -1,
 
6973
      -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,   218,    -1,
 
6974
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1394,  1395,
 
6975
      -1,  1397,    -1,    -1,    -1,    -1,    -1,    -1,  2748,    -1,
 
6976
      -1,  1407,  1408,    -1,    -1,    -1,   274,   882,    -1,    -1,
 
6977
      -1,    -1,    -1,  2088,  2089,    24,  1422,    -1,  1424,  1425,
 
6978
      29,  1427,  1428,  1429,  1430,    -1,    -1,    -1,  1434,    -1,
 
6979
      -1,  1437,    -1,   908,   274,    -1,  2786,    -1,    -1,    -1,
 
6980
      -1,    -1,    -1,    -1,    24,    -1,   921,    -1,    -1,    29,
 
6981
    2022,    -1,    -1,  2025,  2026,  2027,  2028,  2029,  2030,  2031,
 
6982
    2032,  2033,    -1,  2035,    -1,    -1,    -1,  1376,    -1,    -1,
 
6983
      -1,    -1,  1381,  1382,    -1,   343,    -1,    -1,   346,   347,
 
6984
     348,    -1,   350,   351,   352,   353,   354,   355,  1042,    -1,
 
6985
     358,    -1,    -1,   361,    -1,    -1,    -1,   365,    -1,    -1,
 
6986
    1054,  2073,  2074,   343,    -1,    -1,   346,   347,   348,    -1,
 
6987
     350,   351,   352,   353,   354,   355,    -1,    -1,  1072,    -1,
 
6988
      -1,   361,   102,    -1,   133,    -1,  2201,    -1,   137,    -1,
 
6989
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1448,
 
6990
      -1,  1095,  2217,    -1,    -1,  1454,    -1,   156,   157,    -1,
 
6991
    2225,    -1,    -1,   133,    -1,    -1,    -1,   137,    -1,    -1,
 
6992
     169,  1470,     8,    -1,    -1,    -1,    -1,  1042,    -1,    -1,
 
6993
      -1,  1125,    -1,  1127,    -1,    -1,   156,   157,    -1,    -1,
 
6994
      -1,  1135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   169,
 
6995
      -1,    -1,    -1,    -1,   203,    -1,    -1,  1072,    -1,  1153,
 
6996
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,    -1,
 
6997
      56,    -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    65,
 
6998
    1095,    -1,    -1,   203,    -1,  1534,    -1,    -1,    -1,    -1,
 
6999
      -1,    -1,  1186,  1187,    -1,    -1,   216,    -1,    -1,  2211,
 
7000
    1194,    -1,    -1,  1197,  1198,    -1,    -1,    -1,    -1,    -1,
 
7001
      -1,    -1,  1127,    -1,   100,  1209,  1210,    -1,    -1,    -1,
 
7002
    1135,    -1,  1571,  1217,    -1,   274,    -1,  1221,  1222,  1223,
 
7003
    1224,    -1,    -1,    -1,    -1,    -1,    -1,  1231,  1232,    -1,
 
7004
      -1,  2356,  2357,  2358,  2359,    -1,    -1,    -1,    -1,    -1,
 
7005
      -1,   137,  1246,  1247,   274,   141,  1250,    -1,    -1,    -1,
 
7006
    1254,    -1,    -1,    -1,  1258,    -1,    -1,  1261,  1262,  1263,
 
7007
    1264,  1265,  1266,  1267,  1268,  1269,  1270,    24,  1272,    -1,
 
7008
      -1,    -1,    29,  1277,    -1,    -1,  1280,    -1,    -1,    -1,
 
7009
      -1,    -1,   178,    -1,   343,    -1,    -1,   346,   347,   348,
 
7010
      -1,   350,   351,   352,   353,   354,   355,   193,   194,   195,
 
7011
     196,   197,   361,   199,    -1,    -1,    -1,    -1,    -1,    -1,
 
7012
      -1,  1767,  1768,   343,    -1,    -1,    -1,  2339,  2340,    -1,
 
7013
     350,   351,   352,   353,   354,   355,    -1,    -1,    -1,    -1,
 
7014
     226,   361,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7015
      -1,    -1,  1346,    -1,    -1,  1270,    -1,    -1,    -1,    -1,
 
7016
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1362,   255,
 
7017
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7018
      -1,    -1,  1376,    -1,    -1,    -1,   133,  1381,  1382,   660,
 
7019
     137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7020
      -1,   287,    -1,   289,    -1,    -1,    -1,    -1,    -1,   156,
 
7021
     157,  1760,  1761,    -1,  1763,    -1,    -1,    -1,    -1,    -1,
 
7022
      -1,   692,   169,    -1,    -1,   311,    -1,    -1,    -1,  1778,
 
7023
      -1,  1780,   318,    -1,    -1,   321,    -1,    -1,    -1,    -1,
 
7024
      -1,    -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,  2564,
 
7025
      -1,    29,    -1,  1447,  1448,    -1,   203,    -1,   729,    -1,
 
7026
    1454,  1376,    -1,    -1,    -1,    -1,  1381,  1382,  2583,   216,
 
7027
    1819,    -1,  1918,    -1,  1468,    -1,  1470,    -1,    -1,    -1,
 
7028
      -1,    -1,    -1,    -1,  2599,   660,    -1,    -1,    -1,    -1,
 
7029
      -1,    -1,    -1,    -1,    -1,  2507,    -1,    -1,    -1,    -1,
 
7030
    1849,    -1,    -1,    24,    -1,  2517,  2518,    -1,    29,    -1,
 
7031
      -1,  2626,    -1,    -1,    -1,    -1,    -1,   692,    -1,    -1,
 
7032
      -1,  1870,    -1,    -1,    -1,    -1,    -1,   274,  1522,    -1,
 
7033
      -1,    -1,    -1,  1448,    -1,    -1,    -1,  1531,    -1,  1454,
 
7034
    1534,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7035
    1544,    -1,  1901,    -1,   729,  1470,    -1,    -1,    -1,   137,
 
7036
      -1,    -1,    -1,  1912,  1558,    -1,    -1,    -1,    -1,    -1,
 
7037
      -1,    -1,    -1,    -1,  1923,    -1,    -1,  1571,   156,   157,
 
7038
      -1,   102,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7039
      -1,    -1,    -1,    -1,    -1,  1589,   343,    -1,    -1,    -1,
 
7040
     347,   348,    -1,   350,   351,   352,   353,   354,   355,    -1,
 
7041
      -1,   882,   133,    -1,   361,    -1,   137,    -1,    -1,  1534,
 
7042
      -1,    -1,    -1,    -1,    -1,   203,    -1,  1621,  1622,    -1,
 
7043
      -1,    -1,  1626,    -1,    -1,   156,   157,   908,   216,    -1,
 
7044
      -1,    -1,    -1,    -1,  1638,  1639,  1640,  1641,   169,  1998,
 
7045
     921,    -1,    -1,  1647,    -1,    -1,  1571,    -1,    -1,    -1,
 
7046
      -1,    -1,  1656,  1657,    -1,  1659,    -1,    -1,    -1,    -1,
 
7047
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1671,    -1,  1673,
 
7048
      -1,    -1,   203,  1677,    -1,  2034,    -1,    -1,    -1,    -1,
 
7049
      -1,    -1,    -1,    -1,    -1,   216,    -1,    -1,    -1,  2048,
 
7050
    1694,    -1,    -1,    -1,    -1,    -1,    -1,   882,    -1,    -1,
 
7051
    1704,    -1,  1706,  1707,    -1,  2161,  2162,    -1,    -1,    -1,
 
7052
      -1,    -1,  2071,    -1,    -1,    -1,    -1,    -1,    -1,  1723,
 
7053
      -1,    -1,    -1,   908,    -1,    -1,    -1,  1731,  1732,  1733,
 
7054
      -1,    -1,    -1,    -1,    -1,    -1,   921,    -1,  1742,    -1,
 
7055
      -1,    -1,    -1,   274,    -1,    -1,    -1,   660,    -1,    -1,
 
7056
    2206,  2207,  2208,    -1,  2210,   343,  1760,  1761,    -1,  1763,
 
7057
      -1,  1042,   350,   351,   352,   353,   354,   355,    -1,    -1,
 
7058
      -1,    -1,    -1,   361,  1778,    -1,  1780,    -1,    -1,   692,
 
7059
      -1,  2237,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7060
      -1,  1072,    -1,    -1,    -1,    -1,    -1,    -1,  2157,    -1,
 
7061
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7062
      -1,    -1,   343,    -1,  1095,  1819,   729,    -1,    -1,   350,
 
7063
     351,   352,   353,   354,   355,    -1,    -1,    -1,    -1,    -1,
 
7064
     361,    -1,    -1,    -1,    -1,  1760,  1761,    -1,  1763,    -1,
 
7065
      -1,    -1,    -1,    -1,    -1,  1849,  1127,    -1,    -1,    -1,
 
7066
      -1,    -1,    -1,  1778,  1135,  1780,    -1,  1042,    -1,    -1,
 
7067
      -1,    -1,    -1,  2222,    -1,  1869,  1870,    -1,    -1,    -1,
 
7068
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7069
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1072,    -1,    -1,
 
7070
      -1,    -1,    -1,    -1,  1819,    -1,    -1,  1901,    -1,    -1,
 
7071
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1912,    -1,
 
7072
    1095,    -1,    -1,    -1,    -1,  2371,  2372,    -1,    -1,  1923,
 
7073
      -1,    -1,    -1,    -1,  1849,    -1,  2382,   660,    -1,    -1,
 
7074
      -1,    -1,    -1,  1937,    -1,    -1,    -1,  1941,    -1,    -1,
 
7075
      -1,  1945,  1127,    -1,    -1,  1870,    -1,    -1,    -1,    -1,
 
7076
    1135,    -1,    -1,    -1,    -1,    -1,    -1,  1961,    -1,   692,
 
7077
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   882,
 
7078
      -1,    -1,    -1,    24,    -1,    -1,  1901,    -1,    29,    -1,
 
7079
      -1,    -1,    -1,    -1,    -1,  2344,    -1,  1912,    -1,  1270,
 
7080
      -1,  1995,    -1,    -1,  1998,   908,   729,    -1,  1923,    -1,
 
7081
      -1,    -1,    -1,  2007,    -1,    -1,    -1,  2463,   921,  2013,
 
7082
      -1,    -1,    -1,  2017,    -1,    -1,    -1,    -1,  2022,    -1,
 
7083
      -1,  2025,  2026,  2027,  2028,  2029,  2030,  2031,  2032,  2033,
 
7084
    2034,  2035,    -1,    -1,    -1,  2039,  2040,    -1,    -1,    -1,
 
7085
      -1,    -1,    -1,    -1,  2048,    -1,    -1,    -1,    -1,  2053,
 
7086
      -1,   102,    -1,    -1,    -1,    -1,  2060,    -1,    -1,  2063,
 
7087
      -1,  2065,    -1,    -1,    -1,    -1,    -1,  2071,  2072,  2073,
 
7088
    2074,    -1,    -1,  1998,  2078,    -1,    -1,  2081,    -1,    -1,
 
7089
      -1,    -1,   133,    -1,    -1,  1270,   137,    -1,    -1,    -1,
 
7090
      -1,    -1,    -1,    -1,   660,  1376,    -1,    -1,  2102,    -1,
 
7091
    1381,  1382,    -1,    -1,    -1,   156,   157,    -1,    -1,  2034,
 
7092
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   169,    -1,
 
7093
      -1,    -1,    -1,  2048,    -1,    -1,   692,    -1,    -1,  1042,
 
7094
      -1,  2490,    -1,    -1,    -1,    -1,    -1,   660,    -1,    -1,
 
7095
      -1,    -1,    -1,    -1,    -1,    -1,  2071,    -1,    -1,   882,
 
7096
    2509,    -1,   203,  2157,    -1,    -1,    -1,  2516,    -1,  1072,
 
7097
      -1,    -1,    -1,   729,    -1,   216,    -1,  1448,    -1,   692,
 
7098
      -1,    -1,    -1,  1454,    -1,   908,    -1,    -1,    -1,    -1,
 
7099
      -1,    -1,  1095,    -1,  2640,    -1,    -1,    -1,   921,  1470,
 
7100
      -1,  1376,    -1,    -1,    -1,    -1,  1381,  1382,    -1,    -1,
 
7101
      -1,    -1,    -1,    -1,    -1,    -1,   729,  2211,    -1,    -1,
 
7102
      -1,    -1,    -1,    -1,  1127,    -1,    -1,    -1,  2222,    -1,
 
7103
      -1,    -1,  1135,   274,    -1,    -1,    -1,    -1,    -1,    -1,
 
7104
      -1,    -1,  2157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7105
      -1,  2697,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7106
      -1,    -1,    -1,  1534,    -1,    -1,  2615,  2261,    -1,    -1,
 
7107
      -1,    -1,  2266,  1448,    -1,    -1,  2270,    -1,    -1,  1454,
 
7108
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7109
      -1,    -1,  2286,    10,    -1,  1470,    -1,    -1,    -1,    -1,
 
7110
    1571,    -1,   343,    -1,  2298,    -1,    -1,  2222,    -1,   350,
 
7111
     351,   352,   353,   354,   355,    -1,    -1,    -1,    -1,  1042,
 
7112
     361,    -1,    -1,    40,    -1,    -1,   882,    -1,    -1,    -1,
 
7113
      -1,    -1,    -1,    -1,    -1,    52,    -1,    -1,    -1,    -1,
 
7114
      57,    -1,    59,    -1,    -1,  2339,  2340,    -1,    -1,  1072,
 
7115
    2344,    -1,   908,    -1,    -1,    -1,  2350,  2351,    75,  1534,
 
7116
    2354,    -1,    -1,    -1,    -1,   921,    -1,  1270,    -1,   882,
 
7117
      -1,    -1,  1095,  2722,    -1,    -1,    93,    -1,    -1,    -1,
 
7118
      -1,    -1,    -1,    -1,    -1,    -1,   660,    -1,    -1,    -1,
 
7119
      -1,    -1,    -1,    -1,    -1,   908,  1571,    -1,    -1,    -1,
 
7120
      -1,    -1,    -1,    -1,  1127,   122,    -1,    -1,   921,    -1,
 
7121
      -1,    -1,  1135,    -1,    -1,    -1,    -1,    -1,   692,    -1,
 
7122
      -1,    -1,    -1,   140,    -1,    -1,    -1,    -1,    -1,  2344,
 
7123
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2433,
 
7124
    2789,    -1,    -1,    -1,    -1,    -1,   163,    -1,    -1,    16,
 
7125
      -1,    -1,    -1,    -1,    -1,   729,    -1,    24,    -1,    -1,
 
7126
      -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7127
      -1,    -1,    -1,  1376,  2468,    -1,    -1,    -1,  1381,  1382,
 
7128
      -1,    -1,    -1,    -1,    -1,    -1,  1042,  2481,    -1,  1760,
 
7129
    1761,  2485,  1763,    -1,    -1,    -1,  2490,    -1,    -1,   216,
 
7130
      -1,    -1,    -1,  2497,    -1,    -1,    -1,  1778,    -1,  1780,
 
7131
      -1,    -1,    -1,  2507,    -1,  2509,  1072,    -1,    -1,   236,
 
7132
      -1,    -1,  2516,  2517,  2518,    -1,    -1,  2521,    -1,  1042,
 
7133
      -1,    -1,    -1,    -1,  2528,  2529,    -1,    -1,    -1,  1095,
 
7134
      -1,    -1,   259,    -1,   261,  1448,    -1,  1270,  1819,   266,
 
7135
      -1,  1454,    -1,    -1,  2548,    -1,    -1,    -1,    -1,  1072,
 
7136
      -1,    -1,    -1,    -1,    -1,    -1,   133,  1470,  2562,    -1,
 
7137
     137,  1127,    -1,    -1,   291,  2490,    -1,    -1,  1849,  1135,
 
7138
      -1,    -1,  1095,    -1,    -1,  1760,  1761,   304,  1763,   156,
 
7139
     157,    -1,   309,    -1,  2509,    -1,    -1,    -1,  2592,  1870,
 
7140
      -1,  2516,   169,  1778,    -1,  1780,    -1,    -1,   882,    -1,
 
7141
     327,    -1,    -1,    -1,  1127,    -1,    -1,    -1,    -1,    -1,
 
7142
      -1,  2615,  1135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7143
    1901,  1534,    -1,   200,   908,    -1,   203,    -1,    -1,    -1,
 
7144
      -1,  1912,    -1,    -1,  1819,    -1,    -1,   921,    -1,   216,
 
7145
      -1,  2645,  1923,  1376,    -1,    -1,    -1,    -1,  1381,  1382,
 
7146
      -1,    -1,  2656,    -1,    -1,    -1,    -1,    -1,  1571,    -1,
 
7147
      -1,    -1,    -1,    -1,  1849,    -1,    -1,    -1,    -1,    -1,
 
7148
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7149
      -1,    -1,    -1,    -1,    -1,  1870,    -1,    16,    -1,    -1,
 
7150
    2615,    20,    -1,    -1,    -1,    24,    -1,   274,    -1,    -1,
 
7151
      29,    -1,    -1,    -1,  1270,    -1,    -1,    -1,    -1,    -1,
 
7152
      -1,    -1,    -1,    -1,    -1,  1448,  1901,  1998,  2722,   529,
 
7153
      -1,  1454,    -1,    -1,    24,    -1,    -1,  1912,    -1,    29,
 
7154
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1470,  1923,    -1,
 
7155
      -1,    -1,    -1,    -1,  2748,    -1,    -1,  1270,    -1,    -1,
 
7156
      -1,    -1,    -1,  2034,    -1,    -1,    -1,    -1,  1042,    -1,
 
7157
      89,    -1,    -1,    -1,    -1,    -1,   343,  2048,    -1,   346,
 
7158
     347,   348,    -1,   350,   351,   352,   353,   354,   355,    -1,
 
7159
      -1,    -1,  2786,    -1,   361,  2789,    -1,    -1,  1072,    -1,
 
7160
    2071,    -1,    -1,    -1,    -1,    -1,    -1,  2722,    -1,    -1,
 
7161
      -1,  1534,   102,    -1,   133,    -1,    -1,    -1,   137,    -1,
 
7162
    1376,  1095,    -1,  1998,    -1,  1381,  1382,    -1,    -1,    -1,
 
7163
      -1,   631,    -1,    -1,    -1,    -1,    -1,   156,   157,    -1,
 
7164
      -1,    -1,    -1,   133,    -1,    -1,    -1,   137,  1571,    -1,
 
7165
     169,    -1,    -1,  1127,    -1,    -1,    -1,  1760,  1761,  2034,
 
7166
    1763,  1135,    -1,  1376,    -1,    -1,   156,   157,  1381,  1382,
 
7167
      -1,    -1,    -1,  2048,  2789,  1778,    -1,  1780,    -1,   169,
 
7168
      -1,   200,    -1,    -1,   203,    -1,  2157,    -1,    -1,    -1,
 
7169
      -1,    -1,  1448,    -1,    -1,    -1,  2071,   216,  1454,   218,
 
7170
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7171
      -1,    -1,    -1,   203,  1470,    -1,  1819,    -1,    -1,    -1,
 
7172
      -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,    -1,    -1,
 
7173
      -1,    -1,    -1,    -1,    -1,  1448,    -1,    -1,    -1,    -1,
 
7174
      -1,  1454,    -1,    -1,    -1,    -1,  1849,    -1,    -1,    -1,
 
7175
     750,  2222,    -1,    -1,    -1,   274,    -1,  1470,    -1,    -1,
 
7176
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1870,    -1,    -1,
 
7177
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   777,  1534,    -1,
 
7178
      -1,    -1,  2157,    -1,   274,    -1,    -1,    -1,    -1,    -1,
 
7179
      -1,    -1,    -1,    -1,    -1,    -1,  1270,    -1,  1901,    -1,
 
7180
     319,    -1,    -1,    -1,   804,   805,    -1,   807,    -1,  1912,
 
7181
      -1,    -1,    -1,    -1,    -1,  1571,    -1,    -1,    -1,    -1,
 
7182
    1923,  1534,    -1,    -1,   343,   825,    -1,   346,   347,   348,
 
7183
      -1,   350,   351,   352,   353,   354,   355,  1760,  1761,    -1,
 
7184
    1763,    16,   361,    -1,    19,    -1,    -1,  2222,    -1,    24,
 
7185
      -1,    -1,    -1,   343,    29,  1778,    -1,  1780,  1571,    -1,
 
7186
     350,   351,   352,   353,   354,   355,    -1,    -1,    -1,    -1,
 
7187
      -1,   361,    -1,  2344,   874,    -1,    -1,   877,   878,    -1,
 
7188
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7189
      -1,    -1,    -1,    -1,    -1,  1998,  1819,    -1,    -1,    24,
 
7190
      -1,    -1,  1376,    -1,    29,    -1,    -1,  1381,  1382,    -1,
 
7191
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7192
      -1,    -1,    -1,    -1,    -1,    -1,  1849,    -1,    -1,    -1,
 
7193
      -1,  2034,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7194
      -1,    -1,    -1,    -1,    -1,  2048,    -1,  1870,    -1,    -1,
 
7195
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   133,    -1,
 
7196
      -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,  2071,  2344,
 
7197
      -1,    -1,    -1,    -1,  1448,    -1,    -1,   102,  1901,    -1,
 
7198
    1454,   156,   157,    -1,    -1,    -1,    -1,    -1,    -1,  1912,
 
7199
      -1,    -1,    -1,    -1,   169,    -1,  1470,    -1,    -1,    -1,
 
7200
    1923,    -1,    -1,    -1,  1760,  1761,    -1,  1763,   133,    -1,
 
7201
      -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,  2490,
 
7202
      -1,    -1,  1778,    -1,  1780,   200,    -1,    -1,   203,    -1,
 
7203
      -1,   156,   157,    -1,    -1,    -1,    -1,    -1,  2509,    -1,
 
7204
      -1,   216,    -1,   218,   169,  2516,    -1,  1760,  1761,    -1,
 
7205
    1763,    -1,    -1,    -1,  2157,    -1,    -1,    -1,    -1,    -1,
 
7206
    1534,    -1,    -1,  1819,    -1,  1778,    -1,  1780,    -1,    -1,
 
7207
      -1,    -1,    -1,    -1,    -1,  1998,    -1,    -1,   203,    -1,
 
7208
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7209
      -1,   216,    -1,  1849,    -1,    -1,    -1,  1571,    -1,   274,
 
7210
      -1,    -1,    -1,    -1,    -1,    -1,  1819,    -1,    -1,    -1,
 
7211
      -1,  2034,   821,    -1,  1870,  2490,    -1,    -1,    -1,  2222,
 
7212
      -1,    -1,    -1,    -1,    -1,  2048,    -1,    -1,    -1,    -1,
 
7213
      -1,    -1,    -1,    -1,  2509,    -1,  1849,    -1,    -1,    -1,
 
7214
      -1,  2516,    -1,    -1,  2615,  1901,    -1,    -1,  2071,   274,
 
7215
      -1,    -1,    -1,    -1,    -1,    -1,  1912,  1870,    -1,    -1,
 
7216
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1923,   343,    -1,
 
7217
      -1,   346,   347,   348,    -1,   350,   351,   352,   353,   354,
 
7218
     355,    -1,    -1,    -1,    -1,    -1,   361,    -1,  1901,    -1,
 
7219
      -1,    -1,    -1,    -1,  1194,    -1,    -1,    -1,  1198,  1912,
 
7220
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7221
    1923,    -1,    -1,    -1,    -1,    -1,    -1,  1217,   343,    -1,
 
7222
      -1,  1221,    -1,    -1,  1224,   350,   351,   352,   353,   354,
 
7223
     355,  1231,  1232,    -1,  2157,    -1,   361,    -1,    -1,    -1,
 
7224
    2615,  2344,  1998,    -1,    -1,    -1,  1246,    -1,   957,    -1,
 
7225
    1250,  2722,    -1,    -1,  1254,    -1,    -1,    -1,  1258,    -1,
 
7226
      -1,  1261,  1262,  1263,  1264,  1265,  1266,  1267,  1268,  1269,
 
7227
      -1,    -1,  1272,    -1,    -1,    -1,    -1,  1277,  2034,    -1,
 
7228
      -1,    -1,    -1,    -1,    -1,  1998,  1760,  1761,    -1,  1763,
 
7229
      -1,    -1,  2048,    -1,    -1,    -1,    -1,    -1,    -1,  2222,
 
7230
      -1,    -1,    -1,    -1,  1778,    -1,  1780,    -1,    -1,    -1,
 
7231
      -1,    -1,    -1,    -1,    -1,  2071,    -1,    -1,  2789,    16,
 
7232
      -1,  2034,    -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,
 
7233
      -1,    -1,    29,    -1,    -1,  2048,    -1,    -1,    -1,    -1,
 
7234
      -1,    -1,    -1,    -1,    -1,  1819,    -1,  2722,    -1,    -1,
 
7235
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2071,    -1,
 
7236
      -1,    -1,  1362,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7237
      16,    -1,    -1,    19,    -1,  1849,    -1,    -1,    24,    -1,
 
7238
      -1,    -1,    -1,    29,    -1,    -1,    -1,  2490,    -1,    -1,
 
7239
      -1,    -1,    -1,    -1,    -1,    -1,  1870,    -1,    -1,    -1,
 
7240
      -1,  2157,    -1,    -1,    -1,    -1,  2509,    -1,    -1,    -1,
 
7241
      -1,    -1,    -1,  2516,  2789,    -1,    -1,    -1,    -1,    -1,
 
7242
      -1,  2344,    -1,    -1,    -1,    -1,    -1,  1901,    -1,    -1,
 
7243
      -1,    -1,  1141,    -1,    -1,    -1,   133,    -1,  1912,    -1,
 
7244
     137,    -1,    -1,    -1,  2157,    -1,    -1,  1447,    -1,  1923,
 
7245
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,
 
7246
     157,    -1,    -1,    -1,    -1,    -1,  2222,    -1,  1468,    -1,
 
7247
      -1,    -1,   169,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7248
      -1,    -1,    16,  1192,    -1,    -1,    -1,   133,    -1,    -1,
 
7249
      24,   137,    -1,    -1,    -1,    29,    -1,    -1,    -1,    -1,
 
7250
      -1,    -1,    -1,   200,    -1,    -1,   203,  1216,    -1,  2222,
 
7251
     156,   157,  2615,  1222,    -1,    -1,    -1,    -1,    -1,   216,
 
7252
      -1,   218,    -1,   169,  1998,    -1,  1235,  1236,    -1,  1238,
 
7253
      -1,  1531,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7254
      -1,    -1,    -1,    -1,  1544,    -1,    -1,    -1,    -1,    -1,
 
7255
      -1,    -1,    -1,    -1,   200,    -1,    -1,   203,  1558,    -1,
 
7256
    2034,    -1,    -1,    -1,    -1,    -1,  1275,  2490,    -1,    -1,
 
7257
     216,    -1,   218,    -1,  2048,    -1,    -1,   274,    -1,    -1,
 
7258
      -1,    -1,    -1,    -1,    -1,    -1,  2509,    -1,  2344,  1589,
 
7259
      -1,    -1,    -1,  2516,    -1,    -1,    -1,  2071,    -1,   133,
 
7260
      -1,    -1,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,
 
7261
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1326,    -1,  2722,
 
7262
      -1,    -1,   156,   157,  1333,    -1,  1335,    -1,   274,    -1,
 
7263
      -1,  2344,    -1,    -1,    -1,   169,    -1,    -1,  1638,    -1,
 
7264
    1640,  1641,    -1,    -1,    -1,    -1,   343,  1647,    -1,   346,
 
7265
     347,   348,    -1,   350,   351,   352,   353,   354,   355,    -1,
 
7266
      -1,    -1,    -1,   360,   361,    -1,   200,    -1,    -1,   203,
 
7267
      -1,  1671,    -1,  1673,    -1,    -1,    -1,  1677,    -1,    -1,
 
7268
      -1,    -1,   216,  2157,   218,    -1,  2789,    -1,    -1,    -1,
 
7269
      -1,    -1,  2615,    -1,    -1,    -1,    -1,   343,    -1,    -1,
 
7270
     346,   347,   348,    -1,   350,   351,   352,   353,   354,   355,
 
7271
      -1,    -1,    -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,
 
7272
      -1,    -1,    -1,  1723,    -1,    -1,    -1,    -1,    -1,    -1,
 
7273
      -1,  1731,  1732,  1733,  2490,    -1,    -1,    -1,    -1,    -1,
 
7274
     274,    -1,  1742,    -1,    -1,    -1,    -1,    -1,  2222,    -1,
 
7275
      -1,    -1,    -1,  2509,    -1,    -1,    -1,    -1,    24,    -1,
 
7276
    2516,    -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,
 
7277
      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2490,    -1,    -1,
 
7278
      -1,    -1,    -1,    -1,    -1,   319,    -1,    -1,    -1,    -1,
 
7279
      -1,    -1,    -1,    -1,    -1,    -1,  2509,    -1,    -1,  2722,
 
7280
      -1,    -1,    -1,  2516,    -1,    -1,    -1,    -1,    -1,   343,
 
7281
      -1,    -1,   346,   347,   348,    -1,   350,   351,   352,   353,
 
7282
     354,   355,    -1,    -1,    -1,    -1,    -1,   361,    -1,    -1,
 
7283
      -1,    -1,    -1,    -1,    -1,    -1,   102,    -1,    -1,    -1,
 
7284
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7285
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2615,
 
7286
      -1,    -1,    -1,    -1,    -1,    -1,  2789,   133,    -1,    -1,
 
7287
    2344,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7288
      -1,    -1,    -1,  1592,    -1,  1594,    -1,    -1,    -1,    -1,
 
7289
     156,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7290
      -1,    -1,  2615,   169,    -1,    -1,    -1,  1616,    -1,    -1,
 
7291
    1619,    -1,  1621,  1622,  1623,    -1,    -1,  1626,    -1,    -1,
 
7292
      -1,  1630,    -1,    -1,    -1,    -1,    -1,    -1,  1637,    -1,
 
7293
      -1,    -1,    -1,  1642,    -1,    -1,    -1,   203,    -1,    -1,
 
7294
      -1,    -1,    -1,  1652,    -1,    -1,    -1,  1656,  1657,  1658,
 
7295
     216,    -1,    -1,     3,    -1,    -1,    -1,    -1,    -1,    -1,
 
7296
    1669,    -1,    -1,    13,    14,    15,  2722,  1676,    -1,  1678,
 
7297
    1679,  1680,  1681,  1682,  1683,  1684,  1685,  1686,    28,  1688,
 
7298
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7299
      -1,    -1,    -1,    -1,    -1,  1995,    46,    -1,    48,    49,
 
7300
      -1,    -1,    -1,    53,    54,    -1,    -1,  2007,   274,  2722,
 
7301
      -1,    61,    62,  2013,    -1,    -1,  2490,  2017,    -1,    -1,
 
7302
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,
 
7303
      80,    -1,    -1,  2789,    -1,  2509,    86,    -1,    -1,  2039,
 
7304
    2040,  1750,  2516,    -1,    -1,    95,    -1,    -1,    -1,    -1,
 
7305
      -1,   101,    -1,    -1,    -1,    -1,   106,    -1,   108,    -1,
 
7306
    2060,    -1,   112,  2063,    -1,  2065,    -1,    -1,    -1,    -1,
 
7307
      -1,    -1,  2072,    -1,   124,    -1,  2789,   343,  2078,    -1,
 
7308
      -1,  2081,    -1,    -1,   350,   351,   352,   353,   354,   355,
 
7309
      -1,    16,    -1,    -1,    -1,   361,    -1,    -1,   148,    24,
 
7310
      -1,    -1,  2102,    -1,    29,    -1,    -1,    -1,    -1,    -1,
 
7311
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7312
      -1,   171,   172,    -1,    -1,    -1,    -1,   177,    -1,    -1,
 
7313
      -1,    -1,    -1,    -1,    -1,   185,    -1,    -1,  1847,    -1,
 
7314
      -1,  2615,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7315
      -1,    -1,   202,    -1,    -1,    16,    -1,    -1,    19,    -1,
 
7316
      -1,    -1,  1871,    24,    -1,    -1,    -1,    -1,    29,    -1,
 
7317
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7318
      -1,   231,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7319
      -1,    -1,    -1,   243,    -1,   245,    -1,    -1,    -1,   249,
 
7320
      -1,    -1,    -1,   253,    -1,    -1,   256,    -1,   133,    -1,
 
7321
     260,    -1,   137,    -1,    -1,   265,    -1,    -1,    -1,    -1,
 
7322
     270,    -1,    -1,   273,    -1,    -1,    -1,    -1,    -1,   279,
 
7323
      -1,   156,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7324
      -1,    -1,    -1,  1952,   169,    -1,    -1,    -1,  2722,    -1,
 
7325
    1959,    -1,    -1,    -1,    -1,    -1,    -1,   307,    -1,    -1,
 
7326
      -1,  1970,    -1,    -1,    -1,   315,    -1,   317,    -1,    -1,
 
7327
     320,    -1,   133,    -1,    -1,   200,   137,    -1,   203,    -1,
 
7328
      -1,    -1,    -1,    -1,    -1,  1994,  2286,    -1,    -1,    -1,
 
7329
      -1,   216,    -1,   218,    -1,   156,   157,    -1,  2298,    -1,
 
7330
      -1,    -1,   227,    -1,    -1,    -1,    -1,    -1,   169,   359,
 
7331
      -1,  2020,  2021,  2022,    -1,  2789,  2025,  2026,  2027,  2028,
 
7332
    2029,  2030,  2031,  2032,  2033,    -1,  2035,  2036,    -1,    -1,
 
7333
      16,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    24,   200,
 
7334
      -1,    -1,   203,    29,    -1,    -1,    -1,  2056,    -1,   274,
 
7335
    2350,  2351,  2061,  2062,  2354,   216,    -1,   218,    -1,    -1,
 
7336
      -1,    -1,    -1,    -1,  2073,  2074,  2075,    16,  2077,    -1,
 
7337
      -1,  2080,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
 
7338
      29,    -1,    -1,    -1,    16,    -1,    -1,    -1,    -1,    -1,
 
7339
      -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    -1,    -1,
 
7340
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2118,
 
7341
      -1,    -1,    -1,   274,    -1,    -1,    -1,    -1,   343,    -1,
 
7342
      -1,   346,   347,   348,    -1,   350,   351,   352,   353,   354,
 
7343
     355,    -1,    -1,  2433,   120,    -1,   361,    -1,    -1,    -1,
 
7344
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   133,    -1,    -1,
 
7345
      -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7346
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7347
     156,   157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7348
      -1,  2481,   343,   169,   133,   346,   347,   348,   137,   350,
 
7349
     351,   352,   353,   354,   355,    -1,    -1,  2497,    -1,    -1,
 
7350
     361,   133,  2211,    -1,    -1,   137,    -1,   156,   157,    -1,
 
7351
      -1,    -1,    -1,    -1,   200,    -1,    -1,   203,    -1,    -1,
 
7352
     169,  2521,    -1,    -1,   156,   157,    -1,    -1,    -1,  2529,
 
7353
     216,    -1,   218,    -1,    -1,    -1,    -1,   169,    -1,    -1,
 
7354
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2548,    -1,
 
7355
      -1,   200,    -1,    -1,   203,    -1,    -1,    -1,    -1,    -1,
 
7356
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,   200,   218,
 
7357
      -1,   203,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7358
      -1,    -1,    -1,    -1,   216,    -1,   218,    -1,   274,    -1,
 
7359
    2299,    -1,  2592,    -1,    -1,  2304,  2305,    -1,  2307,    -1,
 
7360
    2309,    -1,    -1,    -1,  2313,  2314,  2315,  2316,  2317,  2318,
 
7361
    2319,  2320,  2321,    -1,  2323,  2324,  2325,    -1,    -1,    -1,
 
7362
      -1,    -1,    -1,    -1,    -1,   274,    -1,    -1,    -1,  2338,
 
7363
    2339,  2340,  2341,    -1,  2343,    -1,    -1,    -1,  2347,  2348,
 
7364
    2349,    -1,   274,  2352,    -1,    -1,  2355,    -1,    -1,    -1,
 
7365
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   343,    -1,  2368,
 
7366
     346,   347,   348,    -1,   350,   351,   352,   353,   354,   355,
 
7367
      -1,    -1,    -1,    -1,    -1,   361,    -1,    -1,    -1,    -1,
 
7368
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7369
      -1,    -1,    -1,    -1,   343,    -1,    -1,   346,   347,   348,
 
7370
      -1,   350,   351,   352,   353,   354,   355,    -1,    -1,   358,
 
7371
      -1,   343,   361,    -1,   346,   347,   348,    -1,   350,   351,
 
7372
     352,   353,   354,   355,    -1,    -1,  2435,    -1,   360,   361,
 
7373
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7374
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7375
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7376
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7377
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7378
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7379
      -1,  2500,    -1,    -1,    -1,    -1,    -1,    -1,  2507,    -1,
 
7380
      -1,    -1,    -1,  2512,  2513,    -1,    -1,    -1,  2517,  2518,
 
7381
    2519,  2520,    -1,  2522,    -1,    -1,    -1,    -1,    -1,    -1,
 
7382
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7383
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7384
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7385
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2567,    -1,
 
7386
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7387
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7388
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7389
      -1,    -1,    -1,  2602,    -1,    -1,    -1,     3,     4,     5,
 
7390
       6,     7,     8,     9,    10,  2614,    12,    13,    -1,    -1,
 
7391
    2619,  2620,  2621,    -1,  2623,    21,    22,    -1,    24,  2628,
 
7392
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
7393
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
7394
      46,    47,    48,    49,    50,  2654,    -1,    53,    54,    55,
 
7395
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
7396
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
7397
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
7398
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
7399
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
7400
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
7401
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
7402
     126,    -1,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
7403
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,   145,
 
7404
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
7405
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
7406
     166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
7407
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
7408
     186,   187,    -1,   189,    -1,   191,   192,   193,   194,   195,
 
7409
     196,   197,   198,   199,    -1,   201,   202,    -1,   204,    -1,
 
7410
     206,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
7411
     216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,   225,
 
7412
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
7413
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
7414
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
7415
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
7416
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
7417
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
7418
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
7419
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
7420
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
7421
     316,   317,    -1,   319,   320,   321,   322,   323,   324,   325,
 
7422
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
7423
     336,    -1,   338,    -1,    -1,    -1,    -1,    -1,    -1,     3,
 
7424
       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
 
7425
      -1,   357,    -1,    -1,    18,    -1,   362,    21,    22,    -1,
 
7426
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
 
7427
      -1,    35,    36,    37,    38,    39,    40,    41,    42,    43,
 
7428
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
7429
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
7430
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
 
7431
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
7432
      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
 
7433
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
7434
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
 
7435
     114,    -1,   116,    -1,   118,   119,    -1,   121,   122,   123,
 
7436
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,   133,
 
7437
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
7438
     144,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
7439
      -1,   155,   156,   157,   158,   159,   160,   161,   162,   163,
 
7440
     164,    -1,   166,   167,   168,   169,    -1,   171,   172,   173,
 
7441
     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
 
7442
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
 
7443
     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
 
7444
     204,   205,   206,   207,   208,   209,    -1,    -1,   212,   213,
 
7445
      -1,    -1,   216,   217,    -1,    -1,   220,   221,   222,   223,
 
7446
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
7447
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
7448
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
7449
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
7450
     264,    -1,   266,   267,   268,   269,   270,   271,   272,   273,
 
7451
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
7452
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
7453
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
7454
     304,   305,   306,   307,   308,   309,   310,   311,    -1,   313,
 
7455
     314,   315,   316,   317,   318,    -1,   320,   321,   322,   323,
 
7456
     324,   325,   326,   327,   328,    -1,    -1,   331,   332,   333,
 
7457
     334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
 
7458
     344,   345,    -1,    -1,    -1,    -1,   350,   351,   352,    -1,
 
7459
      -1,    -1,    -1,    -1,    -1,   359,   360,     3,     4,     5,
 
7460
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
7461
      -1,    -1,    18,    -1,    -1,    21,    22,    -1,    24,    25,
 
7462
      26,    27,    28,    29,    30,    31,    32,    33,    -1,    35,
 
7463
      36,    37,    38,    39,    40,    41,    42,    43,    44,    -1,
 
7464
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
7465
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
7466
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
 
7467
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
7468
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
7469
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
7470
     106,   107,   108,   109,   110,   111,   112,   113,   114,    -1,
 
7471
     116,    -1,   118,   119,    -1,   121,   122,   123,    -1,   125,
 
7472
     126,    -1,   128,    -1,   130,   131,   132,   133,   134,   135,
 
7473
     136,    -1,   138,   139,   140,   141,   142,    -1,   144,   145,
 
7474
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
7475
     156,   157,   158,   159,   160,   161,   162,   163,   164,    -1,
 
7476
     166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
 
7477
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
7478
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
 
7479
     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
 
7480
     206,   207,   208,   209,    -1,    -1,   212,   213,    -1,    -1,
 
7481
     216,   217,    -1,    -1,   220,   221,   222,   223,   224,   225,
 
7482
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
7483
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
7484
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
 
7485
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
7486
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
 
7487
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
7488
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
7489
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
7490
     306,   307,   308,   309,   310,   311,    -1,   313,   314,   315,
 
7491
     316,   317,   318,    -1,   320,   321,   322,   323,   324,   325,
 
7492
     326,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
7493
     336,    -1,   338,   339,   340,   341,   342,   343,   344,   345,
 
7494
      -1,    -1,    -1,    -1,   350,   351,    -1,    -1,    -1,    -1,
 
7495
      -1,    -1,    -1,   359,   360,     3,     4,     5,     6,     7,
 
7496
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
7497
      -1,    19,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
7498
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
7499
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
7500
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
7501
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
7502
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
7503
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
7504
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
7505
      98,    99,   100,    -1,   102,   103,   104,   105,   106,   107,
 
7506
     108,   109,   110,    -1,   112,   113,   114,   115,   116,    -1,
 
7507
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
7508
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
7509
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
7510
     148,   149,   150,   151,   152,   153,    -1,   155,    -1,    -1,
 
7511
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
7512
     168,    -1,   170,   171,   172,   173,    -1,    -1,   176,   177,
 
7513
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
7514
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
7515
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
7516
     208,   209,    -1,   211,   212,    -1,    -1,    -1,   216,   217,
 
7517
      -1,   219,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
7518
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
7519
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
7520
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
7521
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
7522
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
7523
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
7524
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
7525
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
7526
     308,   309,   310,   311,   312,    -1,   314,   315,   316,   317,
 
7527
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
7528
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
7529
     338,    -1,     3,     4,     5,     6,     7,     8,     9,    10,
 
7530
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7531
      21,    22,   360,    24,    25,    26,    27,    28,    29,    30,
 
7532
      31,    32,    33,    -1,    35,    36,    37,    38,    -1,    -1,
 
7533
      41,    42,    43,    44,    -1,    46,    47,    48,    49,    -1,
 
7534
      -1,    -1,    53,    54,    55,    56,    -1,    58,    59,    -1,
 
7535
      61,    -1,    63,    64,    65,    66,    67,    -1,    -1,    -1,
 
7536
      -1,    -1,    73,    74,    75,    76,    77,    78,    79,    80,
 
7537
      -1,    82,    -1,    84,    85,    86,    87,    88,    -1,    90,
 
7538
      -1,    -1,    93,    94,    95,    96,    -1,    98,    99,   100,
 
7539
      -1,   102,    -1,   104,   105,   106,    -1,   108,   109,    -1,
 
7540
      -1,   112,   113,   114,    -1,   116,    -1,   118,   119,    -1,
 
7541
     121,   122,   123,    -1,   125,    -1,    -1,   128,    -1,   130,
 
7542
     131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
 
7543
     141,   142,    -1,   144,   145,   146,   147,   148,   149,   150,
 
7544
     151,    -1,   153,    -1,   155,   156,   157,   158,   159,   160,
 
7545
     161,   162,   163,   164,    -1,    -1,   167,   168,   169,    -1,
 
7546
     171,   172,   173,    -1,    -1,   176,   177,   178,   179,   180,
 
7547
     181,   182,   183,   184,   185,   186,   187,   188,   189,    -1,
 
7548
     191,   192,   193,   194,   195,   196,   197,    -1,   199,    -1,
 
7549
     201,   202,   203,   204,    -1,    -1,   207,   208,   209,    -1,
 
7550
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,
 
7551
     221,   222,    -1,   224,   225,   226,    -1,    -1,    -1,   230,
 
7552
     231,   232,    -1,   234,   235,   236,   237,   238,   239,   240,
 
7553
     241,    -1,   243,   244,   245,   246,   247,   248,   249,   250,
 
7554
     251,   252,   253,   254,   255,   256,    -1,   258,   259,   260,
 
7555
     261,   262,   263,   264,    -1,   266,   267,   268,    -1,   270,
 
7556
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
 
7557
     281,   282,   283,   284,   285,    -1,   287,    -1,   289,   290,
 
7558
      -1,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
 
7559
      -1,   302,    -1,   304,    -1,    -1,   307,   308,   309,   310,
 
7560
     311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,
 
7561
     321,   322,   323,   324,   325,   326,   327,   328,    -1,    -1,
 
7562
     331,   332,   333,   334,   335,   336,    -1,   338,    -1,     3,
 
7563
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
7564
      -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,   360,
 
7565
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
 
7566
      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
 
7567
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
7568
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
7569
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
 
7570
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
7571
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
7572
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
7573
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
 
7574
     114,    -1,   116,    -1,   118,   119,   120,   121,   122,   123,
 
7575
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,   133,
 
7576
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
7577
     144,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
7578
      -1,   155,   156,   157,   158,   159,   160,   161,   162,   163,
 
7579
     164,   165,   166,   167,   168,   169,    -1,   171,   172,   173,
 
7580
     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
 
7581
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
 
7582
     194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
 
7583
     204,   205,   206,   207,   208,   209,    -1,    -1,   212,   213,
 
7584
      -1,    -1,   216,   217,    -1,    -1,   220,   221,   222,   223,
 
7585
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
7586
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
7587
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
7588
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
7589
     264,    -1,   266,   267,   268,   269,   270,   271,   272,   273,
 
7590
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
7591
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
7592
     294,   295,    -1,   297,   298,    -1,   300,   301,   302,   303,
 
7593
     304,   305,   306,   307,   308,   309,   310,   311,    -1,   313,
 
7594
     314,   315,   316,   317,   318,    -1,   320,   321,   322,   323,
 
7595
     324,   325,   326,   327,   328,    -1,    -1,   331,   332,   333,
 
7596
     334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
 
7597
     344,   345,    -1,    -1,    -1,    -1,   350,   351,    -1,    -1,
 
7598
      -1,    -1,    -1,    -1,    -1,   359,     3,     4,     5,     6,
 
7599
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
 
7600
      -1,    18,    -1,    -1,    21,    22,    -1,    24,    25,    26,
 
7601
      27,    28,    29,    30,    31,    32,    33,    -1,    35,    36,
 
7602
      37,    38,    39,    40,    41,    42,    43,    44,    -1,    46,
 
7603
      47,    48,    49,    50,    -1,    -1,    53,    54,    55,    56,
 
7604
      -1,    58,    59,    60,    61,    -1,    63,    64,    65,    66,
 
7605
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
 
7606
      77,    78,    79,    80,    -1,    82,    -1,    84,    85,    86,
 
7607
      87,    88,    -1,    90,    -1,    -1,    93,    94,    95,    96,
 
7608
      -1,    98,    99,   100,    -1,   102,    -1,   104,   105,   106,
 
7609
     107,   108,   109,   110,   111,   112,   113,   114,    -1,   116,
 
7610
      -1,   118,   119,    -1,   121,   122,   123,    -1,   125,   126,
 
7611
      -1,   128,    -1,   130,   131,   132,   133,   134,   135,   136,
 
7612
      -1,   138,   139,   140,   141,   142,    -1,   144,   145,   146,
 
7613
     147,   148,   149,   150,   151,    -1,   153,    -1,   155,   156,
 
7614
     157,   158,   159,   160,   161,   162,   163,   164,    -1,   166,
 
7615
     167,   168,   169,    -1,   171,   172,   173,   174,   175,   176,
 
7616
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
 
7617
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
 
7618
     197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
 
7619
     207,   208,   209,    -1,    -1,   212,   213,    -1,    -1,   216,
 
7620
     217,    -1,    -1,   220,   221,   222,   223,   224,   225,   226,
 
7621
      -1,   228,   229,   230,   231,   232,    -1,   234,   235,   236,
 
7622
     237,   238,   239,   240,   241,    -1,   243,   244,   245,   246,
 
7623
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
 
7624
     257,   258,   259,   260,   261,   262,   263,   264,    -1,   266,
 
7625
     267,   268,   269,   270,   271,   272,   273,   274,   275,   276,
 
7626
      -1,   278,   279,   280,   281,   282,   283,   284,   285,   286,
 
7627
     287,    -1,   289,   290,    -1,   292,   293,   294,   295,    -1,
 
7628
     297,   298,    -1,   300,    -1,   302,   303,   304,   305,   306,
 
7629
     307,   308,   309,   310,   311,    -1,   313,   314,   315,   316,
 
7630
     317,   318,    -1,   320,   321,   322,   323,   324,   325,   326,
 
7631
     327,   328,    -1,    -1,   331,   332,   333,   334,   335,   336,
 
7632
      -1,   338,   339,   340,   341,   342,   343,   344,   345,    -1,
 
7633
      -1,    -1,    -1,   350,   351,   352,    -1,    -1,    -1,    -1,
 
7634
      -1,    -1,   359,     3,     4,     5,     6,     7,     8,     9,
 
7635
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    18,    -1,
 
7636
      -1,    21,    22,    -1,    24,    25,    26,    27,    28,    29,
 
7637
      30,    31,    32,    33,    -1,    35,    36,    37,    38,    39,
 
7638
      40,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
7639
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
7640
      60,    61,    -1,    63,    64,    65,    66,    67,    68,    69,
 
7641
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
 
7642
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
7643
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
7644
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
7645
     110,   111,   112,   113,   114,    -1,   116,    -1,   118,   119,
 
7646
      -1,   121,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
7647
     130,   131,   132,   133,   134,   135,   136,    -1,   138,   139,
 
7648
     140,   141,   142,    -1,   144,   145,   146,   147,   148,   149,
 
7649
     150,   151,    -1,   153,    -1,   155,   156,   157,   158,   159,
 
7650
     160,   161,   162,   163,   164,    -1,   166,   167,   168,   169,
 
7651
      -1,   171,   172,   173,   174,   175,   176,   177,   178,   179,
 
7652
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
 
7653
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
7654
     200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
 
7655
      -1,    -1,   212,   213,    -1,    -1,   216,   217,    -1,    -1,
 
7656
     220,   221,   222,   223,   224,   225,   226,    -1,   228,   229,
 
7657
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
7658
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
7659
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
 
7660
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
 
7661
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
 
7662
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
7663
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
7664
     300,    -1,   302,   303,   304,   305,   306,   307,   308,   309,
 
7665
     310,   311,    -1,   313,   314,   315,   316,   317,   318,    -1,
 
7666
     320,   321,   322,   323,   324,   325,   326,   327,   328,    -1,
 
7667
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,   339,
 
7668
     340,   341,   342,   343,   344,   345,    -1,    -1,    -1,    -1,
 
7669
     350,   351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,
 
7670
       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
 
7671
      13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,
 
7672
      -1,    24,    25,    26,    27,    28,    29,    30,    31,    32,
 
7673
      33,    -1,    35,    36,    37,    38,    39,    40,    41,    42,
 
7674
      43,    44,    -1,    46,    47,    48,    49,    50,    -1,    -1,
 
7675
      53,    54,    55,    56,    -1,    58,    59,    60,    61,    -1,
 
7676
      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
 
7677
      73,    74,    75,    76,    77,    78,    79,    80,    -1,    82,
 
7678
      -1,    84,    85,    86,    87,    88,    -1,    90,    -1,    -1,
 
7679
      93,    94,    95,    96,    -1,    98,    99,   100,    -1,   102,
 
7680
      -1,   104,   105,   106,   107,   108,   109,   110,   111,   112,
 
7681
     113,   114,    -1,   116,    -1,   118,   119,    -1,   121,   122,
 
7682
     123,    -1,   125,   126,    -1,   128,    -1,   130,   131,   132,
 
7683
     133,   134,   135,   136,    -1,   138,   139,   140,   141,   142,
 
7684
      -1,   144,   145,   146,   147,   148,   149,   150,   151,    -1,
 
7685
     153,    -1,   155,   156,   157,   158,   159,   160,   161,   162,
 
7686
     163,   164,    -1,   166,   167,   168,   169,    -1,   171,   172,
 
7687
     173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
 
7688
     183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
 
7689
     193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
 
7690
     203,   204,   205,   206,   207,   208,   209,    -1,    -1,   212,
 
7691
     213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,   222,
 
7692
     223,   224,   225,   226,    -1,   228,   229,   230,   231,   232,
 
7693
      -1,   234,   235,   236,   237,   238,   239,   240,   241,    -1,
 
7694
     243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
 
7695
     253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
 
7696
     263,   264,    -1,   266,   267,   268,   269,   270,   271,   272,
 
7697
     273,   274,   275,   276,    -1,   278,   279,   280,   281,   282,
 
7698
     283,   284,   285,   286,   287,    -1,   289,   290,    -1,   292,
 
7699
     293,   294,   295,    -1,   297,   298,    -1,   300,    -1,   302,
 
7700
     303,   304,   305,   306,   307,   308,   309,   310,   311,    -1,
 
7701
     313,   314,   315,   316,   317,   318,    -1,   320,   321,   322,
 
7702
     323,   324,   325,   326,   327,   328,    -1,    -1,   331,   332,
 
7703
     333,   334,   335,   336,    -1,   338,   339,   340,   341,   342,
 
7704
     343,   344,   345,    -1,    -1,    -1,    -1,   350,   351,    -1,
 
7705
      -1,    -1,    -1,    -1,    -1,    -1,   359,     3,     4,     5,
 
7706
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
7707
      -1,    -1,    18,    -1,    -1,    21,    22,    -1,    24,    25,
 
7708
      26,    27,    28,    29,    30,    31,    32,    33,    -1,    35,
 
7709
      36,    37,    38,    39,    40,    41,    42,    43,    44,    -1,
 
7710
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
7711
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
7712
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
 
7713
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
7714
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
7715
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
7716
     106,   107,   108,   109,   110,   111,   112,   113,   114,    -1,
 
7717
     116,    -1,   118,   119,    -1,   121,   122,   123,    -1,   125,
 
7718
     126,    -1,   128,    -1,   130,   131,   132,   133,   134,   135,
 
7719
     136,    -1,   138,   139,   140,   141,   142,    -1,   144,   145,
 
7720
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
7721
     156,   157,   158,   159,   160,   161,   162,   163,   164,    -1,
 
7722
     166,   167,   168,   169,    -1,   171,   172,   173,   174,   175,
 
7723
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
7724
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
 
7725
     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
 
7726
     206,   207,   208,   209,    -1,    -1,   212,   213,    -1,    -1,
 
7727
     216,   217,    -1,    -1,   220,   221,   222,   223,   224,   225,
 
7728
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
7729
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
7730
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
 
7731
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
7732
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
 
7733
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
7734
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
7735
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
7736
     306,   307,   308,   309,   310,   311,    -1,   313,   314,   315,
 
7737
     316,   317,   318,    -1,   320,   321,   322,   323,   324,   325,
 
7738
     326,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
7739
     336,    -1,   338,   339,   340,   341,   342,   343,   344,   345,
 
7740
      -1,    -1,    -1,    -1,   350,   351,    -1,    -1,    -1,    -1,
 
7741
      -1,   357,    -1,   359,     3,     4,     5,     6,     7,     8,
 
7742
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    18,
 
7743
      -1,    -1,    21,    22,    -1,    24,    25,    26,    27,    28,
 
7744
      29,    30,    31,    32,    33,    -1,    35,    36,    37,    38,
 
7745
      39,    40,    41,    42,    43,    44,    -1,    46,    47,    48,
 
7746
      49,    50,    -1,    -1,    53,    54,    55,    56,    -1,    58,
 
7747
      59,    60,    61,    -1,    63,    64,    65,    66,    67,    68,
 
7748
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
 
7749
      79,    80,    81,    82,    -1,    84,    85,    86,    87,    88,
 
7750
      -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,    98,
 
7751
      99,   100,    -1,   102,    -1,   104,   105,   106,   107,   108,
 
7752
     109,   110,   111,   112,   113,   114,    -1,   116,    -1,   118,
 
7753
     119,    -1,   121,   122,   123,    -1,   125,   126,    -1,   128,
 
7754
      -1,   130,   131,   132,   133,   134,   135,   136,    -1,   138,
 
7755
     139,   140,   141,   142,    -1,   144,   145,   146,   147,   148,
 
7756
     149,   150,   151,    -1,   153,    -1,   155,   156,   157,   158,
 
7757
     159,   160,   161,   162,   163,   164,    -1,   166,   167,   168,
 
7758
     169,    -1,   171,   172,   173,   174,   175,   176,   177,   178,
 
7759
     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
 
7760
     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
 
7761
     199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
 
7762
     209,    -1,    -1,   212,   213,    -1,    -1,   216,   217,    -1,
 
7763
      -1,   220,   221,   222,   223,   224,   225,   226,    -1,   228,
 
7764
     229,   230,   231,   232,    -1,   234,   235,   236,   237,   238,
 
7765
     239,   240,   241,    -1,   243,   244,   245,   246,   247,   248,
 
7766
     249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
 
7767
     259,   260,   261,   262,   263,   264,    -1,   266,   267,   268,
 
7768
     269,   270,   271,   272,   273,   274,   275,   276,    -1,   278,
 
7769
     279,   280,   281,   282,   283,   284,   285,   286,   287,    -1,
 
7770
     289,   290,    -1,   292,   293,   294,   295,    -1,   297,   298,
 
7771
      -1,   300,    -1,   302,   303,   304,   305,   306,   307,   308,
 
7772
     309,   310,   311,    -1,   313,   314,   315,   316,   317,   318,
 
7773
      -1,   320,   321,   322,   323,   324,   325,   326,   327,   328,
 
7774
      -1,    -1,   331,   332,   333,   334,   335,   336,    -1,   338,
 
7775
     339,   340,   341,   342,   343,   344,   345,    -1,    -1,    -1,
 
7776
      -1,   350,   351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
7777
     359,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
7778
      12,    13,    -1,    -1,    -1,    -1,    18,    -1,    -1,    21,
 
7779
      22,    -1,    24,    25,    26,    27,    28,    29,    30,    31,
 
7780
      32,    33,    -1,    35,    36,    37,    38,    39,    40,    41,
 
7781
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
7782
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
7783
      -1,    63,    64,    65,    66,    67,    68,    69,    70,    71,
 
7784
      72,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
7785
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
7786
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
7787
     102,    -1,   104,   105,   106,   107,   108,   109,   110,   111,
 
7788
     112,   113,   114,    -1,   116,    -1,   118,   119,   120,   121,
 
7789
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
7790
     132,   133,   134,   135,   136,    -1,   138,   139,   140,   141,
 
7791
     142,    -1,   144,   145,   146,   147,   148,   149,   150,   151,
 
7792
      -1,   153,    -1,   155,   156,   157,   158,   159,   160,   161,
 
7793
     162,   163,   164,    -1,   166,   167,   168,   169,    -1,   171,
 
7794
     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
 
7795
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
 
7796
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
 
7797
     202,   203,   204,   205,   206,   207,   208,   209,    -1,    -1,
 
7798
     212,   213,    -1,    -1,   216,   217,    -1,    -1,   220,   221,
 
7799
     222,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
7800
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
7801
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
7802
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
 
7803
     262,   263,   264,    -1,   266,   267,   268,   269,   270,   271,
 
7804
     272,   273,   274,   275,   276,    -1,   278,   279,   280,   281,
 
7805
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
7806
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
7807
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
 
7808
      -1,   313,   314,   315,   316,   317,   318,    -1,   320,   321,
 
7809
     322,   323,   324,   325,   326,   327,   328,    -1,    -1,   331,
 
7810
     332,   333,   334,   335,   336,    -1,   338,   339,   340,   341,
 
7811
     342,   343,   344,   345,    -1,    -1,    -1,    -1,   350,   351,
 
7812
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,     3,     4,
 
7813
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
 
7814
      -1,    -1,    -1,    18,    -1,    -1,    21,    22,    -1,    24,
 
7815
      25,    26,    27,    28,    29,    30,    31,    32,    33,    -1,
 
7816
      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
 
7817
      -1,    46,    47,    48,    49,    50,    -1,    -1,    53,    54,
 
7818
      55,    56,    -1,    58,    59,    60,    61,    -1,    63,    64,
 
7819
      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
 
7820
      75,    76,    77,    78,    79,    80,    81,    82,    -1,    84,
 
7821
      85,    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,
 
7822
      95,    96,    -1,    98,    99,   100,    -1,   102,    -1,   104,
 
7823
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
 
7824
      -1,   116,    -1,   118,   119,    -1,   121,   122,   123,    -1,
 
7825
     125,   126,    -1,   128,    -1,   130,   131,   132,   133,   134,
 
7826
     135,   136,    -1,   138,   139,   140,   141,   142,    -1,   144,
 
7827
     145,   146,   147,   148,   149,   150,   151,    -1,   153,    -1,
 
7828
     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
 
7829
      -1,   166,   167,   168,   169,    -1,   171,   172,   173,   174,
 
7830
     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
 
7831
     185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
 
7832
     195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
 
7833
     205,   206,   207,   208,   209,    -1,    -1,   212,   213,    -1,
 
7834
      -1,   216,   217,    -1,    -1,   220,   221,   222,   223,   224,
 
7835
     225,   226,    -1,   228,   229,   230,   231,   232,    -1,   234,
 
7836
     235,   236,   237,   238,   239,   240,   241,    -1,   243,   244,
 
7837
     245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
 
7838
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 
7839
      -1,   266,   267,   268,   269,   270,   271,   272,   273,   274,
 
7840
     275,   276,    -1,   278,   279,   280,   281,   282,   283,   284,
 
7841
     285,   286,   287,    -1,   289,   290,    -1,   292,   293,   294,
 
7842
     295,    -1,   297,   298,    -1,   300,    -1,   302,   303,   304,
 
7843
     305,   306,   307,   308,   309,   310,   311,    -1,   313,   314,
 
7844
     315,   316,   317,   318,    -1,   320,   321,   322,   323,   324,
 
7845
     325,   326,   327,   328,    -1,    -1,   331,   332,   333,   334,
 
7846
     335,   336,    -1,   338,   339,   340,   341,   342,   343,   344,
 
7847
     345,    -1,    -1,    -1,    -1,   350,   351,    -1,    -1,    -1,
 
7848
      -1,    -1,    -1,    -1,   359,     3,     4,     5,     6,     7,
 
7849
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
7850
      18,    -1,    -1,    21,    22,    -1,    24,    25,    26,    27,
 
7851
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
 
7852
      38,    39,    40,    41,    42,    43,    44,    -1,    46,    47,
 
7853
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
7854
      58,    59,    60,    61,    -1,    63,    64,    65,    66,    67,
 
7855
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
 
7856
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
7857
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
7858
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
7859
     108,   109,   110,   111,   112,   113,   114,    -1,   116,    -1,
 
7860
     118,   119,    -1,   121,   122,   123,    -1,   125,   126,    -1,
 
7861
     128,    -1,   130,   131,   132,   133,   134,   135,   136,    -1,
 
7862
     138,   139,   140,   141,   142,    -1,   144,   145,   146,   147,
 
7863
     148,   149,   150,   151,    -1,   153,    -1,   155,   156,   157,
 
7864
     158,   159,   160,   161,   162,   163,   164,    -1,   166,   167,
 
7865
     168,   169,    -1,   171,   172,   173,   174,   175,   176,   177,
 
7866
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
7867
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
 
7868
     198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
 
7869
     208,   209,    -1,    -1,   212,   213,    -1,    -1,   216,   217,
 
7870
      -1,    -1,   220,   221,   222,   223,   224,   225,   226,    -1,
 
7871
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
7872
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
7873
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
 
7874
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
7875
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
 
7876
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
7877
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
7878
     298,    -1,   300,    -1,   302,   303,   304,   305,   306,   307,
 
7879
     308,   309,   310,   311,    -1,   313,   314,   315,   316,   317,
 
7880
     318,    -1,   320,   321,   322,   323,   324,   325,   326,   327,
 
7881
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
7882
     338,   339,   340,   341,   342,   343,   344,   345,    -1,    -1,
 
7883
      -1,    -1,   350,   351,    -1,    -1,    -1,    -1,    -1,    -1,
 
7884
      -1,   359,     3,     4,     5,     6,     7,     8,     9,    10,
 
7885
      -1,    12,    13,    -1,    -1,    -1,    -1,    18,    -1,    -1,
 
7886
      21,    22,    -1,    24,    25,    26,    27,    28,    29,    30,
 
7887
      31,    32,    33,    -1,    35,    36,    37,    38,    39,    40,
 
7888
      41,    42,    43,    44,    -1,    46,    47,    48,    49,    50,
 
7889
      -1,    -1,    53,    54,    55,    56,    -1,    58,    59,    60,
 
7890
      61,    -1,    63,    64,    65,    66,    67,    68,    69,    70,
 
7891
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
 
7892
      -1,    82,    -1,    84,    85,    86,    87,    88,    -1,    90,
 
7893
      -1,    -1,    93,    94,    95,    96,    -1,    98,    99,   100,
 
7894
      -1,   102,    -1,   104,   105,   106,   107,   108,   109,   110,
 
7895
     111,   112,   113,   114,    -1,   116,    -1,   118,   119,    -1,
 
7896
     121,   122,   123,    -1,   125,   126,    -1,   128,    -1,   130,
 
7897
     131,   132,   133,   134,   135,   136,    -1,   138,   139,   140,
 
7898
     141,   142,    -1,   144,   145,   146,   147,   148,   149,   150,
 
7899
     151,    -1,   153,    -1,   155,   156,   157,   158,   159,   160,
 
7900
     161,   162,   163,   164,    -1,   166,   167,   168,   169,    -1,
 
7901
     171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
 
7902
     181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
 
7903
     191,   192,   193,   194,   195,   196,   197,   198,   199,    -1,
 
7904
     201,   202,   203,   204,   205,   206,   207,   208,   209,    -1,
 
7905
      -1,   212,   213,    -1,    -1,   216,   217,    -1,    -1,   220,
 
7906
     221,   222,   223,   224,   225,   226,    -1,   228,   229,   230,
 
7907
     231,   232,    -1,   234,   235,   236,   237,   238,   239,   240,
 
7908
     241,    -1,   243,   244,   245,   246,   247,   248,   249,   250,
 
7909
     251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
 
7910
     261,   262,   263,   264,    -1,   266,   267,   268,   269,   270,
 
7911
     271,   272,   273,   274,   275,   276,    -1,   278,   279,   280,
 
7912
     281,   282,   283,   284,   285,   286,   287,    -1,   289,   290,
 
7913
      -1,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
 
7914
      -1,   302,   303,   304,   305,   306,   307,   308,   309,   310,
 
7915
     311,    -1,    -1,   314,   315,   316,   317,   318,    -1,   320,
 
7916
     321,   322,   323,   324,   325,   326,   327,   328,    -1,    -1,
 
7917
     331,   332,   333,   334,   335,   336,    -1,   338,   339,   340,
 
7918
     341,   342,   343,   344,   345,    -1,    -1,    -1,    -1,   350,
 
7919
     351,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   359,     3,
 
7920
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
7921
      -1,    -1,    -1,    -1,    18,    -1,    -1,    21,    22,    -1,
 
7922
      24,    25,    26,    27,    28,    -1,    30,    31,    32,    33,
 
7923
      -1,    35,    36,    37,    38,    39,    40,    41,    42,    43,
 
7924
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
7925
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
7926
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
 
7927
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
7928
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
7929
      94,    95,    96,    -1,    98,    99,   100,    -1,    -1,    -1,
 
7930
     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
 
7931
     114,    -1,   116,    -1,   118,   119,    -1,   121,   122,   123,
 
7932
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,    -1,
 
7933
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
7934
     144,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
7935
      -1,   155,   156,   157,   158,   159,   160,   161,   162,   163,
 
7936
     164,    -1,   166,   167,   168,    -1,    -1,   171,   172,   173,
 
7937
     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
 
7938
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
 
7939
     194,   195,   196,   197,   198,   199,    -1,   201,   202,   203,
 
7940
     204,   205,   206,   207,   208,   209,    -1,    -1,   212,   213,
 
7941
      -1,    -1,   216,   217,    -1,    -1,   220,   221,   222,   223,
 
7942
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
7943
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
7944
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
7945
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
7946
     264,    -1,   266,   267,   268,   269,   270,   271,   272,   273,
 
7947
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
7948
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
7949
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
7950
     304,   305,   306,   307,   308,   309,   310,   311,    -1,   313,
 
7951
     314,   315,   316,   317,   318,    -1,   320,   321,   322,   323,
 
7952
     324,   325,   326,   327,   328,    -1,    -1,   331,   332,   333,
 
7953
     334,   335,   336,    -1,   338,   339,   340,   341,   342,   343,
 
7954
     344,   345,    -1,    -1,    -1,    -1,   350,   351,    -1,    -1,
 
7955
      -1,    -1,    -1,    -1,    -1,   359,     3,     4,     5,     6,
 
7956
       7,     8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,
 
7957
      -1,    18,    -1,    -1,    21,    22,    -1,    24,    25,    26,
 
7958
      27,    28,    -1,    30,    31,    32,    33,    -1,    35,    36,
 
7959
      37,    38,    39,    40,    41,    42,    43,    44,    -1,    46,
 
7960
      47,    48,    49,    50,    -1,    -1,    53,    54,    55,    56,
 
7961
      -1,    58,    59,    60,    61,    -1,    63,    64,    65,    66,
 
7962
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
 
7963
      77,    78,    79,    80,    -1,    82,    -1,    84,    85,    86,
 
7964
      87,    88,    -1,    90,    -1,    -1,    93,    94,    95,    96,
 
7965
      -1,    98,    99,   100,    -1,    -1,    -1,   104,   105,   106,
 
7966
     107,   108,   109,   110,   111,   112,   113,   114,    -1,   116,
 
7967
      -1,   118,   119,    -1,   121,   122,   123,    -1,   125,   126,
 
7968
      -1,   128,    -1,   130,   131,   132,    -1,   134,   135,   136,
 
7969
      -1,   138,   139,   140,   141,   142,    -1,   144,   145,   146,
 
7970
     147,   148,   149,   150,   151,    -1,   153,    -1,   155,   156,
 
7971
     157,   158,   159,   160,   161,   162,   163,   164,    -1,   166,
 
7972
     167,   168,    -1,    -1,   171,   172,   173,   174,   175,   176,
 
7973
     177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
 
7974
     187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
 
7975
     197,   198,   199,    -1,   201,   202,   203,   204,   205,   206,
 
7976
     207,   208,   209,    -1,    -1,   212,   213,    -1,    -1,   216,
 
7977
     217,    -1,    -1,   220,   221,   222,   223,   224,   225,   226,
 
7978
      -1,   228,   229,   230,   231,   232,    -1,   234,   235,   236,
 
7979
     237,   238,   239,   240,   241,    -1,   243,   244,   245,   246,
 
7980
     247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
 
7981
     257,   258,   259,   260,   261,   262,   263,   264,    -1,   266,
 
7982
     267,   268,   269,   270,   271,   272,   273,    -1,   275,   276,
 
7983
      -1,   278,   279,   280,   281,   282,   283,   284,   285,   286,
 
7984
     287,    -1,   289,   290,    -1,   292,   293,   294,   295,    -1,
 
7985
     297,   298,    -1,   300,    -1,   302,   303,   304,   305,   306,
 
7986
     307,   308,   309,   310,   311,    -1,    -1,   314,   315,   316,
 
7987
     317,   318,    -1,   320,   321,   322,   323,   324,   325,   326,
 
7988
     327,   328,    -1,    -1,   331,   332,   333,   334,   335,   336,
 
7989
      -1,   338,   339,   340,   341,   342,   343,   344,   345,    -1,
 
7990
      -1,    -1,    -1,   350,   351,    -1,    -1,    -1,    -1,    -1,
 
7991
      -1,    -1,   359,     3,     4,     5,     6,     7,     8,     9,
 
7992
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
7993
      -1,    21,    22,    -1,    24,    25,    26,    27,    28,    29,
 
7994
      30,    31,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
7995
      40,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
7996
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
7997
      60,    61,    -1,    63,    64,    65,    66,    67,    68,    69,
 
7998
      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
 
7999
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
8000
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
8001
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
8002
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,   119,
 
8003
      -1,   121,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
8004
     130,   131,   132,   133,   134,   135,   136,    -1,   138,   139,
 
8005
     140,   141,   142,    -1,   144,   145,   146,   147,   148,   149,
 
8006
     150,   151,    -1,   153,    -1,   155,   156,   157,   158,   159,
 
8007
     160,   161,   162,   163,   164,    -1,   166,   167,   168,   169,
 
8008
      -1,   171,   172,   173,   174,   175,   176,   177,   178,   179,
 
8009
     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
 
8010
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
8011
      -1,   201,   202,   203,   204,    -1,   206,   207,   208,   209,
 
8012
      -1,    -1,   212,   213,    -1,   215,   216,   217,    -1,    -1,
 
8013
     220,   221,   222,   223,   224,   225,   226,    -1,   228,   229,
 
8014
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
8015
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
8016
     250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
 
8017
     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
 
8018
     270,   271,   272,   273,   274,   275,   276,    -1,   278,   279,
 
8019
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
8020
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
8021
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
8022
     310,   311,    -1,    -1,   314,   315,   316,   317,   318,    -1,
 
8023
     320,   321,   322,   323,   324,   325,   326,   327,   328,    -1,
 
8024
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
8025
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
8026
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,   359,
 
8027
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
 
8028
      -1,    35,    36,    37,    38,    -1,    40,    41,    42,    43,
 
8029
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
8030
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
8031
      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
 
8032
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
8033
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
8034
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
8035
     104,   105,   106,   107,   108,   109,   110,    -1,   112,   113,
 
8036
     114,    -1,   116,    -1,   118,   119,    -1,   121,   122,   123,
 
8037
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,   133,
 
8038
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
8039
     144,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
8040
      -1,   155,   156,   157,   158,   159,   160,   161,   162,   163,
 
8041
     164,    -1,   166,   167,   168,   169,    -1,   171,   172,   173,
 
8042
     174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
 
8043
     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
 
8044
     194,   195,   196,   197,   198,   199,    -1,   201,   202,   203,
 
8045
     204,    -1,   206,   207,   208,   209,    -1,    -1,   212,   213,
 
8046
      -1,   215,   216,   217,    -1,    -1,   220,   221,   222,   223,
 
8047
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
8048
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
8049
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
8050
     254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
8051
     264,    -1,   266,   267,   268,   269,   270,   271,   272,   273,
 
8052
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
8053
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
8054
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
8055
     304,   305,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
8056
     314,   315,   316,   317,   318,    -1,   320,   321,   322,   323,
 
8057
     324,   325,   326,   327,   328,    -1,    -1,   331,   332,   333,
 
8058
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
8059
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
8060
      -1,    -1,    -1,    21,    22,   359,    24,    25,    26,    27,
 
8061
      28,    29,    30,    31,    32,    33,    -1,    35,    36,    37,
 
8062
      38,    -1,    40,    41,    42,    43,    44,    -1,    46,    47,
 
8063
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
8064
      58,    59,    60,    61,    -1,    63,    64,    65,    66,    67,
 
8065
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
 
8066
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
8067
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
8068
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
8069
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
8070
     118,   119,    -1,   121,   122,   123,    -1,   125,   126,    -1,
 
8071
     128,    -1,   130,   131,   132,   133,   134,   135,   136,    -1,
 
8072
     138,   139,   140,   141,   142,    -1,   144,   145,   146,   147,
 
8073
     148,   149,   150,   151,    -1,   153,    -1,   155,   156,   157,
 
8074
     158,   159,   160,   161,   162,   163,   164,    -1,   166,   167,
 
8075
     168,   169,    -1,   171,   172,   173,   174,   175,   176,   177,
 
8076
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
8077
     188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
 
8078
     198,   199,    -1,   201,   202,   203,   204,    -1,   206,   207,
 
8079
     208,   209,    -1,    -1,   212,   213,    -1,    -1,   216,   217,
 
8080
      -1,    -1,   220,   221,   222,   223,   224,   225,   226,    -1,
 
8081
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
8082
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
8083
     248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
 
8084
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
8085
     268,   269,   270,   271,   272,   273,   274,   275,   276,    -1,
 
8086
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
8087
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
8088
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
8089
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
8090
     318,    -1,   320,   321,   322,   323,   324,   325,   326,   327,
 
8091
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
8092
     338,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
8093
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
8094
      22,   359,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
8095
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
8096
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
8097
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
8098
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
8099
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
8100
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
8101
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
8102
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
8103
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
8104
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
8105
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
8106
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
8107
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
8108
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
8109
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
8110
     182,   183,   184,   185,   186,   187,    -1,   189,   190,   191,
 
8111
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
8112
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
8113
     212,   213,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
8114
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
8115
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
8116
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
8117
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
8118
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
8119
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
8120
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
8121
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
8122
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
8123
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
8124
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
8125
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
8126
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
8127
      -1,    -1,    -1,    -1,    -1,    21,    22,   359,    24,    -1,
 
8128
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
8129
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
8130
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
8131
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
8132
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
8133
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
8134
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
8135
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
8136
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
8137
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
8138
     126,    -1,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
8139
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,   145,
 
8140
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
8141
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
8142
     166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
8143
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
8144
     186,   187,    -1,   189,    -1,   191,   192,   193,   194,   195,
 
8145
     196,   197,   198,   199,    -1,   201,   202,    -1,   204,    -1,
 
8146
     206,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
8147
     216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,   225,
 
8148
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
8149
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
8150
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
8151
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
 
8152
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
8153
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
8154
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
8155
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
8156
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
8157
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
8158
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
8159
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
8160
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
8161
      -1,    21,    22,   359,    24,    -1,    26,    27,    28,    -1,
 
8162
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
8163
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
8164
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
8165
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
8166
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
8167
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
8168
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
8169
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
8170
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
8171
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
8172
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
8173
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
8174
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
8175
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
8176
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
8177
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
8178
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
8179
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
8180
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
8181
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
8182
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
8183
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
8184
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
8185
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
8186
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
8187
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
8188
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
8189
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
8190
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
8191
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
8192
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
8193
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
8194
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,   359,
 
8195
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
8196
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
8197
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
8198
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
8199
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
8200
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
8201
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
8202
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
8203
     104,   105,   106,   107,   108,   109,   110,    -1,   112,   113,
 
8204
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
8205
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,    -1,
 
8206
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
8207
      -1,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
8208
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
8209
     164,    -1,   166,    -1,   168,    -1,    -1,   171,   172,   173,
 
8210
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
8211
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
8212
     194,   195,   196,   197,   198,   199,    -1,   201,   202,    -1,
 
8213
     204,    -1,   206,   207,   208,   209,    -1,    -1,   212,    -1,
 
8214
      -1,    -1,   216,   217,    -1,    -1,   220,    -1,    -1,   223,
 
8215
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
8216
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
8217
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
8218
      -1,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
8219
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
8220
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
8221
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
8222
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
8223
     304,   305,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
8224
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
8225
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
8226
     334,   335,   336,    -1,   338,    -1,    -1,    -1,    -1,   343,
 
8227
      -1,    -1,   346,   347,   348,    -1,   350,   351,   352,   353,
 
8228
     354,   355,     3,     4,     5,     6,     7,     8,     9,    10,
 
8229
      -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8230
      21,    22,    -1,    24,    -1,    26,    27,    28,    -1,    30,
 
8231
      -1,    32,    33,    -1,    35,    36,    37,    38,    -1,    -1,
 
8232
      41,    42,    43,    44,    -1,    46,    47,    48,    49,    50,
 
8233
      -1,    -1,    53,    54,    55,    56,    -1,    58,    59,    60,
 
8234
      61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,
 
8235
      -1,    -1,    73,    74,    75,    76,    77,    78,    79,    80,
 
8236
      -1,    82,    -1,    84,    85,    86,    87,    88,    -1,    90,
 
8237
      -1,    -1,    93,    94,    95,    96,    -1,    98,    99,   100,
 
8238
      -1,   102,    -1,   104,   105,   106,   107,   108,   109,   110,
 
8239
      -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,
 
8240
      -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,   130,
 
8241
     131,   132,    -1,   134,   135,   136,    -1,   138,   139,   140,
 
8242
     141,   142,    -1,    -1,   145,   146,   147,   148,   149,   150,
 
8243
     151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,
 
8244
     161,   162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,
 
8245
     171,   172,   173,    -1,    -1,   176,   177,   178,   179,   180,
 
8246
     181,   182,   183,   184,   185,   186,   187,    -1,   189,    -1,
 
8247
     191,   192,   193,   194,   195,   196,   197,   198,   199,    -1,
 
8248
     201,   202,    -1,   204,    -1,   206,   207,   208,   209,    -1,
 
8249
      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,
 
8250
      -1,    -1,   223,   224,   225,   226,    -1,   228,   229,   230,
 
8251
     231,   232,    -1,   234,   235,   236,   237,   238,   239,   240,
 
8252
     241,    -1,   243,   244,   245,   246,   247,   248,   249,   250,
 
8253
     251,   252,   253,    -1,   255,   256,   257,   258,   259,   260,
 
8254
     261,   262,   263,   264,    -1,   266,   267,   268,    -1,   270,
 
8255
     271,   272,   273,    -1,   275,   276,    -1,   278,   279,   280,
 
8256
     281,   282,   283,   284,   285,   286,   287,    -1,   289,   290,
 
8257
      -1,   292,   293,   294,   295,    -1,   297,   298,    -1,   300,
 
8258
      -1,   302,   303,   304,   305,    -1,   307,   308,   309,   310,
 
8259
     311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,
 
8260
     321,   322,   323,   324,   325,    -1,   327,   328,    -1,    -1,
 
8261
     331,   332,   333,   334,   335,   336,    -1,   338,    -1,    -1,
 
8262
      -1,    -1,   343,    -1,    -1,   346,   347,   348,    -1,   350,
 
8263
     351,   352,   353,   354,   355,     3,     4,     5,     6,     7,
 
8264
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
8265
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
8266
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
8267
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
8268
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
8269
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
8270
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
8271
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
8272
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
8273
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
8274
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
8275
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
8276
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
8277
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
8278
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
8279
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
8280
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
8281
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
8282
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
8283
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
8284
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
8285
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
8286
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
8287
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
8288
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
8289
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
8290
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
8291
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
8292
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
8293
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
8294
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
8295
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
8296
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
8297
     338,    -1,    -1,    -1,    -1,   343,    -1,    -1,   346,   347,
 
8298
     348,    -1,   350,   351,   352,   353,   354,   355,     3,     4,
 
8299
       5,     6,     7,     8,     9,    10,    -1,    12,    13,    -1,
 
8300
      -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,
 
8301
      -1,    26,    27,    28,    -1,    30,    -1,    32,    33,    -1,
 
8302
      35,    36,    37,    38,    -1,    -1,    41,    42,    43,    44,
 
8303
      -1,    46,    47,    48,    49,    50,    -1,    -1,    53,    54,
 
8304
      55,    56,    -1,    58,    59,    60,    61,    -1,    63,    64,
 
8305
      65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,
 
8306
      75,    76,    77,    78,    79,    80,    -1,    82,    -1,    84,
 
8307
      85,    86,    87,    88,    -1,    90,    -1,    -1,    93,    94,
 
8308
      95,    96,    -1,    98,    99,   100,    -1,   102,    -1,   104,
 
8309
     105,   106,   107,   108,   109,   110,    -1,   112,   113,   114,
 
8310
      -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,
 
8311
     125,   126,    -1,   128,    -1,   130,   131,   132,    -1,   134,
 
8312
     135,   136,    -1,   138,   139,   140,   141,   142,    -1,    -1,
 
8313
     145,   146,   147,   148,   149,   150,   151,    -1,   153,    -1,
 
8314
     155,    -1,    -1,   158,    -1,   160,   161,   162,   163,   164,
 
8315
      -1,   166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,
 
8316
      -1,   176,   177,   178,   179,   180,   181,   182,   183,   184,
 
8317
     185,   186,   187,    -1,   189,    -1,   191,   192,   193,   194,
 
8318
     195,   196,   197,   198,   199,    -1,   201,   202,    -1,   204,
 
8319
      -1,   206,   207,   208,   209,    -1,    -1,   212,    -1,    -1,
 
8320
      -1,   216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,
 
8321
     225,   226,    -1,   228,   229,   230,   231,   232,    -1,   234,
 
8322
     235,   236,   237,   238,   239,   240,   241,    -1,   243,   244,
 
8323
     245,   246,   247,   248,   249,   250,   251,   252,   253,    -1,
 
8324
     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
 
8325
      -1,   266,   267,   268,    -1,   270,   271,   272,   273,    -1,
 
8326
     275,   276,    -1,   278,   279,   280,   281,   282,   283,   284,
 
8327
     285,   286,   287,    -1,   289,   290,    -1,   292,   293,   294,
 
8328
     295,    -1,   297,   298,    -1,   300,    -1,   302,   303,   304,
 
8329
     305,    -1,   307,   308,   309,   310,   311,    -1,    -1,   314,
 
8330
     315,   316,   317,    -1,    -1,   320,   321,   322,   323,   324,
 
8331
     325,    -1,   327,   328,    -1,    -1,   331,   332,   333,   334,
 
8332
     335,   336,    -1,   338,    -1,    -1,    -1,    -1,   343,    -1,
 
8333
      -1,   346,   347,   348,    -1,   350,   351,   352,   353,   354,
 
8334
     355,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
8335
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
8336
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
8337
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
8338
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
8339
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
8340
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
8341
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
8342
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
8343
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
8344
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
8345
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
8346
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
8347
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
8348
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
8349
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
8350
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
8351
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
8352
     182,   183,   184,   185,   186,   187,    -1,   189,    -1,   191,
 
8353
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
8354
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
8355
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
8356
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
8357
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
8358
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
8359
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
8360
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
8361
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
8362
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
8363
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
8364
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
8365
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
8366
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
8367
     332,   333,   334,   335,   336,    -1,   338,    -1,    -1,    -1,
 
8368
      -1,   343,    -1,    -1,   346,   347,   348,    -1,   350,   351,
 
8369
     352,   353,   354,   355,     3,     4,     5,     6,     7,     8,
 
8370
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
 
8371
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
 
8372
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
 
8373
      -1,    -1,    41,    42,    43,    44,    -1,    46,    47,    48,
 
8374
      49,    -1,    -1,    -1,    53,    54,    55,    56,    -1,    58,
 
8375
      59,    -1,    61,    -1,    63,    64,    65,    -1,    67,    -1,
 
8376
      -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,    78,
 
8377
      79,    80,    -1,    82,    -1,    84,    85,    86,    87,    88,
 
8378
      -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,    98,
 
8379
      99,   100,    -1,   102,    -1,   104,   105,   106,    -1,   108,
 
8380
     109,    -1,    -1,   112,   113,   114,    -1,   116,    -1,   118,
 
8381
      -1,    -1,    -1,   122,   123,    -1,   125,    -1,    -1,   128,
 
8382
      -1,   130,   131,   132,    -1,   134,   135,   136,    -1,   138,
 
8383
     139,   140,   141,   142,    -1,    -1,    -1,   146,   147,   148,
 
8384
     149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,
 
8385
      -1,   160,   161,   162,   163,   164,    -1,    -1,    -1,   168,
 
8386
      -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,   178,
 
8387
     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
 
8388
     189,    -1,   191,   192,   193,   194,   195,   196,   197,    -1,
 
8389
     199,    -1,   201,   202,    -1,   204,    -1,    -1,   207,   208,
 
8390
     209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
 
8391
      -1,    -1,    -1,    -1,    -1,   224,   225,   226,    -1,    -1,
 
8392
      -1,   230,   231,   232,    -1,   234,   235,   236,   237,   238,
 
8393
     239,   240,   241,    -1,   243,   244,   245,   246,   247,   248,
 
8394
     249,   250,   251,   252,   253,    -1,   255,   256,    -1,   258,
 
8395
     259,   260,   261,   262,   263,   264,    -1,   266,   267,   268,
 
8396
      -1,   270,   271,   272,   273,    -1,   275,   276,    -1,   278,
 
8397
     279,   280,   281,   282,   283,   284,   285,    -1,   287,    -1,
 
8398
     289,   290,    -1,   292,   293,   294,   295,    -1,   297,   298,
 
8399
      -1,   300,    -1,   302,    -1,   304,    -1,    -1,   307,   308,
 
8400
     309,   310,   311,    -1,    -1,   314,   315,   316,   317,    -1,
 
8401
      -1,   320,   321,   322,   323,   324,   325,    -1,   327,   328,
 
8402
      -1,    -1,   331,   332,   333,   334,   335,   336,    -1,   338,
 
8403
     339,   340,    -1,    -1,   343,   344,    -1,   346,   347,   348,
 
8404
      -1,   350,   351,   352,   353,   354,   355,     3,     4,     5,
 
8405
       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
 
8406
      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
 
8407
      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
 
8408
      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
 
8409
      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
 
8410
      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
 
8411
      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
 
8412
      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
 
8413
      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
 
8414
      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
 
8415
     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
 
8416
     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
 
8417
     126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
 
8418
     136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
 
8419
     146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
 
8420
     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
 
8421
     166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
 
8422
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
8423
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
 
8424
     196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
 
8425
     206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
 
8426
     216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
 
8427
     226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
 
8428
     236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
 
8429
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
 
8430
     256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
 
8431
     266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
 
8432
     276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
 
8433
     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
 
8434
     296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
 
8435
     306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
 
8436
     316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
 
8437
     326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
 
8438
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
8439
      10,    -1,    12,    13,    -1,    -1,   352,    -1,    -1,    -1,
 
8440
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
8441
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
8442
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
8443
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
8444
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
8445
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
8446
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
8447
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
8448
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
8449
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
8450
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
8451
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
8452
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
8453
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
8454
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
8455
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
8456
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
8457
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
8458
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
8459
      -1,    -1,   212,   213,    -1,    -1,   216,   217,    -1,    -1,
 
8460
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
8461
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
8462
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
8463
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
8464
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
8465
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
8466
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
8467
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
8468
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
8469
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
8470
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
8471
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
8472
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
8473
      -1,    -1,   352,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
8474
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
8475
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
8476
      44,    -1,    46,    47,    48,    49,    -1,    -1,    -1,    53,
 
8477
      54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    63,
 
8478
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
8479
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
8480
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
8481
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
8482
     104,   105,   106,    -1,   108,   109,    -1,    -1,   112,   113,
 
8483
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
8484
      -1,   125,    -1,    -1,   128,    -1,   130,   131,   132,    -1,
 
8485
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
8486
      -1,    -1,   146,   147,   148,   149,   150,   151,    -1,   153,
 
8487
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
8488
     164,    -1,    -1,    -1,   168,    -1,    -1,   171,   172,   173,
 
8489
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
8490
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
8491
     194,   195,   196,   197,    -1,   199,    -1,   201,   202,    -1,
 
8492
     204,    -1,    -1,   207,   208,   209,    -1,    -1,   212,    -1,
 
8493
      -1,    -1,   216,   217,    -1,    -1,    -1,    -1,    -1,    -1,
 
8494
     224,   225,   226,    -1,    -1,    -1,   230,   231,   232,    -1,
 
8495
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
8496
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
8497
      -1,   255,   256,    -1,   258,   259,   260,   261,   262,   263,
 
8498
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
8499
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
8500
     284,   285,    -1,   287,    -1,   289,   290,    -1,   292,   293,
 
8501
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,    -1,
 
8502
     304,    -1,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
8503
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
8504
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
8505
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
8506
       8,     9,    10,    -1,    12,    13,    -1,    -1,   352,    -1,
 
8507
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
8508
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
8509
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
8510
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
8511
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
8512
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
8513
      78,    79,    80,    81,    82,    -1,    84,    85,    86,    87,
 
8514
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
8515
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
8516
     108,   109,   110,   111,   112,   113,   114,    -1,   116,    -1,
 
8517
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
8518
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
8519
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
8520
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
8521
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
8522
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
8523
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
8524
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
8525
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
8526
     208,   209,   210,    -1,   212,    -1,   214,    -1,   216,   217,
 
8527
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
8528
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
8529
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
8530
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
8531
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
8532
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
8533
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
8534
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
8535
     298,    -1,   300,    -1,   302,   303,   304,   305,   306,   307,
 
8536
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
8537
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
8538
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
8539
     338,   339,   340,    -1,    -1,    -1,   344,    -1,    -1,    -1,
 
8540
      -1,    -1,    -1,   351,     3,     4,     5,     6,     7,     8,
 
8541
       9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,
 
8542
      -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,    28,
 
8543
      -1,    30,    -1,    32,    33,    -1,    35,    36,    37,    38,
 
8544
      -1,    -1,    41,    42,    43,    44,    -1,    46,    47,    48,
 
8545
      49,    50,    -1,    -1,    53,    54,    55,    56,    -1,    58,
 
8546
      59,    60,    61,    -1,    63,    64,    65,    -1,    67,    -1,
 
8547
      -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,    78,
 
8548
      79,    80,    -1,    82,    -1,    84,    85,    86,    87,    88,
 
8549
      -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,    98,
 
8550
      99,   100,    -1,   102,    -1,   104,   105,   106,   107,   108,
 
8551
     109,   110,   111,   112,   113,   114,    -1,   116,    -1,   118,
 
8552
      -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,
 
8553
      -1,   130,   131,   132,    -1,   134,   135,   136,    -1,   138,
 
8554
     139,   140,   141,   142,    -1,    -1,   145,   146,   147,   148,
 
8555
     149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,
 
8556
      -1,   160,   161,   162,   163,   164,    -1,   166,    -1,   168,
 
8557
      -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,   178,
 
8558
     179,   180,   181,   182,   183,   184,   185,   186,   187,    -1,
 
8559
     189,    -1,   191,   192,   193,   194,   195,   196,   197,   198,
 
8560
     199,    -1,   201,   202,    -1,   204,    -1,   206,   207,   208,
 
8561
     209,   210,    -1,   212,    -1,   214,    -1,   216,   217,    -1,
 
8562
      -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,   228,
 
8563
     229,   230,   231,   232,    -1,   234,   235,   236,   237,   238,
 
8564
     239,   240,   241,    -1,   243,   244,   245,   246,   247,   248,
 
8565
     249,   250,   251,   252,   253,    -1,   255,   256,   257,   258,
 
8566
     259,   260,   261,   262,   263,   264,    -1,   266,   267,   268,
 
8567
      -1,   270,   271,   272,   273,    -1,   275,   276,    -1,   278,
 
8568
     279,   280,   281,   282,   283,   284,   285,   286,   287,    -1,
 
8569
     289,   290,    -1,   292,   293,   294,   295,    -1,   297,   298,
 
8570
      -1,   300,    -1,   302,   303,   304,   305,   306,   307,   308,
 
8571
     309,   310,   311,    -1,    -1,   314,   315,   316,   317,    -1,
 
8572
      -1,   320,   321,   322,   323,   324,   325,    -1,   327,   328,
 
8573
      -1,    -1,   331,   332,   333,   334,   335,   336,    -1,   338,
 
8574
     339,   340,    -1,    -1,    -1,   344,    -1,    -1,    -1,    -1,
 
8575
      -1,    -1,   351,     3,     4,     5,     6,     7,     8,     9,
 
8576
      10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
8577
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
8578
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
8579
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
8580
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
8581
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
8582
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
8583
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
8584
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
8585
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
8586
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
8587
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
8588
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
8589
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
8590
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
8591
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
8592
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
8593
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
8594
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
8595
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
8596
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
8597
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
8598
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
8599
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
8600
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
8601
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
8602
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
8603
     280,   281,   282,   283,   284,   285,   286,   287,    16,   289,
 
8604
     290,    -1,   292,   293,   294,   295,    24,   297,   298,    -1,
 
8605
     300,    29,   302,   303,   304,   305,    -1,   307,   308,   309,
 
8606
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
8607
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    16,
 
8608
      -1,   331,   332,   333,   334,   335,   336,    24,   338,    -1,
 
8609
      -1,    -1,    29,    -1,   344,    -1,    -1,    -1,    -1,    -1,
 
8610
      -1,   351,    -1,    -1,    -1,    -1,    16,    -1,    -1,    -1,
 
8611
      -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,
 
8612
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    16,    -1,    -1,
 
8613
      -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,    -1,    -1,
 
8614
      29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8615
      -1,    -1,    -1,    -1,    16,   133,    -1,    -1,    -1,   137,
 
8616
      -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    -1,    -1,
 
8617
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,
 
8618
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8619
      -1,   169,    -1,    -1,    -1,    16,   133,    -1,    -1,    -1,
 
8620
     137,    -1,    -1,    24,    -1,    -1,    -1,    -1,    29,    -1,
 
8621
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,
 
8622
     157,    -1,   200,   133,    -1,   203,    -1,   137,    -1,    -1,
 
8623
      -1,    -1,   169,    -1,    -1,    -1,    -1,    -1,   216,    -1,
 
8624
     218,    -1,    -1,    -1,   133,    -1,   156,   157,   137,    -1,
 
8625
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   169,
 
8626
      -1,    -1,    -1,   200,    -1,    -1,   203,   156,   157,    -1,
 
8627
      -1,   133,    -1,    -1,    -1,   137,    -1,    -1,    -1,   216,
 
8628
     169,   218,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8629
     200,    -1,    -1,   203,   156,   157,   274,    -1,    -1,    -1,
 
8630
      -1,    -1,    -1,    -1,    -1,    -1,   216,   169,   218,    -1,
 
8631
      -1,   200,   133,    -1,   203,    -1,   137,    -1,   296,    -1,
 
8632
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,   218,
 
8633
      -1,    -1,    -1,    -1,    -1,   156,   157,   274,   200,    -1,
 
8634
      -1,   203,    -1,    -1,    -1,    -1,    -1,    -1,   169,    -1,
 
8635
      -1,    -1,    -1,    -1,   216,    -1,   218,    -1,    -1,    -1,
 
8636
      -1,    -1,    -1,    -1,   274,   343,    -1,    -1,   346,   347,
 
8637
     348,    -1,   350,   351,   352,   353,   354,   355,    -1,   200,
 
8638
      -1,    -1,   203,   361,    -1,   274,    -1,    -1,    -1,    -1,
 
8639
      -1,    -1,    -1,    -1,    -1,   216,    -1,   218,    -1,    -1,
 
8640
      -1,    -1,    -1,    -1,    -1,    -1,   343,    -1,    -1,   346,
 
8641
     347,   348,   274,   350,   351,   352,   353,   354,   355,    -1,
 
8642
      -1,    16,    -1,   360,   361,    -1,    -1,    -1,    -1,    24,
 
8643
      -1,    -1,    -1,   343,    29,    -1,   346,   347,   348,    -1,
 
8644
     350,   351,   352,   353,   354,   355,    -1,    16,    -1,    -1,
 
8645
     360,   361,    -1,   274,   343,    24,    -1,   346,   347,   348,
 
8646
      29,   350,   351,   352,   353,   354,   355,    -1,    -1,    -1,
 
8647
      -1,   360,   361,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8648
      -1,   343,    -1,    -1,   346,   347,   348,    -1,   350,   351,
 
8649
     352,   353,   354,   355,    -1,    -1,    -1,    -1,   360,   361,
 
8650
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8651
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8652
      -1,    -1,   343,    -1,    -1,   346,   347,   348,    -1,   350,
 
8653
     351,   352,   353,   354,   355,    -1,    -1,    -1,   133,   360,
 
8654
     361,    -1,   137,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8655
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8656
      -1,   156,   157,    -1,   133,    -1,    -1,    -1,   137,    -1,
 
8657
      -1,    -1,    -1,    -1,   169,    -1,    -1,    -1,    -1,    -1,
 
8658
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   156,   157,    -1,
 
8659
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8660
     169,    -1,    -1,    -1,    -1,   200,    -1,    -1,   203,    -1,
 
8661
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8662
      -1,   216,    -1,   218,    -1,    -1,    -1,    -1,    -1,    -1,
 
8663
      -1,   200,    -1,    -1,   203,    -1,    -1,    -1,    -1,    -1,
 
8664
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   216,    -1,   218,
 
8665
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8666
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8667
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   274,
 
8668
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8669
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8670
      -1,    -1,    -1,    -1,    -1,   274,    -1,    -1,    -1,    -1,
 
8671
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8672
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8673
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
8674
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   343,    -1,
 
8675
      -1,   346,   347,   348,    -1,   350,   351,   352,   353,   354,
 
8676
     355,    -1,    -1,    -1,    -1,   360,   361,    -1,    -1,    -1,
 
8677
      -1,    -1,    -1,    -1,   343,    -1,    -1,   346,   347,   348,
 
8678
      -1,   350,   351,   352,   353,   354,   355,    -1,    -1,    -1,
 
8679
      -1,    -1,   361,     3,     4,     5,     6,     7,     8,     9,
 
8680
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
8681
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
8682
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
8683
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
8684
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
8685
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
8686
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
8687
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
8688
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
8689
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
8690
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
8691
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
8692
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
8693
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
8694
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
8695
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
8696
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
8697
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
8698
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
8699
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
8700
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
8701
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
8702
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
8703
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
8704
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
8705
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
8706
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
8707
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
8708
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
8709
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
8710
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
8711
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
8712
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,   339,
 
8713
     340,   341,   342,    -1,   344,     3,     4,     5,     6,     7,
 
8714
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
8715
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
8716
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
8717
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
8718
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
8719
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
8720
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
8721
      78,    79,    80,    81,    82,    -1,    84,    85,    86,    87,
 
8722
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
8723
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
8724
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
8725
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
8726
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
8727
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
8728
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
8729
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
8730
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
8731
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
8732
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
8733
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
8734
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
8735
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
8736
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
8737
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
8738
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
8739
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
8740
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
8741
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
8742
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
8743
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
8744
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
8745
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
8746
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
8747
     338,    -1,   340,     3,     4,     5,     6,     7,     8,     9,
 
8748
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
8749
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
8750
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
8751
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
8752
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
8753
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
8754
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
8755
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
8756
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
8757
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
8758
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
8759
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
8760
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
8761
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
8762
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
8763
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
8764
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
8765
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
8766
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
8767
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
8768
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
8769
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
8770
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
8771
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
8772
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
8773
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
8774
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
8775
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
8776
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
8777
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
8778
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
8779
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
8780
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,    -1,
 
8781
     340,     3,     4,     5,     6,     7,     8,     9,    10,    11,
 
8782
      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
 
8783
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
 
8784
      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
 
8785
      42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
 
8786
      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
 
8787
      62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
 
8788
      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
 
8789
      82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
 
8790
      92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
 
8791
     102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
 
8792
     112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
 
8793
     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
 
8794
     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
 
8795
     142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
 
8796
     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
 
8797
     162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
 
8798
     172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
 
8799
     182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
 
8800
     192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
 
8801
     202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
 
8802
     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
 
8803
     222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
 
8804
     232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
 
8805
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
8806
     252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
 
8807
     262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
 
8808
     272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
 
8809
     282,   283,   284,   285,   286,   287,   288,   289,   290,   291,
 
8810
     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
 
8811
     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
 
8812
     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
 
8813
     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
 
8814
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
8815
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
8816
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    25,
 
8817
      26,    27,    28,    29,    30,    31,    32,    33,    -1,    35,
 
8818
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
8819
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
8820
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
8821
      66,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
8822
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
8823
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
8824
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
8825
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
8826
     116,    -1,   118,   119,    -1,   121,   122,   123,    -1,   125,
 
8827
     126,    -1,   128,    -1,   130,   131,   132,   133,   134,   135,
 
8828
     136,    -1,   138,   139,   140,   141,   142,    -1,   144,   145,
 
8829
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
8830
     156,   157,   158,   159,   160,   161,   162,   163,   164,    -1,
 
8831
     166,   167,   168,   169,    -1,   171,   172,   173,    -1,    -1,
 
8832
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
8833
     186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
 
8834
     196,   197,   198,   199,    -1,   201,   202,   203,   204,    -1,
 
8835
     206,   207,   208,   209,    -1,    -1,   212,   213,    -1,    -1,
 
8836
     216,   217,    -1,    -1,   220,   221,   222,   223,   224,   225,
 
8837
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
8838
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
8839
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
 
8840
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
8841
     266,   267,   268,    -1,   270,   271,   272,   273,   274,   275,
 
8842
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
8843
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
8844
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
8845
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
8846
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
8847
     326,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
8848
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
8849
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
8850
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
8851
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
8852
      -1,    41,    42,    43,    44,    45,    46,    47,    48,    49,
 
8853
      50,    -1,    -1,    53,    54,    55,    56,    57,    58,    59,
 
8854
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
8855
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
8856
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
8857
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
8858
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
8859
     110,    -1,   112,   113,   114,    -1,   116,   117,   118,    -1,
 
8860
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
8861
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
8862
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
8863
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
8864
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,   169,
 
8865
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
8866
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
8867
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
8868
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
8869
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
8870
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
8871
     230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
 
8872
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
8873
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
8874
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
8875
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
8876
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
8877
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
8878
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
8879
     310,   311,    -1,   313,   314,   315,   316,   317,    -1,    -1,
 
8880
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
8881
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
8882
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
8883
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
8884
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
 
8885
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
8886
      44,    -1,    46,    47,    48,    49,    -1,    -1,    -1,    53,
 
8887
      54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    63,
 
8888
      64,    65,    66,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
8889
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
8890
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
8891
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
8892
     104,   105,   106,    -1,   108,   109,    -1,    -1,   112,   113,
 
8893
     114,    -1,   116,    -1,   118,   119,    -1,   121,   122,   123,
 
8894
      -1,   125,    -1,    -1,   128,    -1,   130,   131,   132,   133,
 
8895
     134,   135,   136,   137,   138,   139,   140,   141,   142,    -1,
 
8896
     144,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
8897
      -1,   155,   156,   157,   158,   159,   160,   161,   162,   163,
 
8898
     164,    -1,    -1,   167,   168,   169,    -1,   171,   172,   173,
 
8899
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
8900
     184,   185,   186,   187,   188,   189,    -1,   191,   192,   193,
 
8901
     194,   195,   196,   197,    -1,   199,    -1,   201,   202,   203,
 
8902
     204,    -1,    -1,   207,   208,   209,    -1,    -1,   212,    -1,
 
8903
      -1,    -1,   216,   217,    -1,    -1,   220,   221,   222,    -1,
 
8904
     224,   225,   226,    -1,    -1,    -1,   230,   231,   232,    -1,
 
8905
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
8906
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
8907
     254,   255,   256,    -1,   258,   259,   260,   261,   262,   263,
 
8908
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
8909
     274,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
8910
     284,   285,    -1,   287,    -1,   289,   290,    -1,   292,   293,
 
8911
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,    -1,
 
8912
     304,    -1,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
8913
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
8914
     324,   325,   326,   327,   328,    -1,    -1,   331,   332,   333,
 
8915
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
8916
       8,     9,    10,    11,    12,    13,    -1,    -1,    -1,    -1,
 
8917
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
8918
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
8919
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
8920
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
8921
      58,    59,    60,    61,    62,    63,    64,    65,    -1,    67,
 
8922
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
8923
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
8924
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
8925
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
8926
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
8927
     118,    -1,    -1,    -1,   122,   123,   124,   125,   126,    -1,
 
8928
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
8929
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
8930
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
8931
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
8932
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
8933
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
8934
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
8935
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
8936
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
8937
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
8938
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
8939
     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
 
8940
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
8941
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
 
8942
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
8943
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
8944
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
8945
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
8946
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
8947
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
8948
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
8949
     338,     3,     4,     5,     6,     7,     8,     9,    10,    11,
 
8950
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
8951
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
8952
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
8953
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
8954
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
8955
      62,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
8956
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
8957
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
8958
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
8959
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
8960
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
8961
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
8962
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
8963
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
8964
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
8965
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
8966
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
8967
     182,   183,   184,   185,   186,   187,    -1,   189,    -1,   191,
 
8968
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
8969
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
8970
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
8971
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
8972
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
8973
     242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
8974
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
8975
     262,   263,   264,   265,   266,   267,   268,    -1,   270,   271,
 
8976
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
8977
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
8978
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
8979
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
8980
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
8981
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
8982
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
8983
       6,     7,     8,     9,    10,    -1,    12,    13,    14,    15,
 
8984
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,
 
8985
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
8986
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
8987
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
8988
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
8989
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
8990
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
8991
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
8992
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
8993
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
8994
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
8995
     126,    -1,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
8996
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,   145,
 
8997
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
8998
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
8999
     166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
9000
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
9001
     186,   187,    -1,   189,   190,   191,   192,   193,   194,   195,
 
9002
     196,   197,   198,   199,    -1,   201,   202,    -1,   204,    -1,
 
9003
     206,   207,   208,   209,    -1,    -1,   212,   213,    -1,    -1,
 
9004
     216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,   225,
 
9005
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
9006
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
9007
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
9008
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
9009
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
9010
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
9011
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
9012
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
9013
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
9014
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
9015
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
9016
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
9017
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
9018
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
9019
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
9020
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
9021
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
9022
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
9023
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
9024
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
9025
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
9026
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
9027
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
9028
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
9029
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
9030
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
9031
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
9032
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
9033
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
9034
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
9035
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
9036
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
9037
      -1,    -1,   212,   213,    -1,   215,   216,   217,    -1,    -1,
 
9038
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
9039
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
9040
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
9041
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
9042
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
9043
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
9044
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
9045
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
9046
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
9047
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
9048
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
9049
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
9050
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
9051
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
9052
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
9053
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
9054
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
9055
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
9056
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
9057
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
9058
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
9059
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
9060
     104,   105,   106,   107,   108,   109,   110,    -1,   112,   113,
 
9061
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
9062
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,    -1,
 
9063
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
9064
      -1,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
9065
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
9066
     164,    -1,   166,    -1,   168,    -1,    -1,   171,   172,   173,
 
9067
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
9068
     184,   185,   186,   187,    -1,   189,   190,   191,   192,   193,
 
9069
     194,   195,   196,   197,   198,   199,    -1,   201,   202,    -1,
 
9070
     204,    -1,   206,   207,   208,   209,    -1,    -1,   212,   213,
 
9071
      -1,    -1,   216,   217,    -1,    -1,   220,    -1,    -1,   223,
 
9072
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
9073
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
9074
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
9075
      -1,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
9076
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
9077
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
9078
     284,   285,   286,   287,    -1,   289,   290,   291,   292,   293,
 
9079
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
9080
     304,   305,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
9081
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
9082
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
9083
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
9084
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
9085
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
9086
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
9087
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
9088
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
9089
      58,    59,    60,    61,    62,    63,    64,    65,    -1,    67,
 
9090
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
9091
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
9092
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
9093
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
9094
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
9095
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
9096
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
9097
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
9098
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
9099
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
9100
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
9101
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
9102
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
9103
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
9104
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
9105
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
9106
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
9107
     238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
 
9108
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
9109
     258,   259,   260,   261,   262,   263,   264,   265,   266,   267,
 
9110
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
9111
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
9112
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
9113
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
9114
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
9115
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
9116
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
9117
     338,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
9118
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
9119
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
9120
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
9121
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
9122
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
9123
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
9124
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
9125
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
9126
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
9127
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
9128
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
9129
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
9130
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
9131
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
9132
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
9133
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
9134
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
9135
     182,   183,   184,   185,   186,   187,    -1,   189,   190,   191,
 
9136
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
9137
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
9138
     212,   213,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
9139
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
9140
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
9141
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
9142
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
9143
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
9144
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
9145
     282,   283,   284,   285,   286,   287,    -1,   289,   290,   291,
 
9146
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
9147
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
9148
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
9149
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
9150
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
9151
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
9152
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    25,
 
9153
      26,    27,    28,    29,    30,    31,    32,    33,    -1,    35,
 
9154
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
9155
      46,    47,    48,    49,    -1,    -1,    -1,    53,    54,    55,
 
9156
      56,    -1,    58,    59,    -1,    61,    -1,    63,    64,    65,
 
9157
      66,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
9158
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
9159
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
9160
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
9161
     106,    -1,   108,   109,    -1,    -1,   112,   113,   114,    -1,
 
9162
     116,    -1,   118,   119,    -1,   121,   122,   123,    -1,   125,
 
9163
      -1,    -1,   128,    -1,   130,   131,   132,   133,   134,   135,
 
9164
     136,    -1,   138,   139,   140,   141,   142,    -1,   144,    -1,
 
9165
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
9166
     156,   157,   158,   159,   160,   161,   162,   163,   164,    -1,
 
9167
      -1,   167,   168,   169,    -1,   171,   172,   173,    -1,    -1,
 
9168
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
9169
     186,   187,   188,   189,    -1,   191,   192,   193,   194,   195,
 
9170
     196,   197,    -1,   199,    -1,   201,   202,   203,   204,    -1,
 
9171
      -1,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
9172
     216,   217,    -1,    -1,    -1,   221,   222,    -1,   224,   225,
 
9173
     226,    -1,    -1,    -1,   230,   231,   232,    -1,   234,   235,
 
9174
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
9175
     246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
 
9176
     256,    -1,   258,   259,   260,   261,   262,   263,   264,    -1,
 
9177
     266,   267,   268,    -1,   270,   271,   272,   273,   274,   275,
 
9178
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
9179
      -1,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
9180
      -1,   297,   298,    -1,   300,    -1,   302,    -1,   304,    -1,
 
9181
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
9182
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
9183
     326,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
9184
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
9185
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
9186
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
9187
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
9188
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
9189
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
9190
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
9191
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
9192
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
9193
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
9194
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
9195
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
9196
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
9197
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
9198
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
9199
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
9200
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
9201
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
9202
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
9203
     190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
9204
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
9205
      -1,    -1,   212,   213,    -1,    -1,   216,   217,    -1,    -1,
 
9206
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
9207
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
9208
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
9209
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
9210
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
9211
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
9212
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
9213
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
9214
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
9215
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
9216
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
9217
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
9218
       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
 
9219
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
9220
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
9221
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
9222
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
9223
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
9224
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
9225
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
9226
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
9227
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
9228
     104,   105,   106,   107,   108,   109,   110,    -1,   112,   113,
 
9229
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
9230
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,    -1,
 
9231
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
9232
      -1,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
9233
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
9234
     164,    -1,   166,    -1,   168,    -1,    -1,   171,   172,   173,
 
9235
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
9236
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
9237
     194,   195,   196,   197,   198,   199,    -1,   201,   202,    -1,
 
9238
     204,    -1,   206,   207,   208,   209,    -1,    -1,   212,    -1,
 
9239
      -1,    -1,   216,   217,    -1,    -1,   220,    -1,    -1,   223,
 
9240
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
9241
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
9242
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
9243
      -1,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
9244
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
9245
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
9246
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
9247
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
9248
     304,   305,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
9249
     314,   315,   316,   317,   318,    -1,   320,   321,   322,   323,
 
9250
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
9251
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
9252
       8,     9,    10,    11,    12,    13,    -1,    -1,    -1,    -1,
 
9253
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
9254
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
9255
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
9256
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
9257
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
9258
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
9259
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
9260
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
9261
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
9262
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
9263
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
9264
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
9265
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
9266
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
9267
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
9268
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
9269
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
9270
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
9271
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
9272
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
9273
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
9274
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
9275
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
9276
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
9277
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
9278
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
9279
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
9280
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
9281
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
9282
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
9283
     318,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
9284
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
9285
     338,     3,     4,     5,     6,     7,     8,     9,    10,    11,
 
9286
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
9287
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
9288
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
9289
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
9290
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
9291
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
9292
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
9293
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
9294
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
9295
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
9296
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
9297
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
9298
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
9299
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
9300
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
9301
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
9302
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
9303
     182,   183,   184,   185,   186,   187,    -1,   189,    -1,   191,
 
9304
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
9305
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
9306
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
9307
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
9308
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
9309
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
9310
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
9311
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
9312
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
9313
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
9314
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
9315
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
9316
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
9317
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
9318
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
9319
       6,     7,     8,     9,    10,    11,    12,    13,    -1,    -1,
 
9320
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,
 
9321
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
9322
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
9323
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
9324
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
9325
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
9326
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
9327
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
9328
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
9329
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
9330
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
9331
     126,    -1,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
9332
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,   145,
 
9333
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
9334
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
9335
     166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
9336
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
9337
     186,   187,    -1,   189,    -1,   191,   192,   193,   194,   195,
 
9338
     196,   197,   198,   199,    -1,   201,   202,    -1,   204,    -1,
 
9339
     206,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
9340
     216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,   225,
 
9341
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
9342
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
9343
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
9344
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
9345
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
9346
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
9347
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
9348
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
9349
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
9350
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
9351
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
9352
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
9353
      10,    11,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
9354
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
9355
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
9356
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
9357
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
9358
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
9359
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
9360
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
9361
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
9362
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
9363
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
9364
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
9365
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
9366
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
9367
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
9368
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
9369
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
9370
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
9371
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
9372
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
9373
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
9374
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
9375
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
9376
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
9377
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
9378
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
9379
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
9380
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
9381
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
9382
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
9383
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
9384
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
9385
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
9386
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
9387
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
9388
      24,    25,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
9389
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
9390
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
9391
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
9392
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
9393
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
9394
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
9395
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
9396
     104,   105,   106,   107,   108,   109,   110,    -1,   112,   113,
 
9397
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
9398
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,    -1,
 
9399
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
9400
      -1,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
9401
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
9402
     164,    -1,   166,    -1,   168,    -1,    -1,   171,   172,   173,
 
9403
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
9404
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
9405
     194,   195,   196,   197,   198,   199,    -1,   201,   202,    -1,
 
9406
     204,    -1,   206,   207,   208,   209,    -1,    -1,   212,    -1,
 
9407
      -1,    -1,   216,   217,    -1,    -1,   220,    -1,    -1,   223,
 
9408
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
9409
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
9410
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
9411
      -1,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
9412
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
9413
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
9414
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
9415
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
9416
     304,   305,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
9417
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
9418
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
9419
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
9420
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
9421
      -1,    19,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
9422
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
9423
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
9424
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
9425
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
9426
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
9427
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
9428
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
9429
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
9430
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
9431
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
9432
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
9433
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
9434
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
9435
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
9436
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
9437
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
9438
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
9439
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
9440
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
9441
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
9442
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
9443
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
9444
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
9445
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
9446
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
9447
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
9448
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
9449
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
9450
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
9451
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
9452
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
9453
     338,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
9454
      12,    13,    -1,    -1,    -1,    -1,    -1,    19,    -1,    21,
 
9455
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
9456
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
9457
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
9458
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
9459
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
9460
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
9461
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
9462
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
9463
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
9464
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
9465
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
9466
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
9467
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
9468
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
9469
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
9470
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
9471
     182,   183,   184,   185,   186,   187,    -1,   189,    -1,   191,
 
9472
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
9473
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
9474
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
9475
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
9476
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
9477
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
9478
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
9479
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
9480
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
9481
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
9482
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
9483
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
9484
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
9485
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
9486
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
9487
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
9488
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,
 
9489
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
9490
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
9491
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
9492
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
9493
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
9494
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
9495
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
9496
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
9497
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
9498
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
9499
     126,   127,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
9500
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,   145,
 
9501
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
9502
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
9503
     166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
9504
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
9505
     186,   187,    -1,   189,    -1,   191,   192,   193,   194,   195,
 
9506
     196,   197,   198,   199,    -1,   201,   202,    -1,   204,    -1,
 
9507
     206,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
9508
     216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,   225,
 
9509
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
9510
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
9511
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
9512
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
9513
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
9514
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
9515
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
9516
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
9517
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
9518
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
9519
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
9520
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
9521
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
9522
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
9523
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
9524
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
9525
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
9526
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
9527
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
9528
      80,    81,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
9529
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
9530
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
9531
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
9532
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
9533
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
9534
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
9535
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
9536
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
9537
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
9538
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
9539
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
9540
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
9541
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
9542
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
9543
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
9544
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
9545
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
9546
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
9547
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
9548
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
9549
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
9550
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
9551
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
9552
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
9553
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
9554
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
9555
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
9556
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
9557
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
9558
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
9559
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
9560
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
9561
      74,    75,    76,    77,    78,    79,    80,    81,    82,    -1,
 
9562
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
9563
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
9564
     104,   105,   106,   107,   108,   109,   110,    -1,   112,   113,
 
9565
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
9566
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,    -1,
 
9567
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
9568
      -1,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
9569
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
9570
     164,    -1,   166,    -1,   168,    -1,    -1,   171,   172,   173,
 
9571
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
9572
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
9573
     194,   195,   196,   197,   198,   199,    -1,   201,   202,    -1,
 
9574
     204,    -1,   206,   207,   208,   209,    -1,    -1,   212,    -1,
 
9575
      -1,    -1,   216,   217,    -1,    -1,   220,    -1,    -1,   223,
 
9576
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
9577
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
9578
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
9579
      -1,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
9580
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
9581
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
9582
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
9583
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
9584
     304,   305,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
9585
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
9586
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
9587
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
9588
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
9589
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
9590
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
9591
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
9592
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
9593
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
9594
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
9595
      78,    79,    80,    81,    82,    -1,    84,    85,    86,    87,
 
9596
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
9597
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
9598
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
9599
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
9600
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
9601
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
9602
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
9603
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
9604
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
9605
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
9606
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
9607
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
9608
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
9609
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
9610
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
9611
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
9612
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
9613
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
9614
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
9615
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
9616
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
9617
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
9618
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
9619
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
9620
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
9621
     338,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
9622
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
9623
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
9624
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
9625
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
9626
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
9627
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
9628
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
9629
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
9630
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
9631
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
9632
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
9633
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
9634
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
9635
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
9636
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
9637
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
9638
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
9639
     182,   183,   184,   185,   186,   187,    -1,   189,    -1,   191,
 
9640
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
9641
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
9642
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
9643
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
9644
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
9645
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
9646
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
9647
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
9648
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
9649
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
9650
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
9651
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
9652
      -1,    -1,   314,   315,   316,   317,    -1,   319,   320,   321,
 
9653
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
9654
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
9655
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
9656
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,
 
9657
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
9658
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
9659
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
9660
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
9661
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
9662
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
9663
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
9664
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
9665
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
9666
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
9667
     126,    -1,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
9668
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,   145,
 
9669
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
9670
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
9671
     166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
9672
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
9673
     186,   187,    -1,   189,    -1,   191,   192,   193,   194,   195,
 
9674
     196,   197,   198,   199,    -1,   201,   202,    -1,   204,    -1,
 
9675
     206,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
9676
     216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,   225,
 
9677
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
9678
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
9679
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
9680
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
9681
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
9682
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
9683
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
9684
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
9685
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
9686
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
9687
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
9688
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
9689
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
9690
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
9691
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
9692
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
9693
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
9694
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
9695
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
9696
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
9697
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
9698
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
9699
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
9700
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
9701
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
9702
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
9703
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
9704
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
9705
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
9706
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
9707
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
9708
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
9709
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
9710
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
9711
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
9712
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
9713
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
9714
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
9715
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
9716
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
9717
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
9718
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
9719
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
9720
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
9721
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
9722
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
9723
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
9724
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
9725
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
9726
      44,    -1,    46,    47,    48,    49,    50,    -1,    -1,    53,
 
9727
      54,    55,    56,    -1,    58,    59,    60,    61,    -1,    63,
 
9728
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
9729
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
9730
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
9731
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
9732
     104,   105,   106,   107,   108,   109,   110,    -1,   112,   113,
 
9733
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
9734
      -1,   125,   126,    -1,   128,    -1,   130,   131,   132,    -1,
 
9735
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
9736
      -1,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
9737
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
9738
     164,    -1,   166,    -1,   168,    -1,    -1,   171,   172,   173,
 
9739
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
9740
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
9741
     194,   195,   196,   197,   198,   199,    -1,   201,   202,    -1,
 
9742
     204,    -1,   206,   207,   208,   209,    -1,    -1,   212,    -1,
 
9743
      -1,    -1,   216,   217,    -1,    -1,   220,    -1,    -1,   223,
 
9744
     224,   225,   226,    -1,   228,   229,   230,   231,   232,    -1,
 
9745
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
9746
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
9747
      -1,   255,   256,   257,   258,   259,   260,   261,   262,   263,
 
9748
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
9749
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
9750
     284,   285,   286,   287,    -1,   289,   290,    -1,   292,   293,
 
9751
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,   303,
 
9752
     304,   305,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
9753
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
9754
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
9755
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
9756
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
9757
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
9758
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
9759
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
9760
      48,    49,    50,    -1,    -1,    53,    54,    55,    56,    -1,
 
9761
      58,    59,    60,    61,    -1,    63,    64,    65,    -1,    67,
 
9762
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
9763
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
9764
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
9765
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,   107,
 
9766
     108,   109,   110,    -1,   112,   113,   114,    -1,   116,    -1,
 
9767
     118,    -1,    -1,    -1,   122,   123,    -1,   125,   126,    -1,
 
9768
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
9769
     138,   139,   140,   141,   142,    -1,    -1,   145,   146,   147,
 
9770
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
9771
     158,    -1,   160,   161,   162,   163,   164,    -1,   166,    -1,
 
9772
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
9773
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
9774
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
9775
     198,   199,    -1,   201,   202,    -1,   204,    -1,   206,   207,
 
9776
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
9777
      -1,    -1,   220,    -1,    -1,   223,   224,   225,   226,    -1,
 
9778
     228,   229,   230,   231,   232,    -1,   234,   235,   236,   237,
 
9779
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
9780
     248,   249,   250,   251,   252,   253,    -1,   255,   256,   257,
 
9781
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
9782
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
9783
     278,   279,   280,   281,   282,   283,   284,   285,   286,   287,
 
9784
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
9785
     298,    -1,   300,    -1,   302,   303,   304,   305,    -1,   307,
 
9786
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
9787
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
9788
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
9789
     338,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
9790
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
9791
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
9792
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
9793
      42,    43,    44,    -1,    46,    47,    48,    49,    50,    -1,
 
9794
      -1,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
 
9795
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
9796
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
9797
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
9798
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
9799
     102,    -1,   104,   105,   106,   107,   108,   109,   110,    -1,
 
9800
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
9801
     122,   123,    -1,   125,   126,    -1,   128,    -1,   130,   131,
 
9802
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
9803
     142,    -1,    -1,   145,   146,   147,   148,   149,   150,   151,
 
9804
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
9805
     162,   163,   164,    -1,   166,    -1,   168,    -1,    -1,   171,
 
9806
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
9807
     182,   183,   184,   185,   186,   187,    -1,   189,    -1,   191,
 
9808
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
9809
     202,    -1,   204,    -1,   206,   207,   208,   209,    -1,    -1,
 
9810
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,   220,    -1,
 
9811
      -1,   223,   224,   225,   226,    -1,   228,   229,   230,   231,
 
9812
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
9813
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
9814
     252,   253,    -1,   255,   256,   257,   258,   259,   260,   261,
 
9815
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
9816
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
9817
     282,   283,   284,   285,   286,   287,    -1,   289,   290,    -1,
 
9818
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
9819
     302,   303,   304,   305,    -1,   307,   308,   309,   310,   311,
 
9820
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
9821
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
9822
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
9823
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
9824
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,
 
9825
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
9826
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
9827
      46,    47,    48,    49,    50,    -1,    -1,    53,    54,    55,
 
9828
      56,    -1,    58,    59,    60,    61,    -1,    63,    64,    65,
 
9829
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
9830
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
9831
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
9832
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
9833
     106,   107,   108,   109,   110,    -1,   112,   113,   114,    -1,
 
9834
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
9835
     126,    -1,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
9836
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,   145,
 
9837
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
9838
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
9839
     166,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
9840
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
9841
     186,   187,    -1,   189,    -1,   191,   192,   193,   194,   195,
 
9842
     196,   197,   198,   199,    -1,   201,   202,    -1,   204,    -1,
 
9843
     206,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
9844
     216,   217,    -1,    -1,   220,    -1,    -1,   223,   224,   225,
 
9845
     226,    -1,   228,   229,   230,   231,   232,    -1,   234,   235,
 
9846
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
9847
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
9848
     256,   257,   258,   259,   260,   261,   262,   263,   264,    -1,
 
9849
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
9850
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
9851
     286,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
9852
      -1,   297,   298,    -1,   300,    -1,   302,   303,   304,   305,
 
9853
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
9854
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
9855
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
9856
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
9857
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
9858
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
9859
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
9860
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
9861
      50,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
9862
      60,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
9863
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
9864
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
9865
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
9866
     100,    -1,   102,    -1,   104,   105,   106,   107,   108,   109,
 
9867
     110,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
9868
      -1,    -1,   122,   123,    -1,   125,   126,    -1,   128,    -1,
 
9869
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
9870
     140,   141,   142,    -1,    -1,   145,   146,   147,   148,   149,
 
9871
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
9872
     160,   161,   162,   163,   164,    -1,   166,    -1,   168,    -1,
 
9873
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
9874
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
9875
      -1,   191,   192,   193,   194,   195,   196,   197,   198,   199,
 
9876
      -1,   201,   202,    -1,   204,    -1,   206,   207,   208,   209,
 
9877
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
9878
     220,    -1,    -1,   223,   224,   225,   226,    -1,   228,   229,
 
9879
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
9880
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
9881
     250,   251,   252,   253,    -1,   255,   256,   257,   258,   259,
 
9882
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
9883
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
9884
     280,   281,   282,   283,   284,   285,   286,   287,    -1,   289,
 
9885
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
9886
     300,    -1,   302,   303,   304,   305,    -1,   307,   308,   309,
 
9887
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
9888
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
9889
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
9890
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
9891
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
9892
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
9893
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
9894
      44,    -1,    46,    47,    48,    49,    -1,    -1,    -1,    53,
 
9895
      54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    63,
 
9896
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
9897
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
9898
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
9899
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
9900
     104,   105,   106,    -1,   108,   109,    -1,    -1,   112,   113,
 
9901
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
9902
      -1,   125,    -1,    -1,   128,    -1,   130,   131,   132,    -1,
 
9903
     134,   135,   136,   137,   138,   139,   140,   141,   142,    -1,
 
9904
      -1,   145,   146,   147,   148,   149,   150,   151,    -1,   153,
 
9905
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
9906
     164,    -1,    -1,    -1,   168,    -1,    -1,   171,   172,   173,
 
9907
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
9908
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
9909
     194,   195,   196,   197,    -1,   199,    -1,   201,   202,    -1,
 
9910
     204,    -1,    -1,   207,   208,   209,    -1,    -1,   212,    -1,
 
9911
      -1,    -1,   216,   217,    -1,    -1,   220,    -1,    -1,    -1,
 
9912
     224,   225,   226,    -1,    -1,    -1,   230,   231,   232,    -1,
 
9913
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
9914
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
9915
      -1,   255,   256,    -1,   258,   259,   260,   261,   262,   263,
 
9916
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
9917
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
9918
     284,   285,    -1,   287,    -1,   289,   290,    -1,   292,   293,
 
9919
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,    -1,
 
9920
     304,    -1,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
9921
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
9922
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
9923
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
9924
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
9925
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
9926
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
9927
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
9928
      48,    49,    -1,    -1,    -1,    53,    54,    55,    56,    -1,
 
9929
      58,    59,    -1,    61,    -1,    63,    64,    65,    -1,    67,
 
9930
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
9931
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
9932
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
9933
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,    -1,
 
9934
     108,   109,    -1,    -1,   112,   113,   114,    -1,   116,    -1,
 
9935
     118,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,    -1,
 
9936
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
9937
     138,   139,   140,   141,   142,    -1,    -1,    -1,   146,   147,
 
9938
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
9939
     158,    -1,   160,   161,   162,   163,   164,    -1,    -1,    -1,
 
9940
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
9941
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
9942
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
9943
     198,   199,    -1,   201,   202,    -1,   204,    -1,    -1,   207,
 
9944
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
9945
      -1,    -1,    -1,    -1,    -1,    -1,   224,   225,   226,    -1,
 
9946
      -1,    -1,   230,   231,   232,    -1,   234,   235,   236,   237,
 
9947
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
9948
     248,   249,   250,   251,   252,   253,    -1,   255,   256,    -1,
 
9949
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
9950
     268,    -1,   270,   271,   272,   273,    -1,   275,   276,    -1,
 
9951
     278,   279,   280,   281,   282,   283,   284,   285,    -1,   287,
 
9952
      -1,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
9953
     298,    -1,   300,    -1,   302,    -1,   304,    -1,    -1,   307,
 
9954
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
9955
      -1,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
9956
     328,    -1,    -1,   331,   332,   333,   334,   335,   336,    -1,
 
9957
     338,     3,     4,     5,     6,     7,     8,     9,    10,    -1,
 
9958
      12,    13,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,
 
9959
      22,    -1,    24,    -1,    26,    27,    28,    -1,    30,    -1,
 
9960
      32,    33,    -1,    35,    36,    37,    38,    -1,    -1,    41,
 
9961
      42,    43,    44,    -1,    46,    47,    48,    49,    -1,    -1,
 
9962
      -1,    53,    54,    55,    56,    -1,    58,    59,    -1,    61,
 
9963
      -1,    63,    64,    65,    -1,    67,    -1,    -1,    -1,    -1,
 
9964
      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
 
9965
      82,    -1,    84,    85,    86,    87,    88,    -1,    90,    -1,
 
9966
      -1,    93,    94,    95,    96,    -1,    98,    99,   100,    -1,
 
9967
     102,    -1,   104,   105,   106,    -1,   108,   109,    -1,    -1,
 
9968
     112,   113,   114,    -1,   116,    -1,   118,    -1,    -1,    -1,
 
9969
     122,   123,    -1,   125,    -1,    -1,   128,    -1,   130,   131,
 
9970
     132,    -1,   134,   135,   136,    -1,   138,   139,   140,   141,
 
9971
     142,    -1,    -1,    -1,   146,   147,   148,   149,   150,   151,
 
9972
      -1,   153,    -1,   155,    -1,    -1,   158,    -1,   160,   161,
 
9973
     162,   163,   164,    -1,    -1,    -1,   168,    -1,    -1,   171,
 
9974
     172,   173,    -1,    -1,   176,   177,   178,   179,   180,   181,
 
9975
     182,   183,   184,   185,   186,   187,    -1,   189,    -1,   191,
 
9976
     192,   193,   194,   195,   196,   197,   198,   199,    -1,   201,
 
9977
     202,    -1,   204,    -1,    -1,   207,   208,   209,    -1,    -1,
 
9978
     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,    -1,
 
9979
      -1,    -1,   224,   225,   226,    -1,    -1,    -1,   230,   231,
 
9980
     232,    -1,   234,   235,   236,   237,   238,   239,   240,   241,
 
9981
      -1,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
9982
     252,   253,    -1,   255,   256,    -1,   258,   259,   260,   261,
 
9983
     262,   263,   264,    -1,   266,   267,   268,    -1,   270,   271,
 
9984
     272,   273,    -1,   275,   276,    -1,   278,   279,   280,   281,
 
9985
     282,   283,   284,   285,    -1,   287,    -1,   289,   290,    -1,
 
9986
     292,   293,   294,   295,    -1,   297,   298,    -1,   300,    -1,
 
9987
     302,    -1,   304,    -1,    -1,   307,   308,   309,   310,   311,
 
9988
      -1,    -1,   314,   315,   316,   317,    -1,    -1,   320,   321,
 
9989
     322,   323,   324,   325,    -1,   327,   328,    -1,    -1,   331,
 
9990
     332,   333,   334,   335,   336,    -1,   338,     3,     4,     5,
 
9991
       6,     7,     8,     9,    10,    -1,    12,    13,    -1,    -1,
 
9992
      -1,    -1,    -1,    -1,    -1,    21,    22,    -1,    24,    -1,
 
9993
      26,    27,    28,    -1,    30,    -1,    32,    33,    -1,    35,
 
9994
      36,    37,    38,    -1,    -1,    41,    42,    43,    44,    -1,
 
9995
      46,    47,    48,    49,    -1,    -1,    -1,    53,    54,    55,
 
9996
      56,    -1,    58,    59,    -1,    61,    -1,    63,    64,    65,
 
9997
      -1,    67,    -1,    -1,    -1,    -1,    -1,    73,    74,    75,
 
9998
      76,    77,    78,    79,    80,    -1,    82,    -1,    84,    85,
 
9999
      86,    87,    88,    -1,    90,    -1,    -1,    93,    94,    95,
 
10000
      96,    -1,    98,    99,   100,    -1,   102,    -1,   104,   105,
 
10001
     106,    -1,   108,   109,    -1,    -1,   112,   113,   114,    -1,
 
10002
     116,    -1,   118,    -1,    -1,    -1,   122,   123,    -1,   125,
 
10003
      -1,    -1,   128,    -1,   130,   131,   132,    -1,   134,   135,
 
10004
     136,    -1,   138,   139,   140,   141,   142,    -1,    -1,    -1,
 
10005
     146,   147,   148,   149,   150,   151,    -1,   153,    -1,   155,
 
10006
      -1,    -1,   158,    -1,   160,   161,   162,   163,   164,    -1,
 
10007
      -1,    -1,   168,    -1,    -1,   171,   172,   173,    -1,    -1,
 
10008
     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
 
10009
     186,   187,    -1,   189,    -1,   191,   192,   193,   194,   195,
 
10010
     196,   197,    -1,   199,    -1,   201,   202,    -1,   204,   205,
 
10011
      -1,   207,   208,   209,    -1,    -1,   212,    -1,    -1,    -1,
 
10012
     216,   217,    -1,    -1,    -1,    -1,    -1,    -1,   224,   225,
 
10013
     226,    -1,    -1,    -1,   230,   231,   232,    -1,   234,   235,
 
10014
     236,   237,   238,   239,   240,   241,    -1,   243,   244,   245,
 
10015
     246,   247,   248,   249,   250,   251,   252,   253,    -1,   255,
 
10016
     256,    -1,   258,   259,   260,   261,   262,   263,   264,    -1,
 
10017
     266,   267,   268,    -1,   270,   271,   272,   273,    -1,   275,
 
10018
     276,    -1,   278,   279,   280,   281,   282,   283,   284,   285,
 
10019
      -1,   287,    -1,   289,   290,    -1,   292,   293,   294,   295,
 
10020
      -1,   297,   298,    -1,   300,    -1,   302,    -1,   304,    -1,
 
10021
      -1,   307,   308,   309,   310,   311,    -1,    -1,   314,   315,
 
10022
     316,   317,    -1,    -1,   320,   321,   322,   323,   324,   325,
 
10023
      -1,   327,   328,    -1,    -1,   331,   332,   333,   334,   335,
 
10024
     336,    -1,   338,     3,     4,     5,     6,     7,     8,     9,
 
10025
      10,    -1,    12,    13,    -1,    -1,    -1,    -1,    -1,    -1,
 
10026
      -1,    21,    22,    -1,    24,    -1,    26,    27,    28,    -1,
 
10027
      30,    -1,    32,    33,    -1,    35,    36,    37,    38,    -1,
 
10028
      -1,    41,    42,    43,    44,    -1,    46,    47,    48,    49,
 
10029
      -1,    -1,    -1,    53,    54,    55,    56,    -1,    58,    59,
 
10030
      -1,    61,    -1,    63,    64,    65,    -1,    67,    -1,    -1,
 
10031
      -1,    -1,    -1,    73,    74,    75,    76,    77,    78,    79,
 
10032
      80,    -1,    82,    -1,    84,    85,    86,    87,    88,    -1,
 
10033
      90,    -1,    -1,    93,    94,    95,    96,    -1,    98,    99,
 
10034
     100,    -1,   102,    -1,   104,   105,   106,    -1,   108,   109,
 
10035
      -1,    -1,   112,   113,   114,    -1,   116,    -1,   118,    -1,
 
10036
      -1,    -1,   122,   123,    -1,   125,    -1,    -1,   128,    -1,
 
10037
     130,   131,   132,    -1,   134,   135,   136,    -1,   138,   139,
 
10038
     140,   141,   142,    -1,    -1,    -1,   146,   147,   148,   149,
 
10039
     150,   151,    -1,   153,    -1,   155,    -1,    -1,   158,    -1,
 
10040
     160,   161,   162,   163,   164,    -1,    -1,    -1,   168,    -1,
 
10041
      -1,   171,   172,   173,    -1,    -1,   176,   177,   178,   179,
 
10042
     180,   181,   182,   183,   184,   185,   186,   187,    -1,   189,
 
10043
      -1,   191,   192,   193,   194,   195,   196,   197,    -1,   199,
 
10044
      -1,   201,   202,    -1,   204,    -1,    -1,   207,   208,   209,
 
10045
      -1,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
 
10046
      -1,    -1,    -1,    -1,   224,   225,   226,    -1,    -1,    -1,
 
10047
     230,   231,   232,    -1,   234,   235,   236,   237,   238,   239,
 
10048
     240,   241,    -1,   243,   244,   245,   246,   247,   248,   249,
 
10049
     250,   251,   252,   253,    -1,   255,   256,    -1,   258,   259,
 
10050
     260,   261,   262,   263,   264,    -1,   266,   267,   268,    -1,
 
10051
     270,   271,   272,   273,    -1,   275,   276,    -1,   278,   279,
 
10052
     280,   281,   282,   283,   284,   285,    -1,   287,    -1,   289,
 
10053
     290,    -1,   292,   293,   294,   295,    -1,   297,   298,    -1,
 
10054
     300,    -1,   302,    -1,   304,    -1,    -1,   307,   308,   309,
 
10055
     310,   311,    -1,    -1,   314,   315,   316,   317,    -1,    -1,
 
10056
     320,   321,   322,   323,   324,   325,    -1,   327,   328,    -1,
 
10057
      -1,   331,   332,   333,   334,   335,   336,    -1,   338,     3,
 
10058
       4,     5,     6,     7,     8,     9,    10,    -1,    12,    13,
 
10059
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    21,    22,    -1,
 
10060
      24,    -1,    26,    27,    28,    -1,    30,    -1,    32,    33,
 
10061
      -1,    35,    36,    37,    38,    -1,    -1,    41,    42,    43,
 
10062
      44,    -1,    46,    47,    48,    49,    -1,    -1,    -1,    53,
 
10063
      54,    55,    56,    -1,    58,    59,    -1,    61,    -1,    63,
 
10064
      64,    65,    -1,    67,    -1,    -1,    -1,    -1,    -1,    73,
 
10065
      74,    75,    76,    77,    78,    79,    80,    -1,    82,    -1,
 
10066
      84,    85,    86,    87,    88,    -1,    90,    -1,    -1,    93,
 
10067
      94,    95,    96,    -1,    98,    99,   100,    -1,   102,    -1,
 
10068
     104,   105,   106,    -1,   108,   109,    -1,    -1,   112,   113,
 
10069
     114,    -1,   116,    -1,   118,    -1,    -1,    -1,   122,   123,
 
10070
      -1,   125,    -1,    -1,   128,    -1,   130,   131,   132,    -1,
 
10071
     134,   135,   136,    -1,   138,   139,   140,   141,   142,    -1,
 
10072
      -1,    -1,   146,   147,   148,   149,   150,   151,    -1,   153,
 
10073
      -1,   155,    -1,    -1,   158,    -1,   160,   161,   162,   163,
 
10074
     164,    -1,    -1,    -1,   168,    -1,    -1,   171,   172,   173,
 
10075
      -1,    -1,   176,   177,   178,   179,   180,   181,   182,   183,
 
10076
     184,   185,   186,   187,    -1,   189,    -1,   191,   192,   193,
 
10077
     194,   195,   196,   197,    -1,   199,    -1,   201,   202,    -1,
 
10078
     204,    -1,    -1,   207,   208,   209,    -1,    -1,   212,    -1,
 
10079
      -1,    -1,   216,   217,    -1,    -1,    -1,    -1,    -1,    -1,
 
10080
     224,   225,   226,    -1,    -1,    -1,   230,   231,   232,    -1,
 
10081
     234,   235,   236,   237,   238,   239,   240,   241,    -1,   243,
 
10082
     244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
 
10083
      -1,   255,   256,    -1,   258,   259,   260,   261,   262,   263,
 
10084
     264,    -1,   266,   267,   268,    -1,   270,   271,   272,   273,
 
10085
      -1,   275,   276,    -1,   278,   279,   280,   281,   282,   283,
 
10086
     284,   285,    -1,   287,    -1,   289,   290,    -1,   292,   293,
 
10087
     294,   295,    -1,   297,   298,    -1,   300,    -1,   302,    -1,
 
10088
     304,    -1,    -1,   307,   308,   309,   310,   311,    -1,    -1,
 
10089
     314,   315,   316,   317,    -1,    -1,   320,   321,   322,   323,
 
10090
     324,   325,    -1,   327,   328,    -1,    -1,   331,   332,   333,
 
10091
     334,   335,   336,    -1,   338,     3,     4,     5,     6,     7,
 
10092
       8,     9,    10,    -1,    12,    13,    -1,    -1,    -1,    -1,
 
10093
      -1,    -1,    -1,    21,    22,    -1,    24,    -1,    26,    27,
 
10094
      28,    -1,    30,    -1,    32,    33,    -1,    35,    36,    37,
 
10095
      38,    -1,    -1,    41,    42,    43,    44,    -1,    46,    47,
 
10096
      48,    49,    -1,    -1,    -1,    53,    54,    55,    56,    -1,
 
10097
      58,    59,    -1,    61,    -1,    63,    64,    65,    -1,    67,
 
10098
      -1,    -1,    -1,    -1,    -1,    73,    74,    75,    76,    77,
 
10099
      78,    79,    80,    -1,    82,    -1,    84,    85,    86,    87,
 
10100
      88,    -1,    90,    -1,    -1,    93,    94,    95,    96,    -1,
 
10101
      98,    99,   100,    -1,   102,    -1,   104,   105,   106,    -1,
 
10102
     108,   109,    -1,    -1,   112,   113,   114,    -1,   116,    -1,
 
10103
     118,    -1,    -1,    -1,   122,   123,    -1,   125,    -1,    -1,
 
10104
     128,    -1,   130,   131,   132,    -1,   134,   135,   136,    -1,
 
10105
     138,   139,   140,   141,   142,    -1,    -1,    -1,   146,   147,
 
10106
     148,   149,   150,   151,    -1,   153,    -1,   155,    -1,    -1,
 
10107
     158,    -1,   160,   161,   162,   163,   164,    -1,    -1,    -1,
 
10108
     168,    -1,    -1,   171,   172,   173,    -1,    -1,   176,   177,
 
10109
     178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
 
10110
      -1,   189,    -1,   191,   192,   193,   194,   195,   196,   197,
 
10111
      -1,   199,    -1,   201,   202,    -1,   204,    -1,    -1,   207,
 
10112
     208,   209,    -1,    -1,   212,    -1,    -1,    -1,   216,   217,
 
10113
      -1,    -1,    -1,    -1,    -1,    -1,   224,   225,   226,    -1,
 
10114
      -1,    -1,   230,   231,   232,    -1,   234,   235,   236,   237,
 
10115
     238,   239,   240,   241,    -1,   243,   244,   245,   246,   247,
 
10116
     248,   249,   250,   251,   252,   253,    -1,   255,   256,    -1,
 
10117
     258,   259,   260,   261,   262,   263,   264,    -1,   266,   267,
 
10118
     268,    -1,   270,    -1,   272,   273,    -1,   275,   276,    -1,
 
10119
     278,   279,   280,   281,   282,   283,   284,   285,    -1,   287,
 
10120
      10,   289,   290,    -1,   292,   293,   294,   295,    -1,   297,
 
10121
     298,    21,   300,    -1,   302,    -1,   304,    -1,    -1,   307,
 
10122
     308,   309,   310,   311,    -1,    -1,   314,   315,   316,   317,
 
10123
      40,    -1,   320,   321,   322,   323,   324,   325,    -1,   327,
 
10124
     328,    -1,    10,   331,   332,   333,   334,   335,   336,    59,
 
10125
     338,    -1,    -1,    21,    -1,    -1,    -1,    -1,    -1,    -1,
 
10126
      -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,    -1,    -1,
 
10127
      -1,    -1,    40,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10128
      -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1,    57,
 
10129
      -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10130
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    75,    -1,    -1,
 
10131
      -1,    -1,   122,    81,    -1,    -1,    -1,   127,    -1,    -1,
 
10132
      -1,    -1,    -1,    -1,    -1,    93,    -1,    -1,    -1,    -1,
 
10133
     140,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10134
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10135
      -1,    -1,    -1,    -1,   122,   123,    -1,    -1,    -1,   127,
 
10136
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10137
      -1,    -1,   140,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10138
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10139
      -1,    -1,    -1,    -1,   162,    -1,    -1,    -1,    -1,    -1,
 
10140
      -1,    -1,    -1,    -1,    -1,   173,   216,    -1,    -1,    -1,
 
10141
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10142
      -1,    -1,    -1,    -1,    -1,    -1,   236,    -1,    -1,    -1,
 
10143
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10144
      -1,    -1,    -1,    -1,    -1,   255,    -1,    -1,   216,   259,
 
10145
     218,   261,    -1,    -1,    -1,    -1,   266,    -1,    -1,    -1,
 
10146
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   236,    -1,
 
10147
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
10148
      -1,   291,   292,    -1,    -1,    -1,    -1,   255,    -1,    -1,
 
10149
      -1,   259,    -1,   261,   304,    -1,    -1,    -1,    -1,   309,
 
10150
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   318,    -1,
 
10151
      -1,    -1,    -1,    -1,    -1,    -1,    -1,   327,    -1,    -1,
 
10152
      -1,    -1,    -1,    -1,   292,   293,    -1,   295,    -1,    -1,
 
10153
      -1,    -1,    -1,    -1,    -1,    -1,   304,    -1,    -1,    -1,
 
10154
     308,   309,    -1,    -1,    -1,   313,    -1,    -1,    -1,    -1,
 
10155
     318
 
10156
};
 
10157
 
 
10158
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
 
10159
   symbol of state STATE-NUM.  */
 
10160
static const unsigned short yystos[] =
 
10161
{
 
10162
       0,     3,    13,    14,    15,    28,    46,    48,    49,    53,
 
10163
      54,    61,    62,    77,    80,    86,    95,   101,   106,   108,
 
10164
     112,   124,   148,   171,   172,   177,   185,   202,   231,   243,
 
10165
     245,   249,   253,   256,   260,   265,   270,   273,   279,   307,
 
10166
     315,   317,   320,   359,   367,   368,   369,   370,   374,   375,
 
10167
     376,   377,   378,   379,   380,   381,   382,   384,   385,   389,
 
10168
     400,   401,   402,   405,   406,   414,   415,   424,   451,   456,
 
10169
     457,   464,   469,   471,   473,   474,   487,   488,   489,   490,
 
10170
     495,   500,   501,   506,   507,   510,   513,   514,   524,   525,
 
10171
     528,   534,   548,   551,   552,   554,   557,   559,   560,   563,
 
10172
     565,   566,   567,   575,   576,   577,   578,   579,   584,   585,
 
10173
     586,   590,   591,   594,   595,   596,   598,   599,   600,   601,
 
10174
     602,   607,   610,   614,   616,   617,   621,   623,   627,   628,
 
10175
     631,   632,   633,   634,   635,   302,   333,   580,    10,    59,
 
10176
      75,    93,   122,   127,   140,   162,   216,   255,   261,   266,
 
10177
     291,   292,   304,   309,   318,   580,     3,     4,     5,     6,
 
10178
       7,     8,     9,    10,    12,    13,    21,    22,    24,    26,
 
10179
      27,    28,    30,    32,    33,    35,    36,    37,    38,    41,
 
10180
      42,    43,    44,    46,    47,    48,    49,    50,    53,    54,
 
10181
      55,    56,    58,    59,    60,    61,    63,    64,    65,    67,
 
10182
      73,    74,    75,    76,    77,    78,    79,    80,    82,    84,
 
10183
      85,    86,    87,    88,    90,    93,    94,    95,    96,    98,
 
10184
      99,   100,   102,   104,   105,   106,   107,   108,   109,   110,
 
10185
     112,   113,   114,   116,   118,   122,   123,   125,   126,   128,
 
10186
     130,   131,   132,   134,   135,   136,   138,   139,   140,   141,
 
10187
     142,   145,   146,   147,   148,   149,   150,   151,   153,   155,
 
10188
     158,   160,   161,   162,   163,   164,   166,   168,   171,   172,
 
10189
     173,   176,   177,   178,   179,   180,   181,   182,   183,   184,
 
10190
     185,   186,   187,   189,   191,   192,   193,   194,   195,   196,
 
10191
     197,   198,   199,   201,   202,   204,   206,   207,   208,   209,
 
10192
     212,   216,   217,   220,   223,   224,   225,   226,   228,   229,
 
10193
     230,   231,   232,   234,   235,   236,   237,   238,   239,   240,
 
10194
     241,   243,   244,   245,   246,   247,   248,   249,   250,   251,
 
10195
     252,   253,   255,   256,   257,   258,   259,   260,   261,   262,
 
10196
     263,   264,   266,   267,   268,   270,   271,   272,   273,   275,
 
10197
     276,   278,   279,   280,   281,   282,   283,   284,   285,   286,
 
10198
     287,   289,   290,   292,   293,   294,   295,   297,   298,   300,
 
10199
     302,   303,   304,   305,   307,   308,   309,   310,   311,   314,
 
10200
     315,   316,   317,   320,   321,   322,   323,   324,   325,   327,
 
10201
     328,   331,   332,   333,   334,   335,   336,   338,   736,   748,
 
10202
     752,   753,   190,   213,   732,   734,   740,   748,   756,   214,
 
10203
     232,   580,    31,   420,    10,    21,    40,    57,    75,    81,
 
10204
      93,   123,   127,   173,   216,   218,   255,   261,   292,   293,
 
10205
     295,   304,   308,   309,   313,   318,   425,   465,   498,   529,
 
10206
     535,   231,   736,   736,   120,    10,    21,    40,    59,    75,
 
10207
      93,   122,   127,   140,   216,   236,   255,   259,   261,   266,
 
10208
     291,   292,   304,   309,   318,   327,   470,   502,   580,   736,
 
10209
     602,   609,     4,    11,    26,   113,   118,   164,   191,   234,
 
10210
     244,   344,   351,   511,   736,   747,    11,    62,   242,   265,
 
10211
     515,   516,   517,   748,   154,   734,   748,   340,   741,   745,
 
10212
     291,   638,   511,   736,   734,   302,   736,    75,   140,   290,
 
10213
     291,   561,   260,   748,    11,   268,   297,   302,   391,   748,
 
10214
       8,   124,   515,   516,   232,   580,   748,    11,    91,   640,
 
10215
      58,   173,   186,   255,   268,   297,   302,   390,   391,    11,
 
10216
     268,   297,   302,   391,   302,   638,   352,   734,   215,   662,
 
10217
     734,   121,   604,   632,   633,     0,   363,   326,   603,   103,
 
10218
     152,   219,   312,   641,   642,    25,    29,    31,    66,   119,
 
10219
     121,   133,   144,   156,   157,   159,   167,   169,   188,   203,
 
10220
     221,   222,   254,   274,   326,   338,   732,   742,   750,   752,
 
10221
     754,   504,   748,   737,   748,   504,   523,   742,   746,   748,
 
10222
     662,   736,    47,   343,   346,   347,   348,   350,   351,   352,
 
10223
     353,   354,   355,   556,   697,   698,   748,   746,   736,   662,
 
10224
     734,   662,   736,   736,   504,   746,   158,   239,   581,   582,
 
10225
     583,   357,   362,   722,   723,   214,    10,    40,    52,    57,
 
10226
      59,    75,    93,   122,   140,   163,   216,   259,   261,   266,
 
10227
     291,   304,   309,   327,   470,   508,   745,   734,   742,   736,
 
10228
     359,   304,   737,   504,   293,   295,   746,   293,   295,    47,
 
10229
     556,   248,   746,   386,   748,   736,   736,   504,   746,   266,
 
10230
     291,   327,   470,    59,   140,   122,   259,   736,   629,   662,
 
10231
     742,   736,   359,   737,   742,   735,   736,    47,   556,   735,
 
10232
     736,   736,   736,   735,   162,   503,   504,   359,   615,   603,
 
10233
     747,    11,   747,    11,   747,   747,   344,   120,   137,   512,
 
10234
     235,   214,   299,   364,   734,   733,   734,   512,   745,   359,
 
10235
     611,   736,   736,   734,   748,    25,   336,   158,   362,   217,
 
10236
     217,   214,   120,   745,   299,   214,    18,    30,    32,    33,
 
10237
      39,    40,    42,    43,    50,    60,    68,    69,    70,    71,
 
10238
      72,    78,    79,    94,   107,   110,   111,   114,   126,   150,
 
10239
     151,   153,   166,   174,   175,   187,   189,   200,   205,   206,
 
10240
     207,   216,   223,   228,   240,   257,   269,   276,   286,   297,
 
10241
     298,   303,   305,   306,   313,   318,   324,   338,   339,   341,
 
10242
     342,   343,   344,   345,   350,   351,   352,   359,   632,   670,
 
10243
     671,   672,   677,   678,   679,   681,   682,   683,   684,   687,
 
10244
     688,   691,   693,   694,   695,   699,   716,   721,   726,   727,
 
10245
     732,   742,   743,   744,   745,   749,   752,    11,   403,   735,
 
10246
     268,   390,    81,   398,   745,   340,   399,   748,    25,    44,
 
10247
     390,   336,   582,   299,   346,    25,   336,   158,   583,   733,
 
10248
     359,   734,   270,   352,   119,   605,   360,   360,   369,   734,
 
10249
      11,    91,   639,   639,    35,   639,   115,   170,   211,   645,
 
10250
     651,   723,   359,   224,   246,   362,   505,   224,   246,   270,
 
10251
     331,   371,   401,     7,    95,   224,   270,   411,    37,   109,
 
10252
     135,   252,   264,   278,   285,   328,   544,   549,   359,   536,
 
10253
       7,    95,   246,   383,   224,   246,   270,   409,   410,   246,
 
10254
     504,   359,   362,   246,   270,   371,   401,   224,   246,   270,
 
10255
     458,     7,    13,    49,    62,    90,    95,    98,   246,   270,
 
10256
     407,   408,   410,   224,   246,   214,   224,   270,   246,   270,
 
10257
     371,   401,   168,   215,   334,   364,   581,   691,    11,    14,
 
10258
      15,    16,    17,    18,    19,    20,    23,    34,    39,    40,
 
10259
      45,    51,    52,    57,    62,    68,    69,    70,    71,    72,
 
10260
      81,    83,    89,    91,    92,    97,   101,   103,   111,   115,
 
10261
     117,   120,   124,   127,   129,   137,   143,   152,   154,   165,
 
10262
     170,   174,   175,   190,   200,   205,   210,   211,   213,   214,
 
10263
     215,   218,   219,   227,   233,   242,   265,   269,   277,   288,
 
10264
     291,   296,   299,   301,   306,   312,   313,   318,   319,   329,
 
10265
     330,   338,   352,   739,   751,   752,   753,   754,   755,   722,
 
10266
     734,   742,   359,   736,   742,   208,    47,   556,   736,   736,
 
10267
     162,   504,   359,   438,   359,   491,    45,    30,    32,    33,
 
10268
      42,    43,    78,    79,   114,   150,   151,   153,   187,   189,
 
10269
     207,   240,   271,   276,   297,   298,   324,   338,   667,   669,
 
10270
     671,   672,   676,   678,   679,   680,   682,   683,   687,   688,
 
10271
     749,   752,   736,   371,    19,   597,   371,   504,   491,   425,
 
10272
     371,    25,   387,   224,   472,     9,    27,   475,    19,   491,
 
10273
     371,   734,   734,   734,   162,   504,   740,   748,   742,   736,
 
10274
      31,    73,   147,   192,   262,   319,   622,   359,    38,   251,
 
10275
     412,   667,   536,   364,   504,   359,   214,   214,   399,   364,
 
10276
     412,   691,   702,    62,   608,   614,   617,   621,   627,   628,
 
10277
     631,   736,    75,   122,   162,   261,   291,   292,   518,   733,
 
10278
     735,   517,    81,   323,   359,   618,   631,   137,   364,   624,
 
10279
     736,   612,   667,    19,   116,   562,   562,   562,   168,   748,
 
10280
     115,   115,   518,   735,   260,   748,   359,   357,   632,   706,
 
10281
     325,   685,   691,   720,   359,   685,   685,   359,   359,   359,
 
10282
     359,   359,   675,   675,   229,   632,   359,   359,   673,   359,
 
10283
     359,   359,   359,    42,    43,   685,   691,   359,   359,   674,
 
10284
     359,   359,   359,   359,   359,   331,   332,   359,   689,   359,
 
10285
     689,   359,   359,   632,   724,   691,   691,   632,   691,   702,
 
10286
     745,    43,   359,   686,   359,   745,    16,    19,    24,    29,
 
10287
     133,   137,   156,   157,   169,   200,   203,   216,   218,   274,
 
10288
     343,   346,   347,   348,   350,   351,   352,   353,   354,   355,
 
10289
     361,   697,   699,   701,   222,   691,   154,   364,   636,   723,
 
10290
     359,    84,   134,   404,    44,    81,   399,    19,    81,   173,
 
10291
     338,   339,   351,   397,   461,   462,   463,   688,   745,   747,
 
10292
      81,   111,   210,   214,   306,   392,   393,   394,   396,   399,
 
10293
     461,   392,   168,   734,   728,   729,   748,   603,   359,   606,
 
10294
     632,   634,   635,   634,   643,   644,   691,   634,   239,   272,
 
10295
     317,    11,   647,   691,   648,   691,   651,   652,   645,   646,
 
10296
     352,   553,   667,   299,   299,   739,   362,   299,   299,   390,
 
10297
     592,    45,    57,   117,   233,   313,   436,   437,    57,    81,
 
10298
     200,   299,    81,   200,   261,   214,   264,   205,    85,   155,
 
10299
     251,   544,   550,   137,   145,   220,   271,   338,   360,   537,
 
10300
     538,   539,   540,   542,   667,   749,   750,   752,   224,   246,
 
10301
     270,   299,   318,   299,   299,   292,   364,   299,   319,   198,
 
10302
     555,   667,   556,   299,   390,   372,   299,   299,   261,    36,
 
10303
      74,   139,   180,   182,   192,   250,   279,   459,    52,   436,
 
10304
     564,   564,   214,   300,   304,    57,   564,   304,   299,   564,
 
10305
     261,   332,   364,   299,   299,   662,   299,   261,   299,   390,
 
10306
     372,   239,   247,   267,   395,   581,   358,   365,   359,   667,
 
10307
     214,   536,   461,   504,   359,   156,   214,   214,   504,   156,
 
10308
     439,   440,   748,   331,   421,   492,   493,   751,   359,   669,
 
10309
      19,    18,   668,    76,   132,   181,   184,   263,   335,   359,
 
10310
     690,   505,     9,   587,   667,   372,   498,   327,   372,   746,
 
10311
      62,   124,   388,   424,   456,   474,   513,   528,   584,   736,
 
10312
     176,    86,   148,   317,   476,   477,   359,   372,   458,   209,
 
10313
     359,   453,   438,   399,   115,   214,   536,    19,   331,   332,
 
10314
     630,   262,   359,   632,   655,   656,   657,   662,   663,   694,
 
10315
     732,   330,   664,   553,    19,   412,   736,   319,   555,   734,
 
10316
     734,   412,   504,   360,   364,   425,   735,   522,   523,   742,
 
10317
     735,   735,   733,   735,   299,   331,   526,   323,   359,   619,
 
10318
     620,   748,     5,   105,   257,   272,   625,   734,   204,   626,
 
10319
     360,   364,   613,   617,   621,   627,   631,   516,   515,   516,
 
10320
     120,   125,   527,   748,   702,   702,   705,   706,   359,   329,
 
10321
     717,   718,   691,   702,   691,   702,   744,   744,   744,    76,
 
10322
     132,   181,   184,   263,   335,   338,   340,   703,   707,   744,
 
10323
     702,   702,   744,   744,   685,   685,   691,   744,   556,   691,
 
10324
     708,   350,   351,   692,   693,   695,   699,   710,   360,   702,
 
10325
     691,   702,   711,   297,   297,   744,   744,   691,    34,   120,
 
10326
     165,   301,   691,   702,   714,   722,   360,   364,   270,   744,
 
10327
     744,   690,   691,   751,   297,    23,   288,   725,   691,   359,
 
10328
     632,   715,    91,   111,   200,   205,   209,   306,   314,   691,
 
10329
      29,   133,   137,   169,   274,   359,   691,   299,   691,   691,
 
10330
     691,   691,   691,   691,   691,   691,   691,   667,   691,    11,
 
10331
      17,   277,   696,   257,   359,   695,   123,   173,   291,   293,
 
10332
     295,   637,   734,   727,   120,   654,    11,    91,   352,   360,
 
10333
     702,   302,   339,   359,   745,   364,   360,   364,   654,   724,
 
10334
     601,   734,   735,   364,    20,    89,   319,   215,   209,   653,
 
10335
     653,   211,   364,   170,   360,   746,   736,   739,   746,   737,
 
10336
      56,   593,   359,   736,   160,   160,   359,   736,   205,   746,
 
10337
     691,   205,   736,   205,    85,   155,   214,   220,   749,   360,
 
10338
     364,   540,   542,   539,   542,   505,   299,   299,   261,   746,
 
10339
     735,   746,   736,   736,   410,   736,   738,   748,   364,   360,
 
10340
     364,   746,     8,    56,    63,    64,    65,   100,   137,   141,
 
10341
     178,   193,   194,   195,   196,   197,   199,   226,   255,   287,
 
10342
     289,   311,   318,   321,   373,   746,   736,   736,   461,    35,
 
10343
     460,   461,   461,    74,   180,   182,   371,   371,   429,   748,
 
10344
     748,   736,   291,    11,   318,   736,   736,   748,    11,   318,
 
10345
     736,   736,   736,   736,    49,   212,   270,   408,   746,   736,
 
10346
     246,   746,   736,   746,    55,   310,   239,   691,   553,    19,
 
10347
     504,   156,   156,   319,   555,   205,   509,   745,   504,   504,
 
10348
     156,   509,   360,   364,   212,   120,   299,   416,   360,   364,
 
10349
     346,   691,    18,   668,   667,   357,   357,   299,   299,   299,
 
10350
     299,   744,   476,    56,    99,   176,   224,   292,   294,   588,
 
10351
     430,   115,   734,   387,   218,   425,   745,   214,   218,   665,
 
10352
     666,   748,   734,   169,   426,   427,   428,   429,   434,   436,
 
10353
     454,   455,   748,    19,   331,   332,   452,    19,   128,   745,
 
10354
     734,    19,   162,   252,   543,   544,   545,   568,   131,   131,
 
10355
     115,   632,   656,   657,    19,   658,   748,   364,    66,   121,
 
10356
     144,   159,   167,   188,   254,   337,   659,   658,    19,   658,
 
10357
     748,   723,   691,   360,   667,   738,   360,   412,   412,   691,
 
10358
     291,   364,   536,   127,   519,   520,   746,     8,   527,    81,
 
10359
     691,   730,   731,   360,   364,   724,   105,   272,   105,   272,
 
10360
     257,   317,   183,   667,   120,   214,   519,    35,   412,   360,
 
10361
     358,   358,   364,   744,   691,    97,   718,   719,    19,   360,
 
10362
     319,   360,   360,   360,   360,   364,   360,   120,   360,   360,
 
10363
     360,   360,   360,   364,   360,   364,   360,   227,   709,   360,
 
10364
     692,   692,   137,   156,   216,   346,   347,   348,   350,   351,
 
10365
     352,   353,   354,   355,   361,   699,   692,   360,   360,   115,
 
10366
     120,   712,   713,   360,   336,   336,   360,   360,    19,   714,
 
10367
     702,   714,   714,   120,   360,   724,   691,   748,   360,   360,
 
10368
     336,   692,   692,   102,   702,   120,   111,   205,   209,   306,
 
10369
     314,   359,   102,   288,   725,   691,   715,   691,   299,   556,
 
10370
     691,   359,   632,   293,   295,   293,   295,   734,   638,   638,
 
10371
     655,   664,   702,   702,   360,   360,   582,   744,   690,   394,
 
10372
     729,   664,   346,   360,   644,   216,   697,   700,   735,   626,
 
10373
     626,   648,   648,   647,   224,   246,   270,   170,   691,   437,
 
10374
     359,   359,   439,   412,   146,   205,   505,   538,   542,   542,
 
10375
     354,   746,   736,   736,   224,   246,   667,   224,   198,   667,
 
10376
     735,   170,   226,   127,   255,   745,   735,   744,   226,   735,
 
10377
     316,   461,   461,   461,   667,    95,   270,   309,   411,   412,
 
10378
     412,   299,   299,   358,   360,   667,   156,   509,   509,   738,
 
10379
     360,   156,   156,   509,   440,   282,   283,   417,   745,   493,
 
10380
     216,   351,   461,   494,   542,   700,   745,   360,   357,   360,
 
10381
     744,   358,   744,   132,   181,   263,   181,   263,   263,   184,
 
10382
     360,   214,   170,   346,   589,   589,   589,   589,   589,    45,
 
10383
      57,    81,    83,   143,   200,   205,   233,   242,   313,   431,
 
10384
     432,   433,   309,   438,   248,   291,   734,   477,   360,   364,
 
10385
     667,   359,   734,   360,   364,   360,   364,   106,   212,   212,
 
10386
     631,   631,   466,   736,   299,   319,   530,   546,   745,   399,
 
10387
     541,   542,   331,   545,   547,   214,   631,   360,   748,   359,
 
10388
     656,   159,   221,   660,   656,   660,   159,   659,   660,   656,
 
10389
     159,   359,   748,   359,   412,   360,   412,   412,   734,   523,
 
10390
     746,   331,   364,   521,   217,   360,   364,   323,   631,   620,
 
10391
     105,   105,   735,   518,   412,   746,   706,   360,   296,   691,
 
10392
     101,   667,   504,   744,   691,   691,   744,   691,   712,   692,
 
10393
      91,   200,   209,   692,   692,   692,   692,   692,   692,   692,
 
10394
     692,   692,   667,   692,   691,   691,   713,   712,   689,   689,
 
10395
     667,   360,   360,   360,   702,   360,   686,   745,   691,    16,
 
10396
      16,   691,   360,   691,   359,   667,   704,   691,   692,   692,
 
10397
     102,   102,   691,   360,   102,   691,   638,   638,   638,   638,
 
10398
     734,   734,   127,   649,   360,   360,   360,    81,   691,   359,
 
10399
     299,   299,   261,   589,   360,   439,   439,   360,   146,   354,
 
10400
     309,   299,   299,   299,   747,   745,   735,   735,   745,   745,
 
10401
     430,   200,   200,   281,   284,   667,   736,   736,   156,   360,
 
10402
     509,   156,   156,   509,   509,   319,   422,   423,    83,   143,
 
10403
     200,   484,   485,   486,   744,   331,   332,   358,   358,   690,
 
10404
     734,   589,    81,   744,   745,    81,   745,    81,   736,    81,
 
10405
     736,    81,   736,   359,   736,   692,    84,   134,    83,   205,
 
10406
     160,   734,   319,   450,   667,    19,   734,   115,   478,   218,
 
10407
     666,   426,   104,   138,   435,   142,   446,   428,   455,   748,
 
10408
     736,    19,    19,   322,   467,   505,   745,   738,   359,   364,
 
10409
     543,   491,    86,   148,   265,   317,   573,   658,   359,   735,
 
10410
     656,   214,   319,   661,   656,   159,   656,   665,   359,   665,
 
10411
     748,   412,   359,   453,   124,   520,   731,   359,   527,   120,
 
10412
     691,   360,   360,   360,   360,   360,   713,   120,   209,   359,
 
10413
     360,   690,   692,   692,   704,   360,   364,    16,    16,   691,
 
10414
     691,   102,   691,   360,   734,   734,   734,   734,    35,   129,
 
10415
     650,   745,   556,   746,   736,   736,   747,   360,   360,   450,
 
10416
     309,   746,   736,   746,   205,   205,   463,   748,   319,   413,
 
10417
     509,   156,   509,   509,   371,    88,    84,   134,    83,   486,
 
10418
     485,   358,   122,   122,   120,   483,   747,   691,   200,   432,
 
10419
     450,   438,   140,   319,   631,   359,    96,   479,   106,   477,
 
10420
     360,    82,    82,   359,   331,   332,   447,   615,   466,   161,
 
10421
     468,   120,   359,   531,   532,   694,   748,   745,   547,   299,
 
10422
     735,   360,   691,   359,   656,   661,   360,   665,   360,    19,
 
10423
     217,   730,   412,   519,   692,   359,   704,   360,   667,   692,
 
10424
     692,   691,   702,   691,   690,   360,   242,   450,   691,   509,
 
10425
     418,   745,   523,    19,   558,   734,   484,   360,   179,   441,
 
10426
     292,   738,   257,   280,   480,   237,   447,   733,   212,   212,
 
10427
     214,   448,   745,   504,   691,   360,   364,   319,   504,   533,
 
10428
     533,   734,   360,   735,   360,   360,   412,   704,   360,   734,
 
10429
      31,    67,    87,   102,   116,   130,   205,   212,   238,   419,
 
10430
     558,    22,   136,   115,   121,   225,   275,   214,   442,   443,
 
10431
     444,   736,    19,   742,   448,   360,    54,   292,   449,   360,
 
10432
     449,   532,   504,   664,   360,   360,   438,   597,   597,   200,
 
10433
     238,   597,   597,    96,    86,   317,   214,   444,   214,   443,
 
10434
     122,   216,   284,   496,   497,   359,   449,    86,    95,   230,
 
10435
     736,   533,   664,    92,   441,   745,   745,   205,   439,   745,
 
10436
     745,   257,    38,   192,   251,   270,   445,   445,   744,   744,
 
10437
     667,   364,   339,   341,   342,   344,   481,   482,   745,   748,
 
10438
     258,   258,    12,   149,   574,   442,   439,   106,     6,    81,
 
10439
     205,   742,   556,   497,   360,   364,   201,   359,   569,   571,
 
10440
     576,   617,   621,   627,   631,   484,   237,   536,   241,   359,
 
10441
     499,   482,   570,   571,   572,   632,   633,   742,   555,   360,
 
10442
     363,   359,   360,   572,   481,   499,   360
 
10443
};
 
10444
 
 
10445
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
 
10446
# define YYSIZE_T __SIZE_TYPE__
 
10447
#endif
 
10448
#if ! defined (YYSIZE_T) && defined (size_t)
 
10449
# define YYSIZE_T size_t
 
10450
#endif
 
10451
#if ! defined (YYSIZE_T)
 
10452
# if defined (__STDC__) || defined (__cplusplus)
 
10453
#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
 
10454
#  define YYSIZE_T size_t
 
10455
# endif
 
10456
#endif
 
10457
#if ! defined (YYSIZE_T)
 
10458
# define YYSIZE_T unsigned int
 
10459
#endif
 
10460
 
 
10461
#define yyerrok         (yyerrstatus = 0)
 
10462
#define yyclearin       (yychar = YYEMPTY)
 
10463
#define YYEMPTY         (-2)
 
10464
#define YYEOF           0
 
10465
 
 
10466
#define YYACCEPT        goto yyacceptlab
 
10467
#define YYABORT         goto yyabortlab
 
10468
#define YYERROR         goto yyerrorlab
 
10469
 
 
10470
 
 
10471
/* Like YYERROR except do call yyerror.  This remains here temporarily
 
10472
   to ease the transition to the new meaning of YYERROR, for GCC.
 
10473
   Once GCC version 2 has supplanted version 1, this can go.  */
 
10474
 
 
10475
#define YYFAIL          goto yyerrlab
 
10476
 
 
10477
#define YYRECOVERING()  (!!yyerrstatus)
 
10478
 
 
10479
#define YYBACKUP(Token, Value)                                  \
 
10480
do                                                              \
 
10481
  if (yychar == YYEMPTY && yylen == 1)                          \
 
10482
    {                                                           \
 
10483
      yychar = (Token);                                         \
 
10484
      yylval = (Value);                                         \
 
10485
      yytoken = YYTRANSLATE (yychar);                           \
 
10486
      YYPOPSTACK;                                               \
 
10487
      goto yybackup;                                            \
 
10488
    }                                                           \
 
10489
  else                                                          \
 
10490
    {                                                           \
 
10491
      yyerror ("syntax error: cannot back up");\
 
10492
      YYERROR;                                                  \
 
10493
    }                                                           \
 
10494
while (0)
 
10495
 
 
10496
#define YYTERROR        1
 
10497
#define YYERRCODE       256
 
10498
 
 
10499
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
 
10500
   are run).  */
 
10501
 
 
10502
#ifndef YYLLOC_DEFAULT
 
10503
# define YYLLOC_DEFAULT(Current, Rhs, N)                \
 
10504
   ((Current).first_line   = (Rhs)[1].first_line,       \
 
10505
    (Current).first_column = (Rhs)[1].first_column,     \
 
10506
    (Current).last_line    = (Rhs)[N].last_line,        \
 
10507
    (Current).last_column  = (Rhs)[N].last_column)
 
10508
#endif
 
10509
 
 
10510
/* YYLEX -- calling `yylex' with the right arguments.  */
 
10511
 
 
10512
#ifdef YYLEX_PARAM
 
10513
# define YYLEX yylex (YYLEX_PARAM)
 
10514
#else
 
10515
# define YYLEX yylex ()
 
10516
#endif
 
10517
 
 
10518
/* Enable debugging if requested.  */
 
10519
#if YYDEBUG
 
10520
 
 
10521
# ifndef YYFPRINTF
 
10522
#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
 
10523
#  define YYFPRINTF fprintf
 
10524
# endif
 
10525
 
 
10526
# define YYDPRINTF(Args)                        \
 
10527
do {                                            \
 
10528
  if (yydebug)                                  \
 
10529
    YYFPRINTF Args;                             \
 
10530
} while (0)
 
10531
 
 
10532
# define YYDSYMPRINT(Args)                      \
 
10533
do {                                            \
 
10534
  if (yydebug)                                  \
 
10535
    yysymprint Args;                            \
 
10536
} while (0)
 
10537
 
 
10538
# define YYDSYMPRINTF(Title, Token, Value, Location)            \
 
10539
do {                                                            \
 
10540
  if (yydebug)                                                  \
 
10541
    {                                                           \
 
10542
      YYFPRINTF (stderr, "%s ", Title);                         \
 
10543
      yysymprint (stderr,                                       \
 
10544
                  Token, Value);        \
 
10545
      YYFPRINTF (stderr, "\n");                                 \
 
10546
    }                                                           \
 
10547
} while (0)
 
10548
 
 
10549
/*------------------------------------------------------------------.
 
10550
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
 
10551
| TOP (included).                                                   |
 
10552
`------------------------------------------------------------------*/
 
10553
 
 
10554
#if defined (__STDC__) || defined (__cplusplus)
 
10555
static void
 
10556
yy_stack_print (short *bottom, short *top)
 
10557
#else
 
10558
static void
 
10559
yy_stack_print (bottom, top)
 
10560
    short *bottom;
 
10561
    short *top;
 
10562
#endif
 
10563
{
 
10564
  YYFPRINTF (stderr, "Stack now");
 
10565
  for (/* Nothing. */; bottom <= top; ++bottom)
 
10566
    YYFPRINTF (stderr, " %d", *bottom);
 
10567
  YYFPRINTF (stderr, "\n");
 
10568
}
 
10569
 
 
10570
# define YY_STACK_PRINT(Bottom, Top)                            \
 
10571
do {                                                            \
 
10572
  if (yydebug)                                                  \
 
10573
    yy_stack_print ((Bottom), (Top));                           \
 
10574
} while (0)
 
10575
 
 
10576
 
 
10577
/*------------------------------------------------.
 
10578
| Report that the YYRULE is going to be reduced.  |
 
10579
`------------------------------------------------*/
 
10580
 
 
10581
#if defined (__STDC__) || defined (__cplusplus)
 
10582
static void
 
10583
yy_reduce_print (int yyrule)
 
10584
#else
 
10585
static void
 
10586
yy_reduce_print (yyrule)
 
10587
    int yyrule;
 
10588
#endif
 
10589
{
 
10590
  int yyi;
 
10591
  unsigned int yylno = yyrline[yyrule];
 
10592
  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
 
10593
             yyrule - 1, yylno);
 
10594
  /* Print the symbols being reduced, and their result.  */
 
10595
  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
 
10596
    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
 
10597
  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
 
10598
}
 
10599
 
 
10600
# define YY_REDUCE_PRINT(Rule)          \
 
10601
do {                                    \
 
10602
  if (yydebug)                          \
 
10603
    yy_reduce_print (Rule);             \
 
10604
} while (0)
 
10605
 
 
10606
/* Nonzero means print parse trace.  It is left uninitialized so that
 
10607
   multiple parsers can coexist.  */
 
10608
int yydebug;
 
10609
#else /* !YYDEBUG */
 
10610
# define YYDPRINTF(Args)
 
10611
# define YYDSYMPRINT(Args)
 
10612
# define YYDSYMPRINTF(Title, Token, Value, Location)
 
10613
# define YY_STACK_PRINT(Bottom, Top)
 
10614
# define YY_REDUCE_PRINT(Rule)
 
10615
#endif /* !YYDEBUG */
 
10616
 
 
10617
 
 
10618
/* YYINITDEPTH -- initial size of the parser's stacks.  */
 
10619
#ifndef YYINITDEPTH
 
10620
# define YYINITDEPTH 200
 
10621
#endif
 
10622
 
 
10623
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
 
10624
   if the built-in stack extension method is used).
 
10625
 
 
10626
   Do not make this value too large; the results are undefined if
 
10627
   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
 
10628
   evaluated with infinite-precision integer arithmetic.  */
 
10629
 
 
10630
#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
 
10631
# undef YYMAXDEPTH
 
10632
#endif
 
10633
 
 
10634
#ifndef YYMAXDEPTH
 
10635
# define YYMAXDEPTH 10000
 
10636
#endif
 
10637
 
 
10638
 
 
10639
 
 
10640
#if YYERROR_VERBOSE
 
10641
 
 
10642
# ifndef yystrlen
 
10643
#  if defined (__GLIBC__) && defined (_STRING_H)
 
10644
#   define yystrlen strlen
 
10645
#  else
 
10646
/* Return the length of YYSTR.  */
 
10647
static YYSIZE_T
 
10648
#   if defined (__STDC__) || defined (__cplusplus)
 
10649
yystrlen (const char *yystr)
 
10650
#   else
 
10651
yystrlen (yystr)
 
10652
     const char *yystr;
 
10653
#   endif
 
10654
{
 
10655
  register const char *yys = yystr;
 
10656
 
 
10657
  while (*yys++ != '\0')
 
10658
    continue;
 
10659
 
 
10660
  return yys - yystr - 1;
 
10661
}
 
10662
#  endif
 
10663
# endif
 
10664
 
 
10665
# ifndef yystpcpy
 
10666
#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
 
10667
#   define yystpcpy stpcpy
 
10668
#  else
 
10669
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
 
10670
   YYDEST.  */
 
10671
static char *
 
10672
#   if defined (__STDC__) || defined (__cplusplus)
 
10673
yystpcpy (char *yydest, const char *yysrc)
 
10674
#   else
 
10675
yystpcpy (yydest, yysrc)
 
10676
     char *yydest;
 
10677
     const char *yysrc;
 
10678
#   endif
 
10679
{
 
10680
  register char *yyd = yydest;
 
10681
  register const char *yys = yysrc;
 
10682
 
 
10683
  while ((*yyd++ = *yys++) != '\0')
 
10684
    continue;
 
10685
 
 
10686
  return yyd - 1;
 
10687
}
 
10688
#  endif
 
10689
# endif
 
10690
 
 
10691
#endif /* !YYERROR_VERBOSE */
 
10692
 
 
10693
 
 
10694
 
 
10695
#if YYDEBUG
 
10696
/*--------------------------------.
 
10697
| Print this symbol on YYOUTPUT.  |
 
10698
`--------------------------------*/
 
10699
 
 
10700
#if defined (__STDC__) || defined (__cplusplus)
 
10701
static void
 
10702
yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
 
10703
#else
 
10704
static void
 
10705
yysymprint (yyoutput, yytype, yyvaluep)
 
10706
    FILE *yyoutput;
 
10707
    int yytype;
 
10708
    YYSTYPE *yyvaluep;
 
10709
#endif
 
10710
{
 
10711
  /* Pacify ``unused variable'' warnings.  */
 
10712
  (void) yyvaluep;
 
10713
 
 
10714
  if (yytype < YYNTOKENS)
 
10715
    {
 
10716
      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
 
10717
# ifdef YYPRINT
 
10718
      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
 
10719
# endif
 
10720
    }
 
10721
  else
 
10722
    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
 
10723
 
 
10724
  switch (yytype)
 
10725
    {
 
10726
      default:
 
10727
        break;
 
10728
    }
 
10729
  YYFPRINTF (yyoutput, ")");
 
10730
}
 
10731
 
 
10732
#endif /* ! YYDEBUG */
 
10733
/*-----------------------------------------------.
 
10734
| Release the memory associated to this symbol.  |
 
10735
`-----------------------------------------------*/
 
10736
 
 
10737
#if defined (__STDC__) || defined (__cplusplus)
 
10738
static void
 
10739
yydestruct (int yytype, YYSTYPE *yyvaluep)
 
10740
#else
 
10741
static void
 
10742
yydestruct (yytype, yyvaluep)
 
10743
    int yytype;
 
10744
    YYSTYPE *yyvaluep;
 
10745
#endif
 
10746
{
 
10747
  /* Pacify ``unused variable'' warnings.  */
 
10748
  (void) yyvaluep;
 
10749
 
 
10750
  switch (yytype)
 
10751
    {
 
10752
 
 
10753
      default:
 
10754
        break;
 
10755
    }
 
10756
}
 
10757
 
 
10758
 
 
10759
/* Prevent warnings from -Wmissing-prototypes.  */
 
10760
 
 
10761
#ifdef YYPARSE_PARAM
 
10762
# if defined (__STDC__) || defined (__cplusplus)
 
10763
int yyparse (void *YYPARSE_PARAM);
 
10764
# else
 
10765
int yyparse ();
 
10766
# endif
 
10767
#else /* ! YYPARSE_PARAM */
 
10768
#if defined (__STDC__) || defined (__cplusplus)
 
10769
int yyparse (void);
 
10770
#else
 
10771
int yyparse ();
 
10772
#endif
 
10773
#endif /* ! YYPARSE_PARAM */
 
10774
 
 
10775
 
 
10776
 
 
10777
/* The lookahead symbol.  */
 
10778
int yychar;
 
10779
 
 
10780
/* The semantic value of the lookahead symbol.  */
 
10781
YYSTYPE yylval;
 
10782
 
 
10783
/* Number of syntax errors so far.  */
 
10784
int yynerrs;
 
10785
 
 
10786
 
 
10787
 
 
10788
/*----------.
 
10789
| yyparse.  |
 
10790
`----------*/
 
10791
 
 
10792
#ifdef YYPARSE_PARAM
 
10793
# if defined (__STDC__) || defined (__cplusplus)
 
10794
int yyparse (void *YYPARSE_PARAM)
 
10795
# else
 
10796
int yyparse (YYPARSE_PARAM)
 
10797
  void *YYPARSE_PARAM;
 
10798
# endif
 
10799
#else /* ! YYPARSE_PARAM */
 
10800
#if defined (__STDC__) || defined (__cplusplus)
 
10801
int
 
10802
yyparse (void)
 
10803
#else
 
10804
int
 
10805
yyparse ()
 
10806
 
 
10807
#endif
 
10808
#endif
 
10809
{
 
10810
  
 
10811
  register int yystate;
 
10812
  register int yyn;
 
10813
  int yyresult;
 
10814
  /* Number of tokens to shift before error messages enabled.  */
 
10815
  int yyerrstatus;
 
10816
  /* Lookahead token as an internal (translated) token number.  */
 
10817
  int yytoken = 0;
 
10818
 
 
10819
  /* Three stacks and their tools:
 
10820
     `yyss': related to states,
 
10821
     `yyvs': related to semantic values,
 
10822
     `yyls': related to locations.
 
10823
 
 
10824
     Refer to the stacks thru separate pointers, to allow yyoverflow
 
10825
     to reallocate them elsewhere.  */
 
10826
 
 
10827
  /* The state stack.  */
 
10828
  short yyssa[YYINITDEPTH];
 
10829
  short *yyss = yyssa;
 
10830
  register short *yyssp;
 
10831
 
 
10832
  /* The semantic value stack.  */
 
10833
  YYSTYPE yyvsa[YYINITDEPTH];
 
10834
  YYSTYPE *yyvs = yyvsa;
 
10835
  register YYSTYPE *yyvsp;
 
10836
 
 
10837
 
 
10838
 
 
10839
#define YYPOPSTACK   (yyvsp--, yyssp--)
 
10840
 
 
10841
  YYSIZE_T yystacksize = YYINITDEPTH;
 
10842
 
 
10843
  /* The variables used to return semantic value and location from the
 
10844
     action routines.  */
 
10845
  YYSTYPE yyval;
 
10846
 
 
10847
 
 
10848
  /* When reducing, the number of symbols on the RHS of the reduced
 
10849
     rule.  */
 
10850
  int yylen;
 
10851
 
 
10852
  YYDPRINTF ((stderr, "Starting parse\n"));
 
10853
 
 
10854
  yystate = 0;
 
10855
  yyerrstatus = 0;
 
10856
  yynerrs = 0;
 
10857
  yychar = YYEMPTY;             /* Cause a token to be read.  */
 
10858
 
 
10859
  /* Initialize stack pointers.
 
10860
     Waste one element of value and location stack
 
10861
     so that they stay on the same level as the state stack.
 
10862
     The wasted elements are never initialized.  */
 
10863
 
 
10864
  yyssp = yyss;
 
10865
  yyvsp = yyvs;
 
10866
 
 
10867
  goto yysetstate;
 
10868
 
 
10869
/*------------------------------------------------------------.
 
10870
| yynewstate -- Push a new state, which is found in yystate.  |
 
10871
`------------------------------------------------------------*/
 
10872
 yynewstate:
 
10873
  /* In all cases, when you get here, the value and location stacks
 
10874
     have just been pushed. so pushing a state here evens the stacks.
 
10875
     */
 
10876
  yyssp++;
 
10877
 
 
10878
 yysetstate:
 
10879
  *yyssp = yystate;
 
10880
 
 
10881
  if (yyss + yystacksize - 1 <= yyssp)
 
10882
    {
 
10883
      /* Get the current used size of the three stacks, in elements.  */
 
10884
      YYSIZE_T yysize = yyssp - yyss + 1;
 
10885
 
 
10886
#ifdef yyoverflow
 
10887
      {
 
10888
        /* Give user a chance to reallocate the stack. Use copies of
 
10889
           these so that the &'s don't force the real ones into
 
10890
           memory.  */
 
10891
        YYSTYPE *yyvs1 = yyvs;
 
10892
        short *yyss1 = yyss;
 
10893
 
 
10894
 
 
10895
        /* Each stack pointer address is followed by the size of the
 
10896
           data in use in that stack, in bytes.  This used to be a
 
10897
           conditional around just the two extra args, but that might
 
10898
           be undefined if yyoverflow is a macro.  */
 
10899
        yyoverflow ("parser stack overflow",
 
10900
                    &yyss1, yysize * sizeof (*yyssp),
 
10901
                    &yyvs1, yysize * sizeof (*yyvsp),
 
10902
 
 
10903
                    &yystacksize);
 
10904
 
 
10905
        yyss = yyss1;
 
10906
        yyvs = yyvs1;
 
10907
      }
 
10908
#else /* no yyoverflow */
 
10909
# ifndef YYSTACK_RELOCATE
 
10910
      goto yyoverflowlab;
 
10911
# else
 
10912
      /* Extend the stack our own way.  */
 
10913
      if (YYMAXDEPTH <= yystacksize)
 
10914
        goto yyoverflowlab;
 
10915
      yystacksize *= 2;
 
10916
      if (YYMAXDEPTH < yystacksize)
 
10917
        yystacksize = YYMAXDEPTH;
 
10918
 
 
10919
      {
 
10920
        short *yyss1 = yyss;
 
10921
        union yyalloc *yyptr =
 
10922
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 
10923
        if (! yyptr)
 
10924
          goto yyoverflowlab;
 
10925
        YYSTACK_RELOCATE (yyss);
 
10926
        YYSTACK_RELOCATE (yyvs);
 
10927
 
 
10928
#  undef YYSTACK_RELOCATE
 
10929
        if (yyss1 != yyssa)
 
10930
          YYSTACK_FREE (yyss1);
 
10931
      }
 
10932
# endif
 
10933
#endif /* no yyoverflow */
 
10934
 
 
10935
      yyssp = yyss + yysize - 1;
 
10936
      yyvsp = yyvs + yysize - 1;
 
10937
 
 
10938
 
 
10939
      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 
10940
                  (unsigned long int) yystacksize));
 
10941
 
 
10942
      if (yyss + yystacksize - 1 <= yyssp)
 
10943
        YYABORT;
 
10944
    }
 
10945
 
 
10946
  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
10947
 
 
10948
  goto yybackup;
 
10949
 
 
10950
/*-----------.
 
10951
| yybackup.  |
 
10952
`-----------*/
 
10953
yybackup:
 
10954
 
 
10955
/* Do appropriate processing given the current state.  */
 
10956
/* Read a lookahead token if we need one and don't already have one.  */
 
10957
/* yyresume: */
 
10958
 
 
10959
  /* First try to decide what to do without reference to lookahead token.  */
 
10960
 
 
10961
  yyn = yypact[yystate];
 
10962
  if (yyn == YYPACT_NINF)
 
10963
    goto yydefault;
 
10964
 
 
10965
  /* Not known => get a lookahead token if don't already have one.  */
 
10966
 
 
10967
  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
 
10968
  if (yychar == YYEMPTY)
 
10969
    {
 
10970
      YYDPRINTF ((stderr, "Reading a token: "));
 
10971
      yychar = YYLEX;
 
10972
    }
 
10973
 
 
10974
  if (yychar <= YYEOF)
 
10975
    {
 
10976
      yychar = yytoken = YYEOF;
 
10977
      YYDPRINTF ((stderr, "Now at end of input.\n"));
 
10978
    }
 
10979
  else
 
10980
    {
 
10981
      yytoken = YYTRANSLATE (yychar);
 
10982
      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
 
10983
    }
 
10984
 
 
10985
  /* If the proper action on seeing token YYTOKEN is to reduce or to
 
10986
     detect an error, take that action.  */
 
10987
  yyn += yytoken;
 
10988
  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
 
10989
    goto yydefault;
 
10990
  yyn = yytable[yyn];
 
10991
  if (yyn <= 0)
 
10992
    {
 
10993
      if (yyn == 0 || yyn == YYTABLE_NINF)
 
10994
        goto yyerrlab;
 
10995
      yyn = -yyn;
 
10996
      goto yyreduce;
 
10997
    }
 
10998
 
 
10999
  if (yyn == YYFINAL)
 
11000
    YYACCEPT;
 
11001
 
 
11002
  /* Shift the lookahead token.  */
 
11003
  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
 
11004
 
 
11005
  /* Discard the token being shifted unless it is eof.  */
 
11006
  if (yychar != YYEOF)
 
11007
    yychar = YYEMPTY;
 
11008
 
 
11009
  *++yyvsp = yylval;
 
11010
 
 
11011
 
 
11012
  /* Count tokens shifted since error; after three, turn off error
 
11013
     status.  */
 
11014
  if (yyerrstatus)
 
11015
    yyerrstatus--;
 
11016
 
 
11017
  yystate = yyn;
 
11018
  goto yynewstate;
 
11019
 
 
11020
 
 
11021
/*-----------------------------------------------------------.
 
11022
| yydefault -- do the default action for the current state.  |
 
11023
`-----------------------------------------------------------*/
 
11024
yydefault:
 
11025
  yyn = yydefact[yystate];
 
11026
  if (yyn == 0)
 
11027
    goto yyerrlab;
 
11028
  goto yyreduce;
 
11029
 
 
11030
 
 
11031
/*-----------------------------.
 
11032
| yyreduce -- Do a reduction.  |
 
11033
`-----------------------------*/
 
11034
yyreduce:
 
11035
  /* yyn is the number of a rule to reduce with.  */
 
11036
  yylen = yyr2[yyn];
 
11037
 
 
11038
  /* If YYLEN is nonzero, implement the default value of the action:
 
11039
     `$$ = $1'.
 
11040
 
 
11041
     Otherwise, the following line sets YYVAL to garbage.
 
11042
     This behavior is undocumented and Bison
 
11043
     users should not rely upon it.  Assigning to YYVAL
 
11044
     unconditionally makes the parser a bit smaller, and it avoids a
 
11045
     GCC warning that YYVAL may be used uninitialized.  */
 
11046
  yyval = yyvsp[1-yylen];
 
11047
 
 
11048
 
 
11049
  YY_REDUCE_PRINT (yyn);
 
11050
  switch (yyn)
 
11051
    {
 
11052
        case 2:
 
11053
#line 478 "gram.y"
 
11054
    { parsetree = yyvsp[0].list; }
 
11055
    break;
 
11056
 
 
11057
  case 3:
 
11058
#line 483 "gram.y"
 
11059
    { if (yyvsp[0].node != NULL)
 
11060
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
 
11061
                                  else
 
11062
                                        yyval.list = yyvsp[-2].list;
 
11063
                                }
 
11064
    break;
 
11065
 
 
11066
  case 4:
 
11067
#line 489 "gram.y"
 
11068
    { if (yyvsp[0].node != NULL)
 
11069
                                                yyval.list = list_make1(yyvsp[0].node);
 
11070
                                          else
 
11071
                                                yyval.list = NIL;
 
11072
                                        }
 
11073
    break;
 
11074
 
 
11075
  case 88:
 
11076
#line 581 "gram.y"
 
11077
    { yyval.node = NULL; }
 
11078
    break;
 
11079
 
 
11080
  case 89:
 
11081
#line 592 "gram.y"
 
11082
    {
 
11083
                                        CreateRoleStmt *n = makeNode(CreateRoleStmt);
 
11084
                                        n->stmt_type = ROLESTMT_ROLE;
 
11085
                                        n->role = yyvsp[-2].str;
 
11086
                                        n->options = yyvsp[0].list;
 
11087
                                        yyval.node = (Node *)n;
 
11088
                                }
 
11089
    break;
 
11090
 
 
11091
  case 90:
 
11092
#line 602 "gram.y"
 
11093
    {}
 
11094
    break;
 
11095
 
 
11096
  case 91:
 
11097
#line 603 "gram.y"
 
11098
    {}
 
11099
    break;
 
11100
 
 
11101
  case 92:
 
11102
#line 612 "gram.y"
 
11103
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
11104
    break;
 
11105
 
 
11106
  case 93:
 
11107
#line 613 "gram.y"
 
11108
    { yyval.list = NIL; }
 
11109
    break;
 
11110
 
 
11111
  case 94:
 
11112
#line 618 "gram.y"
 
11113
    {
 
11114
                                        yyval.defelt = makeDefElem("password",
 
11115
                                                                         (Node *)makeString(yyvsp[0].str));
 
11116
                                }
 
11117
    break;
 
11118
 
 
11119
  case 95:
 
11120
#line 623 "gram.y"
 
11121
    {
 
11122
                                        yyval.defelt = makeDefElem("encryptedPassword",
 
11123
                                                                         (Node *)makeString(yyvsp[0].str));
 
11124
                                }
 
11125
    break;
 
11126
 
 
11127
  case 96:
 
11128
#line 628 "gram.y"
 
11129
    {
 
11130
                                        yyval.defelt = makeDefElem("unencryptedPassword",
 
11131
                                                                         (Node *)makeString(yyvsp[0].str));
 
11132
                                }
 
11133
    break;
 
11134
 
 
11135
  case 97:
 
11136
#line 633 "gram.y"
 
11137
    {
 
11138
                                        yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(TRUE));
 
11139
                                }
 
11140
    break;
 
11141
 
 
11142
  case 98:
 
11143
#line 637 "gram.y"
 
11144
    {
 
11145
                                        yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(FALSE));
 
11146
                                }
 
11147
    break;
 
11148
 
 
11149
  case 99:
 
11150
#line 641 "gram.y"
 
11151
    {
 
11152
                                        yyval.defelt = makeDefElem("inherit", (Node *)makeInteger(TRUE));
 
11153
                                }
 
11154
    break;
 
11155
 
 
11156
  case 100:
 
11157
#line 645 "gram.y"
 
11158
    {
 
11159
                                        yyval.defelt = makeDefElem("inherit", (Node *)makeInteger(FALSE));
 
11160
                                }
 
11161
    break;
 
11162
 
 
11163
  case 101:
 
11164
#line 649 "gram.y"
 
11165
    {
 
11166
                                        yyval.defelt = makeDefElem("createdb", (Node *)makeInteger(TRUE));
 
11167
                                }
 
11168
    break;
 
11169
 
 
11170
  case 102:
 
11171
#line 653 "gram.y"
 
11172
    {
 
11173
                                        yyval.defelt = makeDefElem("createdb", (Node *)makeInteger(FALSE));
 
11174
                                }
 
11175
    break;
 
11176
 
 
11177
  case 103:
 
11178
#line 657 "gram.y"
 
11179
    {
 
11180
                                        yyval.defelt = makeDefElem("createrole", (Node *)makeInteger(TRUE));
 
11181
                                }
 
11182
    break;
 
11183
 
 
11184
  case 104:
 
11185
#line 661 "gram.y"
 
11186
    {
 
11187
                                        yyval.defelt = makeDefElem("createrole", (Node *)makeInteger(FALSE));
 
11188
                                }
 
11189
    break;
 
11190
 
 
11191
  case 105:
 
11192
#line 665 "gram.y"
 
11193
    {
 
11194
                                        /* For backwards compatibility, synonym for SUPERUSER */
 
11195
                                        yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(TRUE));
 
11196
                                }
 
11197
    break;
 
11198
 
 
11199
  case 106:
 
11200
#line 670 "gram.y"
 
11201
    {
 
11202
                                        yyval.defelt = makeDefElem("superuser", (Node *)makeInteger(FALSE));
 
11203
                                }
 
11204
    break;
 
11205
 
 
11206
  case 107:
 
11207
#line 674 "gram.y"
 
11208
    {
 
11209
                                        yyval.defelt = makeDefElem("canlogin", (Node *)makeInteger(TRUE));
 
11210
                                }
 
11211
    break;
 
11212
 
 
11213
  case 108:
 
11214
#line 678 "gram.y"
 
11215
    {
 
11216
                                        yyval.defelt = makeDefElem("canlogin", (Node *)makeInteger(FALSE));
 
11217
                                }
 
11218
    break;
 
11219
 
 
11220
  case 109:
 
11221
#line 682 "gram.y"
 
11222
    {
 
11223
                                        yyval.defelt = makeDefElem("connectionlimit", (Node *)makeInteger(yyvsp[0].ival));
 
11224
                                }
 
11225
    break;
 
11226
 
 
11227
  case 110:
 
11228
#line 686 "gram.y"
 
11229
    {
 
11230
                                        yyval.defelt = makeDefElem("validUntil", (Node *)makeString(yyvsp[0].str));
 
11231
                                }
 
11232
    break;
 
11233
 
 
11234
  case 111:
 
11235
#line 691 "gram.y"
 
11236
    {
 
11237
                                        yyval.defelt = makeDefElem("rolemembers", (Node *)yyvsp[0].list);
 
11238
                                }
 
11239
    break;
 
11240
 
 
11241
  case 112:
 
11242
#line 696 "gram.y"
 
11243
    {
 
11244
                                        yyval.defelt = makeDefElem("sysid", (Node *)makeInteger(yyvsp[0].ival));
 
11245
                                }
 
11246
    break;
 
11247
 
 
11248
  case 113:
 
11249
#line 700 "gram.y"
 
11250
    {
 
11251
                                        yyval.defelt = makeDefElem("adminmembers", (Node *)yyvsp[0].list);
 
11252
                                }
 
11253
    break;
 
11254
 
 
11255
  case 114:
 
11256
#line 704 "gram.y"
 
11257
    {
 
11258
                                        yyval.defelt = makeDefElem("rolemembers", (Node *)yyvsp[0].list);
 
11259
                                }
 
11260
    break;
 
11261
 
 
11262
  case 115:
 
11263
#line 708 "gram.y"
 
11264
    {
 
11265
                                        yyval.defelt = makeDefElem("addroleto", (Node *)yyvsp[0].list);
 
11266
                                }
 
11267
    break;
 
11268
 
 
11269
  case 116:
 
11270
#line 712 "gram.y"
 
11271
    {
 
11272
                                        yyval.defelt = makeDefElem("addroleto", (Node *)yyvsp[0].list);
 
11273
                                }
 
11274
    break;
 
11275
 
 
11276
  case 117:
 
11277
#line 726 "gram.y"
 
11278
    {
 
11279
                                        CreateRoleStmt *n = makeNode(CreateRoleStmt);
 
11280
                                        n->stmt_type = ROLESTMT_USER;
 
11281
                                        n->role = yyvsp[-2].str;
 
11282
                                        n->options = yyvsp[0].list;
 
11283
                                        yyval.node = (Node *)n;
 
11284
                                }
 
11285
    break;
 
11286
 
 
11287
  case 118:
 
11288
#line 744 "gram.y"
 
11289
    {
 
11290
                                        AlterRoleStmt *n = makeNode(AlterRoleStmt);
 
11291
                                        n->role = yyvsp[-2].str;
 
11292
                                        n->action = +1; /* add, if there are members */
 
11293
                                        n->options = yyvsp[0].list;
 
11294
                                        yyval.node = (Node *)n;
 
11295
                                 }
 
11296
    break;
 
11297
 
 
11298
  case 119:
 
11299
#line 755 "gram.y"
 
11300
    {
 
11301
                                        AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
 
11302
                                        n->role = yyvsp[-2].str;
 
11303
                                        n->variable = yyvsp[0].vsetstmt->name;
 
11304
                                        n->value = yyvsp[0].vsetstmt->args;
 
11305
                                        yyval.node = (Node *)n;
 
11306
                                }
 
11307
    break;
 
11308
 
 
11309
  case 120:
 
11310
#line 763 "gram.y"
 
11311
    {
 
11312
                                        AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
 
11313
                                        n->role = yyvsp[-1].str;
 
11314
                                        n->variable = ((VariableResetStmt *)yyvsp[0].node)->name;
 
11315
                                        n->value = NIL;
 
11316
                                        yyval.node = (Node *)n;
 
11317
                                }
 
11318
    break;
 
11319
 
 
11320
  case 121:
 
11321
#line 781 "gram.y"
 
11322
    {
 
11323
                                        AlterRoleStmt *n = makeNode(AlterRoleStmt);
 
11324
                                        n->role = yyvsp[-2].str;
 
11325
                                        n->action = +1; /* add, if there are members */
 
11326
                                        n->options = yyvsp[0].list;
 
11327
                                        yyval.node = (Node *)n;
 
11328
                                 }
 
11329
    break;
 
11330
 
 
11331
  case 122:
 
11332
#line 793 "gram.y"
 
11333
    {
 
11334
                                        AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
 
11335
                                        n->role = yyvsp[-2].str;
 
11336
                                        n->variable = yyvsp[0].vsetstmt->name;
 
11337
                                        n->value = yyvsp[0].vsetstmt->args;
 
11338
                                        yyval.node = (Node *)n;
 
11339
                                }
 
11340
    break;
 
11341
 
 
11342
  case 123:
 
11343
#line 801 "gram.y"
 
11344
    {
 
11345
                                        AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
 
11346
                                        n->role = yyvsp[-1].str;
 
11347
                                        n->variable = ((VariableResetStmt *)yyvsp[0].node)->name;
 
11348
                                        n->value = NIL;
 
11349
                                        yyval.node = (Node *)n;
 
11350
                                }
 
11351
    break;
 
11352
 
 
11353
  case 124:
 
11354
#line 822 "gram.y"
 
11355
    {
 
11356
                                        DropRoleStmt *n = makeNode(DropRoleStmt);
 
11357
                                        n->roles = yyvsp[0].list;
 
11358
                                        yyval.node = (Node *)n;
 
11359
                                }
 
11360
    break;
 
11361
 
 
11362
  case 125:
 
11363
#line 840 "gram.y"
 
11364
    {
 
11365
                                        DropRoleStmt *n = makeNode(DropRoleStmt);
 
11366
                                        n->roles = yyvsp[0].list;
 
11367
                                        yyval.node = (Node *)n;
 
11368
                                }
 
11369
    break;
 
11370
 
 
11371
  case 126:
 
11372
#line 856 "gram.y"
 
11373
    {
 
11374
                                        CreateRoleStmt *n = makeNode(CreateRoleStmt);
 
11375
                                        n->stmt_type = ROLESTMT_GROUP;
 
11376
                                        n->role = yyvsp[-2].str;
 
11377
                                        n->options = yyvsp[0].list;
 
11378
                                        yyval.node = (Node *)n;
 
11379
                                }
 
11380
    break;
 
11381
 
 
11382
  case 127:
 
11383
#line 874 "gram.y"
 
11384
    {
 
11385
                                        AlterRoleStmt *n = makeNode(AlterRoleStmt);
 
11386
                                        n->role = yyvsp[-3].str;
 
11387
                                        n->action = yyvsp[-2].ival;
 
11388
                                        n->options = list_make1(makeDefElem("rolemembers",
 
11389
                                                                                                                (Node *)yyvsp[0].list));
 
11390
                                        yyval.node = (Node *)n;
 
11391
                                }
 
11392
    break;
 
11393
 
 
11394
  case 128:
 
11395
#line 884 "gram.y"
 
11396
    { yyval.ival = +1; }
 
11397
    break;
 
11398
 
 
11399
  case 129:
 
11400
#line 885 "gram.y"
 
11401
    { yyval.ival = -1; }
 
11402
    break;
 
11403
 
 
11404
  case 130:
 
11405
#line 898 "gram.y"
 
11406
    {
 
11407
                                        DropRoleStmt *n = makeNode(DropRoleStmt);
 
11408
                                        n->roles = yyvsp[0].list;
 
11409
                                        yyval.node = (Node *)n;
 
11410
                                }
 
11411
    break;
 
11412
 
 
11413
  case 131:
 
11414
#line 914 "gram.y"
 
11415
    {
 
11416
                                        CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
 
11417
                                        /* One can omit the schema name or the authorization id. */
 
11418
                                        if (yyvsp[-3].str != NULL)
 
11419
                                                n->schemaname = yyvsp[-3].str;
 
11420
                                        else
 
11421
                                                n->schemaname = yyvsp[-1].str;
 
11422
                                        n->authid = yyvsp[-1].str;
 
11423
                                        n->schemaElts = yyvsp[0].list;
 
11424
                                        yyval.node = (Node *)n;
 
11425
                                }
 
11426
    break;
 
11427
 
 
11428
  case 132:
 
11429
#line 926 "gram.y"
 
11430
    {
 
11431
                                        CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
 
11432
                                        /* ...but not both */
 
11433
                                        n->schemaname = yyvsp[-1].str;
 
11434
                                        n->authid = NULL;
 
11435
                                        n->schemaElts = yyvsp[0].list;
 
11436
                                        yyval.node = (Node *)n;
 
11437
                                }
 
11438
    break;
 
11439
 
 
11440
  case 133:
 
11441
#line 937 "gram.y"
 
11442
    { yyval.str = yyvsp[0].str; }
 
11443
    break;
 
11444
 
 
11445
  case 134:
 
11446
#line 938 "gram.y"
 
11447
    { yyval.str = NULL; }
 
11448
    break;
 
11449
 
 
11450
  case 135:
 
11451
#line 942 "gram.y"
 
11452
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
 
11453
    break;
 
11454
 
 
11455
  case 136:
 
11456
#line 943 "gram.y"
 
11457
    { yyval.list = NIL; }
 
11458
    break;
 
11459
 
 
11460
  case 143:
 
11461
#line 971 "gram.y"
 
11462
    {
 
11463
                                        VariableSetStmt *n = yyvsp[0].vsetstmt;
 
11464
                                        n->is_local = false;
 
11465
                                        yyval.node = (Node *) n;
 
11466
                                }
 
11467
    break;
 
11468
 
 
11469
  case 144:
 
11470
#line 977 "gram.y"
 
11471
    {
 
11472
                                        VariableSetStmt *n = yyvsp[0].vsetstmt;
 
11473
                                        n->is_local = true;
 
11474
                                        yyval.node = (Node *) n;
 
11475
                                }
 
11476
    break;
 
11477
 
 
11478
  case 145:
 
11479
#line 983 "gram.y"
 
11480
    {
 
11481
                                        VariableSetStmt *n = yyvsp[0].vsetstmt;
 
11482
                                        n->is_local = false;
 
11483
                                        yyval.node = (Node *) n;
 
11484
                                }
 
11485
    break;
 
11486
 
 
11487
  case 146:
 
11488
#line 991 "gram.y"
 
11489
    {
 
11490
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11491
                                        n->name = yyvsp[-2].str;
 
11492
                                        n->args = yyvsp[0].list;
 
11493
                                        yyval.vsetstmt = n;
 
11494
                                }
 
11495
    break;
 
11496
 
 
11497
  case 147:
 
11498
#line 998 "gram.y"
 
11499
    {
 
11500
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11501
                                        n->name = yyvsp[-2].str;
 
11502
                                        n->args = yyvsp[0].list;
 
11503
                                        yyval.vsetstmt = n;
 
11504
                                }
 
11505
    break;
 
11506
 
 
11507
  case 148:
 
11508
#line 1005 "gram.y"
 
11509
    {
 
11510
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11511
                                        n->name = "timezone";
 
11512
                                        if (yyvsp[0].node != NULL)
 
11513
                                                n->args = list_make1(yyvsp[0].node);
 
11514
                                        yyval.vsetstmt = n;
 
11515
                                }
 
11516
    break;
 
11517
 
 
11518
  case 149:
 
11519
#line 1013 "gram.y"
 
11520
    {
 
11521
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11522
                                        n->name = "TRANSACTION";
 
11523
                                        n->args = yyvsp[0].list;
 
11524
                                        yyval.vsetstmt = n;
 
11525
                                }
 
11526
    break;
 
11527
 
 
11528
  case 150:
 
11529
#line 1020 "gram.y"
 
11530
    {
 
11531
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11532
                                        n->name = "SESSION CHARACTERISTICS";
 
11533
                                        n->args = yyvsp[0].list;
 
11534
                                        yyval.vsetstmt = n;
 
11535
                                }
 
11536
    break;
 
11537
 
 
11538
  case 151:
 
11539
#line 1027 "gram.y"
 
11540
    {
 
11541
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11542
                                        n->name = "client_encoding";
 
11543
                                        if (yyvsp[0].str != NULL)
 
11544
                                                n->args = list_make1(makeStringConst(yyvsp[0].str, NULL));
 
11545
                                        yyval.vsetstmt = n;
 
11546
                                }
 
11547
    break;
 
11548
 
 
11549
  case 152:
 
11550
#line 1035 "gram.y"
 
11551
    {
 
11552
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11553
                                        n->name = "role";
 
11554
                                        n->args = list_make1(makeStringConst(yyvsp[0].str, NULL));
 
11555
                                        yyval.vsetstmt = n;
 
11556
                                }
 
11557
    break;
 
11558
 
 
11559
  case 153:
 
11560
#line 1042 "gram.y"
 
11561
    {
 
11562
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11563
                                        n->name = "session_authorization";
 
11564
                                        n->args = list_make1(makeStringConst(yyvsp[0].str, NULL));
 
11565
                                        yyval.vsetstmt = n;
 
11566
                                }
 
11567
    break;
 
11568
 
 
11569
  case 154:
 
11570
#line 1049 "gram.y"
 
11571
    {
 
11572
                                        VariableSetStmt *n = makeNode(VariableSetStmt);
 
11573
                                        n->name = "session_authorization";
 
11574
                                        n->args = NIL;
 
11575
                                        yyval.vsetstmt = n;
 
11576
                                }
 
11577
    break;
 
11578
 
 
11579
  case 155:
 
11580
#line 1058 "gram.y"
 
11581
    { yyval.str = yyvsp[0].str; }
 
11582
    break;
 
11583
 
 
11584
  case 156:
 
11585
#line 1060 "gram.y"
 
11586
    {
 
11587
                                        int qLen = strlen(yyvsp[-2].str);
 
11588
                                        char* qualName = palloc(qLen + strlen(yyvsp[0].str) + 2);
 
11589
                                        strcpy(qualName, yyvsp[-2].str);
 
11590
                                        qualName[qLen] = '.';
 
11591
                                        strcpy(qualName + qLen + 1, yyvsp[0].str);
 
11592
                                        yyval.str = qualName;
 
11593
                                }
 
11594
    break;
 
11595
 
 
11596
  case 157:
 
11597
#line 1071 "gram.y"
 
11598
    { yyval.list = yyvsp[0].list; }
 
11599
    break;
 
11600
 
 
11601
  case 158:
 
11602
#line 1072 "gram.y"
 
11603
    { yyval.list = NIL; }
 
11604
    break;
 
11605
 
 
11606
  case 159:
 
11607
#line 1075 "gram.y"
 
11608
    { yyval.list = list_make1(yyvsp[0].node); }
 
11609
    break;
 
11610
 
 
11611
  case 160:
 
11612
#line 1076 "gram.y"
 
11613
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
11614
    break;
 
11615
 
 
11616
  case 161:
 
11617
#line 1080 "gram.y"
 
11618
    { yyval.node = makeStringConst(yyvsp[0].str, NULL); }
 
11619
    break;
 
11620
 
 
11621
  case 162:
 
11622
#line 1082 "gram.y"
 
11623
    { yyval.node = makeStringConst(yyvsp[0].str, NULL); }
 
11624
    break;
 
11625
 
 
11626
  case 163:
 
11627
#line 1084 "gram.y"
 
11628
    { yyval.node = makeAConst(yyvsp[0].value); }
 
11629
    break;
 
11630
 
 
11631
  case 164:
 
11632
#line 1087 "gram.y"
 
11633
    { yyval.str = "read uncommitted"; }
 
11634
    break;
 
11635
 
 
11636
  case 165:
 
11637
#line 1088 "gram.y"
 
11638
    { yyval.str = "read committed"; }
 
11639
    break;
 
11640
 
 
11641
  case 166:
 
11642
#line 1089 "gram.y"
 
11643
    { yyval.str = "repeatable read"; }
 
11644
    break;
 
11645
 
 
11646
  case 167:
 
11647
#line 1090 "gram.y"
 
11648
    { yyval.str = "serializable"; }
 
11649
    break;
 
11650
 
 
11651
  case 168:
 
11652
#line 1094 "gram.y"
 
11653
    { yyval.str = "true"; }
 
11654
    break;
 
11655
 
 
11656
  case 169:
 
11657
#line 1095 "gram.y"
 
11658
    { yyval.str = "false"; }
 
11659
    break;
 
11660
 
 
11661
  case 170:
 
11662
#line 1096 "gram.y"
 
11663
    { yyval.str = "on"; }
 
11664
    break;
 
11665
 
 
11666
  case 171:
 
11667
#line 1097 "gram.y"
 
11668
    { yyval.str = "off"; }
 
11669
    break;
 
11670
 
 
11671
  case 172:
 
11672
#line 1110 "gram.y"
 
11673
    {
 
11674
                                        yyval.node = makeStringConst(yyvsp[0].str, NULL);
 
11675
                                }
 
11676
    break;
 
11677
 
 
11678
  case 173:
 
11679
#line 1114 "gram.y"
 
11680
    {
 
11681
                                        yyval.node = makeStringConst(yyvsp[0].str, NULL);
 
11682
                                }
 
11683
    break;
 
11684
 
 
11685
  case 174:
 
11686
#line 1118 "gram.y"
 
11687
    {
 
11688
                                        A_Const *n = (A_Const *) makeStringConst(yyvsp[-1].str, yyvsp[-2].typnam);
 
11689
                                        if (yyvsp[0].ival != INTERVAL_FULL_RANGE)
 
11690
                                        {
 
11691
                                                if ((yyvsp[0].ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
 
11692
                                                        ereport(ERROR,
 
11693
                                                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
11694
                                                                         errmsg("time zone interval must be HOUR or HOUR TO MINUTE")));
 
11695
                                                n->typename->typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, yyvsp[0].ival);
 
11696
                                        }
 
11697
                                        yyval.node = (Node *)n;
 
11698
                                }
 
11699
    break;
 
11700
 
 
11701
  case 175:
 
11702
#line 1131 "gram.y"
 
11703
    {
 
11704
                                        A_Const *n = (A_Const *) makeStringConst(yyvsp[-1].str, yyvsp[-5].typnam);
 
11705
                                        if (yyvsp[-3].ival < 0)
 
11706
                                                ereport(ERROR,
 
11707
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
11708
                                                                 errmsg("INTERVAL(%d) precision must not be negative",
 
11709
                                                                                yyvsp[-3].ival)));
 
11710
                                        if (yyvsp[-3].ival > MAX_INTERVAL_PRECISION)
 
11711
                                        {
 
11712
                                                ereport(WARNING,
 
11713
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
11714
                                                                 errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
 
11715
                                                                                yyvsp[-3].ival, MAX_INTERVAL_PRECISION)));
 
11716
                                                yyvsp[-3].ival = MAX_INTERVAL_PRECISION;
 
11717
                                        }
 
11718
 
 
11719
                                        if ((yyvsp[0].ival != INTERVAL_FULL_RANGE)
 
11720
                                                && ((yyvsp[0].ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0))
 
11721
                                                ereport(ERROR,
 
11722
                                                                (errcode(ERRCODE_SYNTAX_ERROR),
 
11723
                                                                 errmsg("time zone interval must be HOUR or HOUR TO MINUTE")));
 
11724
 
 
11725
                                        n->typename->typmod = INTERVAL_TYPMOD(yyvsp[-3].ival, yyvsp[0].ival);
 
11726
 
 
11727
                                        yyval.node = (Node *)n;
 
11728
                                }
 
11729
    break;
 
11730
 
 
11731
  case 176:
 
11732
#line 1157 "gram.y"
 
11733
    { yyval.node = makeAConst(yyvsp[0].value); }
 
11734
    break;
 
11735
 
 
11736
  case 177:
 
11737
#line 1158 "gram.y"
 
11738
    { yyval.node = NULL; }
 
11739
    break;
 
11740
 
 
11741
  case 178:
 
11742
#line 1159 "gram.y"
 
11743
    { yyval.node = NULL; }
 
11744
    break;
 
11745
 
 
11746
  case 179:
 
11747
#line 1163 "gram.y"
 
11748
    { yyval.str = yyvsp[0].str; }
 
11749
    break;
 
11750
 
 
11751
  case 180:
 
11752
#line 1164 "gram.y"
 
11753
    { yyval.str = NULL; }
 
11754
    break;
 
11755
 
 
11756
  case 181:
 
11757
#line 1165 "gram.y"
 
11758
    { yyval.str = NULL; }
 
11759
    break;
 
11760
 
 
11761
  case 182:
 
11762
#line 1169 "gram.y"
 
11763
    { yyval.str = yyvsp[0].str; }
 
11764
    break;
 
11765
 
 
11766
  case 183:
 
11767
#line 1170 "gram.y"
 
11768
    { yyval.str = yyvsp[0].str; }
 
11769
    break;
 
11770
 
 
11771
  case 184:
 
11772
#line 1176 "gram.y"
 
11773
    {
 
11774
                                        VariableShowStmt *n = makeNode(VariableShowStmt);
 
11775
                                        n->name = yyvsp[0].str;
 
11776
                                        yyval.node = (Node *) n;
 
11777
                                }
 
11778
    break;
 
11779
 
 
11780
  case 185:
 
11781
#line 1182 "gram.y"
 
11782
    {
 
11783
                                        VariableShowStmt *n = makeNode(VariableShowStmt);
 
11784
                                        n->name = "timezone";
 
11785
                                        yyval.node = (Node *) n;
 
11786
                                }
 
11787
    break;
 
11788
 
 
11789
  case 186:
 
11790
#line 1188 "gram.y"
 
11791
    {
 
11792
                                        VariableShowStmt *n = makeNode(VariableShowStmt);
 
11793
                                        n->name = "transaction_isolation";
 
11794
                                        yyval.node = (Node *) n;
 
11795
                                }
 
11796
    break;
 
11797
 
 
11798
  case 187:
 
11799
#line 1194 "gram.y"
 
11800
    {
 
11801
                                        VariableShowStmt *n = makeNode(VariableShowStmt);
 
11802
                                        n->name = "session_authorization";
 
11803
                                        yyval.node = (Node *) n;
 
11804
                                }
 
11805
    break;
 
11806
 
 
11807
  case 188:
 
11808
#line 1200 "gram.y"
 
11809
    {
 
11810
                                        VariableShowStmt *n = makeNode(VariableShowStmt);
 
11811
                                        n->name = "all";
 
11812
                                        yyval.node = (Node *) n;
 
11813
                                }
 
11814
    break;
 
11815
 
 
11816
  case 189:
 
11817
#line 1209 "gram.y"
 
11818
    {
 
11819
                                        VariableResetStmt *n = makeNode(VariableResetStmt);
 
11820
                                        n->name = yyvsp[0].str;
 
11821
                                        yyval.node = (Node *) n;
 
11822
                                }
 
11823
    break;
 
11824
 
 
11825
  case 190:
 
11826
#line 1215 "gram.y"
 
11827
    {
 
11828
                                        VariableResetStmt *n = makeNode(VariableResetStmt);
 
11829
                                        n->name = "timezone";
 
11830
                                        yyval.node = (Node *) n;
 
11831
                                }
 
11832
    break;
 
11833
 
 
11834
  case 191:
 
11835
#line 1221 "gram.y"
 
11836
    {
 
11837
                                        VariableResetStmt *n = makeNode(VariableResetStmt);
 
11838
                                        n->name = "transaction_isolation";
 
11839
                                        yyval.node = (Node *) n;
 
11840
                                }
 
11841
    break;
 
11842
 
 
11843
  case 192:
 
11844
#line 1227 "gram.y"
 
11845
    {
 
11846
                                        VariableResetStmt *n = makeNode(VariableResetStmt);
 
11847
                                        n->name = "session_authorization";
 
11848
                                        yyval.node = (Node *) n;
 
11849
                                }
 
11850
    break;
 
11851
 
 
11852
  case 193:
 
11853
#line 1233 "gram.y"
 
11854
    {
 
11855
                                        VariableResetStmt *n = makeNode(VariableResetStmt);
 
11856
                                        n->name = "all";
 
11857
                                        yyval.node = (Node *) n;
 
11858
                                }
 
11859
    break;
 
11860
 
 
11861
  case 194:
 
11862
#line 1243 "gram.y"
 
11863
    {
 
11864
                                        ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt);
 
11865
                                        n->constraints = yyvsp[-1].list;
 
11866
                                        n->deferred    = yyvsp[0].boolean;
 
11867
                                        yyval.node = (Node *) n;
 
11868
                                }
 
11869
    break;
 
11870
 
 
11871
  case 195:
 
11872
#line 1252 "gram.y"
 
11873
    { yyval.list = NIL; }
 
11874
    break;
 
11875
 
 
11876
  case 196:
 
11877
#line 1253 "gram.y"
 
11878
    { yyval.list = yyvsp[0].list; }
 
11879
    break;
 
11880
 
 
11881
  case 197:
 
11882
#line 1257 "gram.y"
 
11883
    { yyval.boolean = TRUE; }
 
11884
    break;
 
11885
 
 
11886
  case 198:
 
11887
#line 1258 "gram.y"
 
11888
    { yyval.boolean = FALSE; }
 
11889
    break;
 
11890
 
 
11891
  case 199:
 
11892
#line 1267 "gram.y"
 
11893
    {
 
11894
                                        CheckPointStmt *n = makeNode(CheckPointStmt);
 
11895
                                        yyval.node = (Node *)n;
 
11896
                                }
 
11897
    break;
 
11898
 
 
11899
  case 200:
 
11900
#line 1282 "gram.y"
 
11901
    {
 
11902
                                        AlterTableStmt *n = makeNode(AlterTableStmt);
 
11903
                                        n->relation = yyvsp[-1].range;
 
11904
                                        n->cmds = yyvsp[0].list;
 
11905
                                        n->relkind = OBJECT_TABLE;
 
11906
                                        yyval.node = (Node *)n;
 
11907
                                }
 
11908
    break;
 
11909
 
 
11910
  case 201:
 
11911
#line 1290 "gram.y"
 
11912
    {
 
11913
                                        AlterTableStmt *n = makeNode(AlterTableStmt);
 
11914
                                        n->relation = yyvsp[-1].range;
 
11915
                                        n->cmds = yyvsp[0].list;
 
11916
                                        n->relkind = OBJECT_INDEX;
 
11917
                                        yyval.node = (Node *)n;
 
11918
                                }
 
11919
    break;
 
11920
 
 
11921
  case 202:
 
11922
#line 1300 "gram.y"
 
11923
    { yyval.list = list_make1(yyvsp[0].node); }
 
11924
    break;
 
11925
 
 
11926
  case 203:
 
11927
#line 1301 "gram.y"
 
11928
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
11929
    break;
 
11930
 
 
11931
  case 204:
 
11932
#line 1308 "gram.y"
 
11933
    {
 
11934
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
11935
                                        n->subtype = AT_AddColumn;
 
11936
                                        n->def = yyvsp[0].node;
 
11937
                                        yyval.node = (Node *)n;
 
11938
                                }
 
11939
    break;
 
11940
 
 
11941
  case 205:
 
11942
#line 1316 "gram.y"
 
11943
    {
 
11944
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
11945
                                        n->subtype = AT_ColumnDefault;
 
11946
                                        n->name = yyvsp[-1].str;
 
11947
                                        n->def = yyvsp[0].node;
 
11948
                                        yyval.node = (Node *)n;
 
11949
                                }
 
11950
    break;
 
11951
 
 
11952
  case 206:
 
11953
#line 1325 "gram.y"
 
11954
    {
 
11955
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
11956
                                        n->subtype = AT_DropNotNull;
 
11957
                                        n->name = yyvsp[-3].str;
 
11958
                                        yyval.node = (Node *)n;
 
11959
                                }
 
11960
    break;
 
11961
 
 
11962
  case 207:
 
11963
#line 1333 "gram.y"
 
11964
    {
 
11965
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
11966
                                        n->subtype = AT_SetNotNull;
 
11967
                                        n->name = yyvsp[-3].str;
 
11968
                                        yyval.node = (Node *)n;
 
11969
                                }
 
11970
    break;
 
11971
 
 
11972
  case 208:
 
11973
#line 1341 "gram.y"
 
11974
    {
 
11975
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
11976
                                        n->subtype = AT_SetStatistics;
 
11977
                                        n->name = yyvsp[-3].str;
 
11978
                                        n->def = (Node *) yyvsp[0].value;
 
11979
                                        yyval.node = (Node *)n;
 
11980
                                }
 
11981
    break;
 
11982
 
 
11983
  case 209:
 
11984
#line 1350 "gram.y"
 
11985
    {
 
11986
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
11987
                                        n->subtype = AT_SetStorage;
 
11988
                                        n->name = yyvsp[-3].str;
 
11989
                                        n->def = (Node *) makeString(yyvsp[0].str);
 
11990
                                        yyval.node = (Node *)n;
 
11991
                                }
 
11992
    break;
 
11993
 
 
11994
  case 210:
 
11995
#line 1359 "gram.y"
 
11996
    {
 
11997
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
11998
                                        n->subtype = AT_DropColumn;
 
11999
                                        n->name = yyvsp[-1].str;
 
12000
                                        n->behavior = yyvsp[0].dbehavior;
 
12001
                                        yyval.node = (Node *)n;
 
12002
                                }
 
12003
    break;
 
12004
 
 
12005
  case 211:
 
12006
#line 1371 "gram.y"
 
12007
    {
 
12008
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12009
                                        n->subtype = AT_AlterColumnType;
 
12010
                                        n->name = yyvsp[-3].str;
 
12011
                                        n->def = (Node *) yyvsp[-1].typnam;
 
12012
                                        n->transform = yyvsp[0].node;
 
12013
                                        yyval.node = (Node *)n;
 
12014
                                }
 
12015
    break;
 
12016
 
 
12017
  case 212:
 
12018
#line 1381 "gram.y"
 
12019
    {
 
12020
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12021
                                        n->subtype = AT_AddConstraint;
 
12022
                                        n->def = yyvsp[0].node;
 
12023
                                        yyval.node = (Node *)n;
 
12024
                                }
 
12025
    break;
 
12026
 
 
12027
  case 213:
 
12028
#line 1389 "gram.y"
 
12029
    {
 
12030
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12031
                                        n->subtype = AT_DropConstraint;
 
12032
                                        n->name = yyvsp[-1].str;
 
12033
                                        n->behavior = yyvsp[0].dbehavior;
 
12034
                                        yyval.node = (Node *)n;
 
12035
                                }
 
12036
    break;
 
12037
 
 
12038
  case 214:
 
12039
#line 1398 "gram.y"
 
12040
    {
 
12041
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12042
                                        n->subtype = AT_DropOids;
 
12043
                                        yyval.node = (Node *)n;
 
12044
                                }
 
12045
    break;
 
12046
 
 
12047
  case 215:
 
12048
#line 1405 "gram.y"
 
12049
    {
 
12050
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12051
                                        n->subtype = AT_ToastTable;
 
12052
                                        yyval.node = (Node *)n;
 
12053
                                }
 
12054
    break;
 
12055
 
 
12056
  case 216:
 
12057
#line 1412 "gram.y"
 
12058
    {
 
12059
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12060
                                        n->subtype = AT_ClusterOn;
 
12061
                                        n->name = yyvsp[0].str;
 
12062
                                        yyval.node = (Node *)n;
 
12063
                                }
 
12064
    break;
 
12065
 
 
12066
  case 217:
 
12067
#line 1420 "gram.y"
 
12068
    {
 
12069
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12070
                                        n->subtype = AT_DropCluster;
 
12071
                                        n->name = NULL;
 
12072
                                        yyval.node = (Node *)n;
 
12073
                                }
 
12074
    break;
 
12075
 
 
12076
  case 218:
 
12077
#line 1428 "gram.y"
 
12078
    {
 
12079
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12080
                                        n->subtype = AT_EnableTrig;
 
12081
                                        n->name = yyvsp[0].str;
 
12082
                                        yyval.node = (Node *)n;
 
12083
                                }
 
12084
    break;
 
12085
 
 
12086
  case 219:
 
12087
#line 1436 "gram.y"
 
12088
    {
 
12089
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12090
                                        n->subtype = AT_EnableTrigAll;
 
12091
                                        yyval.node = (Node *)n;
 
12092
                                }
 
12093
    break;
 
12094
 
 
12095
  case 220:
 
12096
#line 1443 "gram.y"
 
12097
    {
 
12098
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12099
                                        n->subtype = AT_EnableTrigUser;
 
12100
                                        yyval.node = (Node *)n;
 
12101
                                }
 
12102
    break;
 
12103
 
 
12104
  case 221:
 
12105
#line 1450 "gram.y"
 
12106
    {
 
12107
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12108
                                        n->subtype = AT_DisableTrig;
 
12109
                                        n->name = yyvsp[0].str;
 
12110
                                        yyval.node = (Node *)n;
 
12111
                                }
 
12112
    break;
 
12113
 
 
12114
  case 222:
 
12115
#line 1458 "gram.y"
 
12116
    {
 
12117
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12118
                                        n->subtype = AT_DisableTrigAll;
 
12119
                                        yyval.node = (Node *)n;
 
12120
                                }
 
12121
    break;
 
12122
 
 
12123
  case 223:
 
12124
#line 1465 "gram.y"
 
12125
    {
 
12126
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12127
                                        n->subtype = AT_DisableTrigUser;
 
12128
                                        yyval.node = (Node *)n;
 
12129
                                }
 
12130
    break;
 
12131
 
 
12132
  case 224:
 
12133
#line 1471 "gram.y"
 
12134
    {
 
12135
                                        yyval.node = yyvsp[0].node;
 
12136
                                }
 
12137
    break;
 
12138
 
 
12139
  case 225:
 
12140
#line 1477 "gram.y"
 
12141
    { yyval.list = list_make1(yyvsp[0].node); }
 
12142
    break;
 
12143
 
 
12144
  case 226:
 
12145
#line 1478 "gram.y"
 
12146
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
12147
    break;
 
12148
 
 
12149
  case 227:
 
12150
#line 1485 "gram.y"
 
12151
    {
 
12152
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12153
                                        n->subtype = AT_ChangeOwner;
 
12154
                                        n->name = yyvsp[0].str;
 
12155
                                        yyval.node = (Node *)n;
 
12156
                                }
 
12157
    break;
 
12158
 
 
12159
  case 228:
 
12160
#line 1493 "gram.y"
 
12161
    {
 
12162
                                        AlterTableCmd *n = makeNode(AlterTableCmd);
 
12163
                                        n->subtype = AT_SetTableSpace;
 
12164
                                        n->name = yyvsp[0].str;
 
12165
                                        yyval.node = (Node *)n;
 
12166
                                }
 
12167
    break;
 
12168
 
 
12169
  case 229:
 
12170
#line 1503 "gram.y"
 
12171
    {
 
12172
                                        /* Treat SET DEFAULT NULL the same as DROP DEFAULT */
 
12173
                                        if (exprIsNullConstant(yyvsp[0].node))
 
12174
                                                yyval.node = NULL;
 
12175
                                        else
 
12176
                                                yyval.node = yyvsp[0].node;
 
12177
                                }
 
12178
    break;
 
12179
 
 
12180
  case 230:
 
12181
#line 1510 "gram.y"
 
12182
    { yyval.node = NULL; }
 
12183
    break;
 
12184
 
 
12185
  case 231:
 
12186
#line 1514 "gram.y"
 
12187
    { yyval.dbehavior = DROP_CASCADE; }
 
12188
    break;
 
12189
 
 
12190
  case 232:
 
12191
#line 1515 "gram.y"
 
12192
    { yyval.dbehavior = DROP_RESTRICT; }
 
12193
    break;
 
12194
 
 
12195
  case 233:
 
12196
#line 1516 "gram.y"
 
12197
    { yyval.dbehavior = DROP_RESTRICT; /* default */ }
 
12198
    break;
 
12199
 
 
12200
  case 234:
 
12201
#line 1520 "gram.y"
 
12202
    { yyval.node = yyvsp[0].node; }
 
12203
    break;
 
12204
 
 
12205
  case 235:
 
12206
#line 1521 "gram.y"
 
12207
    { yyval.node = NULL; }
 
12208
    break;
 
12209
 
 
12210
  case 236:
 
12211
#line 1535 "gram.y"
 
12212
    {
 
12213
                                        ClosePortalStmt *n = makeNode(ClosePortalStmt);
 
12214
                                        n->portalname = yyvsp[0].str;
 
12215
                                        yyval.node = (Node *)n;
 
12216
                                }
 
12217
    break;
 
12218
 
 
12219
  case 237:
 
12220
#line 1555 "gram.y"
 
12221
    {
 
12222
                                        CopyStmt *n = makeNode(CopyStmt);
 
12223
                                        n->relation = yyvsp[-7].range;
 
12224
                                        n->attlist = yyvsp[-6].list;
 
12225
                                        n->is_from = yyvsp[-4].boolean;
 
12226
                                        n->filename = yyvsp[-3].str;
 
12227
 
 
12228
                                        n->options = NIL;
 
12229
                                        /* Concatenate user-supplied flags */
 
12230
                                        if (yyvsp[-8].defelt)
 
12231
                                                n->options = lappend(n->options, yyvsp[-8].defelt);
 
12232
                                        if (yyvsp[-5].defelt)
 
12233
                                                n->options = lappend(n->options, yyvsp[-5].defelt);
 
12234
                                        if (yyvsp[-2].defelt)
 
12235
                                                n->options = lappend(n->options, yyvsp[-2].defelt);
 
12236
                                        if (yyvsp[0].list)
 
12237
                                                n->options = list_concat(n->options, yyvsp[0].list);
 
12238
                                        yyval.node = (Node *)n;
 
12239
                                }
 
12240
    break;
 
12241
 
 
12242
  case 238:
 
12243
#line 1577 "gram.y"
 
12244
    { yyval.boolean = TRUE; }
 
12245
    break;
 
12246
 
 
12247
  case 239:
 
12248
#line 1578 "gram.y"
 
12249
    { yyval.boolean = FALSE; }
 
12250
    break;
 
12251
 
 
12252
  case 240:
 
12253
#line 1587 "gram.y"
 
12254
    { yyval.str = yyvsp[0].str; }
 
12255
    break;
 
12256
 
 
12257
  case 241:
 
12258
#line 1588 "gram.y"
 
12259
    { yyval.str = NULL; }
 
12260
    break;
 
12261
 
 
12262
  case 242:
 
12263
#line 1589 "gram.y"
 
12264
    { yyval.str = NULL; }
 
12265
    break;
 
12266
 
 
12267
  case 243:
 
12268
#line 1595 "gram.y"
 
12269
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
12270
    break;
 
12271
 
 
12272
  case 244:
 
12273
#line 1596 "gram.y"
 
12274
    { yyval.list = NIL; }
 
12275
    break;
 
12276
 
 
12277
  case 245:
 
12278
#line 1602 "gram.y"
 
12279
    {
 
12280
                                        yyval.defelt = makeDefElem("binary", (Node *)makeInteger(TRUE));
 
12281
                                }
 
12282
    break;
 
12283
 
 
12284
  case 246:
 
12285
#line 1606 "gram.y"
 
12286
    {
 
12287
                                        yyval.defelt = makeDefElem("oids", (Node *)makeInteger(TRUE));
 
12288
                                }
 
12289
    break;
 
12290
 
 
12291
  case 247:
 
12292
#line 1610 "gram.y"
 
12293
    {
 
12294
                                        yyval.defelt = makeDefElem("delimiter", (Node *)makeString(yyvsp[0].str));
 
12295
                                }
 
12296
    break;
 
12297
 
 
12298
  case 248:
 
12299
#line 1614 "gram.y"
 
12300
    {
 
12301
                                        yyval.defelt = makeDefElem("null", (Node *)makeString(yyvsp[0].str));
 
12302
                                }
 
12303
    break;
 
12304
 
 
12305
  case 249:
 
12306
#line 1618 "gram.y"
 
12307
    {
 
12308
                                        yyval.defelt = makeDefElem("csv", (Node *)makeInteger(TRUE));
 
12309
                                }
 
12310
    break;
 
12311
 
 
12312
  case 250:
 
12313
#line 1622 "gram.y"
 
12314
    {
 
12315
                                        yyval.defelt = makeDefElem("header", (Node *)makeInteger(TRUE));
 
12316
                                }
 
12317
    break;
 
12318
 
 
12319
  case 251:
 
12320
#line 1626 "gram.y"
 
12321
    {
 
12322
                                        yyval.defelt = makeDefElem("quote", (Node *)makeString(yyvsp[0].str));
 
12323
                                }
 
12324
    break;
 
12325
 
 
12326
  case 252:
 
12327
#line 1630 "gram.y"
 
12328
    {
 
12329
                                        yyval.defelt = makeDefElem("escape", (Node *)makeString(yyvsp[0].str));
 
12330
                                }
 
12331
    break;
 
12332
 
 
12333
  case 253:
 
12334
#line 1634 "gram.y"
 
12335
    {
 
12336
                                        yyval.defelt = makeDefElem("force_quote", (Node *)yyvsp[0].list);
 
12337
                                }
 
12338
    break;
 
12339
 
 
12340
  case 254:
 
12341
#line 1638 "gram.y"
 
12342
    {
 
12343
                                        yyval.defelt = makeDefElem("force_notnull", (Node *)yyvsp[0].list);
 
12344
                                }
 
12345
    break;
 
12346
 
 
12347
  case 255:
 
12348
#line 1647 "gram.y"
 
12349
    {
 
12350
                                        yyval.defelt = makeDefElem("binary", (Node *)makeInteger(TRUE));
 
12351
                                }
 
12352
    break;
 
12353
 
 
12354
  case 256:
 
12355
#line 1650 "gram.y"
 
12356
    { yyval.defelt = NULL; }
 
12357
    break;
 
12358
 
 
12359
  case 257:
 
12360
#line 1655 "gram.y"
 
12361
    {
 
12362
                                        yyval.defelt = makeDefElem("oids", (Node *)makeInteger(TRUE));
 
12363
                                }
 
12364
    break;
 
12365
 
 
12366
  case 258:
 
12367
#line 1658 "gram.y"
 
12368
    { yyval.defelt = NULL; }
 
12369
    break;
 
12370
 
 
12371
  case 259:
 
12372
#line 1664 "gram.y"
 
12373
    {
 
12374
                                        yyval.defelt = makeDefElem("delimiter", (Node *)makeString(yyvsp[0].str));
 
12375
                                }
 
12376
    break;
 
12377
 
 
12378
  case 260:
 
12379
#line 1667 "gram.y"
 
12380
    { yyval.defelt = NULL; }
 
12381
    break;
 
12382
 
 
12383
  case 261:
 
12384
#line 1671 "gram.y"
 
12385
    {}
 
12386
    break;
 
12387
 
 
12388
  case 262:
 
12389
#line 1672 "gram.y"
 
12390
    {}
 
12391
    break;
 
12392
 
 
12393
  case 263:
 
12394
#line 1685 "gram.y"
 
12395
    {
 
12396
                                        CreateStmt *n = makeNode(CreateStmt);
 
12397
                                        yyvsp[-7].range->istemp = yyvsp[-9].boolean;
 
12398
                                        n->relation = yyvsp[-7].range;
 
12399
                                        n->tableElts = yyvsp[-5].list;
 
12400
                                        n->inhRelations = yyvsp[-3].list;
 
12401
                                        n->constraints = NIL;
 
12402
                                        n->hasoids = yyvsp[-2].withoids;
 
12403
                                        n->oncommit = yyvsp[-1].oncommit;
 
12404
                                        n->tablespacename = yyvsp[0].str;
 
12405
                                        yyval.node = (Node *)n;
 
12406
                                }
 
12407
    break;
 
12408
 
 
12409
  case 264:
 
12410
#line 1699 "gram.y"
 
12411
    {
 
12412
                                        /* SQL99 CREATE TABLE OF <UDT> (cols) seems to be satisfied
 
12413
                                         * by our inheritance capabilities. Let's try it...
 
12414
                                         */
 
12415
                                        CreateStmt *n = makeNode(CreateStmt);
 
12416
                                        yyvsp[-8].range->istemp = yyvsp[-10].boolean;
 
12417
                                        n->relation = yyvsp[-8].range;
 
12418
                                        n->tableElts = yyvsp[-4].list;
 
12419
                                        n->inhRelations = list_make1(yyvsp[-6].range);
 
12420
                                        n->constraints = NIL;
 
12421
                                        n->hasoids = yyvsp[-2].withoids;
 
12422
                                        n->oncommit = yyvsp[-1].oncommit;
 
12423
                                        n->tablespacename = yyvsp[0].str;
 
12424
                                        yyval.node = (Node *)n;
 
12425
                                }
 
12426
    break;
 
12427
 
 
12428
  case 265:
 
12429
#line 1723 "gram.y"
 
12430
    { yyval.boolean = TRUE; }
 
12431
    break;
 
12432
 
 
12433
  case 266:
 
12434
#line 1724 "gram.y"
 
12435
    { yyval.boolean = TRUE; }
 
12436
    break;
 
12437
 
 
12438
  case 267:
 
12439
#line 1725 "gram.y"
 
12440
    { yyval.boolean = TRUE; }
 
12441
    break;
 
12442
 
 
12443
  case 268:
 
12444
#line 1726 "gram.y"
 
12445
    { yyval.boolean = TRUE; }
 
12446
    break;
 
12447
 
 
12448
  case 269:
 
12449
#line 1727 "gram.y"
 
12450
    { yyval.boolean = TRUE; }
 
12451
    break;
 
12452
 
 
12453
  case 270:
 
12454
#line 1728 "gram.y"
 
12455
    { yyval.boolean = TRUE; }
 
12456
    break;
 
12457
 
 
12458
  case 271:
 
12459
#line 1729 "gram.y"
 
12460
    { yyval.boolean = FALSE; }
 
12461
    break;
 
12462
 
 
12463
  case 272:
 
12464
#line 1733 "gram.y"
 
12465
    { yyval.list = yyvsp[0].list; }
 
12466
    break;
 
12467
 
 
12468
  case 273:
 
12469
#line 1734 "gram.y"
 
12470
    { yyval.list = NIL; }
 
12471
    break;
 
12472
 
 
12473
  case 274:
 
12474
#line 1739 "gram.y"
 
12475
    {
 
12476
                                        yyval.list = list_make1(yyvsp[0].node);
 
12477
                                }
 
12478
    break;
 
12479
 
 
12480
  case 275:
 
12481
#line 1743 "gram.y"
 
12482
    {
 
12483
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
 
12484
                                }
 
12485
    break;
 
12486
 
 
12487
  case 276:
 
12488
#line 1749 "gram.y"
 
12489
    { yyval.node = yyvsp[0].node; }
 
12490
    break;
 
12491
 
 
12492
  case 277:
 
12493
#line 1750 "gram.y"
 
12494
    { yyval.node = yyvsp[0].node; }
 
12495
    break;
 
12496
 
 
12497
  case 278:
 
12498
#line 1751 "gram.y"
 
12499
    { yyval.node = yyvsp[0].node; }
 
12500
    break;
 
12501
 
 
12502
  case 279:
 
12503
#line 1755 "gram.y"
 
12504
    {
 
12505
                                        ColumnDef *n = makeNode(ColumnDef);
 
12506
                                        n->colname = yyvsp[-2].str;
 
12507
                                        n->typename = yyvsp[-1].typnam;
 
12508
                                        n->constraints = yyvsp[0].list;
 
12509
                                        n->is_local = true;
 
12510
                                        yyval.node = (Node *)n;
 
12511
                                }
 
12512
    break;
 
12513
 
 
12514
  case 280:
 
12515
#line 1766 "gram.y"
 
12516
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
 
12517
    break;
 
12518
 
 
12519
  case 281:
 
12520
#line 1767 "gram.y"
 
12521
    { yyval.list = NIL; }
 
12522
    break;
 
12523
 
 
12524
  case 282:
 
12525
#line 1772 "gram.y"
 
12526
    {
 
12527
                                        switch (nodeTag(yyvsp[0].node))
 
12528
                                        {
 
12529
                                                case T_Constraint:
 
12530
                                                        {
 
12531
                                                                Constraint *n = (Constraint *)yyvsp[0].node;
 
12532
                                                                n->name = yyvsp[-1].str;
 
12533
                                                        }
 
12534
                                                        break;
 
12535
                                                case T_FkConstraint:
 
12536
                                                        {
 
12537
                                                                FkConstraint *n = (FkConstraint *)yyvsp[0].node;
 
12538
                                                                n->constr_name = yyvsp[-1].str;
 
12539
                                                        }
 
12540
                                                        break;
 
12541
                                                default:
 
12542
                                                        break;
 
12543
                                        }
 
12544
                                        yyval.node = yyvsp[0].node;
 
12545
                                }
 
12546
    break;
 
12547
 
 
12548
  case 283:
 
12549
#line 1792 "gram.y"
 
12550
    { yyval.node = yyvsp[0].node; }
 
12551
    break;
 
12552
 
 
12553
  case 284:
 
12554
#line 1793 "gram.y"
 
12555
    { yyval.node = yyvsp[0].node; }
 
12556
    break;
 
12557
 
 
12558
  case 285:
 
12559
#line 1813 "gram.y"
 
12560
    {
 
12561
                                        Constraint *n = makeNode(Constraint);
 
12562
                                        n->contype = CONSTR_NOTNULL;
 
12563
                                        n->name = NULL;
 
12564
                                        n->raw_expr = NULL;
 
12565
                                        n->cooked_expr = NULL;
 
12566
                                        n->keys = NULL;
 
12567
                                        n->indexspace = NULL;
 
12568
                                        yyval.node = (Node *)n;
 
12569
                                }
 
12570
    break;
 
12571
 
 
12572
  case 286:
 
12573
#line 1824 "gram.y"
 
12574
    {
 
12575
                                        Constraint *n = makeNode(Constraint);
 
12576
                                        n->contype = CONSTR_NULL;
 
12577
                                        n->name = NULL;
 
12578
                                        n->raw_expr = NULL;
 
12579
                                        n->cooked_expr = NULL;
 
12580
                                        n->keys = NULL;
 
12581
                                        n->indexspace = NULL;
 
12582
                                        yyval.node = (Node *)n;
 
12583
                                }
 
12584
    break;
 
12585
 
 
12586
  case 287:
 
12587
#line 1835 "gram.y"
 
12588
    {
 
12589
                                        Constraint *n = makeNode(Constraint);
 
12590
                                        n->contype = CONSTR_UNIQUE;
 
12591
                                        n->name = NULL;
 
12592
                                        n->raw_expr = NULL;
 
12593
                                        n->cooked_expr = NULL;
 
12594
                                        n->keys = NULL;
 
12595
                                        n->indexspace = yyvsp[0].str;
 
12596
                                        yyval.node = (Node *)n;
 
12597
                                }
 
12598
    break;
 
12599
 
 
12600
  case 288:
 
12601
#line 1846 "gram.y"
 
12602
    {
 
12603
                                        Constraint *n = makeNode(Constraint);
 
12604
                                        n->contype = CONSTR_PRIMARY;
 
12605
                                        n->name = NULL;
 
12606
                                        n->raw_expr = NULL;
 
12607
                                        n->cooked_expr = NULL;
 
12608
                                        n->keys = NULL;
 
12609
                                        n->indexspace = yyvsp[0].str;
 
12610
                                        yyval.node = (Node *)n;
 
12611
                                }
 
12612
    break;
 
12613
 
 
12614
  case 289:
 
12615
#line 1857 "gram.y"
 
12616
    {
 
12617
                                        Constraint *n = makeNode(Constraint);
 
12618
                                        n->contype = CONSTR_CHECK;
 
12619
                                        n->name = NULL;
 
12620
                                        n->raw_expr = yyvsp[-1].node;
 
12621
                                        n->cooked_expr = NULL;
 
12622
                                        n->keys = NULL;
 
12623
                                        n->indexspace = NULL;
 
12624
                                        yyval.node = (Node *)n;
 
12625
                                }
 
12626
    break;
 
12627
 
 
12628
  case 290:
 
12629
#line 1868 "gram.y"
 
12630
    {
 
12631
                                        Constraint *n = makeNode(Constraint);
 
12632
                                        n->contype = CONSTR_DEFAULT;
 
12633
                                        n->name = NULL;
 
12634
                                        if (exprIsNullConstant(yyvsp[0].node))
 
12635
                                        {
 
12636
                                                /* DEFAULT NULL should be reported as empty expr */
 
12637
                                                n->raw_expr = NULL;
 
12638
                                        }
 
12639
                                        else
 
12640
                                        {
 
12641
                                                n->raw_expr = yyvsp[0].node;
 
12642
                                        }
 
12643
                                        n->cooked_expr = NULL;
 
12644
                                        n->keys = NULL;
 
12645
                                        n->indexspace = NULL;
 
12646
                                        yyval.node = (Node *)n;
 
12647
                                }
 
12648
    break;
 
12649
 
 
12650
  case 291:
 
12651
#line 1887 "gram.y"
 
12652
    {
 
12653
                                        FkConstraint *n = makeNode(FkConstraint);
 
12654
                                        n->constr_name          = NULL;
 
12655
                                        n->pktable                      = yyvsp[-3].range;
 
12656
                                        n->fk_attrs                     = NIL;
 
12657
                                        n->pk_attrs                     = yyvsp[-2].list;
 
12658
                                        n->fk_matchtype         = yyvsp[-1].ival;
 
12659
                                        n->fk_upd_action        = (char) (yyvsp[0].ival >> 8);
 
12660
                                        n->fk_del_action        = (char) (yyvsp[0].ival & 0xFF);
 
12661
                                        n->deferrable           = FALSE;
 
12662
                                        n->initdeferred         = FALSE;
 
12663
                                        yyval.node = (Node *)n;
 
12664
                                }
 
12665
    break;
 
12666
 
 
12667
  case 292:
 
12668
#line 1915 "gram.y"
 
12669
    {
 
12670
                                        Constraint *n = makeNode(Constraint);
 
12671
                                        n->contype = CONSTR_ATTR_DEFERRABLE;
 
12672
                                        yyval.node = (Node *)n;
 
12673
                                }
 
12674
    break;
 
12675
 
 
12676
  case 293:
 
12677
#line 1921 "gram.y"
 
12678
    {
 
12679
                                        Constraint *n = makeNode(Constraint);
 
12680
                                        n->contype = CONSTR_ATTR_NOT_DEFERRABLE;
 
12681
                                        yyval.node = (Node *)n;
 
12682
                                }
 
12683
    break;
 
12684
 
 
12685
  case 294:
 
12686
#line 1927 "gram.y"
 
12687
    {
 
12688
                                        Constraint *n = makeNode(Constraint);
 
12689
                                        n->contype = CONSTR_ATTR_DEFERRED;
 
12690
                                        yyval.node = (Node *)n;
 
12691
                                }
 
12692
    break;
 
12693
 
 
12694
  case 295:
 
12695
#line 1933 "gram.y"
 
12696
    {
 
12697
                                        Constraint *n = makeNode(Constraint);
 
12698
                                        n->contype = CONSTR_ATTR_IMMEDIATE;
 
12699
                                        yyval.node = (Node *)n;
 
12700
                                }
 
12701
    break;
 
12702
 
 
12703
  case 296:
 
12704
#line 1951 "gram.y"
 
12705
    {
 
12706
                                        InhRelation *n = makeNode(InhRelation);
 
12707
                                        n->relation = yyvsp[-1].range;
 
12708
                                        n->including_defaults = yyvsp[0].boolean;
 
12709
 
 
12710
                                        yyval.node = (Node *)n;
 
12711
                                }
 
12712
    break;
 
12713
 
 
12714
  case 297:
 
12715
#line 1961 "gram.y"
 
12716
    { yyval.boolean = true; }
 
12717
    break;
 
12718
 
 
12719
  case 298:
 
12720
#line 1962 "gram.y"
 
12721
    { yyval.boolean = false; }
 
12722
    break;
 
12723
 
 
12724
  case 299:
 
12725
#line 1963 "gram.y"
 
12726
    { yyval.boolean = false; }
 
12727
    break;
 
12728
 
 
12729
  case 300:
 
12730
#line 1973 "gram.y"
 
12731
    {
 
12732
                                        switch (nodeTag(yyvsp[0].node))
 
12733
                                        {
 
12734
                                                case T_Constraint:
 
12735
                                                        {
 
12736
                                                                Constraint *n = (Constraint *)yyvsp[0].node;
 
12737
                                                                n->name = yyvsp[-1].str;
 
12738
                                                        }
 
12739
                                                        break;
 
12740
                                                case T_FkConstraint:
 
12741
                                                        {
 
12742
                                                                FkConstraint *n = (FkConstraint *)yyvsp[0].node;
 
12743
                                                                n->constr_name = yyvsp[-1].str;
 
12744
                                                        }
 
12745
                                                        break;
 
12746
                                                default:
 
12747
                                                        break;
 
12748
                                        }
 
12749
                                        yyval.node = yyvsp[0].node;
 
12750
                                }
 
12751
    break;
 
12752
 
 
12753
  case 301:
 
12754
#line 1993 "gram.y"
 
12755
    { yyval.node = yyvsp[0].node; }
 
12756
    break;
 
12757
 
 
12758
  case 302:
 
12759
#line 1998 "gram.y"
 
12760
    {
 
12761
                                        Constraint *n = makeNode(Constraint);
 
12762
                                        n->contype = CONSTR_CHECK;
 
12763
                                        n->name = NULL;
 
12764
                                        n->raw_expr = yyvsp[-1].node;
 
12765
                                        n->cooked_expr = NULL;
 
12766
                                        n->indexspace = NULL;
 
12767
                                        yyval.node = (Node *)n;
 
12768
                                }
 
12769
    break;
 
12770
 
 
12771
  case 303:
 
12772
#line 2008 "gram.y"
 
12773
    {
 
12774
                                        Constraint *n = makeNode(Constraint);
 
12775
                                        n->contype = CONSTR_UNIQUE;
 
12776
                                        n->name = NULL;
 
12777
                                        n->raw_expr = NULL;
 
12778
                                        n->cooked_expr = NULL;
 
12779
                                        n->keys = yyvsp[-2].list;
 
12780
                                        n->indexspace = yyvsp[0].str;
 
12781
                                        yyval.node = (Node *)n;
 
12782
                                }
 
12783
    break;
 
12784
 
 
12785
  case 304:
 
12786
#line 2019 "gram.y"
 
12787
    {
 
12788
                                        Constraint *n = makeNode(Constraint);
 
12789
                                        n->contype = CONSTR_PRIMARY;
 
12790
                                        n->name = NULL;
 
12791
                                        n->raw_expr = NULL;
 
12792
                                        n->cooked_expr = NULL;
 
12793
                                        n->keys = yyvsp[-2].list;
 
12794
                                        n->indexspace = yyvsp[0].str;
 
12795
                                        yyval.node = (Node *)n;
 
12796
                                }
 
12797
    break;
 
12798
 
 
12799
  case 305:
 
12800
#line 2031 "gram.y"
 
12801
    {
 
12802
                                        FkConstraint *n = makeNode(FkConstraint);
 
12803
                                        n->constr_name          = NULL;
 
12804
                                        n->pktable                      = yyvsp[-4].range;
 
12805
                                        n->fk_attrs                     = yyvsp[-7].list;
 
12806
                                        n->pk_attrs                     = yyvsp[-3].list;
 
12807
                                        n->fk_matchtype         = yyvsp[-2].ival;
 
12808
                                        n->fk_upd_action        = (char) (yyvsp[-1].ival >> 8);
 
12809
                                        n->fk_del_action        = (char) (yyvsp[-1].ival & 0xFF);
 
12810
                                        n->deferrable           = (yyvsp[0].ival & 1) != 0;
 
12811
                                        n->initdeferred         = (yyvsp[0].ival & 2) != 0;
 
12812
                                        yyval.node = (Node *)n;
 
12813
                                }
 
12814
    break;
 
12815
 
 
12816
  case 306:
 
12817
#line 2047 "gram.y"
 
12818
    { yyval.list = yyvsp[-1].list; }
 
12819
    break;
 
12820
 
 
12821
  case 307:
 
12822
#line 2048 "gram.y"
 
12823
    { yyval.list = NIL; }
 
12824
    break;
 
12825
 
 
12826
  case 308:
 
12827
#line 2052 "gram.y"
 
12828
    { yyval.list = list_make1(yyvsp[0].node); }
 
12829
    break;
 
12830
 
 
12831
  case 309:
 
12832
#line 2053 "gram.y"
 
12833
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
12834
    break;
 
12835
 
 
12836
  case 310:
 
12837
#line 2057 "gram.y"
 
12838
    {
 
12839
                                        yyval.node = (Node *) makeString(yyvsp[0].str);
 
12840
                                }
 
12841
    break;
 
12842
 
 
12843
  case 311:
 
12844
#line 2063 "gram.y"
 
12845
    {
 
12846
                                yyval.ival = FKCONSTR_MATCH_FULL;
 
12847
                        }
 
12848
    break;
 
12849
 
 
12850
  case 312:
 
12851
#line 2067 "gram.y"
 
12852
    {
 
12853
                                ereport(ERROR,
 
12854
                                                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
 
12855
                                                 errmsg("MATCH PARTIAL not yet implemented")));
 
12856
                                yyval.ival = FKCONSTR_MATCH_PARTIAL;
 
12857
                        }
 
12858
    break;
 
12859
 
 
12860
  case 313:
 
12861
#line 2074 "gram.y"
 
12862
    {
 
12863
                                yyval.ival = FKCONSTR_MATCH_UNSPECIFIED;
 
12864
                        }
 
12865
    break;
 
12866
 
 
12867
  case 314:
 
12868
#line 2078 "gram.y"
 
12869
    {
 
12870
                                yyval.ival = FKCONSTR_MATCH_UNSPECIFIED;
 
12871
                        }
 
12872
    break;
 
12873
 
 
12874
  case 315:
 
12875
#line 2091 "gram.y"
 
12876
    { yyval.ival = (yyvsp[0].ival << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); }
 
12877
    break;
 
12878
 
 
12879
  case 316:
 
12880
#line 2093 "gram.y"
 
12881
    { yyval.ival = (FKCONSTR_ACTION_NOACTION << 8) | (yyvsp[0].ival & 0xFF); }
 
12882
    break;
 
12883
 
 
12884
  case 317:
 
12885
#line 2095 "gram.y"
 
12886
    { yyval.ival = (yyvsp[-1].ival << 8) | (yyvsp[0].ival & 0xFF); }
 
12887
    break;
 
12888
 
 
12889
  case 318:
 
12890
#line 2097 "gram.y"
 
12891
    { yyval.ival = (yyvsp[0].ival << 8) | (yyvsp[-1].ival & 0xFF); }
 
12892
    break;
 
12893
 
 
12894
  case 319:
 
12895
#line 2099 "gram.y"
 
12896
    { yyval.ival = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF); }
 
12897
    break;
 
12898
 
 
12899
  case 320:
 
12900
#line 2102 "gram.y"
 
12901
    { yyval.ival = yyvsp[0].ival; }
 
12902
    break;
 
12903
 
 
12904
  case 321:
 
12905
#line 2105 "gram.y"
 
12906
    { yyval.ival = yyvsp[0].ival; }
 
12907
    break;
 
12908
 
 
12909
  case 322:
 
12910
#line 2109 "gram.y"
 
12911
    { yyval.ival = FKCONSTR_ACTION_NOACTION; }
 
12912
    break;
 
12913
 
 
12914
  case 323:
 
12915
#line 2110 "gram.y"
 
12916
    { yyval.ival = FKCONSTR_ACTION_RESTRICT; }
 
12917
    break;
 
12918
 
 
12919
  case 324:
 
12920
#line 2111 "gram.y"
 
12921
    { yyval.ival = FKCONSTR_ACTION_CASCADE; }
 
12922
    break;
 
12923
 
 
12924
  case 325:
 
12925
#line 2112 "gram.y"
 
12926
    { yyval.ival = FKCONSTR_ACTION_SETNULL; }
 
12927
    break;
 
12928
 
 
12929
  case 326:
 
12930
#line 2113 "gram.y"
 
12931
    { yyval.ival = FKCONSTR_ACTION_SETDEFAULT; }
 
12932
    break;
 
12933
 
 
12934
  case 327:
 
12935
#line 2116 "gram.y"
 
12936
    { yyval.list = yyvsp[-1].list; }
 
12937
    break;
 
12938
 
 
12939
  case 328:
 
12940
#line 2117 "gram.y"
 
12941
    { yyval.list = NIL; }
 
12942
    break;
 
12943
 
 
12944
  case 329:
 
12945
#line 2121 "gram.y"
 
12946
    { yyval.withoids = MUST_HAVE_OIDS; }
 
12947
    break;
 
12948
 
 
12949
  case 330:
 
12950
#line 2122 "gram.y"
 
12951
    { yyval.withoids = MUST_NOT_HAVE_OIDS; }
 
12952
    break;
 
12953
 
 
12954
  case 331:
 
12955
#line 2123 "gram.y"
 
12956
    { yyval.withoids = DEFAULT_OIDS; }
 
12957
    break;
 
12958
 
 
12959
  case 332:
 
12960
#line 2126 "gram.y"
 
12961
    { yyval.oncommit = ONCOMMIT_DROP; }
 
12962
    break;
 
12963
 
 
12964
  case 333:
 
12965
#line 2127 "gram.y"
 
12966
    { yyval.oncommit = ONCOMMIT_DELETE_ROWS; }
 
12967
    break;
 
12968
 
 
12969
  case 334:
 
12970
#line 2128 "gram.y"
 
12971
    { yyval.oncommit = ONCOMMIT_PRESERVE_ROWS; }
 
12972
    break;
 
12973
 
 
12974
  case 335:
 
12975
#line 2129 "gram.y"
 
12976
    { yyval.oncommit = ONCOMMIT_NOOP; }
 
12977
    break;
 
12978
 
 
12979
  case 336:
 
12980
#line 2132 "gram.y"
 
12981
    { yyval.str = yyvsp[0].str; }
 
12982
    break;
 
12983
 
 
12984
  case 337:
 
12985
#line 2133 "gram.y"
 
12986
    { yyval.str = NULL; }
 
12987
    break;
 
12988
 
 
12989
  case 338:
 
12990
#line 2136 "gram.y"
 
12991
    { yyval.str = yyvsp[0].str; }
 
12992
    break;
 
12993
 
 
12994
  case 339:
 
12995
#line 2137 "gram.y"
 
12996
    { yyval.str = NULL; }
 
12997
    break;
 
12998
 
 
12999
  case 340:
 
13000
#line 2148 "gram.y"
 
13001
    {
 
13002
                                        /*
 
13003
                                         * When the SelectStmt is a set-operation tree, we must
 
13004
                                         * stuff the INTO information into the leftmost component
 
13005
                                         * Select, because that's where analyze.c will expect
 
13006
                                         * to find it.  Similarly, the output column names must
 
13007
                                         * be attached to that Select's target list.
 
13008
                                         */
 
13009
                                        SelectStmt *n = findLeftmostSelect((SelectStmt *) yyvsp[0].node);
 
13010
                                        if (n->into != NULL)
 
13011
                                                ereport(ERROR,
 
13012
                                                                (errcode(ERRCODE_SYNTAX_ERROR),
 
13013
                                                                 errmsg("CREATE TABLE AS may not specify INTO")));
 
13014
                                        yyvsp[-3].range->istemp = yyvsp[-5].boolean;
 
13015
                                        n->into = yyvsp[-3].range;
 
13016
                                        n->intoColNames = yyvsp[-2].list;
 
13017
                                        n->intoHasOids = yyvsp[-1].withoids;
 
13018
                                        yyval.node = yyvsp[0].node;
 
13019
                                }
 
13020
    break;
 
13021
 
 
13022
  case 341:
 
13023
#line 2176 "gram.y"
 
13024
    { yyval.withoids = MUST_HAVE_OIDS; }
 
13025
    break;
 
13026
 
 
13027
  case 342:
 
13028
#line 2177 "gram.y"
 
13029
    { yyval.withoids = MUST_NOT_HAVE_OIDS; }
 
13030
    break;
 
13031
 
 
13032
  case 343:
 
13033
#line 2178 "gram.y"
 
13034
    { yyval.withoids = DEFAULT_OIDS; }
 
13035
    break;
 
13036
 
 
13037
  case 344:
 
13038
#line 2182 "gram.y"
 
13039
    { yyval.list = yyvsp[-1].list; }
 
13040
    break;
 
13041
 
 
13042
  case 345:
 
13043
#line 2183 "gram.y"
 
13044
    { yyval.list = NIL; }
 
13045
    break;
 
13046
 
 
13047
  case 346:
 
13048
#line 2187 "gram.y"
 
13049
    { yyval.list = list_make1(yyvsp[0].node); }
 
13050
    break;
 
13051
 
 
13052
  case 347:
 
13053
#line 2188 "gram.y"
 
13054
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
13055
    break;
 
13056
 
 
13057
  case 348:
 
13058
#line 2193 "gram.y"
 
13059
    {
 
13060
                                        ColumnDef *n = makeNode(ColumnDef);
 
13061
                                        n->colname = yyvsp[0].str;
 
13062
                                        n->typename = NULL;
 
13063
                                        n->inhcount = 0;
 
13064
                                        n->is_local = true;
 
13065
                                        n->is_not_null = false;
 
13066
                                        n->raw_default = NULL;
 
13067
                                        n->cooked_default = NULL;
 
13068
                                        n->constraints = NIL;
 
13069
                                        n->support = NULL;
 
13070
                                        yyval.node = (Node *)n;
 
13071
                                }
 
13072
    break;
 
13073
 
 
13074
  case 349:
 
13075
#line 2219 "gram.y"
 
13076
    {
 
13077
                                        CreateSeqStmt *n = makeNode(CreateSeqStmt);
 
13078
                                        yyvsp[-1].range->istemp = yyvsp[-3].boolean;
 
13079
                                        n->sequence = yyvsp[-1].range;
 
13080
                                        n->options = yyvsp[0].list;
 
13081
                                        yyval.node = (Node *)n;
 
13082
                                }
 
13083
    break;
 
13084
 
 
13085
  case 350:
 
13086
#line 2230 "gram.y"
 
13087
    {
 
13088
                                        AlterSeqStmt *n = makeNode(AlterSeqStmt);
 
13089
                                        n->sequence = yyvsp[-1].range;
 
13090
                                        n->options = yyvsp[0].list;
 
13091
                                        yyval.node = (Node *)n;
 
13092
                                }
 
13093
    break;
 
13094
 
 
13095
  case 351:
 
13096
#line 2238 "gram.y"
 
13097
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
13098
    break;
 
13099
 
 
13100
  case 352:
 
13101
#line 2239 "gram.y"
 
13102
    { yyval.list = NIL; }
 
13103
    break;
 
13104
 
 
13105
  case 353:
 
13106
#line 2243 "gram.y"
 
13107
    {
 
13108
                                        yyval.defelt = makeDefElem("cache", (Node *)yyvsp[0].value);
 
13109
                                }
 
13110
    break;
 
13111
 
 
13112
  case 354:
 
13113
#line 2247 "gram.y"
 
13114
    {
 
13115
                                        yyval.defelt = makeDefElem("cycle", (Node *)makeInteger(TRUE));
 
13116
                                }
 
13117
    break;
 
13118
 
 
13119
  case 355:
 
13120
#line 2251 "gram.y"
 
13121
    {
 
13122
                                        yyval.defelt = makeDefElem("cycle", (Node *)makeInteger(FALSE));
 
13123
                                }
 
13124
    break;
 
13125
 
 
13126
  case 356:
 
13127
#line 2255 "gram.y"
 
13128
    {
 
13129
                                        yyval.defelt = makeDefElem("increment", (Node *)yyvsp[0].value);
 
13130
                                }
 
13131
    break;
 
13132
 
 
13133
  case 357:
 
13134
#line 2259 "gram.y"
 
13135
    {
 
13136
                                        yyval.defelt = makeDefElem("maxvalue", (Node *)yyvsp[0].value);
 
13137
                                }
 
13138
    break;
 
13139
 
 
13140
  case 358:
 
13141
#line 2263 "gram.y"
 
13142
    {
 
13143
                                        yyval.defelt = makeDefElem("minvalue", (Node *)yyvsp[0].value);
 
13144
                                }
 
13145
    break;
 
13146
 
 
13147
  case 359:
 
13148
#line 2267 "gram.y"
 
13149
    {
 
13150
                                        yyval.defelt = makeDefElem("maxvalue", NULL);
 
13151
                                }
 
13152
    break;
 
13153
 
 
13154
  case 360:
 
13155
#line 2271 "gram.y"
 
13156
    {
 
13157
                                        yyval.defelt = makeDefElem("minvalue", NULL);
 
13158
                                }
 
13159
    break;
 
13160
 
 
13161
  case 361:
 
13162
#line 2275 "gram.y"
 
13163
    {
 
13164
                                        yyval.defelt = makeDefElem("start", (Node *)yyvsp[0].value);
 
13165
                                }
 
13166
    break;
 
13167
 
 
13168
  case 362:
 
13169
#line 2279 "gram.y"
 
13170
    {
 
13171
                                        yyval.defelt = makeDefElem("restart", (Node *)yyvsp[0].value);
 
13172
                                }
 
13173
    break;
 
13174
 
 
13175
  case 363:
 
13176
#line 2284 "gram.y"
 
13177
    {}
 
13178
    break;
 
13179
 
 
13180
  case 364:
 
13181
#line 2285 "gram.y"
 
13182
    {}
 
13183
    break;
 
13184
 
 
13185
  case 365:
 
13186
#line 2289 "gram.y"
 
13187
    { yyval.value = yyvsp[0].value; }
 
13188
    break;
 
13189
 
 
13190
  case 366:
 
13191
#line 2290 "gram.y"
 
13192
    { yyval.value = yyvsp[0].value; }
 
13193
    break;
 
13194
 
 
13195
  case 367:
 
13196
#line 2293 "gram.y"
 
13197
    { yyval.value = makeFloat(yyvsp[0].str); }
 
13198
    break;
 
13199
 
 
13200
  case 368:
 
13201
#line 2295 "gram.y"
 
13202
    {
 
13203
                                        yyval.value = makeFloat(yyvsp[0].str);
 
13204
                                        doNegateFloat(yyval.value);
 
13205
                                }
 
13206
    break;
 
13207
 
 
13208
  case 369:
 
13209
#line 2301 "gram.y"
 
13210
    { yyval.value = makeInteger(yyvsp[0].ival); }
 
13211
    break;
 
13212
 
 
13213
  case 370:
 
13214
#line 2314 "gram.y"
 
13215
    {
 
13216
                                CreatePLangStmt *n = makeNode(CreatePLangStmt);
 
13217
                                n->plname = yyvsp[0].str;
 
13218
                                /* parameters are all to be supplied by system */
 
13219
                                n->plhandler = NIL;
 
13220
                                n->plvalidator = NIL;
 
13221
                                n->pltrusted = false;
 
13222
                                yyval.node = (Node *)n;
 
13223
                        }
 
13224
    break;
 
13225
 
 
13226
  case 371:
 
13227
#line 2325 "gram.y"
 
13228
    {
 
13229
                                CreatePLangStmt *n = makeNode(CreatePLangStmt);
 
13230
                                n->plname = yyvsp[-4].str;
 
13231
                                n->plhandler = yyvsp[-2].list;
 
13232
                                n->plvalidator = yyvsp[-1].list;
 
13233
                                n->pltrusted = yyvsp[-7].boolean;
 
13234
                                /* LANCOMPILER is now ignored entirely */
 
13235
                                yyval.node = (Node *)n;
 
13236
                        }
 
13237
    break;
 
13238
 
 
13239
  case 372:
 
13240
#line 2337 "gram.y"
 
13241
    { yyval.boolean = TRUE; }
 
13242
    break;
 
13243
 
 
13244
  case 373:
 
13245
#line 2338 "gram.y"
 
13246
    { yyval.boolean = FALSE; }
 
13247
    break;
 
13248
 
 
13249
  case 374:
 
13250
#line 2346 "gram.y"
 
13251
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
13252
    break;
 
13253
 
 
13254
  case 375:
 
13255
#line 2347 "gram.y"
 
13256
    { yyval.list = lcons(makeString(yyvsp[-1].str), yyvsp[0].list); }
 
13257
    break;
 
13258
 
 
13259
  case 376:
 
13260
#line 2351 "gram.y"
 
13261
    { yyval.list = yyvsp[0].list; }
 
13262
    break;
 
13263
 
 
13264
  case 377:
 
13265
#line 2352 "gram.y"
 
13266
    { yyval.list = NIL; }
 
13267
    break;
 
13268
 
 
13269
  case 378:
 
13270
#line 2356 "gram.y"
 
13271
    { yyval.str = yyvsp[0].str; }
 
13272
    break;
 
13273
 
 
13274
  case 379:
 
13275
#line 2357 "gram.y"
 
13276
    { yyval.str = NULL; }
 
13277
    break;
 
13278
 
 
13279
  case 380:
 
13280
#line 2362 "gram.y"
 
13281
    {
 
13282
                                        DropPLangStmt *n = makeNode(DropPLangStmt);
 
13283
                                        n->plname = yyvsp[-1].str;
 
13284
                                        n->behavior = yyvsp[0].dbehavior;
 
13285
                                        yyval.node = (Node *)n;
 
13286
                                }
 
13287
    break;
 
13288
 
 
13289
  case 381:
 
13290
#line 2371 "gram.y"
 
13291
    {}
 
13292
    break;
 
13293
 
 
13294
  case 382:
 
13295
#line 2372 "gram.y"
 
13296
    {}
 
13297
    break;
 
13298
 
 
13299
  case 383:
 
13300
#line 2383 "gram.y"
 
13301
    {
 
13302
                                        CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt);
 
13303
                                        n->tablespacename = yyvsp[-3].str;
 
13304
                                        n->owner = yyvsp[-2].str;
 
13305
                                        n->location = yyvsp[0].str;
 
13306
                                        yyval.node = (Node *) n;
 
13307
                                }
 
13308
    break;
 
13309
 
 
13310
  case 384:
 
13311
#line 2392 "gram.y"
 
13312
    { yyval.str = yyvsp[0].str; }
 
13313
    break;
 
13314
 
 
13315
  case 385:
 
13316
#line 2393 "gram.y"
 
13317
    { yyval.str = NULL; }
 
13318
    break;
 
13319
 
 
13320
  case 386:
 
13321
#line 2407 "gram.y"
 
13322
    {
 
13323
                                        DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
 
13324
                                        n->tablespacename = yyvsp[0].str;
 
13325
                                        yyval.node = (Node *) n;
 
13326
                                }
 
13327
    break;
 
13328
 
 
13329
  case 387:
 
13330
#line 2426 "gram.y"
 
13331
    {
 
13332
                                        CreateTrigStmt *n = makeNode(CreateTrigStmt);
 
13333
                                        n->trigname = yyvsp[-11].str;
 
13334
                                        n->relation = yyvsp[-7].range;
 
13335
                                        n->funcname = yyvsp[-3].list;
 
13336
                                        n->args = yyvsp[-1].list;
 
13337
                                        n->before = yyvsp[-10].boolean;
 
13338
                                        n->row = yyvsp[-6].boolean;
 
13339
                                        memcpy(n->actions, yyvsp[-9].str, 4);
 
13340
                                        n->isconstraint  = FALSE;
 
13341
                                        n->deferrable    = FALSE;
 
13342
                                        n->initdeferred  = FALSE;
 
13343
                                        n->constrrel = NULL;
 
13344
                                        yyval.node = (Node *)n;
 
13345
                                }
 
13346
    break;
 
13347
 
 
13348
  case 388:
 
13349
#line 2446 "gram.y"
 
13350
    {
 
13351
                                        CreateTrigStmt *n = makeNode(CreateTrigStmt);
 
13352
                                        n->trigname = yyvsp[-15].str;
 
13353
                                        n->relation = yyvsp[-11].range;
 
13354
                                        n->funcname = yyvsp[-3].list;
 
13355
                                        n->args = yyvsp[-1].list;
 
13356
                                        n->before = FALSE;
 
13357
                                        n->row = TRUE;
 
13358
                                        memcpy(n->actions, yyvsp[-13].str, 4);
 
13359
                                        n->isconstraint  = TRUE;
 
13360
                                        n->deferrable = (yyvsp[-9].ival & 1) != 0;
 
13361
                                        n->initdeferred = (yyvsp[-9].ival & 2) != 0;
 
13362
 
 
13363
                                        n->constrrel = yyvsp[-10].range;
 
13364
                                        yyval.node = (Node *)n;
 
13365
                                }
 
13366
    break;
 
13367
 
 
13368
  case 389:
 
13369
#line 2465 "gram.y"
 
13370
    { yyval.boolean = TRUE; }
 
13371
    break;
 
13372
 
 
13373
  case 390:
 
13374
#line 2466 "gram.y"
 
13375
    { yyval.boolean = FALSE; }
 
13376
    break;
 
13377
 
 
13378
  case 391:
 
13379
#line 2471 "gram.y"
 
13380
    {
 
13381
                                        char *e = palloc(4);
 
13382
                                        e[0] = yyvsp[0].chr; e[1] = '\0';
 
13383
                                        yyval.str = e;
 
13384
                                }
 
13385
    break;
 
13386
 
 
13387
  case 392:
 
13388
#line 2477 "gram.y"
 
13389
    {
 
13390
                                        char *e = palloc(4);
 
13391
                                        e[0] = yyvsp[-2].chr; e[1] = yyvsp[0].chr; e[2] = '\0';
 
13392
                                        yyval.str = e;
 
13393
                                }
 
13394
    break;
 
13395
 
 
13396
  case 393:
 
13397
#line 2483 "gram.y"
 
13398
    {
 
13399
                                        char *e = palloc(4);
 
13400
                                        e[0] = yyvsp[-4].chr; e[1] = yyvsp[-2].chr; e[2] = yyvsp[0].chr; e[3] = '\0';
 
13401
                                        yyval.str = e;
 
13402
                                }
 
13403
    break;
 
13404
 
 
13405
  case 394:
 
13406
#line 2491 "gram.y"
 
13407
    { yyval.chr = 'i'; }
 
13408
    break;
 
13409
 
 
13410
  case 395:
 
13411
#line 2492 "gram.y"
 
13412
    { yyval.chr = 'd'; }
 
13413
    break;
 
13414
 
 
13415
  case 396:
 
13416
#line 2493 "gram.y"
 
13417
    { yyval.chr = 'u'; }
 
13418
    break;
 
13419
 
 
13420
  case 397:
 
13421
#line 2498 "gram.y"
 
13422
    {
 
13423
                                        yyval.boolean = yyvsp[0].boolean;
 
13424
                                }
 
13425
    break;
 
13426
 
 
13427
  case 398:
 
13428
#line 2502 "gram.y"
 
13429
    {
 
13430
                                        /*
 
13431
                                         * If ROW/STATEMENT not specified, default to
 
13432
                                         * STATEMENT, per SQL
 
13433
                                         */
 
13434
                                        yyval.boolean = FALSE;
 
13435
                                }
 
13436
    break;
 
13437
 
 
13438
  case 399:
 
13439
#line 2512 "gram.y"
 
13440
    {}
 
13441
    break;
 
13442
 
 
13443
  case 400:
 
13444
#line 2513 "gram.y"
 
13445
    {}
 
13446
    break;
 
13447
 
 
13448
  case 401:
 
13449
#line 2517 "gram.y"
 
13450
    { yyval.boolean = TRUE; }
 
13451
    break;
 
13452
 
 
13453
  case 402:
 
13454
#line 2518 "gram.y"
 
13455
    { yyval.boolean = FALSE; }
 
13456
    break;
 
13457
 
 
13458
  case 403:
 
13459
#line 2522 "gram.y"
 
13460
    { yyval.list = list_make1(yyvsp[0].value); }
 
13461
    break;
 
13462
 
 
13463
  case 404:
 
13464
#line 2523 "gram.y"
 
13465
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].value); }
 
13466
    break;
 
13467
 
 
13468
  case 405:
 
13469
#line 2524 "gram.y"
 
13470
    { yyval.list = NIL; }
 
13471
    break;
 
13472
 
 
13473
  case 406:
 
13474
#line 2529 "gram.y"
 
13475
    {
 
13476
                                        char buf[64];
 
13477
                                        snprintf(buf, sizeof(buf), "%d", yyvsp[0].ival);
 
13478
                                        yyval.value = makeString(pstrdup(buf));
 
13479
                                }
 
13480
    break;
 
13481
 
 
13482
  case 407:
 
13483
#line 2534 "gram.y"
 
13484
    { yyval.value = makeString(yyvsp[0].str); }
 
13485
    break;
 
13486
 
 
13487
  case 408:
 
13488
#line 2535 "gram.y"
 
13489
    { yyval.value = makeString(yyvsp[0].str); }
 
13490
    break;
 
13491
 
 
13492
  case 409:
 
13493
#line 2536 "gram.y"
 
13494
    { yyval.value = makeString(yyvsp[0].str); }
 
13495
    break;
 
13496
 
 
13497
  case 410:
 
13498
#line 2537 "gram.y"
 
13499
    { yyval.value = makeString(yyvsp[0].str); }
 
13500
    break;
 
13501
 
 
13502
  case 411:
 
13503
#line 2538 "gram.y"
 
13504
    { yyval.value = makeString(yyvsp[0].str); }
 
13505
    break;
 
13506
 
 
13507
  case 412:
 
13508
#line 2542 "gram.y"
 
13509
    { yyval.range = yyvsp[0].range; }
 
13510
    break;
 
13511
 
 
13512
  case 413:
 
13513
#line 2543 "gram.y"
 
13514
    { yyval.range = NULL; }
 
13515
    break;
 
13516
 
 
13517
  case 414:
 
13518
#line 2548 "gram.y"
 
13519
    { yyval.ival = yyvsp[0].ival; }
 
13520
    break;
 
13521
 
 
13522
  case 415:
 
13523
#line 2550 "gram.y"
 
13524
    {
 
13525
                                        if (yyvsp[-1].ival == 0 && yyvsp[0].ival != 0)
 
13526
                                                ereport(ERROR,
 
13527
                                                                (errcode(ERRCODE_SYNTAX_ERROR),
 
13528
                                                                 errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE")));
 
13529
                                        yyval.ival = yyvsp[-1].ival | yyvsp[0].ival;
 
13530
                                }
 
13531
    break;
 
13532
 
 
13533
  case 416:
 
13534
#line 2558 "gram.y"
 
13535
    {
 
13536
                                        if (yyvsp[0].ival != 0)
 
13537
                                                yyval.ival = 3;
 
13538
                                        else
 
13539
                                                yyval.ival = 0;
 
13540
                                }
 
13541
    break;
 
13542
 
 
13543
  case 417:
 
13544
#line 2565 "gram.y"
 
13545
    {
 
13546
                                        if (yyvsp[0].ival == 0 && yyvsp[-1].ival != 0)
 
13547
                                                ereport(ERROR,
 
13548
                                                                (errcode(ERRCODE_SYNTAX_ERROR),
 
13549
                                                                 errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE")));
 
13550
                                        yyval.ival = yyvsp[-1].ival | yyvsp[0].ival;
 
13551
                                }
 
13552
    break;
 
13553
 
 
13554
  case 418:
 
13555
#line 2573 "gram.y"
 
13556
    { yyval.ival = 0; }
 
13557
    break;
 
13558
 
 
13559
  case 419:
 
13560
#line 2577 "gram.y"
 
13561
    { yyval.ival = 0; }
 
13562
    break;
 
13563
 
 
13564
  case 420:
 
13565
#line 2578 "gram.y"
 
13566
    { yyval.ival = 1; }
 
13567
    break;
 
13568
 
 
13569
  case 421:
 
13570
#line 2582 "gram.y"
 
13571
    { yyval.ival = 0; }
 
13572
    break;
 
13573
 
 
13574
  case 422:
 
13575
#line 2583 "gram.y"
 
13576
    { yyval.ival = 2; }
 
13577
    break;
 
13578
 
 
13579
  case 423:
 
13580
#line 2589 "gram.y"
 
13581
    {
 
13582
                                        DropPropertyStmt *n = makeNode(DropPropertyStmt);
 
13583
                                        n->relation = yyvsp[-1].range;
 
13584
                                        n->property = yyvsp[-3].str;
 
13585
                                        n->behavior = yyvsp[0].dbehavior;
 
13586
                                        n->removeType = OBJECT_TRIGGER;
 
13587
                                        yyval.node = (Node *) n;
 
13588
                                }
 
13589
    break;
 
13590
 
 
13591
  case 424:
 
13592
#line 2611 "gram.y"
 
13593
    {
 
13594
                                        CreateTrigStmt *n = makeNode(CreateTrigStmt);
 
13595
                                        n->trigname = yyvsp[-5].str;
 
13596
                                        n->args = list_make1(yyvsp[-2].node);
 
13597
                                        n->isconstraint  = TRUE;
 
13598
                                        n->deferrable = (yyvsp[0].ival & 1) != 0;
 
13599
                                        n->initdeferred = (yyvsp[0].ival & 2) != 0;
 
13600
 
 
13601
                                        ereport(ERROR,
 
13602
                                                        (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
 
13603
                                                         errmsg("CREATE ASSERTION is not yet implemented")));
 
13604
 
 
13605
                                        yyval.node = (Node *)n;
 
13606
                                }
 
13607
    break;
 
13608
 
 
13609
  case 425:
 
13610
#line 2629 "gram.y"
 
13611
    {
 
13612
                                        DropPropertyStmt *n = makeNode(DropPropertyStmt);
 
13613
                                        n->relation = NULL;
 
13614
                                        n->property = yyvsp[-1].str;
 
13615
                                        n->behavior = yyvsp[0].dbehavior;
 
13616
                                        n->removeType = OBJECT_TRIGGER; /* XXX */
 
13617
                                        ereport(ERROR,
 
13618
                                                        (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
 
13619
                                                         errmsg("DROP ASSERTION is not yet implemented")));
 
13620
                                        yyval.node = (Node *) n;
 
13621
                                }
 
13622
    break;
 
13623
 
 
13624
  case 426:
 
13625
#line 2652 "gram.y"
 
13626
    {
 
13627
                                        DefineStmt *n = makeNode(DefineStmt);
 
13628
                                        n->kind = OBJECT_AGGREGATE;
 
13629
                                        n->defnames = yyvsp[-1].list;
 
13630
                                        n->definition = yyvsp[0].list;
 
13631
                                        yyval.node = (Node *)n;
 
13632
                                }
 
13633
    break;
 
13634
 
 
13635
  case 427:
 
13636
#line 2660 "gram.y"
 
13637
    {
 
13638
                                        DefineStmt *n = makeNode(DefineStmt);
 
13639
                                        n->kind = OBJECT_OPERATOR;
 
13640
                                        n->defnames = yyvsp[-1].list;
 
13641
                                        n->definition = yyvsp[0].list;
 
13642
                                        yyval.node = (Node *)n;
 
13643
                                }
 
13644
    break;
 
13645
 
 
13646
  case 428:
 
13647
#line 2668 "gram.y"
 
13648
    {
 
13649
                                        DefineStmt *n = makeNode(DefineStmt);
 
13650
                                        n->kind = OBJECT_TYPE;
 
13651
                                        n->defnames = yyvsp[-1].list;
 
13652
                                        n->definition = yyvsp[0].list;
 
13653
                                        yyval.node = (Node *)n;
 
13654
                                }
 
13655
    break;
 
13656
 
 
13657
  case 429:
 
13658
#line 2676 "gram.y"
 
13659
    {
 
13660
                                        CompositeTypeStmt *n = makeNode(CompositeTypeStmt);
 
13661
                                        RangeVar *r = makeNode(RangeVar);
 
13662
 
 
13663
                                        /* can't use qualified_name, sigh */
 
13664
                                        switch (list_length(yyvsp[-4].list))
 
13665
                                        {
 
13666
                                                case 1:
 
13667
                                                        r->catalogname = NULL;
 
13668
                                                        r->schemaname = NULL;
 
13669
                                                        r->relname = strVal(linitial(yyvsp[-4].list));
 
13670
                                                        break;
 
13671
                                                case 2:
 
13672
                                                        r->catalogname = NULL;
 
13673
                                                        r->schemaname = strVal(linitial(yyvsp[-4].list));
 
13674
                                                        r->relname = strVal(lsecond(yyvsp[-4].list));
 
13675
                                                        break;
 
13676
                                                case 3:
 
13677
                                                        r->catalogname = strVal(linitial(yyvsp[-4].list));
 
13678
                                                        r->schemaname = strVal(lsecond(yyvsp[-4].list));
 
13679
                                                        r->relname = strVal(lthird(yyvsp[-4].list));
 
13680
                                                        break;
 
13681
                                                default:
 
13682
                                                        ereport(ERROR,
 
13683
                                                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
13684
                                                                         errmsg("improper qualified name (too many dotted names): %s",
 
13685
                                                                                        NameListToString(yyvsp[-4].list))));
 
13686
                                                        break;
 
13687
                                        }
 
13688
                                        n->typevar = r;
 
13689
                                        n->coldeflist = yyvsp[-1].list;
 
13690
                                        yyval.node = (Node *)n;
 
13691
                                }
 
13692
    break;
 
13693
 
 
13694
  case 430:
 
13695
#line 2711 "gram.y"
 
13696
    { yyval.list = yyvsp[-1].list; }
 
13697
    break;
 
13698
 
 
13699
  case 431:
 
13700
#line 2714 "gram.y"
 
13701
    { yyval.list = list_make1(yyvsp[0].defelt); }
 
13702
    break;
 
13703
 
 
13704
  case 432:
 
13705
#line 2715 "gram.y"
 
13706
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); }
 
13707
    break;
 
13708
 
 
13709
  case 433:
 
13710
#line 2719 "gram.y"
 
13711
    {
 
13712
                                        yyval.defelt = makeDefElem(yyvsp[-2].str, (Node *)yyvsp[0].node);
 
13713
                                }
 
13714
    break;
 
13715
 
 
13716
  case 434:
 
13717
#line 2723 "gram.y"
 
13718
    {
 
13719
                                        yyval.defelt = makeDefElem(yyvsp[0].str, NULL);
 
13720
                                }
 
13721
    break;
 
13722
 
 
13723
  case 435:
 
13724
#line 2729 "gram.y"
 
13725
    { yyval.node = (Node *)yyvsp[0].typnam; }
 
13726
    break;
 
13727
 
 
13728
  case 436:
 
13729
#line 2730 "gram.y"
 
13730
    { yyval.node = (Node *)yyvsp[0].list; }
 
13731
    break;
 
13732
 
 
13733
  case 437:
 
13734
#line 2731 "gram.y"
 
13735
    { yyval.node = (Node *)yyvsp[0].value; }
 
13736
    break;
 
13737
 
 
13738
  case 438:
 
13739
#line 2732 "gram.y"
 
13740
    { yyval.node = (Node *)makeString(yyvsp[0].str); }
 
13741
    break;
 
13742
 
 
13743
  case 439:
 
13744
#line 2747 "gram.y"
 
13745
    {
 
13746
                                        CreateOpClassStmt *n = makeNode(CreateOpClassStmt);
 
13747
                                        n->opclassname = yyvsp[-8].list;
 
13748
                                        n->isDefault = yyvsp[-7].boolean;
 
13749
                                        n->datatype = yyvsp[-4].typnam;
 
13750
                                        n->amname = yyvsp[-2].str;
 
13751
                                        n->items = yyvsp[0].list;
 
13752
                                        yyval.node = (Node *) n;
 
13753
                                }
 
13754
    break;
 
13755
 
 
13756
  case 440:
 
13757
#line 2759 "gram.y"
 
13758
    { yyval.list = list_make1(yyvsp[0].node); }
 
13759
    break;
 
13760
 
 
13761
  case 441:
 
13762
#line 2760 "gram.y"
 
13763
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
13764
    break;
 
13765
 
 
13766
  case 442:
 
13767
#line 2765 "gram.y"
 
13768
    {
 
13769
                                        CreateOpClassItem *n = makeNode(CreateOpClassItem);
 
13770
                                        n->itemtype = OPCLASS_ITEM_OPERATOR;
 
13771
                                        n->name = yyvsp[-1].list;
 
13772
                                        n->args = NIL;
 
13773
                                        n->number = yyvsp[-2].ival;
 
13774
                                        n->recheck = yyvsp[0].boolean;
 
13775
                                        yyval.node = (Node *) n;
 
13776
                                }
 
13777
    break;
 
13778
 
 
13779
  case 443:
 
13780
#line 2775 "gram.y"
 
13781
    {
 
13782
                                        CreateOpClassItem *n = makeNode(CreateOpClassItem);
 
13783
                                        n->itemtype = OPCLASS_ITEM_OPERATOR;
 
13784
                                        n->name = yyvsp[-4].list;
 
13785
                                        n->args = yyvsp[-2].list;
 
13786
                                        n->number = yyvsp[-5].ival;
 
13787
                                        n->recheck = yyvsp[0].boolean;
 
13788
                                        yyval.node = (Node *) n;
 
13789
                                }
 
13790
    break;
 
13791
 
 
13792
  case 444:
 
13793
#line 2785 "gram.y"
 
13794
    {
 
13795
                                        CreateOpClassItem *n = makeNode(CreateOpClassItem);
 
13796
                                        n->itemtype = OPCLASS_ITEM_FUNCTION;
 
13797
                                        n->name = yyvsp[-1].list;
 
13798
                                        n->args = extractArgTypes(yyvsp[0].list);
 
13799
                                        n->number = yyvsp[-2].ival;
 
13800
                                        yyval.node = (Node *) n;
 
13801
                                }
 
13802
    break;
 
13803
 
 
13804
  case 445:
 
13805
#line 2794 "gram.y"
 
13806
    {
 
13807
                                        CreateOpClassItem *n = makeNode(CreateOpClassItem);
 
13808
                                        n->itemtype = OPCLASS_ITEM_STORAGETYPE;
 
13809
                                        n->storedtype = yyvsp[0].typnam;
 
13810
                                        yyval.node = (Node *) n;
 
13811
                                }
 
13812
    break;
 
13813
 
 
13814
  case 446:
 
13815
#line 2802 "gram.y"
 
13816
    { yyval.boolean = TRUE; }
 
13817
    break;
 
13818
 
 
13819
  case 447:
 
13820
#line 2803 "gram.y"
 
13821
    { yyval.boolean = FALSE; }
 
13822
    break;
 
13823
 
 
13824
  case 448:
 
13825
#line 2806 "gram.y"
 
13826
    { yyval.boolean = TRUE; }
 
13827
    break;
 
13828
 
 
13829
  case 449:
 
13830
#line 2807 "gram.y"
 
13831
    { yyval.boolean = FALSE; }
 
13832
    break;
 
13833
 
 
13834
  case 450:
 
13835
#line 2813 "gram.y"
 
13836
    {
 
13837
                                        RemoveOpClassStmt *n = makeNode(RemoveOpClassStmt);
 
13838
                                        n->opclassname = yyvsp[-3].list;
 
13839
                                        n->amname = yyvsp[-1].str;
 
13840
                                        n->behavior = yyvsp[0].dbehavior;
 
13841
                                        yyval.node = (Node *) n;
 
13842
                                }
 
13843
    break;
 
13844
 
 
13845
  case 451:
 
13846
#line 2832 "gram.y"
 
13847
    {
 
13848
                                        DropStmt *n = makeNode(DropStmt);
 
13849
                                        n->removeType = yyvsp[-2].objtype;
 
13850
                                        n->objects = yyvsp[-1].list;
 
13851
                                        n->behavior = yyvsp[0].dbehavior;
 
13852
                                        yyval.node = (Node *)n;
 
13853
                                }
 
13854
    break;
 
13855
 
 
13856
  case 452:
 
13857
#line 2841 "gram.y"
 
13858
    { yyval.objtype = OBJECT_TABLE; }
 
13859
    break;
 
13860
 
 
13861
  case 453:
 
13862
#line 2842 "gram.y"
 
13863
    { yyval.objtype = OBJECT_SEQUENCE; }
 
13864
    break;
 
13865
 
 
13866
  case 454:
 
13867
#line 2843 "gram.y"
 
13868
    { yyval.objtype = OBJECT_VIEW; }
 
13869
    break;
 
13870
 
 
13871
  case 455:
 
13872
#line 2844 "gram.y"
 
13873
    { yyval.objtype = OBJECT_INDEX; }
 
13874
    break;
 
13875
 
 
13876
  case 456:
 
13877
#line 2845 "gram.y"
 
13878
    { yyval.objtype = OBJECT_TYPE; }
 
13879
    break;
 
13880
 
 
13881
  case 457:
 
13882
#line 2846 "gram.y"
 
13883
    { yyval.objtype = OBJECT_DOMAIN; }
 
13884
    break;
 
13885
 
 
13886
  case 458:
 
13887
#line 2847 "gram.y"
 
13888
    { yyval.objtype = OBJECT_CONVERSION; }
 
13889
    break;
 
13890
 
 
13891
  case 459:
 
13892
#line 2848 "gram.y"
 
13893
    { yyval.objtype = OBJECT_SCHEMA; }
 
13894
    break;
 
13895
 
 
13896
  case 460:
 
13897
#line 2852 "gram.y"
 
13898
    { yyval.list = list_make1(yyvsp[0].list); }
 
13899
    break;
 
13900
 
 
13901
  case 461:
 
13902
#line 2853 "gram.y"
 
13903
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].list); }
 
13904
    break;
 
13905
 
 
13906
  case 462:
 
13907
#line 2856 "gram.y"
 
13908
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
13909
    break;
 
13910
 
 
13911
  case 463:
 
13912
#line 2857 "gram.y"
 
13913
    { yyval.list = lcons(makeString(yyvsp[-1].str), yyvsp[0].list); }
 
13914
    break;
 
13915
 
 
13916
  case 464:
 
13917
#line 2861 "gram.y"
 
13918
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
13919
    break;
 
13920
 
 
13921
  case 465:
 
13922
#line 2863 "gram.y"
 
13923
    { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); }
 
13924
    break;
 
13925
 
 
13926
  case 466:
 
13927
#line 2876 "gram.y"
 
13928
    {
 
13929
                                        TruncateStmt *n = makeNode(TruncateStmt);
 
13930
                                        n->relations = yyvsp[0].list;
 
13931
                                        yyval.node = (Node *)n;
 
13932
                                }
 
13933
    break;
 
13934
 
 
13935
  case 467:
 
13936
#line 2902 "gram.y"
 
13937
    {
 
13938
                                        CommentStmt *n = makeNode(CommentStmt);
 
13939
                                        n->objtype = yyvsp[-3].objtype;
 
13940
                                        n->objname = yyvsp[-2].list;
 
13941
                                        n->objargs = NIL;
 
13942
                                        n->comment = yyvsp[0].str;
 
13943
                                        yyval.node = (Node *) n;
 
13944
                                }
 
13945
    break;
 
13946
 
 
13947
  case 468:
 
13948
#line 2912 "gram.y"
 
13949
    {
 
13950
                                        CommentStmt *n = makeNode(CommentStmt);
 
13951
                                        n->objtype = OBJECT_AGGREGATE;
 
13952
                                        n->objname = yyvsp[-5].list;
 
13953
                                        n->objargs = list_make1(yyvsp[-3].typnam);
 
13954
                                        n->comment = yyvsp[0].str;
 
13955
                                        yyval.node = (Node *) n;
 
13956
                                }
 
13957
    break;
 
13958
 
 
13959
  case 469:
 
13960
#line 2921 "gram.y"
 
13961
    {
 
13962
                                        CommentStmt *n = makeNode(CommentStmt);
 
13963
                                        n->objtype = OBJECT_FUNCTION;
 
13964
                                        n->objname = yyvsp[-3].list;
 
13965
                                        n->objargs = extractArgTypes(yyvsp[-2].list);
 
13966
                                        n->comment = yyvsp[0].str;
 
13967
                                        yyval.node = (Node *) n;
 
13968
                                }
 
13969
    break;
 
13970
 
 
13971
  case 470:
 
13972
#line 2931 "gram.y"
 
13973
    {
 
13974
                                        CommentStmt *n = makeNode(CommentStmt);
 
13975
                                        n->objtype = OBJECT_OPERATOR;
 
13976
                                        n->objname = yyvsp[-5].list;
 
13977
                                        n->objargs = yyvsp[-3].list;
 
13978
                                        n->comment = yyvsp[0].str;
 
13979
                                        yyval.node = (Node *) n;
 
13980
                                }
 
13981
    break;
 
13982
 
 
13983
  case 471:
 
13984
#line 2940 "gram.y"
 
13985
    {
 
13986
                                        CommentStmt *n = makeNode(CommentStmt);
 
13987
                                        n->objtype = OBJECT_CONSTRAINT;
 
13988
                                        n->objname = lappend(yyvsp[-2].list, makeString(yyvsp[-4].str));
 
13989
                                        n->objargs = NIL;
 
13990
                                        n->comment = yyvsp[0].str;
 
13991
                                        yyval.node = (Node *) n;
 
13992
                                }
 
13993
    break;
 
13994
 
 
13995
  case 472:
 
13996
#line 2949 "gram.y"
 
13997
    {
 
13998
                                        CommentStmt *n = makeNode(CommentStmt);
 
13999
                                        n->objtype = OBJECT_RULE;
 
14000
                                        n->objname = lappend(yyvsp[-2].list, makeString(yyvsp[-4].str));
 
14001
                                        n->objargs = NIL;
 
14002
                                        n->comment = yyvsp[0].str;
 
14003
                                        yyval.node = (Node *) n;
 
14004
                                }
 
14005
    break;
 
14006
 
 
14007
  case 473:
 
14008
#line 2958 "gram.y"
 
14009
    {
 
14010
                                        /* Obsolete syntax supported for awhile for compatibility */
 
14011
                                        CommentStmt *n = makeNode(CommentStmt);
 
14012
                                        n->objtype = OBJECT_RULE;
 
14013
                                        n->objname = list_make1(makeString(yyvsp[-2].str));
 
14014
                                        n->objargs = NIL;
 
14015
                                        n->comment = yyvsp[0].str;
 
14016
                                        yyval.node = (Node *) n;
 
14017
                                }
 
14018
    break;
 
14019
 
 
14020
  case 474:
 
14021
#line 2968 "gram.y"
 
14022
    {
 
14023
                                        CommentStmt *n = makeNode(CommentStmt);
 
14024
                                        n->objtype = OBJECT_TRIGGER;
 
14025
                                        n->objname = lappend(yyvsp[-2].list, makeString(yyvsp[-4].str));
 
14026
                                        n->objargs = NIL;
 
14027
                                        n->comment = yyvsp[0].str;
 
14028
                                        yyval.node = (Node *) n;
 
14029
                                }
 
14030
    break;
 
14031
 
 
14032
  case 475:
 
14033
#line 2977 "gram.y"
 
14034
    {
 
14035
                                        CommentStmt *n = makeNode(CommentStmt);
 
14036
                                        n->objtype = OBJECT_OPCLASS;
 
14037
                                        n->objname = yyvsp[-4].list;
 
14038
                                        n->objargs = list_make1(makeString(yyvsp[-2].str));
 
14039
                                        n->comment = yyvsp[0].str;
 
14040
                                        yyval.node = (Node *) n;
 
14041
                                }
 
14042
    break;
 
14043
 
 
14044
  case 476:
 
14045
#line 2986 "gram.y"
 
14046
    {
 
14047
                                        CommentStmt *n = makeNode(CommentStmt);
 
14048
                                        n->objtype = OBJECT_LARGEOBJECT;
 
14049
                                        n->objname = list_make1(yyvsp[-2].value);
 
14050
                                        n->objargs = NIL;
 
14051
                                        n->comment = yyvsp[0].str;
 
14052
                                        yyval.node = (Node *) n;
 
14053
                                }
 
14054
    break;
 
14055
 
 
14056
  case 477:
 
14057
#line 2995 "gram.y"
 
14058
    {
 
14059
                                        CommentStmt *n = makeNode(CommentStmt);
 
14060
                                        n->objtype = OBJECT_CAST;
 
14061
                                        n->objname = list_make1(yyvsp[-5].typnam);
 
14062
                                        n->objargs = list_make1(yyvsp[-3].typnam);
 
14063
                                        n->comment = yyvsp[0].str;
 
14064
                                        yyval.node = (Node *) n;
 
14065
                                }
 
14066
    break;
 
14067
 
 
14068
  case 478:
 
14069
#line 3004 "gram.y"
 
14070
    {
 
14071
                                        CommentStmt *n = makeNode(CommentStmt);
 
14072
                                        n->objtype = OBJECT_LANGUAGE;
 
14073
                                        n->objname = yyvsp[-2].list;
 
14074
                                        n->objargs = NIL;
 
14075
                                        n->comment = yyvsp[0].str;
 
14076
                                        yyval.node = (Node *) n;
 
14077
                                }
 
14078
    break;
 
14079
 
 
14080
  case 479:
 
14081
#line 3015 "gram.y"
 
14082
    { yyval.objtype = OBJECT_COLUMN; }
 
14083
    break;
 
14084
 
 
14085
  case 480:
 
14086
#line 3016 "gram.y"
 
14087
    { yyval.objtype = OBJECT_DATABASE; }
 
14088
    break;
 
14089
 
 
14090
  case 481:
 
14091
#line 3017 "gram.y"
 
14092
    { yyval.objtype = OBJECT_SCHEMA; }
 
14093
    break;
 
14094
 
 
14095
  case 482:
 
14096
#line 3018 "gram.y"
 
14097
    { yyval.objtype = OBJECT_INDEX; }
 
14098
    break;
 
14099
 
 
14100
  case 483:
 
14101
#line 3019 "gram.y"
 
14102
    { yyval.objtype = OBJECT_SEQUENCE; }
 
14103
    break;
 
14104
 
 
14105
  case 484:
 
14106
#line 3020 "gram.y"
 
14107
    { yyval.objtype = OBJECT_TABLE; }
 
14108
    break;
 
14109
 
 
14110
  case 485:
 
14111
#line 3021 "gram.y"
 
14112
    { yyval.objtype = OBJECT_TYPE; }
 
14113
    break;
 
14114
 
 
14115
  case 486:
 
14116
#line 3022 "gram.y"
 
14117
    { yyval.objtype = OBJECT_TYPE; }
 
14118
    break;
 
14119
 
 
14120
  case 487:
 
14121
#line 3023 "gram.y"
 
14122
    { yyval.objtype = OBJECT_VIEW; }
 
14123
    break;
 
14124
 
 
14125
  case 488:
 
14126
#line 3024 "gram.y"
 
14127
    { yyval.objtype = OBJECT_CONVERSION; }
 
14128
    break;
 
14129
 
 
14130
  case 489:
 
14131
#line 3028 "gram.y"
 
14132
    { yyval.str = yyvsp[0].str; }
 
14133
    break;
 
14134
 
 
14135
  case 490:
 
14136
#line 3029 "gram.y"
 
14137
    { yyval.str = NULL; }
 
14138
    break;
 
14139
 
 
14140
  case 491:
 
14141
#line 3040 "gram.y"
 
14142
    {
 
14143
                                        FetchStmt *n = (FetchStmt *) yyvsp[-2].node;
 
14144
                                        n->portalname = yyvsp[0].str;
 
14145
                                        n->ismove = FALSE;
 
14146
                                        yyval.node = (Node *)n;
 
14147
                                }
 
14148
    break;
 
14149
 
 
14150
  case 492:
 
14151
#line 3047 "gram.y"
 
14152
    {
 
14153
                                        FetchStmt *n = makeNode(FetchStmt);
 
14154
                                        n->direction = FETCH_FORWARD;
 
14155
                                        n->howMany = 1;
 
14156
                                        n->portalname = yyvsp[0].str;
 
14157
                                        n->ismove = FALSE;
 
14158
                                        yyval.node = (Node *)n;
 
14159
                                }
 
14160
    break;
 
14161
 
 
14162
  case 493:
 
14163
#line 3056 "gram.y"
 
14164
    {
 
14165
                                        FetchStmt *n = (FetchStmt *) yyvsp[-2].node;
 
14166
                                        n->portalname = yyvsp[0].str;
 
14167
                                        n->ismove = TRUE;
 
14168
                                        yyval.node = (Node *)n;
 
14169
                                }
 
14170
    break;
 
14171
 
 
14172
  case 494:
 
14173
#line 3063 "gram.y"
 
14174
    {
 
14175
                                        FetchStmt *n = makeNode(FetchStmt);
 
14176
                                        n->direction = FETCH_FORWARD;
 
14177
                                        n->howMany = 1;
 
14178
                                        n->portalname = yyvsp[0].str;
 
14179
                                        n->ismove = TRUE;
 
14180
                                        yyval.node = (Node *)n;
 
14181
                                }
 
14182
    break;
 
14183
 
 
14184
  case 495:
 
14185
#line 3075 "gram.y"
 
14186
    {
 
14187
                                        FetchStmt *n = makeNode(FetchStmt);
 
14188
                                        n->direction = FETCH_FORWARD;
 
14189
                                        n->howMany = 1;
 
14190
                                        yyval.node = (Node *)n;
 
14191
                                }
 
14192
    break;
 
14193
 
 
14194
  case 496:
 
14195
#line 3082 "gram.y"
 
14196
    {
 
14197
                                        FetchStmt *n = makeNode(FetchStmt);
 
14198
                                        n->direction = FETCH_FORWARD;
 
14199
                                        n->howMany = 1;
 
14200
                                        yyval.node = (Node *)n;
 
14201
                                }
 
14202
    break;
 
14203
 
 
14204
  case 497:
 
14205
#line 3089 "gram.y"
 
14206
    {
 
14207
                                        FetchStmt *n = makeNode(FetchStmt);
 
14208
                                        n->direction = FETCH_BACKWARD;
 
14209
                                        n->howMany = 1;
 
14210
                                        yyval.node = (Node *)n;
 
14211
                                }
 
14212
    break;
 
14213
 
 
14214
  case 498:
 
14215
#line 3096 "gram.y"
 
14216
    {
 
14217
                                        FetchStmt *n = makeNode(FetchStmt);
 
14218
                                        n->direction = FETCH_ABSOLUTE;
 
14219
                                        n->howMany = 1;
 
14220
                                        yyval.node = (Node *)n;
 
14221
                                }
 
14222
    break;
 
14223
 
 
14224
  case 499:
 
14225
#line 3103 "gram.y"
 
14226
    {
 
14227
                                        FetchStmt *n = makeNode(FetchStmt);
 
14228
                                        n->direction = FETCH_ABSOLUTE;
 
14229
                                        n->howMany = -1;
 
14230
                                        yyval.node = (Node *)n;
 
14231
                                }
 
14232
    break;
 
14233
 
 
14234
  case 500:
 
14235
#line 3110 "gram.y"
 
14236
    {
 
14237
                                        FetchStmt *n = makeNode(FetchStmt);
 
14238
                                        n->direction = FETCH_ABSOLUTE;
 
14239
                                        n->howMany = yyvsp[0].ival;
 
14240
                                        yyval.node = (Node *)n;
 
14241
                                }
 
14242
    break;
 
14243
 
 
14244
  case 501:
 
14245
#line 3117 "gram.y"
 
14246
    {
 
14247
                                        FetchStmt *n = makeNode(FetchStmt);
 
14248
                                        n->direction = FETCH_RELATIVE;
 
14249
                                        n->howMany = yyvsp[0].ival;
 
14250
                                        yyval.node = (Node *)n;
 
14251
                                }
 
14252
    break;
 
14253
 
 
14254
  case 502:
 
14255
#line 3124 "gram.y"
 
14256
    {
 
14257
                                        FetchStmt *n = makeNode(FetchStmt);
 
14258
                                        n->direction = FETCH_FORWARD;
 
14259
                                        n->howMany = yyvsp[0].ival;
 
14260
                                        yyval.node = (Node *)n;
 
14261
                                }
 
14262
    break;
 
14263
 
 
14264
  case 503:
 
14265
#line 3131 "gram.y"
 
14266
    {
 
14267
                                        FetchStmt *n = makeNode(FetchStmt);
 
14268
                                        n->direction = FETCH_FORWARD;
 
14269
                                        n->howMany = FETCH_ALL;
 
14270
                                        yyval.node = (Node *)n;
 
14271
                                }
 
14272
    break;
 
14273
 
 
14274
  case 504:
 
14275
#line 3138 "gram.y"
 
14276
    {
 
14277
                                        FetchStmt *n = makeNode(FetchStmt);
 
14278
                                        n->direction = FETCH_FORWARD;
 
14279
                                        n->howMany = 1;
 
14280
                                        yyval.node = (Node *)n;
 
14281
                                }
 
14282
    break;
 
14283
 
 
14284
  case 505:
 
14285
#line 3145 "gram.y"
 
14286
    {
 
14287
                                        FetchStmt *n = makeNode(FetchStmt);
 
14288
                                        n->direction = FETCH_FORWARD;
 
14289
                                        n->howMany = yyvsp[0].ival;
 
14290
                                        yyval.node = (Node *)n;
 
14291
                                }
 
14292
    break;
 
14293
 
 
14294
  case 506:
 
14295
#line 3152 "gram.y"
 
14296
    {
 
14297
                                        FetchStmt *n = makeNode(FetchStmt);
 
14298
                                        n->direction = FETCH_FORWARD;
 
14299
                                        n->howMany = FETCH_ALL;
 
14300
                                        yyval.node = (Node *)n;
 
14301
                                }
 
14302
    break;
 
14303
 
 
14304
  case 507:
 
14305
#line 3159 "gram.y"
 
14306
    {
 
14307
                                        FetchStmt *n = makeNode(FetchStmt);
 
14308
                                        n->direction = FETCH_BACKWARD;
 
14309
                                        n->howMany = 1;
 
14310
                                        yyval.node = (Node *)n;
 
14311
                                }
 
14312
    break;
 
14313
 
 
14314
  case 508:
 
14315
#line 3166 "gram.y"
 
14316
    {
 
14317
                                        FetchStmt *n = makeNode(FetchStmt);
 
14318
                                        n->direction = FETCH_BACKWARD;
 
14319
                                        n->howMany = yyvsp[0].ival;
 
14320
                                        yyval.node = (Node *)n;
 
14321
                                }
 
14322
    break;
 
14323
 
 
14324
  case 509:
 
14325
#line 3173 "gram.y"
 
14326
    {
 
14327
                                        FetchStmt *n = makeNode(FetchStmt);
 
14328
                                        n->direction = FETCH_BACKWARD;
 
14329
                                        n->howMany = FETCH_ALL;
 
14330
                                        yyval.node = (Node *)n;
 
14331
                                }
 
14332
    break;
 
14333
 
 
14334
  case 510:
 
14335
#line 3181 "gram.y"
 
14336
    {}
 
14337
    break;
 
14338
 
 
14339
  case 511:
 
14340
#line 3182 "gram.y"
 
14341
    {}
 
14342
    break;
 
14343
 
 
14344
  case 512:
 
14345
#line 3194 "gram.y"
 
14346
    {
 
14347
                                        GrantStmt *n = makeNode(GrantStmt);
 
14348
                                        n->is_grant = true;
 
14349
                                        n->privileges = yyvsp[-5].list;
 
14350
                                        n->objtype = (yyvsp[-3].privtarget)->objtype;
 
14351
                                        n->objects = (yyvsp[-3].privtarget)->objs;
 
14352
                                        n->grantees = yyvsp[-1].list;
 
14353
                                        n->grant_option = yyvsp[0].boolean;
 
14354
                                        yyval.node = (Node*)n;
 
14355
                                }
 
14356
    break;
 
14357
 
 
14358
  case 513:
 
14359
#line 3209 "gram.y"
 
14360
    {
 
14361
                                        GrantStmt *n = makeNode(GrantStmt);
 
14362
                                        n->is_grant = false;
 
14363
                                        n->grant_option = false;
 
14364
                                        n->privileges = yyvsp[-5].list;
 
14365
                                        n->objtype = (yyvsp[-3].privtarget)->objtype;
 
14366
                                        n->objects = (yyvsp[-3].privtarget)->objs;
 
14367
                                        n->grantees = yyvsp[-1].list;
 
14368
                                        n->behavior = yyvsp[0].dbehavior;
 
14369
                                        yyval.node = (Node *)n;
 
14370
                                }
 
14371
    break;
 
14372
 
 
14373
  case 514:
 
14374
#line 3222 "gram.y"
 
14375
    {
 
14376
                                        GrantStmt *n = makeNode(GrantStmt);
 
14377
                                        n->is_grant = false;
 
14378
                                        n->grant_option = true;
 
14379
                                        n->privileges = yyvsp[-5].list;
 
14380
                                        n->objtype = (yyvsp[-3].privtarget)->objtype;
 
14381
                                        n->objects = (yyvsp[-3].privtarget)->objs;
 
14382
                                        n->grantees = yyvsp[-1].list;
 
14383
                                        n->behavior = yyvsp[0].dbehavior;
 
14384
                                        yyval.node = (Node *)n;
 
14385
                                }
 
14386
    break;
 
14387
 
 
14388
  case 515:
 
14389
#line 3247 "gram.y"
 
14390
    { yyval.list = yyvsp[0].list; }
 
14391
    break;
 
14392
 
 
14393
  case 516:
 
14394
#line 3249 "gram.y"
 
14395
    { yyval.list = NIL; }
 
14396
    break;
 
14397
 
 
14398
  case 517:
 
14399
#line 3251 "gram.y"
 
14400
    { yyval.list = NIL; }
 
14401
    break;
 
14402
 
 
14403
  case 518:
 
14404
#line 3255 "gram.y"
 
14405
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
14406
    break;
 
14407
 
 
14408
  case 519:
 
14409
#line 3257 "gram.y"
 
14410
    { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); }
 
14411
    break;
 
14412
 
 
14413
  case 520:
 
14414
#line 3260 "gram.y"
 
14415
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
14416
    break;
 
14417
 
 
14418
  case 521:
 
14419
#line 3261 "gram.y"
 
14420
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
14421
    break;
 
14422
 
 
14423
  case 522:
 
14424
#line 3262 "gram.y"
 
14425
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
14426
    break;
 
14427
 
 
14428
  case 523:
 
14429
#line 3263 "gram.y"
 
14430
    { yyval.str = yyvsp[0].str; }
 
14431
    break;
 
14432
 
 
14433
  case 524:
 
14434
#line 3272 "gram.y"
 
14435
    {
 
14436
                                        PrivTarget *n = makeNode(PrivTarget);
 
14437
                                        n->objtype = ACL_OBJECT_RELATION;
 
14438
                                        n->objs = yyvsp[0].list;
 
14439
                                        yyval.privtarget = n;
 
14440
                                }
 
14441
    break;
 
14442
 
 
14443
  case 525:
 
14444
#line 3279 "gram.y"
 
14445
    {
 
14446
                                        PrivTarget *n = makeNode(PrivTarget);
 
14447
                                        n->objtype = ACL_OBJECT_RELATION;
 
14448
                                        n->objs = yyvsp[0].list;
 
14449
                                        yyval.privtarget = n;
 
14450
                                }
 
14451
    break;
 
14452
 
 
14453
  case 526:
 
14454
#line 3286 "gram.y"
 
14455
    {
 
14456
                                        PrivTarget *n = makeNode(PrivTarget);
 
14457
                                        n->objtype = ACL_OBJECT_FUNCTION;
 
14458
                                        n->objs = yyvsp[0].list;
 
14459
                                        yyval.privtarget = n;
 
14460
                                }
 
14461
    break;
 
14462
 
 
14463
  case 527:
 
14464
#line 3293 "gram.y"
 
14465
    {
 
14466
                                        PrivTarget *n = makeNode(PrivTarget);
 
14467
                                        n->objtype = ACL_OBJECT_DATABASE;
 
14468
                                        n->objs = yyvsp[0].list;
 
14469
                                        yyval.privtarget = n;
 
14470
                                }
 
14471
    break;
 
14472
 
 
14473
  case 528:
 
14474
#line 3300 "gram.y"
 
14475
    {
 
14476
                                        PrivTarget *n = makeNode(PrivTarget);
 
14477
                                        n->objtype = ACL_OBJECT_LANGUAGE;
 
14478
                                        n->objs = yyvsp[0].list;
 
14479
                                        yyval.privtarget = n;
 
14480
                                }
 
14481
    break;
 
14482
 
 
14483
  case 529:
 
14484
#line 3307 "gram.y"
 
14485
    {
 
14486
                                        PrivTarget *n = makeNode(PrivTarget);
 
14487
                                        n->objtype = ACL_OBJECT_NAMESPACE;
 
14488
                                        n->objs = yyvsp[0].list;
 
14489
                                        yyval.privtarget = n;
 
14490
                                }
 
14491
    break;
 
14492
 
 
14493
  case 530:
 
14494
#line 3314 "gram.y"
 
14495
    {
 
14496
                                        PrivTarget *n = makeNode(PrivTarget);
 
14497
                                        n->objtype = ACL_OBJECT_TABLESPACE;
 
14498
                                        n->objs = yyvsp[0].list;
 
14499
                                        yyval.privtarget = n;
 
14500
                                }
 
14501
    break;
 
14502
 
 
14503
  case 531:
 
14504
#line 3324 "gram.y"
 
14505
    { yyval.list = list_make1(yyvsp[0].node); }
 
14506
    break;
 
14507
 
 
14508
  case 532:
 
14509
#line 3325 "gram.y"
 
14510
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
14511
    break;
 
14512
 
 
14513
  case 533:
 
14514
#line 3329 "gram.y"
 
14515
    {
 
14516
                                        PrivGrantee *n = makeNode(PrivGrantee);
 
14517
                                        /* This hack lets us avoid reserving PUBLIC as a keyword*/
 
14518
                                        if (strcmp(yyvsp[0].str, "public") == 0)
 
14519
                                                n->rolname = NULL;
 
14520
                                        else
 
14521
                                                n->rolname = yyvsp[0].str;
 
14522
                                        yyval.node = (Node *)n;
 
14523
                                }
 
14524
    break;
 
14525
 
 
14526
  case 534:
 
14527
#line 3339 "gram.y"
 
14528
    {
 
14529
                                        PrivGrantee *n = makeNode(PrivGrantee);
 
14530
                                        /* Treat GROUP PUBLIC as a synonym for PUBLIC */
 
14531
                                        if (strcmp(yyvsp[0].str, "public") == 0)
 
14532
                                                n->rolname = NULL;
 
14533
                                        else
 
14534
                                                n->rolname = yyvsp[0].str;
 
14535
                                        yyval.node = (Node *)n;
 
14536
                                }
 
14537
    break;
 
14538
 
 
14539
  case 535:
 
14540
#line 3352 "gram.y"
 
14541
    { yyval.boolean = TRUE; }
 
14542
    break;
 
14543
 
 
14544
  case 536:
 
14545
#line 3353 "gram.y"
 
14546
    { yyval.boolean = FALSE; }
 
14547
    break;
 
14548
 
 
14549
  case 537:
 
14550
#line 3357 "gram.y"
 
14551
    { yyval.list = list_make1(yyvsp[0].funwithargs); }
 
14552
    break;
 
14553
 
 
14554
  case 538:
 
14555
#line 3359 "gram.y"
 
14556
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].funwithargs); }
 
14557
    break;
 
14558
 
 
14559
  case 539:
 
14560
#line 3364 "gram.y"
 
14561
    {
 
14562
                                        FuncWithArgs *n = makeNode(FuncWithArgs);
 
14563
                                        n->funcname = yyvsp[-1].list;
 
14564
                                        n->funcargs = extractArgTypes(yyvsp[0].list);
 
14565
                                        yyval.funwithargs = n;
 
14566
                                }
 
14567
    break;
 
14568
 
 
14569
  case 540:
 
14570
#line 3380 "gram.y"
 
14571
    {
 
14572
                                        GrantRoleStmt *n = makeNode(GrantRoleStmt);
 
14573
                                        n->is_grant = true;
 
14574
                                        n->granted_roles = yyvsp[-4].list;
 
14575
                                        n->grantee_roles = yyvsp[-2].list;
 
14576
                                        n->admin_opt = yyvsp[-1].boolean;
 
14577
                                        n->grantor = yyvsp[0].str;
 
14578
                                        yyval.node = (Node*)n;
 
14579
                                }
 
14580
    break;
 
14581
 
 
14582
  case 541:
 
14583
#line 3393 "gram.y"
 
14584
    {
 
14585
                                        GrantRoleStmt *n = makeNode(GrantRoleStmt);
 
14586
                                        n->is_grant = false;
 
14587
                                        n->admin_opt = false;
 
14588
                                        n->granted_roles = yyvsp[-4].list;
 
14589
                                        n->grantee_roles = yyvsp[-2].list;
 
14590
                                        n->behavior = yyvsp[0].dbehavior;
 
14591
                                        yyval.node = (Node*)n;
 
14592
                                }
 
14593
    break;
 
14594
 
 
14595
  case 542:
 
14596
#line 3403 "gram.y"
 
14597
    {
 
14598
                                        GrantRoleStmt *n = makeNode(GrantRoleStmt);
 
14599
                                        n->is_grant = false;
 
14600
                                        n->admin_opt = true;
 
14601
                                        n->granted_roles = yyvsp[-4].list;
 
14602
                                        n->grantee_roles = yyvsp[-2].list;
 
14603
                                        n->behavior = yyvsp[0].dbehavior;
 
14604
                                        yyval.node = (Node*)n;
 
14605
                                }
 
14606
    break;
 
14607
 
 
14608
  case 543:
 
14609
#line 3414 "gram.y"
 
14610
    { yyval.boolean = TRUE; }
 
14611
    break;
 
14612
 
 
14613
  case 544:
 
14614
#line 3415 "gram.y"
 
14615
    { yyval.boolean = FALSE; }
 
14616
    break;
 
14617
 
 
14618
  case 545:
 
14619
#line 3418 "gram.y"
 
14620
    { yyval.str = yyvsp[0].str; }
 
14621
    break;
 
14622
 
 
14623
  case 546:
 
14624
#line 3419 "gram.y"
 
14625
    { yyval.str = NULL; }
 
14626
    break;
 
14627
 
 
14628
  case 547:
 
14629
#line 3436 "gram.y"
 
14630
    {
 
14631
                                        IndexStmt *n = makeNode(IndexStmt);
 
14632
                                        n->unique = yyvsp[-10].boolean;
 
14633
                                        n->idxname = yyvsp[-8].str;
 
14634
                                        n->relation = yyvsp[-6].range;
 
14635
                                        n->accessMethod = yyvsp[-5].str;
 
14636
                                        n->indexParams = yyvsp[-3].list;
 
14637
                                        n->tableSpace = yyvsp[-1].str;
 
14638
                                        n->whereClause = yyvsp[0].node;
 
14639
                                        yyval.node = (Node *)n;
 
14640
                                }
 
14641
    break;
 
14642
 
 
14643
  case 548:
 
14644
#line 3450 "gram.y"
 
14645
    { yyval.boolean = TRUE; }
 
14646
    break;
 
14647
 
 
14648
  case 549:
 
14649
#line 3451 "gram.y"
 
14650
    { yyval.boolean = FALSE; }
 
14651
    break;
 
14652
 
 
14653
  case 550:
 
14654
#line 3455 "gram.y"
 
14655
    { yyval.str = yyvsp[0].str; }
 
14656
    break;
 
14657
 
 
14658
  case 551:
 
14659
#line 3456 "gram.y"
 
14660
    { yyval.str = DEFAULT_INDEX_TYPE; }
 
14661
    break;
 
14662
 
 
14663
  case 552:
 
14664
#line 3459 "gram.y"
 
14665
    { yyval.list = list_make1(yyvsp[0].ielem); }
 
14666
    break;
 
14667
 
 
14668
  case 553:
 
14669
#line 3460 "gram.y"
 
14670
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].ielem); }
 
14671
    break;
 
14672
 
 
14673
  case 554:
 
14674
#line 3469 "gram.y"
 
14675
    {
 
14676
                                        yyval.ielem = makeNode(IndexElem);
 
14677
                                        yyval.ielem->name = yyvsp[-1].str;
 
14678
                                        yyval.ielem->expr = NULL;
 
14679
                                        yyval.ielem->opclass = yyvsp[0].list;
 
14680
                                }
 
14681
    break;
 
14682
 
 
14683
  case 555:
 
14684
#line 3476 "gram.y"
 
14685
    {
 
14686
                                        yyval.ielem = makeNode(IndexElem);
 
14687
                                        yyval.ielem->name = NULL;
 
14688
                                        yyval.ielem->expr = yyvsp[-1].node;
 
14689
                                        yyval.ielem->opclass = yyvsp[0].list;
 
14690
                                }
 
14691
    break;
 
14692
 
 
14693
  case 556:
 
14694
#line 3483 "gram.y"
 
14695
    {
 
14696
                                        yyval.ielem = makeNode(IndexElem);
 
14697
                                        yyval.ielem->name = NULL;
 
14698
                                        yyval.ielem->expr = yyvsp[-2].node;
 
14699
                                        yyval.ielem->opclass = yyvsp[0].list;
 
14700
                                }
 
14701
    break;
 
14702
 
 
14703
  case 557:
 
14704
#line 3491 "gram.y"
 
14705
    { yyval.list = yyvsp[0].list; }
 
14706
    break;
 
14707
 
 
14708
  case 558:
 
14709
#line 3492 "gram.y"
 
14710
    { yyval.list = yyvsp[0].list; }
 
14711
    break;
 
14712
 
 
14713
  case 559:
 
14714
#line 3493 "gram.y"
 
14715
    { yyval.list = NIL; }
 
14716
    break;
 
14717
 
 
14718
  case 560:
 
14719
#line 3510 "gram.y"
 
14720
    {
 
14721
                                        CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
 
14722
                                        n->replace = yyvsp[-7].boolean;
 
14723
                                        n->funcname = yyvsp[-5].list;
 
14724
                                        n->parameters = yyvsp[-4].list;
 
14725
                                        n->returnType = yyvsp[-2].typnam;
 
14726
                                        n->options = yyvsp[-1].list;
 
14727
                                        n->withClause = yyvsp[0].list;
 
14728
                                        yyval.node = (Node *)n;
 
14729
                                }
 
14730
    break;
 
14731
 
 
14732
  case 561:
 
14733
#line 3522 "gram.y"
 
14734
    {
 
14735
                                        CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
 
14736
                                        n->replace = yyvsp[-5].boolean;
 
14737
                                        n->funcname = yyvsp[-3].list;
 
14738
                                        n->parameters = yyvsp[-2].list;
 
14739
                                        n->returnType = NULL;
 
14740
                                        n->options = yyvsp[-1].list;
 
14741
                                        n->withClause = yyvsp[0].list;
 
14742
                                        yyval.node = (Node *)n;
 
14743
                                }
 
14744
    break;
 
14745
 
 
14746
  case 562:
 
14747
#line 3535 "gram.y"
 
14748
    { yyval.boolean = TRUE; }
 
14749
    break;
 
14750
 
 
14751
  case 563:
 
14752
#line 3536 "gram.y"
 
14753
    { yyval.boolean = FALSE; }
 
14754
    break;
 
14755
 
 
14756
  case 564:
 
14757
#line 3539 "gram.y"
 
14758
    { yyval.list = yyvsp[-1].list; }
 
14759
    break;
 
14760
 
 
14761
  case 565:
 
14762
#line 3540 "gram.y"
 
14763
    { yyval.list = NIL; }
 
14764
    break;
 
14765
 
 
14766
  case 566:
 
14767
#line 3544 "gram.y"
 
14768
    { yyval.list = list_make1(yyvsp[0].fun_param); }
 
14769
    break;
 
14770
 
 
14771
  case 567:
 
14772
#line 3545 "gram.y"
 
14773
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].fun_param); }
 
14774
    break;
 
14775
 
 
14776
  case 568:
 
14777
#line 3560 "gram.y"
 
14778
    {
 
14779
                                        FunctionParameter *n = makeNode(FunctionParameter);
 
14780
                                        n->name = yyvsp[-1].str;
 
14781
                                        n->argType = yyvsp[0].typnam;
 
14782
                                        n->mode = yyvsp[-2].fun_param_mode;
 
14783
                                        yyval.fun_param = n;
 
14784
                                }
 
14785
    break;
 
14786
 
 
14787
  case 569:
 
14788
#line 3568 "gram.y"
 
14789
    {
 
14790
                                        FunctionParameter *n = makeNode(FunctionParameter);
 
14791
                                        n->name = yyvsp[-2].str;
 
14792
                                        n->argType = yyvsp[0].typnam;
 
14793
                                        n->mode = yyvsp[-1].fun_param_mode;
 
14794
                                        yyval.fun_param = n;
 
14795
                                }
 
14796
    break;
 
14797
 
 
14798
  case 570:
 
14799
#line 3576 "gram.y"
 
14800
    {
 
14801
                                        FunctionParameter *n = makeNode(FunctionParameter);
 
14802
                                        n->name = yyvsp[-1].str;
 
14803
                                        n->argType = yyvsp[0].typnam;
 
14804
                                        n->mode = FUNC_PARAM_IN;
 
14805
                                        yyval.fun_param = n;
 
14806
                                }
 
14807
    break;
 
14808
 
 
14809
  case 571:
 
14810
#line 3584 "gram.y"
 
14811
    {
 
14812
                                        FunctionParameter *n = makeNode(FunctionParameter);
 
14813
                                        n->name = NULL;
 
14814
                                        n->argType = yyvsp[0].typnam;
 
14815
                                        n->mode = yyvsp[-1].fun_param_mode;
 
14816
                                        yyval.fun_param = n;
 
14817
                                }
 
14818
    break;
 
14819
 
 
14820
  case 572:
 
14821
#line 3592 "gram.y"
 
14822
    {
 
14823
                                        FunctionParameter *n = makeNode(FunctionParameter);
 
14824
                                        n->name = NULL;
 
14825
                                        n->argType = yyvsp[0].typnam;
 
14826
                                        n->mode = FUNC_PARAM_IN;
 
14827
                                        yyval.fun_param = n;
 
14828
                                }
 
14829
    break;
 
14830
 
 
14831
  case 573:
 
14832
#line 3602 "gram.y"
 
14833
    { yyval.fun_param_mode = FUNC_PARAM_IN; }
 
14834
    break;
 
14835
 
 
14836
  case 574:
 
14837
#line 3603 "gram.y"
 
14838
    { yyval.fun_param_mode = FUNC_PARAM_OUT; }
 
14839
    break;
 
14840
 
 
14841
  case 575:
 
14842
#line 3604 "gram.y"
 
14843
    { yyval.fun_param_mode = FUNC_PARAM_INOUT; }
 
14844
    break;
 
14845
 
 
14846
  case 576:
 
14847
#line 3605 "gram.y"
 
14848
    { yyval.fun_param_mode = FUNC_PARAM_INOUT; }
 
14849
    break;
 
14850
 
 
14851
  case 578:
 
14852
#line 3616 "gram.y"
 
14853
    {
 
14854
                                        /* We can catch over-specified results here if we want to,
 
14855
                                         * but for now better to silently swallow typmod, etc.
 
14856
                                         * - thomas 2000-03-22
 
14857
                                         */
 
14858
                                        yyval.typnam = yyvsp[0].typnam;
 
14859
                                }
 
14860
    break;
 
14861
 
 
14862
  case 579:
 
14863
#line 3629 "gram.y"
 
14864
    { yyval.typnam = yyvsp[0].typnam; }
 
14865
    break;
 
14866
 
 
14867
  case 580:
 
14868
#line 3631 "gram.y"
 
14869
    {
 
14870
                                        yyval.typnam = makeNode(TypeName);
 
14871
                                        yyval.typnam->names = lcons(makeString(yyvsp[-3].str), yyvsp[-2].list);
 
14872
                                        yyval.typnam->pct_type = true;
 
14873
                                        yyval.typnam->typmod = -1;
 
14874
                                }
 
14875
    break;
 
14876
 
 
14877
  case 581:
 
14878
#line 3638 "gram.y"
 
14879
    {
 
14880
                                        yyval.typnam = makeNode(TypeName);
 
14881
                                        yyval.typnam->names = lcons(makeString(yyvsp[-3].str), yyvsp[-2].list);
 
14882
                                        yyval.typnam->pct_type = true;
 
14883
                                        yyval.typnam->typmod = -1;
 
14884
                                        yyval.typnam->setof = TRUE;
 
14885
                                }
 
14886
    break;
 
14887
 
 
14888
  case 582:
 
14889
#line 3650 "gram.y"
 
14890
    { yyval.list = list_make1(yyvsp[0].defelt); }
 
14891
    break;
 
14892
 
 
14893
  case 583:
 
14894
#line 3651 "gram.y"
 
14895
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
14896
    break;
 
14897
 
 
14898
  case 584:
 
14899
#line 3659 "gram.y"
 
14900
    {
 
14901
                                        yyval.defelt = makeDefElem("strict", (Node *)makeInteger(FALSE));
 
14902
                                }
 
14903
    break;
 
14904
 
 
14905
  case 585:
 
14906
#line 3663 "gram.y"
 
14907
    {
 
14908
                                        yyval.defelt = makeDefElem("strict", (Node *)makeInteger(TRUE));
 
14909
                                }
 
14910
    break;
 
14911
 
 
14912
  case 586:
 
14913
#line 3667 "gram.y"
 
14914
    {
 
14915
                                        yyval.defelt = makeDefElem("strict", (Node *)makeInteger(TRUE));
 
14916
                                }
 
14917
    break;
 
14918
 
 
14919
  case 587:
 
14920
#line 3671 "gram.y"
 
14921
    {
 
14922
                                        yyval.defelt = makeDefElem("volatility", (Node *)makeString("immutable"));
 
14923
                                }
 
14924
    break;
 
14925
 
 
14926
  case 588:
 
14927
#line 3675 "gram.y"
 
14928
    {
 
14929
                                        yyval.defelt = makeDefElem("volatility", (Node *)makeString("stable"));
 
14930
                                }
 
14931
    break;
 
14932
 
 
14933
  case 589:
 
14934
#line 3679 "gram.y"
 
14935
    {
 
14936
                                        yyval.defelt = makeDefElem("volatility", (Node *)makeString("volatile"));
 
14937
                                }
 
14938
    break;
 
14939
 
 
14940
  case 590:
 
14941
#line 3683 "gram.y"
 
14942
    {
 
14943
                                        yyval.defelt = makeDefElem("security", (Node *)makeInteger(TRUE));
 
14944
                                }
 
14945
    break;
 
14946
 
 
14947
  case 591:
 
14948
#line 3687 "gram.y"
 
14949
    {
 
14950
                                        yyval.defelt = makeDefElem("security", (Node *)makeInteger(FALSE));
 
14951
                                }
 
14952
    break;
 
14953
 
 
14954
  case 592:
 
14955
#line 3691 "gram.y"
 
14956
    {
 
14957
                                        yyval.defelt = makeDefElem("security", (Node *)makeInteger(TRUE));
 
14958
                                }
 
14959
    break;
 
14960
 
 
14961
  case 593:
 
14962
#line 3695 "gram.y"
 
14963
    {
 
14964
                                        yyval.defelt = makeDefElem("security", (Node *)makeInteger(FALSE));
 
14965
                                }
 
14966
    break;
 
14967
 
 
14968
  case 594:
 
14969
#line 3702 "gram.y"
 
14970
    {
 
14971
                                        yyval.defelt = makeDefElem("as", (Node *)yyvsp[0].list);
 
14972
                                }
 
14973
    break;
 
14974
 
 
14975
  case 595:
 
14976
#line 3706 "gram.y"
 
14977
    {
 
14978
                                        yyval.defelt = makeDefElem("language", (Node *)makeString(yyvsp[0].str));
 
14979
                                }
 
14980
    break;
 
14981
 
 
14982
  case 596:
 
14983
#line 3710 "gram.y"
 
14984
    {
 
14985
                                        yyval.defelt = yyvsp[0].defelt;
 
14986
                                }
 
14987
    break;
 
14988
 
 
14989
  case 597:
 
14990
#line 3715 "gram.y"
 
14991
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
14992
    break;
 
14993
 
 
14994
  case 598:
 
14995
#line 3717 "gram.y"
 
14996
    {
 
14997
                                        yyval.list = list_make2(makeString(yyvsp[-2].str), makeString(yyvsp[0].str));
 
14998
                                }
 
14999
    break;
 
15000
 
 
15001
  case 599:
 
15002
#line 3723 "gram.y"
 
15003
    { yyval.list = yyvsp[0].list; }
 
15004
    break;
 
15005
 
 
15006
  case 600:
 
15007
#line 3724 "gram.y"
 
15008
    { yyval.list = NIL; }
 
15009
    break;
 
15010
 
 
15011
  case 601:
 
15012
#line 3737 "gram.y"
 
15013
    {
 
15014
                                        AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
 
15015
                                        n->func = yyvsp[-2].funwithargs;
 
15016
                                        n->actions = yyvsp[-1].list;
 
15017
                                        yyval.node = (Node *) n;
 
15018
                                }
 
15019
    break;
 
15020
 
 
15021
  case 602:
 
15022
#line 3747 "gram.y"
 
15023
    { yyval.list = list_make1(yyvsp[0].defelt); }
 
15024
    break;
 
15025
 
 
15026
  case 603:
 
15027
#line 3748 "gram.y"
 
15028
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
15029
    break;
 
15030
 
 
15031
  case 606:
 
15032
#line 3770 "gram.y"
 
15033
    {
 
15034
                                        RemoveFuncStmt *n = makeNode(RemoveFuncStmt);
 
15035
                                        n->funcname = yyvsp[-2].list;
 
15036
                                        n->args = extractArgTypes(yyvsp[-1].list);
 
15037
                                        n->behavior = yyvsp[0].dbehavior;
 
15038
                                        yyval.node = (Node *)n;
 
15039
                                }
 
15040
    break;
 
15041
 
 
15042
  case 607:
 
15043
#line 3781 "gram.y"
 
15044
    {
 
15045
                                                RemoveAggrStmt *n = makeNode(RemoveAggrStmt);
 
15046
                                                n->aggname = yyvsp[-4].list;
 
15047
                                                n->aggtype = yyvsp[-2].typnam;
 
15048
                                                n->behavior = yyvsp[0].dbehavior;
 
15049
                                                yyval.node = (Node *)n;
 
15050
                                }
 
15051
    break;
 
15052
 
 
15053
  case 608:
 
15054
#line 3791 "gram.y"
 
15055
    { yyval.typnam = yyvsp[0].typnam; }
 
15056
    break;
 
15057
 
 
15058
  case 609:
 
15059
#line 3792 "gram.y"
 
15060
    { yyval.typnam = NULL; }
 
15061
    break;
 
15062
 
 
15063
  case 610:
 
15064
#line 3797 "gram.y"
 
15065
    {
 
15066
                                        RemoveOperStmt *n = makeNode(RemoveOperStmt);
 
15067
                                        n->opname = yyvsp[-4].list;
 
15068
                                        n->args = yyvsp[-2].list;
 
15069
                                        n->behavior = yyvsp[0].dbehavior;
 
15070
                                        yyval.node = (Node *)n;
 
15071
                                }
 
15072
    break;
 
15073
 
 
15074
  case 611:
 
15075
#line 3808 "gram.y"
 
15076
    {
 
15077
                                   ereport(ERROR,
 
15078
                                                   (errcode(ERRCODE_SYNTAX_ERROR),
 
15079
                                                        errmsg("missing argument"),
 
15080
                                                        errhint("Use NONE to denote the missing argument of a unary operator.")));
 
15081
                                }
 
15082
    break;
 
15083
 
 
15084
  case 612:
 
15085
#line 3815 "gram.y"
 
15086
    { yyval.list = list_make2(yyvsp[-2].typnam, yyvsp[0].typnam); }
 
15087
    break;
 
15088
 
 
15089
  case 613:
 
15090
#line 3817 "gram.y"
 
15091
    { yyval.list = list_make2(NULL, yyvsp[0].typnam); }
 
15092
    break;
 
15093
 
 
15094
  case 614:
 
15095
#line 3819 "gram.y"
 
15096
    { yyval.list = list_make2(yyvsp[-2].typnam, NULL); }
 
15097
    break;
 
15098
 
 
15099
  case 615:
 
15100
#line 3824 "gram.y"
 
15101
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
15102
    break;
 
15103
 
 
15104
  case 616:
 
15105
#line 3826 "gram.y"
 
15106
    { yyval.list = lcons(makeString(yyvsp[-2].str), yyvsp[0].list); }
 
15107
    break;
 
15108
 
 
15109
  case 617:
 
15110
#line 3838 "gram.y"
 
15111
    {
 
15112
                                        CreateCastStmt *n = makeNode(CreateCastStmt);
 
15113
                                        n->sourcetype = yyvsp[-7].typnam;
 
15114
                                        n->targettype = yyvsp[-5].typnam;
 
15115
                                        n->func = yyvsp[-1].funwithargs;
 
15116
                                        n->context = (CoercionContext) yyvsp[0].ival;
 
15117
                                        yyval.node = (Node *)n;
 
15118
                                }
 
15119
    break;
 
15120
 
 
15121
  case 618:
 
15122
#line 3848 "gram.y"
 
15123
    {
 
15124
                                        CreateCastStmt *n = makeNode(CreateCastStmt);
 
15125
                                        n->sourcetype = yyvsp[-6].typnam;
 
15126
                                        n->targettype = yyvsp[-4].typnam;
 
15127
                                        n->func = NULL;
 
15128
                                        n->context = (CoercionContext) yyvsp[0].ival;
 
15129
                                        yyval.node = (Node *)n;
 
15130
                                }
 
15131
    break;
 
15132
 
 
15133
  case 619:
 
15134
#line 3858 "gram.y"
 
15135
    { yyval.ival = COERCION_IMPLICIT; }
 
15136
    break;
 
15137
 
 
15138
  case 620:
 
15139
#line 3859 "gram.y"
 
15140
    { yyval.ival = COERCION_ASSIGNMENT; }
 
15141
    break;
 
15142
 
 
15143
  case 621:
 
15144
#line 3860 "gram.y"
 
15145
    { yyval.ival = COERCION_EXPLICIT; }
 
15146
    break;
 
15147
 
 
15148
  case 622:
 
15149
#line 3865 "gram.y"
 
15150
    {
 
15151
                                        DropCastStmt *n = makeNode(DropCastStmt);
 
15152
                                        n->sourcetype = yyvsp[-4].typnam;
 
15153
                                        n->targettype = yyvsp[-2].typnam;
 
15154
                                        n->behavior = yyvsp[0].dbehavior;
 
15155
                                        yyval.node = (Node *)n;
 
15156
                                }
 
15157
    break;
 
15158
 
 
15159
  case 623:
 
15160
#line 3887 "gram.y"
 
15161
    {
 
15162
                                        ReindexStmt *n = makeNode(ReindexStmt);
 
15163
                                        n->kind = yyvsp[-2].objtype;
 
15164
                                        n->relation = yyvsp[-1].range;
 
15165
                                        n->name = NULL;
 
15166
                                        yyval.node = (Node *)n;
 
15167
                                }
 
15168
    break;
 
15169
 
 
15170
  case 624:
 
15171
#line 3895 "gram.y"
 
15172
    {
 
15173
                                        ReindexStmt *n = makeNode(ReindexStmt);
 
15174
                                        n->kind = OBJECT_DATABASE;
 
15175
                                        n->name = yyvsp[-1].str;
 
15176
                                        n->relation = NULL;
 
15177
                                        n->do_system = true;
 
15178
                                        n->do_user = false;
 
15179
                                        yyval.node = (Node *)n;
 
15180
                                }
 
15181
    break;
 
15182
 
 
15183
  case 625:
 
15184
#line 3905 "gram.y"
 
15185
    {
 
15186
                                        ReindexStmt *n = makeNode(ReindexStmt);
 
15187
                                        n->kind = OBJECT_DATABASE;
 
15188
                                        n->name = yyvsp[-1].str;
 
15189
                                        n->relation = NULL;
 
15190
                                        n->do_system = true;
 
15191
                                        n->do_user = true;
 
15192
                                        yyval.node = (Node *)n;
 
15193
                                }
 
15194
    break;
 
15195
 
 
15196
  case 626:
 
15197
#line 3917 "gram.y"
 
15198
    { yyval.objtype = OBJECT_INDEX; }
 
15199
    break;
 
15200
 
 
15201
  case 627:
 
15202
#line 3918 "gram.y"
 
15203
    { yyval.objtype = OBJECT_TABLE; }
 
15204
    break;
 
15205
 
 
15206
  case 628:
 
15207
#line 3921 "gram.y"
 
15208
    {  yyval.boolean = TRUE; }
 
15209
    break;
 
15210
 
 
15211
  case 629:
 
15212
#line 3922 "gram.y"
 
15213
    {  yyval.boolean = FALSE; }
 
15214
    break;
 
15215
 
 
15216
  case 630:
 
15217
#line 3933 "gram.y"
 
15218
    {
 
15219
                                        RenameStmt *n = makeNode(RenameStmt);
 
15220
                                        n->renameType = OBJECT_AGGREGATE;
 
15221
                                        n->object = yyvsp[-6].list;
 
15222
                                        n->objarg = list_make1(yyvsp[-4].typnam);
 
15223
                                        n->newname = yyvsp[0].str;
 
15224
                                        yyval.node = (Node *)n;
 
15225
                                }
 
15226
    break;
 
15227
 
 
15228
  case 631:
 
15229
#line 3942 "gram.y"
 
15230
    {
 
15231
                                        RenameStmt *n = makeNode(RenameStmt);
 
15232
                                        n->renameType = OBJECT_CONVERSION;
 
15233
                                        n->object = yyvsp[-3].list;
 
15234
                                        n->newname = yyvsp[0].str;
 
15235
                                        yyval.node = (Node *)n;
 
15236
                                }
 
15237
    break;
 
15238
 
 
15239
  case 632:
 
15240
#line 3950 "gram.y"
 
15241
    {
 
15242
                                        RenameStmt *n = makeNode(RenameStmt);
 
15243
                                        n->renameType = OBJECT_DATABASE;
 
15244
                                        n->subname = yyvsp[-3].str;
 
15245
                                        n->newname = yyvsp[0].str;
 
15246
                                        yyval.node = (Node *)n;
 
15247
                                }
 
15248
    break;
 
15249
 
 
15250
  case 633:
 
15251
#line 3958 "gram.y"
 
15252
    {
 
15253
                                        RenameStmt *n = makeNode(RenameStmt);
 
15254
                                        n->renameType = OBJECT_FUNCTION;
 
15255
                                        n->object = yyvsp[-4].list;
 
15256
                                        n->objarg = extractArgTypes(yyvsp[-3].list);
 
15257
                                        n->newname = yyvsp[0].str;
 
15258
                                        yyval.node = (Node *)n;
 
15259
                                }
 
15260
    break;
 
15261
 
 
15262
  case 634:
 
15263
#line 3967 "gram.y"
 
15264
    {
 
15265
                                        RenameStmt *n = makeNode(RenameStmt);
 
15266
                                        n->renameType = OBJECT_ROLE;
 
15267
                                        n->subname = yyvsp[-3].str;
 
15268
                                        n->newname = yyvsp[0].str;
 
15269
                                        yyval.node = (Node *)n;
 
15270
                                }
 
15271
    break;
 
15272
 
 
15273
  case 635:
 
15274
#line 3975 "gram.y"
 
15275
    {
 
15276
                                        RenameStmt *n = makeNode(RenameStmt);
 
15277
                                        n->renameType = OBJECT_LANGUAGE;
 
15278
                                        n->subname = yyvsp[-3].str;
 
15279
                                        n->newname = yyvsp[0].str;
 
15280
                                        yyval.node = (Node *)n;
 
15281
                                }
 
15282
    break;
 
15283
 
 
15284
  case 636:
 
15285
#line 3983 "gram.y"
 
15286
    {
 
15287
                                        RenameStmt *n = makeNode(RenameStmt);
 
15288
                                        n->renameType = OBJECT_OPCLASS;
 
15289
                                        n->object = yyvsp[-5].list;
 
15290
                                        n->subname = yyvsp[-3].str;
 
15291
                                        n->newname = yyvsp[0].str;
 
15292
                                        yyval.node = (Node *)n;
 
15293
                                }
 
15294
    break;
 
15295
 
 
15296
  case 637:
 
15297
#line 3992 "gram.y"
 
15298
    {
 
15299
                                        RenameStmt *n = makeNode(RenameStmt);
 
15300
                                        n->renameType = OBJECT_SCHEMA;
 
15301
                                        n->subname = yyvsp[-3].str;
 
15302
                                        n->newname = yyvsp[0].str;
 
15303
                                        yyval.node = (Node *)n;
 
15304
                                }
 
15305
    break;
 
15306
 
 
15307
  case 638:
 
15308
#line 4000 "gram.y"
 
15309
    {
 
15310
                                        RenameStmt *n = makeNode(RenameStmt);
 
15311
                                        n->renameType = OBJECT_TABLE;
 
15312
                                        n->relation = yyvsp[-3].range;
 
15313
                                        n->subname = NULL;
 
15314
                                        n->newname = yyvsp[0].str;
 
15315
                                        yyval.node = (Node *)n;
 
15316
                                }
 
15317
    break;
 
15318
 
 
15319
  case 639:
 
15320
#line 4009 "gram.y"
 
15321
    {
 
15322
                                        RenameStmt *n = makeNode(RenameStmt);
 
15323
                                        n->renameType = OBJECT_INDEX;
 
15324
                                        n->relation = yyvsp[-3].range;
 
15325
                                        n->subname = NULL;
 
15326
                                        n->newname = yyvsp[0].str;
 
15327
                                        yyval.node = (Node *)n;
 
15328
                                }
 
15329
    break;
 
15330
 
 
15331
  case 640:
 
15332
#line 4018 "gram.y"
 
15333
    {
 
15334
                                        RenameStmt *n = makeNode(RenameStmt);
 
15335
                                        n->renameType = OBJECT_COLUMN;
 
15336
                                        n->relation = yyvsp[-5].range;
 
15337
                                        n->subname = yyvsp[-2].str;
 
15338
                                        n->newname = yyvsp[0].str;
 
15339
                                        yyval.node = (Node *)n;
 
15340
                                }
 
15341
    break;
 
15342
 
 
15343
  case 641:
 
15344
#line 4027 "gram.y"
 
15345
    {
 
15346
                                        RenameStmt *n = makeNode(RenameStmt);
 
15347
                                        n->renameType = OBJECT_TRIGGER;
 
15348
                                        n->relation = yyvsp[-3].range;
 
15349
                                        n->subname = yyvsp[-5].str;
 
15350
                                        n->newname = yyvsp[0].str;
 
15351
                                        yyval.node = (Node *)n;
 
15352
                                }
 
15353
    break;
 
15354
 
 
15355
  case 642:
 
15356
#line 4036 "gram.y"
 
15357
    {
 
15358
                                        RenameStmt *n = makeNode(RenameStmt);
 
15359
                                        n->renameType = OBJECT_ROLE;
 
15360
                                        n->subname = yyvsp[-3].str;
 
15361
                                        n->newname = yyvsp[0].str;
 
15362
                                        yyval.node = (Node *)n;
 
15363
                                }
 
15364
    break;
 
15365
 
 
15366
  case 643:
 
15367
#line 4044 "gram.y"
 
15368
    {
 
15369
                                        RenameStmt *n = makeNode(RenameStmt);
 
15370
                                        n->renameType = OBJECT_ROLE;
 
15371
                                        n->subname = yyvsp[-3].str;
 
15372
                                        n->newname = yyvsp[0].str;
 
15373
                                        yyval.node = (Node *)n;
 
15374
                                }
 
15375
    break;
 
15376
 
 
15377
  case 644:
 
15378
#line 4052 "gram.y"
 
15379
    {
 
15380
                                        RenameStmt *n = makeNode(RenameStmt);
 
15381
                                        n->renameType = OBJECT_TABLESPACE;
 
15382
                                        n->subname = yyvsp[-3].str;
 
15383
                                        n->newname = yyvsp[0].str;
 
15384
                                        yyval.node = (Node *)n;
 
15385
                                }
 
15386
    break;
 
15387
 
 
15388
  case 645:
 
15389
#line 4061 "gram.y"
 
15390
    { yyval.ival = COLUMN; }
 
15391
    break;
 
15392
 
 
15393
  case 646:
 
15394
#line 4062 "gram.y"
 
15395
    { yyval.ival = 0; }
 
15396
    break;
 
15397
 
 
15398
  case 647:
 
15399
#line 4073 "gram.y"
 
15400
    {
 
15401
                                        AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
 
15402
                                        n->objectType = OBJECT_AGGREGATE;
 
15403
                                        n->object = yyvsp[-6].list;
 
15404
                                        n->objarg = list_make1(yyvsp[-4].typnam);
 
15405
                                        n->newschema = yyvsp[0].str;
 
15406
                                        yyval.node = (Node *)n;
 
15407
                                }
 
15408
    break;
 
15409
 
 
15410
  case 648:
 
15411
#line 4082 "gram.y"
 
15412
    {
 
15413
                                        AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
 
15414
                                        n->objectType = OBJECT_DOMAIN;
 
15415
                                        n->object = yyvsp[-3].list;
 
15416
                                        n->newschema = yyvsp[0].str;
 
15417
                                        yyval.node = (Node *)n;
 
15418
                                }
 
15419
    break;
 
15420
 
 
15421
  case 649:
 
15422
#line 4090 "gram.y"
 
15423
    {
 
15424
                                        AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
 
15425
                                        n->objectType = OBJECT_FUNCTION;
 
15426
                                        n->object = yyvsp[-4].list;
 
15427
                                        n->objarg = extractArgTypes(yyvsp[-3].list);
 
15428
                                        n->newschema = yyvsp[0].str;
 
15429
                                        yyval.node = (Node *)n;
 
15430
                                }
 
15431
    break;
 
15432
 
 
15433
  case 650:
 
15434
#line 4099 "gram.y"
 
15435
    {
 
15436
                                        AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
 
15437
                                        n->objectType = OBJECT_SEQUENCE;
 
15438
                                        n->relation = yyvsp[-3].range;
 
15439
                                        n->newschema = yyvsp[0].str;
 
15440
                                        yyval.node = (Node *)n;
 
15441
                                }
 
15442
    break;
 
15443
 
 
15444
  case 651:
 
15445
#line 4107 "gram.y"
 
15446
    {
 
15447
                                        AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
 
15448
                                        n->objectType = OBJECT_TABLE;
 
15449
                                        n->relation = yyvsp[-3].range;
 
15450
                                        n->newschema = yyvsp[0].str;
 
15451
                                        yyval.node = (Node *)n;
 
15452
                                }
 
15453
    break;
 
15454
 
 
15455
  case 652:
 
15456
#line 4115 "gram.y"
 
15457
    {
 
15458
                                        AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
 
15459
                                        n->objectType = OBJECT_TYPE;
 
15460
                                        n->object = yyvsp[-3].list;
 
15461
                                        n->newschema = yyvsp[0].str;
 
15462
                                        yyval.node = (Node *)n;
 
15463
                                }
 
15464
    break;
 
15465
 
 
15466
  case 653:
 
15467
#line 4131 "gram.y"
 
15468
    {
 
15469
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15470
                                        n->objectType = OBJECT_AGGREGATE;
 
15471
                                        n->object = yyvsp[-6].list;
 
15472
                                        n->objarg = list_make1(yyvsp[-4].typnam);
 
15473
                                        n->newowner = yyvsp[0].str;
 
15474
                                        yyval.node = (Node *)n;
 
15475
                                }
 
15476
    break;
 
15477
 
 
15478
  case 654:
 
15479
#line 4140 "gram.y"
 
15480
    {
 
15481
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15482
                                        n->objectType = OBJECT_CONVERSION;
 
15483
                                        n->object = yyvsp[-3].list;
 
15484
                                        n->newowner = yyvsp[0].str;
 
15485
                                        yyval.node = (Node *)n;
 
15486
                                }
 
15487
    break;
 
15488
 
 
15489
  case 655:
 
15490
#line 4148 "gram.y"
 
15491
    {
 
15492
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15493
                                        n->objectType = OBJECT_DATABASE;
 
15494
                                        n->object = list_make1(yyvsp[-3].str);
 
15495
                                        n->newowner = yyvsp[0].str;
 
15496
                                        yyval.node = (Node *)n;
 
15497
                                }
 
15498
    break;
 
15499
 
 
15500
  case 656:
 
15501
#line 4156 "gram.y"
 
15502
    {
 
15503
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15504
                                        n->objectType = OBJECT_DOMAIN;
 
15505
                                        n->object = yyvsp[-3].list;
 
15506
                                        n->newowner = yyvsp[0].str;
 
15507
                                        yyval.node = (Node *)n;
 
15508
                                }
 
15509
    break;
 
15510
 
 
15511
  case 657:
 
15512
#line 4164 "gram.y"
 
15513
    {
 
15514
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15515
                                        n->objectType = OBJECT_FUNCTION;
 
15516
                                        n->object = yyvsp[-4].list;
 
15517
                                        n->objarg = extractArgTypes(yyvsp[-3].list);
 
15518
                                        n->newowner = yyvsp[0].str;
 
15519
                                        yyval.node = (Node *)n;
 
15520
                                }
 
15521
    break;
 
15522
 
 
15523
  case 658:
 
15524
#line 4173 "gram.y"
 
15525
    {
 
15526
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15527
                                        n->objectType = OBJECT_OPERATOR;
 
15528
                                        n->object = yyvsp[-6].list;
 
15529
                                        n->objarg = yyvsp[-4].list;
 
15530
                                        n->newowner = yyvsp[0].str;
 
15531
                                        yyval.node = (Node *)n;
 
15532
                                }
 
15533
    break;
 
15534
 
 
15535
  case 659:
 
15536
#line 4182 "gram.y"
 
15537
    {
 
15538
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15539
                                        n->objectType = OBJECT_OPCLASS;
 
15540
                                        n->object = yyvsp[-5].list;
 
15541
                                        n->addname = yyvsp[-3].str;
 
15542
                                        n->newowner = yyvsp[0].str;
 
15543
                                        yyval.node = (Node *)n;
 
15544
                                }
 
15545
    break;
 
15546
 
 
15547
  case 660:
 
15548
#line 4191 "gram.y"
 
15549
    {
 
15550
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15551
                                        n->objectType = OBJECT_SCHEMA;
 
15552
                                        n->object = list_make1(yyvsp[-3].str);
 
15553
                                        n->newowner = yyvsp[0].str;
 
15554
                                        yyval.node = (Node *)n;
 
15555
                                }
 
15556
    break;
 
15557
 
 
15558
  case 661:
 
15559
#line 4199 "gram.y"
 
15560
    {
 
15561
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15562
                                        n->objectType = OBJECT_TYPE;
 
15563
                                        n->object = yyvsp[-3].list;
 
15564
                                        n->newowner = yyvsp[0].str;
 
15565
                                        yyval.node = (Node *)n;
 
15566
                                }
 
15567
    break;
 
15568
 
 
15569
  case 662:
 
15570
#line 4207 "gram.y"
 
15571
    {
 
15572
                                        AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
 
15573
                                        n->objectType = OBJECT_TABLESPACE;
 
15574
                                        n->object = list_make1(yyvsp[-3].str);
 
15575
                                        n->newowner = yyvsp[0].str;
 
15576
                                        yyval.node = (Node *)n;
 
15577
                                }
 
15578
    break;
 
15579
 
 
15580
  case 663:
 
15581
#line 4224 "gram.y"
 
15582
    { QueryIsRule=TRUE; }
 
15583
    break;
 
15584
 
 
15585
  case 664:
 
15586
#line 4227 "gram.y"
 
15587
    {
 
15588
                                        RuleStmt *n = makeNode(RuleStmt);
 
15589
                                        n->replace = yyvsp[-12].boolean;
 
15590
                                        n->relation = yyvsp[-4].range;
 
15591
                                        n->rulename = yyvsp[-10].str;
 
15592
                                        n->whereClause = yyvsp[-3].node;
 
15593
                                        n->event = yyvsp[-6].ival;
 
15594
                                        n->instead = yyvsp[-1].boolean;
 
15595
                                        n->actions = yyvsp[0].list;
 
15596
                                        yyval.node = (Node *)n;
 
15597
                                        QueryIsRule=FALSE;
 
15598
                                }
 
15599
    break;
 
15600
 
 
15601
  case 665:
 
15602
#line 4242 "gram.y"
 
15603
    { yyval.list = NIL; }
 
15604
    break;
 
15605
 
 
15606
  case 666:
 
15607
#line 4243 "gram.y"
 
15608
    { yyval.list = list_make1(yyvsp[0].node); }
 
15609
    break;
 
15610
 
 
15611
  case 667:
 
15612
#line 4244 "gram.y"
 
15613
    { yyval.list = yyvsp[-1].list; }
 
15614
    break;
 
15615
 
 
15616
  case 668:
 
15617
#line 4250 "gram.y"
 
15618
    { if (yyvsp[0].node != NULL)
 
15619
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
 
15620
                                  else
 
15621
                                        yyval.list = yyvsp[-2].list;
 
15622
                                }
 
15623
    break;
 
15624
 
 
15625
  case 669:
 
15626
#line 4256 "gram.y"
 
15627
    { if (yyvsp[0].node != NULL)
 
15628
                                        yyval.list = list_make1(yyvsp[0].node);
 
15629
                                  else
 
15630
                                        yyval.list = NIL;
 
15631
                                }
 
15632
    break;
 
15633
 
 
15634
  case 675:
 
15635
#line 4272 "gram.y"
 
15636
    { yyval.node = yyvsp[0].node; }
 
15637
    break;
 
15638
 
 
15639
  case 676:
 
15640
#line 4273 "gram.y"
 
15641
    { yyval.node = NULL; }
 
15642
    break;
 
15643
 
 
15644
  case 677:
 
15645
#line 4277 "gram.y"
 
15646
    { yyval.ival = CMD_SELECT; }
 
15647
    break;
 
15648
 
 
15649
  case 678:
 
15650
#line 4278 "gram.y"
 
15651
    { yyval.ival = CMD_UPDATE; }
 
15652
    break;
 
15653
 
 
15654
  case 679:
 
15655
#line 4279 "gram.y"
 
15656
    { yyval.ival = CMD_DELETE; }
 
15657
    break;
 
15658
 
 
15659
  case 680:
 
15660
#line 4280 "gram.y"
 
15661
    { yyval.ival = CMD_INSERT; }
 
15662
    break;
 
15663
 
 
15664
  case 681:
 
15665
#line 4284 "gram.y"
 
15666
    { yyval.boolean = TRUE; }
 
15667
    break;
 
15668
 
 
15669
  case 682:
 
15670
#line 4285 "gram.y"
 
15671
    { yyval.boolean = FALSE; }
 
15672
    break;
 
15673
 
 
15674
  case 683:
 
15675
#line 4286 "gram.y"
 
15676
    { yyval.boolean = FALSE; }
 
15677
    break;
 
15678
 
 
15679
  case 684:
 
15680
#line 4292 "gram.y"
 
15681
    {
 
15682
                                        DropPropertyStmt *n = makeNode(DropPropertyStmt);
 
15683
                                        n->relation = yyvsp[-1].range;
 
15684
                                        n->property = yyvsp[-3].str;
 
15685
                                        n->behavior = yyvsp[0].dbehavior;
 
15686
                                        n->removeType = OBJECT_RULE;
 
15687
                                        yyval.node = (Node *) n;
 
15688
                                }
 
15689
    break;
 
15690
 
 
15691
  case 685:
 
15692
#line 4312 "gram.y"
 
15693
    {
 
15694
                                        NotifyStmt *n = makeNode(NotifyStmt);
 
15695
                                        n->relation = yyvsp[0].range;
 
15696
                                        yyval.node = (Node *)n;
 
15697
                                }
 
15698
    break;
 
15699
 
 
15700
  case 686:
 
15701
#line 4320 "gram.y"
 
15702
    {
 
15703
                                        ListenStmt *n = makeNode(ListenStmt);
 
15704
                                        n->relation = yyvsp[0].range;
 
15705
                                        yyval.node = (Node *)n;
 
15706
                                }
 
15707
    break;
 
15708
 
 
15709
  case 687:
 
15710
#line 4329 "gram.y"
 
15711
    {
 
15712
                                        UnlistenStmt *n = makeNode(UnlistenStmt);
 
15713
                                        n->relation = yyvsp[0].range;
 
15714
                                        yyval.node = (Node *)n;
 
15715
                                }
 
15716
    break;
 
15717
 
 
15718
  case 688:
 
15719
#line 4335 "gram.y"
 
15720
    {
 
15721
                                        UnlistenStmt *n = makeNode(UnlistenStmt);
 
15722
                                        n->relation = makeNode(RangeVar);
 
15723
                                        n->relation->relname = "*";
 
15724
                                        n->relation->schemaname = NULL;
 
15725
                                        yyval.node = (Node *)n;
 
15726
                                }
 
15727
    break;
 
15728
 
 
15729
  case 689:
 
15730
#line 4356 "gram.y"
 
15731
    {
 
15732
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15733
                                        n->kind = TRANS_STMT_ROLLBACK;
 
15734
                                        n->options = NIL;
 
15735
                                        yyval.node = (Node *)n;
 
15736
                                }
 
15737
    break;
 
15738
 
 
15739
  case 690:
 
15740
#line 4363 "gram.y"
 
15741
    {
 
15742
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15743
                                        n->kind = TRANS_STMT_BEGIN;
 
15744
                                        n->options = yyvsp[0].list;
 
15745
                                        yyval.node = (Node *)n;
 
15746
                                }
 
15747
    break;
 
15748
 
 
15749
  case 691:
 
15750
#line 4370 "gram.y"
 
15751
    {
 
15752
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15753
                                        n->kind = TRANS_STMT_START;
 
15754
                                        n->options = yyvsp[0].list;
 
15755
                                        yyval.node = (Node *)n;
 
15756
                                }
 
15757
    break;
 
15758
 
 
15759
  case 692:
 
15760
#line 4377 "gram.y"
 
15761
    {
 
15762
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15763
                                        n->kind = TRANS_STMT_COMMIT;
 
15764
                                        n->options = NIL;
 
15765
                                        yyval.node = (Node *)n;
 
15766
                                }
 
15767
    break;
 
15768
 
 
15769
  case 693:
 
15770
#line 4384 "gram.y"
 
15771
    {
 
15772
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15773
                                        n->kind = TRANS_STMT_COMMIT;
 
15774
                                        n->options = NIL;
 
15775
                                        yyval.node = (Node *)n;
 
15776
                                }
 
15777
    break;
 
15778
 
 
15779
  case 694:
 
15780
#line 4391 "gram.y"
 
15781
    {
 
15782
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15783
                                        n->kind = TRANS_STMT_ROLLBACK;
 
15784
                                        n->options = NIL;
 
15785
                                        yyval.node = (Node *)n;
 
15786
                                }
 
15787
    break;
 
15788
 
 
15789
  case 695:
 
15790
#line 4398 "gram.y"
 
15791
    {
 
15792
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15793
                                        n->kind = TRANS_STMT_SAVEPOINT;
 
15794
                                        n->options = list_make1(makeDefElem("savepoint_name",
 
15795
                                                                                                                (Node *)makeString(yyvsp[0].str)));
 
15796
                                        yyval.node = (Node *)n;
 
15797
                                }
 
15798
    break;
 
15799
 
 
15800
  case 696:
 
15801
#line 4406 "gram.y"
 
15802
    {
 
15803
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15804
                                        n->kind = TRANS_STMT_RELEASE;
 
15805
                                        n->options = list_make1(makeDefElem("savepoint_name",
 
15806
                                                                                                                (Node *)makeString(yyvsp[0].str)));
 
15807
                                        yyval.node = (Node *)n;
 
15808
                                }
 
15809
    break;
 
15810
 
 
15811
  case 697:
 
15812
#line 4414 "gram.y"
 
15813
    {
 
15814
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15815
                                        n->kind = TRANS_STMT_RELEASE;
 
15816
                                        n->options = list_make1(makeDefElem("savepoint_name",
 
15817
                                                                                                                (Node *)makeString(yyvsp[0].str)));
 
15818
                                        yyval.node = (Node *)n;
 
15819
                                }
 
15820
    break;
 
15821
 
 
15822
  case 698:
 
15823
#line 4422 "gram.y"
 
15824
    {
 
15825
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15826
                                        n->kind = TRANS_STMT_ROLLBACK_TO;
 
15827
                                        n->options = list_make1(makeDefElem("savepoint_name",
 
15828
                                                                                                                (Node *)makeString(yyvsp[0].str)));
 
15829
                                        yyval.node = (Node *)n;
 
15830
                                }
 
15831
    break;
 
15832
 
 
15833
  case 699:
 
15834
#line 4430 "gram.y"
 
15835
    {
 
15836
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15837
                                        n->kind = TRANS_STMT_ROLLBACK_TO;
 
15838
                                        n->options = list_make1(makeDefElem("savepoint_name",
 
15839
                                                                                                                (Node *)makeString(yyvsp[0].str)));
 
15840
                                        yyval.node = (Node *)n;
 
15841
                                }
 
15842
    break;
 
15843
 
 
15844
  case 700:
 
15845
#line 4438 "gram.y"
 
15846
    {
 
15847
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15848
                                        n->kind = TRANS_STMT_PREPARE;
 
15849
                                        n->gid = yyvsp[0].str;
 
15850
                                        yyval.node = (Node *)n;
 
15851
                                }
 
15852
    break;
 
15853
 
 
15854
  case 701:
 
15855
#line 4445 "gram.y"
 
15856
    {
 
15857
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15858
                                        n->kind = TRANS_STMT_COMMIT_PREPARED;
 
15859
                                        n->gid = yyvsp[0].str;
 
15860
                                        yyval.node = (Node *)n;
 
15861
                                }
 
15862
    break;
 
15863
 
 
15864
  case 702:
 
15865
#line 4452 "gram.y"
 
15866
    {
 
15867
                                        TransactionStmt *n = makeNode(TransactionStmt);
 
15868
                                        n->kind = TRANS_STMT_ROLLBACK_PREPARED;
 
15869
                                        n->gid = yyvsp[0].str;
 
15870
                                        yyval.node = (Node *)n;
 
15871
                                }
 
15872
    break;
 
15873
 
 
15874
  case 703:
 
15875
#line 4460 "gram.y"
 
15876
    {}
 
15877
    break;
 
15878
 
 
15879
  case 704:
 
15880
#line 4461 "gram.y"
 
15881
    {}
 
15882
    break;
 
15883
 
 
15884
  case 705:
 
15885
#line 4462 "gram.y"
 
15886
    {}
 
15887
    break;
 
15888
 
 
15889
  case 706:
 
15890
#line 4467 "gram.y"
 
15891
    { yyval.defelt = makeDefElem("transaction_isolation",
 
15892
                                                                           makeStringConst(yyvsp[0].str, NULL)); }
 
15893
    break;
 
15894
 
 
15895
  case 707:
 
15896
#line 4470 "gram.y"
 
15897
    { yyval.defelt = makeDefElem("transaction_read_only",
 
15898
                                                                           makeIntConst(TRUE)); }
 
15899
    break;
 
15900
 
 
15901
  case 708:
 
15902
#line 4473 "gram.y"
 
15903
    { yyval.defelt = makeDefElem("transaction_read_only",
 
15904
                                                                           makeIntConst(FALSE)); }
 
15905
    break;
 
15906
 
 
15907
  case 709:
 
15908
#line 4480 "gram.y"
 
15909
    { yyval.list = list_make1(yyvsp[0].defelt); }
 
15910
    break;
 
15911
 
 
15912
  case 710:
 
15913
#line 4482 "gram.y"
 
15914
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); }
 
15915
    break;
 
15916
 
 
15917
  case 711:
 
15918
#line 4484 "gram.y"
 
15919
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
15920
    break;
 
15921
 
 
15922
  case 713:
 
15923
#line 4490 "gram.y"
 
15924
    { yyval.list = NIL; }
 
15925
    break;
 
15926
 
 
15927
  case 714:
 
15928
#line 4503 "gram.y"
 
15929
    {
 
15930
                                        ViewStmt *n = makeNode(ViewStmt);
 
15931
                                        n->replace = false;
 
15932
                                        n->view = yyvsp[-3].range;
 
15933
                                        n->view->istemp = yyvsp[-5].boolean;
 
15934
                                        n->aliases = yyvsp[-2].list;
 
15935
                                        n->query = (Query *) yyvsp[0].node;
 
15936
                                        yyval.node = (Node *) n;
 
15937
                                }
 
15938
    break;
 
15939
 
 
15940
  case 715:
 
15941
#line 4514 "gram.y"
 
15942
    {
 
15943
                                        ViewStmt *n = makeNode(ViewStmt);
 
15944
                                        n->replace = true;
 
15945
                                        n->view = yyvsp[-3].range;
 
15946
                                        n->view->istemp = yyvsp[-5].boolean;
 
15947
                                        n->aliases = yyvsp[-2].list;
 
15948
                                        n->query = (Query *) yyvsp[0].node;
 
15949
                                        yyval.node = (Node *) n;
 
15950
                                }
 
15951
    break;
 
15952
 
 
15953
  case 716:
 
15954
#line 4533 "gram.y"
 
15955
    {
 
15956
                                        LoadStmt *n = makeNode(LoadStmt);
 
15957
                                        n->filename = yyvsp[0].str;
 
15958
                                        yyval.node = (Node *)n;
 
15959
                                }
 
15960
    break;
 
15961
 
 
15962
  case 717:
 
15963
#line 4549 "gram.y"
 
15964
    {
 
15965
                                        CreatedbStmt *n = makeNode(CreatedbStmt);
 
15966
                                        n->dbname = yyvsp[-2].str;
 
15967
                                        n->options = yyvsp[0].list;
 
15968
                                        yyval.node = (Node *)n;
 
15969
                                }
 
15970
    break;
 
15971
 
 
15972
  case 718:
 
15973
#line 4558 "gram.y"
 
15974
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
15975
    break;
 
15976
 
 
15977
  case 719:
 
15978
#line 4559 "gram.y"
 
15979
    { yyval.list = NIL; }
 
15980
    break;
 
15981
 
 
15982
  case 720:
 
15983
#line 4564 "gram.y"
 
15984
    {
 
15985
                                        yyval.defelt = makeDefElem("tablespace", (Node *)makeString(yyvsp[0].str));
 
15986
                                }
 
15987
    break;
 
15988
 
 
15989
  case 721:
 
15990
#line 4568 "gram.y"
 
15991
    {
 
15992
                                        yyval.defelt = makeDefElem("tablespace", NULL);
 
15993
                                }
 
15994
    break;
 
15995
 
 
15996
  case 722:
 
15997
#line 4572 "gram.y"
 
15998
    {
 
15999
                                        yyval.defelt = makeDefElem("location", (Node *)makeString(yyvsp[0].str));
 
16000
                                }
 
16001
    break;
 
16002
 
 
16003
  case 723:
 
16004
#line 4576 "gram.y"
 
16005
    {
 
16006
                                        yyval.defelt = makeDefElem("location", NULL);
 
16007
                                }
 
16008
    break;
 
16009
 
 
16010
  case 724:
 
16011
#line 4580 "gram.y"
 
16012
    {
 
16013
                                        yyval.defelt = makeDefElem("template", (Node *)makeString(yyvsp[0].str));
 
16014
                                }
 
16015
    break;
 
16016
 
 
16017
  case 725:
 
16018
#line 4584 "gram.y"
 
16019
    {
 
16020
                                        yyval.defelt = makeDefElem("template", NULL);
 
16021
                                }
 
16022
    break;
 
16023
 
 
16024
  case 726:
 
16025
#line 4588 "gram.y"
 
16026
    {
 
16027
                                        yyval.defelt = makeDefElem("encoding", (Node *)makeString(yyvsp[0].str));
 
16028
                                }
 
16029
    break;
 
16030
 
 
16031
  case 727:
 
16032
#line 4592 "gram.y"
 
16033
    {
 
16034
                                        yyval.defelt = makeDefElem("encoding", (Node *)makeInteger(yyvsp[0].ival));
 
16035
                                }
 
16036
    break;
 
16037
 
 
16038
  case 728:
 
16039
#line 4596 "gram.y"
 
16040
    {
 
16041
                                        yyval.defelt = makeDefElem("encoding", NULL);
 
16042
                                }
 
16043
    break;
 
16044
 
 
16045
  case 729:
 
16046
#line 4600 "gram.y"
 
16047
    {
 
16048
                                        yyval.defelt = makeDefElem("connectionlimit", (Node *)makeInteger(yyvsp[0].ival));
 
16049
                                }
 
16050
    break;
 
16051
 
 
16052
  case 730:
 
16053
#line 4604 "gram.y"
 
16054
    {
 
16055
                                        yyval.defelt = makeDefElem("owner", (Node *)makeString(yyvsp[0].str));
 
16056
                                }
 
16057
    break;
 
16058
 
 
16059
  case 731:
 
16060
#line 4608 "gram.y"
 
16061
    {
 
16062
                                        yyval.defelt = makeDefElem("owner", NULL);
 
16063
                                }
 
16064
    break;
 
16065
 
 
16066
  case 732:
 
16067
#line 4617 "gram.y"
 
16068
    {}
 
16069
    break;
 
16070
 
 
16071
  case 733:
 
16072
#line 4618 "gram.y"
 
16073
    {}
 
16074
    break;
 
16075
 
 
16076
  case 734:
 
16077
#line 4630 "gram.y"
 
16078
    {
 
16079
                                        AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
 
16080
                                        n->dbname = yyvsp[-2].str;
 
16081
                                        n->options = yyvsp[0].list;
 
16082
                                        yyval.node = (Node *)n;
 
16083
                                 }
 
16084
    break;
 
16085
 
 
16086
  case 735:
 
16087
#line 4640 "gram.y"
 
16088
    {
 
16089
                                        AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
 
16090
                                        n->dbname = yyvsp[-2].str;
 
16091
                                        n->variable = yyvsp[0].vsetstmt->name;
 
16092
                                        n->value = yyvsp[0].vsetstmt->args;
 
16093
                                        yyval.node = (Node *)n;
 
16094
                                }
 
16095
    break;
 
16096
 
 
16097
  case 736:
 
16098
#line 4648 "gram.y"
 
16099
    {
 
16100
                                        AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
 
16101
                                        n->dbname = yyvsp[-1].str;
 
16102
                                        n->variable = ((VariableResetStmt *)yyvsp[0].node)->name;
 
16103
                                        n->value = NIL;
 
16104
                                        yyval.node = (Node *)n;
 
16105
                                }
 
16106
    break;
 
16107
 
 
16108
  case 737:
 
16109
#line 4659 "gram.y"
 
16110
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); }
 
16111
    break;
 
16112
 
 
16113
  case 738:
 
16114
#line 4660 "gram.y"
 
16115
    { yyval.list = NIL; }
 
16116
    break;
 
16117
 
 
16118
  case 739:
 
16119
#line 4665 "gram.y"
 
16120
    {
 
16121
                                        yyval.defelt = makeDefElem("connectionlimit", (Node *)makeInteger(yyvsp[0].ival));
 
16122
                                }
 
16123
    break;
 
16124
 
 
16125
  case 740:
 
16126
#line 4679 "gram.y"
 
16127
    {
 
16128
                                        DropdbStmt *n = makeNode(DropdbStmt);
 
16129
                                        n->dbname = yyvsp[0].str;
 
16130
                                        yyval.node = (Node *)n;
 
16131
                                }
 
16132
    break;
 
16133
 
 
16134
  case 741:
 
16135
#line 4695 "gram.y"
 
16136
    {
 
16137
                                        CreateDomainStmt *n = makeNode(CreateDomainStmt);
 
16138
                                        n->domainname = yyvsp[-3].list;
 
16139
                                        n->typename = yyvsp[-1].typnam;
 
16140
                                        n->constraints = yyvsp[0].list;
 
16141
                                        yyval.node = (Node *)n;
 
16142
                                }
 
16143
    break;
 
16144
 
 
16145
  case 742:
 
16146
#line 4707 "gram.y"
 
16147
    {
 
16148
                                        AlterDomainStmt *n = makeNode(AlterDomainStmt);
 
16149
                                        n->subtype = 'T';
 
16150
                                        n->typename = yyvsp[-1].list;
 
16151
                                        n->def = yyvsp[0].node;
 
16152
                                        yyval.node = (Node *)n;
 
16153
                                }
 
16154
    break;
 
16155
 
 
16156
  case 743:
 
16157
#line 4716 "gram.y"
 
16158
    {
 
16159
                                        AlterDomainStmt *n = makeNode(AlterDomainStmt);
 
16160
                                        n->subtype = 'N';
 
16161
                                        n->typename = yyvsp[-3].list;
 
16162
                                        yyval.node = (Node *)n;
 
16163
                                }
 
16164
    break;
 
16165
 
 
16166
  case 744:
 
16167
#line 4724 "gram.y"
 
16168
    {
 
16169
                                        AlterDomainStmt *n = makeNode(AlterDomainStmt);
 
16170
                                        n->subtype = 'O';
 
16171
                                        n->typename = yyvsp[-3].list;
 
16172
                                        yyval.node = (Node *)n;
 
16173
                                }
 
16174
    break;
 
16175
 
 
16176
  case 745:
 
16177
#line 4732 "gram.y"
 
16178
    {
 
16179
                                        AlterDomainStmt *n = makeNode(AlterDomainStmt);
 
16180
                                        n->subtype = 'C';
 
16181
                                        n->typename = yyvsp[-2].list;
 
16182
                                        n->def = yyvsp[0].node;
 
16183
                                        yyval.node = (Node *)n;
 
16184
                                }
 
16185
    break;
 
16186
 
 
16187
  case 746:
 
16188
#line 4741 "gram.y"
 
16189
    {
 
16190
                                        AlterDomainStmt *n = makeNode(AlterDomainStmt);
 
16191
                                        n->subtype = 'X';
 
16192
                                        n->typename = yyvsp[-4].list;
 
16193
                                        n->name = yyvsp[-1].str;
 
16194
                                        n->behavior = yyvsp[0].dbehavior;
 
16195
                                        yyval.node = (Node *)n;
 
16196
                                }
 
16197
    break;
 
16198
 
 
16199
  case 747:
 
16200
#line 4751 "gram.y"
 
16201
    {}
 
16202
    break;
 
16203
 
 
16204
  case 748:
 
16205
#line 4752 "gram.y"
 
16206
    {}
 
16207
    break;
 
16208
 
 
16209
  case 749:
 
16210
#line 4768 "gram.y"
 
16211
    {
 
16212
                          CreateConversionStmt *n = makeNode(CreateConversionStmt);
 
16213
                          n->conversion_name = yyvsp[-6].list;
 
16214
                          n->for_encoding_name = yyvsp[-4].str;
 
16215
                          n->to_encoding_name = yyvsp[-2].str;
 
16216
                          n->func_name = yyvsp[0].list;
 
16217
                          n->def = yyvsp[-8].boolean;
 
16218
                          yyval.node = (Node *)n;
 
16219
                        }
 
16220
    break;
 
16221
 
 
16222
  case 750:
 
16223
#line 4790 "gram.y"
 
16224
    {
 
16225
                                   ClusterStmt *n = makeNode(ClusterStmt);
 
16226
                                   n->relation = yyvsp[0].range;
 
16227
                                   n->indexname = yyvsp[-2].str;
 
16228
                                   yyval.node = (Node*)n;
 
16229
                                }
 
16230
    break;
 
16231
 
 
16232
  case 751:
 
16233
#line 4797 "gram.y"
 
16234
    {
 
16235
                               ClusterStmt *n = makeNode(ClusterStmt);
 
16236
                                   n->relation = yyvsp[0].range;
 
16237
                                   n->indexname = NULL;
 
16238
                                   yyval.node = (Node*)n;
 
16239
                                }
 
16240
    break;
 
16241
 
 
16242
  case 752:
 
16243
#line 4804 "gram.y"
 
16244
    {
 
16245
                                   ClusterStmt *n = makeNode(ClusterStmt);
 
16246
                                   n->relation = NULL;
 
16247
                                   n->indexname = NULL;
 
16248
                                   yyval.node = (Node*)n;
 
16249
                                }
 
16250
    break;
 
16251
 
 
16252
  case 753:
 
16253
#line 4821 "gram.y"
 
16254
    {
 
16255
                                        VacuumStmt *n = makeNode(VacuumStmt);
 
16256
                                        n->vacuum = true;
 
16257
                                        n->analyze = false;
 
16258
                                        n->full = yyvsp[-2].boolean;
 
16259
                                        n->freeze = yyvsp[-1].boolean;
 
16260
                                        n->verbose = yyvsp[0].boolean;
 
16261
                                        n->relation = NULL;
 
16262
                                        n->va_cols = NIL;
 
16263
                                        yyval.node = (Node *)n;
 
16264
                                }
 
16265
    break;
 
16266
 
 
16267
  case 754:
 
16268
#line 4833 "gram.y"
 
16269
    {
 
16270
                                        VacuumStmt *n = makeNode(VacuumStmt);
 
16271
                                        n->vacuum = true;
 
16272
                                        n->analyze = false;
 
16273
                                        n->full = yyvsp[-3].boolean;
 
16274
                                        n->freeze = yyvsp[-2].boolean;
 
16275
                                        n->verbose = yyvsp[-1].boolean;
 
16276
                                        n->relation = yyvsp[0].range;
 
16277
                                        n->va_cols = NIL;
 
16278
                                        yyval.node = (Node *)n;
 
16279
                                }
 
16280
    break;
 
16281
 
 
16282
  case 755:
 
16283
#line 4845 "gram.y"
 
16284
    {
 
16285
                                        VacuumStmt *n = (VacuumStmt *) yyvsp[0].node;
 
16286
                                        n->vacuum = true;
 
16287
                                        n->full = yyvsp[-3].boolean;
 
16288
                                        n->freeze = yyvsp[-2].boolean;
 
16289
                                        n->verbose |= yyvsp[-1].boolean;
 
16290
                                        yyval.node = (Node *)n;
 
16291
                                }
 
16292
    break;
 
16293
 
 
16294
  case 756:
 
16295
#line 4857 "gram.y"
 
16296
    {
 
16297
                                        VacuumStmt *n = makeNode(VacuumStmt);
 
16298
                                        n->vacuum = false;
 
16299
                                        n->analyze = true;
 
16300
                                        n->full = false;
 
16301
                                        n->freeze = false;
 
16302
                                        n->verbose = yyvsp[0].boolean;
 
16303
                                        n->relation = NULL;
 
16304
                                        n->va_cols = NIL;
 
16305
                                        yyval.node = (Node *)n;
 
16306
                                }
 
16307
    break;
 
16308
 
 
16309
  case 757:
 
16310
#line 4869 "gram.y"
 
16311
    {
 
16312
                                        VacuumStmt *n = makeNode(VacuumStmt);
 
16313
                                        n->vacuum = false;
 
16314
                                        n->analyze = true;
 
16315
                                        n->full = false;
 
16316
                                        n->freeze = false;
 
16317
                                        n->verbose = yyvsp[-2].boolean;
 
16318
                                        n->relation = yyvsp[-1].range;
 
16319
                                        n->va_cols = yyvsp[0].list;
 
16320
                                        yyval.node = (Node *)n;
 
16321
                                }
 
16322
    break;
 
16323
 
 
16324
  case 758:
 
16325
#line 4883 "gram.y"
 
16326
    {}
 
16327
    break;
 
16328
 
 
16329
  case 759:
 
16330
#line 4884 "gram.y"
 
16331
    {}
 
16332
    break;
 
16333
 
 
16334
  case 760:
 
16335
#line 4888 "gram.y"
 
16336
    { yyval.boolean = TRUE; }
 
16337
    break;
 
16338
 
 
16339
  case 761:
 
16340
#line 4889 "gram.y"
 
16341
    { yyval.boolean = FALSE; }
 
16342
    break;
 
16343
 
 
16344
  case 762:
 
16345
#line 4892 "gram.y"
 
16346
    { yyval.boolean = TRUE; }
 
16347
    break;
 
16348
 
 
16349
  case 763:
 
16350
#line 4893 "gram.y"
 
16351
    { yyval.boolean = FALSE; }
 
16352
    break;
 
16353
 
 
16354
  case 764:
 
16355
#line 4896 "gram.y"
 
16356
    { yyval.boolean = TRUE; }
 
16357
    break;
 
16358
 
 
16359
  case 765:
 
16360
#line 4897 "gram.y"
 
16361
    { yyval.boolean = FALSE; }
 
16362
    break;
 
16363
 
 
16364
  case 766:
 
16365
#line 4901 "gram.y"
 
16366
    { yyval.list = yyvsp[-1].list; }
 
16367
    break;
 
16368
 
 
16369
  case 767:
 
16370
#line 4902 "gram.y"
 
16371
    { yyval.list = NIL; }
 
16372
    break;
 
16373
 
 
16374
  case 768:
 
16375
#line 4914 "gram.y"
 
16376
    {
 
16377
                                        ExplainStmt *n = makeNode(ExplainStmt);
 
16378
                                        n->analyze = yyvsp[-2].boolean;
 
16379
                                        n->verbose = yyvsp[-1].boolean;
 
16380
                                        n->query = (Query*)yyvsp[0].node;
 
16381
                                        yyval.node = (Node *)n;
 
16382
                                }
 
16383
    break;
 
16384
 
 
16385
  case 775:
 
16386
#line 4933 "gram.y"
 
16387
    { yyval.boolean = TRUE; }
 
16388
    break;
 
16389
 
 
16390
  case 776:
 
16391
#line 4934 "gram.y"
 
16392
    { yyval.boolean = FALSE; }
 
16393
    break;
 
16394
 
 
16395
  case 777:
 
16396
#line 4945 "gram.y"
 
16397
    {
 
16398
                                        PrepareStmt *n = makeNode(PrepareStmt);
 
16399
                                        n->name = yyvsp[-3].str;
 
16400
                                        n->argtypes = yyvsp[-2].list;
 
16401
                                        n->query = (Query *) yyvsp[0].node;
 
16402
                                        yyval.node = (Node *) n;
 
16403
                                }
 
16404
    break;
 
16405
 
 
16406
  case 778:
 
16407
#line 4954 "gram.y"
 
16408
    { yyval.list = yyvsp[-1].list; }
 
16409
    break;
 
16410
 
 
16411
  case 779:
 
16412
#line 4955 "gram.y"
 
16413
    { yyval.list = NIL; }
 
16414
    break;
 
16415
 
 
16416
  case 780:
 
16417
#line 4958 "gram.y"
 
16418
    { yyval.list = list_make1(yyvsp[0].typnam); }
 
16419
    break;
 
16420
 
 
16421
  case 781:
 
16422
#line 4960 "gram.y"
 
16423
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].typnam); }
 
16424
    break;
 
16425
 
 
16426
  case 786:
 
16427
#line 4978 "gram.y"
 
16428
    {
 
16429
                                        ExecuteStmt *n = makeNode(ExecuteStmt);
 
16430
                                        n->name = yyvsp[-1].str;
 
16431
                                        n->params = yyvsp[0].list;
 
16432
                                        n->into = NULL;
 
16433
                                        yyval.node = (Node *) n;
 
16434
                                }
 
16435
    break;
 
16436
 
 
16437
  case 787:
 
16438
#line 4986 "gram.y"
 
16439
    {
 
16440
                                        ExecuteStmt *n = makeNode(ExecuteStmt);
 
16441
                                        n->name = yyvsp[-1].str;
 
16442
                                        n->params = yyvsp[0].list;
 
16443
                                        yyvsp[-5].range->istemp = yyvsp[-7].boolean;
 
16444
                                        n->into = yyvsp[-5].range;
 
16445
                                        if (yyvsp[-4].list)
 
16446
                                                ereport(ERROR,
 
16447
                                                                (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
 
16448
                                                                 errmsg("column name list not allowed in CREATE TABLE / AS EXECUTE")));
 
16449
                                        /* ... because it's not implemented, but it could be */
 
16450
                                        yyval.node = (Node *) n;
 
16451
                                }
 
16452
    break;
 
16453
 
 
16454
  case 788:
 
16455
#line 5001 "gram.y"
 
16456
    { yyval.list = yyvsp[-1].list; }
 
16457
    break;
 
16458
 
 
16459
  case 789:
 
16460
#line 5002 "gram.y"
 
16461
    { yyval.list = NIL; }
 
16462
    break;
 
16463
 
 
16464
  case 790:
 
16465
#line 5013 "gram.y"
 
16466
    {
 
16467
                                                DeallocateStmt *n = makeNode(DeallocateStmt);
 
16468
                                                n->name = yyvsp[0].str;
 
16469
                                                yyval.node = (Node *) n;
 
16470
                                        }
 
16471
    break;
 
16472
 
 
16473
  case 791:
 
16474
#line 5019 "gram.y"
 
16475
    {
 
16476
                                                DeallocateStmt *n = makeNode(DeallocateStmt);
 
16477
                                                n->name = yyvsp[0].str;
 
16478
                                                yyval.node = (Node *) n;
 
16479
                                        }
 
16480
    break;
 
16481
 
 
16482
  case 792:
 
16483
#line 5035 "gram.y"
 
16484
    {
 
16485
                                        yyvsp[0].istmt->relation = yyvsp[-1].range;
 
16486
                                        yyval.node = (Node *) yyvsp[0].istmt;
 
16487
                                }
 
16488
    break;
 
16489
 
 
16490
  case 793:
 
16491
#line 5043 "gram.y"
 
16492
    {
 
16493
                                        yyval.istmt = makeNode(InsertStmt);
 
16494
                                        yyval.istmt->cols = NIL;
 
16495
                                        yyval.istmt->targetList = yyvsp[-1].list;
 
16496
                                        yyval.istmt->selectStmt = NULL;
 
16497
                                }
 
16498
    break;
 
16499
 
 
16500
  case 794:
 
16501
#line 5050 "gram.y"
 
16502
    {
 
16503
                                        yyval.istmt = makeNode(InsertStmt);
 
16504
                                        yyval.istmt->cols = NIL;
 
16505
                                        yyval.istmt->targetList = NIL;
 
16506
                                        yyval.istmt->selectStmt = NULL;
 
16507
                                }
 
16508
    break;
 
16509
 
 
16510
  case 795:
 
16511
#line 5057 "gram.y"
 
16512
    {
 
16513
                                        yyval.istmt = makeNode(InsertStmt);
 
16514
                                        yyval.istmt->cols = NIL;
 
16515
                                        yyval.istmt->targetList = NIL;
 
16516
                                        yyval.istmt->selectStmt = yyvsp[0].node;
 
16517
                                }
 
16518
    break;
 
16519
 
 
16520
  case 796:
 
16521
#line 5064 "gram.y"
 
16522
    {
 
16523
                                        yyval.istmt = makeNode(InsertStmt);
 
16524
                                        yyval.istmt->cols = yyvsp[-5].list;
 
16525
                                        yyval.istmt->targetList = yyvsp[-1].list;
 
16526
                                        yyval.istmt->selectStmt = NULL;
 
16527
                                }
 
16528
    break;
 
16529
 
 
16530
  case 797:
 
16531
#line 5071 "gram.y"
 
16532
    {
 
16533
                                        yyval.istmt = makeNode(InsertStmt);
 
16534
                                        yyval.istmt->cols = yyvsp[-2].list;
 
16535
                                        yyval.istmt->targetList = NIL;
 
16536
                                        yyval.istmt->selectStmt = yyvsp[0].node;
 
16537
                                }
 
16538
    break;
 
16539
 
 
16540
  case 798:
 
16541
#line 5081 "gram.y"
 
16542
    { yyval.list = list_make1(yyvsp[0].target); }
 
16543
    break;
 
16544
 
 
16545
  case 799:
 
16546
#line 5083 "gram.y"
 
16547
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); }
 
16548
    break;
 
16549
 
 
16550
  case 800:
 
16551
#line 5088 "gram.y"
 
16552
    {
 
16553
                                        yyval.target = makeNode(ResTarget);
 
16554
                                        yyval.target->name = yyvsp[-1].str;
 
16555
                                        yyval.target->indirection = yyvsp[0].list;
 
16556
                                        yyval.target->val = NULL;
 
16557
                                }
 
16558
    break;
 
16559
 
 
16560
  case 801:
 
16561
#line 5105 "gram.y"
 
16562
    {
 
16563
                                        DeleteStmt *n = makeNode(DeleteStmt);
 
16564
                                        n->relation = yyvsp[-2].range;
 
16565
                                        n->usingClause = yyvsp[-1].list;
 
16566
                                        n->whereClause = yyvsp[0].node;
 
16567
                                        yyval.node = (Node *)n;
 
16568
                                }
 
16569
    break;
 
16570
 
 
16571
  case 802:
 
16572
#line 5115 "gram.y"
 
16573
    { yyval.list = yyvsp[0].list; }
 
16574
    break;
 
16575
 
 
16576
  case 803:
 
16577
#line 5116 "gram.y"
 
16578
    { yyval.list = NIL; }
 
16579
    break;
 
16580
 
 
16581
  case 804:
 
16582
#line 5120 "gram.y"
 
16583
    {
 
16584
                                        LockStmt *n = makeNode(LockStmt);
 
16585
 
 
16586
                                        n->relations = yyvsp[-2].list;
 
16587
                                        n->mode = yyvsp[-1].ival;
 
16588
                                        n->nowait = yyvsp[0].boolean;
 
16589
                                        yyval.node = (Node *)n;
 
16590
                                }
 
16591
    break;
 
16592
 
 
16593
  case 805:
 
16594
#line 5130 "gram.y"
 
16595
    { yyval.ival = yyvsp[-1].ival; }
 
16596
    break;
 
16597
 
 
16598
  case 806:
 
16599
#line 5131 "gram.y"
 
16600
    { yyval.ival = AccessExclusiveLock; }
 
16601
    break;
 
16602
 
 
16603
  case 807:
 
16604
#line 5134 "gram.y"
 
16605
    { yyval.ival = AccessShareLock; }
 
16606
    break;
 
16607
 
 
16608
  case 808:
 
16609
#line 5135 "gram.y"
 
16610
    { yyval.ival = RowShareLock; }
 
16611
    break;
 
16612
 
 
16613
  case 809:
 
16614
#line 5136 "gram.y"
 
16615
    { yyval.ival = RowExclusiveLock; }
 
16616
    break;
 
16617
 
 
16618
  case 810:
 
16619
#line 5137 "gram.y"
 
16620
    { yyval.ival = ShareUpdateExclusiveLock; }
 
16621
    break;
 
16622
 
 
16623
  case 811:
 
16624
#line 5138 "gram.y"
 
16625
    { yyval.ival = ShareLock; }
 
16626
    break;
 
16627
 
 
16628
  case 812:
 
16629
#line 5139 "gram.y"
 
16630
    { yyval.ival = ShareRowExclusiveLock; }
 
16631
    break;
 
16632
 
 
16633
  case 813:
 
16634
#line 5140 "gram.y"
 
16635
    { yyval.ival = ExclusiveLock; }
 
16636
    break;
 
16637
 
 
16638
  case 814:
 
16639
#line 5141 "gram.y"
 
16640
    { yyval.ival = AccessExclusiveLock; }
 
16641
    break;
 
16642
 
 
16643
  case 815:
 
16644
#line 5144 "gram.y"
 
16645
    { yyval.boolean = TRUE; }
 
16646
    break;
 
16647
 
 
16648
  case 816:
 
16649
#line 5145 "gram.y"
 
16650
    { yyval.boolean = FALSE; }
 
16651
    break;
 
16652
 
 
16653
  case 817:
 
16654
#line 5160 "gram.y"
 
16655
    {
 
16656
                                        UpdateStmt *n = makeNode(UpdateStmt);
 
16657
                                        n->relation = yyvsp[-4].range;
 
16658
                                        n->targetList = yyvsp[-2].list;
 
16659
                                        n->fromClause = yyvsp[-1].list;
 
16660
                                        n->whereClause = yyvsp[0].node;
 
16661
                                        yyval.node = (Node *)n;
 
16662
                                }
 
16663
    break;
 
16664
 
 
16665
  case 818:
 
16666
#line 5178 "gram.y"
 
16667
    {
 
16668
                                        DeclareCursorStmt *n = makeNode(DeclareCursorStmt);
 
16669
                                        n->portalname = yyvsp[-5].str;
 
16670
                                        n->options = yyvsp[-4].ival;
 
16671
                                        n->query = yyvsp[0].node;
 
16672
                                        if (yyvsp[-2].boolean)
 
16673
                                                n->options |= CURSOR_OPT_HOLD;
 
16674
                                        yyval.node = (Node *)n;
 
16675
                                }
 
16676
    break;
 
16677
 
 
16678
  case 819:
 
16679
#line 5189 "gram.y"
 
16680
    { yyval.ival = 0; }
 
16681
    break;
 
16682
 
 
16683
  case 820:
 
16684
#line 5190 "gram.y"
 
16685
    { yyval.ival = yyvsp[-2].ival | CURSOR_OPT_NO_SCROLL; }
 
16686
    break;
 
16687
 
 
16688
  case 821:
 
16689
#line 5191 "gram.y"
 
16690
    { yyval.ival = yyvsp[-1].ival | CURSOR_OPT_SCROLL; }
 
16691
    break;
 
16692
 
 
16693
  case 822:
 
16694
#line 5192 "gram.y"
 
16695
    { yyval.ival = yyvsp[-1].ival | CURSOR_OPT_BINARY; }
 
16696
    break;
 
16697
 
 
16698
  case 823:
 
16699
#line 5193 "gram.y"
 
16700
    { yyval.ival = yyvsp[-1].ival | CURSOR_OPT_INSENSITIVE; }
 
16701
    break;
 
16702
 
 
16703
  case 824:
 
16704
#line 5196 "gram.y"
 
16705
    { yyval.boolean = FALSE; }
 
16706
    break;
 
16707
 
 
16708
  case 825:
 
16709
#line 5197 "gram.y"
 
16710
    { yyval.boolean = TRUE; }
 
16711
    break;
 
16712
 
 
16713
  case 826:
 
16714
#line 5198 "gram.y"
 
16715
    { yyval.boolean = FALSE; }
 
16716
    break;
 
16717
 
 
16718
  case 829:
 
16719
#line 5251 "gram.y"
 
16720
    { yyval.node = yyvsp[-1].node; }
 
16721
    break;
 
16722
 
 
16723
  case 830:
 
16724
#line 5252 "gram.y"
 
16725
    { yyval.node = yyvsp[-1].node; }
 
16726
    break;
 
16727
 
 
16728
  case 831:
 
16729
#line 5262 "gram.y"
 
16730
    { yyval.node = yyvsp[0].node; }
 
16731
    break;
 
16732
 
 
16733
  case 832:
 
16734
#line 5264 "gram.y"
 
16735
    {
 
16736
                                        insertSelectOptions((SelectStmt *) yyvsp[-1].node, yyvsp[0].list, NULL,
 
16737
                                                                                NULL, NULL);
 
16738
                                        yyval.node = yyvsp[-1].node;
 
16739
                                }
 
16740
    break;
 
16741
 
 
16742
  case 833:
 
16743
#line 5270 "gram.y"
 
16744
    {
 
16745
                                        insertSelectOptions((SelectStmt *) yyvsp[-3].node, yyvsp[-2].list, yyvsp[-1].node,
 
16746
                                                                                list_nth(yyvsp[0].list, 0), list_nth(yyvsp[0].list, 1));
 
16747
                                        yyval.node = yyvsp[-3].node;
 
16748
                                }
 
16749
    break;
 
16750
 
 
16751
  case 834:
 
16752
#line 5276 "gram.y"
 
16753
    {
 
16754
                                        insertSelectOptions((SelectStmt *) yyvsp[-3].node, yyvsp[-2].list, yyvsp[0].node,
 
16755
                                                                                list_nth(yyvsp[-1].list, 0), list_nth(yyvsp[-1].list, 1));
 
16756
                                        yyval.node = yyvsp[-3].node;
 
16757
                                }
 
16758
    break;
 
16759
 
 
16760
  case 835:
 
16761
#line 5284 "gram.y"
 
16762
    { yyval.node = yyvsp[0].node; }
 
16763
    break;
 
16764
 
 
16765
  case 836:
 
16766
#line 5285 "gram.y"
 
16767
    { yyval.node = yyvsp[0].node; }
 
16768
    break;
 
16769
 
 
16770
  case 837:
 
16771
#line 5315 "gram.y"
 
16772
    {
 
16773
                                        SelectStmt *n = makeNode(SelectStmt);
 
16774
                                        n->distinctClause = yyvsp[-6].list;
 
16775
                                        n->targetList = yyvsp[-5].list;
 
16776
                                        n->into = yyvsp[-4].range;
 
16777
                                        n->intoColNames = NIL;
 
16778
                                        n->intoHasOids = DEFAULT_OIDS;
 
16779
                                        n->fromClause = yyvsp[-3].list;
 
16780
                                        n->whereClause = yyvsp[-2].node;
 
16781
                                        n->groupClause = yyvsp[-1].list;
 
16782
                                        n->havingClause = yyvsp[0].node;
 
16783
                                        yyval.node = (Node *)n;
 
16784
                                }
 
16785
    break;
 
16786
 
 
16787
  case 838:
 
16788
#line 5329 "gram.y"
 
16789
    {
 
16790
                                        yyval.node = makeSetOp(SETOP_UNION, yyvsp[-1].boolean, yyvsp[-3].node, yyvsp[0].node);
 
16791
                                }
 
16792
    break;
 
16793
 
 
16794
  case 839:
 
16795
#line 5333 "gram.y"
 
16796
    {
 
16797
                                        yyval.node = makeSetOp(SETOP_INTERSECT, yyvsp[-1].boolean, yyvsp[-3].node, yyvsp[0].node);
 
16798
                                }
 
16799
    break;
 
16800
 
 
16801
  case 840:
 
16802
#line 5337 "gram.y"
 
16803
    {
 
16804
                                        yyval.node = makeSetOp(SETOP_EXCEPT, yyvsp[-1].boolean, yyvsp[-3].node, yyvsp[0].node);
 
16805
                                }
 
16806
    break;
 
16807
 
 
16808
  case 841:
 
16809
#line 5343 "gram.y"
 
16810
    { yyval.range = yyvsp[0].range; }
 
16811
    break;
 
16812
 
 
16813
  case 842:
 
16814
#line 5344 "gram.y"
 
16815
    { yyval.range = NULL; }
 
16816
    break;
 
16817
 
 
16818
  case 843:
 
16819
#line 5353 "gram.y"
 
16820
    {
 
16821
                                        yyval.range = yyvsp[0].range;
 
16822
                                        yyval.range->istemp = true;
 
16823
                                }
 
16824
    break;
 
16825
 
 
16826
  case 844:
 
16827
#line 5358 "gram.y"
 
16828
    {
 
16829
                                        yyval.range = yyvsp[0].range;
 
16830
                                        yyval.range->istemp = true;
 
16831
                                }
 
16832
    break;
 
16833
 
 
16834
  case 845:
 
16835
#line 5363 "gram.y"
 
16836
    {
 
16837
                                        yyval.range = yyvsp[0].range;
 
16838
                                        yyval.range->istemp = true;
 
16839
                                }
 
16840
    break;
 
16841
 
 
16842
  case 846:
 
16843
#line 5368 "gram.y"
 
16844
    {
 
16845
                                        yyval.range = yyvsp[0].range;
 
16846
                                        yyval.range->istemp = true;
 
16847
                                }
 
16848
    break;
 
16849
 
 
16850
  case 847:
 
16851
#line 5373 "gram.y"
 
16852
    {
 
16853
                                        yyval.range = yyvsp[0].range;
 
16854
                                        yyval.range->istemp = true;
 
16855
                                }
 
16856
    break;
 
16857
 
 
16858
  case 848:
 
16859
#line 5378 "gram.y"
 
16860
    {
 
16861
                                        yyval.range = yyvsp[0].range;
 
16862
                                        yyval.range->istemp = true;
 
16863
                                }
 
16864
    break;
 
16865
 
 
16866
  case 849:
 
16867
#line 5383 "gram.y"
 
16868
    {
 
16869
                                        yyval.range = yyvsp[0].range;
 
16870
                                        yyval.range->istemp = false;
 
16871
                                }
 
16872
    break;
 
16873
 
 
16874
  case 850:
 
16875
#line 5388 "gram.y"
 
16876
    {
 
16877
                                        yyval.range = yyvsp[0].range;
 
16878
                                        yyval.range->istemp = false;
 
16879
                                }
 
16880
    break;
 
16881
 
 
16882
  case 851:
 
16883
#line 5394 "gram.y"
 
16884
    {}
 
16885
    break;
 
16886
 
 
16887
  case 852:
 
16888
#line 5395 "gram.y"
 
16889
    {}
 
16890
    break;
 
16891
 
 
16892
  case 853:
 
16893
#line 5398 "gram.y"
 
16894
    { yyval.boolean = TRUE; }
 
16895
    break;
 
16896
 
 
16897
  case 854:
 
16898
#line 5399 "gram.y"
 
16899
    { yyval.boolean = FALSE; }
 
16900
    break;
 
16901
 
 
16902
  case 855:
 
16903
#line 5400 "gram.y"
 
16904
    { yyval.boolean = FALSE; }
 
16905
    break;
 
16906
 
 
16907
  case 856:
 
16908
#line 5407 "gram.y"
 
16909
    { yyval.list = list_make1(NIL); }
 
16910
    break;
 
16911
 
 
16912
  case 857:
 
16913
#line 5408 "gram.y"
 
16914
    { yyval.list = yyvsp[-1].list; }
 
16915
    break;
 
16916
 
 
16917
  case 858:
 
16918
#line 5409 "gram.y"
 
16919
    { yyval.list = NIL; }
 
16920
    break;
 
16921
 
 
16922
  case 859:
 
16923
#line 5410 "gram.y"
 
16924
    { yyval.list = NIL; }
 
16925
    break;
 
16926
 
 
16927
  case 860:
 
16928
#line 5414 "gram.y"
 
16929
    { yyval.list = yyvsp[0].list;}
 
16930
    break;
 
16931
 
 
16932
  case 861:
 
16933
#line 5415 "gram.y"
 
16934
    { yyval.list = NIL; }
 
16935
    break;
 
16936
 
 
16937
  case 862:
 
16938
#line 5419 "gram.y"
 
16939
    { yyval.list = yyvsp[0].list; }
 
16940
    break;
 
16941
 
 
16942
  case 863:
 
16943
#line 5423 "gram.y"
 
16944
    { yyval.list = list_make1(yyvsp[0].sortby); }
 
16945
    break;
 
16946
 
 
16947
  case 864:
 
16948
#line 5424 "gram.y"
 
16949
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortby); }
 
16950
    break;
 
16951
 
 
16952
  case 865:
 
16953
#line 5428 "gram.y"
 
16954
    {
 
16955
                                        yyval.sortby = makeNode(SortBy);
 
16956
                                        yyval.sortby->node = yyvsp[-2].node;
 
16957
                                        yyval.sortby->sortby_kind = SORTBY_USING;
 
16958
                                        yyval.sortby->useOp = yyvsp[0].list;
 
16959
                                }
 
16960
    break;
 
16961
 
 
16962
  case 866:
 
16963
#line 5435 "gram.y"
 
16964
    {
 
16965
                                        yyval.sortby = makeNode(SortBy);
 
16966
                                        yyval.sortby->node = yyvsp[-1].node;
 
16967
                                        yyval.sortby->sortby_kind = SORTBY_ASC;
 
16968
                                        yyval.sortby->useOp = NIL;
 
16969
                                }
 
16970
    break;
 
16971
 
 
16972
  case 867:
 
16973
#line 5442 "gram.y"
 
16974
    {
 
16975
                                        yyval.sortby = makeNode(SortBy);
 
16976
                                        yyval.sortby->node = yyvsp[-1].node;
 
16977
                                        yyval.sortby->sortby_kind = SORTBY_DESC;
 
16978
                                        yyval.sortby->useOp = NIL;
 
16979
                                }
 
16980
    break;
 
16981
 
 
16982
  case 868:
 
16983
#line 5449 "gram.y"
 
16984
    {
 
16985
                                        yyval.sortby = makeNode(SortBy);
 
16986
                                        yyval.sortby->node = yyvsp[0].node;
 
16987
                                        yyval.sortby->sortby_kind = SORTBY_ASC; /* default */
 
16988
                                        yyval.sortby->useOp = NIL;
 
16989
                                }
 
16990
    break;
 
16991
 
 
16992
  case 869:
 
16993
#line 5460 "gram.y"
 
16994
    { yyval.list = list_make2(yyvsp[0].node, yyvsp[-2].node); }
 
16995
    break;
 
16996
 
 
16997
  case 870:
 
16998
#line 5462 "gram.y"
 
16999
    { yyval.list = list_make2(yyvsp[-2].node, yyvsp[0].node); }
 
17000
    break;
 
17001
 
 
17002
  case 871:
 
17003
#line 5464 "gram.y"
 
17004
    { yyval.list = list_make2(NULL, yyvsp[0].node); }
 
17005
    break;
 
17006
 
 
17007
  case 872:
 
17008
#line 5466 "gram.y"
 
17009
    { yyval.list = list_make2(yyvsp[0].node, NULL); }
 
17010
    break;
 
17011
 
 
17012
  case 873:
 
17013
#line 5468 "gram.y"
 
17014
    {
 
17015
                                        /* Disabled because it was too confusing, bjm 2002-02-18 */
 
17016
                                        ereport(ERROR,
 
17017
                                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
17018
                                                         errmsg("LIMIT #,# syntax is not supported"),
 
17019
                                                         errhint("Use separate LIMIT and OFFSET clauses.")));
 
17020
                                }
 
17021
    break;
 
17022
 
 
17023
  case 874:
 
17024
#line 5478 "gram.y"
 
17025
    { yyval.list = yyvsp[0].list; }
 
17026
    break;
 
17027
 
 
17028
  case 875:
 
17029
#line 5480 "gram.y"
 
17030
    { yyval.list = list_make2(NULL,NULL); }
 
17031
    break;
 
17032
 
 
17033
  case 876:
 
17034
#line 5484 "gram.y"
 
17035
    { yyval.node = yyvsp[0].node; }
 
17036
    break;
 
17037
 
 
17038
  case 877:
 
17039
#line 5486 "gram.y"
 
17040
    {
 
17041
                                        /* LIMIT ALL is represented as a NULL constant */
 
17042
                                        A_Const *n = makeNode(A_Const);
 
17043
                                        n->val.type = T_Null;
 
17044
                                        yyval.node = (Node *)n;
 
17045
                                }
 
17046
    break;
 
17047
 
 
17048
  case 878:
 
17049
#line 5495 "gram.y"
 
17050
    { yyval.node = yyvsp[0].node; }
 
17051
    break;
 
17052
 
 
17053
  case 879:
 
17054
#line 5499 "gram.y"
 
17055
    { yyval.list = yyvsp[0].list; }
 
17056
    break;
 
17057
 
 
17058
  case 880:
 
17059
#line 5500 "gram.y"
 
17060
    { yyval.list = NIL; }
 
17061
    break;
 
17062
 
 
17063
  case 881:
 
17064
#line 5504 "gram.y"
 
17065
    { yyval.node = yyvsp[0].node; }
 
17066
    break;
 
17067
 
 
17068
  case 882:
 
17069
#line 5505 "gram.y"
 
17070
    { yyval.node = NULL; }
 
17071
    break;
 
17072
 
 
17073
  case 883:
 
17074
#line 5510 "gram.y"
 
17075
    {
 
17076
                                        LockingClause *n = makeNode(LockingClause);
 
17077
                                        n->lockedRels = yyvsp[-1].list;
 
17078
                                        n->forUpdate = TRUE;
 
17079
                                        n->nowait = yyvsp[0].boolean;
 
17080
                                        yyval.node = (Node *) n;
 
17081
                                }
 
17082
    break;
 
17083
 
 
17084
  case 884:
 
17085
#line 5518 "gram.y"
 
17086
    {
 
17087
                                        LockingClause *n = makeNode(LockingClause);
 
17088
                                        n->lockedRels = yyvsp[-1].list;
 
17089
                                        n->forUpdate = FALSE;
 
17090
                                        n->nowait = yyvsp[0].boolean;
 
17091
                                        yyval.node = (Node *) n;
 
17092
                                }
 
17093
    break;
 
17094
 
 
17095
  case 885:
 
17096
#line 5525 "gram.y"
 
17097
    { yyval.node = NULL; }
 
17098
    break;
 
17099
 
 
17100
  case 886:
 
17101
#line 5529 "gram.y"
 
17102
    { yyval.node = yyvsp[0].node; }
 
17103
    break;
 
17104
 
 
17105
  case 887:
 
17106
#line 5530 "gram.y"
 
17107
    { yyval.node = NULL; }
 
17108
    break;
 
17109
 
 
17110
  case 888:
 
17111
#line 5534 "gram.y"
 
17112
    { yyval.list = yyvsp[0].list; }
 
17113
    break;
 
17114
 
 
17115
  case 889:
 
17116
#line 5535 "gram.y"
 
17117
    { yyval.list = NIL; }
 
17118
    break;
 
17119
 
 
17120
  case 890:
 
17121
#line 5547 "gram.y"
 
17122
    { yyval.list = yyvsp[0].list; }
 
17123
    break;
 
17124
 
 
17125
  case 891:
 
17126
#line 5548 "gram.y"
 
17127
    { yyval.list = NIL; }
 
17128
    break;
 
17129
 
 
17130
  case 892:
 
17131
#line 5552 "gram.y"
 
17132
    { yyval.list = list_make1(yyvsp[0].node); }
 
17133
    break;
 
17134
 
 
17135
  case 893:
 
17136
#line 5553 "gram.y"
 
17137
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); }
 
17138
    break;
 
17139
 
 
17140
  case 894:
 
17141
#line 5564 "gram.y"
 
17142
    {
 
17143
                                        yyval.node = (Node *) yyvsp[0].range;
 
17144
                                }
 
17145
    break;
 
17146
 
 
17147
  case 895:
 
17148
#line 5568 "gram.y"
 
17149
    {
 
17150
                                        yyvsp[-1].range->alias = yyvsp[0].alias;
 
17151
                                        yyval.node = (Node *) yyvsp[-1].range;
 
17152
                                }
 
17153
    break;
 
17154
 
 
17155
  case 896:
 
17156
#line 5573 "gram.y"
 
17157
    {
 
17158
                                        RangeFunction *n = makeNode(RangeFunction);
 
17159
                                        n->funccallnode = yyvsp[0].node;
 
17160
                                        n->coldeflist = NIL;
 
17161
                                        yyval.node = (Node *) n;
 
17162
                                }
 
17163
    break;
 
17164
 
 
17165
  case 897:
 
17166
#line 5580 "gram.y"
 
17167
    {
 
17168
                                        RangeFunction *n = makeNode(RangeFunction);
 
17169
                                        n->funccallnode = yyvsp[-1].node;
 
17170
                                        n->alias = yyvsp[0].alias;
 
17171
                                        n->coldeflist = NIL;
 
17172
                                        yyval.node = (Node *) n;
 
17173
                                }
 
17174
    break;
 
17175
 
 
17176
  case 898:
 
17177
#line 5588 "gram.y"
 
17178
    {
 
17179
                                        RangeFunction *n = makeNode(RangeFunction);
 
17180
                                        n->funccallnode = yyvsp[-4].node;
 
17181
                                        n->coldeflist = yyvsp[-1].list;
 
17182
                                        yyval.node = (Node *) n;
 
17183
                                }
 
17184
    break;
 
17185
 
 
17186
  case 899:
 
17187
#line 5595 "gram.y"
 
17188
    {
 
17189
                                        RangeFunction *n = makeNode(RangeFunction);
 
17190
                                        Alias *a = makeNode(Alias);
 
17191
                                        n->funccallnode = yyvsp[-5].node;
 
17192
                                        a->aliasname = yyvsp[-3].str;
 
17193
                                        n->alias = a;
 
17194
                                        n->coldeflist = yyvsp[-1].list;
 
17195
                                        yyval.node = (Node *) n;
 
17196
                                }
 
17197
    break;
 
17198
 
 
17199
  case 900:
 
17200
#line 5605 "gram.y"
 
17201
    {
 
17202
                                        RangeFunction *n = makeNode(RangeFunction);
 
17203
                                        Alias *a = makeNode(Alias);
 
17204
                                        n->funccallnode = yyvsp[-4].node;
 
17205
                                        a->aliasname = yyvsp[-3].str;
 
17206
                                        n->alias = a;
 
17207
                                        n->coldeflist = yyvsp[-1].list;
 
17208
                                        yyval.node = (Node *) n;
 
17209
                                }
 
17210
    break;
 
17211
 
 
17212
  case 901:
 
17213
#line 5615 "gram.y"
 
17214
    {
 
17215
                                        /*
 
17216
                                         * The SQL spec does not permit a subselect
 
17217
                                         * (<derived_table>) without an alias clause,
 
17218
                                         * so we don't either.  This avoids the problem
 
17219
                                         * of needing to invent a unique refname for it.
 
17220
                                         * That could be surmounted if there's sufficient
 
17221
                                         * popular demand, but for now let's just implement
 
17222
                                         * the spec and see if anyone complains.
 
17223
                                         * However, it does seem like a good idea to emit
 
17224
                                         * an error message that's better than "syntax error".
 
17225
                                         */
 
17226
                                        ereport(ERROR,
 
17227
                                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
17228
                                                         errmsg("subquery in FROM must have an alias"),
 
17229
                                                         errhint("For example, FROM (SELECT ...) [AS] foo.")));
 
17230
                                        yyval.node = NULL;
 
17231
                                }
 
17232
    break;
 
17233
 
 
17234
  case 902:
 
17235
#line 5634 "gram.y"
 
17236
    {
 
17237
                                        RangeSubselect *n = makeNode(RangeSubselect);
 
17238
                                        n->subquery = yyvsp[-1].node;
 
17239
                                        n->alias = yyvsp[0].alias;
 
17240
                                        yyval.node = (Node *) n;
 
17241
                                }
 
17242
    break;
 
17243
 
 
17244
  case 903:
 
17245
#line 5641 "gram.y"
 
17246
    {
 
17247
                                        yyval.node = (Node *) yyvsp[0].jexpr;
 
17248
                                }
 
17249
    break;
 
17250
 
 
17251
  case 904:
 
17252
#line 5645 "gram.y"
 
17253
    {
 
17254
                                        yyvsp[-2].jexpr->alias = yyvsp[0].alias;
 
17255
                                        yyval.node = (Node *) yyvsp[-2].jexpr;
 
17256
                                }
 
17257
    break;
 
17258
 
 
17259
  case 905:
 
17260
#line 5671 "gram.y"
 
17261
    {
 
17262
                                        yyval.jexpr = yyvsp[-1].jexpr;
 
17263
                                }
 
17264
    break;
 
17265
 
 
17266
  case 906:
 
17267
#line 5675 "gram.y"
 
17268
    {
 
17269
                                        /* CROSS JOIN is same as unqualified inner join */
 
17270
                                        JoinExpr *n = makeNode(JoinExpr);
 
17271
                                        n->jointype = JOIN_INNER;
 
17272
                                        n->isNatural = FALSE;
 
17273
                                        n->larg = yyvsp[-3].node;
 
17274
                                        n->rarg = yyvsp[0].node;
 
17275
                                        n->using = NIL;
 
17276
                                        n->quals = NULL;
 
17277
                                        yyval.jexpr = n;
 
17278
                                }
 
17279
    break;
 
17280
 
 
17281
  case 907:
 
17282
#line 5687 "gram.y"
 
17283
    {
 
17284
                                        /* UNION JOIN is made into 1 token to avoid shift/reduce
 
17285
                                         * conflict against regular UNION keyword.
 
17286
                                         */
 
17287
                                        JoinExpr *n = makeNode(JoinExpr);
 
17288
                                        n->jointype = JOIN_UNION;
 
17289
                                        n->isNatural = FALSE;
 
17290
                                        n->larg = yyvsp[-2].node;
 
17291
                                        n->rarg = yyvsp[0].node;
 
17292
                                        n->using = NIL;
 
17293
                                        n->quals = NULL;
 
17294
                                        yyval.jexpr = n;
 
17295
                                }
 
17296
    break;
 
17297
 
 
17298
  case 908:
 
17299
#line 5701 "gram.y"
 
17300
    {
 
17301
                                        JoinExpr *n = makeNode(JoinExpr);
 
17302
                                        n->jointype = yyvsp[-3].jtype;
 
17303
                                        n->isNatural = FALSE;
 
17304
                                        n->larg = yyvsp[-4].node;
 
17305
                                        n->rarg = yyvsp[-1].node;
 
17306
                                        if (yyvsp[0].node != NULL && IsA(yyvsp[0].node, List))
 
17307
                                                n->using = (List *) yyvsp[0].node; /* USING clause */
 
17308
                                        else
 
17309
                                                n->quals = yyvsp[0].node; /* ON clause */
 
17310
                                        yyval.jexpr = n;
 
17311
                                }
 
17312
    break;
 
17313
 
 
17314
  case 909:
 
17315
#line 5714 "gram.y"
 
17316
    {
 
17317
                                        /* letting join_type reduce to empty doesn't work */
 
17318
                                        JoinExpr *n = makeNode(JoinExpr);
 
17319
                                        n->jointype = JOIN_INNER;
 
17320
                                        n->isNatural = FALSE;
 
17321
                                        n->larg = yyvsp[-3].node;
 
17322
                                        n->rarg = yyvsp[-1].node;
 
17323
                                        if (yyvsp[0].node != NULL && IsA(yyvsp[0].node, List))
 
17324
                                                n->using = (List *) yyvsp[0].node; /* USING clause */
 
17325
                                        else
 
17326
                                                n->quals = yyvsp[0].node; /* ON clause */
 
17327
                                        yyval.jexpr = n;
 
17328
                                }
 
17329
    break;
 
17330
 
 
17331
  case 910:
 
17332
#line 5728 "gram.y"
 
17333
    {
 
17334
                                        JoinExpr *n = makeNode(JoinExpr);
 
17335
                                        n->jointype = yyvsp[-2].jtype;
 
17336
                                        n->isNatural = TRUE;
 
17337
                                        n->larg = yyvsp[-4].node;
 
17338
                                        n->rarg = yyvsp[0].node;
 
17339
                                        n->using = NIL; /* figure out which columns later... */
 
17340
                                        n->quals = NULL; /* fill later */
 
17341
                                        yyval.jexpr = n;
 
17342
                                }
 
17343
    break;
 
17344
 
 
17345
  case 911:
 
17346
#line 5739 "gram.y"
 
17347
    {
 
17348
                                        /* letting join_type reduce to empty doesn't work */
 
17349
                                        JoinExpr *n = makeNode(JoinExpr);
 
17350
                                        n->jointype = JOIN_INNER;
 
17351
                                        n->isNatural = TRUE;
 
17352
                                        n->larg = yyvsp[-3].node;
 
17353
                                        n->rarg = yyvsp[0].node;
 
17354
                                        n->using = NIL; /* figure out which columns later... */
 
17355
                                        n->quals = NULL; /* fill later */
 
17356
                                        yyval.jexpr = n;
 
17357
                                }
 
17358
    break;
 
17359
 
 
17360
  case 912:
 
17361
#line 5754 "gram.y"
 
17362
    {
 
17363
                                        yyval.alias = makeNode(Alias);
 
17364
                                        yyval.alias->aliasname = yyvsp[-3].str;
 
17365
                                        yyval.alias->colnames = yyvsp[-1].list;
 
17366
                                }
 
17367
    break;
 
17368
 
 
17369
  case 913:
 
17370
#line 5760 "gram.y"
 
17371
    {
 
17372
                                        yyval.alias = makeNode(Alias);
 
17373
                                        yyval.alias->aliasname = yyvsp[0].str;
 
17374
                                }
 
17375
    break;
 
17376
 
 
17377
  case 914:
 
17378
#line 5765 "gram.y"
 
17379
    {
 
17380
                                        yyval.alias = makeNode(Alias);
 
17381
                                        yyval.alias->aliasname = yyvsp[-3].str;
 
17382
                                        yyval.alias->colnames = yyvsp[-1].list;
 
17383
                                }
 
17384
    break;
 
17385
 
 
17386
  case 915:
 
17387
#line 5771 "gram.y"
 
17388
    {
 
17389
                                        yyval.alias = makeNode(Alias);
 
17390
                                        yyval.alias->aliasname = yyvsp[0].str;
 
17391
                                }
 
17392
    break;
 
17393
 
 
17394
  case 916:
 
17395
#line 5777 "gram.y"
 
17396
    { yyval.jtype = JOIN_FULL; }
 
17397
    break;
 
17398
 
 
17399
  case 917:
 
17400
#line 5778 "gram.y"
 
17401
    { yyval.jtype = JOIN_LEFT; }
 
17402
    break;
 
17403
 
 
17404
  case 918:
 
17405
#line 5779 "gram.y"
 
17406
    { yyval.jtype = JOIN_RIGHT; }
 
17407
    break;
 
17408
 
 
17409
  case 919:
 
17410
#line 5780 "gram.y"
 
17411
    { yyval.jtype = JOIN_INNER; }
 
17412
    break;
 
17413
 
 
17414
  case 920:
 
17415
#line 5784 "gram.y"
 
17416
    { yyval.node = NULL; }
 
17417
    break;
 
17418
 
 
17419
  case 921:
 
17420
#line 5785 "gram.y"
 
17421
    { yyval.node = NULL; }
 
17422
    break;
 
17423
 
 
17424
  case 922:
 
17425
#line 5797 "gram.y"
 
17426
    { yyval.node = (Node *) yyvsp[-1].list; }
 
17427
    break;
 
17428
 
 
17429
  case 923:
 
17430
#line 5798 "gram.y"
 
17431
    { yyval.node = yyvsp[0].node; }
 
17432
    break;
 
17433
 
 
17434
  case 924:
 
17435
#line 5804 "gram.y"
 
17436
    {
 
17437
                                        /* default inheritance */
 
17438
                                        yyval.range = yyvsp[0].range;
 
17439
                                        yyval.range->inhOpt = INH_DEFAULT;
 
17440
                                        yyval.range->alias = NULL;
 
17441
                                }
 
17442
    break;
 
17443
 
 
17444
  case 925:
 
17445
#line 5811 "gram.y"
 
17446
    {
 
17447
                                        /* inheritance query */
 
17448
                                        yyval.range = yyvsp[-1].range;
 
17449
                                        yyval.range->inhOpt = INH_YES;
 
17450
                                        yyval.range->alias = NULL;
 
17451
                                }
 
17452
    break;
 
17453
 
 
17454
  case 926:
 
17455
#line 5818 "gram.y"
 
17456
    {
 
17457
                                        /* no inheritance */
 
17458
                                        yyval.range = yyvsp[0].range;
 
17459
                                        yyval.range->inhOpt = INH_NO;
 
17460
                                        yyval.range->alias = NULL;
 
17461
                                }
 
17462
    break;
 
17463
 
 
17464
  case 927:
 
17465
#line 5825 "gram.y"
 
17466
    {
 
17467
                                        /* no inheritance, SQL99-style syntax */
 
17468
                                        yyval.range = yyvsp[-1].range;
 
17469
                                        yyval.range->inhOpt = INH_NO;
 
17470
                                        yyval.range->alias = NULL;
 
17471
                                }
 
17472
    break;
 
17473
 
 
17474
  case 928:
 
17475
#line 5834 "gram.y"
 
17476
    { yyval.node = yyvsp[0].node; }
 
17477
    break;
 
17478
 
 
17479
  case 929:
 
17480
#line 5839 "gram.y"
 
17481
    { yyval.node = yyvsp[0].node; }
 
17482
    break;
 
17483
 
 
17484
  case 930:
 
17485
#line 5840 "gram.y"
 
17486
    { yyval.node = NULL; }
 
17487
    break;
 
17488
 
 
17489
  case 931:
 
17490
#line 5846 "gram.y"
 
17491
    {
 
17492
                                        yyval.list = list_make1(yyvsp[0].node);
 
17493
                                }
 
17494
    break;
 
17495
 
 
17496
  case 932:
 
17497
#line 5850 "gram.y"
 
17498
    {
 
17499
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
 
17500
                                }
 
17501
    break;
 
17502
 
 
17503
  case 933:
 
17504
#line 5856 "gram.y"
 
17505
    {
 
17506
                                        ColumnDef *n = makeNode(ColumnDef);
 
17507
                                        n->colname = yyvsp[-1].str;
 
17508
                                        n->typename = yyvsp[0].typnam;
 
17509
                                        n->constraints = NIL;
 
17510
                                        n->is_local = true;
 
17511
                                        yyval.node = (Node *)n;
 
17512
                                }
 
17513
    break;
 
17514
 
 
17515
  case 934:
 
17516
#line 5877 "gram.y"
 
17517
    {
 
17518
                                        yyval.typnam = yyvsp[-1].typnam;
 
17519
                                        yyval.typnam->arrayBounds = yyvsp[0].list;
 
17520
                                }
 
17521
    break;
 
17522
 
 
17523
  case 935:
 
17524
#line 5882 "gram.y"
 
17525
    {
 
17526
                                        yyval.typnam = yyvsp[-1].typnam;
 
17527
                                        yyval.typnam->arrayBounds = yyvsp[0].list;
 
17528
                                        yyval.typnam->setof = TRUE;
 
17529
                                }
 
17530
    break;
 
17531
 
 
17532
  case 936:
 
17533
#line 5888 "gram.y"
 
17534
    {
 
17535
                                        /* SQL99's redundant syntax */
 
17536
                                        yyval.typnam = yyvsp[-4].typnam;
 
17537
                                        yyval.typnam->arrayBounds = list_make1(makeInteger(yyvsp[-1].ival));
 
17538
                                }
 
17539
    break;
 
17540
 
 
17541
  case 937:
 
17542
#line 5894 "gram.y"
 
17543
    {
 
17544
                                        /* SQL99's redundant syntax */
 
17545
                                        yyval.typnam = yyvsp[-4].typnam;
 
17546
                                        yyval.typnam->arrayBounds = list_make1(makeInteger(yyvsp[-1].ival));
 
17547
                                        yyval.typnam->setof = TRUE;
 
17548
                                }
 
17549
    break;
 
17550
 
 
17551
  case 938:
 
17552
#line 5904 "gram.y"
 
17553
    {  yyval.list = lappend(yyvsp[-2].list, makeInteger(-1)); }
 
17554
    break;
 
17555
 
 
17556
  case 939:
 
17557
#line 5906 "gram.y"
 
17558
    {  yyval.list = lappend(yyvsp[-3].list, makeInteger(yyvsp[-1].ival)); }
 
17559
    break;
 
17560
 
 
17561
  case 940:
 
17562
#line 5908 "gram.y"
 
17563
    {  yyval.list = NIL; }
 
17564
    break;
 
17565
 
 
17566
  case 941:
 
17567
#line 5920 "gram.y"
 
17568
    { yyval.typnam = yyvsp[0].typnam; }
 
17569
    break;
 
17570
 
 
17571
  case 942:
 
17572
#line 5921 "gram.y"
 
17573
    { yyval.typnam = yyvsp[0].typnam; }
 
17574
    break;
 
17575
 
 
17576
  case 943:
 
17577
#line 5922 "gram.y"
 
17578
    { yyval.typnam = yyvsp[0].typnam; }
 
17579
    break;
 
17580
 
 
17581
  case 944:
 
17582
#line 5923 "gram.y"
 
17583
    { yyval.typnam = yyvsp[0].typnam; }
 
17584
    break;
 
17585
 
 
17586
  case 945:
 
17587
#line 5924 "gram.y"
 
17588
    { yyval.typnam = yyvsp[0].typnam; }
 
17589
    break;
 
17590
 
 
17591
  case 946:
 
17592
#line 5926 "gram.y"
 
17593
    {
 
17594
                                        yyval.typnam = yyvsp[-1].typnam;
 
17595
                                        if (yyvsp[0].ival != INTERVAL_FULL_RANGE)
 
17596
                                                yyval.typnam->typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, yyvsp[0].ival);
 
17597
                                }
 
17598
    break;
 
17599
 
 
17600
  case 947:
 
17601
#line 5932 "gram.y"
 
17602
    {
 
17603
                                        yyval.typnam = yyvsp[-4].typnam;
 
17604
                                        if (yyvsp[-2].ival < 0)
 
17605
                                                ereport(ERROR,
 
17606
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17607
                                                                 errmsg("INTERVAL(%d) precision must not be negative",
 
17608
                                                                                yyvsp[-2].ival)));
 
17609
                                        if (yyvsp[-2].ival > MAX_INTERVAL_PRECISION)
 
17610
                                        {
 
17611
                                                ereport(WARNING,
 
17612
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17613
                                                                 errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
 
17614
                                                                                yyvsp[-2].ival, MAX_INTERVAL_PRECISION)));
 
17615
                                                yyvsp[-2].ival = MAX_INTERVAL_PRECISION;
 
17616
                                        }
 
17617
                                        yyval.typnam->typmod = INTERVAL_TYPMOD(yyvsp[-2].ival, yyvsp[0].ival);
 
17618
                                }
 
17619
    break;
 
17620
 
 
17621
  case 948:
 
17622
#line 5950 "gram.y"
 
17623
    {
 
17624
                                        yyval.typnam = makeNode(TypeName);
 
17625
                                        yyval.typnam->names = lcons(makeString(yyvsp[-1].str), yyvsp[0].list);
 
17626
                                        yyval.typnam->typmod = -1;
 
17627
                                }
 
17628
    break;
 
17629
 
 
17630
  case 949:
 
17631
#line 5967 "gram.y"
 
17632
    { yyval.typnam = yyvsp[0].typnam; }
 
17633
    break;
 
17634
 
 
17635
  case 950:
 
17636
#line 5968 "gram.y"
 
17637
    { yyval.typnam = yyvsp[0].typnam; }
 
17638
    break;
 
17639
 
 
17640
  case 951:
 
17641
#line 5969 "gram.y"
 
17642
    { yyval.typnam = yyvsp[0].typnam; }
 
17643
    break;
 
17644
 
 
17645
  case 952:
 
17646
#line 5970 "gram.y"
 
17647
    { yyval.typnam = yyvsp[0].typnam; }
 
17648
    break;
 
17649
 
 
17650
  case 953:
 
17651
#line 5971 "gram.y"
 
17652
    { yyval.typnam = yyvsp[0].typnam; }
 
17653
    break;
 
17654
 
 
17655
  case 954:
 
17656
#line 5976 "gram.y"
 
17657
    {
 
17658
                                        yyval.typnam = makeTypeName(yyvsp[0].str);
 
17659
                                }
 
17660
    break;
 
17661
 
 
17662
  case 955:
 
17663
#line 5987 "gram.y"
 
17664
    {
 
17665
                                        yyval.typnam = SystemTypeName("int4");
 
17666
                                }
 
17667
    break;
 
17668
 
 
17669
  case 956:
 
17670
#line 5991 "gram.y"
 
17671
    {
 
17672
                                        yyval.typnam = SystemTypeName("int4");
 
17673
                                }
 
17674
    break;
 
17675
 
 
17676
  case 957:
 
17677
#line 5995 "gram.y"
 
17678
    {
 
17679
                                        yyval.typnam = SystemTypeName("int2");
 
17680
                                }
 
17681
    break;
 
17682
 
 
17683
  case 958:
 
17684
#line 5999 "gram.y"
 
17685
    {
 
17686
                                        yyval.typnam = SystemTypeName("int8");
 
17687
                                }
 
17688
    break;
 
17689
 
 
17690
  case 959:
 
17691
#line 6003 "gram.y"
 
17692
    {
 
17693
                                        yyval.typnam = SystemTypeName("float4");
 
17694
                                }
 
17695
    break;
 
17696
 
 
17697
  case 960:
 
17698
#line 6007 "gram.y"
 
17699
    {
 
17700
                                        yyval.typnam = yyvsp[0].typnam;
 
17701
                                }
 
17702
    break;
 
17703
 
 
17704
  case 961:
 
17705
#line 6011 "gram.y"
 
17706
    {
 
17707
                                        yyval.typnam = SystemTypeName("float8");
 
17708
                                }
 
17709
    break;
 
17710
 
 
17711
  case 962:
 
17712
#line 6015 "gram.y"
 
17713
    {
 
17714
                                        yyval.typnam = SystemTypeName("numeric");
 
17715
                                        yyval.typnam->typmod = yyvsp[0].ival;
 
17716
                                }
 
17717
    break;
 
17718
 
 
17719
  case 963:
 
17720
#line 6020 "gram.y"
 
17721
    {
 
17722
                                        yyval.typnam = SystemTypeName("numeric");
 
17723
                                        yyval.typnam->typmod = yyvsp[0].ival;
 
17724
                                }
 
17725
    break;
 
17726
 
 
17727
  case 964:
 
17728
#line 6025 "gram.y"
 
17729
    {
 
17730
                                        yyval.typnam = SystemTypeName("numeric");
 
17731
                                        yyval.typnam->typmod = yyvsp[0].ival;
 
17732
                                }
 
17733
    break;
 
17734
 
 
17735
  case 965:
 
17736
#line 6030 "gram.y"
 
17737
    {
 
17738
                                        yyval.typnam = SystemTypeName("bool");
 
17739
                                }
 
17740
    break;
 
17741
 
 
17742
  case 966:
 
17743
#line 6036 "gram.y"
 
17744
    {
 
17745
                                        if (yyvsp[-1].ival < 1)
 
17746
                                                ereport(ERROR,
 
17747
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17748
                                                                 errmsg("precision for type float must be at least 1 bit")));
 
17749
                                        else if (yyvsp[-1].ival <= 24)
 
17750
                                                yyval.typnam = SystemTypeName("float4");
 
17751
                                        else if (yyvsp[-1].ival <= 53)
 
17752
                                                yyval.typnam = SystemTypeName("float8");
 
17753
                                        else
 
17754
                                                ereport(ERROR,
 
17755
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17756
                                                                 errmsg("precision for type float must be less than 54 bits")));
 
17757
                                }
 
17758
    break;
 
17759
 
 
17760
  case 967:
 
17761
#line 6051 "gram.y"
 
17762
    {
 
17763
                                        yyval.typnam = SystemTypeName("float8");
 
17764
                                }
 
17765
    break;
 
17766
 
 
17767
  case 968:
 
17768
#line 6058 "gram.y"
 
17769
    {
 
17770
                                        if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION)
 
17771
                                                ereport(ERROR,
 
17772
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17773
                                                                 errmsg("NUMERIC precision %d must be between 1 and %d",
 
17774
                                                                                yyvsp[-3].ival, NUMERIC_MAX_PRECISION)));
 
17775
                                        if (yyvsp[-1].ival < 0 || yyvsp[-1].ival > yyvsp[-3].ival)
 
17776
                                                ereport(ERROR,
 
17777
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17778
                                                                 errmsg("NUMERIC scale %d must be between 0 and precision %d",
 
17779
                                                                                yyvsp[-1].ival, yyvsp[-3].ival)));
 
17780
 
 
17781
                                        yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ;
 
17782
                                }
 
17783
    break;
 
17784
 
 
17785
  case 969:
 
17786
#line 6073 "gram.y"
 
17787
    {
 
17788
                                        if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION)
 
17789
                                                ereport(ERROR,
 
17790
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17791
                                                                 errmsg("NUMERIC precision %d must be between 1 and %d",
 
17792
                                                                                yyvsp[-1].ival, NUMERIC_MAX_PRECISION)));
 
17793
 
 
17794
                                        yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ;
 
17795
                                }
 
17796
    break;
 
17797
 
 
17798
  case 970:
 
17799
#line 6083 "gram.y"
 
17800
    {
 
17801
                                        /* Insert "-1" meaning "no limit" */
 
17802
                                        yyval.ival = -1;
 
17803
                                }
 
17804
    break;
 
17805
 
 
17806
  case 971:
 
17807
#line 6091 "gram.y"
 
17808
    {
 
17809
                                        if (yyvsp[-3].ival < 1 || yyvsp[-3].ival > NUMERIC_MAX_PRECISION)
 
17810
                                                ereport(ERROR,
 
17811
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17812
                                                                 errmsg("DECIMAL precision %d must be between 1 and %d",
 
17813
                                                                                yyvsp[-3].ival, NUMERIC_MAX_PRECISION)));
 
17814
                                        if (yyvsp[-1].ival < 0 || yyvsp[-1].ival > yyvsp[-3].ival)
 
17815
                                                ereport(ERROR,
 
17816
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17817
                                                                 errmsg("DECIMAL scale %d must be between 0 and precision %d",
 
17818
                                                                                yyvsp[-1].ival, yyvsp[-3].ival)));
 
17819
 
 
17820
                                        yyval.ival = ((yyvsp[-3].ival << 16) | yyvsp[-1].ival) + VARHDRSZ;
 
17821
                                }
 
17822
    break;
 
17823
 
 
17824
  case 972:
 
17825
#line 6106 "gram.y"
 
17826
    {
 
17827
                                        if (yyvsp[-1].ival < 1 || yyvsp[-1].ival > NUMERIC_MAX_PRECISION)
 
17828
                                                ereport(ERROR,
 
17829
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17830
                                                                 errmsg("DECIMAL precision %d must be between 1 and %d",
 
17831
                                                                                yyvsp[-1].ival, NUMERIC_MAX_PRECISION)));
 
17832
 
 
17833
                                        yyval.ival = (yyvsp[-1].ival << 16) + VARHDRSZ;
 
17834
                                }
 
17835
    break;
 
17836
 
 
17837
  case 973:
 
17838
#line 6116 "gram.y"
 
17839
    {
 
17840
                                        /* Insert "-1" meaning "no limit" */
 
17841
                                        yyval.ival = -1;
 
17842
                                }
 
17843
    break;
 
17844
 
 
17845
  case 974:
 
17846
#line 6128 "gram.y"
 
17847
    {
 
17848
                                        yyval.typnam = yyvsp[0].typnam;
 
17849
                                }
 
17850
    break;
 
17851
 
 
17852
  case 975:
 
17853
#line 6132 "gram.y"
 
17854
    {
 
17855
                                        yyval.typnam = yyvsp[0].typnam;
 
17856
                                }
 
17857
    break;
 
17858
 
 
17859
  case 976:
 
17860
#line 6140 "gram.y"
 
17861
    {
 
17862
                                        yyval.typnam = yyvsp[0].typnam;
 
17863
                                }
 
17864
    break;
 
17865
 
 
17866
  case 977:
 
17867
#line 6144 "gram.y"
 
17868
    {
 
17869
                                        yyval.typnam = yyvsp[0].typnam;
 
17870
                                        yyval.typnam->typmod = -1;
 
17871
                                }
 
17872
    break;
 
17873
 
 
17874
  case 978:
 
17875
#line 6152 "gram.y"
 
17876
    {
 
17877
                                        char *typname;
 
17878
 
 
17879
                                        typname = yyvsp[-3].boolean ? "varbit" : "bit";
 
17880
                                        yyval.typnam = SystemTypeName(typname);
 
17881
                                        if (yyvsp[-1].ival < 1)
 
17882
                                                ereport(ERROR,
 
17883
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17884
                                                                 errmsg("length for type %s must be at least 1",
 
17885
                                                                                typname)));
 
17886
                                        else if (yyvsp[-1].ival > (MaxAttrSize * BITS_PER_BYTE))
 
17887
                                                ereport(ERROR,
 
17888
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17889
                                                                 errmsg("length for type %s cannot exceed %d",
 
17890
                                                                                typname, MaxAttrSize * BITS_PER_BYTE)));
 
17891
                                        yyval.typnam->typmod = yyvsp[-1].ival;
 
17892
                                }
 
17893
    break;
 
17894
 
 
17895
  case 979:
 
17896
#line 6173 "gram.y"
 
17897
    {
 
17898
                                        /* bit defaults to bit(1), varbit to no limit */
 
17899
                                        if (yyvsp[0].boolean)
 
17900
                                        {
 
17901
                                                yyval.typnam = SystemTypeName("varbit");
 
17902
                                                yyval.typnam->typmod = -1;
 
17903
                                        }
 
17904
                                        else
 
17905
                                        {
 
17906
                                                yyval.typnam = SystemTypeName("bit");
 
17907
                                                yyval.typnam->typmod = 1;
 
17908
                                        }
 
17909
                                }
 
17910
    break;
 
17911
 
 
17912
  case 980:
 
17913
#line 6194 "gram.y"
 
17914
    {
 
17915
                                        yyval.typnam = yyvsp[0].typnam;
 
17916
                                }
 
17917
    break;
 
17918
 
 
17919
  case 981:
 
17920
#line 6198 "gram.y"
 
17921
    {
 
17922
                                        yyval.typnam = yyvsp[0].typnam;
 
17923
                                }
 
17924
    break;
 
17925
 
 
17926
  case 982:
 
17927
#line 6204 "gram.y"
 
17928
    {
 
17929
                                        yyval.typnam = yyvsp[0].typnam;
 
17930
                                }
 
17931
    break;
 
17932
 
 
17933
  case 983:
 
17934
#line 6208 "gram.y"
 
17935
    {
 
17936
                                        /* Length was not specified so allow to be unrestricted.
 
17937
                                         * This handles problems with fixed-length (bpchar) strings
 
17938
                                         * which in column definitions must default to a length
 
17939
                                         * of one, but should not be constrained if the length
 
17940
                                         * was not specified.
 
17941
                                         */
 
17942
                                        yyval.typnam = yyvsp[0].typnam;
 
17943
                                        yyval.typnam->typmod = -1;
 
17944
                                }
 
17945
    break;
 
17946
 
 
17947
  case 984:
 
17948
#line 6221 "gram.y"
 
17949
    {
 
17950
                                        if ((yyvsp[0].str != NULL) && (strcmp(yyvsp[0].str, "sql_text") != 0))
 
17951
                                        {
 
17952
                                                char *type;
 
17953
 
 
17954
                                                type = palloc(strlen(yyvsp[-4].str) + 1 + strlen(yyvsp[0].str) + 1);
 
17955
                                                strcpy(type, yyvsp[-4].str);
 
17956
                                                strcat(type, "_");
 
17957
                                                strcat(type, yyvsp[0].str);
 
17958
                                                yyvsp[-4].str = type;
 
17959
                                        }
 
17960
 
 
17961
                                        yyval.typnam = SystemTypeName(yyvsp[-4].str);
 
17962
 
 
17963
                                        if (yyvsp[-2].ival < 1)
 
17964
                                                ereport(ERROR,
 
17965
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17966
                                                                 errmsg("length for type %s must be at least 1",
 
17967
                                                                                yyvsp[-4].str)));
 
17968
                                        else if (yyvsp[-2].ival > MaxAttrSize)
 
17969
                                                ereport(ERROR,
 
17970
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
17971
                                                                 errmsg("length for type %s cannot exceed %d",
 
17972
                                                                                yyvsp[-4].str, MaxAttrSize)));
 
17973
 
 
17974
                                        /* we actually implement these like a varlen, so
 
17975
                                         * the first 4 bytes is the length. (the difference
 
17976
                                         * between these and "text" is that we blank-pad and
 
17977
                                         * truncate where necessary)
 
17978
                                         */
 
17979
                                        yyval.typnam->typmod = VARHDRSZ + yyvsp[-2].ival;
 
17980
                                }
 
17981
    break;
 
17982
 
 
17983
  case 985:
 
17984
#line 6256 "gram.y"
 
17985
    {
 
17986
                                        if ((yyvsp[0].str != NULL) && (strcmp(yyvsp[0].str, "sql_text") != 0))
 
17987
                                        {
 
17988
                                                char *type;
 
17989
 
 
17990
                                                type = palloc(strlen(yyvsp[-1].str) + 1 + strlen(yyvsp[0].str) + 1);
 
17991
                                                strcpy(type, yyvsp[-1].str);
 
17992
                                                strcat(type, "_");
 
17993
                                                strcat(type, yyvsp[0].str);
 
17994
                                                yyvsp[-1].str = type;
 
17995
                                        }
 
17996
 
 
17997
                                        yyval.typnam = SystemTypeName(yyvsp[-1].str);
 
17998
 
 
17999
                                        /* char defaults to char(1), varchar to no limit */
 
18000
                                        if (strcmp(yyvsp[-1].str, "char") == 0)
 
18001
                                                yyval.typnam->typmod = VARHDRSZ + 1;
 
18002
                                        else
 
18003
                                                yyval.typnam->typmod = -1;
 
18004
                                }
 
18005
    break;
 
18006
 
 
18007
  case 986:
 
18008
#line 6279 "gram.y"
 
18009
    { yyval.str = yyvsp[0].boolean ? "varchar": "char"; }
 
18010
    break;
 
18011
 
 
18012
  case 987:
 
18013
#line 6281 "gram.y"
 
18014
    { yyval.str = yyvsp[0].boolean ? "varchar": "char"; }
 
18015
    break;
 
18016
 
 
18017
  case 988:
 
18018
#line 6283 "gram.y"
 
18019
    { yyval.str = "varchar"; }
 
18020
    break;
 
18021
 
 
18022
  case 989:
 
18023
#line 6285 "gram.y"
 
18024
    { yyval.str = yyvsp[0].boolean ? "varchar": "char"; }
 
18025
    break;
 
18026
 
 
18027
  case 990:
 
18028
#line 6287 "gram.y"
 
18029
    { yyval.str = yyvsp[0].boolean ? "varchar": "char"; }
 
18030
    break;
 
18031
 
 
18032
  case 991:
 
18033
#line 6289 "gram.y"
 
18034
    { yyval.str = yyvsp[0].boolean ? "varchar": "char"; }
 
18035
    break;
 
18036
 
 
18037
  case 992:
 
18038
#line 6293 "gram.y"
 
18039
    { yyval.boolean = TRUE; }
 
18040
    break;
 
18041
 
 
18042
  case 993:
 
18043
#line 6294 "gram.y"
 
18044
    { yyval.boolean = FALSE; }
 
18045
    break;
 
18046
 
 
18047
  case 994:
 
18048
#line 6298 "gram.y"
 
18049
    { yyval.str = yyvsp[0].str; }
 
18050
    break;
 
18051
 
 
18052
  case 995:
 
18053
#line 6299 "gram.y"
 
18054
    { yyval.str = NULL; }
 
18055
    break;
 
18056
 
 
18057
  case 996:
 
18058
#line 6304 "gram.y"
 
18059
    {
 
18060
                                        if (yyvsp[0].boolean)
 
18061
                                                yyval.typnam = SystemTypeName("timestamptz");
 
18062
                                        else
 
18063
                                                yyval.typnam = SystemTypeName("timestamp");
 
18064
                                        /* XXX the timezone field seems to be unused
 
18065
                                         * - thomas 2001-09-06
 
18066
                                         */
 
18067
                                        yyval.typnam->timezone = yyvsp[0].boolean;
 
18068
                                        if (yyvsp[-2].ival < 0)
 
18069
                                                ereport(ERROR,
 
18070
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
18071
                                                                 errmsg("TIMESTAMP(%d)%s precision must not be negative",
 
18072
                                                                                yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""))));
 
18073
                                        if (yyvsp[-2].ival > MAX_TIMESTAMP_PRECISION)
 
18074
                                        {
 
18075
                                                ereport(WARNING,
 
18076
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
18077
                                                                 errmsg("TIMESTAMP(%d)%s precision reduced to maximum allowed, %d",
 
18078
                                                                                yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""),
 
18079
                                                                                MAX_TIMESTAMP_PRECISION)));
 
18080
                                                yyvsp[-2].ival = MAX_TIMESTAMP_PRECISION;
 
18081
                                        }
 
18082
                                        yyval.typnam->typmod = yyvsp[-2].ival;
 
18083
                                }
 
18084
    break;
 
18085
 
 
18086
  case 997:
 
18087
#line 6330 "gram.y"
 
18088
    {
 
18089
                                        if (yyvsp[0].boolean)
 
18090
                                                yyval.typnam = SystemTypeName("timestamptz");
 
18091
                                        else
 
18092
                                                yyval.typnam = SystemTypeName("timestamp");
 
18093
                                        /* XXX the timezone field seems to be unused
 
18094
                                         * - thomas 2001-09-06
 
18095
                                         */
 
18096
                                        yyval.typnam->timezone = yyvsp[0].boolean;
 
18097
                                }
 
18098
    break;
 
18099
 
 
18100
  case 998:
 
18101
#line 6341 "gram.y"
 
18102
    {
 
18103
                                        if (yyvsp[0].boolean)
 
18104
                                                yyval.typnam = SystemTypeName("timetz");
 
18105
                                        else
 
18106
                                                yyval.typnam = SystemTypeName("time");
 
18107
                                        if (yyvsp[-2].ival < 0)
 
18108
                                                ereport(ERROR,
 
18109
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
18110
                                                                 errmsg("TIME(%d)%s precision must not be negative",
 
18111
                                                                                yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""))));
 
18112
                                        if (yyvsp[-2].ival > MAX_TIME_PRECISION)
 
18113
                                        {
 
18114
                                                ereport(WARNING,
 
18115
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
18116
                                                                 errmsg("TIME(%d)%s precision reduced to maximum allowed, %d",
 
18117
                                                                                yyvsp[-2].ival, (yyvsp[0].boolean ? " WITH TIME ZONE": ""),
 
18118
                                                                                MAX_TIME_PRECISION)));
 
18119
                                                yyvsp[-2].ival = MAX_TIME_PRECISION;
 
18120
                                        }
 
18121
                                        yyval.typnam->typmod = yyvsp[-2].ival;
 
18122
                                }
 
18123
    break;
 
18124
 
 
18125
  case 999:
 
18126
#line 6363 "gram.y"
 
18127
    {
 
18128
                                        if (yyvsp[0].boolean)
 
18129
                                                yyval.typnam = SystemTypeName("timetz");
 
18130
                                        else
 
18131
                                                yyval.typnam = SystemTypeName("time");
 
18132
                                }
 
18133
    break;
 
18134
 
 
18135
  case 1000:
 
18136
#line 6372 "gram.y"
 
18137
    { yyval.typnam = SystemTypeName("interval"); }
 
18138
    break;
 
18139
 
 
18140
  case 1001:
 
18141
#line 6376 "gram.y"
 
18142
    { yyval.boolean = TRUE; }
 
18143
    break;
 
18144
 
 
18145
  case 1002:
 
18146
#line 6377 "gram.y"
 
18147
    { yyval.boolean = FALSE; }
 
18148
    break;
 
18149
 
 
18150
  case 1003:
 
18151
#line 6378 "gram.y"
 
18152
    { yyval.boolean = FALSE; }
 
18153
    break;
 
18154
 
 
18155
  case 1004:
 
18156
#line 6382 "gram.y"
 
18157
    { yyval.ival = INTERVAL_MASK(YEAR); }
 
18158
    break;
 
18159
 
 
18160
  case 1005:
 
18161
#line 6383 "gram.y"
 
18162
    { yyval.ival = INTERVAL_MASK(MONTH); }
 
18163
    break;
 
18164
 
 
18165
  case 1006:
 
18166
#line 6384 "gram.y"
 
18167
    { yyval.ival = INTERVAL_MASK(DAY); }
 
18168
    break;
 
18169
 
 
18170
  case 1007:
 
18171
#line 6385 "gram.y"
 
18172
    { yyval.ival = INTERVAL_MASK(HOUR); }
 
18173
    break;
 
18174
 
 
18175
  case 1008:
 
18176
#line 6386 "gram.y"
 
18177
    { yyval.ival = INTERVAL_MASK(MINUTE); }
 
18178
    break;
 
18179
 
 
18180
  case 1009:
 
18181
#line 6387 "gram.y"
 
18182
    { yyval.ival = INTERVAL_MASK(SECOND); }
 
18183
    break;
 
18184
 
 
18185
  case 1010:
 
18186
#line 6389 "gram.y"
 
18187
    { yyval.ival = INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH); }
 
18188
    break;
 
18189
 
 
18190
  case 1011:
 
18191
#line 6391 "gram.y"
 
18192
    { yyval.ival = INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR); }
 
18193
    break;
 
18194
 
 
18195
  case 1012:
 
18196
#line 6393 "gram.y"
 
18197
    { yyval.ival = INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR)
 
18198
                                                | INTERVAL_MASK(MINUTE); }
 
18199
    break;
 
18200
 
 
18201
  case 1013:
 
18202
#line 6396 "gram.y"
 
18203
    { yyval.ival = INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR)
 
18204
                                                | INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND); }
 
18205
    break;
 
18206
 
 
18207
  case 1014:
 
18208
#line 6399 "gram.y"
 
18209
    { yyval.ival = INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE); }
 
18210
    break;
 
18211
 
 
18212
  case 1015:
 
18213
#line 6401 "gram.y"
 
18214
    { yyval.ival = INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE)
 
18215
                                                | INTERVAL_MASK(SECOND); }
 
18216
    break;
 
18217
 
 
18218
  case 1016:
 
18219
#line 6404 "gram.y"
 
18220
    { yyval.ival = INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND); }
 
18221
    break;
 
18222
 
 
18223
  case 1017:
 
18224
#line 6405 "gram.y"
 
18225
    { yyval.ival = INTERVAL_FULL_RANGE; }
 
18226
    break;
 
18227
 
 
18228
  case 1018:
 
18229
#line 6431 "gram.y"
 
18230
    { yyval.node = yyvsp[0].node; }
 
18231
    break;
 
18232
 
 
18233
  case 1019:
 
18234
#line 6433 "gram.y"
 
18235
    { yyval.node = makeTypeCast(yyvsp[-2].node, yyvsp[0].typnam); }
 
18236
    break;
 
18237
 
 
18238
  case 1020:
 
18239
#line 6435 "gram.y"
 
18240
    {
 
18241
                                        FuncCall *n = makeNode(FuncCall);
 
18242
                                        n->funcname = SystemFuncName("timezone");
 
18243
                                        n->args = list_make2(yyvsp[0].node, yyvsp[-4].node);
 
18244
                                        n->agg_star = FALSE;
 
18245
                                        n->agg_distinct = FALSE;
 
18246
                                        yyval.node = (Node *) n;
 
18247
                                }
 
18248
    break;
 
18249
 
 
18250
  case 1021:
 
18251
#line 6453 "gram.y"
 
18252
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, yyvsp[0].node); }
 
18253
    break;
 
18254
 
 
18255
  case 1022:
 
18256
#line 6455 "gram.y"
 
18257
    { yyval.node = doNegate(yyvsp[0].node); }
 
18258
    break;
 
18259
 
 
18260
  case 1023:
 
18261
#line 6457 "gram.y"
 
18262
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", yyvsp[-2].node, yyvsp[0].node); }
 
18263
    break;
 
18264
 
 
18265
  case 1024:
 
18266
#line 6459 "gram.y"
 
18267
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", yyvsp[-2].node, yyvsp[0].node); }
 
18268
    break;
 
18269
 
 
18270
  case 1025:
 
18271
#line 6461 "gram.y"
 
18272
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", yyvsp[-2].node, yyvsp[0].node); }
 
18273
    break;
 
18274
 
 
18275
  case 1026:
 
18276
#line 6463 "gram.y"
 
18277
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", yyvsp[-2].node, yyvsp[0].node); }
 
18278
    break;
 
18279
 
 
18280
  case 1027:
 
18281
#line 6465 "gram.y"
 
18282
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", yyvsp[-2].node, yyvsp[0].node); }
 
18283
    break;
 
18284
 
 
18285
  case 1028:
 
18286
#line 6467 "gram.y"
 
18287
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", yyvsp[-2].node, yyvsp[0].node); }
 
18288
    break;
 
18289
 
 
18290
  case 1029:
 
18291
#line 6469 "gram.y"
 
18292
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-2].node, yyvsp[0].node); }
 
18293
    break;
 
18294
 
 
18295
  case 1030:
 
18296
#line 6471 "gram.y"
 
18297
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-2].node, yyvsp[0].node); }
 
18298
    break;
 
18299
 
 
18300
  case 1031:
 
18301
#line 6473 "gram.y"
 
18302
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", yyvsp[-2].node, yyvsp[0].node); }
 
18303
    break;
 
18304
 
 
18305
  case 1032:
 
18306
#line 6476 "gram.y"
 
18307
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, yyvsp[-2].node, yyvsp[0].node); }
 
18308
    break;
 
18309
 
 
18310
  case 1033:
 
18311
#line 6478 "gram.y"
 
18312
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, NULL, yyvsp[0].node); }
 
18313
    break;
 
18314
 
 
18315
  case 1034:
 
18316
#line 6480 "gram.y"
 
18317
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[0].list, yyvsp[-1].node, NULL); }
 
18318
    break;
 
18319
 
 
18320
  case 1035:
 
18321
#line 6483 "gram.y"
 
18322
    { yyval.node = (Node *) makeA_Expr(AEXPR_AND, NIL, yyvsp[-2].node, yyvsp[0].node); }
 
18323
    break;
 
18324
 
 
18325
  case 1036:
 
18326
#line 6485 "gram.y"
 
18327
    { yyval.node = (Node *) makeA_Expr(AEXPR_OR, NIL, yyvsp[-2].node, yyvsp[0].node); }
 
18328
    break;
 
18329
 
 
18330
  case 1037:
 
18331
#line 6487 "gram.y"
 
18332
    { yyval.node = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, yyvsp[0].node); }
 
18333
    break;
 
18334
 
 
18335
  case 1038:
 
18336
#line 6490 "gram.y"
 
18337
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", yyvsp[-2].node, yyvsp[0].node); }
 
18338
    break;
 
18339
 
 
18340
  case 1039:
 
18341
#line 6492 "gram.y"
 
18342
    {
 
18343
                                        FuncCall *n = makeNode(FuncCall);
 
18344
                                        n->funcname = SystemFuncName("like_escape");
 
18345
                                        n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
 
18346
                                        n->agg_star = FALSE;
 
18347
                                        n->agg_distinct = FALSE;
 
18348
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~", yyvsp[-4].node, (Node *) n);
 
18349
                                }
 
18350
    break;
 
18351
 
 
18352
  case 1040:
 
18353
#line 6501 "gram.y"
 
18354
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", yyvsp[-3].node, yyvsp[0].node); }
 
18355
    break;
 
18356
 
 
18357
  case 1041:
 
18358
#line 6503 "gram.y"
 
18359
    {
 
18360
                                        FuncCall *n = makeNode(FuncCall);
 
18361
                                        n->funcname = SystemFuncName("like_escape");
 
18362
                                        n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
 
18363
                                        n->agg_star = FALSE;
 
18364
                                        n->agg_distinct = FALSE;
 
18365
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~", yyvsp[-5].node, (Node *) n);
 
18366
                                }
 
18367
    break;
 
18368
 
 
18369
  case 1042:
 
18370
#line 6512 "gram.y"
 
18371
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", yyvsp[-2].node, yyvsp[0].node); }
 
18372
    break;
 
18373
 
 
18374
  case 1043:
 
18375
#line 6514 "gram.y"
 
18376
    {
 
18377
                                        FuncCall *n = makeNode(FuncCall);
 
18378
                                        n->funcname = SystemFuncName("like_escape");
 
18379
                                        n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
 
18380
                                        n->agg_star = FALSE;
 
18381
                                        n->agg_distinct = FALSE;
 
18382
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~~*", yyvsp[-4].node, (Node *) n);
 
18383
                                }
 
18384
    break;
 
18385
 
 
18386
  case 1044:
 
18387
#line 6523 "gram.y"
 
18388
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", yyvsp[-3].node, yyvsp[0].node); }
 
18389
    break;
 
18390
 
 
18391
  case 1045:
 
18392
#line 6525 "gram.y"
 
18393
    {
 
18394
                                        FuncCall *n = makeNode(FuncCall);
 
18395
                                        n->funcname = SystemFuncName("like_escape");
 
18396
                                        n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
 
18397
                                        n->agg_star = FALSE;
 
18398
                                        n->agg_distinct = FALSE;
 
18399
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~~*", yyvsp[-5].node, (Node *) n);
 
18400
                                }
 
18401
    break;
 
18402
 
 
18403
  case 1046:
 
18404
#line 6535 "gram.y"
 
18405
    {
 
18406
                                        A_Const *c = makeNode(A_Const);
 
18407
                                        FuncCall *n = makeNode(FuncCall);
 
18408
                                        c->val.type = T_Null;
 
18409
                                        n->funcname = SystemFuncName("similar_escape");
 
18410
                                        n->args = list_make2(yyvsp[0].node, (Node *) c);
 
18411
                                        n->agg_star = FALSE;
 
18412
                                        n->agg_distinct = FALSE;
 
18413
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", yyvsp[-3].node, (Node *) n);
 
18414
                                }
 
18415
    break;
 
18416
 
 
18417
  case 1047:
 
18418
#line 6546 "gram.y"
 
18419
    {
 
18420
                                        FuncCall *n = makeNode(FuncCall);
 
18421
                                        n->funcname = SystemFuncName("similar_escape");
 
18422
                                        n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
 
18423
                                        n->agg_star = FALSE;
 
18424
                                        n->agg_distinct = FALSE;
 
18425
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "~", yyvsp[-5].node, (Node *) n);
 
18426
                                }
 
18427
    break;
 
18428
 
 
18429
  case 1048:
 
18430
#line 6555 "gram.y"
 
18431
    {
 
18432
                                        A_Const *c = makeNode(A_Const);
 
18433
                                        FuncCall *n = makeNode(FuncCall);
 
18434
                                        c->val.type = T_Null;
 
18435
                                        n->funcname = SystemFuncName("similar_escape");
 
18436
                                        n->args = list_make2(yyvsp[0].node, (Node *) c);
 
18437
                                        n->agg_star = FALSE;
 
18438
                                        n->agg_distinct = FALSE;
 
18439
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", yyvsp[-4].node, (Node *) n);
 
18440
                                }
 
18441
    break;
 
18442
 
 
18443
  case 1049:
 
18444
#line 6566 "gram.y"
 
18445
    {
 
18446
                                        FuncCall *n = makeNode(FuncCall);
 
18447
                                        n->funcname = SystemFuncName("similar_escape");
 
18448
                                        n->args = list_make2(yyvsp[-2].node, yyvsp[0].node);
 
18449
                                        n->agg_star = FALSE;
 
18450
                                        n->agg_distinct = FALSE;
 
18451
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "!~", yyvsp[-6].node, (Node *) n);
 
18452
                                }
 
18453
    break;
 
18454
 
 
18455
  case 1050:
 
18456
#line 6585 "gram.y"
 
18457
    {
 
18458
                                        if (IsA(yyvsp[-1].node, RowExpr))
 
18459
                                                yyval.node = makeRowNullTest(IS_NULL, (RowExpr *) yyvsp[-1].node);
 
18460
                                        else
 
18461
                                        {
 
18462
                                                NullTest *n = makeNode(NullTest);
 
18463
                                                n->arg = (Expr *) yyvsp[-1].node;
 
18464
                                                n->nulltesttype = IS_NULL;
 
18465
                                                yyval.node = (Node *)n;
 
18466
                                        }
 
18467
                                }
 
18468
    break;
 
18469
 
 
18470
  case 1051:
 
18471
#line 6597 "gram.y"
 
18472
    {
 
18473
                                        if (IsA(yyvsp[-2].node, RowExpr))
 
18474
                                                yyval.node = makeRowNullTest(IS_NULL, (RowExpr *) yyvsp[-2].node);
 
18475
                                        else
 
18476
                                        {
 
18477
                                                NullTest *n = makeNode(NullTest);
 
18478
                                                n->arg = (Expr *) yyvsp[-2].node;
 
18479
                                                n->nulltesttype = IS_NULL;
 
18480
                                                yyval.node = (Node *)n;
 
18481
                                        }
 
18482
                                }
 
18483
    break;
 
18484
 
 
18485
  case 1052:
 
18486
#line 6609 "gram.y"
 
18487
    {
 
18488
                                        if (IsA(yyvsp[-1].node, RowExpr))
 
18489
                                                yyval.node = makeRowNullTest(IS_NOT_NULL, (RowExpr *) yyvsp[-1].node);
 
18490
                                        else
 
18491
                                        {
 
18492
                                                NullTest *n = makeNode(NullTest);
 
18493
                                                n->arg = (Expr *) yyvsp[-1].node;
 
18494
                                                n->nulltesttype = IS_NOT_NULL;
 
18495
                                                yyval.node = (Node *)n;
 
18496
                                        }
 
18497
                                }
 
18498
    break;
 
18499
 
 
18500
  case 1053:
 
18501
#line 6621 "gram.y"
 
18502
    {
 
18503
                                        if (IsA(yyvsp[-3].node, RowExpr))
 
18504
                                                yyval.node = makeRowNullTest(IS_NOT_NULL, (RowExpr *) yyvsp[-3].node);
 
18505
                                        else
 
18506
                                        {
 
18507
                                                NullTest *n = makeNode(NullTest);
 
18508
                                                n->arg = (Expr *) yyvsp[-3].node;
 
18509
                                                n->nulltesttype = IS_NOT_NULL;
 
18510
                                                yyval.node = (Node *)n;
 
18511
                                        }
 
18512
                                }
 
18513
    break;
 
18514
 
 
18515
  case 1054:
 
18516
#line 6633 "gram.y"
 
18517
    {
 
18518
                                        yyval.node = (Node *)makeOverlaps(yyvsp[-2].list, yyvsp[0].list);
 
18519
                                }
 
18520
    break;
 
18521
 
 
18522
  case 1055:
 
18523
#line 6637 "gram.y"
 
18524
    {
 
18525
                                        BooleanTest *b = makeNode(BooleanTest);
 
18526
                                        b->arg = (Expr *) yyvsp[-2].node;
 
18527
                                        b->booltesttype = IS_TRUE;
 
18528
                                        yyval.node = (Node *)b;
 
18529
                                }
 
18530
    break;
 
18531
 
 
18532
  case 1056:
 
18533
#line 6644 "gram.y"
 
18534
    {
 
18535
                                        BooleanTest *b = makeNode(BooleanTest);
 
18536
                                        b->arg = (Expr *) yyvsp[-3].node;
 
18537
                                        b->booltesttype = IS_NOT_TRUE;
 
18538
                                        yyval.node = (Node *)b;
 
18539
                                }
 
18540
    break;
 
18541
 
 
18542
  case 1057:
 
18543
#line 6651 "gram.y"
 
18544
    {
 
18545
                                        BooleanTest *b = makeNode(BooleanTest);
 
18546
                                        b->arg = (Expr *) yyvsp[-2].node;
 
18547
                                        b->booltesttype = IS_FALSE;
 
18548
                                        yyval.node = (Node *)b;
 
18549
                                }
 
18550
    break;
 
18551
 
 
18552
  case 1058:
 
18553
#line 6658 "gram.y"
 
18554
    {
 
18555
                                        BooleanTest *b = makeNode(BooleanTest);
 
18556
                                        b->arg = (Expr *) yyvsp[-3].node;
 
18557
                                        b->booltesttype = IS_NOT_FALSE;
 
18558
                                        yyval.node = (Node *)b;
 
18559
                                }
 
18560
    break;
 
18561
 
 
18562
  case 1059:
 
18563
#line 6665 "gram.y"
 
18564
    {
 
18565
                                        BooleanTest *b = makeNode(BooleanTest);
 
18566
                                        b->arg = (Expr *) yyvsp[-2].node;
 
18567
                                        b->booltesttype = IS_UNKNOWN;
 
18568
                                        yyval.node = (Node *)b;
 
18569
                                }
 
18570
    break;
 
18571
 
 
18572
  case 1060:
 
18573
#line 6672 "gram.y"
 
18574
    {
 
18575
                                        BooleanTest *b = makeNode(BooleanTest);
 
18576
                                        b->arg = (Expr *) yyvsp[-3].node;
 
18577
                                        b->booltesttype = IS_NOT_UNKNOWN;
 
18578
                                        yyval.node = (Node *)b;
 
18579
                                }
 
18580
    break;
 
18581
 
 
18582
  case 1061:
 
18583
#line 6679 "gram.y"
 
18584
    {
 
18585
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyvsp[-4].node, yyvsp[0].node);
 
18586
                                }
 
18587
    break;
 
18588
 
 
18589
  case 1062:
 
18590
#line 6683 "gram.y"
 
18591
    {
 
18592
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", yyvsp[-5].node, (Node *) yyvsp[-1].list);
 
18593
                                }
 
18594
    break;
 
18595
 
 
18596
  case 1063:
 
18597
#line 6687 "gram.y"
 
18598
    {
 
18599
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "!=", yyvsp[-6].node, (Node *) yyvsp[-1].list);
 
18600
                                }
 
18601
    break;
 
18602
 
 
18603
  case 1064:
 
18604
#line 6691 "gram.y"
 
18605
    {
 
18606
                                        yyval.node = (Node *) makeA_Expr(AEXPR_AND, NIL,
 
18607
                                                (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", yyvsp[-5].node, yyvsp[-2].node),
 
18608
                                                (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", yyvsp[-5].node, yyvsp[0].node));
 
18609
                                }
 
18610
    break;
 
18611
 
 
18612
  case 1065:
 
18613
#line 6697 "gram.y"
 
18614
    {
 
18615
                                        yyval.node = (Node *) makeA_Expr(AEXPR_OR, NIL,
 
18616
                                                (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-6].node, yyvsp[-2].node),
 
18617
                                                (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-6].node, yyvsp[0].node));
 
18618
                                }
 
18619
    break;
 
18620
 
 
18621
  case 1066:
 
18622
#line 6703 "gram.y"
 
18623
    {
 
18624
                                        yyval.node = (Node *) makeA_Expr(AEXPR_OR, NIL,
 
18625
                                                (Node *) makeA_Expr(AEXPR_AND, NIL,
 
18626
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", yyvsp[-5].node, yyvsp[-2].node),
 
18627
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", yyvsp[-5].node, yyvsp[0].node)),
 
18628
                                                (Node *) makeA_Expr(AEXPR_AND, NIL,
 
18629
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", yyvsp[-5].node, yyvsp[0].node),
 
18630
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", yyvsp[-5].node, yyvsp[-2].node)));
 
18631
                                }
 
18632
    break;
 
18633
 
 
18634
  case 1067:
 
18635
#line 6713 "gram.y"
 
18636
    {
 
18637
                                        yyval.node = (Node *) makeA_Expr(AEXPR_AND, NIL,
 
18638
                                                (Node *) makeA_Expr(AEXPR_OR, NIL,
 
18639
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-6].node, yyvsp[-2].node),
 
18640
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-6].node, yyvsp[0].node)),
 
18641
                                                (Node *) makeA_Expr(AEXPR_OR, NIL,
 
18642
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-6].node, yyvsp[0].node),
 
18643
                                                    (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-6].node, yyvsp[-2].node)));
 
18644
                                }
 
18645
    break;
 
18646
 
 
18647
  case 1068:
 
18648
#line 6723 "gram.y"
 
18649
    {
 
18650
                                        /* in_expr returns a SubLink or a list of a_exprs */
 
18651
                                        if (IsA(yyvsp[0].node, SubLink))
 
18652
                                        {
 
18653
                                                        SubLink *n = (SubLink *)yyvsp[0].node;
 
18654
                                                        n->subLinkType = ANY_SUBLINK;
 
18655
                                                        if (IsA(yyvsp[-2].node, RowExpr))
 
18656
                                                                n->lefthand = ((RowExpr *) yyvsp[-2].node)->args;
 
18657
                                                        else
 
18658
                                                                n->lefthand = list_make1(yyvsp[-2].node);
 
18659
                                                        n->operName = list_make1(makeString("="));
 
18660
                                                        yyval.node = (Node *)n;
 
18661
                                        }
 
18662
                                        else
 
18663
                                        {
 
18664
                                                Node *n = NULL;
 
18665
                                                ListCell *l;
 
18666
                                                foreach(l, (List *) yyvsp[0].node)
 
18667
                                                {
 
18668
                                                        Node *cmp;
 
18669
                                                        cmp = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", yyvsp[-2].node, lfirst(l));
 
18670
                                                        if (n == NULL)
 
18671
                                                                n = cmp;
 
18672
                                                        else
 
18673
                                                                n = (Node *) makeA_Expr(AEXPR_OR, NIL, n, cmp);
 
18674
                                                }
 
18675
                                                yyval.node = n;
 
18676
                                        }
 
18677
                                }
 
18678
    break;
 
18679
 
 
18680
  case 1069:
 
18681
#line 6753 "gram.y"
 
18682
    {
 
18683
                                        /* in_expr returns a SubLink or a list of a_exprs */
 
18684
                                        if (IsA(yyvsp[0].node, SubLink))
 
18685
                                        {
 
18686
                                                /* Make an IN node */
 
18687
                                                SubLink *n = (SubLink *)yyvsp[0].node;
 
18688
                                                n->subLinkType = ANY_SUBLINK;
 
18689
                                                if (IsA(yyvsp[-3].node, RowExpr))
 
18690
                                                        n->lefthand = ((RowExpr *) yyvsp[-3].node)->args;
 
18691
                                                else
 
18692
                                                        n->lefthand = list_make1(yyvsp[-3].node);
 
18693
                                                n->operName = list_make1(makeString("="));
 
18694
                                                /* Stick a NOT on top */
 
18695
                                                yyval.node = (Node *) makeA_Expr(AEXPR_NOT, NIL, NULL, (Node *) n);
 
18696
                                        }
 
18697
                                        else
 
18698
                                        {
 
18699
                                                Node *n = NULL;
 
18700
                                                ListCell *l;
 
18701
                                                foreach(l, (List *) yyvsp[0].node)
 
18702
                                                {
 
18703
                                                        Node *cmp;
 
18704
                                                        cmp = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", yyvsp[-3].node, lfirst(l));
 
18705
                                                        if (n == NULL)
 
18706
                                                                n = cmp;
 
18707
                                                        else
 
18708
                                                                n = (Node *) makeA_Expr(AEXPR_AND, NIL, n, cmp);
 
18709
                                                }
 
18710
                                                yyval.node = n;
 
18711
                                        }
 
18712
                                }
 
18713
    break;
 
18714
 
 
18715
  case 1070:
 
18716
#line 6785 "gram.y"
 
18717
    {
 
18718
                                        SubLink *n = makeNode(SubLink);
 
18719
                                        n->subLinkType = yyvsp[-1].ival;
 
18720
                                        if (IsA(yyvsp[-3].node, RowExpr))
 
18721
                                                n->lefthand = ((RowExpr *) yyvsp[-3].node)->args;
 
18722
                                        else
 
18723
                                                n->lefthand = list_make1(yyvsp[-3].node);
 
18724
                                        n->operName = yyvsp[-2].list;
 
18725
                                        n->subselect = yyvsp[0].node;
 
18726
                                        yyval.node = (Node *)n;
 
18727
                                }
 
18728
    break;
 
18729
 
 
18730
  case 1071:
 
18731
#line 6797 "gram.y"
 
18732
    {
 
18733
                                        if (yyvsp[-3].ival == ANY_SUBLINK)
 
18734
                                                yyval.node = (Node *) makeA_Expr(AEXPR_OP_ANY, yyvsp[-4].list, yyvsp[-5].node, yyvsp[-1].node);
 
18735
                                        else
 
18736
                                                yyval.node = (Node *) makeA_Expr(AEXPR_OP_ALL, yyvsp[-4].list, yyvsp[-5].node, yyvsp[-1].node);
 
18737
                                }
 
18738
    break;
 
18739
 
 
18740
  case 1072:
 
18741
#line 6804 "gram.y"
 
18742
    {
 
18743
                                        /* Not sure how to get rid of the parentheses
 
18744
                                         * but there are lots of shift/reduce errors without them.
 
18745
                                         *
 
18746
                                         * Should be able to implement this by plopping the entire
 
18747
                                         * select into a node, then transforming the target expressions
 
18748
                                         * from whatever they are into count(*), and testing the
 
18749
                                         * entire result equal to one.
 
18750
                                         * But, will probably implement a separate node in the executor.
 
18751
                                         */
 
18752
                                        ereport(ERROR,
 
18753
                                                        (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
 
18754
                                                         errmsg("UNIQUE predicate is not yet implemented")));
 
18755
                                }
 
18756
    break;
 
18757
 
 
18758
  case 1073:
 
18759
#line 6830 "gram.y"
 
18760
    { yyval.node = yyvsp[0].node; }
 
18761
    break;
 
18762
 
 
18763
  case 1074:
 
18764
#line 6832 "gram.y"
 
18765
    { yyval.node = makeTypeCast(yyvsp[-2].node, yyvsp[0].typnam); }
 
18766
    break;
 
18767
 
 
18768
  case 1075:
 
18769
#line 6834 "gram.y"
 
18770
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, yyvsp[0].node); }
 
18771
    break;
 
18772
 
 
18773
  case 1076:
 
18774
#line 6836 "gram.y"
 
18775
    { yyval.node = doNegate(yyvsp[0].node); }
 
18776
    break;
 
18777
 
 
18778
  case 1077:
 
18779
#line 6838 "gram.y"
 
18780
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", yyvsp[-2].node, yyvsp[0].node); }
 
18781
    break;
 
18782
 
 
18783
  case 1078:
 
18784
#line 6840 "gram.y"
 
18785
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", yyvsp[-2].node, yyvsp[0].node); }
 
18786
    break;
 
18787
 
 
18788
  case 1079:
 
18789
#line 6842 "gram.y"
 
18790
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", yyvsp[-2].node, yyvsp[0].node); }
 
18791
    break;
 
18792
 
 
18793
  case 1080:
 
18794
#line 6844 "gram.y"
 
18795
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", yyvsp[-2].node, yyvsp[0].node); }
 
18796
    break;
 
18797
 
 
18798
  case 1081:
 
18799
#line 6846 "gram.y"
 
18800
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", yyvsp[-2].node, yyvsp[0].node); }
 
18801
    break;
 
18802
 
 
18803
  case 1082:
 
18804
#line 6848 "gram.y"
 
18805
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", yyvsp[-2].node, yyvsp[0].node); }
 
18806
    break;
 
18807
 
 
18808
  case 1083:
 
18809
#line 6850 "gram.y"
 
18810
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", yyvsp[-2].node, yyvsp[0].node); }
 
18811
    break;
 
18812
 
 
18813
  case 1084:
 
18814
#line 6852 "gram.y"
 
18815
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", yyvsp[-2].node, yyvsp[0].node); }
 
18816
    break;
 
18817
 
 
18818
  case 1085:
 
18819
#line 6854 "gram.y"
 
18820
    { yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", yyvsp[-2].node, yyvsp[0].node); }
 
18821
    break;
 
18822
 
 
18823
  case 1086:
 
18824
#line 6856 "gram.y"
 
18825
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, yyvsp[-2].node, yyvsp[0].node); }
 
18826
    break;
 
18827
 
 
18828
  case 1087:
 
18829
#line 6858 "gram.y"
 
18830
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[-1].list, NULL, yyvsp[0].node); }
 
18831
    break;
 
18832
 
 
18833
  case 1088:
 
18834
#line 6860 "gram.y"
 
18835
    { yyval.node = (Node *) makeA_Expr(AEXPR_OP, yyvsp[0].list, yyvsp[-1].node, NULL); }
 
18836
    break;
 
18837
 
 
18838
  case 1089:
 
18839
#line 6862 "gram.y"
 
18840
    {
 
18841
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyvsp[-4].node, yyvsp[0].node);
 
18842
                                }
 
18843
    break;
 
18844
 
 
18845
  case 1090:
 
18846
#line 6866 "gram.y"
 
18847
    {
 
18848
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "=", yyvsp[-5].node, (Node *) yyvsp[-1].list);
 
18849
                                }
 
18850
    break;
 
18851
 
 
18852
  case 1091:
 
18853
#line 6870 "gram.y"
 
18854
    {
 
18855
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_OF, "!=", yyvsp[-6].node, (Node *) yyvsp[-1].list);
 
18856
                                }
 
18857
    break;
 
18858
 
 
18859
  case 1092:
 
18860
#line 6883 "gram.y"
 
18861
    { yyval.node = yyvsp[0].node; }
 
18862
    break;
 
18863
 
 
18864
  case 1093:
 
18865
#line 6884 "gram.y"
 
18866
    { yyval.node = yyvsp[0].node; }
 
18867
    break;
 
18868
 
 
18869
  case 1094:
 
18870
#line 6886 "gram.y"
 
18871
    {
 
18872
                                        ParamRef *p = makeNode(ParamRef);
 
18873
                                        p->number = yyvsp[-1].ival;
 
18874
                                        if (yyvsp[0].list)
 
18875
                                        {
 
18876
                                                A_Indirection *n = makeNode(A_Indirection);
 
18877
                                                n->arg = (Node *) p;
 
18878
                                                n->indirection = yyvsp[0].list;
 
18879
                                                yyval.node = (Node *) n;
 
18880
                                        }
 
18881
                                        else
 
18882
                                                yyval.node = (Node *) p;
 
18883
                                }
 
18884
    break;
 
18885
 
 
18886
  case 1095:
 
18887
#line 6900 "gram.y"
 
18888
    {
 
18889
                                        if (yyvsp[0].list)
 
18890
                                        {
 
18891
                                                A_Indirection *n = makeNode(A_Indirection);
 
18892
                                                n->arg = yyvsp[-2].node;
 
18893
                                                n->indirection = yyvsp[0].list;
 
18894
                                                yyval.node = (Node *)n;
 
18895
                                        }
 
18896
                                        else
 
18897
                                                yyval.node = yyvsp[-2].node;
 
18898
                                }
 
18899
    break;
 
18900
 
 
18901
  case 1096:
 
18902
#line 6912 "gram.y"
 
18903
    { yyval.node = yyvsp[0].node; }
 
18904
    break;
 
18905
 
 
18906
  case 1097:
 
18907
#line 6914 "gram.y"
 
18908
    { yyval.node = yyvsp[0].node; }
 
18909
    break;
 
18910
 
 
18911
  case 1098:
 
18912
#line 6916 "gram.y"
 
18913
    {
 
18914
                                        SubLink *n = makeNode(SubLink);
 
18915
                                        n->subLinkType = EXPR_SUBLINK;
 
18916
                                        n->lefthand = NIL;
 
18917
                                        n->operName = NIL;
 
18918
                                        n->subselect = yyvsp[0].node;
 
18919
                                        yyval.node = (Node *)n;
 
18920
                                }
 
18921
    break;
 
18922
 
 
18923
  case 1099:
 
18924
#line 6925 "gram.y"
 
18925
    {
 
18926
                                        SubLink *n = makeNode(SubLink);
 
18927
                                        n->subLinkType = EXISTS_SUBLINK;
 
18928
                                        n->lefthand = NIL;
 
18929
                                        n->operName = NIL;
 
18930
                                        n->subselect = yyvsp[0].node;
 
18931
                                        yyval.node = (Node *)n;
 
18932
                                }
 
18933
    break;
 
18934
 
 
18935
  case 1100:
 
18936
#line 6934 "gram.y"
 
18937
    {
 
18938
                                        SubLink *n = makeNode(SubLink);
 
18939
                                        n->subLinkType = ARRAY_SUBLINK;
 
18940
                                        n->lefthand = NIL;
 
18941
                                        n->operName = NIL;
 
18942
                                        n->subselect = yyvsp[0].node;
 
18943
                                        yyval.node = (Node *)n;
 
18944
                                }
 
18945
    break;
 
18946
 
 
18947
  case 1101:
 
18948
#line 6943 "gram.y"
 
18949
    {   yyval.node = yyvsp[0].node;     }
 
18950
    break;
 
18951
 
 
18952
  case 1102:
 
18953
#line 6945 "gram.y"
 
18954
    {
 
18955
                                        RowExpr *r = makeNode(RowExpr);
 
18956
                                        r->args = yyvsp[0].list;
 
18957
                                        r->row_typeid = 0;      /* not analyzed yet */
 
18958
                                        yyval.node = (Node *)r;
 
18959
                                }
 
18960
    break;
 
18961
 
 
18962
  case 1103:
 
18963
#line 6962 "gram.y"
 
18964
    {
 
18965
                                        FuncCall *n = makeNode(FuncCall);
 
18966
                                        n->funcname = yyvsp[-2].list;
 
18967
                                        n->args = NIL;
 
18968
                                        n->agg_star = FALSE;
 
18969
                                        n->agg_distinct = FALSE;
 
18970
                                        yyval.node = (Node *)n;
 
18971
                                }
 
18972
    break;
 
18973
 
 
18974
  case 1104:
 
18975
#line 6971 "gram.y"
 
18976
    {
 
18977
                                        FuncCall *n = makeNode(FuncCall);
 
18978
                                        n->funcname = yyvsp[-3].list;
 
18979
                                        n->args = yyvsp[-1].list;
 
18980
                                        n->agg_star = FALSE;
 
18981
                                        n->agg_distinct = FALSE;
 
18982
                                        yyval.node = (Node *)n;
 
18983
                                }
 
18984
    break;
 
18985
 
 
18986
  case 1105:
 
18987
#line 6980 "gram.y"
 
18988
    {
 
18989
                                        FuncCall *n = makeNode(FuncCall);
 
18990
                                        n->funcname = yyvsp[-4].list;
 
18991
                                        n->args = yyvsp[-1].list;
 
18992
                                        n->agg_star = FALSE;
 
18993
                                        n->agg_distinct = FALSE;
 
18994
                                        /* Ideally we'd mark the FuncCall node to indicate
 
18995
                                         * "must be an aggregate", but there's no provision
 
18996
                                         * for that in FuncCall at the moment.
 
18997
                                         */
 
18998
                                        yyval.node = (Node *)n;
 
18999
                                }
 
19000
    break;
 
19001
 
 
19002
  case 1106:
 
19003
#line 6993 "gram.y"
 
19004
    {
 
19005
                                        FuncCall *n = makeNode(FuncCall);
 
19006
                                        n->funcname = yyvsp[-4].list;
 
19007
                                        n->args = yyvsp[-1].list;
 
19008
                                        n->agg_star = FALSE;
 
19009
                                        n->agg_distinct = TRUE;
 
19010
                                        yyval.node = (Node *)n;
 
19011
                                }
 
19012
    break;
 
19013
 
 
19014
  case 1107:
 
19015
#line 7002 "gram.y"
 
19016
    {
 
19017
                                        /*
 
19018
                                         * For now, we transform AGGREGATE(*) into AGGREGATE(1).
 
19019
                                         *
 
19020
                                         * This does the right thing for COUNT(*) (in fact,
 
19021
                                         * any certainly-non-null expression would do for COUNT),
 
19022
                                         * and there are no other aggregates in SQL92 that accept
 
19023
                                         * '*' as parameter.
 
19024
                                         *
 
19025
                                         * The FuncCall node is also marked agg_star = true,
 
19026
                                         * so that later processing can detect what the argument
 
19027
                                         * really was.
 
19028
                                         */
 
19029
                                        FuncCall *n = makeNode(FuncCall);
 
19030
                                        A_Const *star = makeNode(A_Const);
 
19031
 
 
19032
                                        star->val.type = T_Integer;
 
19033
                                        star->val.val.ival = 1;
 
19034
                                        n->funcname = yyvsp[-3].list;
 
19035
                                        n->args = list_make1(star);
 
19036
                                        n->agg_star = TRUE;
 
19037
                                        n->agg_distinct = FALSE;
 
19038
                                        yyval.node = (Node *)n;
 
19039
                                }
 
19040
    break;
 
19041
 
 
19042
  case 1108:
 
19043
#line 7027 "gram.y"
 
19044
    {
 
19045
                                        /*
 
19046
                                         * Translate as "'now'::text::date".
 
19047
                                         *
 
19048
                                         * We cannot use "'now'::date" because coerce_type() will
 
19049
                                         * immediately reduce that to a constant representing
 
19050
                                         * today's date.  We need to delay the conversion until
 
19051
                                         * runtime, else the wrong things will happen when
 
19052
                                         * CURRENT_DATE is used in a column default value or rule.
 
19053
                                         *
 
19054
                                         * This could be simplified if we had a way to generate
 
19055
                                         * an expression tree representing runtime application
 
19056
                                         * of type-input conversion functions.  (As of PG 7.3
 
19057
                                         * that is actually possible, but not clear that we want
 
19058
                                         * to rely on it.)
 
19059
                                         */
 
19060
                                        A_Const *s = makeNode(A_Const);
 
19061
                                        TypeName *d;
 
19062
 
 
19063
                                        s->val.type = T_String;
 
19064
                                        s->val.val.str = "now";
 
19065
                                        s->typename = SystemTypeName("text");
 
19066
 
 
19067
                                        d = SystemTypeName("date");
 
19068
 
 
19069
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19070
                                }
 
19071
    break;
 
19072
 
 
19073
  case 1109:
 
19074
#line 7055 "gram.y"
 
19075
    {
 
19076
                                        /*
 
19077
                                         * Translate as "'now'::text::timetz".
 
19078
                                         * See comments for CURRENT_DATE.
 
19079
                                         */
 
19080
                                        A_Const *s = makeNode(A_Const);
 
19081
                                        TypeName *d;
 
19082
 
 
19083
                                        s->val.type = T_String;
 
19084
                                        s->val.val.str = "now";
 
19085
                                        s->typename = SystemTypeName("text");
 
19086
 
 
19087
                                        d = SystemTypeName("timetz");
 
19088
 
 
19089
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19090
                                }
 
19091
    break;
 
19092
 
 
19093
  case 1110:
 
19094
#line 7072 "gram.y"
 
19095
    {
 
19096
                                        /*
 
19097
                                         * Translate as "'now'::text::timetz(n)".
 
19098
                                         * See comments for CURRENT_DATE.
 
19099
                                         */
 
19100
                                        A_Const *s = makeNode(A_Const);
 
19101
                                        TypeName *d;
 
19102
 
 
19103
                                        s->val.type = T_String;
 
19104
                                        s->val.val.str = "now";
 
19105
                                        s->typename = SystemTypeName("text");
 
19106
                                        d = SystemTypeName("timetz");
 
19107
                                        if (yyvsp[-1].ival < 0)
 
19108
                                                ereport(ERROR,
 
19109
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19110
                                                                 errmsg("CURRENT_TIME(%d) precision must not be negative",
 
19111
                                                                                yyvsp[-1].ival)));
 
19112
                                        if (yyvsp[-1].ival > MAX_TIME_PRECISION)
 
19113
                                        {
 
19114
                                                ereport(WARNING,
 
19115
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19116
                                                                 errmsg("CURRENT_TIME(%d) precision reduced to maximum allowed, %d",
 
19117
                                                                                yyvsp[-1].ival, MAX_TIME_PRECISION)));
 
19118
                                                yyvsp[-1].ival = MAX_TIME_PRECISION;
 
19119
                                        }
 
19120
                                        d->typmod = yyvsp[-1].ival;
 
19121
 
 
19122
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19123
                                }
 
19124
    break;
 
19125
 
 
19126
  case 1111:
 
19127
#line 7102 "gram.y"
 
19128
    {
 
19129
                                        /*
 
19130
                                         * Translate as "now()", since we have a function that
 
19131
                                         * does exactly what is needed.
 
19132
                                         */
 
19133
                                        FuncCall *n = makeNode(FuncCall);
 
19134
                                        n->funcname = SystemFuncName("now");
 
19135
                                        n->args = NIL;
 
19136
                                        n->agg_star = FALSE;
 
19137
                                        n->agg_distinct = FALSE;
 
19138
                                        yyval.node = (Node *)n;
 
19139
                                }
 
19140
    break;
 
19141
 
 
19142
  case 1112:
 
19143
#line 7115 "gram.y"
 
19144
    {
 
19145
                                        /*
 
19146
                                         * Translate as "'now'::text::timestamptz(n)".
 
19147
                                         * See comments for CURRENT_DATE.
 
19148
                                         */
 
19149
                                        A_Const *s = makeNode(A_Const);
 
19150
                                        TypeName *d;
 
19151
 
 
19152
                                        s->val.type = T_String;
 
19153
                                        s->val.val.str = "now";
 
19154
                                        s->typename = SystemTypeName("text");
 
19155
 
 
19156
                                        d = SystemTypeName("timestamptz");
 
19157
                                        if (yyvsp[-1].ival < 0)
 
19158
                                                ereport(ERROR,
 
19159
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19160
                                                                 errmsg("CURRENT_TIMESTAMP(%d) precision must not be negative",
 
19161
                                                                                yyvsp[-1].ival)));
 
19162
                                        if (yyvsp[-1].ival > MAX_TIMESTAMP_PRECISION)
 
19163
                                        {
 
19164
                                                ereport(WARNING,
 
19165
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19166
                                                                 errmsg("CURRENT_TIMESTAMP(%d) precision reduced to maximum allowed, %d",
 
19167
                                                                                yyvsp[-1].ival, MAX_TIMESTAMP_PRECISION)));
 
19168
                                                yyvsp[-1].ival = MAX_TIMESTAMP_PRECISION;
 
19169
                                        }
 
19170
                                        d->typmod = yyvsp[-1].ival;
 
19171
 
 
19172
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19173
                                }
 
19174
    break;
 
19175
 
 
19176
  case 1113:
 
19177
#line 7146 "gram.y"
 
19178
    {
 
19179
                                        /*
 
19180
                                         * Translate as "'now'::text::time".
 
19181
                                         * See comments for CURRENT_DATE.
 
19182
                                         */
 
19183
                                        A_Const *s = makeNode(A_Const);
 
19184
                                        TypeName *d;
 
19185
 
 
19186
                                        s->val.type = T_String;
 
19187
                                        s->val.val.str = "now";
 
19188
                                        s->typename = SystemTypeName("text");
 
19189
 
 
19190
                                        d = SystemTypeName("time");
 
19191
 
 
19192
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19193
                                }
 
19194
    break;
 
19195
 
 
19196
  case 1114:
 
19197
#line 7163 "gram.y"
 
19198
    {
 
19199
                                        /*
 
19200
                                         * Translate as "'now'::text::time(n)".
 
19201
                                         * See comments for CURRENT_DATE.
 
19202
                                         */
 
19203
                                        A_Const *s = makeNode(A_Const);
 
19204
                                        TypeName *d;
 
19205
 
 
19206
                                        s->val.type = T_String;
 
19207
                                        s->val.val.str = "now";
 
19208
                                        s->typename = SystemTypeName("text");
 
19209
                                        d = SystemTypeName("time");
 
19210
                                        if (yyvsp[-1].ival < 0)
 
19211
                                                ereport(ERROR,
 
19212
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19213
                                                                 errmsg("LOCALTIME(%d) precision must not be negative",
 
19214
                                                                                yyvsp[-1].ival)));
 
19215
                                        if (yyvsp[-1].ival > MAX_TIME_PRECISION)
 
19216
                                        {
 
19217
                                                ereport(WARNING,
 
19218
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19219
                                                                 errmsg("LOCALTIME(%d) precision reduced to maximum allowed, %d",
 
19220
                                                                                yyvsp[-1].ival, MAX_TIME_PRECISION)));
 
19221
                                                yyvsp[-1].ival = MAX_TIME_PRECISION;
 
19222
                                        }
 
19223
                                        d->typmod = yyvsp[-1].ival;
 
19224
 
 
19225
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19226
                                }
 
19227
    break;
 
19228
 
 
19229
  case 1115:
 
19230
#line 7193 "gram.y"
 
19231
    {
 
19232
                                        /*
 
19233
                                         * Translate as "'now'::text::timestamp".
 
19234
                                         * See comments for CURRENT_DATE.
 
19235
                                         */
 
19236
                                        A_Const *s = makeNode(A_Const);
 
19237
                                        TypeName *d;
 
19238
 
 
19239
                                        s->val.type = T_String;
 
19240
                                        s->val.val.str = "now";
 
19241
                                        s->typename = SystemTypeName("text");
 
19242
 
 
19243
                                        d = SystemTypeName("timestamp");
 
19244
 
 
19245
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19246
                                }
 
19247
    break;
 
19248
 
 
19249
  case 1116:
 
19250
#line 7210 "gram.y"
 
19251
    {
 
19252
                                        /*
 
19253
                                         * Translate as "'now'::text::timestamp(n)".
 
19254
                                         * See comments for CURRENT_DATE.
 
19255
                                         */
 
19256
                                        A_Const *s = makeNode(A_Const);
 
19257
                                        TypeName *d;
 
19258
 
 
19259
                                        s->val.type = T_String;
 
19260
                                        s->val.val.str = "now";
 
19261
                                        s->typename = SystemTypeName("text");
 
19262
 
 
19263
                                        d = SystemTypeName("timestamp");
 
19264
                                        if (yyvsp[-1].ival < 0)
 
19265
                                                ereport(ERROR,
 
19266
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19267
                                                                 errmsg("LOCALTIMESTAMP(%d) precision must not be negative",
 
19268
                                                                                yyvsp[-1].ival)));
 
19269
                                        if (yyvsp[-1].ival > MAX_TIMESTAMP_PRECISION)
 
19270
                                        {
 
19271
                                                ereport(WARNING,
 
19272
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
19273
                                                                 errmsg("LOCALTIMESTAMP(%d) precision reduced to maximum allowed, %d",
 
19274
                                                                                yyvsp[-1].ival, MAX_TIMESTAMP_PRECISION)));
 
19275
                                                yyvsp[-1].ival = MAX_TIMESTAMP_PRECISION;
 
19276
                                        }
 
19277
                                        d->typmod = yyvsp[-1].ival;
 
19278
 
 
19279
                                        yyval.node = (Node *)makeTypeCast((Node *)s, d);
 
19280
                                }
 
19281
    break;
 
19282
 
 
19283
  case 1117:
 
19284
#line 7241 "gram.y"
 
19285
    {
 
19286
                                        FuncCall *n = makeNode(FuncCall);
 
19287
                                        n->funcname = SystemFuncName("current_user");
 
19288
                                        n->args = NIL;
 
19289
                                        n->agg_star = FALSE;
 
19290
                                        n->agg_distinct = FALSE;
 
19291
                                        yyval.node = (Node *)n;
 
19292
                                }
 
19293
    break;
 
19294
 
 
19295
  case 1118:
 
19296
#line 7250 "gram.y"
 
19297
    {
 
19298
                                        FuncCall *n = makeNode(FuncCall);
 
19299
                                        n->funcname = SystemFuncName("current_user");
 
19300
                                        n->args = NIL;
 
19301
                                        n->agg_star = FALSE;
 
19302
                                        n->agg_distinct = FALSE;
 
19303
                                        yyval.node = (Node *)n;
 
19304
                                }
 
19305
    break;
 
19306
 
 
19307
  case 1119:
 
19308
#line 7259 "gram.y"
 
19309
    {
 
19310
                                        FuncCall *n = makeNode(FuncCall);
 
19311
                                        n->funcname = SystemFuncName("session_user");
 
19312
                                        n->args = NIL;
 
19313
                                        n->agg_star = FALSE;
 
19314
                                        n->agg_distinct = FALSE;
 
19315
                                        yyval.node = (Node *)n;
 
19316
                                }
 
19317
    break;
 
19318
 
 
19319
  case 1120:
 
19320
#line 7268 "gram.y"
 
19321
    {
 
19322
                                        FuncCall *n = makeNode(FuncCall);
 
19323
                                        n->funcname = SystemFuncName("current_user");
 
19324
                                        n->args = NIL;
 
19325
                                        n->agg_star = FALSE;
 
19326
                                        n->agg_distinct = FALSE;
 
19327
                                        yyval.node = (Node *)n;
 
19328
                                }
 
19329
    break;
 
19330
 
 
19331
  case 1121:
 
19332
#line 7277 "gram.y"
 
19333
    { yyval.node = makeTypeCast(yyvsp[-3].node, yyvsp[-1].typnam); }
 
19334
    break;
 
19335
 
 
19336
  case 1122:
 
19337
#line 7279 "gram.y"
 
19338
    {
 
19339
                                        FuncCall *n = makeNode(FuncCall);
 
19340
                                        n->funcname = SystemFuncName("date_part");
 
19341
                                        n->args = yyvsp[-1].list;
 
19342
                                        n->agg_star = FALSE;
 
19343
                                        n->agg_distinct = FALSE;
 
19344
                                        yyval.node = (Node *)n;
 
19345
                                }
 
19346
    break;
 
19347
 
 
19348
  case 1123:
 
19349
#line 7288 "gram.y"
 
19350
    {
 
19351
                                        /* overlay(A PLACING B FROM C FOR D) is converted to
 
19352
                                         * substring(A, 1, C-1) || B || substring(A, C+1, C+D)
 
19353
                                         * overlay(A PLACING B FROM C) is converted to
 
19354
                                         * substring(A, 1, C-1) || B || substring(A, C+1, C+char_length(B))
 
19355
                                         */
 
19356
                                        FuncCall *n = makeNode(FuncCall);
 
19357
                                        n->funcname = SystemFuncName("overlay");
 
19358
                                        n->args = yyvsp[-1].list;
 
19359
                                        n->agg_star = FALSE;
 
19360
                                        n->agg_distinct = FALSE;
 
19361
                                        yyval.node = (Node *)n;
 
19362
                                }
 
19363
    break;
 
19364
 
 
19365
  case 1124:
 
19366
#line 7302 "gram.y"
 
19367
    {
 
19368
                                        /* position(A in B) is converted to position(B, A) */
 
19369
                                        FuncCall *n = makeNode(FuncCall);
 
19370
                                        n->funcname = SystemFuncName("position");
 
19371
                                        n->args = yyvsp[-1].list;
 
19372
                                        n->agg_star = FALSE;
 
19373
                                        n->agg_distinct = FALSE;
 
19374
                                        yyval.node = (Node *)n;
 
19375
                                }
 
19376
    break;
 
19377
 
 
19378
  case 1125:
 
19379
#line 7312 "gram.y"
 
19380
    {
 
19381
                                        /* substring(A from B for C) is converted to
 
19382
                                         * substring(A, B, C) - thomas 2000-11-28
 
19383
                                         */
 
19384
                                        FuncCall *n = makeNode(FuncCall);
 
19385
                                        n->funcname = SystemFuncName("substring");
 
19386
                                        n->args = yyvsp[-1].list;
 
19387
                                        n->agg_star = FALSE;
 
19388
                                        n->agg_distinct = FALSE;
 
19389
                                        yyval.node = (Node *)n;
 
19390
                                }
 
19391
    break;
 
19392
 
 
19393
  case 1126:
 
19394
#line 7324 "gram.y"
 
19395
    {
 
19396
                                        /* TREAT(expr AS target) converts expr of a particular type to target,
 
19397
                                         * which is defined to be a subtype of the original expression.
 
19398
                                         * In SQL99, this is intended for use with structured UDTs,
 
19399
                                         * but let's make this a generally useful form allowing stronger
 
19400
                                         * coersions than are handled by implicit casting.
 
19401
                                         */
 
19402
                                        FuncCall *n = makeNode(FuncCall);
 
19403
                                        /* Convert SystemTypeName() to SystemFuncName() even though
 
19404
                                         * at the moment they result in the same thing.
 
19405
                                         */
 
19406
                                        n->funcname = SystemFuncName(((Value *)llast(yyvsp[-1].typnam->names))->val.str);
 
19407
                                        n->args = list_make1(yyvsp[-3].node);
 
19408
                                        yyval.node = (Node *)n;
 
19409
                                }
 
19410
    break;
 
19411
 
 
19412
  case 1127:
 
19413
#line 7340 "gram.y"
 
19414
    {
 
19415
                                        /* various trim expressions are defined in SQL92
 
19416
                                         * - thomas 1997-07-19
 
19417
                                         */
 
19418
                                        FuncCall *n = makeNode(FuncCall);
 
19419
                                        n->funcname = SystemFuncName("btrim");
 
19420
                                        n->args = yyvsp[-1].list;
 
19421
                                        n->agg_star = FALSE;
 
19422
                                        n->agg_distinct = FALSE;
 
19423
                                        yyval.node = (Node *)n;
 
19424
                                }
 
19425
    break;
 
19426
 
 
19427
  case 1128:
 
19428
#line 7352 "gram.y"
 
19429
    {
 
19430
                                        FuncCall *n = makeNode(FuncCall);
 
19431
                                        n->funcname = SystemFuncName("ltrim");
 
19432
                                        n->args = yyvsp[-1].list;
 
19433
                                        n->agg_star = FALSE;
 
19434
                                        n->agg_distinct = FALSE;
 
19435
                                        yyval.node = (Node *)n;
 
19436
                                }
 
19437
    break;
 
19438
 
 
19439
  case 1129:
 
19440
#line 7361 "gram.y"
 
19441
    {
 
19442
                                        FuncCall *n = makeNode(FuncCall);
 
19443
                                        n->funcname = SystemFuncName("rtrim");
 
19444
                                        n->args = yyvsp[-1].list;
 
19445
                                        n->agg_star = FALSE;
 
19446
                                        n->agg_distinct = FALSE;
 
19447
                                        yyval.node = (Node *)n;
 
19448
                                }
 
19449
    break;
 
19450
 
 
19451
  case 1130:
 
19452
#line 7370 "gram.y"
 
19453
    {
 
19454
                                        FuncCall *n = makeNode(FuncCall);
 
19455
                                        n->funcname = SystemFuncName("btrim");
 
19456
                                        n->args = yyvsp[-1].list;
 
19457
                                        n->agg_star = FALSE;
 
19458
                                        n->agg_distinct = FALSE;
 
19459
                                        yyval.node = (Node *)n;
 
19460
                                }
 
19461
    break;
 
19462
 
 
19463
  case 1131:
 
19464
#line 7379 "gram.y"
 
19465
    {
 
19466
                                        FuncCall *n = makeNode(FuncCall);
 
19467
                                        A_Const *c = makeNode(A_Const);
 
19468
 
 
19469
                                        c->val.type = T_String;
 
19470
                                        c->val.val.str = NameListToQuotedString(yyvsp[-1].list);
 
19471
 
 
19472
                                        n->funcname = SystemFuncName("convert_using");
 
19473
                                        n->args = list_make2(yyvsp[-3].node, c);
 
19474
                                        n->agg_star = FALSE;
 
19475
                                        n->agg_distinct = FALSE;
 
19476
                                        yyval.node = (Node *)n;
 
19477
                                }
 
19478
    break;
 
19479
 
 
19480
  case 1132:
 
19481
#line 7393 "gram.y"
 
19482
    {
 
19483
                                        FuncCall *n = makeNode(FuncCall);
 
19484
                                        n->funcname = SystemFuncName("convert");
 
19485
                                        n->args = yyvsp[-1].list;
 
19486
                                        n->agg_star = FALSE;
 
19487
                                        n->agg_distinct = FALSE;
 
19488
                                        yyval.node = (Node *)n;
 
19489
                                }
 
19490
    break;
 
19491
 
 
19492
  case 1133:
 
19493
#line 7402 "gram.y"
 
19494
    {
 
19495
                                        yyval.node = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", yyvsp[-3].node, yyvsp[-1].node);
 
19496
                                }
 
19497
    break;
 
19498
 
 
19499
  case 1134:
 
19500
#line 7406 "gram.y"
 
19501
    {
 
19502
                                        CoalesceExpr *c = makeNode(CoalesceExpr);
 
19503
                                        c->args = yyvsp[-1].list;
 
19504
                                        yyval.node = (Node *)c;
 
19505
                                }
 
19506
    break;
 
19507
 
 
19508
  case 1135:
 
19509
#line 7412 "gram.y"
 
19510
    {
 
19511
                                        MinMaxExpr *v = makeNode(MinMaxExpr);
 
19512
                                        v->args = yyvsp[-1].list;
 
19513
                                        v->op = IS_GREATEST;
 
19514
                                        yyval.node = (Node *)v;
 
19515
                                }
 
19516
    break;
 
19517
 
 
19518
  case 1136:
 
19519
#line 7419 "gram.y"
 
19520
    {
 
19521
                                        MinMaxExpr *v = makeNode(MinMaxExpr);
 
19522
                                        v->args = yyvsp[-1].list;
 
19523
                                        v->op = IS_LEAST;
 
19524
                                        yyval.node = (Node *)v;
 
19525
                                }
 
19526
    break;
 
19527
 
 
19528
  case 1137:
 
19529
#line 7437 "gram.y"
 
19530
    { yyval.list = yyvsp[-1].list; }
 
19531
    break;
 
19532
 
 
19533
  case 1138:
 
19534
#line 7438 "gram.y"
 
19535
    { yyval.list = NIL; }
 
19536
    break;
 
19537
 
 
19538
  case 1139:
 
19539
#line 7439 "gram.y"
 
19540
    { yyval.list = lappend(yyvsp[-3].list, yyvsp[-1].node); }
 
19541
    break;
 
19542
 
 
19543
  case 1140:
 
19544
#line 7442 "gram.y"
 
19545
    { yyval.ival = ANY_SUBLINK; }
 
19546
    break;
 
19547
 
 
19548
  case 1141:
 
19549
#line 7443 "gram.y"
 
19550
    { yyval.ival = ANY_SUBLINK; }
 
19551
    break;
 
19552
 
 
19553
  case 1142:
 
19554
#line 7444 "gram.y"
 
19555
    { yyval.ival = ALL_SUBLINK; }
 
19556
    break;
 
19557
 
 
19558
  case 1143:
 
19559
#line 7447 "gram.y"
 
19560
    { yyval.str = yyvsp[0].str; }
 
19561
    break;
 
19562
 
 
19563
  case 1144:
 
19564
#line 7448 "gram.y"
 
19565
    { yyval.str = yyvsp[0].str; }
 
19566
    break;
 
19567
 
 
19568
  case 1145:
 
19569
#line 7451 "gram.y"
 
19570
    { yyval.str = "+"; }
 
19571
    break;
 
19572
 
 
19573
  case 1146:
 
19574
#line 7452 "gram.y"
 
19575
    { yyval.str = "-"; }
 
19576
    break;
 
19577
 
 
19578
  case 1147:
 
19579
#line 7453 "gram.y"
 
19580
    { yyval.str = "*"; }
 
19581
    break;
 
19582
 
 
19583
  case 1148:
 
19584
#line 7454 "gram.y"
 
19585
    { yyval.str = "/"; }
 
19586
    break;
 
19587
 
 
19588
  case 1149:
 
19589
#line 7455 "gram.y"
 
19590
    { yyval.str = "%"; }
 
19591
    break;
 
19592
 
 
19593
  case 1150:
 
19594
#line 7456 "gram.y"
 
19595
    { yyval.str = "^"; }
 
19596
    break;
 
19597
 
 
19598
  case 1151:
 
19599
#line 7457 "gram.y"
 
19600
    { yyval.str = "<"; }
 
19601
    break;
 
19602
 
 
19603
  case 1152:
 
19604
#line 7458 "gram.y"
 
19605
    { yyval.str = ">"; }
 
19606
    break;
 
19607
 
 
19608
  case 1153:
 
19609
#line 7459 "gram.y"
 
19610
    { yyval.str = "="; }
 
19611
    break;
 
19612
 
 
19613
  case 1154:
 
19614
#line 7463 "gram.y"
 
19615
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
19616
    break;
 
19617
 
 
19618
  case 1155:
 
19619
#line 7465 "gram.y"
 
19620
    { yyval.list = yyvsp[-1].list; }
 
19621
    break;
 
19622
 
 
19623
  case 1156:
 
19624
#line 7470 "gram.y"
 
19625
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
19626
    break;
 
19627
 
 
19628
  case 1157:
 
19629
#line 7472 "gram.y"
 
19630
    { yyval.list = yyvsp[-1].list; }
 
19631
    break;
 
19632
 
 
19633
  case 1158:
 
19634
#line 7477 "gram.y"
 
19635
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
19636
    break;
 
19637
 
 
19638
  case 1159:
 
19639
#line 7479 "gram.y"
 
19640
    { yyval.list = yyvsp[-1].list; }
 
19641
    break;
 
19642
 
 
19643
  case 1160:
 
19644
#line 7481 "gram.y"
 
19645
    { yyval.list = list_make1(makeString("~~")); }
 
19646
    break;
 
19647
 
 
19648
  case 1161:
 
19649
#line 7483 "gram.y"
 
19650
    { yyval.list = list_make1(makeString("!~~")); }
 
19651
    break;
 
19652
 
 
19653
  case 1162:
 
19654
#line 7485 "gram.y"
 
19655
    { yyval.list = list_make1(makeString("~~*")); }
 
19656
    break;
 
19657
 
 
19658
  case 1163:
 
19659
#line 7487 "gram.y"
 
19660
    { yyval.list = list_make1(makeString("!~~*")); }
 
19661
    break;
 
19662
 
 
19663
  case 1164:
 
19664
#line 7499 "gram.y"
 
19665
    {
 
19666
                                        yyval.list = list_make1(yyvsp[0].node);
 
19667
                                }
 
19668
    break;
 
19669
 
 
19670
  case 1165:
 
19671
#line 7503 "gram.y"
 
19672
    {
 
19673
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);
 
19674
                                }
 
19675
    break;
 
19676
 
 
19677
  case 1166:
 
19678
#line 7510 "gram.y"
 
19679
    {
 
19680
                                        A_Const *n = makeNode(A_Const);
 
19681
                                        n->val.type = T_String;
 
19682
                                        n->val.val.str = yyvsp[-2].str;
 
19683
                                        yyval.list = list_make2((Node *) n, yyvsp[0].node);
 
19684
                                }
 
19685
    break;
 
19686
 
 
19687
  case 1167:
 
19688
#line 7516 "gram.y"
 
19689
    { yyval.list = NIL; }
 
19690
    break;
 
19691
 
 
19692
  case 1168:
 
19693
#line 7520 "gram.y"
 
19694
    {
 
19695
                                        yyval.list = lappend(yyvsp[-2].list, yyvsp[0].typnam);
 
19696
                                }
 
19697
    break;
 
19698
 
 
19699
  case 1169:
 
19700
#line 7524 "gram.y"
 
19701
    {
 
19702
                                        yyval.list = list_make1(yyvsp[0].typnam);
 
19703
                                }
 
19704
    break;
 
19705
 
 
19706
  case 1170:
 
19707
#line 7530 "gram.y"
 
19708
    {   yyval.list = list_make1(yyvsp[0].node);         }
 
19709
    break;
 
19710
 
 
19711
  case 1171:
 
19712
#line 7532 "gram.y"
 
19713
    {   yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node);    }
 
19714
    break;
 
19715
 
 
19716
  case 1172:
 
19717
#line 7536 "gram.y"
 
19718
    {
 
19719
                                        ArrayExpr *n = makeNode(ArrayExpr);
 
19720
                                        n->elements = yyvsp[-1].list;
 
19721
                                        yyval.node = (Node *)n;
 
19722
                                }
 
19723
    break;
 
19724
 
 
19725
  case 1173:
 
19726
#line 7542 "gram.y"
 
19727
    {
 
19728
                                        ArrayExpr *n = makeNode(ArrayExpr);
 
19729
                                        n->elements = yyvsp[-1].list;
 
19730
                                        yyval.node = (Node *)n;
 
19731
                                }
 
19732
    break;
 
19733
 
 
19734
  case 1174:
 
19735
#line 7554 "gram.y"
 
19736
    { yyval.str = yyvsp[0].str; }
 
19737
    break;
 
19738
 
 
19739
  case 1175:
 
19740
#line 7555 "gram.y"
 
19741
    { yyval.str = "year"; }
 
19742
    break;
 
19743
 
 
19744
  case 1176:
 
19745
#line 7556 "gram.y"
 
19746
    { yyval.str = "month"; }
 
19747
    break;
 
19748
 
 
19749
  case 1177:
 
19750
#line 7557 "gram.y"
 
19751
    { yyval.str = "day"; }
 
19752
    break;
 
19753
 
 
19754
  case 1178:
 
19755
#line 7558 "gram.y"
 
19756
    { yyval.str = "hour"; }
 
19757
    break;
 
19758
 
 
19759
  case 1179:
 
19760
#line 7559 "gram.y"
 
19761
    { yyval.str = "minute"; }
 
19762
    break;
 
19763
 
 
19764
  case 1180:
 
19765
#line 7560 "gram.y"
 
19766
    { yyval.str = "second"; }
 
19767
    break;
 
19768
 
 
19769
  case 1181:
 
19770
#line 7561 "gram.y"
 
19771
    { yyval.str = yyvsp[0].str; }
 
19772
    break;
 
19773
 
 
19774
  case 1182:
 
19775
#line 7571 "gram.y"
 
19776
    {
 
19777
                                        yyval.list = list_make4(yyvsp[-3].node, yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node);
 
19778
                                }
 
19779
    break;
 
19780
 
 
19781
  case 1183:
 
19782
#line 7575 "gram.y"
 
19783
    {
 
19784
                                        yyval.list = list_make3(yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node);
 
19785
                                }
 
19786
    break;
 
19787
 
 
19788
  case 1184:
 
19789
#line 7582 "gram.y"
 
19790
    { yyval.node = yyvsp[0].node; }
 
19791
    break;
 
19792
 
 
19793
  case 1185:
 
19794
#line 7588 "gram.y"
 
19795
    { yyval.list = list_make2(yyvsp[0].node, yyvsp[-2].node); }
 
19796
    break;
 
19797
 
 
19798
  case 1186:
 
19799
#line 7589 "gram.y"
 
19800
    { yyval.list = NIL; }
 
19801
    break;
 
19802
 
 
19803
  case 1187:
 
19804
#line 7606 "gram.y"
 
19805
    {
 
19806
                                        yyval.list = list_make3(yyvsp[-2].node, yyvsp[-1].node, yyvsp[0].node);
 
19807
                                }
 
19808
    break;
 
19809
 
 
19810
  case 1188:
 
19811
#line 7610 "gram.y"
 
19812
    {
 
19813
                                        /* not legal per SQL99, but might as well allow it */
 
19814
                                        yyval.list = list_make3(yyvsp[-2].node, yyvsp[0].node, yyvsp[-1].node);
 
19815
                                }
 
19816
    break;
 
19817
 
 
19818
  case 1189:
 
19819
#line 7615 "gram.y"
 
19820
    {
 
19821
                                        yyval.list = list_make2(yyvsp[-1].node, yyvsp[0].node);
 
19822
                                }
 
19823
    break;
 
19824
 
 
19825
  case 1190:
 
19826
#line 7619 "gram.y"
 
19827
    {
 
19828
                                        /*
 
19829
                                         * Since there are no cases where this syntax allows
 
19830
                                         * a textual FOR value, we forcibly cast the argument
 
19831
                                         * to int4.  This is a kluge to avoid surprising results
 
19832
                                         * when the argument is, say, int8.  It'd be better if
 
19833
                                         * there were not an implicit cast from int8 to text ...
 
19834
                                         */
 
19835
                                        A_Const *n = makeNode(A_Const);
 
19836
                                        n->val.type = T_Integer;
 
19837
                                        n->val.val.ival = 1;
 
19838
                                        yyval.list = list_make3(yyvsp[-1].node, (Node *) n,
 
19839
                                                                        makeTypeCast(yyvsp[0].node, SystemTypeName("int4")));
 
19840
                                }
 
19841
    break;
 
19842
 
 
19843
  case 1191:
 
19844
#line 7634 "gram.y"
 
19845
    {
 
19846
                                        yyval.list = yyvsp[0].list;
 
19847
                                }
 
19848
    break;
 
19849
 
 
19850
  case 1192:
 
19851
#line 7638 "gram.y"
 
19852
    { yyval.list = NIL; }
 
19853
    break;
 
19854
 
 
19855
  case 1193:
 
19856
#line 7642 "gram.y"
 
19857
    { yyval.node = yyvsp[0].node; }
 
19858
    break;
 
19859
 
 
19860
  case 1194:
 
19861
#line 7645 "gram.y"
 
19862
    { yyval.node = yyvsp[0].node; }
 
19863
    break;
 
19864
 
 
19865
  case 1195:
 
19866
#line 7648 "gram.y"
 
19867
    { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); }
 
19868
    break;
 
19869
 
 
19870
  case 1196:
 
19871
#line 7649 "gram.y"
 
19872
    { yyval.list = yyvsp[0].list; }
 
19873
    break;
 
19874
 
 
19875
  case 1197:
 
19876
#line 7650 "gram.y"
 
19877
    { yyval.list = yyvsp[0].list; }
 
19878
    break;
 
19879
 
 
19880
  case 1198:
 
19881
#line 7654 "gram.y"
 
19882
    {
 
19883
                                        SubLink *n = makeNode(SubLink);
 
19884
                                        n->subselect = yyvsp[0].node;
 
19885
                                        /* other fields will be filled later */
 
19886
                                        yyval.node = (Node *)n;
 
19887
                                }
 
19888
    break;
 
19889
 
 
19890
  case 1199:
 
19891
#line 7660 "gram.y"
 
19892
    { yyval.node = (Node *)yyvsp[-1].list; }
 
19893
    break;
 
19894
 
 
19895
  case 1200:
 
19896
#line 7671 "gram.y"
 
19897
    {
 
19898
                                        CaseExpr *c = makeNode(CaseExpr);
 
19899
                                        c->casetype = 0; /* not analyzed yet */
 
19900
                                        c->arg = (Expr *) yyvsp[-3].node;
 
19901
                                        c->args = yyvsp[-2].list;
 
19902
                                        c->defresult = (Expr *) yyvsp[-1].node;
 
19903
                                        yyval.node = (Node *)c;
 
19904
                                }
 
19905
    break;
 
19906
 
 
19907
  case 1201:
 
19908
#line 7683 "gram.y"
 
19909
    { yyval.list = list_make1(yyvsp[0].node); }
 
19910
    break;
 
19911
 
 
19912
  case 1202:
 
19913
#line 7684 "gram.y"
 
19914
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
 
19915
    break;
 
19916
 
 
19917
  case 1203:
 
19918
#line 7689 "gram.y"
 
19919
    {
 
19920
                                        CaseWhen *w = makeNode(CaseWhen);
 
19921
                                        w->expr = (Expr *) yyvsp[-2].node;
 
19922
                                        w->result = (Expr *) yyvsp[0].node;
 
19923
                                        yyval.node = (Node *)w;
 
19924
                                }
 
19925
    break;
 
19926
 
 
19927
  case 1204:
 
19928
#line 7698 "gram.y"
 
19929
    { yyval.node = yyvsp[0].node; }
 
19930
    break;
 
19931
 
 
19932
  case 1205:
 
19933
#line 7699 "gram.y"
 
19934
    { yyval.node = NULL; }
 
19935
    break;
 
19936
 
 
19937
  case 1206:
 
19938
#line 7702 "gram.y"
 
19939
    { yyval.node = yyvsp[0].node; }
 
19940
    break;
 
19941
 
 
19942
  case 1207:
 
19943
#line 7703 "gram.y"
 
19944
    { yyval.node = NULL; }
 
19945
    break;
 
19946
 
 
19947
  case 1208:
 
19948
#line 7712 "gram.y"
 
19949
    {
 
19950
                                        yyval.node = makeColumnRef(yyvsp[0].str, NIL);
 
19951
                                }
 
19952
    break;
 
19953
 
 
19954
  case 1209:
 
19955
#line 7716 "gram.y"
 
19956
    {
 
19957
                                        yyval.node = makeColumnRef(yyvsp[-1].str, yyvsp[0].list);
 
19958
                                }
 
19959
    break;
 
19960
 
 
19961
  case 1210:
 
19962
#line 7723 "gram.y"
 
19963
    {
 
19964
                                        yyval.node = (Node *) makeString(yyvsp[0].str);
 
19965
                                }
 
19966
    break;
 
19967
 
 
19968
  case 1211:
 
19969
#line 7727 "gram.y"
 
19970
    {
 
19971
                                        yyval.node = (Node *) makeString("*");
 
19972
                                }
 
19973
    break;
 
19974
 
 
19975
  case 1212:
 
19976
#line 7731 "gram.y"
 
19977
    {
 
19978
                                        A_Indices *ai = makeNode(A_Indices);
 
19979
                                        ai->lidx = NULL;
 
19980
                                        ai->uidx = yyvsp[-1].node;
 
19981
                                        yyval.node = (Node *) ai;
 
19982
                                }
 
19983
    break;
 
19984
 
 
19985
  case 1213:
 
19986
#line 7738 "gram.y"
 
19987
    {
 
19988
                                        A_Indices *ai = makeNode(A_Indices);
 
19989
                                        ai->lidx = yyvsp[-3].node;
 
19990
                                        ai->uidx = yyvsp[-1].node;
 
19991
                                        yyval.node = (Node *) ai;
 
19992
                                }
 
19993
    break;
 
19994
 
 
19995
  case 1214:
 
19996
#line 7747 "gram.y"
 
19997
    { yyval.list = list_make1(yyvsp[0].node); }
 
19998
    break;
 
19999
 
 
20000
  case 1215:
 
20001
#line 7748 "gram.y"
 
20002
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
 
20003
    break;
 
20004
 
 
20005
  case 1216:
 
20006
#line 7752 "gram.y"
 
20007
    { yyval.list = NIL; }
 
20008
    break;
 
20009
 
 
20010
  case 1217:
 
20011
#line 7753 "gram.y"
 
20012
    { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); }
 
20013
    break;
 
20014
 
 
20015
  case 1220:
 
20016
#line 7768 "gram.y"
 
20017
    { yyval.list = list_make1(yyvsp[0].target); }
 
20018
    break;
 
20019
 
 
20020
  case 1221:
 
20021
#line 7769 "gram.y"
 
20022
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); }
 
20023
    break;
 
20024
 
 
20025
  case 1222:
 
20026
#line 7774 "gram.y"
 
20027
    {
 
20028
                                        yyval.target = makeNode(ResTarget);
 
20029
                                        yyval.target->name = yyvsp[0].str;
 
20030
                                        yyval.target->indirection = NIL;
 
20031
                                        yyval.target->val = (Node *)yyvsp[-2].node;
 
20032
                                }
 
20033
    break;
 
20034
 
 
20035
  case 1223:
 
20036
#line 7781 "gram.y"
 
20037
    {
 
20038
                                        yyval.target = makeNode(ResTarget);
 
20039
                                        yyval.target->name = NULL;
 
20040
                                        yyval.target->indirection = NIL;
 
20041
                                        yyval.target->val = (Node *)yyvsp[0].node;
 
20042
                                }
 
20043
    break;
 
20044
 
 
20045
  case 1224:
 
20046
#line 7788 "gram.y"
 
20047
    {
 
20048
                                        ColumnRef *n = makeNode(ColumnRef);
 
20049
                                        n->fields = list_make1(makeString("*"));
 
20050
 
 
20051
                                        yyval.target = makeNode(ResTarget);
 
20052
                                        yyval.target->name = NULL;
 
20053
                                        yyval.target->indirection = NIL;
 
20054
                                        yyval.target->val = (Node *)n;
 
20055
                                }
 
20056
    break;
 
20057
 
 
20058
  case 1225:
 
20059
#line 7800 "gram.y"
 
20060
    { yyval.list = list_make1(yyvsp[0].target); }
 
20061
    break;
 
20062
 
 
20063
  case 1226:
 
20064
#line 7801 "gram.y"
 
20065
    { yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target); }
 
20066
    break;
 
20067
 
 
20068
  case 1227:
 
20069
#line 7806 "gram.y"
 
20070
    {
 
20071
                                        yyval.target = makeNode(ResTarget);
 
20072
                                        yyval.target->name = yyvsp[-3].str;
 
20073
                                        yyval.target->indirection = yyvsp[-2].list;
 
20074
                                        yyval.target->val = (Node *) yyvsp[0].node;
 
20075
                                }
 
20076
    break;
 
20077
 
 
20078
  case 1228:
 
20079
#line 7813 "gram.y"
 
20080
    {
 
20081
                                        yyval.target = makeNode(ResTarget);
 
20082
                                        yyval.target->name = yyvsp[-3].str;
 
20083
                                        yyval.target->indirection = yyvsp[-2].list;
 
20084
                                        yyval.target->val = (Node *) makeNode(SetToDefault);
 
20085
                                }
 
20086
    break;
 
20087
 
 
20088
  case 1229:
 
20089
#line 7823 "gram.y"
 
20090
    { yyval.list = list_make1(yyvsp[0].target); }
 
20091
    break;
 
20092
 
 
20093
  case 1230:
 
20094
#line 7824 "gram.y"
 
20095
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); }
 
20096
    break;
 
20097
 
 
20098
  case 1231:
 
20099
#line 7829 "gram.y"
 
20100
    {
 
20101
                                        yyval.target = makeNode(ResTarget);
 
20102
                                        yyval.target->name = NULL;
 
20103
                                        yyval.target->indirection = NIL;
 
20104
                                        yyval.target->val = (Node *)yyvsp[0].node;
 
20105
                                }
 
20106
    break;
 
20107
 
 
20108
  case 1232:
 
20109
#line 7836 "gram.y"
 
20110
    {
 
20111
                                        yyval.target = makeNode(ResTarget);
 
20112
                                        yyval.target->name = NULL;
 
20113
                                        yyval.target->indirection = NIL;
 
20114
                                        yyval.target->val = (Node *) makeNode(SetToDefault);
 
20115
                                }
 
20116
    break;
 
20117
 
 
20118
  case 1233:
 
20119
#line 7852 "gram.y"
 
20120
    { yyval.str = yyvsp[0].str; }
 
20121
    break;
 
20122
 
 
20123
  case 1234:
 
20124
#line 7853 "gram.y"
 
20125
    { yyval.str = yyvsp[0].str; }
 
20126
    break;
 
20127
 
 
20128
  case 1235:
 
20129
#line 7857 "gram.y"
 
20130
    { yyval.list = list_make1(yyvsp[0].range); }
 
20131
    break;
 
20132
 
 
20133
  case 1236:
 
20134
#line 7858 "gram.y"
 
20135
    { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); }
 
20136
    break;
 
20137
 
 
20138
  case 1237:
 
20139
#line 7870 "gram.y"
 
20140
    {
 
20141
                                        yyval.range = makeNode(RangeVar);
 
20142
                                        yyval.range->catalogname = NULL;
 
20143
                                        yyval.range->schemaname = NULL;
 
20144
                                        yyval.range->relname = yyvsp[0].str;
 
20145
                                }
 
20146
    break;
 
20147
 
 
20148
  case 1238:
 
20149
#line 7877 "gram.y"
 
20150
    {
 
20151
                                        check_qualified_name(yyvsp[0].list);
 
20152
                                        yyval.range = makeNode(RangeVar);
 
20153
                                        switch (list_length(yyvsp[0].list))
 
20154
                                        {
 
20155
                                                case 1:
 
20156
                                                        yyval.range->catalogname = NULL;
 
20157
                                                        yyval.range->schemaname = yyvsp[-1].str;
 
20158
                                                        yyval.range->relname = strVal(linitial(yyvsp[0].list));
 
20159
                                                        break;
 
20160
                                                case 2:
 
20161
                                                        yyval.range->catalogname = yyvsp[-1].str;
 
20162
                                                        yyval.range->schemaname = strVal(linitial(yyvsp[0].list));
 
20163
                                                        yyval.range->relname = strVal(lsecond(yyvsp[0].list));
 
20164
                                                        break;
 
20165
                                                default:
 
20166
                                                        ereport(ERROR,
 
20167
                                                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
20168
                                                                         errmsg("improper qualified name (too many dotted names): %s",
 
20169
                                                                                        NameListToString(lcons(makeString(yyvsp[-1].str), yyvsp[0].list)))));
 
20170
                                                        break;
 
20171
                                        }
 
20172
                                }
 
20173
    break;
 
20174
 
 
20175
  case 1239:
 
20176
#line 7903 "gram.y"
 
20177
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
20178
    break;
 
20179
 
 
20180
  case 1240:
 
20181
#line 7905 "gram.y"
 
20182
    { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); }
 
20183
    break;
 
20184
 
 
20185
  case 1241:
 
20186
#line 7909 "gram.y"
 
20187
    { yyval.str = yyvsp[0].str; }
 
20188
    break;
 
20189
 
 
20190
  case 1242:
 
20191
#line 7912 "gram.y"
 
20192
    { yyval.str = yyvsp[0].str; }
 
20193
    break;
 
20194
 
 
20195
  case 1243:
 
20196
#line 7915 "gram.y"
 
20197
    { yyval.str = yyvsp[0].str; }
 
20198
    break;
 
20199
 
 
20200
  case 1244:
 
20201
#line 7917 "gram.y"
 
20202
    { yyval.str = yyvsp[0].str; }
 
20203
    break;
 
20204
 
 
20205
  case 1245:
 
20206
#line 7919 "gram.y"
 
20207
    { yyval.str = yyvsp[0].str; }
 
20208
    break;
 
20209
 
 
20210
  case 1246:
 
20211
#line 7921 "gram.y"
 
20212
    { yyval.str = yyvsp[0].str; }
 
20213
    break;
 
20214
 
 
20215
  case 1247:
 
20216
#line 7932 "gram.y"
 
20217
    { yyval.list = list_make1(makeString(yyvsp[0].str)); }
 
20218
    break;
 
20219
 
 
20220
  case 1248:
 
20221
#line 7934 "gram.y"
 
20222
    { yyval.list = check_func_name(lcons(makeString(yyvsp[-1].str), yyvsp[0].list)); }
 
20223
    break;
 
20224
 
 
20225
  case 1249:
 
20226
#line 7942 "gram.y"
 
20227
    {
 
20228
                                        A_Const *n = makeNode(A_Const);
 
20229
                                        n->val.type = T_Integer;
 
20230
                                        n->val.val.ival = yyvsp[0].ival;
 
20231
                                        yyval.node = (Node *)n;
 
20232
                                }
 
20233
    break;
 
20234
 
 
20235
  case 1250:
 
20236
#line 7949 "gram.y"
 
20237
    {
 
20238
                                        A_Const *n = makeNode(A_Const);
 
20239
                                        n->val.type = T_Float;
 
20240
                                        n->val.val.str = yyvsp[0].str;
 
20241
                                        yyval.node = (Node *)n;
 
20242
                                }
 
20243
    break;
 
20244
 
 
20245
  case 1251:
 
20246
#line 7956 "gram.y"
 
20247
    {
 
20248
                                        A_Const *n = makeNode(A_Const);
 
20249
                                        n->val.type = T_String;
 
20250
                                        n->val.val.str = yyvsp[0].str;
 
20251
                                        yyval.node = (Node *)n;
 
20252
                                }
 
20253
    break;
 
20254
 
 
20255
  case 1252:
 
20256
#line 7963 "gram.y"
 
20257
    {
 
20258
                                        A_Const *n = makeNode(A_Const);
 
20259
                                        n->val.type = T_BitString;
 
20260
                                        n->val.val.str = yyvsp[0].str;
 
20261
                                        yyval.node = (Node *)n;
 
20262
                                }
 
20263
    break;
 
20264
 
 
20265
  case 1253:
 
20266
#line 7970 "gram.y"
 
20267
    {
 
20268
                                        /* This is a bit constant per SQL99:
 
20269
                                         * Without Feature F511, "BIT data type",
 
20270
                                         * a <general literal> shall not be a
 
20271
                                         * <bit string literal> or a <hex string literal>.
 
20272
                                         */
 
20273
                                        A_Const *n = makeNode(A_Const);
 
20274
                                        n->val.type = T_BitString;
 
20275
                                        n->val.val.str = yyvsp[0].str;
 
20276
                                        yyval.node = (Node *)n;
 
20277
                                }
 
20278
    break;
 
20279
 
 
20280
  case 1254:
 
20281
#line 7982 "gram.y"
 
20282
    {
 
20283
                                        A_Const *n = makeNode(A_Const);
 
20284
                                        n->typename = yyvsp[-1].typnam;
 
20285
                                        n->val.type = T_String;
 
20286
                                        n->val.val.str = yyvsp[0].str;
 
20287
                                        yyval.node = (Node *)n;
 
20288
                                }
 
20289
    break;
 
20290
 
 
20291
  case 1255:
 
20292
#line 7990 "gram.y"
 
20293
    {
 
20294
                                        A_Const *n = makeNode(A_Const);
 
20295
                                        n->typename = yyvsp[-2].typnam;
 
20296
                                        n->val.type = T_String;
 
20297
                                        n->val.val.str = yyvsp[-1].str;
 
20298
                                        /* precision is not specified, but fields may be... */
 
20299
                                        if (yyvsp[0].ival != INTERVAL_FULL_RANGE)
 
20300
                                                n->typename->typmod = INTERVAL_TYPMOD(INTERVAL_FULL_PRECISION, yyvsp[0].ival);
 
20301
                                        yyval.node = (Node *)n;
 
20302
                                }
 
20303
    break;
 
20304
 
 
20305
  case 1256:
 
20306
#line 8001 "gram.y"
 
20307
    {
 
20308
                                        A_Const *n = makeNode(A_Const);
 
20309
                                        n->typename = yyvsp[-5].typnam;
 
20310
                                        n->val.type = T_String;
 
20311
                                        n->val.val.str = yyvsp[-1].str;
 
20312
                                        /* precision specified, and fields may be... */
 
20313
                                        if (yyvsp[-3].ival < 0)
 
20314
                                                ereport(ERROR,
 
20315
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
20316
                                                                 errmsg("INTERVAL(%d) precision must not be negative",
 
20317
                                                                                yyvsp[-3].ival)));
 
20318
                                        if (yyvsp[-3].ival > MAX_INTERVAL_PRECISION)
 
20319
                                        {
 
20320
                                                ereport(WARNING,
 
20321
                                                                (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
 
20322
                                                                 errmsg("INTERVAL(%d) precision reduced to maximum allowed, %d",
 
20323
                                                                                yyvsp[-3].ival, MAX_INTERVAL_PRECISION)));
 
20324
                                                yyvsp[-3].ival = MAX_INTERVAL_PRECISION;
 
20325
                                        }
 
20326
                                        n->typename->typmod = INTERVAL_TYPMOD(yyvsp[-3].ival, yyvsp[0].ival);
 
20327
                                        yyval.node = (Node *)n;
 
20328
                                }
 
20329
    break;
 
20330
 
 
20331
  case 1257:
 
20332
#line 8024 "gram.y"
 
20333
    {
 
20334
                                        yyval.node = (Node *)makeBoolAConst(TRUE);
 
20335
                                }
 
20336
    break;
 
20337
 
 
20338
  case 1258:
 
20339
#line 8028 "gram.y"
 
20340
    {
 
20341
                                        yyval.node = (Node *)makeBoolAConst(FALSE);
 
20342
                                }
 
20343
    break;
 
20344
 
 
20345
  case 1259:
 
20346
#line 8032 "gram.y"
 
20347
    {
 
20348
                                        A_Const *n = makeNode(A_Const);
 
20349
                                        n->val.type = T_Null;
 
20350
                                        yyval.node = (Node *)n;
 
20351
                                }
 
20352
    break;
 
20353
 
 
20354
  case 1260:
 
20355
#line 8039 "gram.y"
 
20356
    { yyval.ival = yyvsp[0].ival; }
 
20357
    break;
 
20358
 
 
20359
  case 1261:
 
20360
#line 8040 "gram.y"
 
20361
    { yyval.str = yyvsp[0].str; }
 
20362
    break;
 
20363
 
 
20364
  case 1262:
 
20365
#line 8041 "gram.y"
 
20366
    { yyval.str = yyvsp[0].str; }
 
20367
    break;
 
20368
 
 
20369
  case 1263:
 
20370
#line 8043 "gram.y"
 
20371
    { yyval.ival = yyvsp[0].ival; }
 
20372
    break;
 
20373
 
 
20374
  case 1264:
 
20375
#line 8044 "gram.y"
 
20376
    { yyval.ival = - yyvsp[0].ival; }
 
20377
    break;
 
20378
 
 
20379
  case 1265:
 
20380
#line 8060 "gram.y"
 
20381
    { yyval.str = yyvsp[0].str; }
 
20382
    break;
 
20383
 
 
20384
  case 1266:
 
20385
#line 8061 "gram.y"
 
20386
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20387
    break;
 
20388
 
 
20389
  case 1267:
 
20390
#line 8062 "gram.y"
 
20391
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20392
    break;
 
20393
 
 
20394
  case 1268:
 
20395
#line 8067 "gram.y"
 
20396
    { yyval.str = yyvsp[0].str; }
 
20397
    break;
 
20398
 
 
20399
  case 1269:
 
20400
#line 8068 "gram.y"
 
20401
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20402
    break;
 
20403
 
 
20404
  case 1270:
 
20405
#line 8074 "gram.y"
 
20406
    { yyval.str = yyvsp[0].str; }
 
20407
    break;
 
20408
 
 
20409
  case 1271:
 
20410
#line 8075 "gram.y"
 
20411
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20412
    break;
 
20413
 
 
20414
  case 1272:
 
20415
#line 8076 "gram.y"
 
20416
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20417
    break;
 
20418
 
 
20419
  case 1273:
 
20420
#line 8082 "gram.y"
 
20421
    { yyval.str = yyvsp[0].str; }
 
20422
    break;
 
20423
 
 
20424
  case 1274:
 
20425
#line 8083 "gram.y"
 
20426
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20427
    break;
 
20428
 
 
20429
  case 1275:
 
20430
#line 8084 "gram.y"
 
20431
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20432
    break;
 
20433
 
 
20434
  case 1276:
 
20435
#line 8085 "gram.y"
 
20436
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20437
    break;
 
20438
 
 
20439
  case 1277:
 
20440
#line 8086 "gram.y"
 
20441
    { yyval.str = pstrdup(yyvsp[0].keyword); }
 
20442
    break;
 
20443
 
 
20444
  case 1612:
 
20445
#line 8476 "gram.y"
 
20446
    {
 
20447
                                        if (QueryIsRule)
 
20448
                                                yyval.str = "*OLD*";
 
20449
                                        else
 
20450
                                                ereport(ERROR,
 
20451
                                                                (errcode(ERRCODE_SYNTAX_ERROR),
 
20452
                                                                 errmsg("OLD used in query that is not in a rule")));
 
20453
                                }
 
20454
    break;
 
20455
 
 
20456
  case 1613:
 
20457
#line 8485 "gram.y"
 
20458
    {
 
20459
                                        if (QueryIsRule)
 
20460
                                                yyval.str = "*NEW*";
 
20461
                                        else
 
20462
                                                ereport(ERROR,
 
20463
                                                                (errcode(ERRCODE_SYNTAX_ERROR),
 
20464
                                                                 errmsg("NEW used in query that is not in a rule")));
 
20465
                                }
 
20466
    break;
 
20467
 
 
20468
 
 
20469
    }
 
20470
 
 
20471
/* Line 1000 of yacc.c.  */
 
20472
#line 20473 "gram.c"
 
20473
 
 
20474
  yyvsp -= yylen;
 
20475
  yyssp -= yylen;
 
20476
 
 
20477
 
 
20478
  YY_STACK_PRINT (yyss, yyssp);
 
20479
 
 
20480
  *++yyvsp = yyval;
 
20481
 
 
20482
 
 
20483
  /* Now `shift' the result of the reduction.  Determine what state
 
20484
     that goes to, based on the state we popped back to and the rule
 
20485
     number reduced by.  */
 
20486
 
 
20487
  yyn = yyr1[yyn];
 
20488
 
 
20489
  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
 
20490
  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
 
20491
    yystate = yytable[yystate];
 
20492
  else
 
20493
    yystate = yydefgoto[yyn - YYNTOKENS];
 
20494
 
 
20495
  goto yynewstate;
 
20496
 
 
20497
 
 
20498
/*------------------------------------.
 
20499
| yyerrlab -- here on detecting error |
 
20500
`------------------------------------*/
 
20501
yyerrlab:
 
20502
  /* If not already recovering from an error, report this error.  */
 
20503
  if (!yyerrstatus)
 
20504
    {
 
20505
      ++yynerrs;
 
20506
#if YYERROR_VERBOSE
 
20507
      yyn = yypact[yystate];
 
20508
 
 
20509
      if (YYPACT_NINF < yyn && yyn < YYLAST)
 
20510
        {
 
20511
          YYSIZE_T yysize = 0;
 
20512
          int yytype = YYTRANSLATE (yychar);
 
20513
          const char* yyprefix;
 
20514
          char *yymsg;
 
20515
          int yyx;
 
20516
 
 
20517
          /* Start YYX at -YYN if negative to avoid negative indexes in
 
20518
             YYCHECK.  */
 
20519
          int yyxbegin = yyn < 0 ? -yyn : 0;
 
20520
 
 
20521
          /* Stay within bounds of both yycheck and yytname.  */
 
20522
          int yychecklim = YYLAST - yyn;
 
20523
          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
 
20524
          int yycount = 0;
 
20525
 
 
20526
          yyprefix = ", expecting ";
 
20527
          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 
20528
            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 
20529
              {
 
20530
                yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
 
20531
                yycount += 1;
 
20532
                if (yycount == 5)
 
20533
                  {
 
20534
                    yysize = 0;
 
20535
                    break;
 
20536
                  }
 
20537
              }
 
20538
          yysize += (sizeof ("syntax error, unexpected ")
 
20539
                     + yystrlen (yytname[yytype]));
 
20540
          yymsg = (char *) YYSTACK_ALLOC (yysize);
 
20541
          if (yymsg != 0)
 
20542
            {
 
20543
              char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
 
20544
              yyp = yystpcpy (yyp, yytname[yytype]);
 
20545
 
 
20546
              if (yycount < 5)
 
20547
                {
 
20548
                  yyprefix = ", expecting ";
 
20549
                  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
 
20550
                    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
 
20551
                      {
 
20552
                        yyp = yystpcpy (yyp, yyprefix);
 
20553
                        yyp = yystpcpy (yyp, yytname[yyx]);
 
20554
                        yyprefix = " or ";
 
20555
                      }
 
20556
                }
 
20557
              yyerror (yymsg);
 
20558
              YYSTACK_FREE (yymsg);
 
20559
            }
 
20560
          else
 
20561
            yyerror ("syntax error; also virtual memory exhausted");
 
20562
        }
 
20563
      else
 
20564
#endif /* YYERROR_VERBOSE */
 
20565
        yyerror ("syntax error");
 
20566
    }
 
20567
 
 
20568
 
 
20569
 
 
20570
  if (yyerrstatus == 3)
 
20571
    {
 
20572
      /* If just tried and failed to reuse lookahead token after an
 
20573
         error, discard it.  */
 
20574
 
 
20575
      if (yychar <= YYEOF)
 
20576
        {
 
20577
          /* If at end of input, pop the error token,
 
20578
             then the rest of the stack, then return failure.  */
 
20579
          if (yychar == YYEOF)
 
20580
             for (;;)
 
20581
               {
 
20582
                 YYPOPSTACK;
 
20583
                 if (yyssp == yyss)
 
20584
                   YYABORT;
 
20585
                 YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
 
20586
                 yydestruct (yystos[*yyssp], yyvsp);
 
20587
               }
 
20588
        }
 
20589
      else
 
20590
        {
 
20591
          YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
 
20592
          yydestruct (yytoken, &yylval);
 
20593
          yychar = YYEMPTY;
 
20594
 
 
20595
        }
 
20596
    }
 
20597
 
 
20598
  /* Else will try to reuse lookahead token after shifting the error
 
20599
     token.  */
 
20600
  goto yyerrlab1;
 
20601
 
 
20602
 
 
20603
/*---------------------------------------------------.
 
20604
| yyerrorlab -- error raised explicitly by YYERROR.  |
 
20605
`---------------------------------------------------*/
 
20606
yyerrorlab:
 
20607
 
 
20608
#ifdef __GNUC__
 
20609
  /* Pacify GCC when the user code never invokes YYERROR and the label
 
20610
     yyerrorlab therefore never appears in user code.  */
 
20611
  if (0)
 
20612
     goto yyerrorlab;
 
20613
#endif
 
20614
 
 
20615
  yyvsp -= yylen;
 
20616
  yyssp -= yylen;
 
20617
  yystate = *yyssp;
 
20618
  goto yyerrlab1;
 
20619
 
 
20620
 
 
20621
/*-------------------------------------------------------------.
 
20622
| yyerrlab1 -- common code for both syntax error and YYERROR.  |
 
20623
`-------------------------------------------------------------*/
 
20624
yyerrlab1:
 
20625
  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 
20626
 
 
20627
  for (;;)
 
20628
    {
 
20629
      yyn = yypact[yystate];
 
20630
      if (yyn != YYPACT_NINF)
 
20631
        {
 
20632
          yyn += YYTERROR;
 
20633
          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
 
20634
            {
 
20635
              yyn = yytable[yyn];
 
20636
              if (0 < yyn)
 
20637
                break;
 
20638
            }
 
20639
        }
 
20640
 
 
20641
      /* Pop the current state because it cannot handle the error token.  */
 
20642
      if (yyssp == yyss)
 
20643
        YYABORT;
 
20644
 
 
20645
      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
 
20646
      yydestruct (yystos[yystate], yyvsp);
 
20647
      YYPOPSTACK;
 
20648
      yystate = *yyssp;
 
20649
      YY_STACK_PRINT (yyss, yyssp);
 
20650
    }
 
20651
 
 
20652
  if (yyn == YYFINAL)
 
20653
    YYACCEPT;
 
20654
 
 
20655
  YYDPRINTF ((stderr, "Shifting error token, "));
 
20656
 
 
20657
  *++yyvsp = yylval;
 
20658
 
 
20659
 
 
20660
  yystate = yyn;
 
20661
  goto yynewstate;
 
20662
 
 
20663
 
 
20664
/*-------------------------------------.
 
20665
| yyacceptlab -- YYACCEPT comes here.  |
 
20666
`-------------------------------------*/
 
20667
yyacceptlab:
 
20668
  yyresult = 0;
 
20669
  goto yyreturn;
 
20670
 
 
20671
/*-----------------------------------.
 
20672
| yyabortlab -- YYABORT comes here.  |
 
20673
`-----------------------------------*/
 
20674
yyabortlab:
 
20675
  yyresult = 1;
 
20676
  goto yyreturn;
 
20677
 
 
20678
#ifndef yyoverflow
 
20679
/*----------------------------------------------.
 
20680
| yyoverflowlab -- parser overflow comes here.  |
 
20681
`----------------------------------------------*/
 
20682
yyoverflowlab:
 
20683
  yyerror ("parser stack overflow");
 
20684
  yyresult = 2;
 
20685
  /* Fall through.  */
 
20686
#endif
 
20687
 
 
20688
yyreturn:
 
20689
#ifndef yyoverflow
 
20690
  if (yyss != yyssa)
 
20691
    YYSTACK_FREE (yyss);
 
20692
#endif
 
20693
  return yyresult;
 
20694
}
 
20695
 
 
20696
 
 
20697
#line 8495 "gram.y"
 
20698
 
 
20699
 
 
20700
static Node *
 
20701
makeColumnRef(char *relname, List *indirection)
 
20702
{
 
20703
        /*
 
20704
         * Generate a ColumnRef node, with an A_Indirection node added if there
 
20705
         * is any subscripting in the specified indirection list.  However,
 
20706
         * any field selection at the start of the indirection list must be
 
20707
         * transposed into the "fields" part of the ColumnRef node.
 
20708
         */
 
20709
        ColumnRef  *c = makeNode(ColumnRef);
 
20710
        int             nfields = 0;
 
20711
        ListCell *l;
 
20712
 
 
20713
        foreach(l, indirection)
 
20714
        {
 
20715
                if (IsA(lfirst(l), A_Indices))
 
20716
                {
 
20717
                        A_Indirection *i = makeNode(A_Indirection);
 
20718
 
 
20719
                        if (nfields == 0)
 
20720
                        {
 
20721
                                /* easy case - all indirection goes to A_Indirection */
 
20722
                                c->fields = list_make1(makeString(relname));
 
20723
                                i->indirection = indirection;
 
20724
                        }
 
20725
                        else
 
20726
                        {
 
20727
                                /* got to split the list in two */
 
20728
                                i->indirection = list_copy_tail(indirection, nfields);
 
20729
                                indirection = list_truncate(indirection, nfields);
 
20730
                                c->fields = lcons(makeString(relname), indirection);
 
20731
                        }
 
20732
                        i->arg = (Node *) c;
 
20733
                        return (Node *) i;
 
20734
                }
 
20735
                nfields++;
 
20736
        }
 
20737
        /* No subscripting, so all indirection gets added to field list */
 
20738
        c->fields = lcons(makeString(relname), indirection);
 
20739
        return (Node *) c;
 
20740
}
 
20741
 
 
20742
static Node *
 
20743
makeTypeCast(Node *arg, TypeName *typename)
 
20744
{
 
20745
        /*
 
20746
         * Simply generate a TypeCast node.
 
20747
         *
 
20748
         * Earlier we would determine whether an A_Const would
 
20749
         * be acceptable, however Domains require coerce_type()
 
20750
         * to process them -- applying constraints as required.
 
20751
         */
 
20752
        TypeCast *n = makeNode(TypeCast);
 
20753
        n->arg = arg;
 
20754
        n->typename = typename;
 
20755
        return (Node *) n;
 
20756
}
 
20757
 
 
20758
static Node *
 
20759
makeStringConst(char *str, TypeName *typename)
 
20760
{
 
20761
        A_Const *n = makeNode(A_Const);
 
20762
 
 
20763
        n->val.type = T_String;
 
20764
        n->val.val.str = str;
 
20765
        n->typename = typename;
 
20766
 
 
20767
        return (Node *)n;
 
20768
}
 
20769
 
 
20770
static Node *
 
20771
makeIntConst(int val)
 
20772
{
 
20773
        A_Const *n = makeNode(A_Const);
 
20774
        n->val.type = T_Integer;
 
20775
        n->val.val.ival = val;
 
20776
        n->typename = SystemTypeName("int4");
 
20777
 
 
20778
        return (Node *)n;
 
20779
}
 
20780
 
 
20781
static Node *
 
20782
makeFloatConst(char *str)
 
20783
{
 
20784
        A_Const *n = makeNode(A_Const);
 
20785
 
 
20786
        n->val.type = T_Float;
 
20787
        n->val.val.str = str;
 
20788
        n->typename = SystemTypeName("float8");
 
20789
 
 
20790
        return (Node *)n;
 
20791
}
 
20792
 
 
20793
static Node *
 
20794
makeAConst(Value *v)
 
20795
{
 
20796
        Node *n;
 
20797
 
 
20798
        switch (v->type)
 
20799
        {
 
20800
                case T_Float:
 
20801
                        n = makeFloatConst(v->val.str);
 
20802
                        break;
 
20803
 
 
20804
                case T_Integer:
 
20805
                        n = makeIntConst(v->val.ival);
 
20806
                        break;
 
20807
 
 
20808
                case T_String:
 
20809
                default:
 
20810
                        n = makeStringConst(v->val.str, NULL);
 
20811
                        break;
 
20812
        }
 
20813
 
 
20814
        return n;
 
20815
}
 
20816
 
 
20817
/* makeDefElem()
 
20818
 * Create a DefElem node and set contents.
 
20819
 * Could be moved to nodes/makefuncs.c if this is useful elsewhere.
 
20820
 */
 
20821
static DefElem *
 
20822
makeDefElem(char *name, Node *arg)
 
20823
{
 
20824
        DefElem *f = makeNode(DefElem);
 
20825
        f->defname = name;
 
20826
        f->arg = arg;
 
20827
        return f;
 
20828
}
 
20829
 
 
20830
/* makeBoolAConst()
 
20831
 * Create an A_Const node and initialize to a boolean constant.
 
20832
 */
 
20833
static A_Const *
 
20834
makeBoolAConst(bool state)
 
20835
{
 
20836
        A_Const *n = makeNode(A_Const);
 
20837
        n->val.type = T_String;
 
20838
        n->val.val.str = (state? "t": "f");
 
20839
        n->typename = SystemTypeName("bool");
 
20840
        return n;
 
20841
}
 
20842
 
 
20843
/* makeRowNullTest()
 
20844
 * Generate separate operator nodes for a single row descriptor test.
 
20845
 *
 
20846
 * Eventually this should be eliminated in favor of making the NullTest
 
20847
 * node type capable of handling it directly.
 
20848
 */
 
20849
static Node *
 
20850
makeRowNullTest(NullTestType test, RowExpr *row)
 
20851
{
 
20852
        Node            *result = NULL;
 
20853
        ListCell        *arg;
 
20854
 
 
20855
        foreach(arg, row->args)
 
20856
        {
 
20857
                NullTest *n;
 
20858
 
 
20859
                n = makeNode(NullTest);
 
20860
                n->arg = (Expr *) lfirst(arg);
 
20861
                n->nulltesttype = test;
 
20862
 
 
20863
                if (result == NULL)
 
20864
                        result = (Node *) n;
 
20865
                else if (test == IS_NOT_NULL)
 
20866
                        result = (Node *) makeA_Expr(AEXPR_OR, NIL, result, (Node *)n);
 
20867
                else
 
20868
                        result = (Node *) makeA_Expr(AEXPR_AND, NIL, result, (Node *)n);
 
20869
        }
 
20870
 
 
20871
        if (result == NULL)
 
20872
        {
 
20873
                /* zero-length rows?  Generate constant TRUE or FALSE */
 
20874
                result = (Node *) makeBoolAConst(test == IS_NULL);
 
20875
        }
 
20876
 
 
20877
        return result;
 
20878
}
 
20879
 
 
20880
/* makeOverlaps()
 
20881
 * Create and populate a FuncCall node to support the OVERLAPS operator.
 
20882
 */
 
20883
static FuncCall *
 
20884
makeOverlaps(List *largs, List *rargs)
 
20885
{
 
20886
        FuncCall *n = makeNode(FuncCall);
 
20887
        n->funcname = SystemFuncName("overlaps");
 
20888
        if (list_length(largs) == 1)
 
20889
                largs = lappend(largs, largs);
 
20890
        else if (list_length(largs) != 2)
 
20891
                ereport(ERROR,
 
20892
                                (errcode(ERRCODE_SYNTAX_ERROR),
 
20893
                                 errmsg("wrong number of parameters on left side of OVERLAPS expression")));
 
20894
        if (list_length(rargs) == 1)
 
20895
                rargs = lappend(rargs, rargs);
 
20896
        else if (list_length(rargs) != 2)
 
20897
                ereport(ERROR,
 
20898
                                (errcode(ERRCODE_SYNTAX_ERROR),
 
20899
                                 errmsg("wrong number of parameters on right side of OVERLAPS expression")));
 
20900
        n->args = list_concat(largs, rargs);
 
20901
        n->agg_star = FALSE;
 
20902
        n->agg_distinct = FALSE;
 
20903
        return n;
 
20904
}
 
20905
 
 
20906
/* check_qualified_name --- check the result of qualified_name production
 
20907
 *
 
20908
 * It's easiest to let the grammar production for qualified_name allow
 
20909
 * subscripts and '*', which we then must reject here.
 
20910
 */
 
20911
static void
 
20912
check_qualified_name(List *names)
 
20913
{
 
20914
        ListCell   *i;
 
20915
 
 
20916
        foreach(i, names)
 
20917
        {
 
20918
                if (!IsA(lfirst(i), String))
 
20919
                        yyerror("syntax error");
 
20920
                else if (strcmp(strVal(lfirst(i)), "*") == 0)
 
20921
                        yyerror("syntax error");
 
20922
        }
 
20923
}
 
20924
 
 
20925
/* check_func_name --- check the result of func_name production
 
20926
 *
 
20927
 * It's easiest to let the grammar production for func_name allow subscripts
 
20928
 * and '*', which we then must reject here.
 
20929
 */
 
20930
static List *
 
20931
check_func_name(List *names)
 
20932
{
 
20933
        ListCell   *i;
 
20934
 
 
20935
        foreach(i, names)
 
20936
        {
 
20937
                if (!IsA(lfirst(i), String))
 
20938
                        yyerror("syntax error");
 
20939
                else if (strcmp(strVal(lfirst(i)), "*") == 0)
 
20940
                        yyerror("syntax error");
 
20941
        }
 
20942
        return names;
 
20943
}
 
20944
 
 
20945
/* extractArgTypes()
 
20946
 * Given a list of FunctionParameter nodes, extract a list of just the
 
20947
 * argument types (TypeNames) for input parameters only.  This is what
 
20948
 * is needed to look up an existing function, which is what is wanted by
 
20949
 * the productions that use this call.
 
20950
 */
 
20951
static List *
 
20952
extractArgTypes(List *parameters)
 
20953
{
 
20954
        List       *result = NIL;
 
20955
        ListCell   *i;
 
20956
 
 
20957
        foreach(i, parameters)
 
20958
        {
 
20959
                FunctionParameter *p = (FunctionParameter *) lfirst(i);
 
20960
 
 
20961
                if (p->mode != FUNC_PARAM_OUT)                  /* keep if IN or INOUT */
 
20962
                        result = lappend(result, p->argType);
 
20963
        }
 
20964
        return result;
 
20965
}
 
20966
 
 
20967
/* findLeftmostSelect()
 
20968
 * Find the leftmost component SelectStmt in a set-operation parsetree.
 
20969
 */
 
20970
static SelectStmt *
 
20971
findLeftmostSelect(SelectStmt *node)
 
20972
{
 
20973
        while (node && node->op != SETOP_NONE)
 
20974
                node = node->larg;
 
20975
        return node;
 
20976
}
 
20977
 
 
20978
/* insertSelectOptions()
 
20979
 * Insert ORDER BY, etc into an already-constructed SelectStmt.
 
20980
 *
 
20981
 * This routine is just to avoid duplicating code in SelectStmt productions.
 
20982
 */
 
20983
static void
 
20984
insertSelectOptions(SelectStmt *stmt,
 
20985
                                        List *sortClause, Node *lockingClause,
 
20986
                                        Node *limitOffset, Node *limitCount)
 
20987
{
 
20988
        /*
 
20989
         * Tests here are to reject constructs like
 
20990
         *      (SELECT foo ORDER BY bar) ORDER BY baz
 
20991
         */
 
20992
        if (sortClause)
 
20993
        {
 
20994
                if (stmt->sortClause)
 
20995
                        ereport(ERROR,
 
20996
                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
20997
                                         errmsg("multiple ORDER BY clauses not allowed")));
 
20998
                stmt->sortClause = sortClause;
 
20999
        }
 
21000
        if (lockingClause)
 
21001
        {
 
21002
                if (stmt->lockingClause)
 
21003
                        ereport(ERROR,
 
21004
                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
21005
                                         errmsg("multiple FOR UPDATE/FOR SHARE clauses not allowed")));
 
21006
                stmt->lockingClause = (LockingClause *) lockingClause;
 
21007
        }
 
21008
        if (limitOffset)
 
21009
        {
 
21010
                if (stmt->limitOffset)
 
21011
                        ereport(ERROR,
 
21012
                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
21013
                                         errmsg("multiple OFFSET clauses not allowed")));
 
21014
                stmt->limitOffset = limitOffset;
 
21015
        }
 
21016
        if (limitCount)
 
21017
        {
 
21018
                if (stmt->limitCount)
 
21019
                        ereport(ERROR,
 
21020
                                        (errcode(ERRCODE_SYNTAX_ERROR),
 
21021
                                         errmsg("multiple LIMIT clauses not allowed")));
 
21022
                stmt->limitCount = limitCount;
 
21023
        }
 
21024
}
 
21025
 
 
21026
static Node *
 
21027
makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg)
 
21028
{
 
21029
        SelectStmt *n = makeNode(SelectStmt);
 
21030
 
 
21031
        n->op = op;
 
21032
        n->all = all;
 
21033
        n->larg = (SelectStmt *) larg;
 
21034
        n->rarg = (SelectStmt *) rarg;
 
21035
        return (Node *) n;
 
21036
}
 
21037
 
 
21038
/* SystemFuncName()
 
21039
 * Build a properly-qualified reference to a built-in function.
 
21040
 */
 
21041
List *
 
21042
SystemFuncName(char *name)
 
21043
{
 
21044
        return list_make1(makeString(name));
 
21045
}
 
21046
 
 
21047
/* SystemTypeName()
 
21048
 * Build a properly-qualified reference to a built-in type.
 
21049
 *
 
21050
 * typmod is defaulted, but may be changed afterwards by caller.
 
21051
 */
 
21052
TypeName *
 
21053
SystemTypeName(char *name)
 
21054
{
 
21055
        TypeName   *n = makeNode(TypeName);
 
21056
 
 
21057
        n->names = list_make1(makeString(name));
 
21058
        n->typmod = -1;
 
21059
        return n;
 
21060
}
 
21061
 
 
21062
/* parser_init()
 
21063
 * Initialize to parse one query string
 
21064
 */
 
21065
void
 
21066
parser_init(void)
 
21067
{
 
21068
        QueryIsRule = FALSE;
 
21069
}
 
21070
 
 
21071
/* exprIsNullConstant()
 
21072
 * Test whether an a_expr is a plain NULL constant or not.
 
21073
 */
 
21074
bool
 
21075
exprIsNullConstant(Node *arg)
 
21076
{
 
21077
        if (arg && IsA(arg, A_Const))
 
21078
        {
 
21079
                A_Const *con = (A_Const *) arg;
 
21080
 
 
21081
                if (con->val.type == T_Null &&
 
21082
                        con->typename == NULL)
 
21083
                        return TRUE;
 
21084
        }
 
21085
        return FALSE;
 
21086
}
 
21087
 
 
21088
/* doNegate()
 
21089
 * Handle negation of a numeric constant.
 
21090
 *
 
21091
 * Formerly, we did this here because the optimizer couldn't cope with
 
21092
 * indexquals that looked like "var = -4" --- it wants "var = const"
 
21093
 * and a unary minus operator applied to a constant didn't qualify.
 
21094
 * As of Postgres 7.0, that problem doesn't exist anymore because there
 
21095
 * is a constant-subexpression simplifier in the optimizer.  However,
 
21096
 * there's still a good reason for doing this here, which is that we can
 
21097
 * postpone committing to a particular internal representation for simple
 
21098
 * negative constants.  It's better to leave "-123.456" in string form
 
21099
 * until we know what the desired type is.
 
21100
 */
 
21101
static Node *
 
21102
doNegate(Node *n)
 
21103
{
 
21104
        if (IsA(n, A_Const))
 
21105
        {
 
21106
                A_Const *con = (A_Const *)n;
 
21107
 
 
21108
                if (con->val.type == T_Integer)
 
21109
                {
 
21110
                        con->val.val.ival = -con->val.val.ival;
 
21111
                        return n;
 
21112
                }
 
21113
                if (con->val.type == T_Float)
 
21114
                {
 
21115
                        doNegateFloat(&con->val);
 
21116
                        return n;
 
21117
                }
 
21118
        }
 
21119
 
 
21120
        return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n);
 
21121
}
 
21122
 
 
21123
static void
 
21124
doNegateFloat(Value *v)
 
21125
{
 
21126
        char   *oldval = v->val.str;
 
21127
 
 
21128
        if (*oldval == '+')
 
21129
                oldval++;
 
21130
        if (*oldval == '-')
 
21131
                v->val.str = oldval+1;  /* just strip the '-' */
 
21132
        else
 
21133
        {
 
21134
                char   *newval = (char *) palloc(strlen(oldval) + 2);
 
21135
 
 
21136
                *newval = '-';
 
21137
                strcpy(newval+1, oldval);
 
21138
                v->val.str = newval;
 
21139
        }
 
21140
}
 
21141
 
 
21142
#undef yylex
 
21143
#include "scan.c"
 
21144