Source code for braket.default_simulator.openqasm.parser.generated.qasm3Lexer
# Generated from qasm3Lexer.g4 by ANTLR 4.13.2
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
from typing import TextIO
else:
from typing.io import TextIO
[docs]
def serializedATN():
return [
4,
0,
101,
892,
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,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
0,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
1,
2,
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,
4,
1,
5,
1,
5,
1,
5,
1,
5,
1,
5,
1,
6,
1,
6,
1,
6,
1,
6,
1,
6,
1,
6,
1,
6,
1,
7,
1,
7,
1,
7,
1,
7,
1,
8,
1,
8,
1,
8,
1,
8,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
9,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
1,
10,
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,
14,
1,
14,
1,
14,
1,
14,
1,
14,
1,
14,
1,
14,
1,
15,
1,
15,
1,
15,
1,
15,
1,
16,
1,
16,
1,
16,
1,
16,
1,
16,
1,
16,
1,
17,
1,
17,
1,
17,
1,
18,
3,
18,
330,
8,
18,
1,
18,
1,
18,
1,
18,
1,
18,
1,
18,
1,
18,
1,
18,
1,
18,
1,
18,
1,
19,
1,
19,
1,
19,
1,
19,
1,
19,
1,
20,
1,
20,
1,
20,
1,
20,
1,
20,
1,
20,
1,
21,
1,
21,
1,
21,
1,
21,
1,
21,
1,
21,
1,
21,
1,
22,
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,
24,
1,
24,
1,
24,
1,
24,
1,
24,
1,
25,
1,
25,
1,
25,
1,
25,
1,
25,
1,
25,
1,
26,
1,
26,
1,
26,
1,
26,
1,
26,
1,
27,
1,
27,
1,
27,
1,
27,
1,
27,
1,
28,
1,
28,
1,
28,
1,
28,
1,
29,
1,
29,
1,
29,
1,
29,
1,
30,
1,
30,
1,
30,
1,
30,
1,
30,
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,
33,
1,
33,
1,
33,
1,
33,
1,
33,
1,
34,
1,
34,
1,
34,
1,
34,
1,
34,
1,
34,
1,
35,
1,
35,
1,
35,
1,
35,
1,
35,
1,
35,
1,
35,
1,
35,
1,
35,
1,
36,
1,
36,
1,
36,
1,
36,
1,
36,
1,
36,
1,
36,
1,
36,
1,
37,
1,
37,
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,
40,
1,
40,
1,
40,
1,
40,
1,
40,
1,
41,
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,
43,
1,
43,
1,
43,
1,
43,
1,
43,
1,
43,
1,
43,
1,
43,
1,
44,
1,
44,
1,
44,
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,
46,
1,
46,
1,
46,
1,
46,
1,
46,
1,
47,
1,
47,
1,
47,
1,
47,
1,
47,
1,
47,
1,
47,
1,
47,
1,
48,
1,
48,
1,
48,
1,
48,
1,
48,
1,
48,
1,
48,
1,
48,
1,
48,
3,
48,
531,
8,
48,
1,
49,
1,
49,
1,
50,
1,
50,
1,
51,
1,
51,
1,
52,
1,
52,
1,
53,
1,
53,
1,
54,
1,
54,
1,
55,
1,
55,
1,
56,
1,
56,
1,
57,
1,
57,
1,
58,
1,
58,
1,
59,
1,
59,
1,
60,
1,
60,
1,
60,
1,
61,
1,
61,
1,
62,
1,
62,
1,
62,
1,
63,
1,
63,
1,
64,
1,
64,
1,
65,
1,
65,
1,
65,
1,
66,
1,
66,
1,
67,
1,
67,
1,
68,
1,
68,
1,
69,
1,
69,
1,
69,
1,
70,
1,
70,
1,
71,
1,
71,
1,
71,
1,
72,
1,
72,
1,
73,
1,
73,
1,
74,
1,
74,
1,
75,
1,
75,
1,
76,
1,
76,
1,
76,
1,
76,
3,
76,
596,
8,
76,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
1,
77,
3,
77,
625,
8,
77,
1,
78,
1,
78,
1,
78,
1,
78,
1,
78,
3,
78,
632,
8,
78,
1,
79,
1,
79,
1,
79,
1,
79,
3,
79,
638,
8,
79,
1,
80,
1,
80,
1,
80,
1,
81,
1,
81,
3,
81,
645,
8,
81,
1,
81,
5,
81,
648,
8,
81,
10,
81,
12,
81,
651,
9,
81,
1,
81,
1,
81,
1,
82,
1,
82,
1,
82,
1,
82,
3,
82,
659,
8,
82,
1,
82,
1,
82,
3,
82,
663,
8,
82,
5,
82,
665,
8,
82,
10,
82,
12,
82,
668,
9,
82,
1,
82,
1,
82,
1,
83,
1,
83,
1,
83,
1,
83,
1,
83,
3,
83,
677,
8,
83,
5,
83,
679,
8,
83,
10,
83,
12,
83,
682,
9,
83,
1,
83,
1,
83,
1,
84,
1,
84,
3,
84,
688,
8,
84,
5,
84,
690,
8,
84,
10,
84,
12,
84,
693,
9,
84,
1,
84,
1,
84,
1,
85,
1,
85,
1,
85,
1,
85,
3,
85,
701,
8,
85,
1,
85,
1,
85,
3,
85,
705,
8,
85,
5,
85,
707,
8,
85,
10,
85,
12,
85,
710,
9,
85,
1,
85,
1,
85,
1,
86,
1,
86,
1,
87,
1,
87,
1,
88,
1,
88,
1,
88,
3,
88,
721,
8,
88,
1,
89,
1,
89,
3,
89,
725,
8,
89,
1,
90,
1,
90,
5,
90,
729,
8,
90,
10,
90,
12,
90,
732,
9,
90,
1,
91,
1,
91,
4,
91,
736,
8,
91,
11,
91,
12,
91,
737,
1,
92,
1,
92,
1,
92,
3,
92,
743,
8,
92,
1,
92,
1,
92,
1,
93,
1,
93,
1,
93,
1,
93,
1,
93,
1,
93,
3,
93,
753,
8,
93,
1,
93,
1,
93,
1,
93,
3,
93,
758,
8,
93,
1,
93,
3,
93,
761,
8,
93,
3,
93,
763,
8,
93,
1,
94,
1,
94,
1,
94,
1,
94,
1,
94,
1,
94,
1,
94,
1,
94,
1,
94,
1,
94,
1,
94,
3,
94,
776,
8,
94,
1,
95,
1,
95,
3,
95,
780,
8,
95,
1,
95,
1,
95,
1,
96,
1,
96,
1,
96,
3,
96,
787,
8,
96,
5,
96,
789,
8,
96,
10,
96,
12,
96,
792,
9,
96,
1,
96,
1,
96,
1,
96,
1,
97,
1,
97,
4,
97,
799,
8,
97,
11,
97,
12,
97,
800,
1,
97,
1,
97,
1,
97,
4,
97,
806,
8,
97,
11,
97,
12,
97,
807,
1,
97,
3,
97,
811,
8,
97,
1,
98,
4,
98,
814,
8,
98,
11,
98,
12,
98,
815,
1,
98,
1,
98,
1,
99,
4,
99,
821,
8,
99,
11,
99,
12,
99,
822,
1,
99,
1,
99,
1,
100,
1,
100,
1,
100,
1,
100,
5,
100,
831,
8,
100,
10,
100,
12,
100,
834,
9,
100,
1,
100,
1,
100,
1,
101,
1,
101,
1,
101,
1,
101,
5,
101,
842,
8,
101,
10,
101,
12,
101,
845,
9,
101,
1,
101,
1,
101,
1,
101,
1,
101,
1,
101,
1,
102,
4,
102,
853,
8,
102,
11,
102,
12,
102,
854,
1,
102,
1,
102,
1,
103,
4,
103,
860,
8,
103,
11,
103,
12,
103,
861,
1,
103,
1,
103,
4,
103,
866,
8,
103,
11,
103,
12,
103,
867,
3,
103,
870,
8,
103,
1,
103,
1,
103,
1,
104,
4,
104,
875,
8,
104,
11,
104,
12,
104,
876,
1,
104,
1,
104,
1,
105,
1,
105,
1,
105,
1,
105,
1,
105,
1,
106,
1,
106,
5,
106,
888,
8,
106,
10,
106,
12,
106,
891,
9,
106,
3,
800,
807,
843,
0,
107,
3,
1,
5,
2,
7,
3,
9,
4,
11,
5,
13,
6,
15,
7,
17,
8,
19,
9,
21,
10,
23,
11,
25,
12,
27,
13,
29,
14,
31,
15,
33,
16,
35,
17,
37,
18,
39,
19,
41,
20,
43,
21,
45,
22,
47,
23,
49,
24,
51,
25,
53,
26,
55,
27,
57,
28,
59,
29,
61,
30,
63,
31,
65,
32,
67,
33,
69,
34,
71,
35,
73,
36,
75,
37,
77,
38,
79,
39,
81,
40,
83,
41,
85,
42,
87,
43,
89,
44,
91,
45,
93,
46,
95,
47,
97,
48,
99,
49,
101,
50,
103,
51,
105,
52,
107,
53,
109,
54,
111,
55,
113,
56,
115,
57,
117,
58,
119,
59,
121,
60,
123,
61,
125,
62,
127,
63,
129,
64,
131,
65,
133,
66,
135,
67,
137,
68,
139,
69,
141,
70,
143,
71,
145,
72,
147,
73,
149,
74,
151,
75,
153,
76,
155,
77,
157,
78,
159,
79,
161,
80,
163,
81,
165,
82,
167,
83,
169,
84,
171,
85,
173,
86,
175,
0,
177,
0,
179,
0,
181,
0,
183,
87,
185,
88,
187,
0,
189,
89,
191,
0,
193,
90,
195,
91,
197,
92,
199,
93,
201,
94,
203,
95,
205,
96,
207,
97,
209,
98,
211,
99,
213,
100,
215,
101,
3,
0,
1,
2,
13,
2,
0,
60,
60,
62,
62,
1,
0,
48,
49,
1,
0,
48,
55,
1,
0,
48,
57,
3,
0,
48,
57,
65,
70,
97,
102,
662,
0,
65,
90,
97,
122,
170,
170,
181,
181,
186,
186,
192,
214,
216,
246,
248,
705,
710,
721,
736,
740,
748,
748,
750,
750,
880,
884,
886,
887,
890,
893,
895,
895,
902,
902,
904,
906,
908,
908,
910,
929,
931,
1013,
1015,
1153,
1162,
1327,
1329,
1366,
1369,
1369,
1376,
1416,
1488,
1514,
1519,
1522,
1568,
1610,
1646,
1647,
1649,
1747,
1749,
1749,
1765,
1766,
1774,
1775,
1786,
1788,
1791,
1791,
1808,
1808,
1810,
1839,
1869,
1957,
1969,
1969,
1994,
2026,
2036,
2037,
2042,
2042,
2048,
2069,
2074,
2074,
2084,
2084,
2088,
2088,
2112,
2136,
2144,
2154,
2160,
2183,
2185,
2190,
2208,
2249,
2308,
2361,
2365,
2365,
2384,
2384,
2392,
2401,
2417,
2432,
2437,
2444,
2447,
2448,
2451,
2472,
2474,
2480,
2482,
2482,
2486,
2489,
2493,
2493,
2510,
2510,
2524,
2525,
2527,
2529,
2544,
2545,
2556,
2556,
2565,
2570,
2575,
2576,
2579,
2600,
2602,
2608,
2610,
2611,
2613,
2614,
2616,
2617,
2649,
2652,
2654,
2654,
2674,
2676,
2693,
2701,
2703,
2705,
2707,
2728,
2730,
2736,
2738,
2739,
2741,
2745,
2749,
2749,
2768,
2768,
2784,
2785,
2809,
2809,
2821,
2828,
2831,
2832,
2835,
2856,
2858,
2864,
2866,
2867,
2869,
2873,
2877,
2877,
2908,
2909,
2911,
2913,
2929,
2929,
2947,
2947,
2949,
2954,
2958,
2960,
2962,
2965,
2969,
2970,
2972,
2972,
2974,
2975,
2979,
2980,
2984,
2986,
2990,
3001,
3024,
3024,
3077,
3084,
3086,
3088,
3090,
3112,
3114,
3129,
3133,
3133,
3160,
3162,
3165,
3165,
3168,
3169,
3200,
3200,
3205,
3212,
3214,
3216,
3218,
3240,
3242,
3251,
3253,
3257,
3261,
3261,
3293,
3294,
3296,
3297,
3313,
3314,
3332,
3340,
3342,
3344,
3346,
3386,
3389,
3389,
3406,
3406,
3412,
3414,
3423,
3425,
3450,
3455,
3461,
3478,
3482,
3505,
3507,
3515,
3517,
3517,
3520,
3526,
3585,
3632,
3634,
3635,
3648,
3654,
3713,
3714,
3716,
3716,
3718,
3722,
3724,
3747,
3749,
3749,
3751,
3760,
3762,
3763,
3773,
3773,
3776,
3780,
3782,
3782,
3804,
3807,
3840,
3840,
3904,
3911,
3913,
3948,
3976,
3980,
4096,
4138,
4159,
4159,
4176,
4181,
4186,
4189,
4193,
4193,
4197,
4198,
4206,
4208,
4213,
4225,
4238,
4238,
4256,
4293,
4295,
4295,
4301,
4301,
4304,
4346,
4348,
4680,
4682,
4685,
4688,
4694,
4696,
4696,
4698,
4701,
4704,
4744,
4746,
4749,
4752,
4784,
4786,
4789,
4792,
4798,
4800,
4800,
4802,
4805,
4808,
4822,
4824,
4880,
4882,
4885,
4888,
4954,
4992,
5007,
5024,
5109,
5112,
5117,
5121,
5740,
5743,
5759,
5761,
5786,
5792,
5866,
5870,
5880,
5888,
5905,
5919,
5937,
5952,
5969,
5984,
5996,
5998,
6000,
6016,
6067,
6103,
6103,
6108,
6108,
6176,
6264,
6272,
6276,
6279,
6312,
6314,
6314,
6320,
6389,
6400,
6430,
6480,
6509,
6512,
6516,
6528,
6571,
6576,
6601,
6656,
6678,
6688,
6740,
6823,
6823,
6917,
6963,
6981,
6988,
7043,
7072,
7086,
7087,
7098,
7141,
7168,
7203,
7245,
7247,
7258,
7293,
7296,
7304,
7312,
7354,
7357,
7359,
7401,
7404,
7406,
7411,
7413,
7414,
7418,
7418,
7424,
7615,
7680,
7957,
7960,
7965,
7968,
8005,
8008,
8013,
8016,
8023,
8025,
8025,
8027,
8027,
8029,
8029,
8031,
8061,
8064,
8116,
8118,
8124,
8126,
8126,
8130,
8132,
8134,
8140,
8144,
8147,
8150,
8155,
8160,
8172,
8178,
8180,
8182,
8188,
8305,
8305,
8319,
8319,
8336,
8348,
8450,
8450,
8455,
8455,
8458,
8467,
8469,
8469,
8473,
8477,
8484,
8484,
8486,
8486,
8488,
8488,
8490,
8493,
8495,
8505,
8508,
8511,
8517,
8521,
8526,
8526,
8544,
8584,
11264,
11492,
11499,
11502,
11506,
11507,
11520,
11557,
11559,
11559,
11565,
11565,
11568,
11623,
11631,
11631,
11648,
11670,
11680,
11686,
11688,
11694,
11696,
11702,
11704,
11710,
11712,
11718,
11720,
11726,
11728,
11734,
11736,
11742,
11823,
11823,
12293,
12295,
12321,
12329,
12337,
12341,
12344,
12348,
12353,
12438,
12445,
12447,
12449,
12538,
12540,
12543,
12549,
12591,
12593,
12686,
12704,
12735,
12784,
12799,
13312,
19903,
19968,
42124,
42192,
42237,
42240,
42508,
42512,
42527,
42538,
42539,
42560,
42606,
42623,
42653,
42656,
42735,
42775,
42783,
42786,
42888,
42891,
42954,
42960,
42961,
42963,
42963,
42965,
42969,
42994,
43009,
43011,
43013,
43015,
43018,
43020,
43042,
43072,
43123,
43138,
43187,
43250,
43255,
43259,
43259,
43261,
43262,
43274,
43301,
43312,
43334,
43360,
43388,
43396,
43442,
43471,
43471,
43488,
43492,
43494,
43503,
43514,
43518,
43520,
43560,
43584,
43586,
43588,
43595,
43616,
43638,
43642,
43642,
43646,
43695,
43697,
43697,
43701,
43702,
43705,
43709,
43712,
43712,
43714,
43714,
43739,
43741,
43744,
43754,
43762,
43764,
43777,
43782,
43785,
43790,
43793,
43798,
43808,
43814,
43816,
43822,
43824,
43866,
43868,
43881,
43888,
44002,
44032,
55203,
55216,
55238,
55243,
55291,
63744,
64109,
64112,
64217,
64256,
64262,
64275,
64279,
64285,
64285,
64287,
64296,
64298,
64310,
64312,
64316,
64318,
64318,
64320,
64321,
64323,
64324,
64326,
64433,
64467,
64829,
64848,
64911,
64914,
64967,
65008,
65019,
65136,
65140,
65142,
65276,
65313,
65338,
65345,
65370,
65382,
65470,
65474,
65479,
65482,
65487,
65490,
65495,
65498,
65500,
65536,
65547,
65549,
65574,
65576,
65594,
65596,
65597,
65599,
65613,
65616,
65629,
65664,
65786,
65856,
65908,
66176,
66204,
66208,
66256,
66304,
66335,
66349,
66378,
66384,
66421,
66432,
66461,
66464,
66499,
66504,
66511,
66513,
66517,
66560,
66717,
66736,
66771,
66776,
66811,
66816,
66855,
66864,
66915,
66928,
66938,
66940,
66954,
66956,
66962,
66964,
66965,
66967,
66977,
66979,
66993,
66995,
67001,
67003,
67004,
67072,
67382,
67392,
67413,
67424,
67431,
67456,
67461,
67463,
67504,
67506,
67514,
67584,
67589,
67592,
67592,
67594,
67637,
67639,
67640,
67644,
67644,
67647,
67669,
67680,
67702,
67712,
67742,
67808,
67826,
67828,
67829,
67840,
67861,
67872,
67897,
67968,
68023,
68030,
68031,
68096,
68096,
68112,
68115,
68117,
68119,
68121,
68149,
68192,
68220,
68224,
68252,
68288,
68295,
68297,
68324,
68352,
68405,
68416,
68437,
68448,
68466,
68480,
68497,
68608,
68680,
68736,
68786,
68800,
68850,
68864,
68899,
69248,
69289,
69296,
69297,
69376,
69404,
69415,
69415,
69424,
69445,
69488,
69505,
69552,
69572,
69600,
69622,
69635,
69687,
69745,
69746,
69749,
69749,
69763,
69807,
69840,
69864,
69891,
69926,
69956,
69956,
69959,
69959,
69968,
70002,
70006,
70006,
70019,
70066,
70081,
70084,
70106,
70106,
70108,
70108,
70144,
70161,
70163,
70187,
70207,
70208,
70272,
70278,
70280,
70280,
70282,
70285,
70287,
70301,
70303,
70312,
70320,
70366,
70405,
70412,
70415,
70416,
70419,
70440,
70442,
70448,
70450,
70451,
70453,
70457,
70461,
70461,
70480,
70480,
70493,
70497,
70656,
70708,
70727,
70730,
70751,
70753,
70784,
70831,
70852,
70853,
70855,
70855,
71040,
71086,
71128,
71131,
71168,
71215,
71236,
71236,
71296,
71338,
71352,
71352,
71424,
71450,
71488,
71494,
71680,
71723,
71840,
71903,
71935,
71942,
71945,
71945,
71948,
71955,
71957,
71958,
71960,
71983,
71999,
71999,
72001,
72001,
72096,
72103,
72106,
72144,
72161,
72161,
72163,
72163,
72192,
72192,
72203,
72242,
72250,
72250,
72272,
72272,
72284,
72329,
72349,
72349,
72368,
72440,
72704,
72712,
72714,
72750,
72768,
72768,
72818,
72847,
72960,
72966,
72968,
72969,
72971,
73008,
73030,
73030,
73056,
73061,
73063,
73064,
73066,
73097,
73112,
73112,
73440,
73458,
73474,
73474,
73476,
73488,
73490,
73523,
73648,
73648,
73728,
74649,
74752,
74862,
74880,
75075,
77712,
77808,
77824,
78895,
78913,
78918,
82944,
83526,
92160,
92728,
92736,
92766,
92784,
92862,
92880,
92909,
92928,
92975,
92992,
92995,
93027,
93047,
93053,
93071,
93760,
93823,
93952,
94026,
94032,
94032,
94099,
94111,
94176,
94177,
94179,
94179,
94208,
100343,
100352,
101589,
101632,
101640,
110576,
110579,
110581,
110587,
110589,
110590,
110592,
110882,
110898,
110898,
110928,
110930,
110933,
110933,
110948,
110951,
110960,
111355,
113664,
113770,
113776,
113788,
113792,
113800,
113808,
113817,
119808,
119892,
119894,
119964,
119966,
119967,
119970,
119970,
119973,
119974,
119977,
119980,
119982,
119993,
119995,
119995,
119997,
120003,
120005,
120069,
120071,
120074,
120077,
120084,
120086,
120092,
120094,
120121,
120123,
120126,
120128,
120132,
120134,
120134,
120138,
120144,
120146,
120485,
120488,
120512,
120514,
120538,
120540,
120570,
120572,
120596,
120598,
120628,
120630,
120654,
120656,
120686,
120688,
120712,
120714,
120744,
120746,
120770,
120772,
120779,
122624,
122654,
122661,
122666,
122928,
122989,
123136,
123180,
123191,
123197,
123214,
123214,
123536,
123565,
123584,
123627,
124112,
124139,
124896,
124902,
124904,
124907,
124909,
124910,
124912,
124926,
124928,
125124,
125184,
125251,
125259,
125259,
126464,
126467,
126469,
126495,
126497,
126498,
126500,
126500,
126503,
126503,
126505,
126514,
126516,
126519,
126521,
126521,
126523,
126523,
126530,
126530,
126535,
126535,
126537,
126537,
126539,
126539,
126541,
126543,
126545,
126546,
126548,
126548,
126551,
126551,
126553,
126553,
126555,
126555,
126557,
126557,
126559,
126559,
126561,
126562,
126564,
126564,
126567,
126570,
126572,
126578,
126580,
126583,
126585,
126588,
126590,
126590,
126592,
126601,
126603,
126619,
126625,
126627,
126629,
126633,
126635,
126651,
131072,
173791,
173824,
177977,
177984,
178205,
178208,
183969,
183984,
191456,
194560,
195101,
196608,
201546,
201552,
205743,
2,
0,
65,
90,
97,
122,
2,
0,
69,
69,
101,
101,
3,
0,
9,
10,
13,
13,
34,
34,
3,
0,
9,
10,
13,
13,
39,
39,
2,
0,
9,
9,
32,
32,
2,
0,
10,
10,
13,
13,
3,
0,
9,
10,
13,
13,
32,
32,
945,
0,
3,
1,
0,
0,
0,
0,
5,
1,
0,
0,
0,
0,
7,
1,
0,
0,
0,
0,
9,
1,
0,
0,
0,
0,
11,
1,
0,
0,
0,
0,
13,
1,
0,
0,
0,
0,
15,
1,
0,
0,
0,
0,
17,
1,
0,
0,
0,
0,
19,
1,
0,
0,
0,
0,
21,
1,
0,
0,
0,
0,
23,
1,
0,
0,
0,
0,
25,
1,
0,
0,
0,
0,
27,
1,
0,
0,
0,
0,
29,
1,
0,
0,
0,
0,
31,
1,
0,
0,
0,
0,
33,
1,
0,
0,
0,
0,
35,
1,
0,
0,
0,
0,
37,
1,
0,
0,
0,
0,
39,
1,
0,
0,
0,
0,
41,
1,
0,
0,
0,
0,
43,
1,
0,
0,
0,
0,
45,
1,
0,
0,
0,
0,
47,
1,
0,
0,
0,
0,
49,
1,
0,
0,
0,
0,
51,
1,
0,
0,
0,
0,
53,
1,
0,
0,
0,
0,
55,
1,
0,
0,
0,
0,
57,
1,
0,
0,
0,
0,
59,
1,
0,
0,
0,
0,
61,
1,
0,
0,
0,
0,
63,
1,
0,
0,
0,
0,
65,
1,
0,
0,
0,
0,
67,
1,
0,
0,
0,
0,
69,
1,
0,
0,
0,
0,
71,
1,
0,
0,
0,
0,
73,
1,
0,
0,
0,
0,
75,
1,
0,
0,
0,
0,
77,
1,
0,
0,
0,
0,
79,
1,
0,
0,
0,
0,
81,
1,
0,
0,
0,
0,
83,
1,
0,
0,
0,
0,
85,
1,
0,
0,
0,
0,
87,
1,
0,
0,
0,
0,
89,
1,
0,
0,
0,
0,
91,
1,
0,
0,
0,
0,
93,
1,
0,
0,
0,
0,
95,
1,
0,
0,
0,
0,
97,
1,
0,
0,
0,
0,
99,
1,
0,
0,
0,
0,
101,
1,
0,
0,
0,
0,
103,
1,
0,
0,
0,
0,
105,
1,
0,
0,
0,
0,
107,
1,
0,
0,
0,
0,
109,
1,
0,
0,
0,
0,
111,
1,
0,
0,
0,
0,
113,
1,
0,
0,
0,
0,
115,
1,
0,
0,
0,
0,
117,
1,
0,
0,
0,
0,
119,
1,
0,
0,
0,
0,
121,
1,
0,
0,
0,
0,
123,
1,
0,
0,
0,
0,
125,
1,
0,
0,
0,
0,
127,
1,
0,
0,
0,
0,
129,
1,
0,
0,
0,
0,
131,
1,
0,
0,
0,
0,
133,
1,
0,
0,
0,
0,
135,
1,
0,
0,
0,
0,
137,
1,
0,
0,
0,
0,
139,
1,
0,
0,
0,
0,
141,
1,
0,
0,
0,
0,
143,
1,
0,
0,
0,
0,
145,
1,
0,
0,
0,
0,
147,
1,
0,
0,
0,
0,
149,
1,
0,
0,
0,
0,
151,
1,
0,
0,
0,
0,
153,
1,
0,
0,
0,
0,
155,
1,
0,
0,
0,
0,
157,
1,
0,
0,
0,
0,
159,
1,
0,
0,
0,
0,
161,
1,
0,
0,
0,
0,
163,
1,
0,
0,
0,
0,
165,
1,
0,
0,
0,
0,
167,
1,
0,
0,
0,
0,
169,
1,
0,
0,
0,
0,
171,
1,
0,
0,
0,
0,
173,
1,
0,
0,
0,
0,
183,
1,
0,
0,
0,
0,
185,
1,
0,
0,
0,
0,
189,
1,
0,
0,
0,
0,
193,
1,
0,
0,
0,
0,
195,
1,
0,
0,
0,
0,
197,
1,
0,
0,
0,
0,
199,
1,
0,
0,
0,
0,
201,
1,
0,
0,
0,
0,
203,
1,
0,
0,
0,
0,
205,
1,
0,
0,
0,
1,
207,
1,
0,
0,
0,
1,
209,
1,
0,
0,
0,
2,
211,
1,
0,
0,
0,
2,
213,
1,
0,
0,
0,
2,
215,
1,
0,
0,
0,
3,
217,
1,
0,
0,
0,
5,
228,
1,
0,
0,
0,
7,
236,
1,
0,
0,
0,
9,
250,
1,
0,
0,
0,
11,
254,
1,
0,
0,
0,
13,
261,
1,
0,
0,
0,
15,
266,
1,
0,
0,
0,
17,
273,
1,
0,
0,
0,
19,
277,
1,
0,
0,
0,
21,
281,
1,
0,
0,
0,
23,
287,
1,
0,
0,
0,
25,
296,
1,
0,
0,
0,
27,
299,
1,
0,
0,
0,
29,
304,
1,
0,
0,
0,
31,
308,
1,
0,
0,
0,
33,
315,
1,
0,
0,
0,
35,
319,
1,
0,
0,
0,
37,
325,
1,
0,
0,
0,
39,
329,
1,
0,
0,
0,
41,
340,
1,
0,
0,
0,
43,
345,
1,
0,
0,
0,
45,
351,
1,
0,
0,
0,
47,
358,
1,
0,
0,
0,
49,
364,
1,
0,
0,
0,
51,
372,
1,
0,
0,
0,
53,
377,
1,
0,
0,
0,
55,
383,
1,
0,
0,
0,
57,
388,
1,
0,
0,
0,
59,
393,
1,
0,
0,
0,
61,
397,
1,
0,
0,
0,
63,
401,
1,
0,
0,
0,
65,
406,
1,
0,
0,
0,
67,
412,
1,
0,
0,
0,
69,
418,
1,
0,
0,
0,
71,
426,
1,
0,
0,
0,
73,
432,
1,
0,
0,
0,
75,
441,
1,
0,
0,
0,
77,
449,
1,
0,
0,
0,
79,
456,
1,
0,
0,
0,
81,
460,
1,
0,
0,
0,
83,
464,
1,
0,
0,
0,
85,
469,
1,
0,
0,
0,
87,
477,
1,
0,
0,
0,
89,
482,
1,
0,
0,
0,
91,
493,
1,
0,
0,
0,
93,
499,
1,
0,
0,
0,
95,
505,
1,
0,
0,
0,
97,
513,
1,
0,
0,
0,
99,
530,
1,
0,
0,
0,
101,
532,
1,
0,
0,
0,
103,
534,
1,
0,
0,
0,
105,
536,
1,
0,
0,
0,
107,
538,
1,
0,
0,
0,
109,
540,
1,
0,
0,
0,
111,
542,
1,
0,
0,
0,
113,
544,
1,
0,
0,
0,
115,
546,
1,
0,
0,
0,
117,
548,
1,
0,
0,
0,
119,
550,
1,
0,
0,
0,
121,
552,
1,
0,
0,
0,
123,
554,
1,
0,
0,
0,
125,
557,
1,
0,
0,
0,
127,
559,
1,
0,
0,
0,
129,
562,
1,
0,
0,
0,
131,
564,
1,
0,
0,
0,
133,
566,
1,
0,
0,
0,
135,
569,
1,
0,
0,
0,
137,
571,
1,
0,
0,
0,
139,
573,
1,
0,
0,
0,
141,
575,
1,
0,
0,
0,
143,
578,
1,
0,
0,
0,
145,
580,
1,
0,
0,
0,
147,
583,
1,
0,
0,
0,
149,
585,
1,
0,
0,
0,
151,
587,
1,
0,
0,
0,
153,
589,
1,
0,
0,
0,
155,
595,
1,
0,
0,
0,
157,
624,
1,
0,
0,
0,
159,
631,
1,
0,
0,
0,
161,
637,
1,
0,
0,
0,
163,
639,
1,
0,
0,
0,
165,
644,
1,
0,
0,
0,
167,
658,
1,
0,
0,
0,
169,
671,
1,
0,
0,
0,
171,
691,
1,
0,
0,
0,
173,
700,
1,
0,
0,
0,
175,
713,
1,
0,
0,
0,
177,
715,
1,
0,
0,
0,
179,
720,
1,
0,
0,
0,
181,
724,
1,
0,
0,
0,
183,
726,
1,
0,
0,
0,
185,
733,
1,
0,
0,
0,
187,
739,
1,
0,
0,
0,
189,
762,
1,
0,
0,
0,
191,
775,
1,
0,
0,
0,
193,
779,
1,
0,
0,
0,
195,
783,
1,
0,
0,
0,
197,
810,
1,
0,
0,
0,
199,
813,
1,
0,
0,
0,
201,
820,
1,
0,
0,
0,
203,
826,
1,
0,
0,
0,
205,
837,
1,
0,
0,
0,
207,
852,
1,
0,
0,
0,
209,
859,
1,
0,
0,
0,
211,
874,
1,
0,
0,
0,
213,
880,
1,
0,
0,
0,
215,
885,
1,
0,
0,
0,
217,
218,
5,
79,
0,
0,
218,
219,
5,
80,
0,
0,
219,
220,
5,
69,
0,
0,
220,
221,
5,
78,
0,
0,
221,
222,
5,
81,
0,
0,
222,
223,
5,
65,
0,
0,
223,
224,
5,
83,
0,
0,
224,
225,
5,
77,
0,
0,
225,
226,
1,
0,
0,
0,
226,
227,
6,
0,
0,
0,
227,
4,
1,
0,
0,
0,
228,
229,
5,
105,
0,
0,
229,
230,
5,
110,
0,
0,
230,
231,
5,
99,
0,
0,
231,
232,
5,
108,
0,
0,
232,
233,
5,
117,
0,
0,
233,
234,
5,
100,
0,
0,
234,
235,
5,
101,
0,
0,
235,
6,
1,
0,
0,
0,
236,
237,
5,
100,
0,
0,
237,
238,
5,
101,
0,
0,
238,
239,
5,
102,
0,
0,
239,
240,
5,
99,
0,
0,
240,
241,
5,
97,
0,
0,
241,
242,
5,
108,
0,
0,
242,
243,
5,
103,
0,
0,
243,
244,
5,
114,
0,
0,
244,
245,
5,
97,
0,
0,
245,
246,
5,
109,
0,
0,
246,
247,
5,
109,
0,
0,
247,
248,
5,
97,
0,
0,
248,
249,
5,
114,
0,
0,
249,
8,
1,
0,
0,
0,
250,
251,
5,
100,
0,
0,
251,
252,
5,
101,
0,
0,
252,
253,
5,
102,
0,
0,
253,
10,
1,
0,
0,
0,
254,
255,
5,
100,
0,
0,
255,
256,
5,
101,
0,
0,
256,
257,
5,
102,
0,
0,
257,
258,
5,
99,
0,
0,
258,
259,
5,
97,
0,
0,
259,
260,
5,
108,
0,
0,
260,
12,
1,
0,
0,
0,
261,
262,
5,
103,
0,
0,
262,
263,
5,
97,
0,
0,
263,
264,
5,
116,
0,
0,
264,
265,
5,
101,
0,
0,
265,
14,
1,
0,
0,
0,
266,
267,
5,
101,
0,
0,
267,
268,
5,
120,
0,
0,
268,
269,
5,
116,
0,
0,
269,
270,
5,
101,
0,
0,
270,
271,
5,
114,
0,
0,
271,
272,
5,
110,
0,
0,
272,
16,
1,
0,
0,
0,
273,
274,
5,
98,
0,
0,
274,
275,
5,
111,
0,
0,
275,
276,
5,
120,
0,
0,
276,
18,
1,
0,
0,
0,
277,
278,
5,
108,
0,
0,
278,
279,
5,
101,
0,
0,
279,
280,
5,
116,
0,
0,
280,
20,
1,
0,
0,
0,
281,
282,
5,
98,
0,
0,
282,
283,
5,
114,
0,
0,
283,
284,
5,
101,
0,
0,
284,
285,
5,
97,
0,
0,
285,
286,
5,
107,
0,
0,
286,
22,
1,
0,
0,
0,
287,
288,
5,
99,
0,
0,
288,
289,
5,
111,
0,
0,
289,
290,
5,
110,
0,
0,
290,
291,
5,
116,
0,
0,
291,
292,
5,
105,
0,
0,
292,
293,
5,
110,
0,
0,
293,
294,
5,
117,
0,
0,
294,
295,
5,
101,
0,
0,
295,
24,
1,
0,
0,
0,
296,
297,
5,
105,
0,
0,
297,
298,
5,
102,
0,
0,
298,
26,
1,
0,
0,
0,
299,
300,
5,
101,
0,
0,
300,
301,
5,
108,
0,
0,
301,
302,
5,
115,
0,
0,
302,
303,
5,
101,
0,
0,
303,
28,
1,
0,
0,
0,
304,
305,
5,
101,
0,
0,
305,
306,
5,
110,
0,
0,
306,
307,
5,
100,
0,
0,
307,
30,
1,
0,
0,
0,
308,
309,
5,
114,
0,
0,
309,
310,
5,
101,
0,
0,
310,
311,
5,
116,
0,
0,
311,
312,
5,
117,
0,
0,
312,
313,
5,
114,
0,
0,
313,
314,
5,
110,
0,
0,
314,
32,
1,
0,
0,
0,
315,
316,
5,
102,
0,
0,
316,
317,
5,
111,
0,
0,
317,
318,
5,
114,
0,
0,
318,
34,
1,
0,
0,
0,
319,
320,
5,
119,
0,
0,
320,
321,
5,
104,
0,
0,
321,
322,
5,
105,
0,
0,
322,
323,
5,
108,
0,
0,
323,
324,
5,
101,
0,
0,
324,
36,
1,
0,
0,
0,
325,
326,
5,
105,
0,
0,
326,
327,
5,
110,
0,
0,
327,
38,
1,
0,
0,
0,
328,
330,
5,
35,
0,
0,
329,
328,
1,
0,
0,
0,
329,
330,
1,
0,
0,
0,
330,
331,
1,
0,
0,
0,
331,
332,
5,
112,
0,
0,
332,
333,
5,
114,
0,
0,
333,
334,
5,
97,
0,
0,
334,
335,
5,
103,
0,
0,
335,
336,
5,
109,
0,
0,
336,
337,
5,
97,
0,
0,
337,
338,
1,
0,
0,
0,
338,
339,
6,
18,
1,
0,
339,
40,
1,
0,
0,
0,
340,
341,
5,
64,
0,
0,
341,
342,
3,
183,
90,
0,
342,
343,
1,
0,
0,
0,
343,
344,
6,
19,
1,
0,
344,
42,
1,
0,
0,
0,
345,
346,
5,
105,
0,
0,
346,
347,
5,
110,
0,
0,
347,
348,
5,
112,
0,
0,
348,
349,
5,
117,
0,
0,
349,
350,
5,
116,
0,
0,
350,
44,
1,
0,
0,
0,
351,
352,
5,
111,
0,
0,
352,
353,
5,
117,
0,
0,
353,
354,
5,
116,
0,
0,
354,
355,
5,
112,
0,
0,
355,
356,
5,
117,
0,
0,
356,
357,
5,
116,
0,
0,
357,
46,
1,
0,
0,
0,
358,
359,
5,
99,
0,
0,
359,
360,
5,
111,
0,
0,
360,
361,
5,
110,
0,
0,
361,
362,
5,
115,
0,
0,
362,
363,
5,
116,
0,
0,
363,
48,
1,
0,
0,
0,
364,
365,
5,
109,
0,
0,
365,
366,
5,
117,
0,
0,
366,
367,
5,
116,
0,
0,
367,
368,
5,
97,
0,
0,
368,
369,
5,
98,
0,
0,
369,
370,
5,
108,
0,
0,
370,
371,
5,
101,
0,
0,
371,
50,
1,
0,
0,
0,
372,
373,
5,
113,
0,
0,
373,
374,
5,
114,
0,
0,
374,
375,
5,
101,
0,
0,
375,
376,
5,
103,
0,
0,
376,
52,
1,
0,
0,
0,
377,
378,
5,
113,
0,
0,
378,
379,
5,
117,
0,
0,
379,
380,
5,
98,
0,
0,
380,
381,
5,
105,
0,
0,
381,
382,
5,
116,
0,
0,
382,
54,
1,
0,
0,
0,
383,
384,
5,
99,
0,
0,
384,
385,
5,
114,
0,
0,
385,
386,
5,
101,
0,
0,
386,
387,
5,
103,
0,
0,
387,
56,
1,
0,
0,
0,
388,
389,
5,
98,
0,
0,
389,
390,
5,
111,
0,
0,
390,
391,
5,
111,
0,
0,
391,
392,
5,
108,
0,
0,
392,
58,
1,
0,
0,
0,
393,
394,
5,
98,
0,
0,
394,
395,
5,
105,
0,
0,
395,
396,
5,
116,
0,
0,
396,
60,
1,
0,
0,
0,
397,
398,
5,
105,
0,
0,
398,
399,
5,
110,
0,
0,
399,
400,
5,
116,
0,
0,
400,
62,
1,
0,
0,
0,
401,
402,
5,
117,
0,
0,
402,
403,
5,
105,
0,
0,
403,
404,
5,
110,
0,
0,
404,
405,
5,
116,
0,
0,
405,
64,
1,
0,
0,
0,
406,
407,
5,
102,
0,
0,
407,
408,
5,
108,
0,
0,
408,
409,
5,
111,
0,
0,
409,
410,
5,
97,
0,
0,
410,
411,
5,
116,
0,
0,
411,
66,
1,
0,
0,
0,
412,
413,
5,
97,
0,
0,
413,
414,
5,
110,
0,
0,
414,
415,
5,
103,
0,
0,
415,
416,
5,
108,
0,
0,
416,
417,
5,
101,
0,
0,
417,
68,
1,
0,
0,
0,
418,
419,
5,
99,
0,
0,
419,
420,
5,
111,
0,
0,
420,
421,
5,
109,
0,
0,
421,
422,
5,
112,
0,
0,
422,
423,
5,
108,
0,
0,
423,
424,
5,
101,
0,
0,
424,
425,
5,
120,
0,
0,
425,
70,
1,
0,
0,
0,
426,
427,
5,
97,
0,
0,
427,
428,
5,
114,
0,
0,
428,
429,
5,
114,
0,
0,
429,
430,
5,
97,
0,
0,
430,
431,
5,
121,
0,
0,
431,
72,
1,
0,
0,
0,
432,
433,
5,
100,
0,
0,
433,
434,
5,
117,
0,
0,
434,
435,
5,
114,
0,
0,
435,
436,
5,
97,
0,
0,
436,
437,
5,
116,
0,
0,
437,
438,
5,
105,
0,
0,
438,
439,
5,
111,
0,
0,
439,
440,
5,
110,
0,
0,
440,
74,
1,
0,
0,
0,
441,
442,
5,
115,
0,
0,
442,
443,
5,
116,
0,
0,
443,
444,
5,
114,
0,
0,
444,
445,
5,
101,
0,
0,
445,
446,
5,
116,
0,
0,
446,
447,
5,
99,
0,
0,
447,
448,
5,
104,
0,
0,
448,
76,
1,
0,
0,
0,
449,
450,
5,
103,
0,
0,
450,
451,
5,
112,
0,
0,
451,
452,
5,
104,
0,
0,
452,
453,
5,
97,
0,
0,
453,
454,
5,
115,
0,
0,
454,
455,
5,
101,
0,
0,
455,
78,
1,
0,
0,
0,
456,
457,
5,
105,
0,
0,
457,
458,
5,
110,
0,
0,
458,
459,
5,
118,
0,
0,
459,
80,
1,
0,
0,
0,
460,
461,
5,
112,
0,
0,
461,
462,
5,
111,
0,
0,
462,
463,
5,
119,
0,
0,
463,
82,
1,
0,
0,
0,
464,
465,
5,
99,
0,
0,
465,
466,
5,
116,
0,
0,
466,
467,
5,
114,
0,
0,
467,
468,
5,
108,
0,
0,
468,
84,
1,
0,
0,
0,
469,
470,
5,
110,
0,
0,
470,
471,
5,
101,
0,
0,
471,
472,
5,
103,
0,
0,
472,
473,
5,
99,
0,
0,
473,
474,
5,
116,
0,
0,
474,
475,
5,
114,
0,
0,
475,
476,
5,
108,
0,
0,
476,
86,
1,
0,
0,
0,
477,
478,
5,
35,
0,
0,
478,
479,
5,
100,
0,
0,
479,
480,
5,
105,
0,
0,
480,
481,
5,
109,
0,
0,
481,
88,
1,
0,
0,
0,
482,
483,
5,
100,
0,
0,
483,
484,
5,
117,
0,
0,
484,
485,
5,
114,
0,
0,
485,
486,
5,
97,
0,
0,
486,
487,
5,
116,
0,
0,
487,
488,
5,
105,
0,
0,
488,
489,
5,
111,
0,
0,
489,
490,
5,
110,
0,
0,
490,
491,
5,
111,
0,
0,
491,
492,
5,
102,
0,
0,
492,
90,
1,
0,
0,
0,
493,
494,
5,
100,
0,
0,
494,
495,
5,
101,
0,
0,
495,
496,
5,
108,
0,
0,
496,
497,
5,
97,
0,
0,
497,
498,
5,
121,
0,
0,
498,
92,
1,
0,
0,
0,
499,
500,
5,
114,
0,
0,
500,
501,
5,
101,
0,
0,
501,
502,
5,
115,
0,
0,
502,
503,
5,
101,
0,
0,
503,
504,
5,
116,
0,
0,
504,
94,
1,
0,
0,
0,
505,
506,
5,
109,
0,
0,
506,
507,
5,
101,
0,
0,
507,
508,
5,
97,
0,
0,
508,
509,
5,
115,
0,
0,
509,
510,
5,
117,
0,
0,
510,
511,
5,
114,
0,
0,
511,
512,
5,
101,
0,
0,
512,
96,
1,
0,
0,
0,
513,
514,
5,
98,
0,
0,
514,
515,
5,
97,
0,
0,
515,
516,
5,
114,
0,
0,
516,
517,
5,
114,
0,
0,
517,
518,
5,
105,
0,
0,
518,
519,
5,
101,
0,
0,
519,
520,
5,
114,
0,
0,
520,
98,
1,
0,
0,
0,
521,
522,
5,
116,
0,
0,
522,
523,
5,
114,
0,
0,
523,
524,
5,
117,
0,
0,
524,
531,
5,
101,
0,
0,
525,
526,
5,
102,
0,
0,
526,
527,
5,
97,
0,
0,
527,
528,
5,
108,
0,
0,
528,
529,
5,
115,
0,
0,
529,
531,
5,
101,
0,
0,
530,
521,
1,
0,
0,
0,
530,
525,
1,
0,
0,
0,
531,
100,
1,
0,
0,
0,
532,
533,
5,
91,
0,
0,
533,
102,
1,
0,
0,
0,
534,
535,
5,
93,
0,
0,
535,
104,
1,
0,
0,
0,
536,
537,
5,
123,
0,
0,
537,
106,
1,
0,
0,
0,
538,
539,
5,
125,
0,
0,
539,
108,
1,
0,
0,
0,
540,
541,
5,
40,
0,
0,
541,
110,
1,
0,
0,
0,
542,
543,
5,
41,
0,
0,
543,
112,
1,
0,
0,
0,
544,
545,
5,
58,
0,
0,
545,
114,
1,
0,
0,
0,
546,
547,
5,
59,
0,
0,
547,
116,
1,
0,
0,
0,
548,
549,
5,
46,
0,
0,
549,
118,
1,
0,
0,
0,
550,
551,
5,
44,
0,
0,
551,
120,
1,
0,
0,
0,
552,
553,
5,
61,
0,
0,
553,
122,
1,
0,
0,
0,
554,
555,
5,
45,
0,
0,
555,
556,
5,
62,
0,
0,
556,
124,
1,
0,
0,
0,
557,
558,
5,
43,
0,
0,
558,
126,
1,
0,
0,
0,
559,
560,
5,
43,
0,
0,
560,
561,
5,
43,
0,
0,
561,
128,
1,
0,
0,
0,
562,
563,
5,
45,
0,
0,
563,
130,
1,
0,
0,
0,
564,
565,
5,
42,
0,
0,
565,
132,
1,
0,
0,
0,
566,
567,
5,
42,
0,
0,
567,
568,
5,
42,
0,
0,
568,
134,
1,
0,
0,
0,
569,
570,
5,
47,
0,
0,
570,
136,
1,
0,
0,
0,
571,
572,
5,
37,
0,
0,
572,
138,
1,
0,
0,
0,
573,
574,
5,
124,
0,
0,
574,
140,
1,
0,
0,
0,
575,
576,
5,
124,
0,
0,
576,
577,
5,
124,
0,
0,
577,
142,
1,
0,
0,
0,
578,
579,
5,
38,
0,
0,
579,
144,
1,
0,
0,
0,
580,
581,
5,
38,
0,
0,
581,
582,
5,
38,
0,
0,
582,
146,
1,
0,
0,
0,
583,
584,
5,
94,
0,
0,
584,
148,
1,
0,
0,
0,
585,
586,
5,
64,
0,
0,
586,
150,
1,
0,
0,
0,
587,
588,
5,
126,
0,
0,
588,
152,
1,
0,
0,
0,
589,
590,
5,
33,
0,
0,
590,
154,
1,
0,
0,
0,
591,
592,
5,
61,
0,
0,
592,
596,
5,
61,
0,
0,
593,
594,
5,
33,
0,
0,
594,
596,
5,
61,
0,
0,
595,
591,
1,
0,
0,
0,
595,
593,
1,
0,
0,
0,
596,
156,
1,
0,
0,
0,
597,
598,
5,
43,
0,
0,
598,
625,
5,
61,
0,
0,
599,
600,
5,
45,
0,
0,
600,
625,
5,
61,
0,
0,
601,
602,
5,
42,
0,
0,
602,
625,
5,
61,
0,
0,
603,
604,
5,
47,
0,
0,
604,
625,
5,
61,
0,
0,
605,
606,
5,
38,
0,
0,
606,
625,
5,
61,
0,
0,
607,
608,
5,
124,
0,
0,
608,
625,
5,
61,
0,
0,
609,
610,
5,
126,
0,
0,
610,
625,
5,
61,
0,
0,
611,
612,
5,
94,
0,
0,
612,
625,
5,
61,
0,
0,
613,
614,
5,
60,
0,
0,
614,
615,
5,
60,
0,
0,
615,
625,
5,
61,
0,
0,
616,
617,
5,
62,
0,
0,
617,
618,
5,
62,
0,
0,
618,
625,
5,
61,
0,
0,
619,
620,
5,
37,
0,
0,
620,
625,
5,
61,
0,
0,
621,
622,
5,
42,
0,
0,
622,
623,
5,
42,
0,
0,
623,
625,
5,
61,
0,
0,
624,
597,
1,
0,
0,
0,
624,
599,
1,
0,
0,
0,
624,
601,
1,
0,
0,
0,
624,
603,
1,
0,
0,
0,
624,
605,
1,
0,
0,
0,
624,
607,
1,
0,
0,
0,
624,
609,
1,
0,
0,
0,
624,
611,
1,
0,
0,
0,
624,
613,
1,
0,
0,
0,
624,
616,
1,
0,
0,
0,
624,
619,
1,
0,
0,
0,
624,
621,
1,
0,
0,
0,
625,
158,
1,
0,
0,
0,
626,
632,
7,
0,
0,
0,
627,
628,
5,
62,
0,
0,
628,
632,
5,
61,
0,
0,
629,
630,
5,
60,
0,
0,
630,
632,
5,
61,
0,
0,
631,
626,
1,
0,
0,
0,
631,
627,
1,
0,
0,
0,
631,
629,
1,
0,
0,
0,
632,
160,
1,
0,
0,
0,
633,
634,
5,
62,
0,
0,
634,
638,
5,
62,
0,
0,
635,
636,
5,
60,
0,
0,
636,
638,
5,
60,
0,
0,
637,
633,
1,
0,
0,
0,
637,
635,
1,
0,
0,
0,
638,
162,
1,
0,
0,
0,
639,
640,
5,
105,
0,
0,
640,
641,
5,
109,
0,
0,
641,
164,
1,
0,
0,
0,
642,
645,
3,
171,
84,
0,
643,
645,
3,
189,
93,
0,
644,
642,
1,
0,
0,
0,
644,
643,
1,
0,
0,
0,
645,
649,
1,
0,
0,
0,
646,
648,
5,
32,
0,
0,
647,
646,
1,
0,
0,
0,
648,
651,
1,
0,
0,
0,
649,
647,
1,
0,
0,
0,
649,
650,
1,
0,
0,
0,
650,
652,
1,
0,
0,
0,
651,
649,
1,
0,
0,
0,
652,
653,
3,
163,
80,
0,
653,
166,
1,
0,
0,
0,
654,
655,
5,
48,
0,
0,
655,
659,
5,
98,
0,
0,
656,
657,
5,
48,
0,
0,
657,
659,
5,
66,
0,
0,
658,
654,
1,
0,
0,
0,
658,
656,
1,
0,
0,
0,
659,
666,
1,
0,
0,
0,
660,
662,
7,
1,
0,
0,
661,
663,
5,
95,
0,
0,
662,
661,
1,
0,
0,
0,
662,
663,
1,
0,
0,
0,
663,
665,
1,
0,
0,
0,
664,
660,
1,
0,
0,
0,
665,
668,
1,
0,
0,
0,
666,
664,
1,
0,
0,
0,
666,
667,
1,
0,
0,
0,
667,
669,
1,
0,
0,
0,
668,
666,
1,
0,
0,
0,
669,
670,
7,
1,
0,
0,
670,
168,
1,
0,
0,
0,
671,
672,
5,
48,
0,
0,
672,
673,
5,
111,
0,
0,
673,
680,
1,
0,
0,
0,
674,
676,
7,
2,
0,
0,
675,
677,
5,
95,
0,
0,
676,
675,
1,
0,
0,
0,
676,
677,
1,
0,
0,
0,
677,
679,
1,
0,
0,
0,
678,
674,
1,
0,
0,
0,
679,
682,
1,
0,
0,
0,
680,
678,
1,
0,
0,
0,
680,
681,
1,
0,
0,
0,
681,
683,
1,
0,
0,
0,
682,
680,
1,
0,
0,
0,
683,
684,
7,
2,
0,
0,
684,
170,
1,
0,
0,
0,
685,
687,
7,
3,
0,
0,
686,
688,
5,
95,
0,
0,
687,
686,
1,
0,
0,
0,
687,
688,
1,
0,
0,
0,
688,
690,
1,
0,
0,
0,
689,
685,
1,
0,
0,
0,
690,
693,
1,
0,
0,
0,
691,
689,
1,
0,
0,
0,
691,
692,
1,
0,
0,
0,
692,
694,
1,
0,
0,
0,
693,
691,
1,
0,
0,
0,
694,
695,
7,
3,
0,
0,
695,
172,
1,
0,
0,
0,
696,
697,
5,
48,
0,
0,
697,
701,
5,
120,
0,
0,
698,
699,
5,
48,
0,
0,
699,
701,
5,
88,
0,
0,
700,
696,
1,
0,
0,
0,
700,
698,
1,
0,
0,
0,
701,
708,
1,
0,
0,
0,
702,
704,
7,
4,
0,
0,
703,
705,
5,
95,
0,
0,
704,
703,
1,
0,
0,
0,
704,
705,
1,
0,
0,
0,
705,
707,
1,
0,
0,
0,
706,
702,
1,
0,
0,
0,
707,
710,
1,
0,
0,
0,
708,
706,
1,
0,
0,
0,
708,
709,
1,
0,
0,
0,
709,
711,
1,
0,
0,
0,
710,
708,
1,
0,
0,
0,
711,
712,
7,
4,
0,
0,
712,
174,
1,
0,
0,
0,
713,
714,
7,
5,
0,
0,
714,
176,
1,
0,
0,
0,
715,
716,
7,
6,
0,
0,
716,
178,
1,
0,
0,
0,
717,
721,
5,
95,
0,
0,
718,
721,
3,
175,
86,
0,
719,
721,
3,
177,
87,
0,
720,
717,
1,
0,
0,
0,
720,
718,
1,
0,
0,
0,
720,
719,
1,
0,
0,
0,
721,
180,
1,
0,
0,
0,
722,
725,
3,
179,
88,
0,
723,
725,
7,
3,
0,
0,
724,
722,
1,
0,
0,
0,
724,
723,
1,
0,
0,
0,
725,
182,
1,
0,
0,
0,
726,
730,
3,
179,
88,
0,
727,
729,
3,
181,
89,
0,
728,
727,
1,
0,
0,
0,
729,
732,
1,
0,
0,
0,
730,
728,
1,
0,
0,
0,
730,
731,
1,
0,
0,
0,
731,
184,
1,
0,
0,
0,
732,
730,
1,
0,
0,
0,
733,
735,
5,
36,
0,
0,
734,
736,
7,
3,
0,
0,
735,
734,
1,
0,
0,
0,
736,
737,
1,
0,
0,
0,
737,
735,
1,
0,
0,
0,
737,
738,
1,
0,
0,
0,
738,
186,
1,
0,
0,
0,
739,
742,
7,
7,
0,
0,
740,
743,
3,
125,
61,
0,
741,
743,
3,
129,
63,
0,
742,
740,
1,
0,
0,
0,
742,
741,
1,
0,
0,
0,
742,
743,
1,
0,
0,
0,
743,
744,
1,
0,
0,
0,
744,
745,
3,
171,
84,
0,
745,
188,
1,
0,
0,
0,
746,
747,
3,
171,
84,
0,
747,
748,
3,
187,
92,
0,
748,
763,
1,
0,
0,
0,
749,
750,
3,
117,
57,
0,
750,
752,
3,
171,
84,
0,
751,
753,
3,
187,
92,
0,
752,
751,
1,
0,
0,
0,
752,
753,
1,
0,
0,
0,
753,
763,
1,
0,
0,
0,
754,
755,
3,
171,
84,
0,
755,
757,
3,
117,
57,
0,
756,
758,
3,
171,
84,
0,
757,
756,
1,
0,
0,
0,
757,
758,
1,
0,
0,
0,
758,
760,
1,
0,
0,
0,
759,
761,
3,
187,
92,
0,
760,
759,
1,
0,
0,
0,
760,
761,
1,
0,
0,
0,
761,
763,
1,
0,
0,
0,
762,
746,
1,
0,
0,
0,
762,
749,
1,
0,
0,
0,
762,
754,
1,
0,
0,
0,
763,
190,
1,
0,
0,
0,
764,
765,
5,
100,
0,
0,
765,
776,
5,
116,
0,
0,
766,
767,
5,
110,
0,
0,
767,
776,
5,
115,
0,
0,
768,
769,
5,
117,
0,
0,
769,
776,
5,
115,
0,
0,
770,
771,
5,
181,
0,
0,
771,
776,
5,
115,
0,
0,
772,
773,
5,
109,
0,
0,
773,
776,
5,
115,
0,
0,
774,
776,
5,
115,
0,
0,
775,
764,
1,
0,
0,
0,
775,
766,
1,
0,
0,
0,
775,
768,
1,
0,
0,
0,
775,
770,
1,
0,
0,
0,
775,
772,
1,
0,
0,
0,
775,
774,
1,
0,
0,
0,
776,
192,
1,
0,
0,
0,
777,
780,
3,
171,
84,
0,
778,
780,
3,
189,
93,
0,
779,
777,
1,
0,
0,
0,
779,
778,
1,
0,
0,
0,
780,
781,
1,
0,
0,
0,
781,
782,
3,
191,
94,
0,
782,
194,
1,
0,
0,
0,
783,
790,
5,
34,
0,
0,
784,
786,
7,
1,
0,
0,
785,
787,
5,
95,
0,
0,
786,
785,
1,
0,
0,
0,
786,
787,
1,
0,
0,
0,
787,
789,
1,
0,
0,
0,
788,
784,
1,
0,
0,
0,
789,
792,
1,
0,
0,
0,
790,
788,
1,
0,
0,
0,
790,
791,
1,
0,
0,
0,
791,
793,
1,
0,
0,
0,
792,
790,
1,
0,
0,
0,
793,
794,
7,
1,
0,
0,
794,
795,
5,
34,
0,
0,
795,
196,
1,
0,
0,
0,
796,
798,
5,
34,
0,
0,
797,
799,
8,
8,
0,
0,
798,
797,
1,
0,
0,
0,
799,
800,
1,
0,
0,
0,
800,
801,
1,
0,
0,
0,
800,
798,
1,
0,
0,
0,
801,
802,
1,
0,
0,
0,
802,
811,
5,
34,
0,
0,
803,
805,
5,
39,
0,
0,
804,
806,
8,
9,
0,
0,
805,
804,
1,
0,
0,
0,
806,
807,
1,
0,
0,
0,
807,
808,
1,
0,
0,
0,
807,
805,
1,
0,
0,
0,
808,
809,
1,
0,
0,
0,
809,
811,
5,
39,
0,
0,
810,
796,
1,
0,
0,
0,
810,
803,
1,
0,
0,
0,
811,
198,
1,
0,
0,
0,
812,
814,
7,
10,
0,
0,
813,
812,
1,
0,
0,
0,
814,
815,
1,
0,
0,
0,
815,
813,
1,
0,
0,
0,
815,
816,
1,
0,
0,
0,
816,
817,
1,
0,
0,
0,
817,
818,
6,
98,
2,
0,
818,
200,
1,
0,
0,
0,
819,
821,
7,
11,
0,
0,
820,
819,
1,
0,
0,
0,
821,
822,
1,
0,
0,
0,
822,
820,
1,
0,
0,
0,
822,
823,
1,
0,
0,
0,
823,
824,
1,
0,
0,
0,
824,
825,
6,
99,
2,
0,
825,
202,
1,
0,
0,
0,
826,
827,
5,
47,
0,
0,
827,
828,
5,
47,
0,
0,
828,
832,
1,
0,
0,
0,
829,
831,
8,
11,
0,
0,
830,
829,
1,
0,
0,
0,
831,
834,
1,
0,
0,
0,
832,
830,
1,
0,
0,
0,
832,
833,
1,
0,
0,
0,
833,
835,
1,
0,
0,
0,
834,
832,
1,
0,
0,
0,
835,
836,
6,
100,
2,
0,
836,
204,
1,
0,
0,
0,
837,
838,
5,
47,
0,
0,
838,
839,
5,
42,
0,
0,
839,
843,
1,
0,
0,
0,
840,
842,
9,
0,
0,
0,
841,
840,
1,
0,
0,
0,
842,
845,
1,
0,
0,
0,
843,
844,
1,
0,
0,
0,
843,
841,
1,
0,
0,
0,
844,
846,
1,
0,
0,
0,
845,
843,
1,
0,
0,
0,
846,
847,
5,
42,
0,
0,
847,
848,
5,
47,
0,
0,
848,
849,
1,
0,
0,
0,
849,
850,
6,
101,
2,
0,
850,
206,
1,
0,
0,
0,
851,
853,
7,
12,
0,
0,
852,
851,
1,
0,
0,
0,
853,
854,
1,
0,
0,
0,
854,
852,
1,
0,
0,
0,
854,
855,
1,
0,
0,
0,
855,
856,
1,
0,
0,
0,
856,
857,
6,
102,
2,
0,
857,
208,
1,
0,
0,
0,
858,
860,
7,
3,
0,
0,
859,
858,
1,
0,
0,
0,
860,
861,
1,
0,
0,
0,
861,
859,
1,
0,
0,
0,
861,
862,
1,
0,
0,
0,
862,
869,
1,
0,
0,
0,
863,
865,
5,
46,
0,
0,
864,
866,
7,
3,
0,
0,
865,
864,
1,
0,
0,
0,
866,
867,
1,
0,
0,
0,
867,
865,
1,
0,
0,
0,
867,
868,
1,
0,
0,
0,
868,
870,
1,
0,
0,
0,
869,
863,
1,
0,
0,
0,
869,
870,
1,
0,
0,
0,
870,
871,
1,
0,
0,
0,
871,
872,
6,
103,
3,
0,
872,
210,
1,
0,
0,
0,
873,
875,
7,
10,
0,
0,
874,
873,
1,
0,
0,
0,
875,
876,
1,
0,
0,
0,
876,
874,
1,
0,
0,
0,
876,
877,
1,
0,
0,
0,
877,
878,
1,
0,
0,
0,
878,
879,
6,
104,
2,
0,
879,
212,
1,
0,
0,
0,
880,
881,
7,
11,
0,
0,
881,
882,
1,
0,
0,
0,
882,
883,
6,
105,
3,
0,
883,
884,
6,
105,
2,
0,
884,
214,
1,
0,
0,
0,
885,
889,
8,
12,
0,
0,
886,
888,
8,
11,
0,
0,
887,
886,
1,
0,
0,
0,
888,
891,
1,
0,
0,
0,
889,
887,
1,
0,
0,
0,
889,
890,
1,
0,
0,
0,
890,
216,
1,
0,
0,
0,
891,
889,
1,
0,
0,
0,
47,
0,
1,
2,
329,
530,
595,
624,
631,
637,
644,
649,
658,
662,
666,
676,
680,
687,
691,
700,
704,
708,
720,
724,
730,
737,
742,
752,
757,
760,
762,
775,
779,
786,
790,
800,
807,
810,
815,
822,
832,
843,
854,
861,
867,
869,
876,
889,
4,
5,
1,
0,
5,
2,
0,
6,
0,
0,
4,
0,
0,
]
[docs]
class qasm3Lexer(Lexer):
atn = ATNDeserializer().deserialize(serializedATN())
decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)]
VERSION_IDENTIFIER = 1
EAT_TO_LINE_END = 2
OPENQASM = 1
INCLUDE = 2
DEFCALGRAMMAR = 3
DEF = 4
DEFCAL = 5
GATE = 6
EXTERN = 7
BOX = 8
LET = 9
BREAK = 10
CONTINUE = 11
IF = 12
ELSE = 13
END = 14
RETURN = 15
FOR = 16
WHILE = 17
IN = 18
PRAGMA = 19
AnnotationKeyword = 20
INPUT = 21
OUTPUT = 22
CONST = 23
MUTABLE = 24
QREG = 25
QUBIT = 26
CREG = 27
BOOL = 28
BIT = 29
INT = 30
UINT = 31
FLOAT = 32
ANGLE = 33
COMPLEX = 34
ARRAY = 35
DURATION = 36
STRETCH = 37
GPHASE = 38
INV = 39
POW = 40
CTRL = 41
NEGCTRL = 42
DIM = 43
DURATIONOF = 44
DELAY = 45
RESET = 46
MEASURE = 47
BARRIER = 48
BooleanLiteral = 49
LBRACKET = 50
RBRACKET = 51
LBRACE = 52
RBRACE = 53
LPAREN = 54
RPAREN = 55
COLON = 56
SEMICOLON = 57
DOT = 58
COMMA = 59
EQUALS = 60
ARROW = 61
PLUS = 62
DOUBLE_PLUS = 63
MINUS = 64
ASTERISK = 65
DOUBLE_ASTERISK = 66
SLASH = 67
PERCENT = 68
PIPE = 69
DOUBLE_PIPE = 70
AMPERSAND = 71
DOUBLE_AMPERSAND = 72
CARET = 73
AT = 74
TILDE = 75
EXCLAMATION_POINT = 76
EqualityOperator = 77
CompoundAssignmentOperator = 78
ComparisonOperator = 79
BitshiftOperator = 80
IMAG = 81
ImaginaryLiteral = 82
BinaryIntegerLiteral = 83
OctalIntegerLiteral = 84
DecimalIntegerLiteral = 85
HexIntegerLiteral = 86
Identifier = 87
HardwareQubit = 88
FloatLiteral = 89
TimingLiteral = 90
BitstringLiteral = 91
StringLiteral = 92
Whitespace = 93
Newline = 94
LineComment = 95
BlockComment = 96
VERSION_IDENTIFER_WHITESPACE = 97
VersionSpecifier = 98
EAT_INITIAL_SPACE = 99
EAT_LINE_END = 100
RemainingLineContent = 101
channelNames = ["DEFAULT_TOKEN_CHANNEL", "HIDDEN"]
modeNames = ["DEFAULT_MODE", "VERSION_IDENTIFIER", "EAT_TO_LINE_END"]
literalNames = [
"<INVALID>",
"'OPENQASM'",
"'include'",
"'defcalgrammar'",
"'def'",
"'defcal'",
"'gate'",
"'extern'",
"'box'",
"'let'",
"'break'",
"'continue'",
"'if'",
"'else'",
"'end'",
"'return'",
"'for'",
"'while'",
"'in'",
"'input'",
"'output'",
"'const'",
"'mutable'",
"'qreg'",
"'qubit'",
"'creg'",
"'bool'",
"'bit'",
"'int'",
"'uint'",
"'float'",
"'angle'",
"'complex'",
"'array'",
"'duration'",
"'stretch'",
"'gphase'",
"'inv'",
"'pow'",
"'ctrl'",
"'negctrl'",
"'#dim'",
"'durationof'",
"'delay'",
"'reset'",
"'measure'",
"'barrier'",
"'['",
"']'",
"'{'",
"'}'",
"'('",
"')'",
"':'",
"';'",
"'.'",
"','",
"'='",
"'->'",
"'+'",
"'++'",
"'-'",
"'*'",
"'**'",
"'/'",
"'%'",
"'|'",
"'||'",
"'&'",
"'&&'",
"'^'",
"'@'",
"'~'",
"'!'",
"'im'",
]
symbolicNames = [
"<INVALID>",
"OPENQASM",
"INCLUDE",
"DEFCALGRAMMAR",
"DEF",
"DEFCAL",
"GATE",
"EXTERN",
"BOX",
"LET",
"BREAK",
"CONTINUE",
"IF",
"ELSE",
"END",
"RETURN",
"FOR",
"WHILE",
"IN",
"PRAGMA",
"AnnotationKeyword",
"INPUT",
"OUTPUT",
"CONST",
"MUTABLE",
"QREG",
"QUBIT",
"CREG",
"BOOL",
"BIT",
"INT",
"UINT",
"FLOAT",
"ANGLE",
"COMPLEX",
"ARRAY",
"DURATION",
"STRETCH",
"GPHASE",
"INV",
"POW",
"CTRL",
"NEGCTRL",
"DIM",
"DURATIONOF",
"DELAY",
"RESET",
"MEASURE",
"BARRIER",
"BooleanLiteral",
"LBRACKET",
"RBRACKET",
"LBRACE",
"RBRACE",
"LPAREN",
"RPAREN",
"COLON",
"SEMICOLON",
"DOT",
"COMMA",
"EQUALS",
"ARROW",
"PLUS",
"DOUBLE_PLUS",
"MINUS",
"ASTERISK",
"DOUBLE_ASTERISK",
"SLASH",
"PERCENT",
"PIPE",
"DOUBLE_PIPE",
"AMPERSAND",
"DOUBLE_AMPERSAND",
"CARET",
"AT",
"TILDE",
"EXCLAMATION_POINT",
"EqualityOperator",
"CompoundAssignmentOperator",
"ComparisonOperator",
"BitshiftOperator",
"IMAG",
"ImaginaryLiteral",
"BinaryIntegerLiteral",
"OctalIntegerLiteral",
"DecimalIntegerLiteral",
"HexIntegerLiteral",
"Identifier",
"HardwareQubit",
"FloatLiteral",
"TimingLiteral",
"BitstringLiteral",
"StringLiteral",
"Whitespace",
"Newline",
"LineComment",
"BlockComment",
"VERSION_IDENTIFER_WHITESPACE",
"VersionSpecifier",
"EAT_INITIAL_SPACE",
"EAT_LINE_END",
"RemainingLineContent",
]
ruleNames = [
"OPENQASM",
"INCLUDE",
"DEFCALGRAMMAR",
"DEF",
"DEFCAL",
"GATE",
"EXTERN",
"BOX",
"LET",
"BREAK",
"CONTINUE",
"IF",
"ELSE",
"END",
"RETURN",
"FOR",
"WHILE",
"IN",
"PRAGMA",
"AnnotationKeyword",
"INPUT",
"OUTPUT",
"CONST",
"MUTABLE",
"QREG",
"QUBIT",
"CREG",
"BOOL",
"BIT",
"INT",
"UINT",
"FLOAT",
"ANGLE",
"COMPLEX",
"ARRAY",
"DURATION",
"STRETCH",
"GPHASE",
"INV",
"POW",
"CTRL",
"NEGCTRL",
"DIM",
"DURATIONOF",
"DELAY",
"RESET",
"MEASURE",
"BARRIER",
"BooleanLiteral",
"LBRACKET",
"RBRACKET",
"LBRACE",
"RBRACE",
"LPAREN",
"RPAREN",
"COLON",
"SEMICOLON",
"DOT",
"COMMA",
"EQUALS",
"ARROW",
"PLUS",
"DOUBLE_PLUS",
"MINUS",
"ASTERISK",
"DOUBLE_ASTERISK",
"SLASH",
"PERCENT",
"PIPE",
"DOUBLE_PIPE",
"AMPERSAND",
"DOUBLE_AMPERSAND",
"CARET",
"AT",
"TILDE",
"EXCLAMATION_POINT",
"EqualityOperator",
"CompoundAssignmentOperator",
"ComparisonOperator",
"BitshiftOperator",
"IMAG",
"ImaginaryLiteral",
"BinaryIntegerLiteral",
"OctalIntegerLiteral",
"DecimalIntegerLiteral",
"HexIntegerLiteral",
"ValidUnicode",
"Letter",
"FirstIdCharacter",
"GeneralIdCharacter",
"Identifier",
"HardwareQubit",
"FloatLiteralExponent",
"FloatLiteral",
"TimeUnit",
"TimingLiteral",
"BitstringLiteral",
"StringLiteral",
"Whitespace",
"Newline",
"LineComment",
"BlockComment",
"VERSION_IDENTIFER_WHITESPACE",
"VersionSpecifier",
"EAT_INITIAL_SPACE",
"EAT_LINE_END",
"RemainingLineContent",
]
grammarFileName = "qasm3Lexer.g4"
def __init__(self, input=None, output: TextIO = sys.stdout):
super().__init__(input, output)
self.checkVersion("4.13.2")
self._interp = LexerATNSimulator(
self, self.atn, self.decisionsToDFA, PredictionContextCache()
)
self._actions = None
self._predicates = None