// line 1 "Scanner.java.rl"
package org.joox.selector;

import java.util.LinkedList;
import java.util.List;

A selectors scanner as defined by Selectors Level 3 specification.

This implementation uses the Ragel State Machine Compiler.

Use the following command to generate the Java code for the scanner:
ragel -J Scanner.java.rl -o ../java/se/fishtank/css/selectors/scanner/Scanner.java
Author:Christer Sandberg
/** * 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 */
@SuppressWarnings("all") public class Scanner {
The input to scan.
/** The input to scan. */
private final String input;
Create a new scanner instance with the specified 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 input.
Throws:
Returns:A list of selector groups that contain a list of Selectors scanned.
/** * 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 = _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 = _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 scanner input.
Params:
  • start – The start offset.
  • end – The end offset.
Returns:A substring starting at start and ending in end.
/** * 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); } }