-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Expand file tree
/
Copy pathHogQLLexer.cpp
More file actions
895 lines (857 loc) · 58.2 KB
/
HogQLLexer.cpp
File metadata and controls
895 lines (857 loc) · 58.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
#include <cctype>
// Generated from HogQLLexer.g4 by ANTLR 4.13.2
#include "HogQLLexer.h"
using namespace antlr4;
using namespace antlr4;
namespace {
struct HogQLLexerStaticData final {
HogQLLexerStaticData(std::vector<std::string> ruleNames,
std::vector<std::string> channelNames,
std::vector<std::string> modeNames,
std::vector<std::string> literalNames,
std::vector<std::string> symbolicNames)
: ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)),
modeNames(std::move(modeNames)), literalNames(std::move(literalNames)),
symbolicNames(std::move(symbolicNames)),
vocabulary(this->literalNames, this->symbolicNames) {}
HogQLLexerStaticData(const HogQLLexerStaticData&) = delete;
HogQLLexerStaticData(HogQLLexerStaticData&&) = delete;
HogQLLexerStaticData& operator=(const HogQLLexerStaticData&) = delete;
HogQLLexerStaticData& operator=(HogQLLexerStaticData&&) = delete;
std::vector<antlr4::dfa::DFA> decisionToDFA;
antlr4::atn::PredictionContextCache sharedContextCache;
const std::vector<std::string> ruleNames;
const std::vector<std::string> channelNames;
const std::vector<std::string> modeNames;
const std::vector<std::string> literalNames;
const std::vector<std::string> symbolicNames;
const antlr4::dfa::Vocabulary vocabulary;
antlr4::atn::SerializedATNView serializedATN;
std::unique_ptr<antlr4::atn::ATN> atn;
};
::antlr4::internal::OnceFlag hogqllexerLexerOnceFlag;
#if ANTLR4_USE_THREAD_LOCAL_CACHE
static thread_local
#endif
std::unique_ptr<HogQLLexerStaticData> hogqllexerLexerStaticData = nullptr;
void hogqllexerLexerInitialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
if (hogqllexerLexerStaticData != nullptr) {
return;
}
#else
assert(hogqllexerLexerStaticData == nullptr);
#endif
auto staticData = std::make_unique<HogQLLexerStaticData>(
std::vector<std::string>{
"ALL", "AND", "ANTI", "ANY", "ARRAY", "AS", "ASCENDING", "ASOF", "BETWEEN",
"BOTH", "BY", "CASE", "CAST", "CATCH", "COHORT", "COLLATE", "COLUMNS",
"CROSS", "CUBE", "CURRENT", "DATE", "DAY", "DESC", "DESCENDING", "DISTINCT",
"ELSE", "END", "EXCEPT", "EXCLUDE", "EXTRACT", "FINAL", "FINALLY",
"FIRST", "FN", "FOLLOWING", "FOR", "FROM", "FULL", "FUN", "GROUP",
"GROUPING", "HAVING", "HOUR", "ID", "IF", "ILIKE", "IN", "INF", "INNER",
"INTERSECT", "INTERVAL", "IS", "JOIN", "KEY", "LAMBDA", "LAST", "LEADING",
"LEFT", "LET", "LIKE", "LIMIT", "MATERIALIZED", "MINUTE", "MONTH",
"NAME", "NAN_SQL", "NOT", "NULL_SQL", "NULLS", "OFFSET", "ON", "OR",
"ORDER", "OUTER", "OVER", "PARTITION", "PIVOT", "PRECEDING", "PREWHERE",
"QUALIFY", "QUARTER", "RANGE", "RECURSIVE", "REPLACE", "RETURN", "RIGHT",
"ROLLUP", "ROW", "ROWS", "SAMPLE", "SECOND", "SELECT", "SEMI", "SETS",
"SETTINGS", "SUBSTRING", "THEN", "THROW", "TIES", "TIMESTAMP", "TO",
"TOP", "TOTALS", "TRAILING", "TRIM", "TRUNCATE", "TRY", "TRY_CAST",
"UNBOUNDED", "UNION", "UNPIVOT", "USING", "VALUES", "WEEK", "WHEN",
"WHERE", "WHILE", "WINDOW", "WITH", "WITHIN", "YEAR", "ESCAPE_CHAR_COMMON",
"IDENTIFIER", "FLOATING_LITERAL", "OCTAL_LITERAL", "DECIMAL_LITERAL",
"HEXADECIMAL_LITERAL", "STRING_LITERAL", "A", "B", "C", "D", "E",
"F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S",
"T", "U", "V", "W", "X", "Y", "Z", "LETTER", "OCT_DIGIT", "DEC_DIGIT",
"HEX_DIGIT", "ARROW", "ASTERISK", "BACKQUOTE", "BACKSLASH", "DOUBLECOLON",
"COLONEQUALS", "COLON", "COMMA", "CONCAT", "DASH", "DOLLAR", "DOT",
"EQ_DOUBLE", "EQ_SINGLE", "GT_EQ", "GT", "HASH", "IREGEX_SINGLE",
"IREGEX_DOUBLE", "LBRACE", "LBRACKET", "LPAREN", "LT_EQ", "TAG_LT_SLASH",
"TAG_LT_OPEN", "LT", "LT_SLASH", "NOT_EQ", "NOT_IREGEX", "NOT_REGEX",
"NULL_PROPERTY", "NULLISH", "PERCENT", "PLUS", "QUERY", "QUOTE_DOUBLE",
"QUOTE_SINGLE_TEMPLATE", "QUOTE_SINGLE_TEMPLATE_FULL", "QUOTE_SINGLE",
"REGEX_SINGLE", "REGEX_DOUBLE", "RBRACE", "RBRACKET", "RPAREN", "SEMICOLON",
"SLASH", "SLASH_GT", "UNDERSCORE", "MULTI_LINE_COMMENT", "SINGLE_LINE_COMMENT",
"WHITESPACE", "STRING_TEXT", "STRING_ESCAPE_TRIGGER", "STRING_QUOTE_SINGLE",
"FULL_STRING_TEXT", "FULL_STRING_ESCAPE_TRIGGER", "TAG_SELF_CLOSE_GT",
"TAG_OPEN_GT", "TAG_IDENT", "TAG_EQ", "TAG_STRING", "TAG_WS", "TAG_LBRACE",
"TAGC_GT", "TAGC_IDENT", "TAGC_WS", "HOGQLX_TEXT_TEXT", "HOGQLX_TEXT_LBRACE",
"HOGQLX_TEXT_LT_SLASH", "HOGQLX_TEXT_LT", "HOGQLX_TEXT_WS"
},
std::vector<std::string>{
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
},
std::vector<std::string>{
"DEFAULT_MODE", "IN_TEMPLATE_STRING", "IN_FULL_TEMPLATE_STRING", "HOGQLX_TAG_OPEN",
"HOGQLX_TAG_CLOSE", "HOGQLX_TEXT"
},
std::vector<std::string>{
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "'->'", "'*'", "'`'", "'\\'",
"'::'", "':='", "':'", "','", "'||'", "'-'", "'$'", "'.'", "'=='",
"", "'>='", "", "'#'", "'~*'", "'=~*'", "'{'", "'['", "'('", "'<='",
"'<'", "'</'", "", "'!~*'", "'!~'", "'\\u003F.'", "'\\u003F\\u003F'",
"'%'", "'+'", "'\\u003F'", "'\"'", "'f''", "'F''", "'''", "'~'", "'=~'",
"'}'", "']'", "')'", "';'", "'/'", "", "'_'"
},
std::vector<std::string>{
"", "ALL", "AND", "ANTI", "ANY", "ARRAY", "AS", "ASCENDING", "ASOF",
"BETWEEN", "BOTH", "BY", "CASE", "CAST", "CATCH", "COHORT", "COLLATE",
"COLUMNS", "CROSS", "CUBE", "CURRENT", "DATE", "DAY", "DESC", "DESCENDING",
"DISTINCT", "ELSE", "END", "EXCEPT", "EXCLUDE", "EXTRACT", "FINAL",
"FINALLY", "FIRST", "FN", "FOLLOWING", "FOR", "FROM", "FULL", "FUN",
"GROUP", "GROUPING", "HAVING", "HOUR", "ID", "IF", "ILIKE", "IN",
"INF", "INNER", "INTERSECT", "INTERVAL", "IS", "JOIN", "KEY", "LAMBDA",
"LAST", "LEADING", "LEFT", "LET", "LIKE", "LIMIT", "MATERIALIZED",
"MINUTE", "MONTH", "NAME", "NAN_SQL", "NOT", "NULL_SQL", "NULLS",
"OFFSET", "ON", "OR", "ORDER", "OUTER", "OVER", "PARTITION", "PIVOT",
"PRECEDING", "PREWHERE", "QUALIFY", "QUARTER", "RANGE", "RECURSIVE",
"REPLACE", "RETURN", "RIGHT", "ROLLUP", "ROW", "ROWS", "SAMPLE", "SECOND",
"SELECT", "SEMI", "SETS", "SETTINGS", "SUBSTRING", "THEN", "THROW",
"TIES", "TIMESTAMP", "TO", "TOP", "TOTALS", "TRAILING", "TRIM", "TRUNCATE",
"TRY", "TRY_CAST", "UNBOUNDED", "UNION", "UNPIVOT", "USING", "VALUES",
"WEEK", "WHEN", "WHERE", "WHILE", "WINDOW", "WITH", "WITHIN", "YEAR",
"ESCAPE_CHAR_COMMON", "IDENTIFIER", "FLOATING_LITERAL", "OCTAL_LITERAL",
"DECIMAL_LITERAL", "HEXADECIMAL_LITERAL", "STRING_LITERAL", "ARROW",
"ASTERISK", "BACKQUOTE", "BACKSLASH", "DOUBLECOLON", "COLONEQUALS",
"COLON", "COMMA", "CONCAT", "DASH", "DOLLAR", "DOT", "EQ_DOUBLE",
"EQ_SINGLE", "GT_EQ", "GT", "HASH", "IREGEX_SINGLE", "IREGEX_DOUBLE",
"LBRACE", "LBRACKET", "LPAREN", "LT_EQ", "LT", "LT_SLASH", "NOT_EQ",
"NOT_IREGEX", "NOT_REGEX", "NULL_PROPERTY", "NULLISH", "PERCENT",
"PLUS", "QUERY", "QUOTE_DOUBLE", "QUOTE_SINGLE_TEMPLATE", "QUOTE_SINGLE_TEMPLATE_FULL",
"QUOTE_SINGLE", "REGEX_SINGLE", "REGEX_DOUBLE", "RBRACE", "RBRACKET",
"RPAREN", "SEMICOLON", "SLASH", "SLASH_GT", "UNDERSCORE", "MULTI_LINE_COMMENT",
"SINGLE_LINE_COMMENT", "WHITESPACE", "STRING_TEXT", "STRING_ESCAPE_TRIGGER",
"FULL_STRING_TEXT", "FULL_STRING_ESCAPE_TRIGGER", "TAG_WS", "TAGC_WS",
"HOGQLX_TEXT_TEXT", "HOGQLX_TEXT_WS"
}
);
static const int32_t serializedATNSegment[] = {
4,0,185,1784,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,
3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,
7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,
7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,
7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,
7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,
7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,
7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,
7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,
7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,
7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,
7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,
7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,
7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,
7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,
2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,
2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,
2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,
2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,
2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,
2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,
2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,
2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,
2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,
2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,
2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,
2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,
2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,
2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,
2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,
2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,
2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,
2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,
2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,
2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,
2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,
2,228,7,228,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,3,1,
3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,6,
1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,505,8,6,1,7,1,7,1,7,1,7,1,7,1,8,1,
8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,11,1,11,
1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,13,
1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,
1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,
1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,19,1,19,1,19,
1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22,
1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,
1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,
1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,
1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30,
1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,
1,32,1,32,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,1,34,
1,34,1,35,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,
1,37,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,
1,40,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,
1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,44,1,44,1,44,1,45,1,45,1,45,1,45,
1,45,1,45,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,47,
1,47,1,47,1,47,1,47,3,47,758,8,47,1,48,1,48,1,48,1,48,1,48,1,48,1,49,
1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,50,
1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,53,1,53,
1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,
1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,58,
1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,60,
1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,
1,62,1,62,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,63,1,64,1,64,
1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,67,1,67,1,67,
1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,
1,69,1,70,1,70,1,70,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,72,1,73,
1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,
1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,76,1,77,1,77,
1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,78,
1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,
1,80,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,82,1,82,1,82,
1,82,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,
1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,85,
1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,88,1,88,1,88,
1,88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,
1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,
1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,1,94,
1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,
1,96,1,97,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,99,1,99,
1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,101,1,101,
1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,103,1,103,1,103,
1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,105,
1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,
1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,
1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,
1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,
1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,
1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,
1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,
1,117,1,117,1,117,1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,
1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,
1,120,3,120,1235,8,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,
1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,121,
1,121,1,121,1,121,1,121,1,121,1,121,1,121,3,121,1264,8,121,1,122,1,122,
1,122,3,122,1269,8,122,1,122,1,122,1,122,1,122,5,122,1275,8,122,10,122,
12,122,1278,9,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,122,
5,122,1289,8,122,10,122,12,122,1292,9,122,1,122,1,122,1,122,1,122,1,122,
1,122,1,122,1,122,1,122,1,122,1,122,5,122,1305,8,122,10,122,12,122,1308,
9,122,1,122,1,122,3,122,1312,8,122,1,123,1,123,1,123,5,123,1317,8,123,
10,123,12,123,1320,9,123,1,123,1,123,3,123,1324,8,123,1,123,1,123,3,123,
1328,8,123,1,123,4,123,1331,8,123,11,123,12,123,1332,1,123,1,123,1,123,
3,123,1338,8,123,1,123,1,123,3,123,1342,8,123,1,123,4,123,1345,8,123,
11,123,12,123,1346,1,123,1,123,1,123,5,123,1352,8,123,10,123,12,123,1355,
9,123,1,123,1,123,1,123,3,123,1360,8,123,1,123,4,123,1363,8,123,11,123,
12,123,1364,1,123,1,123,1,123,1,123,1,123,3,123,1372,8,123,1,123,4,123,
1375,8,123,11,123,12,123,1376,1,123,1,123,1,123,1,123,3,123,1383,8,123,
1,123,4,123,1386,8,123,11,123,12,123,1387,3,123,1390,8,123,1,124,1,124,
4,124,1394,8,124,11,124,12,124,1395,1,125,4,125,1399,8,125,11,125,12,
125,1400,1,126,1,126,1,126,4,126,1406,8,126,11,126,12,126,1407,1,127,
1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,5,127,1419,8,127,10,127,
12,127,1422,9,127,1,127,1,127,1,128,1,128,1,129,1,129,1,130,1,130,1,131,
1,131,1,132,1,132,1,133,1,133,1,134,1,134,1,135,1,135,1,136,1,136,1,137,
1,137,1,138,1,138,1,139,1,139,1,140,1,140,1,141,1,141,1,142,1,142,1,143,
1,143,1,144,1,144,1,145,1,145,1,146,1,146,1,147,1,147,1,148,1,148,1,149,
1,149,1,150,1,150,1,151,1,151,1,152,1,152,1,153,1,153,1,154,1,154,1,155,
1,155,1,156,1,156,1,157,1,157,1,158,1,158,1,158,1,159,1,159,1,160,1,160,
1,161,1,161,1,162,1,162,1,162,1,163,1,163,1,163,1,164,1,164,1,165,1,165,
1,166,1,166,1,166,1,167,1,167,1,168,1,168,1,169,1,169,1,170,1,170,1,170,
1,171,1,171,1,172,1,172,1,172,1,173,1,173,1,174,1,174,1,175,1,175,1,175,
1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,178,1,178,1,179,1,179,
1,180,1,180,1,180,1,181,1,181,1,181,1,181,1,181,1,181,1,182,1,182,1,182,
1,182,1,182,1,182,1,183,1,183,1,184,1,184,1,184,1,185,1,185,1,185,1,185,
3,185,1565,8,185,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,188,1,188,
1,188,1,189,1,189,1,189,1,190,1,190,1,191,1,191,1,192,1,192,1,193,1,193,
1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,196,1,196,
1,197,1,197,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,200,1,200,1,201,
1,201,1,202,1,202,1,203,1,203,1,204,1,204,1,204,1,205,1,205,1,206,1,206,
1,206,1,206,5,206,1626,8,206,10,206,12,206,1629,9,206,1,206,1,206,1,206,
1,206,1,206,1,207,1,207,1,207,1,207,3,207,1640,8,207,1,207,5,207,1643,
8,207,10,207,12,207,1646,9,207,1,207,3,207,1649,8,207,1,207,1,207,1,208,
1,208,1,208,1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,209,
1,209,1,209,4,209,1668,8,209,11,209,12,209,1669,1,210,1,210,1,210,1,210,
1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,212,1,212,1,212,4,212,1686,
8,212,11,212,12,212,1687,1,213,1,213,1,213,1,213,1,214,1,214,1,214,1,
214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,1,215,1,216,1,216,5,216,
1708,8,216,10,216,12,216,1711,9,216,1,216,1,216,1,217,1,217,1,217,1,217,
1,218,1,218,1,218,1,218,1,219,4,219,1724,8,219,11,219,12,219,1725,1,219,
1,219,1,220,1,220,1,220,1,220,1,220,1,221,1,221,1,221,1,221,1,221,1,222,
1,222,5,222,1742,8,222,10,222,12,222,1745,9,222,1,222,1,222,1,223,4,223,
1750,8,223,11,223,12,223,1751,1,223,1,223,1,224,4,224,1757,8,224,11,224,
12,224,1758,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,226,1,226,
1,226,1,226,1,227,1,227,1,227,1,227,1,227,1,228,4,228,1779,8,228,11,228,
12,228,1780,1,228,1,228,1,1627,0,229,6,1,8,2,10,3,12,4,14,5,16,6,18,7,
20,8,22,9,24,10,26,11,28,12,30,13,32,14,34,15,36,16,38,17,40,18,42,19,
44,20,46,21,48,22,50,23,52,24,54,25,56,26,58,27,60,28,62,29,64,30,66,
31,68,32,70,33,72,34,74,35,76,36,78,37,80,38,82,39,84,40,86,41,88,42,
90,43,92,44,94,45,96,46,98,47,100,48,102,49,104,50,106,51,108,52,110,
53,112,54,114,55,116,56,118,57,120,58,122,59,124,60,126,61,128,62,130,
63,132,64,134,65,136,66,138,67,140,68,142,69,144,70,146,71,148,72,150,
73,152,74,154,75,156,76,158,77,160,78,162,79,164,80,166,81,168,82,170,
83,172,84,174,85,176,86,178,87,180,88,182,89,184,90,186,91,188,92,190,
93,192,94,194,95,196,96,198,97,200,98,202,99,204,100,206,101,208,102,
210,103,212,104,214,105,216,106,218,107,220,108,222,109,224,110,226,111,
228,112,230,113,232,114,234,115,236,116,238,117,240,118,242,119,244,120,
246,121,248,122,250,123,252,124,254,125,256,126,258,127,260,128,262,0,
264,0,266,0,268,0,270,0,272,0,274,0,276,0,278,0,280,0,282,0,284,0,286,
0,288,0,290,0,292,0,294,0,296,0,298,0,300,0,302,0,304,0,306,0,308,0,310,
0,312,0,314,0,316,0,318,0,320,0,322,129,324,130,326,131,328,132,330,133,
332,134,334,135,336,136,338,137,340,138,342,139,344,140,346,141,348,142,
350,143,352,144,354,145,356,146,358,147,360,148,362,149,364,150,366,151,
368,0,370,0,372,152,374,153,376,154,378,155,380,156,382,157,384,158,386,
159,388,160,390,161,392,162,394,163,396,164,398,165,400,166,402,167,404,
168,406,169,408,170,410,171,412,172,414,173,416,174,418,175,420,176,422,
177,424,178,426,179,428,0,430,180,432,181,434,0,436,0,438,0,440,0,442,
0,444,182,446,0,448,0,450,0,452,183,454,184,456,0,458,0,460,0,462,185,
6,0,1,2,3,4,5,42,2,0,92,92,96,96,2,0,34,34,92,92,2,0,39,39,92,92,2,0,
65,65,97,97,2,0,66,66,98,98,2,0,67,67,99,99,2,0,68,68,100,100,2,0,69,
69,101,101,2,0,70,70,102,102,2,0,71,71,103,103,2,0,72,72,104,104,2,0,
73,73,105,105,2,0,74,74,106,106,2,0,75,75,107,107,2,0,76,76,108,108,2,
0,77,77,109,109,2,0,78,78,110,110,2,0,79,79,111,111,2,0,80,80,112,112,
2,0,81,81,113,113,2,0,82,82,114,114,2,0,83,83,115,115,2,0,84,84,116,116,
2,0,85,85,117,117,2,0,86,86,118,118,2,0,87,87,119,119,2,0,88,88,120,120,
2,0,89,89,121,121,2,0,90,90,122,122,2,0,65,90,97,122,1,0,48,55,1,0,48,
57,3,0,48,57,65,70,97,102,2,0,10,10,13,13,2,1,10,10,13,13,2,0,9,13,32,
32,3,0,39,39,92,92,123,123,1,0,123,123,3,0,65,90,95,95,97,122,5,0,45,
45,48,57,65,90,95,95,97,122,3,0,9,10,13,13,32,32,2,0,60,60,123,123,1823,
0,6,1,0,0,0,0,8,1,0,0,0,0,10,1,0,0,0,0,12,1,0,0,0,0,14,1,0,0,0,0,16,1,
0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0,22,1,0,0,0,0,24,1,0,0,0,0,26,1,0,0,
0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1,0,0,0,0,34,1,0,0,0,0,36,1,0,0,0,0,
38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0,0,44,1,0,0,0,0,46,1,0,0,0,0,48,1,
0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54,1,0,0,0,0,56,1,0,0,0,0,58,1,0,0,
0,0,60,1,0,0,0,0,62,1,0,0,0,0,64,1,0,0,0,0,66,1,0,0,0,0,68,1,0,0,0,0,
70,1,0,0,0,0,72,1,0,0,0,0,74,1,0,0,0,0,76,1,0,0,0,0,78,1,0,0,0,0,80,1,
0,0,0,0,82,1,0,0,0,0,84,1,0,0,0,0,86,1,0,0,0,0,88,1,0,0,0,0,90,1,0,0,
0,0,92,1,0,0,0,0,94,1,0,0,0,0,96,1,0,0,0,0,98,1,0,0,0,0,100,1,0,0,0,0,
102,1,0,0,0,0,104,1,0,0,0,0,106,1,0,0,0,0,108,1,0,0,0,0,110,1,0,0,0,0,
112,1,0,0,0,0,114,1,0,0,0,0,116,1,0,0,0,0,118,1,0,0,0,0,120,1,0,0,0,0,
122,1,0,0,0,0,124,1,0,0,0,0,126,1,0,0,0,0,128,1,0,0,0,0,130,1,0,0,0,0,
132,1,0,0,0,0,134,1,0,0,0,0,136,1,0,0,0,0,138,1,0,0,0,0,140,1,0,0,0,0,
142,1,0,0,0,0,144,1,0,0,0,0,146,1,0,0,0,0,148,1,0,0,0,0,150,1,0,0,0,0,
152,1,0,0,0,0,154,1,0,0,0,0,156,1,0,0,0,0,158,1,0,0,0,0,160,1,0,0,0,0,
162,1,0,0,0,0,164,1,0,0,0,0,166,1,0,0,0,0,168,1,0,0,0,0,170,1,0,0,0,0,
172,1,0,0,0,0,174,1,0,0,0,0,176,1,0,0,0,0,178,1,0,0,0,0,180,1,0,0,0,0,
182,1,0,0,0,0,184,1,0,0,0,0,186,1,0,0,0,0,188,1,0,0,0,0,190,1,0,0,0,0,
192,1,0,0,0,0,194,1,0,0,0,0,196,1,0,0,0,0,198,1,0,0,0,0,200,1,0,0,0,0,
202,1,0,0,0,0,204,1,0,0,0,0,206,1,0,0,0,0,208,1,0,0,0,0,210,1,0,0,0,0,
212,1,0,0,0,0,214,1,0,0,0,0,216,1,0,0,0,0,218,1,0,0,0,0,220,1,0,0,0,0,
222,1,0,0,0,0,224,1,0,0,0,0,226,1,0,0,0,0,228,1,0,0,0,0,230,1,0,0,0,0,
232,1,0,0,0,0,234,1,0,0,0,0,236,1,0,0,0,0,238,1,0,0,0,0,240,1,0,0,0,0,
242,1,0,0,0,0,244,1,0,0,0,0,246,1,0,0,0,0,248,1,0,0,0,0,250,1,0,0,0,0,
252,1,0,0,0,0,254,1,0,0,0,0,256,1,0,0,0,0,258,1,0,0,0,0,260,1,0,0,0,0,
322,1,0,0,0,0,324,1,0,0,0,0,326,1,0,0,0,0,328,1,0,0,0,0,330,1,0,0,0,0,
332,1,0,0,0,0,334,1,0,0,0,0,336,1,0,0,0,0,338,1,0,0,0,0,340,1,0,0,0,0,
342,1,0,0,0,0,344,1,0,0,0,0,346,1,0,0,0,0,348,1,0,0,0,0,350,1,0,0,0,0,
352,1,0,0,0,0,354,1,0,0,0,0,356,1,0,0,0,0,358,1,0,0,0,0,360,1,0,0,0,0,
362,1,0,0,0,0,364,1,0,0,0,0,366,1,0,0,0,0,368,1,0,0,0,0,370,1,0,0,0,0,
372,1,0,0,0,0,374,1,0,0,0,0,376,1,0,0,0,0,378,1,0,0,0,0,380,1,0,0,0,0,
382,1,0,0,0,0,384,1,0,0,0,0,386,1,0,0,0,0,388,1,0,0,0,0,390,1,0,0,0,0,
392,1,0,0,0,0,394,1,0,0,0,0,396,1,0,0,0,0,398,1,0,0,0,0,400,1,0,0,0,0,
402,1,0,0,0,0,404,1,0,0,0,0,406,1,0,0,0,0,408,1,0,0,0,0,410,1,0,0,0,0,
412,1,0,0,0,0,414,1,0,0,0,0,416,1,0,0,0,0,418,1,0,0,0,0,420,1,0,0,0,0,
422,1,0,0,0,1,424,1,0,0,0,1,426,1,0,0,0,1,428,1,0,0,0,2,430,1,0,0,0,2,
432,1,0,0,0,3,434,1,0,0,0,3,436,1,0,0,0,3,438,1,0,0,0,3,440,1,0,0,0,3,
442,1,0,0,0,3,444,1,0,0,0,3,446,1,0,0,0,4,448,1,0,0,0,4,450,1,0,0,0,4,
452,1,0,0,0,5,454,1,0,0,0,5,456,1,0,0,0,5,458,1,0,0,0,5,460,1,0,0,0,5,
462,1,0,0,0,6,464,1,0,0,0,8,468,1,0,0,0,10,472,1,0,0,0,12,477,1,0,0,0,
14,481,1,0,0,0,16,487,1,0,0,0,18,504,1,0,0,0,20,506,1,0,0,0,22,511,1,
0,0,0,24,519,1,0,0,0,26,524,1,0,0,0,28,527,1,0,0,0,30,532,1,0,0,0,32,
537,1,0,0,0,34,543,1,0,0,0,36,550,1,0,0,0,38,558,1,0,0,0,40,566,1,0,0,
0,42,572,1,0,0,0,44,577,1,0,0,0,46,585,1,0,0,0,48,590,1,0,0,0,50,594,
1,0,0,0,52,599,1,0,0,0,54,610,1,0,0,0,56,619,1,0,0,0,58,624,1,0,0,0,60,
628,1,0,0,0,62,635,1,0,0,0,64,643,1,0,0,0,66,651,1,0,0,0,68,657,1,0,0,
0,70,665,1,0,0,0,72,671,1,0,0,0,74,674,1,0,0,0,76,684,1,0,0,0,78,688,
1,0,0,0,80,693,1,0,0,0,82,698,1,0,0,0,84,702,1,0,0,0,86,708,1,0,0,0,88,
717,1,0,0,0,90,724,1,0,0,0,92,729,1,0,0,0,94,732,1,0,0,0,96,735,1,0,0,
0,98,741,1,0,0,0,100,757,1,0,0,0,102,759,1,0,0,0,104,765,1,0,0,0,106,
775,1,0,0,0,108,784,1,0,0,0,110,787,1,0,0,0,112,792,1,0,0,0,114,796,1,
0,0,0,116,803,1,0,0,0,118,808,1,0,0,0,120,816,1,0,0,0,122,821,1,0,0,0,
124,825,1,0,0,0,126,830,1,0,0,0,128,836,1,0,0,0,130,849,1,0,0,0,132,856,
1,0,0,0,134,862,1,0,0,0,136,867,1,0,0,0,138,871,1,0,0,0,140,875,1,0,0,
0,142,880,1,0,0,0,144,886,1,0,0,0,146,893,1,0,0,0,148,896,1,0,0,0,150,
899,1,0,0,0,152,905,1,0,0,0,154,911,1,0,0,0,156,916,1,0,0,0,158,926,1,
0,0,0,160,932,1,0,0,0,162,942,1,0,0,0,164,951,1,0,0,0,166,959,1,0,0,0,
168,967,1,0,0,0,170,973,1,0,0,0,172,983,1,0,0,0,174,991,1,0,0,0,176,998,
1,0,0,0,178,1004,1,0,0,0,180,1011,1,0,0,0,182,1015,1,0,0,0,184,1020,1,
0,0,0,186,1027,1,0,0,0,188,1034,1,0,0,0,190,1041,1,0,0,0,192,1046,1,0,
0,0,194,1051,1,0,0,0,196,1060,1,0,0,0,198,1070,1,0,0,0,200,1075,1,0,0,
0,202,1081,1,0,0,0,204,1086,1,0,0,0,206,1096,1,0,0,0,208,1099,1,0,0,0,
210,1103,1,0,0,0,212,1110,1,0,0,0,214,1119,1,0,0,0,216,1124,1,0,0,0,218,
1133,1,0,0,0,220,1137,1,0,0,0,222,1146,1,0,0,0,224,1156,1,0,0,0,226,1162,
1,0,0,0,228,1170,1,0,0,0,230,1176,1,0,0,0,232,1183,1,0,0,0,234,1188,1,
0,0,0,236,1193,1,0,0,0,238,1199,1,0,0,0,240,1205,1,0,0,0,242,1212,1,0,
0,0,244,1217,1,0,0,0,246,1234,1,0,0,0,248,1263,1,0,0,0,250,1311,1,0,0,
0,252,1389,1,0,0,0,254,1391,1,0,0,0,256,1398,1,0,0,0,258,1402,1,0,0,0,
260,1409,1,0,0,0,262,1425,1,0,0,0,264,1427,1,0,0,0,266,1429,1,0,0,0,268,
1431,1,0,0,0,270,1433,1,0,0,0,272,1435,1,0,0,0,274,1437,1,0,0,0,276,1439,
1,0,0,0,278,1441,1,0,0,0,280,1443,1,0,0,0,282,1445,1,0,0,0,284,1447,1,
0,0,0,286,1449,1,0,0,0,288,1451,1,0,0,0,290,1453,1,0,0,0,292,1455,1,0,
0,0,294,1457,1,0,0,0,296,1459,1,0,0,0,298,1461,1,0,0,0,300,1463,1,0,0,
0,302,1465,1,0,0,0,304,1467,1,0,0,0,306,1469,1,0,0,0,308,1471,1,0,0,0,
310,1473,1,0,0,0,312,1475,1,0,0,0,314,1477,1,0,0,0,316,1479,1,0,0,0,318,
1481,1,0,0,0,320,1483,1,0,0,0,322,1485,1,0,0,0,324,1488,1,0,0,0,326,1490,
1,0,0,0,328,1492,1,0,0,0,330,1494,1,0,0,0,332,1497,1,0,0,0,334,1500,1,
0,0,0,336,1502,1,0,0,0,338,1504,1,0,0,0,340,1507,1,0,0,0,342,1509,1,0,
0,0,344,1511,1,0,0,0,346,1513,1,0,0,0,348,1516,1,0,0,0,350,1518,1,0,0,
0,352,1521,1,0,0,0,354,1523,1,0,0,0,356,1525,1,0,0,0,358,1528,1,0,0,0,
360,1532,1,0,0,0,362,1536,1,0,0,0,364,1538,1,0,0,0,366,1540,1,0,0,0,368,
1543,1,0,0,0,370,1549,1,0,0,0,372,1555,1,0,0,0,374,1557,1,0,0,0,376,1564,
1,0,0,0,378,1566,1,0,0,0,380,1570,1,0,0,0,382,1573,1,0,0,0,384,1576,1,
0,0,0,386,1579,1,0,0,0,388,1581,1,0,0,0,390,1583,1,0,0,0,392,1585,1,0,
0,0,394,1587,1,0,0,0,396,1592,1,0,0,0,398,1597,1,0,0,0,400,1599,1,0,0,
0,402,1601,1,0,0,0,404,1604,1,0,0,0,406,1608,1,0,0,0,408,1610,1,0,0,0,
410,1612,1,0,0,0,412,1614,1,0,0,0,414,1616,1,0,0,0,416,1619,1,0,0,0,418,
1621,1,0,0,0,420,1639,1,0,0,0,422,1652,1,0,0,0,424,1667,1,0,0,0,426,1671,
1,0,0,0,428,1675,1,0,0,0,430,1685,1,0,0,0,432,1689,1,0,0,0,434,1693,1,
0,0,0,436,1699,1,0,0,0,438,1705,1,0,0,0,440,1714,1,0,0,0,442,1718,1,0,
0,0,444,1723,1,0,0,0,446,1729,1,0,0,0,448,1734,1,0,0,0,450,1739,1,0,0,
0,452,1749,1,0,0,0,454,1756,1,0,0,0,456,1760,1,0,0,0,458,1765,1,0,0,0,
460,1772,1,0,0,0,462,1778,1,0,0,0,464,465,3,262,128,0,465,466,3,284,139,
0,466,467,3,284,139,0,467,7,1,0,0,0,468,469,3,262,128,0,469,470,3,288,
141,0,470,471,3,268,131,0,471,9,1,0,0,0,472,473,3,262,128,0,473,474,3,
288,141,0,474,475,3,300,147,0,475,476,3,278,136,0,476,11,1,0,0,0,477,
478,3,262,128,0,478,479,3,288,141,0,479,480,3,310,152,0,480,13,1,0,0,
0,481,482,3,262,128,0,482,483,3,296,145,0,483,484,3,296,145,0,484,485,
3,262,128,0,485,486,3,310,152,0,486,15,1,0,0,0,487,488,3,262,128,0,488,
489,3,298,146,0,489,17,1,0,0,0,490,491,3,262,128,0,491,492,3,298,146,
0,492,493,3,266,130,0,493,505,1,0,0,0,494,495,3,262,128,0,495,496,3,298,
146,0,496,497,3,266,130,0,497,498,3,270,132,0,498,499,3,288,141,0,499,
500,3,268,131,0,500,501,3,278,136,0,501,502,3,288,141,0,502,503,3,274,
134,0,503,505,1,0,0,0,504,490,1,0,0,0,504,494,1,0,0,0,505,19,1,0,0,0,
506,507,3,262,128,0,507,508,3,298,146,0,508,509,3,290,142,0,509,510,3,
272,133,0,510,21,1,0,0,0,511,512,3,264,129,0,512,513,3,270,132,0,513,
514,3,300,147,0,514,515,3,306,150,0,515,516,3,270,132,0,516,517,3,270,
132,0,517,518,3,288,141,0,518,23,1,0,0,0,519,520,3,264,129,0,520,521,
3,290,142,0,521,522,3,300,147,0,522,523,3,276,135,0,523,25,1,0,0,0,524,
525,3,264,129,0,525,526,3,310,152,0,526,27,1,0,0,0,527,528,3,266,130,
0,528,529,3,262,128,0,529,530,3,298,146,0,530,531,3,270,132,0,531,29,
1,0,0,0,532,533,3,266,130,0,533,534,3,262,128,0,534,535,3,298,146,0,535,
536,3,300,147,0,536,31,1,0,0,0,537,538,3,266,130,0,538,539,3,262,128,
0,539,540,3,300,147,0,540,541,3,266,130,0,541,542,3,276,135,0,542,33,
1,0,0,0,543,544,3,266,130,0,544,545,3,290,142,0,545,546,3,276,135,0,546,
547,3,290,142,0,547,548,3,296,145,0,548,549,3,300,147,0,549,35,1,0,0,
0,550,551,3,266,130,0,551,552,3,290,142,0,552,553,3,284,139,0,553,554,
3,284,139,0,554,555,3,262,128,0,555,556,3,300,147,0,556,557,3,270,132,
0,557,37,1,0,0,0,558,559,3,266,130,0,559,560,3,290,142,0,560,561,3,284,
139,0,561,562,3,302,148,0,562,563,3,286,140,0,563,564,3,288,141,0,564,
565,3,298,146,0,565,39,1,0,0,0,566,567,3,266,130,0,567,568,3,296,145,
0,568,569,3,290,142,0,569,570,3,298,146,0,570,571,3,298,146,0,571,41,
1,0,0,0,572,573,3,266,130,0,573,574,3,302,148,0,574,575,3,264,129,0,575,
576,3,270,132,0,576,43,1,0,0,0,577,578,3,266,130,0,578,579,3,302,148,
0,579,580,3,296,145,0,580,581,3,296,145,0,581,582,3,270,132,0,582,583,
3,288,141,0,583,584,3,300,147,0,584,45,1,0,0,0,585,586,3,268,131,0,586,
587,3,262,128,0,587,588,3,300,147,0,588,589,3,270,132,0,589,47,1,0,0,
0,590,591,3,268,131,0,591,592,3,262,128,0,592,593,3,310,152,0,593,49,
1,0,0,0,594,595,3,268,131,0,595,596,3,270,132,0,596,597,3,298,146,0,597,
598,3,266,130,0,598,51,1,0,0,0,599,600,3,268,131,0,600,601,3,270,132,
0,601,602,3,298,146,0,602,603,3,266,130,0,603,604,3,270,132,0,604,605,
3,288,141,0,605,606,3,268,131,0,606,607,3,278,136,0,607,608,3,288,141,
0,608,609,3,274,134,0,609,53,1,0,0,0,610,611,3,268,131,0,611,612,3,278,
136,0,612,613,3,298,146,0,613,614,3,300,147,0,614,615,3,278,136,0,615,
616,3,288,141,0,616,617,3,266,130,0,617,618,3,300,147,0,618,55,1,0,0,
0,619,620,3,270,132,0,620,621,3,284,139,0,621,622,3,298,146,0,622,623,
3,270,132,0,623,57,1,0,0,0,624,625,3,270,132,0,625,626,3,288,141,0,626,
627,3,268,131,0,627,59,1,0,0,0,628,629,3,270,132,0,629,630,3,308,151,
0,630,631,3,266,130,0,631,632,3,270,132,0,632,633,3,292,143,0,633,634,
3,300,147,0,634,61,1,0,0,0,635,636,3,270,132,0,636,637,3,308,151,0,637,
638,3,266,130,0,638,639,3,284,139,0,639,640,3,302,148,0,640,641,3,268,
131,0,641,642,3,270,132,0,642,63,1,0,0,0,643,644,3,270,132,0,644,645,
3,308,151,0,645,646,3,300,147,0,646,647,3,296,145,0,647,648,3,262,128,
0,648,649,3,266,130,0,649,650,3,300,147,0,650,65,1,0,0,0,651,652,3,272,
133,0,652,653,3,278,136,0,653,654,3,288,141,0,654,655,3,262,128,0,655,
656,3,284,139,0,656,67,1,0,0,0,657,658,3,272,133,0,658,659,3,278,136,
0,659,660,3,288,141,0,660,661,3,262,128,0,661,662,3,284,139,0,662,663,
3,284,139,0,663,664,3,310,152,0,664,69,1,0,0,0,665,666,3,272,133,0,666,
667,3,278,136,0,667,668,3,296,145,0,668,669,3,298,146,0,669,670,3,300,
147,0,670,71,1,0,0,0,671,672,3,272,133,0,672,673,3,288,141,0,673,73,1,
0,0,0,674,675,3,272,133,0,675,676,3,290,142,0,676,677,3,284,139,0,677,
678,3,284,139,0,678,679,3,290,142,0,679,680,3,306,150,0,680,681,3,278,
136,0,681,682,3,288,141,0,682,683,3,274,134,0,683,75,1,0,0,0,684,685,
3,272,133,0,685,686,3,290,142,0,686,687,3,296,145,0,687,77,1,0,0,0,688,
689,3,272,133,0,689,690,3,296,145,0,690,691,3,290,142,0,691,692,3,286,
140,0,692,79,1,0,0,0,693,694,3,272,133,0,694,695,3,302,148,0,695,696,
3,284,139,0,696,697,3,284,139,0,697,81,1,0,0,0,698,699,3,272,133,0,699,
700,3,302,148,0,700,701,3,288,141,0,701,83,1,0,0,0,702,703,3,274,134,
0,703,704,3,296,145,0,704,705,3,290,142,0,705,706,3,302,148,0,706,707,
3,292,143,0,707,85,1,0,0,0,708,709,3,274,134,0,709,710,3,296,145,0,710,
711,3,290,142,0,711,712,3,302,148,0,712,713,3,292,143,0,713,714,3,278,
136,0,714,715,3,288,141,0,715,716,3,274,134,0,716,87,1,0,0,0,717,718,
3,276,135,0,718,719,3,262,128,0,719,720,3,304,149,0,720,721,3,278,136,
0,721,722,3,288,141,0,722,723,3,274,134,0,723,89,1,0,0,0,724,725,3,276,
135,0,725,726,3,290,142,0,726,727,3,302,148,0,727,728,3,296,145,0,728,
91,1,0,0,0,729,730,3,278,136,0,730,731,3,268,131,0,731,93,1,0,0,0,732,
733,3,278,136,0,733,734,3,272,133,0,734,95,1,0,0,0,735,736,3,278,136,
0,736,737,3,284,139,0,737,738,3,278,136,0,738,739,3,282,138,0,739,740,
3,270,132,0,740,97,1,0,0,0,741,742,3,278,136,0,742,743,3,288,141,0,743,
99,1,0,0,0,744,745,3,278,136,0,745,746,3,288,141,0,746,747,3,272,133,
0,747,758,1,0,0,0,748,749,3,278,136,0,749,750,3,288,141,0,750,751,3,272,
133,0,751,752,3,278,136,0,752,753,3,288,141,0,753,754,3,278,136,0,754,
755,3,300,147,0,755,756,3,310,152,0,756,758,1,0,0,0,757,744,1,0,0,0,757,
748,1,0,0,0,758,101,1,0,0,0,759,760,3,278,136,0,760,761,3,288,141,0,761,
762,3,288,141,0,762,763,3,270,132,0,763,764,3,296,145,0,764,103,1,0,0,
0,765,766,3,278,136,0,766,767,3,288,141,0,767,768,3,300,147,0,768,769,
3,270,132,0,769,770,3,296,145,0,770,771,3,298,146,0,771,772,3,270,132,
0,772,773,3,266,130,0,773,774,3,300,147,0,774,105,1,0,0,0,775,776,3,278,
136,0,776,777,3,288,141,0,777,778,3,300,147,0,778,779,3,270,132,0,779,
780,3,296,145,0,780,781,3,304,149,0,781,782,3,262,128,0,782,783,3,284,
139,0,783,107,1,0,0,0,784,785,3,278,136,0,785,786,3,298,146,0,786,109,
1,0,0,0,787,788,3,280,137,0,788,789,3,290,142,0,789,790,3,278,136,0,790,
791,3,288,141,0,791,111,1,0,0,0,792,793,3,282,138,0,793,794,3,270,132,
0,794,795,3,310,152,0,795,113,1,0,0,0,796,797,3,284,139,0,797,798,3,262,
128,0,798,799,3,286,140,0,799,800,3,264,129,0,800,801,3,268,131,0,801,
802,3,262,128,0,802,115,1,0,0,0,803,804,3,284,139,0,804,805,3,262,128,
0,805,806,3,298,146,0,806,807,3,300,147,0,807,117,1,0,0,0,808,809,3,284,
139,0,809,810,3,270,132,0,810,811,3,262,128,0,811,812,3,268,131,0,812,
813,3,278,136,0,813,814,3,288,141,0,814,815,3,274,134,0,815,119,1,0,0,
0,816,817,3,284,139,0,817,818,3,270,132,0,818,819,3,272,133,0,819,820,
3,300,147,0,820,121,1,0,0,0,821,822,3,284,139,0,822,823,3,270,132,0,823,
824,3,300,147,0,824,123,1,0,0,0,825,826,3,284,139,0,826,827,3,278,136,
0,827,828,3,282,138,0,828,829,3,270,132,0,829,125,1,0,0,0,830,831,3,284,
139,0,831,832,3,278,136,0,832,833,3,286,140,0,833,834,3,278,136,0,834,
835,3,300,147,0,835,127,1,0,0,0,836,837,3,286,140,0,837,838,3,262,128,
0,838,839,3,300,147,0,839,840,3,270,132,0,840,841,3,296,145,0,841,842,
3,278,136,0,842,843,3,262,128,0,843,844,3,284,139,0,844,845,3,278,136,
0,845,846,3,312,153,0,846,847,3,270,132,0,847,848,3,268,131,0,848,129,
1,0,0,0,849,850,3,286,140,0,850,851,3,278,136,0,851,852,3,288,141,0,852,
853,3,302,148,0,853,854,3,300,147,0,854,855,3,270,132,0,855,131,1,0,0,
0,856,857,3,286,140,0,857,858,3,290,142,0,858,859,3,288,141,0,859,860,
3,300,147,0,860,861,3,276,135,0,861,133,1,0,0,0,862,863,3,288,141,0,863,
864,3,262,128,0,864,865,3,286,140,0,865,866,3,270,132,0,866,135,1,0,0,
0,867,868,3,288,141,0,868,869,3,262,128,0,869,870,3,288,141,0,870,137,
1,0,0,0,871,872,3,288,141,0,872,873,3,290,142,0,873,874,3,300,147,0,874,
139,1,0,0,0,875,876,3,288,141,0,876,877,3,302,148,0,877,878,3,284,139,
0,878,879,3,284,139,0,879,141,1,0,0,0,880,881,3,288,141,0,881,882,3,302,
148,0,882,883,3,284,139,0,883,884,3,284,139,0,884,885,3,298,146,0,885,
143,1,0,0,0,886,887,3,290,142,0,887,888,3,272,133,0,888,889,3,272,133,
0,889,890,3,298,146,0,890,891,3,270,132,0,891,892,3,300,147,0,892,145,
1,0,0,0,893,894,3,290,142,0,894,895,3,288,141,0,895,147,1,0,0,0,896,897,
3,290,142,0,897,898,3,296,145,0,898,149,1,0,0,0,899,900,3,290,142,0,900,
901,3,296,145,0,901,902,3,268,131,0,902,903,3,270,132,0,903,904,3,296,
145,0,904,151,1,0,0,0,905,906,3,290,142,0,906,907,3,302,148,0,907,908,
3,300,147,0,908,909,3,270,132,0,909,910,3,296,145,0,910,153,1,0,0,0,911,
912,3,290,142,0,912,913,3,304,149,0,913,914,3,270,132,0,914,915,3,296,
145,0,915,155,1,0,0,0,916,917,3,292,143,0,917,918,3,262,128,0,918,919,
3,296,145,0,919,920,3,300,147,0,920,921,3,278,136,0,921,922,3,300,147,
0,922,923,3,278,136,0,923,924,3,290,142,0,924,925,3,288,141,0,925,157,
1,0,0,0,926,927,3,292,143,0,927,928,3,278,136,0,928,929,3,304,149,0,929,
930,3,290,142,0,930,931,3,300,147,0,931,159,1,0,0,0,932,933,3,292,143,
0,933,934,3,296,145,0,934,935,3,270,132,0,935,936,3,266,130,0,936,937,
3,270,132,0,937,938,3,268,131,0,938,939,3,278,136,0,939,940,3,288,141,
0,940,941,3,274,134,0,941,161,1,0,0,0,942,943,3,292,143,0,943,944,3,296,
145,0,944,945,3,270,132,0,945,946,3,306,150,0,946,947,3,276,135,0,947,
948,3,270,132,0,948,949,3,296,145,0,949,950,3,270,132,0,950,163,1,0,0,
0,951,952,3,294,144,0,952,953,3,302,148,0,953,954,3,262,128,0,954,955,
3,284,139,0,955,956,3,278,136,0,956,957,3,272,133,0,957,958,3,310,152,
0,958,165,1,0,0,0,959,960,3,294,144,0,960,961,3,302,148,0,961,962,3,262,
128,0,962,963,3,296,145,0,963,964,3,300,147,0,964,965,3,270,132,0,965,
966,3,296,145,0,966,167,1,0,0,0,967,968,3,296,145,0,968,969,3,262,128,
0,969,970,3,288,141,0,970,971,3,274,134,0,971,972,3,270,132,0,972,169,
1,0,0,0,973,974,3,296,145,0,974,975,3,270,132,0,975,976,3,266,130,0,976,
977,3,302,148,0,977,978,3,296,145,0,978,979,3,298,146,0,979,980,3,278,
136,0,980,981,3,304,149,0,981,982,3,270,132,0,982,171,1,0,0,0,983,984,
3,296,145,0,984,985,3,270,132,0,985,986,3,292,143,0,986,987,3,284,139,
0,987,988,3,262,128,0,988,989,3,266,130,0,989,990,3,270,132,0,990,173,
1,0,0,0,991,992,3,296,145,0,992,993,3,270,132,0,993,994,3,300,147,0,994,
995,3,302,148,0,995,996,3,296,145,0,996,997,3,288,141,0,997,175,1,0,0,
0,998,999,3,296,145,0,999,1000,3,278,136,0,1000,1001,3,274,134,0,1001,
1002,3,276,135,0,1002,1003,3,300,147,0,1003,177,1,0,0,0,1004,1005,3,296,
145,0,1005,1006,3,290,142,0,1006,1007,3,284,139,0,1007,1008,3,284,139,
0,1008,1009,3,302,148,0,1009,1010,3,292,143,0,1010,179,1,0,0,0,1011,1012,
3,296,145,0,1012,1013,3,290,142,0,1013,1014,3,306,150,0,1014,181,1,0,
0,0,1015,1016,3,296,145,0,1016,1017,3,290,142,0,1017,1018,3,306,150,0,
1018,1019,3,298,146,0,1019,183,1,0,0,0,1020,1021,3,298,146,0,1021,1022,
3,262,128,0,1022,1023,3,286,140,0,1023,1024,3,292,143,0,1024,1025,3,284,
139,0,1025,1026,3,270,132,0,1026,185,1,0,0,0,1027,1028,3,298,146,0,1028,
1029,3,270,132,0,1029,1030,3,266,130,0,1030,1031,3,290,142,0,1031,1032,
3,288,141,0,1032,1033,3,268,131,0,1033,187,1,0,0,0,1034,1035,3,298,146,
0,1035,1036,3,270,132,0,1036,1037,3,284,139,0,1037,1038,3,270,132,0,1038,
1039,3,266,130,0,1039,1040,3,300,147,0,1040,189,1,0,0,0,1041,1042,3,298,
146,0,1042,1043,3,270,132,0,1043,1044,3,286,140,0,1044,1045,3,278,136,
0,1045,191,1,0,0,0,1046,1047,3,298,146,0,1047,1048,3,270,132,0,1048,1049,
3,300,147,0,1049,1050,3,298,146,0,1050,193,1,0,0,0,1051,1052,3,298,146,
0,1052,1053,3,270,132,0,1053,1054,3,300,147,0,1054,1055,3,300,147,0,1055,
1056,3,278,136,0,1056,1057,3,288,141,0,1057,1058,3,274,134,0,1058,1059,
3,298,146,0,1059,195,1,0,0,0,1060,1061,3,298,146,0,1061,1062,3,302,148,
0,1062,1063,3,264,129,0,1063,1064,3,298,146,0,1064,1065,3,300,147,0,1065,
1066,3,296,145,0,1066,1067,3,278,136,0,1067,1068,3,288,141,0,1068,1069,
3,274,134,0,1069,197,1,0,0,0,1070,1071,3,300,147,0,1071,1072,3,276,135,
0,1072,1073,3,270,132,0,1073,1074,3,288,141,0,1074,199,1,0,0,0,1075,1076,
3,300,147,0,1076,1077,3,276,135,0,1077,1078,3,296,145,0,1078,1079,3,290,
142,0,1079,1080,3,306,150,0,1080,201,1,0,0,0,1081,1082,3,300,147,0,1082,
1083,3,278,136,0,1083,1084,3,270,132,0,1084,1085,3,298,146,0,1085,203,
1,0,0,0,1086,1087,3,300,147,0,1087,1088,3,278,136,0,1088,1089,3,286,140,
0,1089,1090,3,270,132,0,1090,1091,3,298,146,0,1091,1092,3,300,147,0,1092,
1093,3,262,128,0,1093,1094,3,286,140,0,1094,1095,3,292,143,0,1095,205,
1,0,0,0,1096,1097,3,300,147,0,1097,1098,3,290,142,0,1098,207,1,0,0,0,
1099,1100,3,300,147,0,1100,1101,3,290,142,0,1101,1102,3,292,143,0,1102,
209,1,0,0,0,1103,1104,3,300,147,0,1104,1105,3,290,142,0,1105,1106,3,300,
147,0,1106,1107,3,262,128,0,1107,1108,3,284,139,0,1108,1109,3,298,146,
0,1109,211,1,0,0,0,1110,1111,3,300,147,0,1111,1112,3,296,145,0,1112,1113,
3,262,128,0,1113,1114,3,278,136,0,1114,1115,3,284,139,0,1115,1116,3,278,
136,0,1116,1117,3,288,141,0,1117,1118,3,274,134,0,1118,213,1,0,0,0,1119,
1120,3,300,147,0,1120,1121,3,296,145,0,1121,1122,3,278,136,0,1122,1123,
3,286,140,0,1123,215,1,0,0,0,1124,1125,3,300,147,0,1125,1126,3,296,145,
0,1126,1127,3,302,148,0,1127,1128,3,288,141,0,1128,1129,3,266,130,0,1129,
1130,3,262,128,0,1130,1131,3,300,147,0,1131,1132,3,270,132,0,1132,217,
1,0,0,0,1133,1134,3,300,147,0,1134,1135,3,296,145,0,1135,1136,3,310,152,
0,1136,219,1,0,0,0,1137,1138,3,300,147,0,1138,1139,3,296,145,0,1139,1140,
3,310,152,0,1140,1141,5,95,0,0,1141,1142,3,266,130,0,1142,1143,3,262,
128,0,1143,1144,3,298,146,0,1144,1145,3,300,147,0,1145,221,1,0,0,0,1146,
1147,3,302,148,0,1147,1148,3,288,141,0,1148,1149,3,264,129,0,1149,1150,
3,290,142,0,1150,1151,3,302,148,0,1151,1152,3,288,141,0,1152,1153,3,268,
131,0,1153,1154,3,270,132,0,1154,1155,3,268,131,0,1155,223,1,0,0,0,1156,
1157,3,302,148,0,1157,1158,3,288,141,0,1158,1159,3,278,136,0,1159,1160,
3,290,142,0,1160,1161,3,288,141,0,1161,225,1,0,0,0,1162,1163,3,302,148,
0,1163,1164,3,288,141,0,1164,1165,3,292,143,0,1165,1166,3,278,136,0,1166,
1167,3,304,149,0,1167,1168,3,290,142,0,1168,1169,3,300,147,0,1169,227,
1,0,0,0,1170,1171,3,302,148,0,1171,1172,3,298,146,0,1172,1173,3,278,136,
0,1173,1174,3,288,141,0,1174,1175,3,274,134,0,1175,229,1,0,0,0,1176,1177,
3,304,149,0,1177,1178,3,262,128,0,1178,1179,3,284,139,0,1179,1180,3,302,
148,0,1180,1181,3,270,132,0,1181,1182,3,298,146,0,1182,231,1,0,0,0,1183,
1184,3,306,150,0,1184,1185,3,270,132,0,1185,1186,3,270,132,0,1186,1187,
3,282,138,0,1187,233,1,0,0,0,1188,1189,3,306,150,0,1189,1190,3,276,135,
0,1190,1191,3,270,132,0,1191,1192,3,288,141,0,1192,235,1,0,0,0,1193,1194,
3,306,150,0,1194,1195,3,276,135,0,1195,1196,3,270,132,0,1196,1197,3,296,
145,0,1197,1198,3,270,132,0,1198,237,1,0,0,0,1199,1200,3,306,150,0,1200,
1201,3,276,135,0,1201,1202,3,278,136,0,1202,1203,3,284,139,0,1203,1204,
3,270,132,0,1204,239,1,0,0,0,1205,1206,3,306,150,0,1206,1207,3,278,136,
0,1207,1208,3,288,141,0,1208,1209,3,268,131,0,1209,1210,3,290,142,0,1210,
1211,3,306,150,0,1211,241,1,0,0,0,1212,1213,3,306,150,0,1213,1214,3,278,
136,0,1214,1215,3,300,147,0,1215,1216,3,276,135,0,1216,243,1,0,0,0,1217,
1218,3,306,150,0,1218,1219,3,278,136,0,1219,1220,3,300,147,0,1220,1221,
3,276,135,0,1221,1222,3,278,136,0,1222,1223,3,288,141,0,1223,245,1,0,
0,0,1224,1225,3,310,152,0,1225,1226,3,270,132,0,1226,1227,3,262,128,0,
1227,1228,3,296,145,0,1228,1235,1,0,0,0,1229,1230,3,310,152,0,1230,1231,
3,310,152,0,1231,1232,3,310,152,0,1232,1233,3,310,152,0,1233,1235,1,0,
0,0,1234,1224,1,0,0,0,1234,1229,1,0,0,0,1235,247,1,0,0,0,1236,1237,3,
328,161,0,1237,1238,3,264,129,0,1238,1264,1,0,0,0,1239,1240,3,328,161,
0,1240,1241,3,272,133,0,1241,1264,1,0,0,0,1242,1243,3,328,161,0,1243,
1244,3,296,145,0,1244,1264,1,0,0,0,1245,1246,3,328,161,0,1246,1247,3,
288,141,0,1247,1264,1,0,0,0,1248,1249,3,328,161,0,1249,1250,3,300,147,
0,1250,1264,1,0,0,0,1251,1252,3,328,161,0,1252,1253,5,48,0,0,1253,1264,
1,0,0,0,1254,1255,3,328,161,0,1255,1256,3,262,128,0,1256,1264,1,0,0,0,
1257,1258,3,328,161,0,1258,1259,3,304,149,0,1259,1264,1,0,0,0,1260,1261,
3,328,161,0,1261,1262,3,328,161,0,1262,1264,1,0,0,0,1263,1236,1,0,0,0,
1263,1239,1,0,0,0,1263,1242,1,0,0,0,1263,1245,1,0,0,0,1263,1248,1,0,0,
0,1263,1251,1,0,0,0,1263,1254,1,0,0,0,1263,1257,1,0,0,0,1263,1260,1,0,
0,0,1264,249,1,0,0,0,1265,1269,3,314,154,0,1266,1269,3,416,205,0,1267,
1269,3,342,168,0,1268,1265,1,0,0,0,1268,1266,1,0,0,0,1268,1267,1,0,0,
0,1269,1276,1,0,0,0,1270,1275,3,314,154,0,1271,1275,3,416,205,0,1272,
1275,3,318,156,0,1273,1275,3,342,168,0,1274,1270,1,0,0,0,1274,1271,1,
0,0,0,1274,1272,1,0,0,0,1274,1273,1,0,0,0,1275,1278,1,0,0,0,1276,1274,
1,0,0,0,1276,1277,1,0,0,0,1277,1312,1,0,0,0,1278,1276,1,0,0,0,1279,1290,
3,326,160,0,1280,1289,8,0,0,0,1281,1289,3,248,121,0,1282,1283,3,328,161,
0,1283,1284,3,398,196,0,1284,1289,1,0,0,0,1285,1286,3,326,160,0,1286,
1287,3,326,160,0,1287,1289,1,0,0,0,1288,1280,1,0,0,0,1288,1281,1,0,0,
0,1288,1282,1,0,0,0,1288,1285,1,0,0,0,1289,1292,1,0,0,0,1290,1288,1,0,
0,0,1290,1291,1,0,0,0,1291,1293,1,0,0,0,1292,1290,1,0,0,0,1293,1294,3,
326,160,0,1294,1312,1,0,0,0,1295,1306,3,392,193,0,1296,1305,8,1,0,0,1297,
1305,3,248,121,0,1298,1299,3,328,161,0,1299,1300,3,392,193,0,1300,1305,
1,0,0,0,1301,1302,3,392,193,0,1302,1303,3,392,193,0,1303,1305,1,0,0,0,
1304,1296,1,0,0,0,1304,1297,1,0,0,0,1304,1298,1,0,0,0,1304,1301,1,0,0,
0,1305,1308,1,0,0,0,1306,1304,1,0,0,0,1306,1307,1,0,0,0,1307,1309,1,0,
0,0,1308,1306,1,0,0,0,1309,1310,3,392,193,0,1310,1312,1,0,0,0,1311,1268,
1,0,0,0,1311,1279,1,0,0,0,1311,1295,1,0,0,0,1312,251,1,0,0,0,1313,1314,
3,258,126,0,1314,1318,3,344,169,0,1315,1317,3,320,157,0,1316,1315,1,0,
0,0,1317,1320,1,0,0,0,1318,1316,1,0,0,0,1318,1319,1,0,0,0,1319,1323,1,
0,0,0,1320,1318,1,0,0,0,1321,1324,3,292,143,0,1322,1324,3,270,132,0,1323,
1321,1,0,0,0,1323,1322,1,0,0,0,1324,1327,1,0,0,0,1325,1328,3,388,191,
0,1326,1328,3,340,167,0,1327,1325,1,0,0,0,1327,1326,1,0,0,0,1327,1328,
1,0,0,0,1328,1330,1,0,0,0,1329,1331,3,318,156,0,1330,1329,1,0,0,0,1331,
1332,1,0,0,0,1332,1330,1,0,0,0,1332,1333,1,0,0,0,1333,1390,1,0,0,0,1334,
1337,3,258,126,0,1335,1338,3,292,143,0,1336,1338,3,270,132,0,1337,1335,
1,0,0,0,1337,1336,1,0,0,0,1338,1341,1,0,0,0,1339,1342,3,388,191,0,1340,
1342,3,340,167,0,1341,1339,1,0,0,0,1341,1340,1,0,0,0,1341,1342,1,0,0,
0,1342,1344,1,0,0,0,1343,1345,3,318,156,0,1344,1343,1,0,0,0,1345,1346,
1,0,0,0,1346,1344,1,0,0,0,1346,1347,1,0,0,0,1347,1390,1,0,0,0,1348,1349,
3,256,125,0,1349,1353,3,344,169,0,1350,1352,3,318,156,0,1351,1350,1,0,
0,0,1352,1355,1,0,0,0,1353,1351,1,0,0,0,1353,1354,1,0,0,0,1354,1356,1,
0,0,0,1355,1353,1,0,0,0,1356,1359,3,270,132,0,1357,1360,3,388,191,0,1358,
1360,3,340,167,0,1359,1357,1,0,0,0,1359,1358,1,0,0,0,1359,1360,1,0,0,
0,1360,1362,1,0,0,0,1361,1363,3,318,156,0,1362,1361,1,0,0,0,1363,1364,
1,0,0,0,1364,1362,1,0,0,0,1364,1365,1,0,0,0,1365,1390,1,0,0,0,1366,1367,
3,344,169,0,1367,1368,3,256,125,0,1368,1371,3,270,132,0,1369,1372,3,388,
191,0,1370,1372,3,340,167,0,1371,1369,1,0,0,0,1371,1370,1,0,0,0,1371,
1372,1,0,0,0,1372,1374,1,0,0,0,1373,1375,3,318,156,0,1374,1373,1,0,0,
0,1375,1376,1,0,0,0,1376,1374,1,0,0,0,1376,1377,1,0,0,0,1377,1390,1,0,
0,0,1378,1379,3,256,125,0,1379,1382,3,270,132,0,1380,1383,3,388,191,0,
1381,1383,3,340,167,0,1382,1380,1,0,0,0,1382,1381,1,0,0,0,1382,1383,1,
0,0,0,1383,1385,1,0,0,0,1384,1386,3,318,156,0,1385,1384,1,0,0,0,1386,
1387,1,0,0,0,1387,1385,1,0,0,0,1387,1388,1,0,0,0,1388,1390,1,0,0,0,1389,
1313,1,0,0,0,1389,1334,1,0,0,0,1389,1348,1,0,0,0,1389,1366,1,0,0,0,1389,
1378,1,0,0,0,1390,253,1,0,0,0,1391,1393,5,48,0,0,1392,1394,3,316,155,
0,1393,1392,1,0,0,0,1394,1395,1,0,0,0,1395,1393,1,0,0,0,1395,1396,1,0,
0,0,1396,255,1,0,0,0,1397,1399,3,318,156,0,1398,1397,1,0,0,0,1399,1400,
1,0,0,0,1400,1398,1,0,0,0,1400,1401,1,0,0,0,1401,257,1,0,0,0,1402,1403,
5,48,0,0,1403,1405,3,308,151,0,1404,1406,3,320,157,0,1405,1404,1,0,0,
0,1406,1407,1,0,0,0,1407,1405,1,0,0,0,1407,1408,1,0,0,0,1408,259,1,0,
0,0,1409,1420,3,398,196,0,1410,1419,8,2,0,0,1411,1419,3,248,121,0,1412,
1413,3,328,161,0,1413,1414,3,398,196,0,1414,1419,1,0,0,0,1415,1416,3,
398,196,0,1416,1417,3,398,196,0,1417,1419,1,0,0,0,1418,1410,1,0,0,0,1418,
1411,1,0,0,0,1418,1412,1,0,0,0,1418,1415,1,0,0,0,1419,1422,1,0,0,0,1420,
1418,1,0,0,0,1420,1421,1,0,0,0,1421,1423,1,0,0,0,1422,1420,1,0,0,0,1423,
1424,3,398,196,0,1424,261,1,0,0,0,1425,1426,7,3,0,0,1426,263,1,0,0,0,
1427,1428,7,4,0,0,1428,265,1,0,0,0,1429,1430,7,5,0,0,1430,267,1,0,0,0,
1431,1432,7,6,0,0,1432,269,1,0,0,0,1433,1434,7,7,0,0,1434,271,1,0,0,0,
1435,1436,7,8,0,0,1436,273,1,0,0,0,1437,1438,7,9,0,0,1438,275,1,0,0,0,
1439,1440,7,10,0,0,1440,277,1,0,0,0,1441,1442,7,11,0,0,1442,279,1,0,0,
0,1443,1444,7,12,0,0,1444,281,1,0,0,0,1445,1446,7,13,0,0,1446,283,1,0,
0,0,1447,1448,7,14,0,0,1448,285,1,0,0,0,1449,1450,7,15,0,0,1450,287,1,
0,0,0,1451,1452,7,16,0,0,1452,289,1,0,0,0,1453,1454,7,17,0,0,1454,291,
1,0,0,0,1455,1456,7,18,0,0,1456,293,1,0,0,0,1457,1458,7,19,0,0,1458,295,
1,0,0,0,1459,1460,7,20,0,0,1460,297,1,0,0,0,1461,1462,7,21,0,0,1462,299,
1,0,0,0,1463,1464,7,22,0,0,1464,301,1,0,0,0,1465,1466,7,23,0,0,1466,303,
1,0,0,0,1467,1468,7,24,0,0,1468,305,1,0,0,0,1469,1470,7,25,0,0,1470,307,
1,0,0,0,1471,1472,7,26,0,0,1472,309,1,0,0,0,1473,1474,7,27,0,0,1474,311,
1,0,0,0,1475,1476,7,28,0,0,1476,313,1,0,0,0,1477,1478,7,29,0,0,1478,315,
1,0,0,0,1479,1480,7,30,0,0,1480,317,1,0,0,0,1481,1482,7,31,0,0,1482,319,
1,0,0,0,1483,1484,7,32,0,0,1484,321,1,0,0,0,1485,1486,5,45,0,0,1486,1487,
5,62,0,0,1487,323,1,0,0,0,1488,1489,5,42,0,0,1489,325,1,0,0,0,1490,1491,
5,96,0,0,1491,327,1,0,0,0,1492,1493,5,92,0,0,1493,329,1,0,0,0,1494,1495,
5,58,0,0,1495,1496,5,58,0,0,1496,331,1,0,0,0,1497,1498,5,58,0,0,1498,
1499,5,61,0,0,1499,333,1,0,0,0,1500,1501,5,58,0,0,1501,335,1,0,0,0,1502,
1503,5,44,0,0,1503,337,1,0,0,0,1504,1505,5,124,0,0,1505,1506,5,124,0,
0,1506,339,1,0,0,0,1507,1508,5,45,0,0,1508,341,1,0,0,0,1509,1510,5,36,
0,0,1510,343,1,0,0,0,1511,1512,5,46,0,0,1512,345,1,0,0,0,1513,1514,5,
61,0,0,1514,1515,5,61,0,0,1515,347,1,0,0,0,1516,1517,5,61,0,0,1517,349,
1,0,0,0,1518,1519,5,62,0,0,1519,1520,5,61,0,0,1520,351,1,0,0,0,1521,1522,
5,62,0,0,1522,353,1,0,0,0,1523,1524,5,35,0,0,1524,355,1,0,0,0,1525,1526,
5,126,0,0,1526,1527,5,42,0,0,1527,357,1,0,0,0,1528,1529,5,61,0,0,1529,
1530,5,126,0,0,1530,1531,5,42,0,0,1531,359,1,0,0,0,1532,1533,5,123,0,
0,1533,1534,1,0,0,0,1534,1535,6,177,0,0,1535,361,1,0,0,0,1536,1537,5,
91,0,0,1537,363,1,0,0,0,1538,1539,5,40,0,0,1539,365,1,0,0,0,1540,1541,
5,60,0,0,1541,1542,5,61,0,0,1542,367,1,0,0,0,1543,1544,5,60,0,0,1544,
1545,5,47,0,0,1545,1546,1,0,0,0,1546,1547,6,181,1,0,1547,1548,6,181,2,
0,1548,369,1,0,0,0,1549,1550,5,60,0,0,1550,1551,4,182,0,0,1551,1552,1,
0,0,0,1552,1553,6,182,3,0,1553,1554,6,182,4,0,1554,371,1,0,0,0,1555,1556,
5,60,0,0,1556,373,1,0,0,0,1557,1558,5,60,0,0,1558,1559,5,47,0,0,1559,
375,1,0,0,0,1560,1561,5,33,0,0,1561,1565,5,61,0,0,1562,1563,5,60,0,0,
1563,1565,5,62,0,0,1564,1560,1,0,0,0,1564,1562,1,0,0,0,1565,377,1,0,0,
0,1566,1567,5,33,0,0,1567,1568,5,126,0,0,1568,1569,5,42,0,0,1569,379,
1,0,0,0,1570,1571,5,33,0,0,1571,1572,5,126,0,0,1572,381,1,0,0,0,1573,
1574,5,63,0,0,1574,1575,5,46,0,0,1575,383,1,0,0,0,1576,1577,5,63,0,0,
1577,1578,5,63,0,0,1578,385,1,0,0,0,1579,1580,5,37,0,0,1580,387,1,0,0,
0,1581,1582,5,43,0,0,1582,389,1,0,0,0,1583,1584,5,63,0,0,1584,391,1,0,
0,0,1585,1586,5,34,0,0,1586,393,1,0,0,0,1587,1588,5,102,0,0,1588,1589,
5,39,0,0,1589,1590,1,0,0,0,1590,1591,6,194,5,0,1591,395,1,0,0,0,1592,
1593,5,70,0,0,1593,1594,5,39,0,0,1594,1595,1,0,0,0,1595,1596,6,195,6,
0,1596,397,1,0,0,0,1597,1598,5,39,0,0,1598,399,1,0,0,0,1599,1600,5,126,
0,0,1600,401,1,0,0,0,1601,1602,5,61,0,0,1602,1603,5,126,0,0,1603,403,
1,0,0,0,1604,1605,5,125,0,0,1605,1606,1,0,0,0,1606,1607,6,199,7,0,1607,
405,1,0,0,0,1608,1609,5,93,0,0,1609,407,1,0,0,0,1610,1611,5,41,0,0,1611,
409,1,0,0,0,1612,1613,5,59,0,0,1613,411,1,0,0,0,1614,1615,5,47,0,0,1615,
413,1,0,0,0,1616,1617,5,47,0,0,1617,1618,5,62,0,0,1618,415,1,0,0,0,1619,
1620,5,95,0,0,1620,417,1,0,0,0,1621,1622,5,47,0,0,1622,1623,5,42,0,0,
1623,1627,1,0,0,0,1624,1626,9,0,0,0,1625,1624,1,0,0,0,1626,1629,1,0,0,
0,1627,1628,1,0,0,0,1627,1625,1,0,0,0,1628,1630,1,0,0,0,1629,1627,1,0,
0,0,1630,1631,5,42,0,0,1631,1632,5,47,0,0,1632,1633,1,0,0,0,1633,1634,
6,206,8,0,1634,419,1,0,0,0,1635,1636,5,45,0,0,1636,1640,5,45,0,0,1637,
1638,5,47,0,0,1638,1640,5,47,0,0,1639,1635,1,0,0,0,1639,1637,1,0,0,0,
1640,1644,1,0,0,0,1641,1643,8,33,0,0,1642,1641,1,0,0,0,1643,1646,1,0,
0,0,1644,1642,1,0,0,0,1644,1645,1,0,0,0,1645,1648,1,0,0,0,1646,1644,1,
0,0,0,1647,1649,7,34,0,0,1648,1647,1,0,0,0,1649,1650,1,0,0,0,1650,1651,
6,207,8,0,1651,421,1,0,0,0,1652,1653,7,35,0,0,1653,1654,1,0,0,0,1654,
1655,6,208,9,0,1655,423,1,0,0,0,1656,1668,8,36,0,0,1657,1668,3,248,121,
0,1658,1659,3,328,161,0,1659,1660,3,398,196,0,1660,1668,1,0,0,0,1661,
1662,3,328,161,0,1662,1663,3,360,177,0,1663,1668,1,0,0,0,1664,1665,3,
398,196,0,1665,1666,3,398,196,0,1666,1668,1,0,0,0,1667,1656,1,0,0,0,1667,
1657,1,0,0,0,1667,1658,1,0,0,0,1667,1661,1,0,0,0,1667,1664,1,0,0,0,1668,
1669,1,0,0,0,1669,1667,1,0,0,0,1669,1670,1,0,0,0,1670,425,1,0,0,0,1671,
1672,3,360,177,0,1672,1673,1,0,0,0,1673,1674,6,210,0,0,1674,427,1,0,0,
0,1675,1676,3,398,196,0,1676,1677,1,0,0,0,1677,1678,6,211,10,0,1678,1679,
6,211,7,0,1679,429,1,0,0,0,1680,1686,8,37,0,0,1681,1686,3,248,121,0,1682,
1683,3,328,161,0,1683,1684,3,360,177,0,1684,1686,1,0,0,0,1685,1680,1,
0,0,0,1685,1681,1,0,0,0,1685,1682,1,0,0,0,1686,1687,1,0,0,0,1687,1685,
1,0,0,0,1687,1688,1,0,0,0,1688,431,1,0,0,0,1689,1690,3,360,177,0,1690,
1691,1,0,0,0,1691,1692,6,213,0,0,1692,433,1,0,0,0,1693,1694,5,47,0,0,
1694,1695,5,62,0,0,1695,1696,1,0,0,0,1696,1697,6,214,11,0,1697,1698,6,
214,7,0,1698,435,1,0,0,0,1699,1700,5,62,0,0,1700,1701,1,0,0,0,1701,1702,
6,215,12,0,1702,1703,6,215,7,0,1703,1704,6,215,13,0,1704,437,1,0,0,0,
1705,1709,7,38,0,0,1706,1708,7,39,0,0,1707,1706,1,0,0,0,1708,1711,1,0,
0,0,1709,1707,1,0,0,0,1709,1710,1,0,0,0,1710,1712,1,0,0,0,1711,1709,1,
0,0,0,1712,1713,6,216,14,0,1713,439,1,0,0,0,1714,1715,5,61,0,0,1715,1716,
1,0,0,0,1716,1717,6,217,15,0,1717,441,1,0,0,0,1718,1719,3,260,127,0,1719,
1720,1,0,0,0,1720,1721,6,218,16,0,1721,443,1,0,0,0,1722,1724,7,40,0,0,
1723,1722,1,0,0,0,1724,1725,1,0,0,0,1725,1723,1,0,0,0,1725,1726,1,0,0,
0,1726,1727,1,0,0,0,1727,1728,6,219,9,0,1728,445,1,0,0,0,1729,1730,5,
123,0,0,1730,1731,1,0,0,0,1731,1732,6,220,17,0,1732,1733,6,220,0,0,1733,
447,1,0,0,0,1734,1735,5,62,0,0,1735,1736,1,0,0,0,1736,1737,6,221,12,0,
1737,1738,6,221,7,0,1738,449,1,0,0,0,1739,1743,7,38,0,0,1740,1742,7,39,
0,0,1741,1740,1,0,0,0,1742,1745,1,0,0,0,1743,1741,1,0,0,0,1743,1744,1,
0,0,0,1744,1746,1,0,0,0,1745,1743,1,0,0,0,1746,1747,6,222,14,0,1747,451,
1,0,0,0,1748,1750,7,40,0,0,1749,1748,1,0,0,0,1750,1751,1,0,0,0,1751,1749,
1,0,0,0,1751,1752,1,0,0,0,1752,1753,1,0,0,0,1753,1754,6,223,9,0,1754,
453,1,0,0,0,1755,1757,8,41,0,0,1756,1755,1,0,0,0,1757,1758,1,0,0,0,1758,
1756,1,0,0,0,1758,1759,1,0,0,0,1759,455,1,0,0,0,1760,1761,5,123,0,0,1761,
1762,1,0,0,0,1762,1763,6,225,17,0,1763,1764,6,225,0,0,1764,457,1,0,0,
0,1765,1766,5,60,0,0,1766,1767,5,47,0,0,1767,1768,1,0,0,0,1768,1769,6,
226,1,0,1769,1770,6,226,7,0,1770,1771,6,226,2,0,1771,459,1,0,0,0,1772,
1773,5,60,0,0,1773,1774,1,0,0,0,1774,1775,6,227,3,0,1775,1776,6,227,4,
0,1776,461,1,0,0,0,1777,1779,7,40,0,0,1778,1777,1,0,0,0,1779,1780,1,0,
0,0,1780,1778,1,0,0,0,1780,1781,1,0,0,0,1781,1782,1,0,0,0,1782,1783,6,
228,9,0,1783,463,1,0,0,0,53,0,1,2,3,4,5,504,757,1234,1263,1268,1274,1276,
1288,1290,1304,1306,1311,1318,1323,1327,1332,1337,1341,1346,1353,1359,
1364,1371,1376,1382,1387,1389,1395,1400,1407,1418,1420,1564,1627,1639,
1644,1648,1667,1669,1685,1687,1709,1725,1743,1751,1758,1780,18,5,0,0,
7,153,0,5,4,0,7,152,0,5,3,0,5,1,0,5,2,0,4,0,0,6,0,0,0,1,0,7,165,0,7,173,
0,7,144,0,5,5,0,7,123,0,7,142,0,7,128,0,7,148,0
};
staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0]));
antlr4::atn::ATNDeserializer deserializer;
staticData->atn = deserializer.deserialize(staticData->serializedATN);
const size_t count = staticData->atn->getNumberOfDecisions();
staticData->decisionToDFA.reserve(count);
for (size_t i = 0; i < count; i++) {
staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i);
}
hogqllexerLexerStaticData = std::move(staticData);
}
}
HogQLLexer::HogQLLexer(CharStream *input) : Lexer(input) {
HogQLLexer::initialize();
_interpreter = new atn::LexerATNSimulator(this, *hogqllexerLexerStaticData->atn, hogqllexerLexerStaticData->decisionToDFA, hogqllexerLexerStaticData->sharedContextCache);
}
HogQLLexer::~HogQLLexer() {
delete _interpreter;
}
std::string HogQLLexer::getGrammarFileName() const {
return "HogQLLexer.g4";
}
const std::vector<std::string>& HogQLLexer::getRuleNames() const {
return hogqllexerLexerStaticData->ruleNames;
}
const std::vector<std::string>& HogQLLexer::getChannelNames() const {
return hogqllexerLexerStaticData->channelNames;
}
const std::vector<std::string>& HogQLLexer::getModeNames() const {
return hogqllexerLexerStaticData->modeNames;
}
const dfa::Vocabulary& HogQLLexer::getVocabulary() const {
return hogqllexerLexerStaticData->vocabulary;
}
antlr4::atn::SerializedATNView HogQLLexer::getSerializedATN() const {
return hogqllexerLexerStaticData->serializedATN;
}
const atn::ATN& HogQLLexer::getATN() const {
return *hogqllexerLexerStaticData->atn;
}
bool HogQLLexer::sempred(RuleContext *context, size_t ruleIndex, size_t predicateIndex) {
switch (ruleIndex) {
case 182: return TAG_LT_OPENSempred(antlrcpp::downCast<antlr4::RuleContext *>(context), predicateIndex);
default:
break;
}
return true;
}
bool HogQLLexer::TAG_LT_OPENSempred(antlr4::RuleContext *_localctx, size_t predicateIndex) {
switch (predicateIndex) {
case 0: return isOpeningTag();
default:
break;
}
return true;
}
void HogQLLexer::initialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
hogqllexerLexerInitialize();
#else
::antlr4::internal::call_once(hogqllexerLexerOnceFlag, hogqllexerLexerInitialize);
#endif
}