/**
* Copyright (c) 2009-2012, Christer Sandberg
* Thymesheet modifications Copyright (c) 2013 Adam Perry, Connect Group
*/
// line 1 "Scanner.java.rl"
package com.connect_group.thymesheet.css.selectors.scanner;
import java.util.LinkedList;
import java.util.List;
import com.connect_group.thymesheet.css.selectors.Selector;
import com.connect_group.thymesheet.css.selectors.Specifier;
import com.connect_group.thymesheet.css.selectors.specifier.AttributeSpecifier;
import com.connect_group.thymesheet.css.selectors.specifier.NegationSpecifier;
import com.connect_group.thymesheet.css.selectors.specifier.PseudoClassSpecifier;
import com.connect_group.thymesheet.css.selectors.specifier.PseudoNthSpecifier;
import com.connect_group.thymesheet.css.util.Assert;
/**
* A selectors scanner as defined by
* <a href="http://www.w3.org/TR/css3-selectors/#w3cselgrammar">Selectors Level 3 specification</a>.
* <p/>
* This implementation uses the <a href="http://www.complang.org/ragel/">Ragel State Machine Compiler</a>.
* <p/>
* Use the following command to generate the Java code for the scanner:
* <br/>
* <pre>
* ragel -J Scanner.java.rl -o ../java/se/fishtank/css/selectors/scanner/Scanner.java
* </pre>
*
* @author Christer Sandberg
*/
public class Scanner {
/** The input to scan. */
private final String input;
/**
* Create a new scanner instance with the specified {@code input}.
*/
public Scanner(CharSequence input) {
Assert.notNull(input, "input is null!");
this.input = input.toString();
}
// line 45 "../java/se/fishtank/css/selectors/scanner/Scanner.java"
private static byte[] init__Scanner_actions_0()
{
return new byte [] {
0, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1,
5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 12, 1,
13, 1, 14, 1, 15, 1, 16, 2, 1, 0, 2, 1,
9, 2, 2, 9, 2, 3, 0, 2, 4, 15, 2, 4,
16, 2, 6, 9, 2, 8, 15, 2, 8, 16, 2, 10,
17, 2, 11, 18, 2, 12, 15, 2, 12, 16, 2, 15,
5, 2, 15, 7, 2, 15, 16, 2, 16, 4, 2, 16,
8, 2, 16, 12, 2, 16, 15, 3, 4, 15, 5, 3,
4, 15, 7, 3, 4, 15, 16, 3, 8, 15, 5, 3,
8, 15, 7, 3, 8, 15, 16, 3, 12, 15, 5, 3,
12, 15, 7, 3, 12, 15, 16, 3, 15, 11, 18, 3,
15, 16, 5, 3, 15, 16, 7, 3, 16, 4, 15, 3,
16, 8, 15, 3, 16, 12, 15, 3, 16, 15, 5, 3,
16, 15, 7, 4, 4, 15, 11, 18, 4, 4, 15, 16,
5, 4, 4, 15, 16, 7, 4, 8, 15, 11, 18, 4,
8, 15, 16, 5, 4, 8, 15, 16, 7, 4, 12, 15,
11, 18, 4, 12, 15, 16, 5, 4, 12, 15, 16, 7,
4, 16, 4, 15, 5, 4, 16, 4, 15, 7, 4, 16,
8, 15, 5, 4, 16, 8, 15, 7, 4, 16, 12, 15,
5, 4, 16, 12, 15, 7, 4, 16, 15, 11, 18
};
}
private static final byte _Scanner_actions[] = init__Scanner_actions_0();
private static short[] init__Scanner_key_offsets_0()
{
return new short [] {
0, 0, 17, 28, 39, 56, 65, 73, 84, 92, 102, 105,
112, 116, 128, 136, 157, 167, 168, 182, 196, 203, 207, 211,
233, 241, 261, 281, 301, 321, 341, 349, 356, 378, 386, 406,
426, 446, 466, 486, 494, 502, 517, 528, 547, 566, 585, 604,
623, 638, 649, 674, 699, 724, 749, 774, 795, 801, 806, 811,
817, 818, 819, 820, 824, 825, 826, 837, 848, 857, 865, 876,
887, 898, 909, 917, 928, 939, 948, 956, 967, 975, 985, 988,
995, 999, 1011, 1019, 1040, 1050, 1051, 1065, 1079, 1086, 1090, 1094,
1116, 1124, 1144, 1164, 1184, 1204, 1224, 1232, 1239, 1261, 1269, 1289,
1309, 1329, 1349, 1369, 1377, 1385, 1400, 1411, 1430, 1449, 1468, 1487,
1506, 1521, 1532, 1557, 1582, 1607, 1632, 1657, 1678, 1684, 1689, 1694,
1700, 1701, 1702, 1703, 1707, 1708, 1709, 1720, 1731, 1740, 1748, 1759,
1770, 1781, 1792, 1803, 1814, 1822, 1833, 1850, 1861, 1880, 1884, 1893,
1901, 1920, 1930, 1938, 1958, 1968, 1971, 1978, 1982, 1990, 2002, 2010,
2031, 2041, 2042, 2056, 2070, 2077, 2081, 2085, 2107, 2115, 2135, 2155,
2175, 2195, 2215, 2223, 2230, 2252, 2260, 2280, 2300, 2320, 2340, 2360,
2368, 2376, 2391, 2402, 2421, 2440, 2459, 2478, 2497, 2512, 2523, 2548,
2573, 2598, 2623, 2648, 2669, 2675, 2680, 2685, 2691, 2692, 2693, 2694,
2698, 2699, 2700, 2711, 2735, 2759, 2783, 2807, 2831, 2851, 2872, 2893,
2912, 2923, 2946, 2969, 2992, 3015, 3038, 3057, 3068, 3091, 3114, 3137,
3160, 3183, 3202, 3210, 3218, 3237, 3248, 3271, 3294, 3317, 3340, 3363,
3382, 3404, 3425, 3447, 3458, 3480, 3503, 3514, 3541, 3565, 3588, 3611,
3638, 3662, 3689, 3716, 3743, 3770, 3793, 3820, 3847, 3874, 3901, 3924,
3946, 3972, 3995, 4017, 4039, 4065, 4088, 4114, 4140, 4166, 4192, 4214,
4240, 4266, 4292, 4318, 4340, 4364, 4388, 4411, 4437, 4460, 4482, 4504,
4530, 4553, 4579, 4605, 4631, 4657, 4679, 4705, 4731, 4757, 4783, 4805,
4831, 4854, 4876, 4898, 4924, 4947, 4973, 4999, 5025, 5051, 5073, 5099,
5125, 5151, 5177, 5199, 5221, 5244, 5255, 5282, 5306, 5329, 5352, 5379,
5403, 5430, 5457, 5484, 5511, 5534, 5561, 5588, 5615, 5642, 5665, 5687,
5713, 5736, 5758, 5780, 5806, 5829, 5855, 5881, 5907, 5933, 5955, 5981,
6007, 6033, 6059, 6081, 6105, 6129, 6152, 6178, 6201, 6223, 6245, 6271,
6294, 6320, 6346, 6372, 6398, 6420, 6446, 6472, 6498, 6524, 6546, 6572,
6595, 6617, 6639, 6665, 6688, 6714, 6740, 6766, 6792, 6814, 6840, 6866,
6892, 6918, 6940, 6951, 6973, 6999, 7022, 7048, 7074, 7100, 7126, 7148
};
}
private static final short _Scanner_key_offsets[] = init__Scanner_key_offsets_0();
private static char[] init__Scanner_trans_keys_0()
{
return new char [] {
32, 35, 42, 45, 46, 58, 91, 92, 95, 9, 13, 65,
90, 97, 122, 128, 255, 45, 92, 95, 48, 57, 65, 90,
97, 122, 128, 255, 45, 92, 95, 48, 57, 65, 90, 97,
122, 128, 255, 32, 35, 42, 45, 46, 58, 91, 92, 95,
9, 13, 65, 90, 97, 122, 128, 255, 45, 92, 95, 65,
90, 97, 122, 128, 255, 92, 95, 65, 90, 97, 122, 128,
255, 45, 58, 92, 95, 110, 65, 90, 97, 122, 128, 255,
92, 95, 65, 90, 97, 122, 128, 255, 32, 43, 45, 101,
110, 111, 9, 13, 48, 57, 110, 48, 57, 32, 41, 110,
9, 13, 48, 57, 32, 41, 9, 13, 32, 45, 92, 95,
9, 13, 65, 90, 97, 122, 128, 255, 92, 95, 65, 90,
97, 122, 128, 255, 32, 36, 42, 45, 61, 92, 93, 94,
95, 124, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 36, 42, 61, 93, 94, 124, 126, 9, 13, 61,
32, 34, 39, 45, 92, 95, 9, 13, 65, 90, 97, 122,
128, 255, 32, 34, 39, 45, 92, 95, 9, 13, 65, 90,
97, 122, 128, 255, 9, 34, 92, 32, 126, 128, 255, 32,
93, 9, 13, 32, 93, 9, 13, 12, 13, 34, 92, 9,
10, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97,
102, 103, 126, 128, 255, 34, 92, 9, 10, 32, 126, 128,
255, 34, 92, 9, 13, 32, 47, 48, 57, 58, 64, 65,
70, 71, 96, 97, 102, 103, 126, 128, 255, 34, 92, 9,
13, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97,
102, 103, 126, 128, 255, 34, 92, 9, 13, 32, 47, 48,
57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128,
255, 34, 92, 9, 13, 32, 47, 48, 57, 58, 64, 65,
70, 71, 96, 97, 102, 103, 126, 128, 255, 34, 92, 9,
13, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97,
102, 103, 126, 128, 255, 34, 92, 9, 13, 32, 126, 128,
255, 9, 39, 92, 32, 126, 128, 255, 12, 13, 39, 92,
9, 10, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96,
97, 102, 103, 126, 128, 255, 39, 92, 9, 10, 32, 126,
128, 255, 39, 92, 9, 13, 32, 47, 48, 57, 58, 64,
65, 70, 71, 96, 97, 102, 103, 126, 128, 255, 39, 92,
9, 13, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96,
97, 102, 103, 126, 128, 255, 39, 92, 9, 13, 32, 47,
48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 126,
128, 255, 39, 92, 9, 13, 32, 47, 48, 57, 58, 64,
65, 70, 71, 96, 97, 102, 103, 126, 128, 255, 39, 92,
9, 13, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96,
97, 102, 103, 126, 128, 255, 39, 92, 9, 13, 32, 126,
128, 255, 92, 95, 65, 90, 97, 122, 128, 255, 32, 45,
92, 93, 95, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 45, 126, 48, 57, 65, 70, 97, 102, 128, 255,
32, 45, 92, 93, 95, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 45, 92, 93, 95,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 45, 92, 93, 95, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 45, 92,
93, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 45, 92, 93, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
45, 92, 93, 95, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 45, 126, 48, 57, 65, 70, 97, 102, 128,
255, 32, 36, 42, 45, 61, 92, 93, 94, 95, 124, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 36, 42, 45, 61, 92, 93, 94, 95, 124,
126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 36, 42, 45, 61, 92, 93, 94, 95,
124, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 36, 42, 45, 61, 92, 93, 94,
95, 124, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 36, 42, 45, 61, 92, 93,
94, 95, 124, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 36, 42, 45, 61, 92,
93, 94, 95, 124, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 41, 43, 45, 9, 13, 32, 43, 45,
9, 13, 32, 9, 13, 48, 57, 32, 41, 9, 13, 48,
57, 118, 101, 110, 32, 41, 9, 13, 100, 100, 32, 45,
126, 48, 57, 65, 70, 97, 102, 128, 255, 32, 45, 126,
48, 57, 65, 70, 97, 102, 128, 255, 45, 92, 95, 65,
90, 97, 122, 128, 255, 92, 95, 65, 90, 97, 122, 128,
255, 32, 45, 126, 48, 57, 65, 70, 97, 102, 128, 255,
32, 45, 126, 48, 57, 65, 70, 97, 102, 128, 255, 32,
45, 126, 48, 57, 65, 70, 97, 102, 128, 255, 32, 45,
126, 48, 57, 65, 70, 97, 102, 128, 255, 92, 95, 65,
90, 97, 122, 128, 255, 32, 45, 126, 48, 57, 65, 70,
97, 102, 128, 255, 32, 45, 126, 48, 57, 65, 70, 97,
102, 128, 255, 45, 92, 95, 65, 90, 97, 122, 128, 255,
92, 95, 65, 90, 97, 122, 128, 255, 45, 58, 92, 95,
110, 65, 90, 97, 122, 128, 255, 92, 95, 65, 90, 97,
122, 128, 255, 32, 43, 45, 101, 110, 111, 9, 13, 48,
57, 110, 48, 57, 32, 41, 110, 9, 13, 48, 57, 32,
41, 9, 13, 32, 45, 92, 95, 9, 13, 65, 90, 97,
122, 128, 255, 92, 95, 65, 90, 97, 122, 128, 255, 32,
36, 42, 45, 61, 92, 93, 94, 95, 124, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 36, 42, 61,
93, 94, 124, 126, 9, 13, 61, 32, 34, 39, 45, 92,
95, 9, 13, 65, 90, 97, 122, 128, 255, 32, 34, 39,
45, 92, 95, 9, 13, 65, 90, 97, 122, 128, 255, 9,
34, 92, 32, 126, 128, 255, 32, 93, 9, 13, 32, 93,
9, 13, 12, 13, 34, 92, 9, 10, 32, 47, 48, 57,
58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128, 255,
34, 92, 9, 10, 32, 126, 128, 255, 34, 92, 9, 13,
32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102,
103, 126, 128, 255, 34, 92, 9, 13, 32, 47, 48, 57,
58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128, 255,
34, 92, 9, 13, 32, 47, 48, 57, 58, 64, 65, 70,
71, 96, 97, 102, 103, 126, 128, 255, 34, 92, 9, 13,
32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102,
103, 126, 128, 255, 34, 92, 9, 13, 32, 47, 48, 57,
58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128, 255,
34, 92, 9, 13, 32, 126, 128, 255, 9, 39, 92, 32,
126, 128, 255, 12, 13, 39, 92, 9, 10, 32, 47, 48,
57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128,
255, 39, 92, 9, 10, 32, 126, 128, 255, 39, 92, 9,
13, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97,
102, 103, 126, 128, 255, 39, 92, 9, 13, 32, 47, 48,
57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128,
255, 39, 92, 9, 13, 32, 47, 48, 57, 58, 64, 65,
70, 71, 96, 97, 102, 103, 126, 128, 255, 39, 92, 9,
13, 32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97,
102, 103, 126, 128, 255, 39, 92, 9, 13, 32, 47, 48,
57, 58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128,
255, 39, 92, 9, 13, 32, 126, 128, 255, 92, 95, 65,
90, 97, 122, 128, 255, 32, 45, 92, 93, 95, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 45, 126, 48,
57, 65, 70, 97, 102, 128, 255, 32, 45, 92, 93, 95,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 45, 92, 93, 95, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 45, 92,
93, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 45, 92, 93, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
45, 92, 93, 95, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 45, 92, 93, 95, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 45, 126,
48, 57, 65, 70, 97, 102, 128, 255, 32, 36, 42, 45,
61, 92, 93, 94, 95, 124, 126, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 36, 42,
45, 61, 92, 93, 94, 95, 124, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 36,
42, 45, 61, 92, 93, 94, 95, 124, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
36, 42, 45, 61, 92, 93, 94, 95, 124, 126, 9, 13,
48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255,
32, 36, 42, 45, 61, 92, 93, 94, 95, 124, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 36, 42, 45, 61, 92, 93, 94, 95, 124, 126,
9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 41,
43, 45, 9, 13, 32, 43, 45, 9, 13, 32, 9, 13,
48, 57, 32, 41, 9, 13, 48, 57, 118, 101, 110, 32,
41, 9, 13, 100, 100, 32, 45, 126, 48, 57, 65, 70,
97, 102, 128, 255, 32, 45, 126, 48, 57, 65, 70, 97,
102, 128, 255, 45, 92, 95, 65, 90, 97, 122, 128, 255,
92, 95, 65, 90, 97, 122, 128, 255, 32, 45, 126, 48,
57, 65, 70, 97, 102, 128, 255, 32, 45, 126, 48, 57,
65, 70, 97, 102, 128, 255, 32, 45, 126, 48, 57, 65,
70, 97, 102, 128, 255, 32, 45, 126, 48, 57, 65, 70,
97, 102, 128, 255, 32, 45, 126, 48, 57, 65, 70, 97,
102, 128, 255, 32, 45, 126, 48, 57, 65, 70, 97, 102,
128, 255, 92, 95, 65, 90, 97, 122, 128, 255, 32, 45,
126, 48, 57, 65, 70, 97, 102, 128, 255, 32, 35, 42,
45, 46, 58, 91, 92, 95, 9, 13, 65, 90, 97, 122,
128, 255, 45, 92, 95, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 41, 45, 46, 58, 91, 92, 95, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 41, 9, 13,
45, 92, 95, 65, 90, 97, 122, 128, 255, 92, 95, 65,
90, 97, 122, 128, 255, 32, 35, 41, 45, 46, 58, 91,
92, 95, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
45, 92, 95, 110, 65, 90, 97, 122, 128, 255, 92, 95,
65, 90, 97, 122, 128, 255, 32, 35, 40, 41, 45, 46,
58, 91, 92, 95, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 43, 45, 101, 110, 111, 9, 13, 48, 57,
110, 48, 57, 32, 41, 110, 9, 13, 48, 57, 32, 41,
9, 13, 32, 35, 41, 46, 58, 91, 9, 13, 32, 45,
92, 95, 9, 13, 65, 90, 97, 122, 128, 255, 92, 95,
65, 90, 97, 122, 128, 255, 32, 36, 42, 45, 61, 92,
93, 94, 95, 124, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 36, 42, 61, 93, 94, 124, 126, 9,
13, 61, 32, 34, 39, 45, 92, 95, 9, 13, 65, 90,
97, 122, 128, 255, 32, 34, 39, 45, 92, 95, 9, 13,
65, 90, 97, 122, 128, 255, 9, 34, 92, 32, 126, 128,
255, 32, 93, 9, 13, 32, 93, 9, 13, 12, 13, 34,
92, 9, 10, 32, 47, 48, 57, 58, 64, 65, 70, 71,
96, 97, 102, 103, 126, 128, 255, 34, 92, 9, 10, 32,
126, 128, 255, 34, 92, 9, 13, 32, 47, 48, 57, 58,
64, 65, 70, 71, 96, 97, 102, 103, 126, 128, 255, 34,
92, 9, 13, 32, 47, 48, 57, 58, 64, 65, 70, 71,
96, 97, 102, 103, 126, 128, 255, 34, 92, 9, 13, 32,
47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102, 103,
126, 128, 255, 34, 92, 9, 13, 32, 47, 48, 57, 58,
64, 65, 70, 71, 96, 97, 102, 103, 126, 128, 255, 34,
92, 9, 13, 32, 47, 48, 57, 58, 64, 65, 70, 71,
96, 97, 102, 103, 126, 128, 255, 34, 92, 9, 13, 32,
126, 128, 255, 9, 39, 92, 32, 126, 128, 255, 12, 13,
39, 92, 9, 10, 32, 47, 48, 57, 58, 64, 65, 70,
71, 96, 97, 102, 103, 126, 128, 255, 39, 92, 9, 10,
32, 126, 128, 255, 39, 92, 9, 13, 32, 47, 48, 57,
58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128, 255,
39, 92, 9, 13, 32, 47, 48, 57, 58, 64, 65, 70,
71, 96, 97, 102, 103, 126, 128, 255, 39, 92, 9, 13,
32, 47, 48, 57, 58, 64, 65, 70, 71, 96, 97, 102,
103, 126, 128, 255, 39, 92, 9, 13, 32, 47, 48, 57,
58, 64, 65, 70, 71, 96, 97, 102, 103, 126, 128, 255,
39, 92, 9, 13, 32, 47, 48, 57, 58, 64, 65, 70,
71, 96, 97, 102, 103, 126, 128, 255, 39, 92, 9, 13,
32, 126, 128, 255, 92, 95, 65, 90, 97, 122, 128, 255,
32, 45, 92, 93, 95, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 45, 126, 48, 57, 65, 70, 97, 102,
128, 255, 32, 45, 92, 93, 95, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 45, 92,
93, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 45, 92, 93, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
45, 92, 93, 95, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 45, 92, 93, 95, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 45, 92, 93, 95, 9, 13, 48, 57, 65, 90,
97, 122, 128, 255, 32, 45, 126, 48, 57, 65, 70, 97,
102, 128, 255, 32, 36, 42, 45, 61, 92, 93, 94, 95,
124, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 36, 42, 45, 61, 92, 93, 94,
95, 124, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 36, 42, 45, 61, 92, 93,
94, 95, 124, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 36, 42, 45, 61, 92,
93, 94, 95, 124, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 36, 42, 45, 61,
92, 93, 94, 95, 124, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 36, 42, 45,
61, 92, 93, 94, 95, 124, 126, 9, 13, 48, 57, 65,
90, 97, 122, 128, 255, 32, 41, 43, 45, 9, 13, 32,
43, 45, 9, 13, 32, 9, 13, 48, 57, 32, 41, 9,
13, 48, 57, 118, 101, 110, 32, 41, 9, 13, 100, 100,
32, 45, 126, 48, 57, 65, 70, 97, 102, 128, 255, 32,
35, 40, 41, 45, 46, 58, 91, 92, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 40, 41, 45, 46, 58, 91, 92, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 40, 41, 45, 46, 58, 91, 92, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 40, 41, 45, 46, 58, 91, 92, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 40, 41, 45, 46, 58, 91, 92, 95, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 40, 41, 45, 46, 58, 91, 92, 95, 9, 13, 48,
57, 65, 90, 97, 122, 128, 255, 32, 35, 40, 41, 45,
46, 58, 91, 92, 95, 111, 9, 13, 48, 57, 65, 90,
97, 122, 128, 255, 32, 35, 40, 41, 45, 46, 58, 91,
92, 95, 116, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 41, 45, 46, 58, 91, 92, 95, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 45, 126, 48,
57, 65, 70, 97, 102, 128, 255, 32, 35, 41, 45, 46,
58, 91, 92, 95, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 41, 45, 46, 58,
91, 92, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 41, 45, 46, 58, 91,
92, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 41, 45, 46, 58, 91, 92,
95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 41, 45, 46, 58, 91, 92, 95,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 41, 45, 46, 58, 91, 92, 95, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 45, 126,
48, 57, 65, 70, 97, 102, 128, 255, 32, 35, 41, 45,
46, 58, 91, 92, 95, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 41, 45, 46,
58, 91, 92, 95, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 41, 45, 46, 58,
91, 92, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 41, 45, 46, 58, 91,
92, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 41, 45, 46, 58, 91, 92,
95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 41, 45, 46, 58, 91, 92, 95,
9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35,
41, 46, 58, 91, 9, 13, 92, 95, 65, 90, 97, 122,
128, 255, 32, 35, 41, 45, 46, 58, 91, 92, 95, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 45, 126,
48, 57, 65, 70, 97, 102, 128, 255, 32, 35, 41, 45,
46, 58, 91, 92, 95, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 41, 45, 46,
58, 91, 92, 95, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 41, 45, 46, 58,
91, 92, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 41, 45, 46, 58, 91,
92, 95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 41, 45, 46, 58, 91, 92,
95, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 41, 45, 46, 58, 91, 92, 95,
9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 42, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 65,
90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 35, 43, 44, 46, 58, 62, 91, 126,
9, 13, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32,
35, 43, 44, 46, 58, 62, 91, 126, 9, 13, 32, 35,
40, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 35, 40, 42, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32,
35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 40, 42, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 40, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 40, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 40, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 40, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
40, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255,
32, 35, 42, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 42,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255,
32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 40, 43,
44, 45, 46, 58, 62, 91, 92, 95, 111, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 40, 43,
44, 45, 46, 58, 62, 91, 92, 95, 116, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 40, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 42,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90,
97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 42, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 42, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90,
97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 42, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
32, 35, 43, 44, 46, 58, 62, 91, 126, 9, 13, 32,
35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 40, 42, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 40, 42, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 35, 40, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 40, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 40,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255,
32, 35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 40, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 40, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 40, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 40, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 40, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 35, 42, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
42, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128,
255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32,
35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 40,
43, 44, 45, 46, 58, 62, 91, 92, 95, 111, 126, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 40,
43, 44, 45, 46, 58, 62, 91, 92, 95, 116, 126, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 40,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
42, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9,
13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71,
90, 97, 102, 103, 122, 128, 255, 32, 35, 42, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255,
32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128, 255,
32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 42, 43,
44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48,
57, 65, 90, 97, 122, 128, 255, 32, 35, 43, 44, 45,
46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65,
90, 97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58,
62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97,
122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97,
102, 103, 122, 128, 255, 32, 35, 42, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90,
97, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255,
32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 90, 97, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 70, 71, 90, 97, 102, 103, 122, 128, 255,
32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95, 126,
9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103, 122,
128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 90,
97, 122, 128, 255, 32, 35, 43, 44, 46, 58, 62, 91,
126, 9, 13, 32, 35, 43, 44, 45, 46, 58, 62, 91,
92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122, 128,
255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92, 95,
126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102, 103,
122, 128, 255, 32, 35, 42, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 90, 97, 122,
128, 255, 32, 35, 43, 44, 45, 46, 58, 62, 91, 92,
95, 126, 9, 13, 48, 57, 65, 70, 71, 90, 97, 102,
103, 122, 128, 255, 32, 35, 43, 44, 45, 46, 58, 62,
91, 92, 95, 126, 9, 13, 48, 57, 65, 70, 71, 90,
97, 102, 103, 122, 128, 255, 32, 35, 43, 44, 45, 46,
58, 62, 91, 92, 95, 126, 9, 13, 48, 57, 65, 70,
71, 90, 97, 102, 103, 122, 128, 255, 32, 35, 43, 44,
45, 46, 58, 62, 91, 92, 95, 126, 9, 13, 48, 57,
65, 70, 71, 90, 97, 102, 103, 122, 128, 255, 32, 35,
43, 44, 45, 46, 58, 62, 91, 92, 95, 126, 9, 13,
48, 57, 65, 90, 97, 122, 128, 255, 0
};
}
private static final char _Scanner_trans_keys[] = init__Scanner_trans_keys_0();
private static byte[] init__Scanner_single_lengths_0()
{
return new byte [] {
0, 9, 3, 3, 9, 3, 2, 5, 2, 6, 1, 3,
2, 4, 2, 11, 8, 1, 6, 6, 3, 2, 2, 4,
2, 2, 2, 2, 2, 2, 2, 3, 4, 2, 2, 2,
2, 2, 2, 2, 2, 5, 3, 5, 5, 5, 5, 5,
5, 3, 11, 11, 11, 11, 11, 11, 4, 3, 1, 2,
1, 1, 1, 2, 1, 1, 3, 3, 3, 2, 3, 3,
3, 3, 2, 3, 3, 3, 2, 5, 2, 6, 1, 3,
2, 4, 2, 11, 8, 1, 6, 6, 3, 2, 2, 4,
2, 2, 2, 2, 2, 2, 2, 3, 4, 2, 2, 2,
2, 2, 2, 2, 2, 5, 3, 5, 5, 5, 5, 5,
5, 3, 11, 11, 11, 11, 11, 11, 4, 3, 1, 2,
1, 1, 1, 2, 1, 1, 3, 3, 3, 2, 3, 3,
3, 3, 3, 3, 2, 3, 9, 3, 9, 2, 3, 2,
9, 4, 2, 10, 6, 1, 3, 2, 6, 4, 2, 11,
8, 1, 6, 6, 3, 2, 2, 4, 2, 2, 2, 2,
2, 2, 2, 3, 4, 2, 2, 2, 2, 2, 2, 2,
2, 5, 3, 5, 5, 5, 5, 5, 5, 3, 11, 11,
11, 11, 11, 11, 4, 3, 1, 2, 1, 1, 1, 2,
1, 1, 3, 10, 10, 10, 10, 10, 10, 11, 11, 9,
3, 9, 9, 9, 9, 9, 9, 3, 9, 9, 9, 9,
9, 9, 6, 2, 9, 3, 9, 9, 9, 9, 9, 9,
12, 13, 12, 9, 12, 13, 9, 13, 14, 13, 13, 13,
14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12,
12, 13, 12, 12, 12, 13, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 14, 14, 13, 12, 13, 12, 12, 12,
13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
13, 12, 12, 12, 13, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 13, 9, 13, 14, 13, 13, 13, 14,
13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12,
13, 12, 12, 12, 13, 12, 12, 12, 12, 12, 12, 12,
12, 12, 12, 14, 14, 13, 12, 13, 12, 12, 12, 13,
12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13,
12, 12, 12, 13, 12, 12, 12, 12, 12, 12, 12, 12,
12, 12, 9, 12, 12, 13, 12, 12, 12, 12, 12, 0
};
}
private static final byte _Scanner_single_lengths[] = init__Scanner_single_lengths_0();
private static byte[] init__Scanner_range_lengths_0()
{
return new byte [] {
0, 4, 4, 4, 4, 3, 3, 3, 3, 2, 1, 2,
1, 4, 3, 5, 1, 0, 4, 4, 2, 1, 1, 9,
3, 9, 9, 9, 9, 9, 3, 2, 9, 3, 9, 9,
9, 9, 9, 3, 3, 5, 4, 7, 7, 7, 7, 7,
5, 4, 7, 7, 7, 7, 7, 5, 1, 1, 2, 2,
0, 0, 0, 1, 0, 0, 4, 4, 3, 3, 4, 4,
4, 4, 3, 4, 4, 3, 3, 3, 3, 2, 1, 2,
1, 4, 3, 5, 1, 0, 4, 4, 2, 1, 1, 9,
3, 9, 9, 9, 9, 9, 3, 2, 9, 3, 9, 9,
9, 9, 9, 3, 3, 5, 4, 7, 7, 7, 7, 7,
5, 4, 7, 7, 7, 7, 7, 5, 1, 1, 2, 2,
0, 0, 0, 1, 0, 0, 4, 4, 3, 3, 4, 4,
4, 4, 4, 4, 3, 4, 4, 4, 5, 1, 3, 3,
5, 3, 3, 5, 2, 1, 2, 1, 1, 4, 3, 5,
1, 0, 4, 4, 2, 1, 1, 9, 3, 9, 9, 9,
9, 9, 3, 2, 9, 3, 9, 9, 9, 9, 9, 3,
3, 5, 4, 7, 7, 7, 7, 7, 5, 4, 7, 7,
7, 7, 7, 5, 1, 1, 2, 2, 0, 0, 0, 1,
0, 0, 4, 7, 7, 7, 7, 7, 5, 5, 5, 5,
4, 7, 7, 7, 7, 7, 5, 4, 7, 7, 7, 7,
7, 5, 1, 3, 5, 4, 7, 7, 7, 7, 7, 5,
5, 4, 5, 1, 5, 5, 1, 7, 5, 5, 5, 7,
5, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5,
7, 5, 5, 5, 7, 5, 7, 7, 7, 7, 5, 7,
7, 7, 7, 5, 5, 5, 5, 7, 5, 5, 5, 7,
5, 7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7,
5, 5, 5, 7, 5, 7, 7, 7, 7, 5, 7, 7,
7, 7, 5, 5, 5, 1, 7, 5, 5, 5, 7, 5,
7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 5, 7,
5, 5, 5, 7, 5, 7, 7, 7, 7, 5, 7, 7,
7, 7, 5, 5, 5, 5, 7, 5, 5, 5, 7, 5,
7, 7, 7, 7, 5, 7, 7, 7, 7, 5, 7, 5,
5, 5, 7, 5, 7, 7, 7, 7, 5, 7, 7, 7,
7, 5, 1, 5, 7, 5, 7, 7, 7, 7, 5, 0
};
}
private static final byte _Scanner_range_lengths[] = init__Scanner_range_lengths_0();
private static short[] init__Scanner_index_offsets_0()
{
return new short [] {
0, 0, 14, 22, 30, 44, 51, 57, 66, 72, 81, 84,
90, 94, 103, 109, 126, 136, 138, 149, 160, 166, 170, 174,
188, 194, 206, 218, 230, 242, 254, 260, 266, 280, 286, 298,
310, 322, 334, 346, 352, 358, 369, 377, 390, 403, 416, 429,
442, 453, 461, 480, 499, 518, 537, 556, 573, 579, 584, 588,
593, 595, 597, 599, 603, 605, 607, 615, 623, 630, 636, 644,
652, 660, 668, 674, 682, 690, 697, 703, 712, 718, 727, 730,
736, 740, 749, 755, 772, 782, 784, 795, 806, 812, 816, 820,
834, 840, 852, 864, 876, 888, 900, 906, 912, 926, 932, 944,
956, 968, 980, 992, 998, 1004, 1015, 1023, 1036, 1049, 1062, 1075,
1088, 1099, 1107, 1126, 1145, 1164, 1183, 1202, 1219, 1225, 1230, 1234,
1239, 1241, 1243, 1245, 1249, 1251, 1253, 1261, 1269, 1276, 1282, 1290,
1298, 1306, 1314, 1322, 1330, 1336, 1344, 1358, 1366, 1381, 1385, 1392,
1398, 1413, 1421, 1427, 1443, 1452, 1455, 1461, 1465, 1473, 1482, 1488,
1505, 1515, 1517, 1528, 1539, 1545, 1549, 1553, 1567, 1573, 1585, 1597,
1609, 1621, 1633, 1639, 1645, 1659, 1665, 1677, 1689, 1701, 1713, 1725,
1731, 1737, 1748, 1756, 1769, 1782, 1795, 1808, 1821, 1832, 1840, 1859,
1878, 1897, 1916, 1935, 1952, 1958, 1963, 1967, 1972, 1974, 1976, 1978,
1982, 1984, 1986, 1994, 2012, 2030, 2048, 2066, 2084, 2100, 2117, 2134,
2149, 2157, 2174, 2191, 2208, 2225, 2242, 2257, 2265, 2282, 2299, 2316,
2333, 2350, 2365, 2373, 2379, 2394, 2402, 2419, 2436, 2453, 2470, 2487,
2502, 2520, 2538, 2556, 2567, 2585, 2604, 2615, 2636, 2656, 2675, 2694,
2715, 2735, 2756, 2777, 2798, 2819, 2838, 2859, 2880, 2901, 2922, 2941,
2959, 2979, 2998, 3016, 3034, 3054, 3073, 3093, 3113, 3133, 3153, 3171,
3191, 3211, 3231, 3251, 3269, 3289, 3309, 3328, 3348, 3367, 3385, 3403,
3423, 3442, 3462, 3482, 3502, 3522, 3540, 3560, 3580, 3600, 3620, 3638,
3658, 3677, 3695, 3713, 3733, 3752, 3772, 3792, 3812, 3832, 3850, 3870,
3890, 3910, 3930, 3948, 3966, 3985, 3996, 4017, 4037, 4056, 4075, 4096,
4116, 4137, 4158, 4179, 4200, 4219, 4240, 4261, 4282, 4303, 4322, 4340,
4360, 4379, 4397, 4415, 4435, 4454, 4474, 4494, 4514, 4534, 4552, 4572,
4592, 4612, 4632, 4650, 4670, 4690, 4709, 4729, 4748, 4766, 4784, 4804,
4823, 4843, 4863, 4883, 4903, 4921, 4941, 4961, 4981, 5001, 5019, 5039,
5058, 5076, 5094, 5114, 5133, 5153, 5173, 5193, 5213, 5231, 5251, 5271,
5291, 5311, 5329, 5340, 5358, 5378, 5397, 5417, 5437, 5457, 5477, 5495
};
}
private static final short _Scanner_index_offsets[] = init__Scanner_index_offsets_0();
private static short[] init__Scanner_indicies_0()
{
return new short [] {
0, 2, 3, 4, 5, 6, 8, 9, 7, 0, 7, 7,
7, 1, 10, 11, 10, 10, 10, 10, 10, 1, 12, 13,
12, 12, 12, 12, 12, 1, 14, 15, 16, 17, 18, 19,
21, 22, 20, 14, 20, 20, 20, 1, 23, 25, 24, 24,
24, 24, 1, 27, 26, 26, 26, 26, 1, 28, 29, 31,
30, 32, 30, 30, 30, 1, 34, 33, 33, 33, 33, 1,
35, 36, 36, 38, 39, 40, 35, 37, 1, 42, 41, 1,
43, 44, 42, 43, 41, 1, 45, 46, 45, 1, 21, 47,
49, 48, 21, 48, 48, 48, 1, 51, 50, 50, 50, 50,
1, 52, 53, 53, 50, 54, 51, 55, 53, 50, 53, 53,
52, 50, 50, 50, 50, 1, 56, 57, 57, 58, 59, 57,
57, 57, 56, 1, 60, 1, 61, 62, 63, 64, 66, 65,
61, 65, 65, 65, 1, 67, 68, 69, 70, 72, 71, 67,
71, 71, 71, 1, 73, 74, 75, 73, 73, 1, 76, 77,
76, 1, 78, 59, 78, 1, 73, 79, 74, 75, 73, 73,
80, 73, 80, 73, 80, 73, 73, 1, 74, 75, 73, 73,
73, 1, 74, 75, 73, 73, 81, 73, 81, 73, 81, 73,
73, 1, 74, 75, 73, 73, 82, 73, 82, 73, 82, 73,
73, 1, 74, 75, 73, 73, 83, 73, 83, 73, 83, 73,
73, 1, 74, 75, 73, 73, 84, 73, 84, 73, 84, 73,
73, 1, 74, 75, 73, 73, 85, 73, 85, 73, 85, 73,
73, 1, 74, 75, 73, 73, 73, 1, 86, 74, 87, 86,
86, 1, 86, 88, 74, 87, 86, 86, 89, 86, 89, 86,
89, 86, 86, 1, 74, 87, 86, 86, 86, 1, 74, 87,
86, 86, 90, 86, 90, 86, 90, 86, 86, 1, 74, 87,
86, 86, 91, 86, 91, 86, 91, 86, 86, 1, 74, 87,
86, 86, 92, 86, 92, 86, 92, 86, 86, 1, 74, 87,
86, 86, 93, 86, 93, 86, 93, 86, 86, 1, 74, 87,
86, 86, 94, 86, 94, 86, 94, 86, 86, 1, 74, 87,
86, 86, 86, 1, 96, 95, 95, 95, 95, 1, 76, 95,
96, 77, 95, 76, 95, 95, 95, 95, 1, 95, 95, 95,
97, 97, 97, 95, 1, 98, 95, 96, 77, 95, 98, 99,
99, 95, 99, 95, 95, 1, 98, 95, 96, 77, 95, 98,
100, 100, 95, 100, 95, 95, 1, 98, 95, 96, 77, 95,
98, 101, 101, 95, 101, 95, 95, 1, 98, 95, 96, 77,
95, 98, 102, 102, 95, 102, 95, 95, 1, 98, 95, 96,
77, 95, 98, 103, 103, 95, 103, 95, 95, 1, 98, 95,
96, 77, 95, 98, 95, 95, 95, 95, 1, 50, 50, 50,
104, 104, 104, 50, 1, 105, 53, 53, 50, 54, 51, 55,
53, 50, 53, 53, 105, 106, 106, 50, 106, 50, 50, 1,
105, 53, 53, 50, 54, 51, 55, 53, 50, 53, 53, 105,
107, 107, 50, 107, 50, 50, 1, 105, 53, 53, 50, 54,
51, 55, 53, 50, 53, 53, 105, 108, 108, 50, 108, 50,
50, 1, 105, 53, 53, 50, 54, 51, 55, 53, 50, 53,
53, 105, 109, 109, 50, 109, 50, 50, 1, 105, 53, 53,
50, 54, 51, 55, 53, 50, 53, 53, 105, 110, 110, 50,
110, 50, 50, 1, 105, 53, 53, 50, 54, 51, 55, 53,
50, 53, 53, 105, 50, 50, 50, 50, 1, 111, 44, 112,
112, 111, 1, 111, 112, 112, 111, 1, 112, 112, 113, 1,
43, 44, 43, 113, 1, 114, 1, 115, 1, 116, 1, 43,
44, 43, 1, 117, 1, 116, 1, 33, 33, 33, 118, 118,
118, 33, 1, 119, 119, 119, 120, 120, 120, 119, 1, 121,
123, 122, 122, 122, 122, 1, 123, 122, 122, 122, 122, 1,
122, 122, 122, 124, 124, 124, 122, 1, 125, 125, 125, 126,
126, 126, 125, 1, 26, 26, 26, 127, 127, 127, 26, 1,
128, 128, 128, 129, 129, 129, 128, 1, 130, 125, 125, 125,
125, 1, 131, 131, 131, 132, 132, 132, 131, 1, 133, 133,
133, 134, 134, 134, 133, 1, 135, 137, 136, 136, 136, 136,
1, 139, 138, 138, 138, 138, 1, 140, 141, 143, 142, 144,
142, 142, 142, 1, 146, 145, 145, 145, 145, 1, 147, 148,
148, 150, 151, 152, 147, 149, 1, 154, 153, 1, 155, 156,
154, 155, 153, 1, 157, 158, 157, 1, 159, 160, 162, 161,
159, 161, 161, 161, 1, 164, 163, 163, 163, 163, 1, 165,
166, 166, 163, 167, 164, 168, 166, 163, 166, 166, 165, 163,
163, 163, 163, 1, 169, 170, 170, 171, 172, 170, 170, 170,
169, 1, 173, 1, 174, 175, 176, 177, 179, 178, 174, 178,
178, 178, 1, 180, 181, 182, 183, 185, 184, 180, 184, 184,
184, 1, 186, 187, 188, 186, 186, 1, 189, 190, 189, 1,
191, 172, 191, 1, 186, 192, 187, 188, 186, 186, 193, 186,
193, 186, 193, 186, 186, 1, 187, 188, 186, 186, 186, 1,
187, 188, 186, 186, 194, 186, 194, 186, 194, 186, 186, 1,
187, 188, 186, 186, 195, 186, 195, 186, 195, 186, 186, 1,
187, 188, 186, 186, 196, 186, 196, 186, 196, 186, 186, 1,
187, 188, 186, 186, 197, 186, 197, 186, 197, 186, 186, 1,
187, 188, 186, 186, 198, 186, 198, 186, 198, 186, 186, 1,
187, 188, 186, 186, 186, 1, 199, 187, 200, 199, 199, 1,
199, 201, 187, 200, 199, 199, 202, 199, 202, 199, 202, 199,
199, 1, 187, 200, 199, 199, 199, 1, 187, 200, 199, 199,
203, 199, 203, 199, 203, 199, 199, 1, 187, 200, 199, 199,
204, 199, 204, 199, 204, 199, 199, 1, 187, 200, 199, 199,
205, 199, 205, 199, 205, 199, 199, 1, 187, 200, 199, 199,
206, 199, 206, 199, 206, 199, 199, 1, 187, 200, 199, 199,
207, 199, 207, 199, 207, 199, 199, 1, 187, 200, 199, 199,
199, 1, 209, 208, 208, 208, 208, 1, 189, 208, 209, 190,
208, 189, 208, 208, 208, 208, 1, 208, 208, 208, 210, 210,
210, 208, 1, 211, 208, 209, 190, 208, 211, 212, 212, 208,
212, 208, 208, 1, 211, 208, 209, 190, 208, 211, 213, 213,
208, 213, 208, 208, 1, 211, 208, 209, 190, 208, 211, 214,
214, 208, 214, 208, 208, 1, 211, 208, 209, 190, 208, 211,
215, 215, 208, 215, 208, 208, 1, 211, 208, 209, 190, 208,
211, 216, 216, 208, 216, 208, 208, 1, 211, 208, 209, 190,
208, 211, 208, 208, 208, 208, 1, 163, 163, 163, 217, 217,
217, 163, 1, 218, 166, 166, 163, 167, 164, 168, 166, 163,
166, 166, 218, 219, 219, 163, 219, 163, 163, 1, 218, 166,
166, 163, 167, 164, 168, 166, 163, 166, 166, 218, 220, 220,
163, 220, 163, 163, 1, 218, 166, 166, 163, 167, 164, 168,
166, 163, 166, 166, 218, 221, 221, 163, 221, 163, 163, 1,
218, 166, 166, 163, 167, 164, 168, 166, 163, 166, 166, 218,
222, 222, 163, 222, 163, 163, 1, 218, 166, 166, 163, 167,
164, 168, 166, 163, 166, 166, 218, 223, 223, 163, 223, 163,
163, 1, 218, 166, 166, 163, 167, 164, 168, 166, 163, 166,
166, 218, 163, 163, 163, 163, 1, 224, 156, 225, 225, 224,
1, 224, 225, 225, 224, 1, 225, 225, 226, 1, 155, 156,
155, 226, 1, 227, 1, 228, 1, 229, 1, 155, 156, 155,
1, 230, 1, 229, 1, 145, 145, 145, 231, 231, 231, 145,
1, 232, 232, 232, 233, 233, 233, 232, 1, 234, 236, 235,
235, 235, 235, 1, 236, 235, 235, 235, 235, 1, 235, 235,
235, 237, 237, 237, 235, 1, 238, 238, 238, 239, 239, 239,
238, 1, 138, 138, 138, 240, 240, 240, 138, 1, 241, 241,
241, 242, 242, 242, 241, 1, 243, 243, 243, 244, 244, 244,
243, 1, 245, 245, 245, 246, 246, 246, 245, 1, 248, 247,
247, 247, 247, 1, 247, 247, 247, 249, 249, 249, 247, 1,
250, 251, 252, 253, 254, 255, 257, 258, 256, 250, 256, 256,
256, 1, 259, 260, 259, 259, 259, 259, 259, 1, 261, 262,
263, 264, 265, 266, 267, 268, 264, 261, 264, 264, 264, 264,
1, 269, 270, 269, 1, 271, 273, 272, 272, 272, 272, 1,
275, 274, 274, 274, 274, 1, 276, 277, 278, 274, 279, 280,
281, 275, 274, 276, 274, 274, 274, 274, 1, 282, 284, 283,
285, 283, 283, 283, 1, 287, 286, 286, 286, 286, 1, 288,
289, 290, 291, 286, 292, 293, 294, 287, 286, 288, 286, 286,
286, 286, 1, 295, 296, 296, 298, 299, 300, 295, 297, 1,
302, 301, 1, 303, 304, 302, 303, 301, 1, 305, 306, 305,
1, 307, 251, 308, 254, 255, 257, 307, 1, 257, 309, 311,
310, 257, 310, 310, 310, 1, 313, 312, 312, 312, 312, 1,
314, 315, 315, 312, 316, 313, 317, 315, 312, 315, 315, 314,
312, 312, 312, 312, 1, 318, 319, 319, 320, 321, 319, 319,
319, 318, 1, 322, 1, 323, 324, 325, 326, 328, 327, 323,
327, 327, 327, 1, 329, 330, 331, 332, 334, 333, 329, 333,
333, 333, 1, 335, 336, 337, 335, 335, 1, 338, 339, 338,
1, 340, 321, 340, 1, 335, 341, 336, 337, 335, 335, 342,
335, 342, 335, 342, 335, 335, 1, 336, 337, 335, 335, 335,
1, 336, 337, 335, 335, 343, 335, 343, 335, 343, 335, 335,
1, 336, 337, 335, 335, 344, 335, 344, 335, 344, 335, 335,
1, 336, 337, 335, 335, 345, 335, 345, 335, 345, 335, 335,
1, 336, 337, 335, 335, 346, 335, 346, 335, 346, 335, 335,
1, 336, 337, 335, 335, 347, 335, 347, 335, 347, 335, 335,
1, 336, 337, 335, 335, 335, 1, 348, 336, 349, 348, 348,
1, 348, 350, 336, 349, 348, 348, 351, 348, 351, 348, 351,
348, 348, 1, 336, 349, 348, 348, 348, 1, 336, 349, 348,
348, 352, 348, 352, 348, 352, 348, 348, 1, 336, 349, 348,
348, 353, 348, 353, 348, 353, 348, 348, 1, 336, 349, 348,
348, 354, 348, 354, 348, 354, 348, 348, 1, 336, 349, 348,
348, 355, 348, 355, 348, 355, 348, 348, 1, 336, 349, 348,
348, 356, 348, 356, 348, 356, 348, 348, 1, 336, 349, 348,
348, 348, 1, 358, 357, 357, 357, 357, 1, 338, 357, 358,
339, 357, 338, 357, 357, 357, 357, 1, 357, 357, 357, 359,
359, 359, 357, 1, 360, 357, 358, 339, 357, 360, 361, 361,
357, 361, 357, 357, 1, 360, 357, 358, 339, 357, 360, 362,
362, 357, 362, 357, 357, 1, 360, 357, 358, 339, 357, 360,
363, 363, 357, 363, 357, 357, 1, 360, 357, 358, 339, 357,
360, 364, 364, 357, 364, 357, 357, 1, 360, 357, 358, 339,
357, 360, 365, 365, 357, 365, 357, 357, 1, 360, 357, 358,
339, 357, 360, 357, 357, 357, 357, 1, 312, 312, 312, 366,
366, 366, 312, 1, 367, 315, 315, 312, 316, 313, 317, 315,
312, 315, 315, 367, 368, 368, 312, 368, 312, 312, 1, 367,
315, 315, 312, 316, 313, 317, 315, 312, 315, 315, 367, 369,
369, 312, 369, 312, 312, 1, 367, 315, 315, 312, 316, 313,
317, 315, 312, 315, 315, 367, 370, 370, 312, 370, 312, 312,
1, 367, 315, 315, 312, 316, 313, 317, 315, 312, 315, 315,
367, 371, 371, 312, 371, 312, 312, 1, 367, 315, 315, 312,
316, 313, 317, 315, 312, 315, 315, 367, 372, 372, 312, 372,
312, 312, 1, 367, 315, 315, 312, 316, 313, 317, 315, 312,
315, 315, 367, 312, 312, 312, 312, 1, 373, 304, 374, 374,
373, 1, 373, 374, 374, 373, 1, 374, 374, 375, 1, 303,
304, 303, 375, 1, 376, 1, 377, 1, 378, 1, 303, 304,
303, 1, 379, 1, 378, 1, 286, 286, 286, 380, 380, 380,
286, 1, 381, 289, 290, 291, 286, 292, 293, 294, 287, 286,
381, 382, 382, 286, 382, 286, 286, 1, 381, 289, 290, 291,
286, 292, 293, 294, 287, 286, 381, 383, 383, 286, 383, 286,
286, 1, 381, 289, 290, 291, 286, 292, 293, 294, 287, 286,
381, 384, 384, 286, 384, 286, 286, 1, 381, 289, 290, 291,
286, 292, 293, 294, 287, 286, 381, 385, 385, 286, 385, 286,
286, 1, 381, 289, 290, 291, 286, 292, 293, 294, 287, 286,
381, 386, 386, 286, 386, 286, 286, 1, 381, 289, 290, 291,
286, 292, 293, 294, 287, 286, 381, 286, 286, 286, 286, 1,
288, 289, 290, 291, 286, 292, 293, 294, 287, 286, 387, 288,
286, 286, 286, 286, 1, 288, 289, 290, 291, 286, 292, 293,
294, 287, 286, 388, 288, 286, 286, 286, 286, 1, 288, 289,
291, 286, 292, 293, 294, 287, 286, 288, 286, 286, 286, 286,
1, 274, 274, 274, 389, 389, 389, 274, 1, 390, 277, 278,
274, 279, 280, 281, 275, 274, 390, 391, 391, 274, 391, 274,
274, 1, 390, 277, 278, 274, 279, 280, 281, 275, 274, 390,
392, 392, 274, 392, 274, 274, 1, 390, 277, 278, 274, 279,
280, 281, 275, 274, 390, 393, 393, 274, 393, 274, 274, 1,
390, 277, 278, 274, 279, 280, 281, 275, 274, 390, 394, 394,
274, 394, 274, 274, 1, 390, 277, 278, 274, 279, 280, 281,
275, 274, 390, 395, 395, 274, 395, 274, 274, 1, 390, 277,
278, 274, 279, 280, 281, 275, 274, 390, 274, 274, 274, 274,
1, 264, 264, 264, 396, 396, 396, 264, 1, 397, 262, 263,
264, 265, 266, 267, 268, 264, 397, 398, 398, 264, 398, 264,
264, 1, 397, 262, 263, 264, 265, 266, 267, 268, 264, 397,
399, 399, 264, 399, 264, 264, 1, 397, 262, 263, 264, 265,
266, 267, 268, 264, 397, 400, 400, 264, 400, 264, 264, 1,
397, 262, 263, 264, 265, 266, 267, 268, 264, 397, 401, 401,
264, 401, 264, 264, 1, 397, 262, 263, 264, 265, 266, 267,
268, 264, 397, 402, 402, 264, 402, 264, 264, 1, 397, 262,
263, 264, 265, 266, 267, 268, 264, 397, 264, 264, 264, 264,
1, 403, 404, 405, 406, 407, 408, 403, 1, 410, 409, 409,
409, 409, 1, 403, 404, 405, 409, 406, 407, 408, 410, 409,
403, 409, 409, 409, 409, 1, 409, 409, 409, 411, 411, 411,
409, 1, 412, 404, 405, 409, 406, 407, 408, 410, 409, 412,
413, 413, 409, 413, 409, 409, 1, 412, 404, 405, 409, 406,
407, 408, 410, 409, 412, 414, 414, 409, 414, 409, 409, 1,
412, 404, 405, 409, 406, 407, 408, 410, 409, 412, 415, 415,
409, 415, 409, 409, 1, 412, 404, 405, 409, 406, 407, 408,
410, 409, 412, 416, 416, 409, 416, 409, 409, 1, 412, 404,
405, 409, 406, 407, 408, 410, 409, 412, 417, 417, 409, 417,
409, 409, 1, 412, 404, 405, 409, 406, 407, 408, 410, 409,
412, 409, 409, 409, 409, 1, 418, 419, 420, 421, 243, 422,
423, 420, 424, 425, 243, 420, 418, 243, 243, 243, 243, 1,
426, 15, 16, 427, 428, 17, 18, 19, 427, 21, 22, 20,
427, 426, 20, 20, 20, 1, 418, 429, 420, 421, 131, 430,
431, 420, 432, 433, 131, 420, 418, 131, 131, 131, 131, 1,
434, 435, 436, 437, 438, 439, 436, 440, 436, 434, 1, 441,
442, 443, 444, 26, 445, 446, 443, 447, 27, 26, 443, 441,
26, 26, 26, 26, 1, 448, 449, 450, 451, 452, 33, 453,
454, 451, 455, 34, 33, 451, 448, 33, 33, 33, 33, 1,
456, 15, 457, 458, 18, 19, 457, 21, 457, 456, 1, 459,
449, 450, 451, 452, 33, 453, 454, 451, 455, 34, 33, 451,
459, 460, 460, 33, 460, 33, 33, 1, 448, 449, 450, 16,
451, 452, 461, 453, 454, 451, 455, 463, 462, 451, 448, 33,
462, 462, 462, 1, 448, 449, 450, 451, 452, 33, 453, 454,
451, 455, 464, 119, 451, 448, 33, 119, 119, 119, 1, 465,
466, 450, 467, 468, 119, 469, 470, 467, 471, 464, 119, 467,
465, 119, 119, 119, 119, 1, 472, 466, 450, 467, 468, 119,
469, 470, 467, 471, 464, 119, 467, 472, 473, 473, 119, 473,
119, 119, 1, 465, 466, 450, 16, 467, 468, 462, 469, 470,
467, 471, 463, 462, 467, 465, 119, 462, 462, 462, 1, 472,
466, 450, 467, 468, 119, 469, 470, 467, 471, 464, 119, 467,
472, 474, 474, 119, 474, 119, 119, 1, 472, 466, 450, 467,
468, 119, 469, 470, 467, 471, 464, 119, 467, 472, 475, 475,
119, 475, 119, 119, 1, 472, 466, 450, 467, 468, 119, 469,
470, 467, 471, 464, 119, 467, 472, 476, 476, 119, 476, 119,
119, 1, 472, 466, 450, 467, 468, 119, 469, 470, 467, 471,
464, 119, 467, 472, 477, 477, 119, 477, 119, 119, 1, 472,
466, 450, 467, 468, 119, 469, 470, 467, 471, 464, 119, 467,
472, 119, 119, 119, 119, 1, 459, 449, 450, 451, 452, 33,
453, 454, 451, 455, 34, 33, 451, 459, 478, 478, 33, 478,
33, 33, 1, 459, 449, 450, 451, 452, 33, 453, 454, 451,
455, 34, 33, 451, 459, 479, 479, 33, 479, 33, 33, 1,
459, 449, 450, 451, 452, 33, 453, 454, 451, 455, 34, 33,
451, 459, 480, 480, 33, 480, 33, 33, 1, 459, 449, 450,
451, 452, 33, 453, 454, 451, 455, 34, 33, 451, 459, 481,
481, 33, 481, 33, 33, 1, 459, 449, 450, 451, 452, 33,
453, 454, 451, 455, 34, 33, 451, 459, 33, 33, 33, 33,
1, 456, 15, 457, 458, 122, 18, 19, 457, 21, 123, 122,
457, 456, 122, 122, 122, 122, 1, 482, 15, 457, 458, 122,
18, 19, 457, 21, 123, 122, 457, 482, 483, 483, 122, 483,
122, 122, 1, 456, 15, 16, 457, 458, 484, 18, 19, 457,
21, 22, 20, 457, 456, 122, 20, 20, 20, 1, 456, 15,
457, 458, 122, 18, 19, 457, 21, 130, 125, 457, 456, 122,
125, 125, 125, 1, 434, 435, 436, 437, 125, 438, 439, 436,
440, 130, 125, 436, 434, 125, 125, 125, 125, 1, 485, 435,
436, 437, 125, 438, 439, 436, 440, 130, 125, 436, 485, 486,
486, 125, 486, 125, 125, 1, 434, 435, 16, 436, 437, 20,
438, 439, 436, 440, 22, 20, 436, 434, 125, 20, 20, 20,
1, 485, 435, 436, 437, 125, 438, 439, 436, 440, 130, 125,
436, 485, 487, 487, 125, 487, 125, 125, 1, 485, 435, 436,
437, 125, 438, 439, 436, 440, 130, 125, 436, 485, 488, 488,
125, 488, 125, 125, 1, 485, 435, 436, 437, 125, 438, 439,
436, 440, 130, 125, 436, 485, 489, 489, 125, 489, 125, 125,
1, 485, 435, 436, 437, 125, 438, 439, 436, 440, 130, 125,
436, 485, 490, 490, 125, 490, 125, 125, 1, 485, 435, 436,
437, 125, 438, 439, 436, 440, 130, 125, 436, 485, 125, 125,
125, 125, 1, 482, 15, 457, 458, 122, 18, 19, 457, 21,
123, 122, 457, 482, 491, 491, 122, 491, 122, 122, 1, 482,
15, 457, 458, 122, 18, 19, 457, 21, 123, 122, 457, 482,
492, 492, 122, 492, 122, 122, 1, 482, 15, 457, 458, 122,
18, 19, 457, 21, 123, 122, 457, 482, 493, 493, 122, 493,
122, 122, 1, 482, 15, 457, 458, 122, 18, 19, 457, 21,
123, 122, 457, 482, 494, 494, 122, 494, 122, 122, 1, 482,
15, 457, 458, 122, 18, 19, 457, 21, 123, 122, 457, 482,
122, 122, 122, 122, 1, 448, 449, 450, 451, 452, 33, 453,
454, 451, 455, 34, 33, 495, 451, 448, 33, 33, 33, 33,
1, 448, 449, 450, 451, 452, 33, 453, 454, 451, 455, 34,
33, 496, 451, 448, 33, 33, 33, 33, 1, 448, 449, 497,
451, 452, 33, 453, 454, 451, 455, 34, 33, 451, 448, 33,
33, 33, 33, 1, 498, 442, 443, 444, 26, 445, 446, 443,
447, 27, 26, 443, 498, 499, 499, 26, 499, 26, 26, 1,
441, 442, 16, 443, 444, 500, 445, 446, 443, 447, 502, 501,
443, 441, 26, 501, 501, 501, 1, 441, 442, 443, 444, 26,
445, 446, 443, 447, 503, 128, 443, 441, 26, 128, 128, 128,
1, 504, 505, 506, 507, 128, 508, 509, 506, 510, 503, 128,
506, 504, 128, 128, 128, 128, 1, 511, 505, 506, 507, 128,
508, 509, 506, 510, 503, 128, 506, 511, 512, 512, 128, 512,
128, 128, 1, 504, 505, 16, 506, 507, 501, 508, 509, 506,
510, 502, 501, 506, 504, 128, 501, 501, 501, 1, 511, 505,
506, 507, 128, 508, 509, 506, 510, 503, 128, 506, 511, 513,
513, 128, 513, 128, 128, 1, 511, 505, 506, 507, 128, 508,
509, 506, 510, 503, 128, 506, 511, 514, 514, 128, 514, 128,
128, 1, 511, 505, 506, 507, 128, 508, 509, 506, 510, 503,
128, 506, 511, 515, 515, 128, 515, 128, 128, 1, 511, 505,
506, 507, 128, 508, 509, 506, 510, 503, 128, 506, 511, 516,
516, 128, 516, 128, 128, 1, 511, 505, 506, 507, 128, 508,
509, 506, 510, 503, 128, 506, 511, 128, 128, 128, 128, 1,
498, 442, 443, 444, 26, 445, 446, 443, 447, 27, 26, 443,
498, 517, 517, 26, 517, 26, 26, 1, 498, 442, 443, 444,
26, 445, 446, 443, 447, 27, 26, 443, 498, 518, 518, 26,
518, 26, 26, 1, 498, 442, 443, 444, 26, 445, 446, 443,
447, 27, 26, 443, 498, 519, 519, 26, 519, 26, 26, 1,
498, 442, 443, 444, 26, 445, 446, 443, 447, 27, 26, 443,
498, 520, 520, 26, 520, 26, 26, 1, 498, 442, 443, 444,
26, 445, 446, 443, 447, 27, 26, 443, 498, 26, 26, 26,
26, 1, 521, 429, 420, 421, 131, 430, 431, 420, 432, 433,
131, 420, 521, 522, 522, 131, 522, 131, 131, 1, 418, 429,
16, 420, 421, 523, 430, 431, 420, 432, 525, 524, 420, 418,
131, 524, 524, 524, 1, 418, 429, 420, 421, 131, 430, 431,
420, 432, 526, 133, 420, 418, 131, 133, 133, 133, 1, 527,
528, 529, 530, 133, 531, 532, 529, 533, 526, 133, 529, 527,
133, 133, 133, 133, 1, 534, 528, 529, 530, 133, 531, 532,
529, 533, 526, 133, 529, 534, 535, 535, 133, 535, 133, 133,
1, 527, 528, 16, 529, 530, 524, 531, 532, 529, 533, 525,
524, 529, 527, 133, 524, 524, 524, 1, 534, 528, 529, 530,
133, 531, 532, 529, 533, 526, 133, 529, 534, 536, 536, 133,
536, 133, 133, 1, 534, 528, 529, 530, 133, 531, 532, 529,
533, 526, 133, 529, 534, 537, 537, 133, 537, 133, 133, 1,
534, 528, 529, 530, 133, 531, 532, 529, 533, 526, 133, 529,
534, 538, 538, 133, 538, 133, 133, 1, 534, 528, 529, 530,
133, 531, 532, 529, 533, 526, 133, 529, 534, 539, 539, 133,
539, 133, 133, 1, 534, 528, 529, 530, 133, 531, 532, 529,
533, 526, 133, 529, 534, 133, 133, 133, 133, 1, 521, 429,
420, 421, 131, 430, 431, 420, 432, 433, 131, 420, 521, 540,
540, 131, 540, 131, 131, 1, 521, 429, 420, 421, 131, 430,
431, 420, 432, 433, 131, 420, 521, 541, 541, 131, 541, 131,
131, 1, 521, 429, 420, 421, 131, 430, 431, 420, 432, 433,
131, 420, 521, 542, 542, 131, 542, 131, 131, 1, 521, 429,
420, 421, 131, 430, 431, 420, 432, 433, 131, 420, 521, 543,
543, 131, 543, 131, 131, 1, 521, 429, 420, 421, 131, 430,
431, 420, 432, 433, 131, 420, 521, 131, 131, 131, 131, 1,
441, 544, 443, 444, 138, 545, 546, 443, 547, 139, 138, 443,
441, 138, 138, 138, 138, 1, 448, 548, 549, 451, 452, 145,
550, 551, 451, 552, 146, 145, 451, 448, 145, 145, 145, 145,
1, 456, 553, 457, 458, 554, 555, 457, 159, 457, 456, 1,
556, 548, 549, 451, 452, 145, 550, 551, 451, 552, 146, 145,
451, 556, 557, 557, 145, 557, 145, 145, 1, 448, 548, 549,
16, 451, 452, 558, 550, 551, 451, 552, 560, 559, 451, 448,
145, 559, 559, 559, 1, 448, 548, 549, 451, 452, 145, 550,
551, 451, 552, 561, 232, 451, 448, 145, 232, 232, 232, 1,
562, 563, 549, 564, 565, 232, 566, 567, 564, 568, 561, 232,
564, 562, 232, 232, 232, 232, 1, 569, 563, 549, 564, 565,
232, 566, 567, 564, 568, 561, 232, 564, 569, 570, 570, 232,
570, 232, 232, 1, 562, 563, 549, 16, 564, 565, 559, 566,
567, 564, 568, 560, 559, 564, 562, 232, 559, 559, 559, 1,
569, 563, 549, 564, 565, 232, 566, 567, 564, 568, 561, 232,
564, 569, 571, 571, 232, 571, 232, 232, 1, 569, 563, 549,
564, 565, 232, 566, 567, 564, 568, 561, 232, 564, 569, 572,
572, 232, 572, 232, 232, 1, 569, 563, 549, 564, 565, 232,
566, 567, 564, 568, 561, 232, 564, 569, 573, 573, 232, 573,
232, 232, 1, 569, 563, 549, 564, 565, 232, 566, 567, 564,
568, 561, 232, 564, 569, 574, 574, 232, 574, 232, 232, 1,
569, 563, 549, 564, 565, 232, 566, 567, 564, 568, 561, 232,
564, 569, 232, 232, 232, 232, 1, 556, 548, 549, 451, 452,
145, 550, 551, 451, 552, 146, 145, 451, 556, 575, 575, 145,
575, 145, 145, 1, 556, 548, 549, 451, 452, 145, 550, 551,
451, 552, 146, 145, 451, 556, 576, 576, 145, 576, 145, 145,
1, 556, 548, 549, 451, 452, 145, 550, 551, 451, 552, 146,
145, 451, 556, 577, 577, 145, 577, 145, 145, 1, 556, 548,
549, 451, 452, 145, 550, 551, 451, 552, 146, 145, 451, 556,
578, 578, 145, 578, 145, 145, 1, 556, 548, 549, 451, 452,
145, 550, 551, 451, 552, 146, 145, 451, 556, 145, 145, 145,
145, 1, 456, 553, 457, 458, 235, 554, 555, 457, 159, 236,
235, 457, 456, 235, 235, 235, 235, 1, 579, 553, 457, 458,
235, 554, 555, 457, 159, 236, 235, 457, 579, 580, 580, 235,
580, 235, 235, 1, 456, 553, 16, 457, 458, 581, 554, 555,
457, 159, 583, 582, 457, 456, 235, 582, 582, 582, 1, 456,
553, 457, 458, 235, 554, 555, 457, 159, 584, 238, 457, 456,
235, 238, 238, 238, 1, 585, 586, 587, 588, 238, 589, 590,
587, 591, 584, 238, 587, 585, 238, 238, 238, 238, 1, 592,
586, 587, 588, 238, 589, 590, 587, 591, 584, 238, 587, 592,
593, 593, 238, 593, 238, 238, 1, 585, 586, 16, 587, 588,
582, 589, 590, 587, 591, 583, 582, 587, 585, 238, 582, 582,
582, 1, 592, 586, 587, 588, 238, 589, 590, 587, 591, 584,
238, 587, 592, 594, 594, 238, 594, 238, 238, 1, 592, 586,
587, 588, 238, 589, 590, 587, 591, 584, 238, 587, 592, 595,
595, 238, 595, 238, 238, 1, 592, 586, 587, 588, 238, 589,
590, 587, 591, 584, 238, 587, 592, 596, 596, 238, 596, 238,
238, 1, 592, 586, 587, 588, 238, 589, 590, 587, 591, 584,
238, 587, 592, 597, 597, 238, 597, 238, 238, 1, 592, 586,
587, 588, 238, 589, 590, 587, 591, 584, 238, 587, 592, 238,
238, 238, 238, 1, 579, 553, 457, 458, 235, 554, 555, 457,
159, 236, 235, 457, 579, 598, 598, 235, 598, 235, 235, 1,
579, 553, 457, 458, 235, 554, 555, 457, 159, 236, 235, 457,
579, 599, 599, 235, 599, 235, 235, 1, 579, 553, 457, 458,
235, 554, 555, 457, 159, 236, 235, 457, 579, 600, 600, 235,
600, 235, 235, 1, 579, 553, 457, 458, 235, 554, 555, 457,
159, 236, 235, 457, 579, 601, 601, 235, 601, 235, 235, 1,
579, 553, 457, 458, 235, 554, 555, 457, 159, 236, 235, 457,
579, 235, 235, 235, 235, 1, 448, 548, 549, 451, 452, 145,
550, 551, 451, 552, 146, 145, 602, 451, 448, 145, 145, 145,
145, 1, 448, 548, 549, 451, 452, 145, 550, 551, 451, 552,
146, 145, 603, 451, 448, 145, 145, 145, 145, 1, 448, 548,
604, 451, 452, 145, 550, 551, 451, 552, 146, 145, 451, 448,
145, 145, 145, 145, 1, 605, 544, 443, 444, 138, 545, 546,
443, 547, 139, 138, 443, 605, 606, 606, 138, 606, 138, 138,
1, 441, 544, 16, 443, 444, 607, 545, 546, 443, 547, 609,
608, 443, 441, 138, 608, 608, 608, 1, 441, 544, 443, 444,
138, 545, 546, 443, 547, 610, 241, 443, 441, 138, 241, 241,
241, 1, 611, 612, 613, 614, 241, 615, 616, 613, 617, 610,
241, 613, 611, 241, 241, 241, 241, 1, 618, 612, 613, 614,
241, 615, 616, 613, 617, 610, 241, 613, 618, 619, 619, 241,
619, 241, 241, 1, 611, 612, 16, 613, 614, 608, 615, 616,
613, 617, 609, 608, 613, 611, 241, 608, 608, 608, 1, 618,
612, 613, 614, 241, 615, 616, 613, 617, 610, 241, 613, 618,
620, 620, 241, 620, 241, 241, 1, 618, 612, 613, 614, 241,
615, 616, 613, 617, 610, 241, 613, 618, 621, 621, 241, 621,
241, 241, 1, 618, 612, 613, 614, 241, 615, 616, 613, 617,
610, 241, 613, 618, 622, 622, 241, 622, 241, 241, 1, 618,
612, 613, 614, 241, 615, 616, 613, 617, 610, 241, 613, 618,
623, 623, 241, 623, 241, 241, 1, 618, 612, 613, 614, 241,
615, 616, 613, 617, 610, 241, 613, 618, 241, 241, 241, 241,
1, 605, 544, 443, 444, 138, 545, 546, 443, 547, 139, 138,
443, 605, 624, 624, 138, 624, 138, 138, 1, 605, 544, 443,
444, 138, 545, 546, 443, 547, 139, 138, 443, 605, 625, 625,
138, 625, 138, 138, 1, 605, 544, 443, 444, 138, 545, 546,
443, 547, 139, 138, 443, 605, 626, 626, 138, 626, 138, 138,
1, 605, 544, 443, 444, 138, 545, 546, 443, 547, 139, 138,
443, 605, 627, 627, 138, 627, 138, 138, 1, 605, 544, 443,
444, 138, 545, 546, 443, 547, 139, 138, 443, 605, 138, 138,
138, 138, 1, 628, 419, 420, 421, 243, 422, 423, 420, 424,
425, 243, 420, 628, 629, 629, 243, 629, 243, 243, 1, 418,
419, 16, 420, 421, 630, 422, 423, 420, 424, 632, 631, 420,
418, 243, 631, 631, 631, 1, 418, 419, 420, 421, 243, 422,
423, 420, 424, 633, 245, 420, 418, 243, 245, 245, 245, 1,
634, 635, 636, 637, 245, 638, 639, 636, 640, 633, 245, 636,
634, 245, 245, 245, 245, 1, 641, 635, 636, 637, 245, 638,
639, 636, 640, 633, 245, 636, 641, 642, 642, 245, 642, 245,
245, 1, 634, 635, 16, 636, 637, 631, 638, 639, 636, 640,
632, 631, 636, 634, 245, 631, 631, 631, 1, 641, 635, 636,
637, 245, 638, 639, 636, 640, 633, 245, 636, 641, 643, 643,
245, 643, 245, 245, 1, 641, 635, 636, 637, 245, 638, 639,
636, 640, 633, 245, 636, 641, 644, 644, 245, 644, 245, 245,
1, 641, 635, 636, 637, 245, 638, 639, 636, 640, 633, 245,
636, 641, 645, 645, 245, 645, 245, 245, 1, 641, 635, 636,
637, 245, 638, 639, 636, 640, 633, 245, 636, 641, 646, 646,
245, 646, 245, 245, 1, 641, 635, 636, 637, 245, 638, 639,
636, 640, 633, 245, 636, 641, 245, 245, 245, 245, 1, 628,
419, 420, 421, 243, 422, 423, 420, 424, 425, 243, 420, 628,
647, 647, 243, 647, 243, 243, 1, 628, 419, 420, 421, 243,
422, 423, 420, 424, 425, 243, 420, 628, 648, 648, 243, 648,
243, 243, 1, 628, 419, 420, 421, 243, 422, 423, 420, 424,
425, 243, 420, 628, 649, 649, 243, 649, 243, 243, 1, 628,
419, 420, 421, 243, 422, 423, 420, 424, 425, 243, 420, 628,
650, 650, 243, 650, 243, 243, 1, 628, 419, 420, 421, 243,
422, 423, 420, 424, 425, 243, 420, 628, 243, 243, 243, 243,
1, 434, 586, 436, 437, 589, 590, 436, 591, 436, 434, 1,
434, 586, 436, 437, 247, 589, 590, 436, 591, 248, 247, 436,
434, 247, 247, 247, 247, 1, 651, 586, 436, 437, 247, 589,
590, 436, 591, 248, 247, 436, 651, 652, 652, 247, 652, 247,
247, 1, 434, 586, 16, 436, 437, 653, 589, 590, 436, 591,
654, 653, 436, 434, 247, 653, 653, 653, 1, 651, 586, 436,
437, 247, 589, 590, 436, 591, 248, 247, 436, 651, 655, 655,
247, 655, 247, 247, 1, 651, 586, 436, 437, 247, 589, 590,
436, 591, 248, 247, 436, 651, 656, 656, 247, 656, 247, 247,
1, 651, 586, 436, 437, 247, 589, 590, 436, 591, 248, 247,
436, 651, 657, 657, 247, 657, 247, 247, 1, 651, 586, 436,
437, 247, 589, 590, 436, 591, 248, 247, 436, 651, 658, 658,
247, 658, 247, 247, 1, 651, 586, 436, 437, 247, 589, 590,
436, 591, 248, 247, 436, 651, 247, 247, 247, 247, 1, 1,
0
};
}
private static final short _Scanner_indicies[] = init__Scanner_indicies_0();
private static short[] init__Scanner_trans_targs_0()
{
return new short [] {
1, 0, 2, 398, 148, 77, 79, 399, 85, 149, 252, 146,
254, 75, 4, 3, 255, 74, 5, 7, 279, 13, 71, 6,
256, 72, 256, 72, 8, 68, 257, 66, 292, 257, 66, 9,
10, 11, 60, 56, 64, 11, 56, 12, 258, 12, 258, 14,
15, 49, 15, 49, 16, 17, 18, 258, 16, 17, 18, 258,
18, 19, 20, 31, 40, 41, 42, 19, 20, 31, 40, 41,
42, 20, 21, 23, 22, 258, 22, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41,
42, 43, 41, 44, 45, 46, 47, 48, 50, 15, 51, 52,
53, 54, 55, 57, 58, 59, 61, 62, 63, 65, 259, 262,
263, 69, 275, 70, 276, 279, 280, 295, 298, 299, 71, 254,
311, 314, 315, 78, 327, 144, 327, 144, 80, 140, 328, 138,
363, 328, 138, 81, 82, 83, 132, 128, 136, 83, 128, 84,
329, 84, 329, 85, 86, 87, 121, 87, 121, 88, 89, 90,
329, 88, 89, 90, 329, 90, 91, 92, 103, 112, 113, 114,
91, 92, 103, 112, 113, 114, 92, 93, 95, 94, 329, 94,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
108, 109, 110, 111, 113, 114, 115, 113, 116, 117, 118, 119,
120, 122, 87, 123, 124, 125, 126, 127, 129, 130, 131, 133,
134, 135, 137, 330, 333, 334, 141, 346, 142, 347, 350, 351,
366, 369, 370, 252, 382, 385, 386, 399, 149, 400, 150, 151,
242, 243, 154, 157, 244, 165, 245, 152, 235, 153, 151, 407,
152, 154, 157, 165, 235, 153, 407, 155, 156, 228, 156, 228,
153, 151, 407, 154, 157, 165, 158, 159, 218, 225, 159, 218,
153, 151, 160, 407, 154, 157, 165, 160, 161, 162, 212, 208,
216, 162, 208, 163, 164, 163, 164, 153, 407, 166, 167, 201,
167, 201, 168, 169, 170, 164, 168, 169, 170, 164, 170, 171,
172, 183, 192, 193, 194, 171, 172, 183, 192, 193, 194, 172,
173, 175, 174, 164, 174, 176, 177, 178, 179, 180, 181, 182,
183, 184, 185, 186, 187, 188, 189, 190, 191, 193, 194, 195,
193, 196, 197, 198, 199, 200, 202, 167, 203, 204, 205, 206,
207, 209, 210, 211, 213, 214, 215, 217, 219, 159, 220, 221,
222, 223, 224, 226, 227, 229, 156, 230, 231, 232, 233, 234,
236, 152, 237, 238, 239, 240, 241, 153, 151, 407, 154, 157,
165, 244, 245, 246, 244, 247, 248, 249, 250, 251, 253, 2,
4, 1, 77, 79, 85, 146, 253, 4, 1, 3, 5, 7,
13, 75, 253, 3, 4, 1, 5, 7, 13, 253, 3, 4,
1, 5, 7, 13, 253, 3, 9, 4, 1, 5, 7, 13,
253, 4, 1, 260, 270, 261, 262, 67, 67, 253, 3, 4,
1, 5, 7, 13, 264, 265, 266, 267, 268, 269, 271, 272,
273, 274, 277, 287, 278, 281, 282, 283, 284, 285, 286, 288,
289, 290, 291, 293, 294, 258, 296, 306, 297, 298, 73, 73,
253, 3, 4, 1, 5, 7, 13, 300, 301, 302, 303, 304,
305, 307, 308, 309, 310, 312, 322, 313, 314, 76, 76, 253,
3, 4, 1, 5, 7, 13, 316, 317, 318, 319, 320, 321,
323, 324, 325, 326, 2, 77, 79, 85, 2, 81, 77, 79,
85, 2, 77, 79, 331, 341, 332, 333, 139, 139, 253, 2,
4, 1, 77, 79, 85, 335, 336, 337, 338, 339, 340, 342,
343, 344, 345, 348, 358, 349, 350, 143, 143, 253, 2, 4,
1, 77, 79, 85, 352, 353, 354, 355, 356, 357, 359, 360,
361, 362, 364, 365, 329, 367, 377, 368, 369, 145, 145, 253,
2, 4, 1, 77, 79, 85, 371, 372, 373, 374, 375, 376,
378, 379, 380, 381, 383, 393, 384, 385, 147, 147, 253, 2,
4, 1, 77, 79, 85, 387, 388, 389, 390, 391, 392, 394,
395, 396, 397, 401, 402, 399, 149, 403, 404, 405, 406
};
}
private static final short _Scanner_trans_targs[] = init__Scanner_trans_targs_0();
private static short[] init__Scanner_trans_actions_0()
{
return new short [] {
0, 0, 13, 49, 49, 13, 13, 49, 13, 49, 19, 19,
19, 19, 0, 0, 19, 19, 0, 0, 19, 0, 19, 19,
19, 19, 0, 0, 19, 0, 19, 19, 19, 0, 0, 0,
19, 19, 19, 19, 19, 0, 0, 23, 23, 0, 0, 19,
19, 19, 0, 0, 3, 34, 34, 31, 0, 19, 19, 1,
0, 5, 37, 37, 37, 37, 37, 0, 19, 19, 19, 19,
19, 0, 0, 0, 7, 40, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 7, 0, 0, 0, 0, 0, 0, 3, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 19, 19, 19, 0, 0, 19, 0, 19, 19,
19, 0, 0, 0, 19, 19, 19, 19, 19, 0, 0, 23,
23, 0, 0, 0, 19, 19, 19, 0, 0, 3, 34, 34,
31, 0, 19, 19, 1, 0, 5, 37, 37, 37, 37, 37,
0, 19, 19, 19, 19, 19, 0, 0, 0, 7, 40, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0,
0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
19, 19, 0, 0, 19, 0, 19, 19, 19, 52, 17, 174,
0, 17, 17, 17, 0, 0, 61, 19, 19, 19, 0, 0,
43, 9, 159, 9, 9, 9, 19, 19, 19, 19, 0, 0,
64, 21, 25, 189, 21, 21, 21, 0, 19, 19, 19, 19,
19, 0, 0, 23, 23, 0, 0, 27, 127, 19, 19, 19,
0, 0, 3, 34, 34, 31, 0, 19, 19, 1, 0, 5,
37, 37, 37, 37, 37, 0, 19, 19, 19, 19, 19, 0,
0, 0, 7, 40, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0,
0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0,
0, 52, 0, 0, 0, 0, 0, 88, 29, 234, 29, 29,
29, 0, 0, 0, 88, 0, 0, 0, 0, 0, 52, 17,
103, 107, 17, 17, 17, 0, 0, 11, 15, 17, 17, 17,
17, 0, 88, 29, 151, 155, 29, 29, 29, 43, 9, 91,
95, 9, 9, 9, 64, 21, 25, 115, 119, 21, 21, 21,
27, 70, 73, 64, 0, 19, 19, 19, 0, 147, 85, 224,
229, 85, 85, 85, 147, 0, 0, 0, 0, 0, 0, 0,
0, 0, 27, 0, 19, 88, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 58, 43, 0, 19, 19, 19, 0,
139, 79, 204, 209, 79, 79, 79, 139, 0, 0, 0, 0,
0, 0, 0, 0, 0, 52, 0, 19, 19, 19, 0, 143,
82, 214, 219, 82, 82, 82, 143, 0, 0, 0, 0, 0,
0, 0, 0, 0, 9, 9, 9, 9, 21, 25, 21, 21,
21, 0, 0, 0, 64, 0, 19, 19, 19, 0, 123, 67,
194, 199, 67, 67, 67, 123, 0, 0, 0, 0, 0, 0,
0, 0, 0, 27, 0, 19, 19, 19, 0, 76, 29, 131,
135, 29, 29, 29, 76, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 58, 43, 0, 19, 19, 19, 0, 99,
46, 164, 169, 46, 46, 46, 99, 0, 0, 0, 0, 0,
0, 0, 0, 0, 52, 0, 19, 19, 19, 0, 111, 55,
179, 184, 55, 55, 55, 111, 0, 0, 0, 0, 0, 0,
0, 0, 0, 88, 0, 19, 19, 0, 0, 0, 0
};
}
private static final short _Scanner_trans_actions[] = init__Scanner_trans_actions_0();
private static short[] init__Scanner_eof_actions_0()
{
return new short [] {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
107, 15, 107, 155, 95, 119, 73, 119, 119, 119, 229, 229,
229, 229, 229, 229, 229, 229, 119, 119, 119, 119, 119, 73,
73, 73, 73, 155, 155, 155, 155, 155, 155, 155, 155, 73,
73, 73, 73, 73, 119, 119, 119, 95, 95, 95, 209, 209,
209, 209, 209, 209, 209, 209, 95, 95, 95, 95, 95, 107,
107, 107, 219, 219, 219, 219, 219, 219, 219, 219, 107, 107,
107, 107, 107, 95, 119, 73, 119, 119, 119, 199, 199, 199,
199, 199, 199, 199, 199, 119, 119, 119, 119, 119, 73, 73,
73, 73, 135, 135, 135, 135, 135, 135, 135, 135, 73, 73,
73, 73, 73, 119, 119, 119, 95, 95, 95, 169, 169, 169,
169, 169, 169, 169, 169, 95, 95, 95, 95, 95, 107, 107,
107, 184, 184, 184, 184, 184, 184, 184, 184, 107, 107, 107,
107, 107, 155, 155, 155, 155, 155, 155, 155, 155, 155, 0
};
}
private static final short _Scanner_eof_actions[] = init__Scanner_eof_actions_0();
static final int Scanner_start = 1;
static final int Scanner_first_final = 252;
static final int Scanner_error = 0;
static final int Scanner_en_neg = 150;
static final int Scanner_en_main = 1;
// line 183 "Scanner.java.rl"
/**
* Scan the {@link #input}.
*
* @return A list of selector groups that contain a list of {@link Selector}s scanned.
* @throws ScannerException If the input is invalid.
*/
public List<List<Selector>> scan() throws ScannerException {
char[] data = input.toCharArray();
int cs;
int top;
int[] stack = new int[32];
int eof = data.length;
int p = 0;
int pe = eof;
int mark = 0;
LinkedList<List<Selector>> selectors = new LinkedList<List<Selector>>();
// List<Selector> parts = new LinkedList<Selector>();
List<Selector> parts = null;
String tagName = Selector.UNIVERSAL_TAG;
String negationTagName = Selector.UNIVERSAL_TAG;
Selector.Combinator combinator = null;
List<Specifier> specifiers = new LinkedList<Specifier>();
String attributeName = null;
String attributeValue = null;
AttributeSpecifier.Match attributeMatch = null;
String pseudoNthClass = null;
boolean isNegation = false;
Selector negationSelector = null;
// line 1538 "../java/se/fishtank/css/selectors/scanner/Scanner.java"
{
cs = Scanner_start;
top = 0;
}
// line 221 "Scanner.java.rl"
// line 1546 "../java/se/fishtank/css/selectors/scanner/Scanner.java"
{
int _klen;
int _trans = 0;
int _acts;
int _nacts;
int _keys;
int _goto_targ = 0;
_goto: while (true) {
switch ( _goto_targ ) {
case 0:
if ( p == pe ) {
_goto_targ = 4;
continue _goto;
}
if ( cs == 0 ) {
_goto_targ = 5;
continue _goto;
}
case 1:
_match: do {
_keys = _Scanner_key_offsets[cs];
_trans = _Scanner_index_offsets[cs];
_klen = _Scanner_single_lengths[cs];
if ( _klen > 0 ) {
int _lower = _keys;
int _mid;
int _upper = _keys + _klen - 1;
while (true) {
if ( _upper < _lower )
break;
_mid = _lower + ((_upper-_lower) >> 1);
if ( data[p] < _Scanner_trans_keys[_mid] )
_upper = _mid - 1;
else if ( data[p] > _Scanner_trans_keys[_mid] )
_lower = _mid + 1;
else {
_trans += (_mid - _keys);
break _match;
}
}
_keys += _klen;
_trans += _klen;
}
_klen = _Scanner_range_lengths[cs];
if ( _klen > 0 ) {
int _lower = _keys;
int _mid;
int _upper = _keys + (_klen<<1) - 2;
while (true) {
if ( _upper < _lower )
break;
_mid = _lower + (((_upper-_lower) >> 1) & ~1);
if ( data[p] < _Scanner_trans_keys[_mid] )
_upper = _mid - 2;
else if ( data[p] > _Scanner_trans_keys[_mid+1] )
_lower = _mid + 2;
else {
_trans += ((_mid - _keys)>>1);
break _match;
}
}
_trans += _klen;
}
} while (false);
_trans = _Scanner_indicies[_trans];
cs = _Scanner_trans_targs[_trans];
if ( _Scanner_trans_actions[_trans] != 0 ) {
_acts = _Scanner_trans_actions[_trans];
_nacts = (int) _Scanner_actions[_acts++];
while ( _nacts-- > 0 )
{
switch ( _Scanner_actions[_acts++] )
{
case 0:
// line 44 "Scanner.java.rl"
{
AttributeSpecifier specifier;
if (attributeValue != null) {
specifier = new AttributeSpecifier(attributeName, attributeValue, attributeMatch);
} else {
specifier = new AttributeSpecifier(attributeName);
}
specifiers.add(specifier);
}
break;
case 1:
// line 55 "Scanner.java.rl"
{
attributeName = getSlice(mark, p);
}
break;
case 2:
// line 59 "Scanner.java.rl"
{
String m = getSlice(mark, p);
if ("=".equals(m)) {
attributeMatch = AttributeSpecifier.Match.EXACT;
} else if ("~=".equals(m)) {
attributeMatch = AttributeSpecifier.Match.LIST;
} else if ("|=".equals(m)) {
attributeMatch = AttributeSpecifier.Match.HYPHEN;
} else if ("^=".equals(m)) {
attributeMatch = AttributeSpecifier.Match.PREFIX;
} else if ("$=".equals(m)) {
attributeMatch = AttributeSpecifier.Match.SUFFIX;
} else if ("*=".equals(m)) {
attributeMatch = AttributeSpecifier.Match.CONTAINS;
}
}
break;
case 3:
// line 76 "Scanner.java.rl"
{
String value = getSlice(mark, p);
if (value.charAt(0) == '"' || value.charAt(0) == '\'') {
value = value.substring(1, value.length() - 1);
}
attributeValue = value;
}
break;
case 4:
// line 85 "Scanner.java.rl"
{
specifiers.add(new AttributeSpecifier("class",
getSlice(mark, p), AttributeSpecifier.Match.LIST));
}
break;
case 5:
// line 90 "Scanner.java.rl"
{
switch (data[p]) {
case ' ':
combinator = Selector.Combinator.DESCENDANT;
break;
case '>':
combinator = Selector.Combinator.CHILD;
break;
case '+':
combinator = Selector.Combinator.ADJACENT_SIBLING;
break;
case '~':
combinator = Selector.Combinator.GENERAL_SIBLING;
break;
}
}
break;
case 6:
// line 107 "Scanner.java.rl"
{
parts = new LinkedList<Selector>();
}
break;
case 7:
// line 111 "Scanner.java.rl"
{
selectors.add(parts);
}
break;
case 8:
// line 115 "Scanner.java.rl"
{
specifiers.add(new AttributeSpecifier("id",
getSlice(mark, p), AttributeSpecifier.Match.EXACT));
}
break;
case 9:
// line 120 "Scanner.java.rl"
{
mark = p;
}
break;
case 10:
// line 124 "Scanner.java.rl"
{
isNegation = true;
}
break;
case 11:
// line 128 "Scanner.java.rl"
{
specifiers.add(new NegationSpecifier(negationSelector));
isNegation = false;
}
break;
case 12:
// line 133 "Scanner.java.rl"
{
specifiers.add(new PseudoClassSpecifier(getSlice(mark, p)));
}
break;
case 13:
// line 137 "Scanner.java.rl"
{
specifiers.add(new PseudoNthSpecifier(pseudoNthClass, getSlice(mark, p)));
}
break;
case 14:
// line 141 "Scanner.java.rl"
{
pseudoNthClass = getSlice(mark, p);
}
break;
case 15:
// line 145 "Scanner.java.rl"
{
Selector selector;
List<Specifier> list = specifiers.isEmpty() ? null : specifiers;
if (isNegation) {
negationSelector = new Selector(negationTagName, list);
} else {
if (combinator == null) {
selector = new Selector(tagName, list);
} else {
selector = new Selector(tagName, combinator, list);
}
parts.add(selector);
tagName = Selector.UNIVERSAL_TAG;
combinator = null;
}
negationTagName = Selector.UNIVERSAL_TAG;
attributeName = null;
attributeValue = null;
attributeMatch = null;
pseudoNthClass = null;
specifiers = new LinkedList<Specifier>();
}
break;
case 16:
// line 170 "Scanner.java.rl"
{
if (isNegation) {
negationTagName = getSlice(mark, p);
} else {
tagName = getSlice(mark, p);
}
}
break;
case 17:
// line 28 "ScannerCommon.rl"
{ {stack[top++] = cs; cs = 150; _goto_targ = 2; if (true) continue _goto;} }
case 18:
// line 42 "ScannerCommon.rl"
{ {cs = stack[--top];_goto_targ = 2; if (true) continue _goto;} }
// line 1802 "../java/se/fishtank/css/selectors/scanner/Scanner.java"
}
}
}
case 2:
if ( cs == 0 ) {
_goto_targ = 5;
continue _goto;
}
if ( ++p != pe ) {
_goto_targ = 1;
continue _goto;
}
case 4:
if ( p == eof )
{
int __acts = _Scanner_eof_actions[cs];
int __nacts = (int) _Scanner_actions[__acts++];
while ( __nacts-- > 0 ) {
switch ( _Scanner_actions[__acts++] ) {
case 4:
// line 85 "Scanner.java.rl"
{
specifiers.add(new AttributeSpecifier("class",
getSlice(mark, p), AttributeSpecifier.Match.LIST));
}
break;
case 7:
// line 111 "Scanner.java.rl"
{
selectors.add(parts);
}
break;
case 8:
// line 115 "Scanner.java.rl"
{
specifiers.add(new AttributeSpecifier("id",
getSlice(mark, p), AttributeSpecifier.Match.EXACT));
}
break;
case 12:
// line 133 "Scanner.java.rl"
{
specifiers.add(new PseudoClassSpecifier(getSlice(mark, p)));
}
break;
case 15:
// line 145 "Scanner.java.rl"
{
Selector selector;
List<Specifier> list = specifiers.isEmpty() ? null : specifiers;
if (isNegation) {
negationSelector = new Selector(negationTagName, list);
} else {
if (combinator == null) {
selector = new Selector(tagName, list);
} else {
selector = new Selector(tagName, combinator, list);
}
parts.add(selector);
tagName = Selector.UNIVERSAL_TAG;
combinator = null;
}
negationTagName = Selector.UNIVERSAL_TAG;
attributeName = null;
attributeValue = null;
attributeMatch = null;
pseudoNthClass = null;
specifiers = new LinkedList<Specifier>();
}
break;
case 16:
// line 170 "Scanner.java.rl"
{
if (isNegation) {
negationTagName = getSlice(mark, p);
} else {
tagName = getSlice(mark, p);
}
}
break;
// line 1886 "../java/se/fishtank/css/selectors/scanner/Scanner.java"
}
}
}
case 5:
}
break; }
}
// line 222 "Scanner.java.rl"
if (cs < Scanner_first_final && p != pe) {
// TODO: Better error reporting ;)
throw new ScannerException("Bad input!");
}
return selectors;
}
/**
* Get a slice from the {@linkplain #input scanner input}.
*
* @param start The start offset.
* @param end The end offset.
* @return A substring starting at {@code start} and ending in {@code end}.
*/
private String getSlice(int start, int end) {
return input.substring(start, end);
}
}