Coverage for src/pyensae/languages/Python3Lexer.py: 0%

277 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-07-03 02:16 +0200

1# Generated from \Python3.g4 by ANTLR 4.10.1 

2from antlr4 import * 

3from io import StringIO 

4import sys 

5if sys.version_info[1] > 5: 

6 from typing import TextIO 

7else: 

8 from typing.io import TextIO 

9 

10 

11from antlr4.Token import CommonToken 

12import re 

13import importlib 

14 

15# Allow languages to extend the lexer and parser, by loading the parser dynamically 

16module_path = __name__[:-5] 

17language_name = __name__.split('.')[-1] 

18language_name = language_name[:-5] # Remove Lexer from name 

19LanguageParser = getattr(importlib.import_module( 

20 '{}Parser'.format(module_path)), '{}Parser'.format(language_name)) 

21 

22 

23def serializedATN(): 

24 return [ 

25 4, 0, 97, 881, 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, 

26 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, 

27 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, 

28 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, 

29 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, 

30 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, 

31 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, 

32 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, 

33 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, 

34 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, 

35 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, 

36 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, 

37 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, 

38 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, 

39 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, 

40 97, 2, 98, 7, 98, 2, 99, 7, 99, 2, 100, 7, 100, 2, 101, 7, 101, 2, 102, 7, 102, 2, 103, 

41 7, 103, 2, 104, 7, 104, 2, 105, 7, 105, 2, 106, 7, 106, 2, 107, 7, 107, 2, 108, 7, 108, 

42 2, 109, 7, 109, 2, 110, 7, 110, 2, 111, 7, 111, 2, 112, 7, 112, 2, 113, 7, 113, 2, 114, 

43 7, 114, 2, 115, 7, 115, 2, 116, 7, 116, 2, 117, 7, 117, 2, 118, 7, 118, 2, 119, 7, 119, 

44 2, 120, 7, 120, 2, 121, 7, 121, 2, 122, 7, 122, 2, 123, 7, 123, 1, 0, 1, 0, 3, 0, 252, 

45 8, 0, 1, 1, 1, 1, 1, 1, 3, 1, 257, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 263, 8, 2, 1, 3, 1, 3, 

46 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, 5, 1, 6, 

47 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 

48 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, 

49 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 

50 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 

51 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 

52 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, 

53 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 

54 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 

55 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 

56 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, 

57 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 

58 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 

59 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, 38, 

60 1, 38, 1, 38, 3, 38, 458, 8, 38, 1, 38, 1, 38, 3, 38, 462, 8, 38, 1, 38, 3, 38, 465, 8, 

61 38, 3, 38, 467, 8, 38, 1, 38, 1, 38, 1, 39, 1, 39, 5, 39, 473, 8, 39, 10, 39, 12, 39, 476, 

62 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 3, 40, 483, 8, 40, 1, 40, 1, 40, 3, 40, 487, 8, 

63 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 3, 41, 494, 8, 41, 1, 41, 1, 41, 3, 41, 498, 8, 41, 

64 1, 42, 1, 42, 5, 42, 502, 8, 42, 10, 42, 12, 42, 505, 9, 42, 1, 42, 4, 42, 508, 8, 42, 

65 11, 42, 12, 42, 509, 3, 42, 512, 8, 42, 1, 43, 1, 43, 1, 43, 4, 43, 517, 8, 43, 11, 43, 

66 12, 43, 518, 1, 44, 1, 44, 1, 44, 4, 44, 524, 8, 44, 11, 44, 12, 44, 525, 1, 45, 1, 45, 

67 1, 45, 4, 45, 531, 8, 45, 11, 45, 12, 45, 532, 1, 46, 1, 46, 3, 46, 537, 8, 46, 1, 47, 

68 1, 47, 3, 47, 541, 8, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 

69 1, 50, 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 1, 54, 1, 54, 1, 55, 1, 55, 

70 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 

71 1, 61, 1, 61, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 66, 

72 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, 

73 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 

74 1, 77, 1, 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 81, 1, 81, 

75 1, 81, 1, 82, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 

76 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 88, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 90, 

77 1, 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 

78 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 3, 95, 677, 8, 95, 1, 95, 1, 95, 

79 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 5, 97, 686, 8, 97, 10, 97, 12, 97, 689, 9, 97, 1, 97, 

80 1, 97, 1, 97, 1, 97, 5, 97, 695, 8, 97, 10, 97, 12, 97, 698, 9, 97, 1, 97, 3, 97, 701, 

81 8, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 5, 98, 708, 8, 98, 10, 98, 12, 98, 711, 9, 98, 

82 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 5, 98, 721, 8, 98, 10, 98, 12, 98, 

83 724, 9, 98, 1, 98, 1, 98, 1, 98, 3, 98, 729, 8, 98, 1, 99, 1, 99, 3, 99, 733, 8, 99, 1, 

84 100, 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 3, 101, 741, 8, 101, 1, 102, 1, 102, 1, 

85 103, 1, 103, 1, 104, 1, 104, 1, 105, 1, 105, 1, 106, 1, 106, 1, 107, 3, 107, 754, 8, 

86 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 760, 8, 107, 1, 108, 1, 108, 3, 108, 764, 

87 8, 108, 1, 108, 1, 108, 1, 109, 4, 109, 769, 8, 109, 11, 109, 12, 109, 770, 1, 110, 

88 1, 110, 4, 110, 775, 8, 110, 11, 110, 12, 110, 776, 1, 111, 1, 111, 3, 111, 781, 8, 

89 111, 1, 111, 4, 111, 784, 8, 111, 11, 111, 12, 111, 785, 1, 112, 1, 112, 1, 112, 5, 

90 112, 791, 8, 112, 10, 112, 12, 112, 794, 9, 112, 1, 112, 1, 112, 1, 112, 1, 112, 5, 

91 112, 800, 8, 112, 10, 112, 12, 112, 803, 9, 112, 1, 112, 3, 112, 806, 8, 112, 1, 113, 

92 1, 113, 1, 113, 1, 113, 1, 113, 5, 113, 813, 8, 113, 10, 113, 12, 113, 816, 9, 113, 

93 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, 5, 113, 826, 8, 113, 

94 10, 113, 12, 113, 829, 9, 113, 1, 113, 1, 113, 1, 113, 3, 113, 834, 8, 113, 1, 114, 

95 1, 114, 3, 114, 838, 8, 114, 1, 115, 3, 115, 841, 8, 115, 1, 116, 3, 116, 844, 8, 116, 

96 1, 117, 3, 117, 847, 8, 117, 1, 118, 1, 118, 1, 118, 1, 119, 4, 119, 853, 8, 119, 11, 

97 119, 12, 119, 854, 1, 120, 1, 120, 5, 120, 859, 8, 120, 10, 120, 12, 120, 862, 9, 120, 

98 1, 121, 1, 121, 3, 121, 866, 8, 121, 1, 121, 3, 121, 869, 8, 121, 1, 121, 1, 121, 3, 

99 121, 873, 8, 121, 1, 122, 3, 122, 876, 8, 122, 1, 123, 1, 123, 3, 123, 880, 8, 123, 

100 4, 709, 722, 814, 827, 0, 124, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 

101 19, 10, 21, 11, 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 

102 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, 

103 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, 81, 41, 83, 42, 

104 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 

105 53, 107, 54, 109, 55, 111, 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 

106 125, 63, 127, 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 

107 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, 

108 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, 179, 90, 181, 

109 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, 195, 0, 197, 0, 199, 0, 201, 

110 0, 203, 0, 205, 0, 207, 0, 209, 0, 211, 0, 213, 0, 215, 0, 217, 0, 219, 0, 221, 0, 223, 

111 0, 225, 0, 227, 0, 229, 0, 231, 0, 233, 0, 235, 0, 237, 0, 239, 0, 241, 0, 243, 0, 245, 

112 0, 247, 0, 1, 0, 25, 6, 0, 70, 70, 82, 82, 85, 85, 102, 102, 114, 114, 117, 117, 2, 0, 

113 70, 70, 102, 102, 2, 0, 82, 82, 114, 114, 2, 0, 66, 66, 98, 98, 2, 0, 79, 79, 111, 111, 

114 2, 0, 88, 88, 120, 120, 2, 0, 74, 74, 106, 106, 4, 0, 10, 10, 12, 13, 39, 39, 92, 92, 

115 4, 0, 10, 10, 12, 13, 34, 34, 92, 92, 1, 0, 92, 92, 1, 0, 49, 57, 1, 0, 48, 57, 1, 0, 48, 

116 55, 3, 0, 48, 57, 65, 70, 97, 102, 1, 0, 48, 49, 2, 0, 69, 69, 101, 101, 2, 0, 43, 43, 

117 45, 45, 5, 0, 0, 9, 11, 12, 14, 38, 40, 91, 93, 127, 5, 0, 0, 9, 11, 12, 14, 33, 35, 91, 

118 93, 127, 2, 0, 0, 91, 93, 127, 1, 0, 0, 127, 2, 0, 9, 9, 32, 32, 2, 0, 10, 10, 12, 13, 295, 

119 0, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 

120 577, 592, 705, 710, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 

121 908, 910, 929, 931, 974, 976, 1013, 1015, 1153, 1162, 1230, 1232, 1273, 1280, 

122 1295, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 

123 1600, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 

124 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1901, 1920, 1957, 1969, 1969, 

125 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2429, 2429, 2437, 2444, 2447, 

126 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 

127 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 

128 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 

129 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 

130 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 

131 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 

132 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 

133 2979, 2980, 2984, 2986, 2990, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 

134 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 

135 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 

136 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 

137 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 

138 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 

139 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 

140 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 

141 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4346, 4348, 4348, 4352, 

142 4441, 4447, 4514, 4520, 4601, 4608, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 

143 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 

144 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 

145 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 

146 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6000, 6016, 6067, 

147 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6400, 6428, 6480, 6509, 6512, 

148 6516, 6528, 6569, 6593, 6599, 6656, 6678, 7424, 7615, 7680, 7835, 7840, 7929, 

149 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 

150 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 

151 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 

152 8305, 8319, 8319, 8336, 8340, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 

153 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8497, 8499, 8505, 8508, 

154 8511, 8517, 8521, 8544, 8579, 11264, 11310, 11312, 11358, 11392, 11492, 11520, 

155 11557, 11568, 11621, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 

156 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 

157 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 

158 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12588, 12593, 12686, 12704, 

159 12727, 12784, 12799, 13312, 19893, 19968, 40891, 40960, 42124, 43008, 43009, 

160 43011, 43013, 43015, 43018, 43020, 43042, 44032, 55203, 63744, 64045, 64048, 

161 64106, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 

162 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 

163 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 

164 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 

165 65487, 65490, 65495, 65498, 65500, 148, 0, 48, 57, 768, 879, 1155, 1158, 1425, 

166 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1552, 1557, 

167 1611, 1630, 1632, 1641, 1648, 1648, 1750, 1756, 1759, 1764, 1767, 1768, 1770, 

168 1773, 1776, 1785, 1809, 1809, 1840, 1866, 1958, 1968, 2305, 2307, 2364, 2364, 

169 2366, 2381, 2385, 2388, 2402, 2403, 2406, 2415, 2433, 2435, 2492, 2492, 2494, 

170 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2530, 2531, 2534, 2543, 2561, 2563, 

171 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2662, 2673, 2689, 2691, 2748, 

172 2748, 2750, 2757, 2759, 2761, 2763, 2765, 2786, 2787, 2790, 2799, 2817, 2819, 

173 2876, 2876, 2878, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2918, 2927, 2946, 

174 2946, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3046, 3055, 3073, 3075, 

175 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3174, 3183, 3202, 3203, 3260, 

176 3260, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3302, 3311, 3330, 3331, 

177 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3430, 3439, 3458, 3459, 3530, 

178 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3633, 3633, 3636, 3642, 

179 3655, 3662, 3664, 3673, 3761, 3761, 3764, 3769, 3771, 3772, 3784, 3789, 3792, 

180 3801, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3903, 

181 3953, 3972, 3974, 3975, 3984, 3991, 3993, 4028, 4038, 4038, 4140, 4146, 4150, 

182 4153, 4160, 4169, 4182, 4185, 4959, 4959, 4969, 4977, 5906, 5908, 5938, 5940, 

183 5970, 5971, 6002, 6003, 6070, 6099, 6109, 6109, 6112, 6121, 6155, 6157, 6160, 

184 6169, 6313, 6313, 6432, 6443, 6448, 6459, 6470, 6479, 6576, 6592, 6600, 6601, 

185 6608, 6617, 6679, 6683, 7616, 7619, 8255, 8256, 8276, 8276, 8400, 8412, 8417, 

186 8417, 8421, 8427, 12330, 12335, 12441, 12442, 43010, 43010, 43014, 43014, 43019, 

187 43019, 43043, 43047, 64286, 64286, 65024, 65039, 65056, 65059, 65075, 65076, 

188 65101, 65103, 65296, 65305, 65343, 65343, 913, 0, 1, 1, 0, 0, 0, 0, 3, 1, 0, 0, 0, 

189 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, 

190 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, 

191 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, 

192 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, 

193 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, 

194 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, 

195 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, 

196 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, 

197 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, 

198 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, 

199 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, 

200 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, 

201 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, 

202 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, 

203 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, 

204 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, 

205 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, 

206 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 

207 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 

208 1, 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 1, 251, 1, 0, 0, 0, 

209 3, 256, 1, 0, 0, 0, 5, 262, 1, 0, 0, 0, 7, 264, 1, 0, 0, 0, 9, 268, 1, 0, 0, 0, 11, 275, 1, 

210 0, 0, 0, 13, 281, 1, 0, 0, 0, 15, 286, 1, 0, 0, 0, 17, 293, 1, 0, 0, 0, 19, 296, 1, 0, 0, 

211 0, 21, 303, 1, 0, 0, 0, 23, 312, 1, 0, 0, 0, 25, 319, 1, 0, 0, 0, 27, 322, 1, 0, 0, 0, 29, 

212 327, 1, 0, 0, 0, 31, 332, 1, 0, 0, 0, 33, 338, 1, 0, 0, 0, 35, 342, 1, 0, 0, 0, 37, 345, 

213 1, 0, 0, 0, 39, 349, 1, 0, 0, 0, 41, 357, 1, 0, 0, 0, 43, 362, 1, 0, 0, 0, 45, 369, 1, 0, 

214 0, 0, 47, 376, 1, 0, 0, 0, 49, 379, 1, 0, 0, 0, 51, 383, 1, 0, 0, 0, 53, 387, 1, 0, 0, 0, 

215 55, 390, 1, 0, 0, 0, 57, 395, 1, 0, 0, 0, 59, 400, 1, 0, 0, 0, 61, 406, 1, 0, 0, 0, 63, 412, 

216 1, 0, 0, 0, 65, 418, 1, 0, 0, 0, 67, 422, 1, 0, 0, 0, 69, 427, 1, 0, 0, 0, 71, 436, 1, 0, 

217 0, 0, 73, 442, 1, 0, 0, 0, 75, 448, 1, 0, 0, 0, 77, 466, 1, 0, 0, 0, 79, 470, 1, 0, 0, 0, 

218 81, 482, 1, 0, 0, 0, 83, 493, 1, 0, 0, 0, 85, 511, 1, 0, 0, 0, 87, 513, 1, 0, 0, 0, 89, 520, 

219 1, 0, 0, 0, 91, 527, 1, 0, 0, 0, 93, 536, 1, 0, 0, 0, 95, 540, 1, 0, 0, 0, 97, 544, 1, 0, 

220 0, 0, 99, 546, 1, 0, 0, 0, 101, 550, 1, 0, 0, 0, 103, 552, 1, 0, 0, 0, 105, 555, 1, 0, 0, 

221 0, 107, 558, 1, 0, 0, 0, 109, 560, 1, 0, 0, 0, 111, 562, 1, 0, 0, 0, 113, 564, 1, 0, 0, 

222 0, 115, 567, 1, 0, 0, 0, 117, 569, 1, 0, 0, 0, 119, 572, 1, 0, 0, 0, 121, 575, 1, 0, 0, 

223 0, 123, 577, 1, 0, 0, 0, 125, 579, 1, 0, 0, 0, 127, 581, 1, 0, 0, 0, 129, 584, 1, 0, 0, 

224 0, 131, 587, 1, 0, 0, 0, 133, 589, 1, 0, 0, 0, 135, 591, 1, 0, 0, 0, 137, 593, 1, 0, 0, 

225 0, 139, 595, 1, 0, 0, 0, 141, 598, 1, 0, 0, 0, 143, 600, 1, 0, 0, 0, 145, 603, 1, 0, 0, 

226 0, 147, 606, 1, 0, 0, 0, 149, 608, 1, 0, 0, 0, 151, 610, 1, 0, 0, 0, 153, 613, 1, 0, 0, 

227 0, 155, 616, 1, 0, 0, 0, 157, 619, 1, 0, 0, 0, 159, 622, 1, 0, 0, 0, 161, 625, 1, 0, 0, 

228 0, 163, 627, 1, 0, 0, 0, 165, 630, 1, 0, 0, 0, 167, 633, 1, 0, 0, 0, 169, 636, 1, 0, 0, 

229 0, 171, 639, 1, 0, 0, 0, 173, 642, 1, 0, 0, 0, 175, 645, 1, 0, 0, 0, 177, 648, 1, 0, 0, 

230 0, 179, 651, 1, 0, 0, 0, 181, 654, 1, 0, 0, 0, 183, 657, 1, 0, 0, 0, 185, 661, 1, 0, 0, 

231 0, 187, 665, 1, 0, 0, 0, 189, 669, 1, 0, 0, 0, 191, 676, 1, 0, 0, 0, 193, 680, 1, 0, 0, 

232 0, 195, 700, 1, 0, 0, 0, 197, 728, 1, 0, 0, 0, 199, 732, 1, 0, 0, 0, 201, 734, 1, 0, 0, 

233 0, 203, 740, 1, 0, 0, 0, 205, 742, 1, 0, 0, 0, 207, 744, 1, 0, 0, 0, 209, 746, 1, 0, 0, 

234 0, 211, 748, 1, 0, 0, 0, 213, 750, 1, 0, 0, 0, 215, 759, 1, 0, 0, 0, 217, 763, 1, 0, 0, 

235 0, 219, 768, 1, 0, 0, 0, 221, 772, 1, 0, 0, 0, 223, 778, 1, 0, 0, 0, 225, 805, 1, 0, 0, 

236 0, 227, 833, 1, 0, 0, 0, 229, 837, 1, 0, 0, 0, 231, 840, 1, 0, 0, 0, 233, 843, 1, 0, 0, 

237 0, 235, 846, 1, 0, 0, 0, 237, 848, 1, 0, 0, 0, 239, 852, 1, 0, 0, 0, 241, 856, 1, 0, 0, 

238 0, 243, 863, 1, 0, 0, 0, 245, 875, 1, 0, 0, 0, 247, 879, 1, 0, 0, 0, 249, 252, 3, 81, 40, 

239 0, 250, 252, 3, 83, 41, 0, 251, 249, 1, 0, 0, 0, 251, 250, 1, 0, 0, 0, 252, 2, 1, 0, 0, 

240 0, 253, 257, 3, 5, 2, 0, 254, 257, 3, 93, 46, 0, 255, 257, 3, 95, 47, 0, 256, 253, 1, 

241 0, 0, 0, 256, 254, 1, 0, 0, 0, 256, 255, 1, 0, 0, 0, 257, 4, 1, 0, 0, 0, 258, 263, 3, 85, 

242 42, 0, 259, 263, 3, 87, 43, 0, 260, 263, 3, 89, 44, 0, 261, 263, 3, 91, 45, 0, 262, 258, 

243 1, 0, 0, 0, 262, 259, 1, 0, 0, 0, 262, 260, 1, 0, 0, 0, 262, 261, 1, 0, 0, 0, 263, 6, 1, 

244 0, 0, 0, 264, 265, 5, 100, 0, 0, 265, 266, 5, 101, 0, 0, 266, 267, 5, 102, 0, 0, 267, 

245 8, 1, 0, 0, 0, 268, 269, 5, 114, 0, 0, 269, 270, 5, 101, 0, 0, 270, 271, 5, 116, 0, 0, 

246 271, 272, 5, 117, 0, 0, 272, 273, 5, 114, 0, 0, 273, 274, 5, 110, 0, 0, 274, 10, 1, 0, 

247 0, 0, 275, 276, 5, 114, 0, 0, 276, 277, 5, 97, 0, 0, 277, 278, 5, 105, 0, 0, 278, 279, 

248 5, 115, 0, 0, 279, 280, 5, 101, 0, 0, 280, 12, 1, 0, 0, 0, 281, 282, 5, 102, 0, 0, 282, 

249 283, 5, 114, 0, 0, 283, 284, 5, 111, 0, 0, 284, 285, 5, 109, 0, 0, 285, 14, 1, 0, 0, 0, 

250 286, 287, 5, 105, 0, 0, 287, 288, 5, 109, 0, 0, 288, 289, 5, 112, 0, 0, 289, 290, 5, 

251 111, 0, 0, 290, 291, 5, 114, 0, 0, 291, 292, 5, 116, 0, 0, 292, 16, 1, 0, 0, 0, 293, 294, 

252 5, 97, 0, 0, 294, 295, 5, 115, 0, 0, 295, 18, 1, 0, 0, 0, 296, 297, 5, 103, 0, 0, 297, 

253 298, 5, 108, 0, 0, 298, 299, 5, 111, 0, 0, 299, 300, 5, 98, 0, 0, 300, 301, 5, 97, 0, 

254 0, 301, 302, 5, 108, 0, 0, 302, 20, 1, 0, 0, 0, 303, 304, 5, 110, 0, 0, 304, 305, 5, 111, 

255 0, 0, 305, 306, 5, 110, 0, 0, 306, 307, 5, 108, 0, 0, 307, 308, 5, 111, 0, 0, 308, 309, 

256 5, 99, 0, 0, 309, 310, 5, 97, 0, 0, 310, 311, 5, 108, 0, 0, 311, 22, 1, 0, 0, 0, 312, 313, 

257 5, 97, 0, 0, 313, 314, 5, 115, 0, 0, 314, 315, 5, 115, 0, 0, 315, 316, 5, 101, 0, 0, 316, 

258 317, 5, 114, 0, 0, 317, 318, 5, 116, 0, 0, 318, 24, 1, 0, 0, 0, 319, 320, 5, 105, 0, 0, 

259 320, 321, 5, 102, 0, 0, 321, 26, 1, 0, 0, 0, 322, 323, 5, 101, 0, 0, 323, 324, 5, 108, 

260 0, 0, 324, 325, 5, 105, 0, 0, 325, 326, 5, 102, 0, 0, 326, 28, 1, 0, 0, 0, 327, 328, 5, 

261 101, 0, 0, 328, 329, 5, 108, 0, 0, 329, 330, 5, 115, 0, 0, 330, 331, 5, 101, 0, 0, 331, 

262 30, 1, 0, 0, 0, 332, 333, 5, 119, 0, 0, 333, 334, 5, 104, 0, 0, 334, 335, 5, 105, 0, 0, 

263 335, 336, 5, 108, 0, 0, 336, 337, 5, 101, 0, 0, 337, 32, 1, 0, 0, 0, 338, 339, 5, 102, 

264 0, 0, 339, 340, 5, 111, 0, 0, 340, 341, 5, 114, 0, 0, 341, 34, 1, 0, 0, 0, 342, 343, 5, 

265 105, 0, 0, 343, 344, 5, 110, 0, 0, 344, 36, 1, 0, 0, 0, 345, 346, 5, 116, 0, 0, 346, 347, 

266 5, 114, 0, 0, 347, 348, 5, 121, 0, 0, 348, 38, 1, 0, 0, 0, 349, 350, 5, 102, 0, 0, 350, 

267 351, 5, 105, 0, 0, 351, 352, 5, 110, 0, 0, 352, 353, 5, 97, 0, 0, 353, 354, 5, 108, 0, 

268 0, 354, 355, 5, 108, 0, 0, 355, 356, 5, 121, 0, 0, 356, 40, 1, 0, 0, 0, 357, 358, 5, 119, 

269 0, 0, 358, 359, 5, 105, 0, 0, 359, 360, 5, 116, 0, 0, 360, 361, 5, 104, 0, 0, 361, 42, 

270 1, 0, 0, 0, 362, 363, 5, 101, 0, 0, 363, 364, 5, 120, 0, 0, 364, 365, 5, 99, 0, 0, 365, 

271 366, 5, 101, 0, 0, 366, 367, 5, 112, 0, 0, 367, 368, 5, 116, 0, 0, 368, 44, 1, 0, 0, 0, 

272 369, 370, 5, 108, 0, 0, 370, 371, 5, 97, 0, 0, 371, 372, 5, 109, 0, 0, 372, 373, 5, 98, 

273 0, 0, 373, 374, 5, 100, 0, 0, 374, 375, 5, 97, 0, 0, 375, 46, 1, 0, 0, 0, 376, 377, 5, 

274 111, 0, 0, 377, 378, 5, 114, 0, 0, 378, 48, 1, 0, 0, 0, 379, 380, 5, 97, 0, 0, 380, 381, 

275 5, 110, 0, 0, 381, 382, 5, 100, 0, 0, 382, 50, 1, 0, 0, 0, 383, 384, 5, 110, 0, 0, 384, 

276 385, 5, 111, 0, 0, 385, 386, 5, 116, 0, 0, 386, 52, 1, 0, 0, 0, 387, 388, 5, 105, 0, 0, 

277 388, 389, 5, 115, 0, 0, 389, 54, 1, 0, 0, 0, 390, 391, 5, 78, 0, 0, 391, 392, 5, 111, 

278 0, 0, 392, 393, 5, 110, 0, 0, 393, 394, 5, 101, 0, 0, 394, 56, 1, 0, 0, 0, 395, 396, 5, 

279 84, 0, 0, 396, 397, 5, 114, 0, 0, 397, 398, 5, 117, 0, 0, 398, 399, 5, 101, 0, 0, 399, 

280 58, 1, 0, 0, 0, 400, 401, 5, 70, 0, 0, 401, 402, 5, 97, 0, 0, 402, 403, 5, 108, 0, 0, 403, 

281 404, 5, 115, 0, 0, 404, 405, 5, 101, 0, 0, 405, 60, 1, 0, 0, 0, 406, 407, 5, 99, 0, 0, 

282 407, 408, 5, 108, 0, 0, 408, 409, 5, 97, 0, 0, 409, 410, 5, 115, 0, 0, 410, 411, 5, 115, 

283 0, 0, 411, 62, 1, 0, 0, 0, 412, 413, 5, 121, 0, 0, 413, 414, 5, 105, 0, 0, 414, 415, 5, 

284 101, 0, 0, 415, 416, 5, 108, 0, 0, 416, 417, 5, 100, 0, 0, 417, 64, 1, 0, 0, 0, 418, 419, 

285 5, 100, 0, 0, 419, 420, 5, 101, 0, 0, 420, 421, 5, 108, 0, 0, 421, 66, 1, 0, 0, 0, 422, 

286 423, 5, 112, 0, 0, 423, 424, 5, 97, 0, 0, 424, 425, 5, 115, 0, 0, 425, 426, 5, 115, 0, 

287 0, 426, 68, 1, 0, 0, 0, 427, 428, 5, 99, 0, 0, 428, 429, 5, 111, 0, 0, 429, 430, 5, 110, 

288 0, 0, 430, 431, 5, 116, 0, 0, 431, 432, 5, 105, 0, 0, 432, 433, 5, 110, 0, 0, 433, 434, 

289 5, 117, 0, 0, 434, 435, 5, 101, 0, 0, 435, 70, 1, 0, 0, 0, 436, 437, 5, 98, 0, 0, 437, 

290 438, 5, 114, 0, 0, 438, 439, 5, 101, 0, 0, 439, 440, 5, 97, 0, 0, 440, 441, 5, 107, 0, 

291 0, 441, 72, 1, 0, 0, 0, 442, 443, 5, 97, 0, 0, 443, 444, 5, 115, 0, 0, 444, 445, 5, 121, 

292 0, 0, 445, 446, 5, 110, 0, 0, 446, 447, 5, 99, 0, 0, 447, 74, 1, 0, 0, 0, 448, 449, 5, 

293 97, 0, 0, 449, 450, 5, 119, 0, 0, 450, 451, 5, 97, 0, 0, 451, 452, 5, 105, 0, 0, 452, 

294 453, 5, 116, 0, 0, 453, 76, 1, 0, 0, 0, 454, 455, 4, 38, 0, 0, 455, 467, 3, 239, 119, 

295 0, 456, 458, 5, 13, 0, 0, 457, 456, 1, 0, 0, 0, 457, 458, 1, 0, 0, 0, 458, 459, 1, 0, 0, 

296 0, 459, 462, 5, 10, 0, 0, 460, 462, 2, 12, 13, 0, 461, 457, 1, 0, 0, 0, 461, 460, 1, 0, 

297 0, 0, 462, 464, 1, 0, 0, 0, 463, 465, 3, 239, 119, 0, 464, 463, 1, 0, 0, 0, 464, 465, 

298 1, 0, 0, 0, 465, 467, 1, 0, 0, 0, 466, 454, 1, 0, 0, 0, 466, 461, 1, 0, 0, 0, 467, 468, 

299 1, 0, 0, 0, 468, 469, 6, 38, 0, 0, 469, 78, 1, 0, 0, 0, 470, 474, 3, 245, 122, 0, 471, 

300 473, 3, 247, 123, 0, 472, 471, 1, 0, 0, 0, 473, 476, 1, 0, 0, 0, 474, 472, 1, 0, 0, 0, 

301 474, 475, 1, 0, 0, 0, 475, 80, 1, 0, 0, 0, 476, 474, 1, 0, 0, 0, 477, 483, 7, 0, 0, 0, 478, 

302 479, 7, 1, 0, 0, 479, 483, 7, 2, 0, 0, 480, 481, 7, 2, 0, 0, 481, 483, 7, 1, 0, 0, 482, 

303 477, 1, 0, 0, 0, 482, 478, 1, 0, 0, 0, 482, 480, 1, 0, 0, 0, 482, 483, 1, 0, 0, 0, 483, 

304 486, 1, 0, 0, 0, 484, 487, 3, 195, 97, 0, 485, 487, 3, 197, 98, 0, 486, 484, 1, 0, 0, 

305 0, 486, 485, 1, 0, 0, 0, 487, 82, 1, 0, 0, 0, 488, 494, 7, 3, 0, 0, 489, 490, 7, 3, 0, 0, 

306 490, 494, 7, 2, 0, 0, 491, 492, 7, 2, 0, 0, 492, 494, 7, 3, 0, 0, 493, 488, 1, 0, 0, 0, 

307 493, 489, 1, 0, 0, 0, 493, 491, 1, 0, 0, 0, 494, 497, 1, 0, 0, 0, 495, 498, 3, 225, 112, 

308 0, 496, 498, 3, 227, 113, 0, 497, 495, 1, 0, 0, 0, 497, 496, 1, 0, 0, 0, 498, 84, 1, 0, 

309 0, 0, 499, 503, 3, 205, 102, 0, 500, 502, 3, 207, 103, 0, 501, 500, 1, 0, 0, 0, 502, 

310 505, 1, 0, 0, 0, 503, 501, 1, 0, 0, 0, 503, 504, 1, 0, 0, 0, 504, 512, 1, 0, 0, 0, 505, 

311 503, 1, 0, 0, 0, 506, 508, 5, 48, 0, 0, 507, 506, 1, 0, 0, 0, 508, 509, 1, 0, 0, 0, 509, 

312 507, 1, 0, 0, 0, 509, 510, 1, 0, 0, 0, 510, 512, 1, 0, 0, 0, 511, 499, 1, 0, 0, 0, 511, 

313 507, 1, 0, 0, 0, 512, 86, 1, 0, 0, 0, 513, 514, 5, 48, 0, 0, 514, 516, 7, 4, 0, 0, 515, 

314 517, 3, 209, 104, 0, 516, 515, 1, 0, 0, 0, 517, 518, 1, 0, 0, 0, 518, 516, 1, 0, 0, 0, 

315 518, 519, 1, 0, 0, 0, 519, 88, 1, 0, 0, 0, 520, 521, 5, 48, 0, 0, 521, 523, 7, 5, 0, 0, 

316 522, 524, 3, 211, 105, 0, 523, 522, 1, 0, 0, 0, 524, 525, 1, 0, 0, 0, 525, 523, 1, 0, 

317 0, 0, 525, 526, 1, 0, 0, 0, 526, 90, 1, 0, 0, 0, 527, 528, 5, 48, 0, 0, 528, 530, 7, 3, 

318 0, 0, 529, 531, 3, 213, 106, 0, 530, 529, 1, 0, 0, 0, 531, 532, 1, 0, 0, 0, 532, 530, 

319 1, 0, 0, 0, 532, 533, 1, 0, 0, 0, 533, 92, 1, 0, 0, 0, 534, 537, 3, 215, 107, 0, 535, 537, 

320 3, 217, 108, 0, 536, 534, 1, 0, 0, 0, 536, 535, 1, 0, 0, 0, 537, 94, 1, 0, 0, 0, 538, 541, 

321 3, 93, 46, 0, 539, 541, 3, 219, 109, 0, 540, 538, 1, 0, 0, 0, 540, 539, 1, 0, 0, 0, 541, 

322 542, 1, 0, 0, 0, 542, 543, 7, 6, 0, 0, 543, 96, 1, 0, 0, 0, 544, 545, 5, 46, 0, 0, 545, 

323 98, 1, 0, 0, 0, 546, 547, 5, 46, 0, 0, 547, 548, 5, 46, 0, 0, 548, 549, 5, 46, 0, 0, 549, 

324 100, 1, 0, 0, 0, 550, 551, 5, 42, 0, 0, 551, 102, 1, 0, 0, 0, 552, 553, 5, 40, 0, 0, 553, 

325 554, 6, 51, 1, 0, 554, 104, 1, 0, 0, 0, 555, 556, 5, 41, 0, 0, 556, 557, 6, 52, 2, 0, 557, 

326 106, 1, 0, 0, 0, 558, 559, 5, 44, 0, 0, 559, 108, 1, 0, 0, 0, 560, 561, 5, 58, 0, 0, 561, 

327 110, 1, 0, 0, 0, 562, 563, 5, 59, 0, 0, 563, 112, 1, 0, 0, 0, 564, 565, 5, 42, 0, 0, 565, 

328 566, 5, 42, 0, 0, 566, 114, 1, 0, 0, 0, 567, 568, 5, 61, 0, 0, 568, 116, 1, 0, 0, 0, 569, 

329 570, 5, 91, 0, 0, 570, 571, 6, 58, 3, 0, 571, 118, 1, 0, 0, 0, 572, 573, 5, 93, 0, 0, 573, 

330 574, 6, 59, 4, 0, 574, 120, 1, 0, 0, 0, 575, 576, 5, 124, 0, 0, 576, 122, 1, 0, 0, 0, 577, 

331 578, 5, 94, 0, 0, 578, 124, 1, 0, 0, 0, 579, 580, 5, 38, 0, 0, 580, 126, 1, 0, 0, 0, 581, 

332 582, 5, 60, 0, 0, 582, 583, 5, 60, 0, 0, 583, 128, 1, 0, 0, 0, 584, 585, 5, 62, 0, 0, 585, 

333 586, 5, 62, 0, 0, 586, 130, 1, 0, 0, 0, 587, 588, 5, 43, 0, 0, 588, 132, 1, 0, 0, 0, 589, 

334 590, 5, 45, 0, 0, 590, 134, 1, 0, 0, 0, 591, 592, 5, 47, 0, 0, 592, 136, 1, 0, 0, 0, 593, 

335 594, 5, 37, 0, 0, 594, 138, 1, 0, 0, 0, 595, 596, 5, 47, 0, 0, 596, 597, 5, 47, 0, 0, 597, 

336 140, 1, 0, 0, 0, 598, 599, 5, 126, 0, 0, 599, 142, 1, 0, 0, 0, 600, 601, 5, 123, 0, 0, 

337 601, 602, 6, 71, 5, 0, 602, 144, 1, 0, 0, 0, 603, 604, 5, 125, 0, 0, 604, 605, 6, 72, 

338 6, 0, 605, 146, 1, 0, 0, 0, 606, 607, 5, 60, 0, 0, 607, 148, 1, 0, 0, 0, 608, 609, 5, 62, 

339 0, 0, 609, 150, 1, 0, 0, 0, 610, 611, 5, 61, 0, 0, 611, 612, 5, 61, 0, 0, 612, 152, 1, 

340 0, 0, 0, 613, 614, 5, 62, 0, 0, 614, 615, 5, 61, 0, 0, 615, 154, 1, 0, 0, 0, 616, 617, 

341 5, 60, 0, 0, 617, 618, 5, 61, 0, 0, 618, 156, 1, 0, 0, 0, 619, 620, 5, 60, 0, 0, 620, 621, 

342 5, 62, 0, 0, 621, 158, 1, 0, 0, 0, 622, 623, 5, 33, 0, 0, 623, 624, 5, 61, 0, 0, 624, 160, 

343 1, 0, 0, 0, 625, 626, 5, 64, 0, 0, 626, 162, 1, 0, 0, 0, 627, 628, 5, 45, 0, 0, 628, 629, 

344 5, 62, 0, 0, 629, 164, 1, 0, 0, 0, 630, 631, 5, 43, 0, 0, 631, 632, 5, 61, 0, 0, 632, 166, 

345 1, 0, 0, 0, 633, 634, 5, 45, 0, 0, 634, 635, 5, 61, 0, 0, 635, 168, 1, 0, 0, 0, 636, 637, 

346 5, 42, 0, 0, 637, 638, 5, 61, 0, 0, 638, 170, 1, 0, 0, 0, 639, 640, 5, 64, 0, 0, 640, 641, 

347 5, 61, 0, 0, 641, 172, 1, 0, 0, 0, 642, 643, 5, 47, 0, 0, 643, 644, 5, 61, 0, 0, 644, 174, 

348 1, 0, 0, 0, 645, 646, 5, 37, 0, 0, 646, 647, 5, 61, 0, 0, 647, 176, 1, 0, 0, 0, 648, 649, 

349 5, 38, 0, 0, 649, 650, 5, 61, 0, 0, 650, 178, 1, 0, 0, 0, 651, 652, 5, 124, 0, 0, 652, 

350 653, 5, 61, 0, 0, 653, 180, 1, 0, 0, 0, 654, 655, 5, 94, 0, 0, 655, 656, 5, 61, 0, 0, 656, 

351 182, 1, 0, 0, 0, 657, 658, 5, 60, 0, 0, 658, 659, 5, 60, 0, 0, 659, 660, 5, 61, 0, 0, 660, 

352 184, 1, 0, 0, 0, 661, 662, 5, 62, 0, 0, 662, 663, 5, 62, 0, 0, 663, 664, 5, 61, 0, 0, 664, 

353 186, 1, 0, 0, 0, 665, 666, 5, 42, 0, 0, 666, 667, 5, 42, 0, 0, 667, 668, 5, 61, 0, 0, 668, 

354 188, 1, 0, 0, 0, 669, 670, 5, 47, 0, 0, 670, 671, 5, 47, 0, 0, 671, 672, 5, 61, 0, 0, 672, 

355 190, 1, 0, 0, 0, 673, 677, 3, 239, 119, 0, 674, 677, 3, 241, 120, 0, 675, 677, 3, 243, 

356 121, 0, 676, 673, 1, 0, 0, 0, 676, 674, 1, 0, 0, 0, 676, 675, 1, 0, 0, 0, 677, 678, 1, 

357 0, 0, 0, 678, 679, 6, 95, 7, 0, 679, 192, 1, 0, 0, 0, 680, 681, 9, 0, 0, 0, 681, 194, 1, 

358 0, 0, 0, 682, 687, 5, 39, 0, 0, 683, 686, 3, 203, 101, 0, 684, 686, 8, 7, 0, 0, 685, 683, 

359 1, 0, 0, 0, 685, 684, 1, 0, 0, 0, 686, 689, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 687, 688, 

360 1, 0, 0, 0, 688, 690, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 690, 701, 5, 39, 0, 0, 691, 696, 

361 5, 34, 0, 0, 692, 695, 3, 203, 101, 0, 693, 695, 8, 8, 0, 0, 694, 692, 1, 0, 0, 0, 694, 

362 693, 1, 0, 0, 0, 695, 698, 1, 0, 0, 0, 696, 694, 1, 0, 0, 0, 696, 697, 1, 0, 0, 0, 697, 

363 699, 1, 0, 0, 0, 698, 696, 1, 0, 0, 0, 699, 701, 5, 34, 0, 0, 700, 682, 1, 0, 0, 0, 700, 

364 691, 1, 0, 0, 0, 701, 196, 1, 0, 0, 0, 702, 703, 5, 39, 0, 0, 703, 704, 5, 39, 0, 0, 704, 

365 705, 5, 39, 0, 0, 705, 709, 1, 0, 0, 0, 706, 708, 3, 199, 99, 0, 707, 706, 1, 0, 0, 0, 

366 708, 711, 1, 0, 0, 0, 709, 710, 1, 0, 0, 0, 709, 707, 1, 0, 0, 0, 710, 712, 1, 0, 0, 0, 

367 711, 709, 1, 0, 0, 0, 712, 713, 5, 39, 0, 0, 713, 714, 5, 39, 0, 0, 714, 729, 5, 39, 0, 

368 0, 715, 716, 5, 34, 0, 0, 716, 717, 5, 34, 0, 0, 717, 718, 5, 34, 0, 0, 718, 722, 1, 0, 

369 0, 0, 719, 721, 3, 199, 99, 0, 720, 719, 1, 0, 0, 0, 721, 724, 1, 0, 0, 0, 722, 723, 1, 

370 0, 0, 0, 722, 720, 1, 0, 0, 0, 723, 725, 1, 0, 0, 0, 724, 722, 1, 0, 0, 0, 725, 726, 5, 

371 34, 0, 0, 726, 727, 5, 34, 0, 0, 727, 729, 5, 34, 0, 0, 728, 702, 1, 0, 0, 0, 728, 715, 

372 1, 0, 0, 0, 729, 198, 1, 0, 0, 0, 730, 733, 3, 201, 100, 0, 731, 733, 3, 203, 101, 0, 

373 732, 730, 1, 0, 0, 0, 732, 731, 1, 0, 0, 0, 733, 200, 1, 0, 0, 0, 734, 735, 8, 9, 0, 0, 

374 735, 202, 1, 0, 0, 0, 736, 737, 5, 92, 0, 0, 737, 741, 9, 0, 0, 0, 738, 739, 5, 92, 0, 

375 0, 739, 741, 3, 77, 38, 0, 740, 736, 1, 0, 0, 0, 740, 738, 1, 0, 0, 0, 741, 204, 1, 0, 

376 0, 0, 742, 743, 7, 10, 0, 0, 743, 206, 1, 0, 0, 0, 744, 745, 7, 11, 0, 0, 745, 208, 1, 

377 0, 0, 0, 746, 747, 7, 12, 0, 0, 747, 210, 1, 0, 0, 0, 748, 749, 7, 13, 0, 0, 749, 212, 

378 1, 0, 0, 0, 750, 751, 7, 14, 0, 0, 751, 214, 1, 0, 0, 0, 752, 754, 3, 219, 109, 0, 753, 

379 752, 1, 0, 0, 0, 753, 754, 1, 0, 0, 0, 754, 755, 1, 0, 0, 0, 755, 760, 3, 221, 110, 0, 

380 756, 757, 3, 219, 109, 0, 757, 758, 5, 46, 0, 0, 758, 760, 1, 0, 0, 0, 759, 753, 1, 0, 

381 0, 0, 759, 756, 1, 0, 0, 0, 760, 216, 1, 0, 0, 0, 761, 764, 3, 219, 109, 0, 762, 764, 

382 3, 215, 107, 0, 763, 761, 1, 0, 0, 0, 763, 762, 1, 0, 0, 0, 764, 765, 1, 0, 0, 0, 765, 

383 766, 3, 223, 111, 0, 766, 218, 1, 0, 0, 0, 767, 769, 3, 207, 103, 0, 768, 767, 1, 0, 

384 0, 0, 769, 770, 1, 0, 0, 0, 770, 768, 1, 0, 0, 0, 770, 771, 1, 0, 0, 0, 771, 220, 1, 0, 

385 0, 0, 772, 774, 5, 46, 0, 0, 773, 775, 3, 207, 103, 0, 774, 773, 1, 0, 0, 0, 775, 776, 

386 1, 0, 0, 0, 776, 774, 1, 0, 0, 0, 776, 777, 1, 0, 0, 0, 777, 222, 1, 0, 0, 0, 778, 780, 

387 7, 15, 0, 0, 779, 781, 7, 16, 0, 0, 780, 779, 1, 0, 0, 0, 780, 781, 1, 0, 0, 0, 781, 783, 

388 1, 0, 0, 0, 782, 784, 3, 207, 103, 0, 783, 782, 1, 0, 0, 0, 784, 785, 1, 0, 0, 0, 785, 

389 783, 1, 0, 0, 0, 785, 786, 1, 0, 0, 0, 786, 224, 1, 0, 0, 0, 787, 792, 5, 39, 0, 0, 788, 

390 791, 3, 231, 115, 0, 789, 791, 3, 237, 118, 0, 790, 788, 1, 0, 0, 0, 790, 789, 1, 0, 

391 0, 0, 791, 794, 1, 0, 0, 0, 792, 790, 1, 0, 0, 0, 792, 793, 1, 0, 0, 0, 793, 795, 1, 0, 

392 0, 0, 794, 792, 1, 0, 0, 0, 795, 806, 5, 39, 0, 0, 796, 801, 5, 34, 0, 0, 797, 800, 3, 

393 233, 116, 0, 798, 800, 3, 237, 118, 0, 799, 797, 1, 0, 0, 0, 799, 798, 1, 0, 0, 0, 800, 

394 803, 1, 0, 0, 0, 801, 799, 1, 0, 0, 0, 801, 802, 1, 0, 0, 0, 802, 804, 1, 0, 0, 0, 803, 

395 801, 1, 0, 0, 0, 804, 806, 5, 34, 0, 0, 805, 787, 1, 0, 0, 0, 805, 796, 1, 0, 0, 0, 806, 

396 226, 1, 0, 0, 0, 807, 808, 5, 39, 0, 0, 808, 809, 5, 39, 0, 0, 809, 810, 5, 39, 0, 0, 810, 

397 814, 1, 0, 0, 0, 811, 813, 3, 229, 114, 0, 812, 811, 1, 0, 0, 0, 813, 816, 1, 0, 0, 0, 

398 814, 815, 1, 0, 0, 0, 814, 812, 1, 0, 0, 0, 815, 817, 1, 0, 0, 0, 816, 814, 1, 0, 0, 0, 

399 817, 818, 5, 39, 0, 0, 818, 819, 5, 39, 0, 0, 819, 834, 5, 39, 0, 0, 820, 821, 5, 34, 

400 0, 0, 821, 822, 5, 34, 0, 0, 822, 823, 5, 34, 0, 0, 823, 827, 1, 0, 0, 0, 824, 826, 3, 

401 229, 114, 0, 825, 824, 1, 0, 0, 0, 826, 829, 1, 0, 0, 0, 827, 828, 1, 0, 0, 0, 827, 825, 

402 1, 0, 0, 0, 828, 830, 1, 0, 0, 0, 829, 827, 1, 0, 0, 0, 830, 831, 5, 34, 0, 0, 831, 832, 

403 5, 34, 0, 0, 832, 834, 5, 34, 0, 0, 833, 807, 1, 0, 0, 0, 833, 820, 1, 0, 0, 0, 834, 228, 

404 1, 0, 0, 0, 835, 838, 3, 235, 117, 0, 836, 838, 3, 237, 118, 0, 837, 835, 1, 0, 0, 0, 

405 837, 836, 1, 0, 0, 0, 838, 230, 1, 0, 0, 0, 839, 841, 7, 17, 0, 0, 840, 839, 1, 0, 0, 0, 

406 841, 232, 1, 0, 0, 0, 842, 844, 7, 18, 0, 0, 843, 842, 1, 0, 0, 0, 844, 234, 1, 0, 0, 0, 

407 845, 847, 7, 19, 0, 0, 846, 845, 1, 0, 0, 0, 847, 236, 1, 0, 0, 0, 848, 849, 5, 92, 0, 

408 0, 849, 850, 7, 20, 0, 0, 850, 238, 1, 0, 0, 0, 851, 853, 7, 21, 0, 0, 852, 851, 1, 0, 

409 0, 0, 853, 854, 1, 0, 0, 0, 854, 852, 1, 0, 0, 0, 854, 855, 1, 0, 0, 0, 855, 240, 1, 0, 

410 0, 0, 856, 860, 5, 35, 0, 0, 857, 859, 8, 22, 0, 0, 858, 857, 1, 0, 0, 0, 859, 862, 1, 

411 0, 0, 0, 860, 858, 1, 0, 0, 0, 860, 861, 1, 0, 0, 0, 861, 242, 1, 0, 0, 0, 862, 860, 1, 

412 0, 0, 0, 863, 865, 5, 92, 0, 0, 864, 866, 3, 239, 119, 0, 865, 864, 1, 0, 0, 0, 865, 866, 

413 1, 0, 0, 0, 866, 872, 1, 0, 0, 0, 867, 869, 5, 13, 0, 0, 868, 867, 1, 0, 0, 0, 868, 869, 

414 1, 0, 0, 0, 869, 870, 1, 0, 0, 0, 870, 873, 5, 10, 0, 0, 871, 873, 2, 12, 13, 0, 872, 868, 

415 1, 0, 0, 0, 872, 871, 1, 0, 0, 0, 873, 244, 1, 0, 0, 0, 874, 876, 7, 23, 0, 0, 875, 874, 

416 1, 0, 0, 0, 876, 246, 1, 0, 0, 0, 877, 880, 3, 245, 122, 0, 878, 880, 7, 24, 0, 0, 879, 

417 877, 1, 0, 0, 0, 879, 878, 1, 0, 0, 0, 880, 248, 1, 0, 0, 0, 58, 0, 251, 256, 262, 457, 

418 461, 464, 466, 474, 482, 486, 493, 497, 503, 509, 511, 518, 525, 532, 536, 540, 

419 676, 685, 687, 694, 696, 700, 709, 722, 728, 732, 740, 753, 759, 763, 770, 776, 

420 780, 785, 790, 792, 799, 801, 805, 814, 827, 833, 837, 840, 843, 846, 854, 860, 

421 865, 868, 872, 875, 879, 8, 1, 38, 0, 1, 51, 1, 1, 52, 2, 1, 58, 3, 1, 59, 4, 1, 71, 5, 

422 1, 72, 6, 6, 0, 0 

423 ] 

424 

425 

426class Python3Lexer(Lexer): 

427 

428 atn = ATNDeserializer().deserialize(serializedATN()) 

429 

430 decisionsToDFA = [DFA(ds, i) for i, ds in enumerate(atn.decisionToState)] 

431 

432 STRING = 1 

433 NUMBER = 2 

434 INTEGER = 3 

435 DEF = 4 

436 RETURN = 5 

437 RAISE = 6 

438 FROM = 7 

439 IMPORT = 8 

440 AS = 9 

441 GLOBAL = 10 

442 NONLOCAL = 11 

443 ASSERT = 12 

444 IF = 13 

445 ELIF = 14 

446 ELSE = 15 

447 WHILE = 16 

448 FOR = 17 

449 IN = 18 

450 TRY = 19 

451 FINALLY = 20 

452 WITH = 21 

453 EXCEPT = 22 

454 LAMBDA = 23 

455 OR = 24 

456 AND = 25 

457 NOT = 26 

458 IS = 27 

459 NONE = 28 

460 TRUE = 29 

461 FALSE = 30 

462 CLASS = 31 

463 YIELD = 32 

464 DEL = 33 

465 PASS = 34 

466 CONTINUE = 35 

467 BREAK = 36 

468 ASYNC = 37 

469 AWAIT = 38 

470 NEWLINE = 39 

471 NAME = 40 

472 STRING_LITERAL = 41 

473 BYTES_LITERAL = 42 

474 DECIMAL_INTEGER = 43 

475 OCT_INTEGER = 44 

476 HEX_INTEGER = 45 

477 BIN_INTEGER = 46 

478 FLOAT_NUMBER = 47 

479 IMAG_NUMBER = 48 

480 DOT = 49 

481 ELLIPSIS = 50 

482 STAR = 51 

483 OPEN_PAREN = 52 

484 CLOSE_PAREN = 53 

485 COMMA = 54 

486 COLON = 55 

487 SEMI_COLON = 56 

488 POWER = 57 

489 ASSIGN = 58 

490 OPEN_BRACK = 59 

491 CLOSE_BRACK = 60 

492 OR_OP = 61 

493 XOR = 62 

494 AND_OP = 63 

495 LEFT_SHIFT = 64 

496 RIGHT_SHIFT = 65 

497 ADD = 66 

498 MINUS = 67 

499 DIV = 68 

500 MOD = 69 

501 IDIV = 70 

502 NOT_OP = 71 

503 OPEN_BRACE = 72 

504 CLOSE_BRACE = 73 

505 LESS_THAN = 74 

506 GREATER_THAN = 75 

507 EQUALS = 76 

508 GT_EQ = 77 

509 LT_EQ = 78 

510 NOT_EQ_1 = 79 

511 NOT_EQ_2 = 80 

512 AT = 81 

513 ARROW = 82 

514 ADD_ASSIGN = 83 

515 SUB_ASSIGN = 84 

516 MULT_ASSIGN = 85 

517 AT_ASSIGN = 86 

518 DIV_ASSIGN = 87 

519 MOD_ASSIGN = 88 

520 AND_ASSIGN = 89 

521 OR_ASSIGN = 90 

522 XOR_ASSIGN = 91 

523 LEFT_SHIFT_ASSIGN = 92 

524 RIGHT_SHIFT_ASSIGN = 93 

525 POWER_ASSIGN = 94 

526 IDIV_ASSIGN = 95 

527 SKIP_ = 96 

528 UNKNOWN_CHAR = 97 

529 

530 channelNames = [u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN"] 

531 

532 modeNames = ["DEFAULT_MODE"] 

533 

534 literalNames = ["<INVALID>", 

535 "'def'", "'return'", "'raise'", "'from'", "'import'", "'as'", 

536 "'global'", "'nonlocal'", "'assert'", "'if'", "'elif'", "'else'", 

537 "'while'", "'for'", "'in'", "'try'", "'finally'", "'with'", 

538 "'except'", "'lambda'", "'or'", "'and'", "'not'", "'is'", "'None'", 

539 "'True'", "'False'", "'class'", "'yield'", "'del'", "'pass'", 

540 "'continue'", "'break'", "'async'", "'await'", "'.'", "'...'", 

541 "'*'", "'('", "')'", "','", "':'", "';'", "'**'", "'='", "'['", 

542 "']'", "'|'", "'^'", "'&'", "'<<'", "'>>'", "'+'", "'-'", "'/'", 

543 "'%'", "'//'", "'~'", "'{'", "'}'", "'<'", "'>'", "'=='", "'>='", 

544 "'<='", "'<>'", "'!='", "'@'", "'->'", "'+='", "'-='", "'*='", 

545 "'@='", "'/='", "'%='", "'&='", "'|='", "'^='", "'<<='", "'>>='", 

546 "'**='", "'//='"] 

547 

548 symbolicNames = ["<INVALID>", 

549 "STRING", "NUMBER", "INTEGER", "DEF", "RETURN", "RAISE", "FROM", 

550 "IMPORT", "AS", "GLOBAL", "NONLOCAL", "ASSERT", "IF", "ELIF", 

551 "ELSE", "WHILE", "FOR", "IN", "TRY", "FINALLY", "WITH", "EXCEPT", 

552 "LAMBDA", "OR", "AND", "NOT", "IS", "NONE", "TRUE", "FALSE", 

553 "CLASS", "YIELD", "DEL", "PASS", "CONTINUE", "BREAK", "ASYNC", 

554 "AWAIT", "NEWLINE", "NAME", "STRING_LITERAL", "BYTES_LITERAL", 

555 "DECIMAL_INTEGER", "OCT_INTEGER", "HEX_INTEGER", "BIN_INTEGER", 

556 "FLOAT_NUMBER", "IMAG_NUMBER", "DOT", "ELLIPSIS", "STAR", "OPEN_PAREN", 

557 "CLOSE_PAREN", "COMMA", "COLON", "SEMI_COLON", "POWER", "ASSIGN", 

558 "OPEN_BRACK", "CLOSE_BRACK", "OR_OP", "XOR", "AND_OP", "LEFT_SHIFT", 

559 "RIGHT_SHIFT", "ADD", "MINUS", "DIV", "MOD", "IDIV", "NOT_OP", 

560 "OPEN_BRACE", "CLOSE_BRACE", "LESS_THAN", "GREATER_THAN", "EQUALS", 

561 "GT_EQ", "LT_EQ", "NOT_EQ_1", "NOT_EQ_2", "AT", "ARROW", "ADD_ASSIGN", 

562 "SUB_ASSIGN", "MULT_ASSIGN", "AT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", 

563 "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "LEFT_SHIFT_ASSIGN", 

564 "RIGHT_SHIFT_ASSIGN", "POWER_ASSIGN", "IDIV_ASSIGN", "SKIP_", 

565 "UNKNOWN_CHAR"] 

566 

567 ruleNames = ["STRING", "NUMBER", "INTEGER", "DEF", "RETURN", "RAISE", 

568 "FROM", "IMPORT", "AS", "GLOBAL", "NONLOCAL", "ASSERT", 

569 "IF", "ELIF", "ELSE", "WHILE", "FOR", "IN", "TRY", "FINALLY", 

570 "WITH", "EXCEPT", "LAMBDA", "OR", "AND", "NOT", "IS", 

571 "NONE", "TRUE", "FALSE", "CLASS", "YIELD", "DEL", "PASS", 

572 "CONTINUE", "BREAK", "ASYNC", "AWAIT", "NEWLINE", "NAME", 

573 "STRING_LITERAL", "BYTES_LITERAL", "DECIMAL_INTEGER", 

574 "OCT_INTEGER", "HEX_INTEGER", "BIN_INTEGER", "FLOAT_NUMBER", 

575 "IMAG_NUMBER", "DOT", "ELLIPSIS", "STAR", "OPEN_PAREN", 

576 "CLOSE_PAREN", "COMMA", "COLON", "SEMI_COLON", "POWER", 

577 "ASSIGN", "OPEN_BRACK", "CLOSE_BRACK", "OR_OP", "XOR", 

578 "AND_OP", "LEFT_SHIFT", "RIGHT_SHIFT", "ADD", "MINUS", 

579 "DIV", "MOD", "IDIV", "NOT_OP", "OPEN_BRACE", "CLOSE_BRACE", 

580 "LESS_THAN", "GREATER_THAN", "EQUALS", "GT_EQ", "LT_EQ", 

581 "NOT_EQ_1", "NOT_EQ_2", "AT", "ARROW", "ADD_ASSIGN", "SUB_ASSIGN", 

582 "MULT_ASSIGN", "AT_ASSIGN", "DIV_ASSIGN", "MOD_ASSIGN", 

583 "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN", "LEFT_SHIFT_ASSIGN", 

584 "RIGHT_SHIFT_ASSIGN", "POWER_ASSIGN", "IDIV_ASSIGN", "SKIP_", 

585 "UNKNOWN_CHAR", "SHORT_STRING", "LONG_STRING", "LONG_STRING_ITEM", 

586 "LONG_STRING_CHAR", "STRING_ESCAPE_SEQ", "NON_ZERO_DIGIT", 

587 "DIGIT", "OCT_DIGIT", "HEX_DIGIT", "BIN_DIGIT", "POINT_FLOAT", 

588 "EXPONENT_FLOAT", "INT_PART", "FRACTION", "EXPONENT", 

589 "SHORT_BYTES", "LONG_BYTES", "LONG_BYTES_ITEM", "SHORT_BYTES_CHAR_NO_SINGLE_QUOTE", 

590 "SHORT_BYTES_CHAR_NO_DOUBLE_QUOTE", "LONG_BYTES_CHAR", 

591 "BYTES_ESCAPE_SEQ", "SPACES", "COMMENT", "LINE_JOINING", 

592 "ID_START", "ID_CONTINUE"] 

593 

594 grammarFileName = "Python3.g4" 

595 

596 def __init__(self, input=None, output: TextIO = sys.stdout): 

597 super().__init__(input, output) 

598 self.checkVersion("4.10.1") 

599 self._interp = LexerATNSimulator( 

600 self, self.atn, self.decisionsToDFA, PredictionContextCache()) 

601 self._actions = None 

602 self._predicates = None 

603 

604 @property 

605 def tokens(self): 

606 try: 

607 return self._tokens 

608 except AttributeError: 

609 self._tokens = [] 

610 return self._tokens 

611 

612 @property 

613 def indents(self): 

614 try: 

615 return self._indents 

616 except AttributeError: 

617 self._indents = [] 

618 return self._indents 

619 

620 @property 

621 def opened(self): 

622 try: 

623 return self._opened 

624 except AttributeError: 

625 self._opened = 0 

626 return self._opened 

627 

628 @opened.setter 

629 def opened(self, value): 

630 self._opened = value 

631 

632 @property 

633 def lastToken(self): 

634 try: 

635 return self._lastToken 

636 except AttributeError: 

637 self._lastToken = None 

638 return self._lastToken 

639 

640 @lastToken.setter 

641 def lastToken(self, value): 

642 self._lastToken = value 

643 

644 def reset(self): 

645 super().reset() 

646 self.tokens = [] 

647 self.indents = [] 

648 self.opened = 0 

649 self.lastToken = None 

650 

651 def emitToken(self, t): 

652 super().emitToken(t) 

653 self.tokens.append(t) 

654 

655 def nextToken(self): 

656 if self._input.LA(1) == Token.EOF and self.indents: 

657 for i in range(len(self.tokens) - 1, -1, -1): 

658 if self.tokens[i].type == Token.EOF: 

659 self.tokens.pop(i) 

660 

661 self.emitToken(self.commonToken(LanguageParser.NEWLINE, '\n')) 

662 while self.indents: 

663 self.emitToken(self.createDedent()) 

664 self.indents.pop() 

665 

666 self.emitToken(self.commonToken(LanguageParser.EOF, "<EOF>")) 

667 next = super().nextToken() 

668 if next.channel == Token.DEFAULT_CHANNEL: 

669 self.lastToken = next 

670 return next if not self.tokens else self.tokens.pop(0) 

671 

672 def createDedent(self): 

673 dedent = self.commonToken(LanguageParser.DEDENT, "") 

674 dedent.line = self.lastToken.line 

675 return dedent 

676 

677 def commonToken(self, type, text, indent=0): 

678 stop = self.getCharIndex() - 1 - indent 

679 start = (stop - len(text) + 1) if text else stop 

680 return CommonToken(self._tokenFactorySourcePair, type, super().DEFAULT_TOKEN_CHANNEL, start, stop) 

681 

682 @staticmethod 

683 def getIndentationCount(spaces): 

684 count = 0 

685 for ch in spaces: 

686 if ch == '\t': 

687 count += 8 - (count % 8) 

688 else: 

689 count += 1 

690 return count 

691 

692 def atStartOfInput(self): 

693 return Lexer.column.fget(self) == 0 and Lexer.line.fget(self) == 1 

694 

695 def action(self, localctx: RuleContext, ruleIndex: int, actionIndex: int): 

696 if self._actions is None: 

697 actions = dict() 

698 actions[38] = self.NEWLINE_action 

699 actions[51] = self.OPEN_PAREN_action 

700 actions[52] = self.CLOSE_PAREN_action 

701 actions[58] = self.OPEN_BRACK_action 

702 actions[59] = self.CLOSE_BRACK_action 

703 actions[71] = self.OPEN_BRACE_action 

704 actions[72] = self.CLOSE_BRACE_action 

705 self._actions = actions 

706 action = self._actions.get(ruleIndex, None) 

707 if action is not None: 

708 action(localctx, actionIndex) 

709 else: 

710 raise Exception("No registered action for:" + str(ruleIndex)) 

711 

712 def NEWLINE_action(self, localctx: RuleContext, actionIndex: int): 

713 if actionIndex == 0: 

714 

715 tempt = Lexer.text.fget(self) 

716 newLine = re.sub("[^\r\n\f]+", "", tempt) 

717 spaces = re.sub("[\r\n\f]+", "", tempt) 

718 la_char = "" 

719 try: 

720 la = self._input.LA(1) 

721 # Python does not compare char to ints directly 

722 la_char = chr(la) 

723 except ValueError: # End of file 

724 pass 

725 

726 # Strip newlines inside open clauses except if we are near EOF. We keep NEWLINEs near EOF to 

727 # satisfy the final newline needed by the single_put rule used by the REPL. 

728 try: 

729 nextnext_la = self._input.LA(2) 

730 nextnext_la_char = chr(nextnext_la) 

731 except ValueError: 

732 nextnext_eof = True 

733 else: 

734 nextnext_eof = False 

735 

736 if self.opened > 0 or nextnext_eof is False and (la_char == '\r' or la_char == '\n' or la_char == '\f' or la_char == '#'): 

737 self.skip() 

738 else: 

739 indent = self.getIndentationCount(spaces) 

740 previous = self.indents[-1] if self.indents else 0 

741 # NEWLINE is actually the '\n' char 

742 self.emitToken(self.commonToken( 

743 self.NEWLINE, newLine, indent=indent)) 

744 if indent == previous: 

745 self.skip() 

746 elif indent > previous: 

747 self.indents.append(indent) 

748 self.emitToken(self.commonToken( 

749 LanguageParser.INDENT, spaces)) 

750 else: 

751 while self.indents and self.indents[-1] > indent: 

752 self.emitToken(self.createDedent()) 

753 self.indents.pop() 

754 

755 def OPEN_PAREN_action(self, localctx: RuleContext, actionIndex: int): 

756 if actionIndex == 1: 

757 self.opened += 1 

758 

759 def CLOSE_PAREN_action(self, localctx: RuleContext, actionIndex: int): 

760 if actionIndex == 2: 

761 self.opened -= 1 

762 

763 def OPEN_BRACK_action(self, localctx: RuleContext, actionIndex: int): 

764 if actionIndex == 3: 

765 self.opened += 1 

766 

767 def CLOSE_BRACK_action(self, localctx: RuleContext, actionIndex: int): 

768 if actionIndex == 4: 

769 self.opened -= 1 

770 

771 def OPEN_BRACE_action(self, localctx: RuleContext, actionIndex: int): 

772 if actionIndex == 5: 

773 self.opened += 1 

774 

775 def CLOSE_BRACE_action(self, localctx: RuleContext, actionIndex: int): 

776 if actionIndex == 6: 

777 self.opened -= 1 

778 

779 def sempred(self, localctx: RuleContext, ruleIndex: int, predIndex: int): 

780 if self._predicates is None: 

781 preds = dict() 

782 preds[38] = self.NEWLINE_sempred 

783 self._predicates = preds 

784 pred = self._predicates.get(ruleIndex, None) 

785 if pred is not None: 

786 return pred(localctx, predIndex) 

787 else: 

788 raise Exception("No registered predicate for:" + str(ruleIndex)) 

789 

790 def NEWLINE_sempred(self, localctx: RuleContext, predIndex: int): 

791 if predIndex == 0: 

792 return self.atStartOfInput()