blob: 5a7a265c871c4b230891ff5c99c189779d02f9e3 [file] [log] [blame]
halcanary00d44e02016-05-03 15:09:52 -07001
2#line 1 "hb-ot-shape-complex-indic-machine.rl"
3/*
4 * Copyright © 2011,2012 Google, Inc.
5 *
6 * This is part of HarfBuzz, a text shaping library.
7 *
8 * Permission is hereby granted, without written agreement and without
9 * license or royalty fees, to use, copy, modify, and distribute this
10 * software and its documentation for any purpose, provided that the
11 * above copyright notice and the following two paragraphs appear in
12 * all copies of this software.
13 *
14 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
15 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
16 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
17 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
18 * DAMAGE.
19 *
20 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
21 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
23 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
24 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
25 *
26 * Google Author(s): Behdad Esfahbod
27 */
28
29#ifndef HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
30#define HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH
31
32#include "hb-private.hh"
33
34
35#line 36 "hb-ot-shape-complex-indic-machine.hh"
36static const unsigned char _indic_syllable_machine_trans_keys[] = {
37 8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
38 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u,
39 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
40 4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
41 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u,
42 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
43 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
44 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u,
45 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
46 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u, 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u,
47 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u,
48 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u,
49 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u,
50 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 8u, 8u, 1u, 16u,
51 8u, 13u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
52 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 4u, 8u, 6u, 6u, 16u, 16u,
53 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
54 16u, 16u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u,
55 4u, 14u, 4u, 14u, 4u, 14u, 4u, 14u, 5u, 8u, 4u, 14u, 4u, 14u, 5u, 8u,
56 5u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u, 5u, 7u, 7u, 7u, 5u, 8u,
57 5u, 7u, 7u, 7u, 8u, 8u, 1u, 16u, 8u, 13u, 4u, 8u, 6u, 6u, 16u, 16u,
58 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u, 16u, 16u, 4u, 8u, 6u, 6u,
halcanaryaa7f67c2016-07-27 10:08:39 -070059 16u, 16u, 8u, 8u, 1u, 18u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
60 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u,
61 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u,
halcanary00d44e02016-05-03 15:09:52 -070062 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u,
63 3u, 10u, 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
64 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
halcanaryaa7f67c2016-07-27 10:08:39 -070065 5u, 14u, 3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u,
66 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
67 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
68 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
69 3u, 17u, 3u, 17u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
70 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u,
71 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u,
halcanary00d44e02016-05-03 15:09:52 -070072 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u,
73 5u, 10u, 3u, 10u, 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u,
74 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
halcanaryaa7f67c2016-07-27 10:08:39 -070075 3u, 14u, 1u, 16u, 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u,
76 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
77 1u, 16u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
78 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 1u, 16u,
79 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
80 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
81 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u,
82 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
83 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
84 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u,
85 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
86 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
87 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
88 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 4u, 14u, 3u, 17u, 4u, 14u,
89 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
90 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 1u, 16u,
91 3u, 17u, 3u, 17u, 4u, 17u, 5u, 14u, 5u, 14u, 5u, 10u, 9u, 10u, 9u, 9u,
92 9u, 10u, 9u, 10u, 9u, 9u, 5u, 10u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
93 3u, 13u, 3u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u,
94 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 1u, 16u,
95 4u, 14u, 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u,
96 3u, 17u, 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u,
97 3u, 17u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 3u, 17u,
98 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 1u, 16u, 3u, 17u, 1u, 17u, 3u, 17u,
99 1u, 17u, 4u, 14u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u, 9u, 10u, 9u, 9u,
100 5u, 10u, 1u, 16u, 3u, 17u, 3u, 17u, 4u, 17u, 3u, 17u, 3u, 17u, 1u, 16u,
halcanary00d44e02016-05-03 15:09:52 -0700101 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 14u, 4u, 14u,
halcanaryaa7f67c2016-07-27 10:08:39 -0700102 5u, 14u, 3u, 14u, 4u, 14u, 5u, 14u, 3u, 13u, 3u, 10u, 5u, 10u, 3u, 10u,
103 3u, 13u, 1u, 16u, 3u, 10u, 5u, 10u, 5u, 10u, 9u, 10u, 9u, 9u, 9u, 10u,
104 9u, 10u, 9u, 9u, 5u, 10u, 0
halcanary00d44e02016-05-03 15:09:52 -0700105};
106
107static const char _indic_syllable_machine_key_spans[] = {
108 1, 16, 6, 4, 3, 1, 4, 3,
109 1, 4, 3, 1, 4, 3, 1, 5,
110 1, 1, 5, 1, 1, 5, 1, 1,
111 5, 1, 1, 11, 11, 11, 11, 11,
112 11, 11, 11, 11, 11, 1, 16, 6,
113 4, 3, 1, 4, 3, 1, 4, 3,
114 1, 4, 3, 1, 5, 1, 1, 5,
115 1, 1, 5, 1, 1, 5, 1, 1,
116 11, 11, 11, 11, 11, 11, 11, 11,
117 11, 11, 1, 16, 6, 4, 3, 1,
118 4, 3, 1, 4, 3, 1, 4, 3,
119 1, 5, 1, 1, 5, 1, 1, 5,
120 1, 1, 5, 1, 1, 11, 11, 11,
121 11, 11, 11, 11, 11, 11, 1, 16,
122 6, 4, 3, 1, 4, 3, 1, 4,
123 3, 1, 4, 3, 1, 5, 1, 1,
124 5, 1, 1, 5, 1, 1, 5, 1,
125 1, 11, 11, 11, 11, 11, 11, 11,
126 11, 11, 11, 11, 4, 11, 11, 4,
127 3, 4, 3, 1, 4, 3, 1, 4,
128 3, 1, 1, 16, 6, 5, 1, 1,
129 5, 1, 1, 5, 1, 1, 5, 1,
halcanaryaa7f67c2016-07-27 10:08:39 -0700130 1, 1, 18, 15, 15, 14, 16, 15,
131 15, 14, 16, 15, 15, 14, 16, 15,
132 15, 14, 16, 15, 15, 14, 10, 10,
halcanary00d44e02016-05-03 15:09:52 -0700133 6, 2, 1, 2, 2, 1, 6, 11,
134 8, 6, 8, 11, 12, 12, 11, 10,
135 12, 11, 10, 12, 11, 10, 12, 11,
halcanaryaa7f67c2016-07-27 10:08:39 -0700136 10, 12, 16, 11, 15, 15, 16, 16,
137 16, 16, 16, 15, 15, 16, 16, 16,
138 16, 16, 15, 15, 16, 16, 16, 16,
139 16, 15, 15, 16, 16, 16, 16, 16,
140 15, 15, 15, 15, 14, 16, 15, 15,
141 14, 16, 15, 15, 14, 16, 15, 15,
142 14, 16, 15, 15, 14, 10, 10, 6,
halcanary00d44e02016-05-03 15:09:52 -0700143 2, 1, 2, 2, 1, 6, 11, 8,
144 6, 8, 11, 12, 12, 11, 10, 12,
145 11, 10, 12, 11, 10, 12, 11, 10,
halcanaryaa7f67c2016-07-27 10:08:39 -0700146 12, 16, 11, 15, 15, 16, 16, 16,
147 16, 16, 15, 15, 16, 16, 16, 16,
148 16, 15, 15, 16, 16, 16, 16, 16,
149 15, 15, 16, 16, 16, 16, 11, 16,
150 15, 15, 14, 16, 15, 15, 14, 16,
151 15, 15, 14, 16, 15, 15, 14, 16,
152 15, 15, 14, 10, 10, 6, 2, 1,
153 2, 2, 1, 6, 11, 8, 6, 8,
154 11, 12, 12, 11, 10, 12, 11, 10,
155 12, 11, 10, 12, 11, 10, 12, 16,
156 11, 15, 15, 16, 16, 16, 16, 16,
157 15, 15, 16, 16, 16, 16, 16, 15,
158 15, 16, 16, 16, 16, 16, 15, 15,
159 16, 16, 16, 16, 16, 11, 15, 11,
160 15, 15, 14, 16, 15, 15, 14, 16,
161 15, 15, 14, 16, 15, 15, 14, 16,
162 15, 15, 14, 10, 10, 6, 2, 1,
163 2, 2, 1, 6, 11, 8, 6, 8,
164 11, 12, 12, 11, 10, 12, 11, 10,
165 12, 11, 10, 12, 11, 10, 12, 16,
166 11, 15, 15, 16, 16, 16, 16, 16,
167 15, 15, 16, 16, 16, 16, 16, 15,
168 15, 16, 16, 16, 16, 16, 15, 15,
169 16, 16, 16, 16, 16, 15, 17, 15,
170 17, 11, 6, 2, 1, 2, 2, 1,
171 6, 16, 15, 15, 14, 15, 15, 16,
halcanary00d44e02016-05-03 15:09:52 -0700172 12, 11, 10, 12, 11, 10, 12, 11,
halcanaryaa7f67c2016-07-27 10:08:39 -0700173 10, 12, 11, 10, 11, 8, 6, 8,
174 11, 16, 8, 6, 6, 2, 1, 2,
175 2, 1, 6
halcanary00d44e02016-05-03 15:09:52 -0700176};
177
178static const short _indic_syllable_machine_index_offsets[] = {
179 0, 2, 19, 26, 31, 35, 37, 42,
180 46, 48, 53, 57, 59, 64, 68, 70,
181 76, 78, 80, 86, 88, 90, 96, 98,
182 100, 106, 108, 110, 122, 134, 146, 158,
183 170, 182, 194, 206, 218, 230, 232, 249,
184 256, 261, 265, 267, 272, 276, 278, 283,
185 287, 289, 294, 298, 300, 306, 308, 310,
186 316, 318, 320, 326, 328, 330, 336, 338,
187 340, 352, 364, 376, 388, 400, 412, 424,
188 436, 448, 460, 462, 479, 486, 491, 495,
189 497, 502, 506, 508, 513, 517, 519, 524,
190 528, 530, 536, 538, 540, 546, 548, 550,
191 556, 558, 560, 566, 568, 570, 582, 594,
192 606, 618, 630, 642, 654, 666, 678, 680,
193 697, 704, 709, 713, 715, 720, 724, 726,
194 731, 735, 737, 742, 746, 748, 754, 756,
195 758, 764, 766, 768, 774, 776, 778, 784,
196 786, 788, 800, 812, 824, 836, 848, 860,
197 872, 884, 896, 908, 920, 925, 937, 949,
198 954, 958, 963, 967, 969, 974, 978, 980,
199 985, 989, 991, 993, 1010, 1017, 1023, 1025,
200 1027, 1033, 1035, 1037, 1043, 1045, 1047, 1053,
halcanaryaa7f67c2016-07-27 10:08:39 -0700201 1055, 1057, 1059, 1078, 1094, 1110, 1125, 1142,
202 1158, 1174, 1189, 1206, 1222, 1238, 1253, 1270,
203 1286, 1302, 1317, 1334, 1350, 1366, 1381, 1392,
204 1403, 1410, 1413, 1415, 1418, 1421, 1423, 1430,
205 1442, 1451, 1458, 1467, 1479, 1492, 1505, 1517,
206 1528, 1541, 1553, 1564, 1577, 1589, 1600, 1613,
207 1625, 1636, 1649, 1666, 1678, 1694, 1710, 1727,
208 1744, 1761, 1778, 1795, 1811, 1827, 1844, 1861,
209 1878, 1895, 1912, 1928, 1944, 1961, 1978, 1995,
210 2012, 2029, 2045, 2061, 2078, 2095, 2112, 2129,
211 2146, 2162, 2178, 2194, 2210, 2225, 2242, 2258,
212 2274, 2289, 2306, 2322, 2338, 2353, 2370, 2386,
213 2402, 2417, 2434, 2450, 2466, 2481, 2492, 2503,
214 2510, 2513, 2515, 2518, 2521, 2523, 2530, 2542,
215 2551, 2558, 2567, 2579, 2592, 2605, 2617, 2628,
216 2641, 2653, 2664, 2677, 2689, 2700, 2713, 2725,
217 2736, 2749, 2766, 2778, 2794, 2810, 2827, 2844,
218 2861, 2878, 2895, 2911, 2927, 2944, 2961, 2978,
219 2995, 3012, 3028, 3044, 3061, 3078, 3095, 3112,
220 3129, 3145, 3161, 3178, 3195, 3212, 3229, 3241,
221 3258, 3274, 3290, 3305, 3322, 3338, 3354, 3369,
222 3386, 3402, 3418, 3433, 3450, 3466, 3482, 3497,
223 3514, 3530, 3546, 3561, 3572, 3583, 3590, 3593,
224 3595, 3598, 3601, 3603, 3610, 3622, 3631, 3638,
225 3647, 3659, 3672, 3685, 3697, 3708, 3721, 3733,
226 3744, 3757, 3769, 3780, 3793, 3805, 3816, 3829,
227 3846, 3858, 3874, 3890, 3907, 3924, 3941, 3958,
228 3975, 3991, 4007, 4024, 4041, 4058, 4075, 4092,
229 4108, 4124, 4141, 4158, 4175, 4192, 4209, 4225,
230 4241, 4258, 4275, 4292, 4309, 4326, 4338, 4354,
231 4366, 4382, 4398, 4413, 4430, 4446, 4462, 4477,
232 4494, 4510, 4526, 4541, 4558, 4574, 4590, 4605,
233 4622, 4638, 4654, 4669, 4680, 4691, 4698, 4701,
234 4703, 4706, 4709, 4711, 4718, 4730, 4739, 4746,
235 4755, 4767, 4780, 4793, 4805, 4816, 4829, 4841,
236 4852, 4865, 4877, 4888, 4901, 4913, 4924, 4937,
237 4954, 4966, 4982, 4998, 5015, 5032, 5049, 5066,
238 5083, 5099, 5115, 5132, 5149, 5166, 5183, 5200,
239 5216, 5232, 5249, 5266, 5283, 5300, 5317, 5333,
240 5349, 5366, 5383, 5400, 5417, 5434, 5450, 5468,
241 5484, 5502, 5514, 5521, 5524, 5526, 5529, 5532,
242 5534, 5541, 5558, 5574, 5590, 5605, 5621, 5637,
243 5654, 5667, 5679, 5690, 5703, 5715, 5726, 5739,
244 5751, 5762, 5775, 5787, 5798, 5810, 5819, 5826,
245 5835, 5847, 5864, 5873, 5880, 5887, 5890, 5892,
246 5895, 5898, 5900
halcanary00d44e02016-05-03 15:09:52 -0700247};
248
249static const short _indic_syllable_machine_indicies[] = {
250 1, 0, 2, 3, 0, 0, 0, 0,
251 0, 0, 0, 0, 0, 0, 0, 0,
252 0, 2, 0, 1, 0, 0, 0, 0,
253 4, 0, 5, 5, 6, 1, 0, 7,
254 7, 6, 0, 6, 0, 8, 8, 9,
255 1, 0, 10, 10, 9, 0, 9, 0,
256 11, 11, 12, 1, 0, 13, 13, 12,
257 0, 12, 0, 14, 14, 15, 1, 0,
258 16, 16, 15, 0, 15, 0, 17, 0,
259 0, 0, 1, 0, 18, 0, 19, 0,
260 20, 14, 14, 15, 1, 0, 21, 0,
261 22, 0, 23, 11, 11, 12, 1, 0,
262 24, 0, 25, 0, 26, 8, 8, 9,
263 1, 0, 27, 0, 28, 0, 29, 5,
264 5, 6, 1, 0, 0, 0, 0, 0,
265 29, 0, 29, 5, 5, 6, 1, 0,
266 0, 0, 0, 30, 29, 0, 31, 5,
267 5, 6, 1, 0, 0, 0, 0, 0,
268 31, 0, 31, 5, 5, 6, 1, 0,
269 0, 0, 0, 32, 31, 0, 33, 5,
270 5, 6, 1, 0, 0, 0, 0, 0,
271 33, 0, 33, 5, 5, 6, 1, 0,
272 0, 0, 0, 34, 33, 0, 35, 5,
273 5, 6, 1, 0, 0, 0, 0, 0,
274 35, 0, 35, 5, 5, 6, 1, 0,
275 0, 0, 0, 36, 35, 0, 37, 5,
276 5, 6, 1, 0, 0, 0, 0, 0,
277 37, 0, 37, 5, 5, 6, 1, 0,
278 0, 0, 0, 38, 37, 0, 40, 39,
279 41, 42, 39, 39, 39, 39, 39, 39,
280 39, 39, 39, 39, 39, 39, 39, 41,
281 39, 40, 39, 39, 39, 39, 43, 39,
282 44, 44, 45, 40, 39, 46, 46, 45,
283 39, 45, 39, 47, 47, 48, 40, 39,
284 49, 49, 48, 39, 48, 39, 50, 50,
285 51, 40, 39, 52, 52, 51, 39, 51,
286 39, 53, 53, 54, 40, 39, 55, 55,
287 54, 39, 54, 39, 56, 39, 39, 39,
288 40, 39, 57, 39, 58, 39, 59, 53,
289 53, 54, 40, 39, 60, 39, 61, 39,
290 62, 50, 50, 51, 40, 39, 63, 39,
291 64, 39, 65, 47, 47, 48, 40, 39,
292 66, 39, 67, 39, 68, 44, 44, 45,
293 40, 39, 39, 39, 39, 39, 68, 39,
294 68, 44, 44, 45, 40, 39, 39, 39,
295 39, 69, 68, 39, 70, 44, 44, 45,
296 40, 39, 39, 39, 39, 39, 70, 39,
297 70, 44, 44, 45, 40, 39, 39, 39,
298 39, 71, 70, 39, 72, 44, 44, 45,
299 40, 39, 39, 39, 39, 39, 72, 39,
300 72, 44, 44, 45, 40, 39, 39, 39,
301 39, 73, 72, 39, 74, 44, 44, 45,
302 40, 39, 39, 39, 39, 39, 74, 39,
303 74, 44, 44, 45, 40, 39, 39, 39,
304 39, 75, 74, 39, 76, 44, 44, 45,
305 40, 39, 39, 39, 39, 39, 76, 39,
306 76, 44, 44, 45, 40, 39, 39, 39,
307 39, 77, 76, 39, 79, 78, 80, 81,
308 78, 78, 78, 78, 78, 78, 78, 78,
309 78, 78, 78, 78, 78, 80, 78, 79,
310 78, 78, 78, 78, 82, 78, 83, 83,
311 84, 79, 78, 86, 86, 84, 85, 84,
312 85, 87, 87, 88, 79, 78, 89, 89,
313 88, 78, 88, 78, 90, 90, 91, 79,
314 78, 92, 92, 91, 78, 91, 78, 93,
315 93, 94, 79, 78, 95, 95, 94, 78,
316 94, 78, 96, 78, 78, 78, 79, 78,
317 97, 78, 98, 78, 99, 93, 93, 94,
318 79, 78, 100, 78, 101, 78, 102, 90,
319 90, 91, 79, 78, 103, 78, 104, 78,
320 105, 87, 87, 88, 79, 78, 106, 78,
321 107, 78, 108, 83, 83, 84, 79, 78,
322 78, 78, 78, 78, 108, 78, 108, 83,
323 83, 84, 79, 78, 78, 78, 78, 109,
324 108, 78, 110, 83, 83, 84, 79, 78,
325 78, 78, 78, 78, 110, 78, 110, 83,
326 83, 84, 79, 78, 78, 78, 78, 111,
327 110, 78, 112, 83, 83, 84, 79, 78,
328 78, 78, 78, 78, 112, 78, 112, 83,
329 83, 84, 79, 78, 78, 78, 78, 113,
330 112, 78, 114, 83, 83, 84, 79, 78,
331 78, 78, 78, 78, 114, 78, 114, 83,
332 83, 84, 79, 78, 78, 78, 78, 115,
333 114, 78, 116, 83, 83, 84, 79, 78,
334 78, 78, 78, 78, 116, 78, 118, 117,
335 119, 120, 117, 117, 117, 117, 117, 117,
336 117, 117, 117, 117, 117, 117, 117, 119,
337 117, 118, 117, 117, 117, 117, 121, 117,
338 122, 122, 123, 118, 117, 124, 124, 123,
339 117, 123, 117, 125, 125, 126, 118, 117,
340 127, 127, 126, 117, 126, 117, 128, 128,
341 129, 118, 117, 130, 130, 129, 117, 129,
342 117, 131, 131, 132, 118, 117, 133, 133,
343 132, 117, 132, 117, 134, 117, 117, 117,
344 118, 117, 135, 117, 136, 117, 137, 131,
345 131, 132, 118, 117, 138, 117, 139, 117,
346 140, 128, 128, 129, 118, 117, 141, 117,
347 142, 117, 143, 125, 125, 126, 118, 117,
348 144, 117, 145, 117, 146, 122, 122, 123,
349 118, 117, 117, 117, 117, 117, 146, 117,
350 146, 122, 122, 123, 118, 117, 117, 117,
351 117, 147, 146, 117, 148, 122, 122, 123,
352 118, 117, 117, 117, 117, 117, 148, 117,
353 148, 122, 122, 123, 118, 117, 117, 117,
354 117, 149, 148, 117, 150, 122, 122, 123,
355 118, 117, 117, 117, 117, 117, 150, 117,
356 150, 122, 122, 123, 118, 117, 117, 117,
357 117, 151, 150, 117, 152, 122, 122, 123,
358 118, 117, 117, 117, 117, 117, 152, 117,
359 152, 122, 122, 123, 118, 117, 117, 117,
360 117, 153, 152, 117, 154, 122, 122, 123,
361 118, 117, 117, 117, 117, 117, 154, 117,
362 154, 122, 122, 123, 118, 117, 117, 117,
363 117, 155, 154, 117, 116, 83, 83, 84,
364 79, 78, 78, 78, 78, 156, 116, 78,
365 86, 86, 84, 1, 0, 114, 83, 83,
366 84, 157, 0, 0, 0, 0, 0, 114,
367 0, 114, 83, 83, 84, 157, 0, 0,
368 0, 0, 158, 114, 0, 159, 159, 160,
369 1, 0, 7, 7, 160, 0, 161, 161,
370 162, 157, 0, 163, 163, 162, 0, 162,
371 0, 164, 164, 165, 157, 0, 166, 166,
372 165, 0, 165, 0, 167, 167, 168, 157,
373 0, 169, 169, 168, 0, 168, 0, 157,
374 0, 170, 171, 0, 0, 0, 0, 0,
375 0, 0, 0, 0, 0, 0, 0, 0,
376 170, 0, 157, 0, 0, 0, 0, 172,
377 0, 173, 0, 0, 0, 157, 0, 174,
378 0, 175, 0, 176, 167, 167, 168, 157,
379 0, 177, 0, 178, 0, 179, 164, 164,
380 165, 157, 0, 180, 0, 181, 0, 182,
381 161, 161, 162, 157, 0, 183, 0, 184,
382 0, 186, 185, 188, 189, 190, 191, 192,
383 193, 84, 79, 194, 195, 196, 196, 156,
halcanaryaa7f67c2016-07-27 10:08:39 -0700384 197, 198, 199, 200, 201, 187, 203, 204,
385 205, 206, 6, 1, 207, 208, 202, 202,
386 38, 209, 202, 202, 210, 202, 211, 204,
387 212, 212, 6, 1, 207, 208, 202, 202,
388 202, 209, 202, 202, 210, 202, 204, 212,
389 212, 6, 1, 207, 208, 202, 202, 202,
390 209, 202, 202, 210, 202, 213, 202, 202,
391 202, 19, 214, 202, 1, 207, 208, 202,
392 202, 202, 215, 202, 213, 202, 216, 217,
393 218, 219, 6, 1, 207, 208, 202, 202,
394 36, 220, 202, 202, 210, 202, 221, 217,
395 222, 222, 6, 1, 207, 208, 202, 202,
396 202, 220, 202, 202, 210, 202, 217, 222,
397 222, 6, 1, 207, 208, 202, 202, 202,
398 220, 202, 202, 210, 202, 223, 202, 202,
399 202, 19, 224, 202, 1, 207, 208, 202,
400 202, 202, 215, 202, 223, 202, 225, 226,
401 227, 228, 6, 1, 207, 208, 202, 202,
402 34, 229, 202, 202, 210, 202, 230, 226,
403 231, 231, 6, 1, 207, 208, 202, 202,
404 202, 229, 202, 202, 210, 202, 226, 231,
405 231, 6, 1, 207, 208, 202, 202, 202,
406 229, 202, 202, 210, 202, 232, 202, 202,
407 202, 19, 233, 202, 1, 207, 208, 202,
408 202, 202, 215, 202, 232, 202, 234, 235,
409 236, 237, 6, 1, 207, 208, 202, 202,
410 32, 238, 202, 202, 210, 202, 239, 235,
411 240, 240, 6, 1, 207, 208, 202, 202,
412 202, 238, 202, 202, 210, 202, 235, 240,
413 240, 6, 1, 207, 208, 202, 202, 202,
414 238, 202, 202, 210, 202, 241, 202, 202,
415 202, 19, 242, 202, 1, 207, 208, 202,
416 202, 202, 215, 202, 241, 202, 243, 244,
417 245, 246, 6, 1, 207, 208, 202, 202,
418 30, 247, 202, 202, 210, 202, 248, 244,
419 249, 249, 6, 1, 207, 208, 202, 202,
420 202, 247, 202, 202, 210, 202, 244, 249,
421 249, 6, 1, 207, 208, 202, 202, 202,
422 247, 202, 202, 210, 202, 19, 250, 202,
423 1, 207, 208, 202, 202, 202, 215, 202,
424 251, 251, 202, 1, 207, 208, 202, 202,
425 202, 215, 202, 252, 202, 202, 253, 207,
426 208, 202, 207, 208, 202, 254, 202, 207,
427 255, 202, 207, 256, 202, 207, 202, 252,
428 202, 202, 202, 207, 208, 202, 257, 202,
429 258, 259, 202, 1, 207, 208, 202, 202,
430 4, 202, 3, 202, 251, 251, 202, 1,
431 207, 208, 202, 251, 251, 202, 1, 207,
432 208, 202, 257, 202, 251, 251, 202, 1,
433 207, 208, 202, 257, 202, 258, 251, 202,
434 1, 207, 208, 202, 202, 4, 202, 19,
435 202, 260, 260, 6, 1, 207, 208, 202,
436 202, 202, 215, 202, 261, 28, 262, 263,
437 9, 1, 207, 208, 202, 202, 202, 215,
438 202, 28, 262, 263, 9, 1, 207, 208,
439 202, 202, 202, 215, 202, 262, 262, 9,
440 1, 207, 208, 202, 202, 202, 215, 202,
441 264, 25, 265, 266, 12, 1, 207, 208,
442 202, 202, 202, 215, 202, 25, 265, 266,
443 12, 1, 207, 208, 202, 202, 202, 215,
444 202, 265, 265, 12, 1, 207, 208, 202,
445 202, 202, 215, 202, 267, 22, 268, 269,
446 15, 1, 207, 208, 202, 202, 202, 215,
447 202, 22, 268, 269, 15, 1, 207, 208,
448 202, 202, 202, 215, 202, 268, 268, 15,
449 1, 207, 208, 202, 202, 202, 215, 202,
450 270, 19, 251, 271, 202, 1, 207, 208,
451 202, 202, 202, 215, 202, 19, 251, 271,
452 202, 1, 207, 208, 202, 202, 202, 215,
453 202, 251, 272, 202, 1, 207, 208, 202,
454 202, 202, 215, 202, 19, 202, 251, 251,
455 202, 1, 207, 208, 202, 202, 202, 215,
456 202, 2, 3, 202, 202, 19, 250, 202,
457 1, 207, 208, 202, 202, 202, 215, 202,
458 2, 202, 244, 249, 249, 6, 1, 207,
459 208, 202, 202, 202, 247, 202, 243, 244,
460 249, 249, 6, 1, 207, 208, 202, 202,
461 202, 247, 202, 202, 210, 202, 243, 244,
462 245, 249, 6, 1, 207, 208, 202, 202,
463 30, 247, 202, 202, 210, 202, 241, 202,
464 273, 202, 260, 260, 6, 1, 207, 208,
465 202, 202, 202, 215, 202, 241, 202, 241,
466 202, 202, 202, 251, 251, 202, 1, 207,
467 208, 202, 202, 202, 215, 202, 241, 202,
468 241, 202, 202, 202, 251, 274, 202, 1,
469 207, 208, 202, 202, 202, 215, 202, 241,
470 202, 241, 202, 273, 202, 251, 251, 202,
471 1, 207, 208, 202, 202, 202, 215, 202,
472 241, 202, 241, 3, 202, 202, 19, 242,
473 202, 1, 207, 208, 202, 202, 202, 215,
474 202, 241, 202, 234, 235, 240, 240, 6,
475 1, 207, 208, 202, 202, 202, 238, 202,
476 202, 210, 202, 234, 235, 236, 240, 6,
477 1, 207, 208, 202, 202, 32, 238, 202,
478 202, 210, 202, 232, 202, 275, 202, 260,
479 260, 6, 1, 207, 208, 202, 202, 202,
480 215, 202, 232, 202, 232, 202, 202, 202,
481 251, 251, 202, 1, 207, 208, 202, 202,
482 202, 215, 202, 232, 202, 232, 202, 202,
483 202, 251, 276, 202, 1, 207, 208, 202,
484 202, 202, 215, 202, 232, 202, 232, 202,
485 275, 202, 251, 251, 202, 1, 207, 208,
486 202, 202, 202, 215, 202, 232, 202, 232,
487 3, 202, 202, 19, 233, 202, 1, 207,
488 208, 202, 202, 202, 215, 202, 232, 202,
489 225, 226, 231, 231, 6, 1, 207, 208,
490 202, 202, 202, 229, 202, 202, 210, 202,
491 225, 226, 227, 231, 6, 1, 207, 208,
492 202, 202, 34, 229, 202, 202, 210, 202,
493 223, 202, 277, 202, 260, 260, 6, 1,
494 207, 208, 202, 202, 202, 215, 202, 223,
495 202, 223, 202, 202, 202, 251, 251, 202,
496 1, 207, 208, 202, 202, 202, 215, 202,
497 223, 202, 223, 202, 202, 202, 251, 278,
498 202, 1, 207, 208, 202, 202, 202, 215,
499 202, 223, 202, 223, 202, 277, 202, 251,
500 251, 202, 1, 207, 208, 202, 202, 202,
501 215, 202, 223, 202, 223, 3, 202, 202,
502 19, 224, 202, 1, 207, 208, 202, 202,
503 202, 215, 202, 223, 202, 216, 217, 222,
504 222, 6, 1, 207, 208, 202, 202, 202,
505 220, 202, 202, 210, 202, 216, 217, 218,
506 222, 6, 1, 207, 208, 202, 202, 36,
507 220, 202, 202, 210, 202, 213, 202, 279,
508 202, 260, 260, 6, 1, 207, 208, 202,
509 202, 202, 215, 202, 213, 202, 213, 202,
510 202, 202, 251, 251, 202, 1, 207, 208,
511 202, 202, 202, 215, 202, 213, 202, 213,
512 202, 202, 202, 251, 280, 202, 1, 207,
513 208, 202, 202, 202, 215, 202, 213, 202,
514 213, 202, 279, 202, 251, 251, 202, 1,
515 207, 208, 202, 202, 202, 215, 202, 213,
516 202, 213, 3, 202, 202, 19, 214, 202,
517 1, 207, 208, 202, 202, 202, 215, 202,
518 213, 202, 203, 204, 212, 212, 6, 1,
519 207, 208, 202, 202, 202, 209, 202, 202,
520 210, 202, 203, 204, 205, 212, 6, 1,
521 207, 208, 202, 202, 38, 209, 202, 202,
522 210, 202, 282, 283, 284, 285, 45, 40,
523 286, 287, 281, 281, 77, 288, 281, 281,
524 289, 281, 290, 283, 291, 285, 45, 40,
525 286, 287, 281, 281, 281, 288, 281, 281,
526 289, 281, 283, 291, 285, 45, 40, 286,
527 287, 281, 281, 281, 288, 281, 281, 289,
528 281, 292, 281, 281, 281, 58, 293, 281,
529 40, 286, 287, 281, 281, 281, 294, 281,
530 292, 281, 295, 296, 297, 298, 45, 40,
531 286, 287, 281, 281, 75, 299, 281, 281,
532 289, 281, 300, 296, 301, 301, 45, 40,
533 286, 287, 281, 281, 281, 299, 281, 281,
534 289, 281, 296, 301, 301, 45, 40, 286,
535 287, 281, 281, 281, 299, 281, 281, 289,
536 281, 302, 281, 281, 281, 58, 303, 281,
537 40, 286, 287, 281, 281, 281, 294, 281,
538 302, 281, 304, 305, 306, 307, 45, 40,
539 286, 287, 281, 281, 73, 308, 281, 281,
540 289, 281, 309, 305, 310, 310, 45, 40,
541 286, 287, 281, 281, 281, 308, 281, 281,
542 289, 281, 305, 310, 310, 45, 40, 286,
543 287, 281, 281, 281, 308, 281, 281, 289,
544 281, 311, 281, 281, 281, 58, 312, 281,
545 40, 286, 287, 281, 281, 281, 294, 281,
546 311, 281, 313, 314, 315, 316, 45, 40,
547 286, 287, 281, 281, 71, 317, 281, 281,
548 289, 281, 318, 314, 319, 319, 45, 40,
549 286, 287, 281, 281, 281, 317, 281, 281,
550 289, 281, 314, 319, 319, 45, 40, 286,
551 287, 281, 281, 281, 317, 281, 281, 289,
552 281, 320, 281, 281, 281, 58, 321, 281,
553 40, 286, 287, 281, 281, 281, 294, 281,
554 320, 281, 322, 323, 324, 325, 45, 40,
555 286, 287, 281, 281, 69, 326, 281, 281,
556 289, 281, 327, 323, 328, 328, 45, 40,
557 286, 287, 281, 281, 281, 326, 281, 281,
558 289, 281, 323, 328, 328, 45, 40, 286,
559 287, 281, 281, 281, 326, 281, 281, 289,
560 281, 58, 329, 281, 40, 286, 287, 281,
561 281, 281, 294, 281, 330, 330, 281, 40,
562 286, 287, 281, 281, 281, 294, 281, 331,
563 281, 281, 332, 286, 287, 281, 286, 287,
564 281, 333, 281, 286, 334, 281, 286, 335,
565 281, 286, 281, 331, 281, 281, 281, 286,
566 287, 281, 336, 281, 337, 338, 281, 40,
567 286, 287, 281, 281, 43, 281, 42, 281,
568 330, 330, 281, 40, 286, 287, 281, 330,
569 330, 281, 40, 286, 287, 281, 336, 281,
570 330, 330, 281, 40, 286, 287, 281, 336,
571 281, 337, 330, 281, 40, 286, 287, 281,
572 281, 43, 281, 58, 281, 339, 339, 45,
573 40, 286, 287, 281, 281, 281, 294, 281,
574 340, 67, 341, 342, 48, 40, 286, 287,
575 281, 281, 281, 294, 281, 67, 341, 342,
576 48, 40, 286, 287, 281, 281, 281, 294,
577 281, 341, 341, 48, 40, 286, 287, 281,
578 281, 281, 294, 281, 343, 64, 344, 345,
579 51, 40, 286, 287, 281, 281, 281, 294,
580 281, 64, 344, 345, 51, 40, 286, 287,
581 281, 281, 281, 294, 281, 344, 344, 51,
582 40, 286, 287, 281, 281, 281, 294, 281,
583 346, 61, 347, 348, 54, 40, 286, 287,
584 281, 281, 281, 294, 281, 61, 347, 348,
585 54, 40, 286, 287, 281, 281, 281, 294,
586 281, 347, 347, 54, 40, 286, 287, 281,
587 281, 281, 294, 281, 349, 58, 330, 350,
588 281, 40, 286, 287, 281, 281, 281, 294,
589 281, 58, 330, 350, 281, 40, 286, 287,
590 281, 281, 281, 294, 281, 330, 351, 281,
591 40, 286, 287, 281, 281, 281, 294, 281,
592 58, 281, 330, 330, 281, 40, 286, 287,
593 281, 281, 281, 294, 281, 41, 42, 281,
594 281, 58, 329, 281, 40, 286, 287, 281,
595 281, 281, 294, 281, 41, 281, 323, 328,
596 328, 45, 40, 286, 287, 281, 281, 281,
597 326, 281, 322, 323, 328, 328, 45, 40,
598 286, 287, 281, 281, 281, 326, 281, 281,
599 289, 281, 322, 323, 324, 328, 45, 40,
600 286, 287, 281, 281, 69, 326, 281, 281,
601 289, 281, 320, 281, 352, 281, 339, 339,
602 45, 40, 286, 287, 281, 281, 281, 294,
603 281, 320, 281, 320, 281, 281, 281, 330,
604 330, 281, 40, 286, 287, 281, 281, 281,
605 294, 281, 320, 281, 320, 281, 281, 281,
606 330, 353, 281, 40, 286, 287, 281, 281,
607 281, 294, 281, 320, 281, 320, 281, 352,
608 281, 330, 330, 281, 40, 286, 287, 281,
609 281, 281, 294, 281, 320, 281, 320, 42,
610 281, 281, 58, 321, 281, 40, 286, 287,
611 281, 281, 281, 294, 281, 320, 281, 313,
612 314, 319, 319, 45, 40, 286, 287, 281,
613 281, 281, 317, 281, 281, 289, 281, 313,
614 314, 315, 319, 45, 40, 286, 287, 281,
615 281, 71, 317, 281, 281, 289, 281, 311,
616 281, 354, 281, 339, 339, 45, 40, 286,
617 287, 281, 281, 281, 294, 281, 311, 281,
618 311, 281, 281, 281, 330, 330, 281, 40,
619 286, 287, 281, 281, 281, 294, 281, 311,
620 281, 311, 281, 281, 281, 330, 355, 281,
621 40, 286, 287, 281, 281, 281, 294, 281,
622 311, 281, 311, 281, 354, 281, 330, 330,
623 281, 40, 286, 287, 281, 281, 281, 294,
624 281, 311, 281, 311, 42, 281, 281, 58,
625 312, 281, 40, 286, 287, 281, 281, 281,
626 294, 281, 311, 281, 304, 305, 310, 310,
627 45, 40, 286, 287, 281, 281, 281, 308,
628 281, 281, 289, 281, 304, 305, 306, 310,
629 45, 40, 286, 287, 281, 281, 73, 308,
630 281, 281, 289, 281, 302, 281, 356, 281,
631 339, 339, 45, 40, 286, 287, 281, 281,
632 281, 294, 281, 302, 281, 302, 281, 281,
633 281, 330, 330, 281, 40, 286, 287, 281,
634 281, 281, 294, 281, 302, 281, 302, 281,
635 281, 281, 330, 357, 281, 40, 286, 287,
636 281, 281, 281, 294, 281, 302, 281, 302,
637 281, 356, 281, 330, 330, 281, 40, 286,
638 287, 281, 281, 281, 294, 281, 302, 281,
639 302, 42, 281, 281, 58, 303, 281, 40,
640 286, 287, 281, 281, 281, 294, 281, 302,
641 281, 295, 296, 301, 301, 45, 40, 286,
642 287, 281, 281, 281, 299, 281, 281, 289,
643 281, 295, 296, 297, 301, 45, 40, 286,
644 287, 281, 281, 75, 299, 281, 281, 289,
645 281, 292, 281, 358, 281, 339, 339, 45,
646 40, 286, 287, 281, 281, 281, 294, 281,
647 292, 281, 292, 281, 281, 281, 330, 330,
648 281, 40, 286, 287, 281, 281, 281, 294,
649 281, 292, 281, 292, 281, 281, 281, 330,
650 359, 281, 40, 286, 287, 281, 281, 281,
651 294, 281, 292, 281, 292, 281, 358, 281,
652 330, 330, 281, 40, 286, 287, 281, 281,
653 281, 294, 281, 292, 281, 76, 44, 44,
654 45, 40, 281, 281, 281, 281, 281, 76,
655 281, 292, 42, 281, 281, 58, 293, 281,
656 40, 286, 287, 281, 281, 281, 294, 281,
657 292, 281, 282, 283, 291, 285, 45, 40,
658 286, 287, 281, 281, 281, 288, 281, 281,
659 289, 281, 361, 191, 362, 362, 84, 79,
660 194, 195, 360, 360, 360, 197, 360, 360,
661 200, 360, 191, 362, 362, 84, 79, 194,
662 195, 360, 360, 360, 197, 360, 360, 200,
663 360, 363, 360, 360, 360, 98, 364, 360,
664 79, 194, 195, 360, 360, 360, 365, 360,
665 363, 360, 366, 367, 368, 369, 84, 79,
666 194, 195, 360, 360, 115, 370, 360, 360,
667 200, 360, 371, 367, 372, 372, 84, 79,
668 194, 195, 360, 360, 360, 370, 360, 360,
669 200, 360, 367, 372, 372, 84, 79, 194,
670 195, 360, 360, 360, 370, 360, 360, 200,
671 360, 373, 360, 360, 360, 98, 374, 360,
672 79, 194, 195, 360, 360, 360, 365, 360,
673 373, 360, 375, 376, 377, 378, 84, 79,
674 194, 195, 360, 360, 113, 379, 360, 360,
675 200, 360, 380, 376, 381, 381, 84, 79,
676 194, 195, 360, 360, 360, 379, 360, 360,
677 200, 360, 376, 381, 381, 84, 79, 194,
678 195, 360, 360, 360, 379, 360, 360, 200,
679 360, 382, 360, 360, 360, 98, 383, 360,
680 79, 194, 195, 360, 360, 360, 365, 360,
681 382, 360, 384, 385, 386, 387, 84, 79,
682 194, 195, 360, 360, 111, 388, 360, 360,
683 200, 360, 389, 385, 390, 390, 84, 79,
684 194, 195, 360, 360, 360, 388, 360, 360,
685 200, 360, 385, 390, 390, 84, 79, 194,
686 195, 360, 360, 360, 388, 360, 360, 200,
687 360, 391, 360, 360, 360, 98, 392, 360,
688 79, 194, 195, 360, 360, 360, 365, 360,
689 391, 360, 393, 394, 395, 396, 84, 79,
690 194, 195, 360, 360, 109, 397, 360, 360,
691 200, 360, 398, 394, 399, 399, 84, 79,
692 194, 195, 360, 360, 360, 397, 360, 360,
693 200, 360, 394, 399, 399, 84, 79, 194,
694 195, 360, 360, 360, 397, 360, 360, 200,
695 360, 98, 400, 360, 79, 194, 195, 360,
696 360, 360, 365, 360, 401, 401, 360, 79,
697 194, 195, 360, 360, 360, 365, 360, 402,
698 360, 360, 403, 194, 195, 360, 194, 195,
699 360, 404, 360, 194, 405, 360, 194, 406,
700 360, 194, 360, 402, 360, 360, 360, 194,
701 195, 360, 407, 360, 408, 409, 360, 79,
702 194, 195, 360, 360, 82, 360, 81, 360,
703 401, 401, 360, 79, 194, 195, 360, 401,
704 401, 360, 79, 194, 195, 360, 407, 360,
705 401, 401, 360, 79, 194, 195, 360, 407,
706 360, 408, 401, 360, 79, 194, 195, 360,
707 360, 82, 360, 98, 360, 410, 410, 84,
708 79, 194, 195, 360, 360, 360, 365, 360,
709 411, 107, 412, 413, 88, 79, 194, 195,
710 360, 360, 360, 365, 360, 107, 412, 413,
711 88, 79, 194, 195, 360, 360, 360, 365,
712 360, 412, 412, 88, 79, 194, 195, 360,
713 360, 360, 365, 360, 414, 104, 415, 416,
714 91, 79, 194, 195, 360, 360, 360, 365,
715 360, 104, 415, 416, 91, 79, 194, 195,
716 360, 360, 360, 365, 360, 415, 415, 91,
717 79, 194, 195, 360, 360, 360, 365, 360,
718 417, 101, 418, 419, 94, 79, 194, 195,
719 360, 360, 360, 365, 360, 101, 418, 419,
720 94, 79, 194, 195, 360, 360, 360, 365,
721 360, 418, 418, 94, 79, 194, 195, 360,
722 360, 360, 365, 360, 420, 98, 401, 421,
723 360, 79, 194, 195, 360, 360, 360, 365,
724 360, 98, 401, 421, 360, 79, 194, 195,
725 360, 360, 360, 365, 360, 401, 422, 360,
726 79, 194, 195, 360, 360, 360, 365, 360,
727 98, 360, 401, 401, 360, 79, 194, 195,
728 360, 360, 360, 365, 360, 80, 81, 360,
729 360, 98, 400, 360, 79, 194, 195, 360,
730 360, 360, 365, 360, 80, 360, 394, 399,
731 399, 84, 79, 194, 195, 360, 360, 360,
732 397, 360, 393, 394, 399, 399, 84, 79,
733 194, 195, 360, 360, 360, 397, 360, 360,
734 200, 360, 393, 394, 395, 399, 84, 79,
735 194, 195, 360, 360, 109, 397, 360, 360,
736 200, 360, 391, 360, 423, 360, 410, 410,
737 84, 79, 194, 195, 360, 360, 360, 365,
738 360, 391, 360, 391, 360, 360, 360, 401,
739 401, 360, 79, 194, 195, 360, 360, 360,
740 365, 360, 391, 360, 391, 360, 360, 360,
741 401, 424, 360, 79, 194, 195, 360, 360,
742 360, 365, 360, 391, 360, 391, 360, 423,
743 360, 401, 401, 360, 79, 194, 195, 360,
744 360, 360, 365, 360, 391, 360, 391, 81,
745 360, 360, 98, 392, 360, 79, 194, 195,
746 360, 360, 360, 365, 360, 391, 360, 384,
747 385, 390, 390, 84, 79, 194, 195, 360,
748 360, 360, 388, 360, 360, 200, 360, 384,
749 385, 386, 390, 84, 79, 194, 195, 360,
750 360, 111, 388, 360, 360, 200, 360, 382,
751 360, 425, 360, 410, 410, 84, 79, 194,
752 195, 360, 360, 360, 365, 360, 382, 360,
753 382, 360, 360, 360, 401, 401, 360, 79,
754 194, 195, 360, 360, 360, 365, 360, 382,
755 360, 382, 360, 360, 360, 401, 426, 360,
756 79, 194, 195, 360, 360, 360, 365, 360,
757 382, 360, 382, 360, 425, 360, 401, 401,
758 360, 79, 194, 195, 360, 360, 360, 365,
759 360, 382, 360, 382, 81, 360, 360, 98,
760 383, 360, 79, 194, 195, 360, 360, 360,
761 365, 360, 382, 360, 375, 376, 381, 381,
762 84, 79, 194, 195, 360, 360, 360, 379,
763 360, 360, 200, 360, 375, 376, 377, 381,
764 84, 79, 194, 195, 360, 360, 113, 379,
765 360, 360, 200, 360, 373, 360, 427, 360,
766 410, 410, 84, 79, 194, 195, 360, 360,
767 360, 365, 360, 373, 360, 373, 360, 360,
768 360, 401, 401, 360, 79, 194, 195, 360,
769 360, 360, 365, 360, 373, 360, 373, 360,
770 360, 360, 401, 428, 360, 79, 194, 195,
771 360, 360, 360, 365, 360, 373, 360, 373,
772 360, 427, 360, 401, 401, 360, 79, 194,
773 195, 360, 360, 360, 365, 360, 373, 360,
774 373, 81, 360, 360, 98, 374, 360, 79,
775 194, 195, 360, 360, 360, 365, 360, 373,
776 360, 366, 367, 372, 372, 84, 79, 194,
777 195, 360, 360, 360, 370, 360, 360, 200,
778 360, 366, 367, 368, 372, 84, 79, 194,
779 195, 360, 360, 115, 370, 360, 360, 200,
780 360, 363, 360, 429, 360, 410, 410, 84,
781 79, 194, 195, 360, 360, 360, 365, 360,
782 363, 360, 363, 360, 360, 360, 401, 401,
783 360, 79, 194, 195, 360, 360, 360, 365,
784 360, 363, 360, 363, 360, 360, 360, 401,
785 430, 360, 79, 194, 195, 360, 360, 360,
786 365, 360, 363, 360, 363, 360, 429, 360,
787 401, 401, 360, 79, 194, 195, 360, 360,
788 360, 365, 360, 363, 360, 363, 81, 360,
789 360, 98, 364, 360, 79, 194, 195, 360,
790 360, 360, 365, 360, 363, 360, 116, 83,
791 83, 84, 79, 431, 431, 431, 431, 156,
792 116, 431, 190, 191, 362, 362, 84, 79,
793 194, 195, 360, 360, 360, 197, 360, 360,
794 200, 360, 116, 83, 83, 84, 79, 431,
795 431, 431, 431, 431, 116, 431, 433, 434,
796 435, 436, 123, 118, 437, 438, 432, 432,
797 155, 439, 432, 432, 440, 432, 441, 434,
798 436, 436, 123, 118, 437, 438, 432, 432,
799 432, 439, 432, 432, 440, 432, 434, 436,
800 436, 123, 118, 437, 438, 432, 432, 432,
801 439, 432, 432, 440, 432, 442, 432, 432,
802 432, 136, 443, 432, 118, 437, 438, 432,
803 432, 432, 444, 432, 442, 432, 445, 446,
804 447, 448, 123, 118, 437, 438, 432, 432,
805 153, 449, 432, 432, 440, 432, 450, 446,
806 451, 451, 123, 118, 437, 438, 432, 432,
807 432, 449, 432, 432, 440, 432, 446, 451,
808 451, 123, 118, 437, 438, 432, 432, 432,
809 449, 432, 432, 440, 432, 452, 432, 432,
810 432, 136, 453, 432, 118, 437, 438, 432,
811 432, 432, 444, 432, 452, 432, 454, 455,
812 456, 457, 123, 118, 437, 438, 432, 432,
813 151, 458, 432, 432, 440, 432, 459, 455,
814 460, 460, 123, 118, 437, 438, 432, 432,
815 432, 458, 432, 432, 440, 432, 455, 460,
816 460, 123, 118, 437, 438, 432, 432, 432,
817 458, 432, 432, 440, 432, 461, 432, 432,
818 432, 136, 462, 432, 118, 437, 438, 432,
819 432, 432, 444, 432, 461, 432, 463, 464,
820 465, 466, 123, 118, 437, 438, 432, 432,
821 149, 467, 432, 432, 440, 432, 468, 464,
822 469, 469, 123, 118, 437, 438, 432, 432,
823 432, 467, 432, 432, 440, 432, 464, 469,
824 469, 123, 118, 437, 438, 432, 432, 432,
825 467, 432, 432, 440, 432, 470, 432, 432,
826 432, 136, 471, 432, 118, 437, 438, 432,
827 432, 432, 444, 432, 470, 432, 472, 473,
828 474, 475, 123, 118, 437, 438, 432, 432,
829 147, 476, 432, 432, 440, 432, 477, 473,
830 478, 478, 123, 118, 437, 438, 432, 432,
831 432, 476, 432, 432, 440, 432, 473, 478,
832 478, 123, 118, 437, 438, 432, 432, 432,
833 476, 432, 432, 440, 432, 136, 479, 432,
834 118, 437, 438, 432, 432, 432, 444, 432,
835 480, 480, 432, 118, 437, 438, 432, 432,
836 432, 444, 432, 481, 432, 432, 482, 437,
837 438, 432, 437, 438, 432, 483, 432, 437,
838 484, 432, 437, 485, 432, 437, 432, 481,
839 432, 432, 432, 437, 438, 432, 486, 432,
840 487, 488, 432, 118, 437, 438, 432, 432,
841 121, 432, 120, 432, 480, 480, 432, 118,
842 437, 438, 432, 480, 480, 432, 118, 437,
843 438, 432, 486, 432, 480, 480, 432, 118,
844 437, 438, 432, 486, 432, 487, 480, 432,
845 118, 437, 438, 432, 432, 121, 432, 136,
846 432, 489, 489, 123, 118, 437, 438, 432,
847 432, 432, 444, 432, 490, 145, 491, 492,
848 126, 118, 437, 438, 432, 432, 432, 444,
849 432, 145, 491, 492, 126, 118, 437, 438,
850 432, 432, 432, 444, 432, 491, 491, 126,
851 118, 437, 438, 432, 432, 432, 444, 432,
852 493, 142, 494, 495, 129, 118, 437, 438,
853 432, 432, 432, 444, 432, 142, 494, 495,
854 129, 118, 437, 438, 432, 432, 432, 444,
855 432, 494, 494, 129, 118, 437, 438, 432,
856 432, 432, 444, 432, 496, 139, 497, 498,
857 132, 118, 437, 438, 432, 432, 432, 444,
858 432, 139, 497, 498, 132, 118, 437, 438,
859 432, 432, 432, 444, 432, 497, 497, 132,
860 118, 437, 438, 432, 432, 432, 444, 432,
861 499, 136, 480, 500, 432, 118, 437, 438,
862 432, 432, 432, 444, 432, 136, 480, 500,
863 432, 118, 437, 438, 432, 432, 432, 444,
864 432, 480, 501, 432, 118, 437, 438, 432,
865 432, 432, 444, 432, 136, 432, 480, 480,
866 432, 118, 437, 438, 432, 432, 432, 444,
867 432, 119, 120, 432, 432, 136, 479, 432,
868 118, 437, 438, 432, 432, 432, 444, 432,
869 119, 432, 473, 478, 478, 123, 118, 437,
870 438, 432, 432, 432, 476, 432, 472, 473,
871 478, 478, 123, 118, 437, 438, 432, 432,
872 432, 476, 432, 432, 440, 432, 472, 473,
873 474, 478, 123, 118, 437, 438, 432, 432,
874 147, 476, 432, 432, 440, 432, 470, 432,
875 502, 432, 489, 489, 123, 118, 437, 438,
876 432, 432, 432, 444, 432, 470, 432, 470,
877 432, 432, 432, 480, 480, 432, 118, 437,
878 438, 432, 432, 432, 444, 432, 470, 432,
879 470, 432, 432, 432, 480, 503, 432, 118,
880 437, 438, 432, 432, 432, 444, 432, 470,
881 432, 470, 432, 502, 432, 480, 480, 432,
882 118, 437, 438, 432, 432, 432, 444, 432,
883 470, 432, 470, 120, 432, 432, 136, 471,
884 432, 118, 437, 438, 432, 432, 432, 444,
885 432, 470, 432, 463, 464, 469, 469, 123,
886 118, 437, 438, 432, 432, 432, 467, 432,
887 432, 440, 432, 463, 464, 465, 469, 123,
888 118, 437, 438, 432, 432, 149, 467, 432,
889 432, 440, 432, 461, 432, 504, 432, 489,
890 489, 123, 118, 437, 438, 432, 432, 432,
891 444, 432, 461, 432, 461, 432, 432, 432,
892 480, 480, 432, 118, 437, 438, 432, 432,
893 432, 444, 432, 461, 432, 461, 432, 432,
894 432, 480, 505, 432, 118, 437, 438, 432,
895 432, 432, 444, 432, 461, 432, 461, 432,
896 504, 432, 480, 480, 432, 118, 437, 438,
897 432, 432, 432, 444, 432, 461, 432, 461,
898 120, 432, 432, 136, 462, 432, 118, 437,
899 438, 432, 432, 432, 444, 432, 461, 432,
900 454, 455, 460, 460, 123, 118, 437, 438,
901 432, 432, 432, 458, 432, 432, 440, 432,
902 454, 455, 456, 460, 123, 118, 437, 438,
903 432, 432, 151, 458, 432, 432, 440, 432,
904 452, 432, 506, 432, 489, 489, 123, 118,
905 437, 438, 432, 432, 432, 444, 432, 452,
906 432, 452, 432, 432, 432, 480, 480, 432,
907 118, 437, 438, 432, 432, 432, 444, 432,
908 452, 432, 452, 432, 432, 432, 480, 507,
909 432, 118, 437, 438, 432, 432, 432, 444,
910 432, 452, 432, 452, 432, 506, 432, 480,
911 480, 432, 118, 437, 438, 432, 432, 432,
912 444, 432, 452, 432, 452, 120, 432, 432,
913 136, 453, 432, 118, 437, 438, 432, 432,
914 432, 444, 432, 452, 432, 445, 446, 451,
915 451, 123, 118, 437, 438, 432, 432, 432,
916 449, 432, 432, 440, 432, 445, 446, 447,
917 451, 123, 118, 437, 438, 432, 432, 153,
918 449, 432, 432, 440, 432, 442, 432, 508,
919 432, 489, 489, 123, 118, 437, 438, 432,
920 432, 432, 444, 432, 442, 432, 442, 432,
921 432, 432, 480, 480, 432, 118, 437, 438,
922 432, 432, 432, 444, 432, 442, 432, 442,
923 432, 432, 432, 480, 509, 432, 118, 437,
924 438, 432, 432, 432, 444, 432, 442, 432,
925 442, 432, 508, 432, 480, 480, 432, 118,
926 437, 438, 432, 432, 432, 444, 432, 442,
927 432, 442, 120, 432, 432, 136, 443, 432,
928 118, 437, 438, 432, 432, 432, 444, 432,
929 442, 432, 433, 434, 436, 436, 123, 118,
930 437, 438, 432, 432, 432, 439, 432, 432,
931 440, 432, 188, 189, 190, 191, 510, 362,
932 84, 79, 194, 195, 196, 196, 156, 197,
933 360, 188, 200, 360, 203, 511, 205, 206,
934 6, 1, 207, 208, 202, 202, 38, 209,
935 202, 202, 210, 202, 213, 189, 190, 191,
936 512, 513, 84, 157, 514, 515, 202, 196,
937 156, 516, 202, 213, 200, 202, 116, 517,
938 517, 84, 157, 207, 208, 202, 202, 156,
939 518, 202, 519, 202, 202, 520, 514, 515,
940 202, 514, 515, 202, 254, 202, 514, 521,
941 202, 514, 522, 202, 514, 202, 519, 202,
942 202, 202, 514, 515, 202, 523, 3, 360,
943 360, 401, 430, 360, 79, 194, 195, 360,
944 360, 360, 365, 360, 523, 360, 524, 367,
945 525, 526, 84, 157, 514, 515, 202, 202,
946 158, 370, 202, 202, 200, 202, 527, 367,
947 528, 528, 84, 157, 514, 515, 202, 202,
948 202, 370, 202, 202, 200, 202, 367, 528,
949 528, 84, 157, 514, 515, 202, 202, 202,
950 370, 202, 202, 200, 202, 524, 367, 528,
951 528, 84, 157, 514, 515, 202, 202, 202,
952 370, 202, 202, 200, 202, 524, 367, 525,
953 528, 84, 157, 514, 515, 202, 202, 158,
954 370, 202, 202, 200, 202, 213, 202, 279,
955 116, 529, 529, 160, 157, 207, 208, 202,
956 202, 202, 518, 202, 213, 202, 530, 184,
957 531, 532, 162, 157, 514, 515, 202, 202,
958 202, 533, 202, 184, 531, 532, 162, 157,
959 514, 515, 202, 202, 202, 533, 202, 531,
960 531, 162, 157, 514, 515, 202, 202, 202,
961 533, 202, 534, 181, 535, 536, 165, 157,
962 514, 515, 202, 202, 202, 533, 202, 181,
963 535, 536, 165, 157, 514, 515, 202, 202,
964 202, 533, 202, 535, 535, 165, 157, 514,
965 515, 202, 202, 202, 533, 202, 537, 178,
966 538, 539, 168, 157, 514, 515, 202, 202,
967 202, 533, 202, 178, 538, 539, 168, 157,
968 514, 515, 202, 202, 202, 533, 202, 538,
969 538, 168, 157, 514, 515, 202, 202, 202,
970 533, 202, 540, 175, 541, 542, 202, 157,
971 514, 515, 202, 202, 202, 533, 202, 175,
972 541, 542, 202, 157, 514, 515, 202, 202,
973 202, 533, 202, 541, 541, 202, 157, 514,
974 515, 202, 202, 202, 533, 202, 543, 202,
975 544, 545, 202, 157, 514, 515, 202, 202,
976 172, 202, 171, 202, 541, 541, 202, 157,
977 514, 515, 202, 541, 541, 202, 157, 514,
978 515, 202, 543, 202, 541, 541, 202, 157,
979 514, 515, 202, 543, 202, 544, 541, 202,
980 157, 514, 515, 202, 202, 172, 202, 523,
981 171, 360, 360, 98, 364, 360, 79, 194,
982 195, 360, 360, 360, 365, 360, 523, 360,
983 547, 546, 548, 548, 546, 186, 549, 550,
984 546, 548, 548, 546, 186, 549, 550, 546,
985 551, 546, 546, 552, 549, 550, 546, 549,
986 550, 546, 553, 546, 549, 554, 546, 549,
987 555, 546, 549, 546, 551, 546, 546, 546,
988 549, 550, 546, 0
halcanary00d44e02016-05-03 15:09:52 -0700989};
990
991static const short _indic_syllable_machine_trans_targs[] = {
992 178, 200, 207, 209, 210, 4, 213, 5,
993 7, 216, 8, 10, 219, 11, 13, 222,
994 14, 16, 17, 199, 19, 20, 221, 22,
halcanaryaa7f67c2016-07-27 10:08:39 -0700995 23, 218, 25, 26, 215, 224, 228, 232,
996 235, 239, 242, 246, 249, 253, 256, 178,
997 279, 286, 288, 289, 41, 292, 42, 44,
998 295, 45, 47, 298, 48, 50, 301, 51,
999 53, 54, 278, 56, 57, 300, 59, 60,
1000 297, 62, 63, 294, 303, 307, 311, 314,
1001 318, 321, 325, 328, 332, 336, 178, 357,
1002 364, 366, 367, 78, 370, 178, 79, 81,
1003 373, 82, 84, 376, 85, 87, 379, 88,
1004 90, 91, 356, 93, 94, 378, 96, 97,
1005 375, 99, 100, 372, 381, 385, 389, 392,
1006 396, 399, 403, 406, 410, 178, 437, 444,
1007 446, 447, 114, 450, 115, 117, 453, 118,
1008 120, 456, 121, 123, 459, 124, 126, 127,
1009 436, 129, 130, 458, 132, 133, 455, 135,
1010 136, 452, 461, 465, 469, 472, 476, 479,
1011 483, 486, 490, 493, 414, 498, 509, 152,
1012 512, 154, 515, 155, 157, 518, 158, 160,
1013 521, 161, 524, 526, 527, 166, 167, 523,
1014 169, 170, 520, 172, 173, 517, 175, 176,
1015 514, 178, 532, 178, 179, 258, 337, 339,
1016 413, 415, 359, 360, 416, 412, 494, 495,
1017 384, 530, 178, 180, 182, 36, 257, 202,
1018 203, 255, 227, 181, 35, 183, 251, 1,
1019 184, 186, 34, 250, 248, 185, 33, 187,
1020 244, 188, 190, 32, 243, 241, 189, 31,
1021 191, 237, 192, 194, 30, 236, 234, 193,
1022 29, 195, 230, 196, 198, 28, 229, 226,
1023 197, 27, 212, 0, 201, 206, 178, 204,
1024 205, 208, 2, 211, 3, 214, 6, 24,
1025 217, 9, 21, 220, 12, 18, 223, 15,
1026 225, 231, 233, 238, 240, 245, 247, 252,
1027 254, 178, 259, 261, 73, 334, 281, 282,
1028 335, 306, 260, 72, 262, 330, 38, 263,
1029 265, 71, 329, 327, 264, 70, 266, 323,
1030 267, 269, 69, 322, 320, 268, 68, 270,
1031 316, 271, 273, 67, 315, 313, 272, 66,
1032 274, 309, 275, 277, 65, 308, 305, 276,
1033 64, 291, 37, 280, 285, 178, 283, 284,
1034 287, 39, 290, 40, 293, 43, 61, 296,
1035 46, 58, 299, 49, 55, 302, 52, 304,
1036 310, 312, 317, 319, 324, 326, 331, 333,
1037 178, 338, 109, 340, 408, 75, 341, 343,
1038 108, 407, 405, 342, 107, 344, 401, 345,
1039 347, 106, 400, 398, 346, 105, 348, 394,
1040 349, 351, 104, 393, 391, 350, 103, 352,
1041 387, 353, 355, 102, 386, 383, 354, 101,
1042 369, 74, 358, 363, 178, 361, 362, 365,
1043 76, 368, 77, 371, 80, 98, 374, 83,
1044 95, 377, 86, 92, 380, 89, 382, 388,
1045 390, 395, 397, 402, 404, 409, 411, 178,
1046 178, 417, 419, 146, 145, 439, 440, 492,
1047 464, 418, 420, 488, 111, 421, 423, 144,
1048 487, 485, 422, 143, 424, 481, 425, 427,
1049 142, 480, 478, 426, 141, 428, 474, 429,
1050 431, 140, 473, 471, 430, 139, 432, 467,
1051 433, 435, 138, 466, 463, 434, 137, 449,
1052 110, 438, 443, 178, 441, 442, 445, 112,
1053 448, 113, 451, 116, 134, 454, 119, 131,
1054 457, 122, 128, 460, 125, 462, 468, 470,
1055 475, 477, 482, 484, 489, 491, 147, 496,
1056 497, 511, 500, 501, 529, 148, 505, 499,
1057 504, 502, 503, 506, 507, 150, 510, 508,
1058 149, 151, 513, 153, 174, 163, 516, 156,
1059 171, 519, 159, 168, 522, 162, 165, 525,
1060 164, 528, 178, 531, 177, 534, 535, 533,
1061 538, 178, 536, 537
halcanary00d44e02016-05-03 15:09:52 -07001062};
1063
1064static const char _indic_syllable_machine_trans_actions[] = {
1065 1, 0, 2, 2, 2, 0, 2, 0,
1066 0, 2, 0, 0, 2, 0, 0, 2,
1067 0, 0, 0, 2, 0, 0, 2, 0,
1068 0, 2, 0, 0, 2, 2, 2, 2,
1069 2, 2, 2, 2, 2, 2, 2, 3,
1070 0, 2, 2, 2, 0, 2, 0, 0,
1071 2, 0, 0, 2, 0, 0, 2, 0,
1072 0, 0, 2, 0, 0, 2, 0, 0,
1073 2, 0, 0, 2, 2, 2, 2, 2,
1074 2, 2, 2, 2, 2, 2, 4, 0,
1075 2, 2, 2, 0, 2, 5, 0, 0,
1076 2, 0, 0, 2, 0, 0, 2, 0,
1077 0, 0, 2, 0, 0, 2, 0, 0,
1078 2, 0, 0, 2, 2, 6, 2, 6,
1079 2, 6, 2, 6, 2, 7, 0, 2,
1080 2, 2, 0, 2, 0, 0, 2, 0,
1081 0, 2, 0, 0, 2, 0, 0, 0,
1082 2, 0, 0, 2, 0, 0, 2, 0,
1083 0, 2, 2, 2, 2, 2, 2, 2,
1084 2, 2, 2, 2, 6, 0, 8, 0,
1085 2, 0, 2, 0, 0, 2, 0, 0,
1086 2, 0, 2, 2, 2, 0, 0, 2,
1087 0, 0, 2, 0, 0, 2, 0, 0,
1088 2, 9, 0, 12, 2, 2, 6, 2,
1089 13, 13, 0, 0, 2, 2, 6, 2,
halcanaryaa7f67c2016-07-27 10:08:39 -07001090 6, 2, 14, 2, 2, 0, 2, 0,
1091 0, 2, 2, 2, 0, 2, 2, 0,
1092 2, 2, 0, 2, 2, 2, 0, 2,
1093 2, 2, 2, 0, 2, 2, 2, 0,
halcanary00d44e02016-05-03 15:09:52 -07001094 2, 2, 2, 2, 0, 2, 2, 2,
1095 0, 2, 2, 2, 2, 0, 2, 2,
halcanaryaa7f67c2016-07-27 10:08:39 -07001096 2, 0, 2, 0, 0, 0, 15, 0,
1097 0, 2, 0, 2, 0, 2, 0, 0,
1098 2, 0, 0, 2, 0, 0, 2, 0,
1099 2, 2, 2, 2, 2, 2, 2, 2,
1100 2, 16, 2, 2, 0, 2, 0, 0,
1101 2, 2, 2, 0, 2, 2, 0, 2,
1102 2, 0, 2, 2, 2, 0, 2, 2,
1103 2, 2, 0, 2, 2, 2, 0, 2,
1104 2, 2, 2, 0, 2, 2, 2, 0,
1105 2, 2, 2, 2, 0, 2, 2, 2,
1106 0, 2, 0, 0, 0, 17, 0, 0,
1107 2, 0, 2, 0, 2, 0, 0, 2,
1108 0, 0, 2, 0, 0, 2, 0, 2,
1109 2, 2, 2, 2, 2, 2, 2, 2,
1110 18, 6, 0, 6, 6, 0, 6, 2,
1111 0, 6, 2, 6, 0, 6, 6, 6,
1112 2, 0, 6, 2, 6, 0, 6, 6,
1113 6, 2, 0, 6, 2, 6, 0, 6,
1114 6, 6, 2, 0, 6, 2, 6, 0,
1115 6, 0, 0, 0, 19, 0, 0, 2,
1116 0, 2, 0, 2, 0, 0, 2, 0,
1117 0, 2, 0, 0, 2, 0, 2, 2,
1118 2, 2, 2, 2, 2, 2, 2, 20,
1119 21, 2, 2, 0, 0, 0, 0, 2,
1120 2, 2, 2, 2, 0, 2, 2, 0,
1121 2, 2, 2, 0, 2, 2, 2, 2,
1122 0, 2, 2, 2, 0, 2, 2, 2,
1123 2, 0, 2, 2, 2, 0, 2, 2,
1124 2, 2, 0, 2, 2, 2, 0, 2,
1125 0, 0, 0, 22, 0, 0, 2, 0,
1126 2, 0, 2, 0, 0, 2, 0, 0,
1127 2, 0, 0, 2, 0, 2, 2, 2,
1128 2, 2, 2, 2, 2, 2, 0, 0,
1129 8, 2, 0, 0, 2, 0, 2, 0,
1130 0, 0, 0, 8, 8, 0, 8, 8,
1131 0, 0, 2, 0, 0, 0, 2, 0,
halcanary00d44e02016-05-03 15:09:52 -07001132 0, 2, 0, 0, 2, 0, 0, 2,
halcanaryaa7f67c2016-07-27 10:08:39 -07001133 0, 2, 23, 2, 0, 0, 0, 0,
1134 0, 24, 0, 0
halcanary00d44e02016-05-03 15:09:52 -07001135};
1136
1137static const char _indic_syllable_machine_to_state_actions[] = {
1138 0, 0, 0, 0, 0, 0, 0, 0,
1139 0, 0, 0, 0, 0, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0,
1142 0, 0, 0, 0, 0, 0, 0, 0,
1143 0, 0, 0, 0, 0, 0, 0, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0,
1145 0, 0, 0, 0, 0, 0, 0, 0,
1146 0, 0, 0, 0, 0, 0, 0, 0,
1147 0, 0, 0, 0, 0, 0, 0, 0,
1148 0, 0, 0, 0, 0, 0, 0, 0,
1149 0, 0, 0, 0, 0, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 0,
1151 0, 0, 0, 0, 0, 0, 0, 0,
1152 0, 0, 0, 0, 0, 0, 0, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, 0, 0, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 0, 0, 0, 0, 0, 0,
1160 0, 0, 10, 0, 0, 0, 0, 0,
1161 0, 0, 0, 0, 0, 0, 0, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 0, 0, 0, 0,
1164 0, 0, 0, 0, 0, 0, 0, 0,
1165 0, 0, 0, 0, 0, 0, 0, 0,
1166 0, 0, 0, 0, 0, 0, 0, 0,
1167 0, 0, 0, 0, 0, 0, 0, 0,
1168 0, 0, 0, 0, 0, 0, 0, 0,
1169 0, 0, 0, 0, 0, 0, 0, 0,
1170 0, 0, 0, 0, 0, 0, 0, 0,
1171 0, 0, 0, 0, 0, 0, 0, 0,
1172 0, 0, 0, 0, 0, 0, 0, 0,
1173 0, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 0, 0, 0,
1175 0, 0, 0, 0, 0, 0, 0, 0,
1176 0, 0, 0, 0, 0, 0, 0, 0,
1177 0, 0, 0, 0, 0, 0, 0, 0,
1178 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 0, 0, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0,
1194 0, 0, 0, 0, 0, 0, 0, 0,
1195 0, 0, 0, 0, 0, 0, 0, 0,
1196 0, 0, 0, 0, 0, 0, 0, 0,
1197 0, 0, 0, 0, 0, 0, 0, 0,
1198 0, 0, 0, 0, 0, 0, 0, 0,
1199 0, 0, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0,
halcanaryaa7f67c2016-07-27 10:08:39 -07001205 0, 0, 0
halcanary00d44e02016-05-03 15:09:52 -07001206};
1207
1208static const char _indic_syllable_machine_from_state_actions[] = {
1209 0, 0, 0, 0, 0, 0, 0, 0,
1210 0, 0, 0, 0, 0, 0, 0, 0,
1211 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0,
1214 0, 0, 0, 0, 0, 0, 0, 0,
1215 0, 0, 0, 0, 0, 0, 0, 0,
1216 0, 0, 0, 0, 0, 0, 0, 0,
1217 0, 0, 0, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0,
1219 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 0, 0, 0, 0,
1222 0, 0, 0, 0, 0, 0, 0, 0,
1223 0, 0, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 0, 0,
1226 0, 0, 0, 0, 0, 0, 0, 0,
1227 0, 0, 0, 0, 0, 0, 0, 0,
1228 0, 0, 0, 0, 0, 0, 0, 0,
1229 0, 0, 0, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 0, 0,
1231 0, 0, 11, 0, 0, 0, 0, 0,
1232 0, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0,
1246 0, 0, 0, 0, 0, 0, 0, 0,
1247 0, 0, 0, 0, 0, 0, 0, 0,
1248 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 0, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 0,
1251 0, 0, 0, 0, 0, 0, 0, 0,
1252 0, 0, 0, 0, 0, 0, 0, 0,
1253 0, 0, 0, 0, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0,
1255 0, 0, 0, 0, 0, 0, 0, 0,
1256 0, 0, 0, 0, 0, 0, 0, 0,
1257 0, 0, 0, 0, 0, 0, 0, 0,
1258 0, 0, 0, 0, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 0,
1260 0, 0, 0, 0, 0, 0, 0, 0,
1261 0, 0, 0, 0, 0, 0, 0, 0,
1262 0, 0, 0, 0, 0, 0, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0,
1264 0, 0, 0, 0, 0, 0, 0, 0,
1265 0, 0, 0, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, 0, 0, 0, 0, 0,
1268 0, 0, 0, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0,
1270 0, 0, 0, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0,
1272 0, 0, 0, 0, 0, 0, 0, 0,
1273 0, 0, 0, 0, 0, 0, 0, 0,
1274 0, 0, 0, 0, 0, 0, 0, 0,
1275 0, 0, 0, 0, 0, 0, 0, 0,
halcanaryaa7f67c2016-07-27 10:08:39 -07001276 0, 0, 0
halcanary00d44e02016-05-03 15:09:52 -07001277};
1278
1279static const short _indic_syllable_machine_eof_trans[] = {
1280 1, 1, 1, 1, 1, 1, 1, 1,
1281 1, 1, 1, 1, 1, 1, 1, 1,
1282 1, 1, 1, 1, 1, 1, 1, 1,
1283 1, 1, 1, 1, 1, 1, 1, 1,
1284 1, 1, 1, 1, 1, 40, 40, 40,
1285 40, 40, 40, 40, 40, 40, 40, 40,
1286 40, 40, 40, 40, 40, 40, 40, 40,
1287 40, 40, 40, 40, 40, 40, 40, 40,
1288 40, 40, 40, 40, 40, 40, 40, 40,
1289 40, 40, 79, 79, 79, 79, 86, 86,
1290 79, 79, 79, 79, 79, 79, 79, 79,
1291 79, 79, 79, 79, 79, 79, 79, 79,
1292 79, 79, 79, 79, 79, 79, 79, 79,
1293 79, 79, 79, 79, 79, 79, 118, 118,
1294 118, 118, 118, 118, 118, 118, 118, 118,
1295 118, 118, 118, 118, 118, 118, 118, 118,
1296 118, 118, 118, 118, 118, 118, 118, 118,
1297 118, 118, 118, 118, 118, 118, 118, 118,
1298 118, 118, 118, 79, 1, 1, 1, 1,
1299 1, 1, 1, 1, 1, 1, 1, 1,
1300 1, 1, 1, 1, 1, 1, 1, 1,
1301 1, 1, 1, 1, 1, 1, 1, 1,
halcanaryaa7f67c2016-07-27 10:08:39 -07001302 1, 186, 0, 203, 203, 203, 203, 203,
1303 203, 203, 203, 203, 203, 203, 203, 203,
1304 203, 203, 203, 203, 203, 203, 203, 203,
1305 203, 203, 203, 203, 203, 203, 203, 203,
1306 203, 203, 203, 203, 203, 203, 203, 203,
1307 203, 203, 203, 203, 203, 203, 203, 203,
1308 203, 203, 203, 203, 203, 203, 203, 203,
1309 203, 203, 203, 203, 203, 203, 203, 203,
1310 203, 203, 203, 203, 203, 203, 203, 203,
1311 203, 203, 203, 203, 203, 203, 203, 203,
1312 203, 203, 282, 282, 282, 282, 282, 282,
1313 282, 282, 282, 282, 282, 282, 282, 282,
1314 282, 282, 282, 282, 282, 282, 282, 282,
1315 282, 282, 282, 282, 282, 282, 282, 282,
1316 282, 282, 282, 282, 282, 282, 282, 282,
1317 282, 282, 282, 282, 282, 282, 282, 282,
1318 282, 282, 282, 282, 282, 282, 282, 282,
1319 282, 282, 282, 282, 282, 282, 282, 282,
1320 282, 282, 282, 282, 282, 282, 282, 282,
1321 282, 282, 282, 282, 282, 282, 282, 282,
1322 282, 361, 361, 361, 361, 361, 361, 361,
1323 361, 361, 361, 361, 361, 361, 361, 361,
1324 361, 361, 361, 361, 361, 361, 361, 361,
1325 361, 361, 361, 361, 361, 361, 361, 361,
1326 361, 361, 361, 361, 361, 361, 361, 361,
1327 361, 361, 361, 361, 361, 361, 361, 361,
1328 361, 361, 361, 361, 361, 361, 361, 361,
1329 361, 361, 361, 361, 361, 361, 361, 361,
1330 361, 361, 361, 361, 361, 361, 361, 361,
1331 361, 361, 361, 361, 361, 432, 361, 432,
1332 433, 433, 433, 433, 433, 433, 433, 433,
1333 433, 433, 433, 433, 433, 433, 433, 433,
1334 433, 433, 433, 433, 433, 433, 433, 433,
1335 433, 433, 433, 433, 433, 433, 433, 433,
1336 433, 433, 433, 433, 433, 433, 433, 433,
1337 433, 433, 433, 433, 433, 433, 433, 433,
1338 433, 433, 433, 433, 433, 433, 433, 433,
1339 433, 433, 433, 433, 433, 433, 433, 433,
1340 433, 433, 433, 433, 433, 433, 433, 433,
1341 433, 433, 433, 433, 433, 433, 361, 203,
1342 203, 203, 203, 203, 203, 203, 203, 203,
1343 203, 361, 203, 203, 203, 203, 203, 203,
1344 203, 203, 203, 203, 203, 203, 203, 203,
1345 203, 203, 203, 203, 203, 203, 203, 203,
1346 203, 361, 547, 547, 547, 547, 547, 547,
1347 547, 547, 547
halcanary00d44e02016-05-03 15:09:52 -07001348};
1349
1350static const int indic_syllable_machine_start = 178;
1351static const int indic_syllable_machine_first_final = 178;
1352static const int indic_syllable_machine_error = -1;
1353
1354static const int indic_syllable_machine_en_main = 178;
1355
1356
1357#line 36 "hb-ot-shape-complex-indic-machine.rl"
1358
1359
1360
halcanaryaa7f67c2016-07-27 10:08:39 -07001361#line 96 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001362
1363
1364#define found_syllable(syllable_type) \
1365 HB_STMT_START { \
1366 if (0) fprintf (stderr, "syllable %d..%d %s\n", last, p+1, #syllable_type); \
1367 for (unsigned int i = last; i < p+1; i++) \
1368 info[i].syllable() = (syllable_serial << 4) | syllable_type; \
1369 last = p+1; \
1370 syllable_serial++; \
1371 if (unlikely (syllable_serial == 16)) syllable_serial = 1; \
1372 } HB_STMT_END
1373
1374static void
1375find_syllables (hb_buffer_t *buffer)
1376{
1377 unsigned int p, pe, eof, ts HB_UNUSED, te HB_UNUSED, act HB_UNUSED;
1378 int cs;
1379 hb_glyph_info_t *info = buffer->info;
1380
halcanaryaa7f67c2016-07-27 10:08:39 -07001381#line 1382 "hb-ot-shape-complex-indic-machine.hh"
halcanary00d44e02016-05-03 15:09:52 -07001382 {
1383 cs = indic_syllable_machine_start;
1384 ts = 0;
1385 te = 0;
1386 act = 0;
1387 }
1388
halcanaryaa7f67c2016-07-27 10:08:39 -07001389#line 117 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001390
1391
1392 p = 0;
1393 pe = eof = buffer->len;
1394
1395 unsigned int last = 0;
1396 unsigned int syllable_serial = 1;
1397
halcanaryaa7f67c2016-07-27 10:08:39 -07001398#line 1399 "hb-ot-shape-complex-indic-machine.hh"
halcanary00d44e02016-05-03 15:09:52 -07001399 {
1400 int _slen;
1401 int _trans;
1402 const unsigned char *_keys;
1403 const short *_inds;
1404 if ( p == pe )
1405 goto _test_eof;
1406_resume:
1407 switch ( _indic_syllable_machine_from_state_actions[cs] ) {
1408 case 11:
1409#line 1 "NONE"
1410 {ts = p;}
1411 break;
halcanaryaa7f67c2016-07-27 10:08:39 -07001412#line 1413 "hb-ot-shape-complex-indic-machine.hh"
halcanary00d44e02016-05-03 15:09:52 -07001413 }
1414
1415 _keys = _indic_syllable_machine_trans_keys + (cs<<1);
1416 _inds = _indic_syllable_machine_indicies + _indic_syllable_machine_index_offsets[cs];
1417
1418 _slen = _indic_syllable_machine_key_spans[cs];
1419 _trans = _inds[ _slen > 0 && _keys[0] <=( info[p].indic_category()) &&
1420 ( info[p].indic_category()) <= _keys[1] ?
1421 ( info[p].indic_category()) - _keys[0] : _slen ];
1422
1423_eof_trans:
1424 cs = _indic_syllable_machine_trans_targs[_trans];
1425
1426 if ( _indic_syllable_machine_trans_actions[_trans] == 0 )
1427 goto _again;
1428
1429 switch ( _indic_syllable_machine_trans_actions[_trans] ) {
1430 case 2:
1431#line 1 "NONE"
1432 {te = p+1;}
1433 break;
1434 case 15:
halcanaryaa7f67c2016-07-27 10:08:39 -07001435#line 87 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001436 {te = p+1;{ found_syllable (consonant_syllable); }}
1437 break;
1438 case 17:
halcanaryaa7f67c2016-07-27 10:08:39 -07001439#line 88 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001440 {te = p+1;{ found_syllable (vowel_syllable); }}
1441 break;
1442 case 22:
halcanaryaa7f67c2016-07-27 10:08:39 -07001443#line 89 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001444 {te = p+1;{ found_syllable (standalone_cluster); }}
1445 break;
1446 case 24:
halcanaryaa7f67c2016-07-27 10:08:39 -07001447#line 90 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001448 {te = p+1;{ found_syllable (symbol_cluster); }}
1449 break;
1450 case 19:
halcanaryaa7f67c2016-07-27 10:08:39 -07001451#line 91 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001452 {te = p+1;{ found_syllable (broken_cluster); }}
1453 break;
1454 case 12:
halcanaryaa7f67c2016-07-27 10:08:39 -07001455#line 92 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001456 {te = p+1;{ found_syllable (non_indic_cluster); }}
1457 break;
1458 case 14:
halcanaryaa7f67c2016-07-27 10:08:39 -07001459#line 87 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001460 {te = p;p--;{ found_syllable (consonant_syllable); }}
1461 break;
1462 case 16:
halcanaryaa7f67c2016-07-27 10:08:39 -07001463#line 88 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001464 {te = p;p--;{ found_syllable (vowel_syllable); }}
1465 break;
1466 case 21:
halcanaryaa7f67c2016-07-27 10:08:39 -07001467#line 89 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001468 {te = p;p--;{ found_syllable (standalone_cluster); }}
1469 break;
1470 case 23:
halcanaryaa7f67c2016-07-27 10:08:39 -07001471#line 90 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001472 {te = p;p--;{ found_syllable (symbol_cluster); }}
1473 break;
1474 case 18:
halcanaryaa7f67c2016-07-27 10:08:39 -07001475#line 91 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001476 {te = p;p--;{ found_syllable (broken_cluster); }}
1477 break;
1478 case 20:
halcanaryaa7f67c2016-07-27 10:08:39 -07001479#line 92 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001480 {te = p;p--;{ found_syllable (non_indic_cluster); }}
1481 break;
1482 case 1:
halcanaryaa7f67c2016-07-27 10:08:39 -07001483#line 87 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001484 {{p = ((te))-1;}{ found_syllable (consonant_syllable); }}
1485 break;
1486 case 3:
halcanaryaa7f67c2016-07-27 10:08:39 -07001487#line 88 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001488 {{p = ((te))-1;}{ found_syllable (vowel_syllable); }}
1489 break;
1490 case 7:
halcanaryaa7f67c2016-07-27 10:08:39 -07001491#line 89 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001492 {{p = ((te))-1;}{ found_syllable (standalone_cluster); }}
1493 break;
1494 case 9:
halcanaryaa7f67c2016-07-27 10:08:39 -07001495#line 90 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001496 {{p = ((te))-1;}{ found_syllable (symbol_cluster); }}
1497 break;
1498 case 4:
halcanaryaa7f67c2016-07-27 10:08:39 -07001499#line 91 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001500 {{p = ((te))-1;}{ found_syllable (broken_cluster); }}
1501 break;
1502 case 5:
1503#line 1 "NONE"
1504 { switch( act ) {
1505 case 1:
1506 {{p = ((te))-1;} found_syllable (consonant_syllable); }
1507 break;
1508 case 5:
1509 {{p = ((te))-1;} found_syllable (broken_cluster); }
1510 break;
1511 case 6:
1512 {{p = ((te))-1;} found_syllable (non_indic_cluster); }
1513 break;
1514 }
1515 }
1516 break;
1517 case 8:
1518#line 1 "NONE"
1519 {te = p+1;}
halcanaryaa7f67c2016-07-27 10:08:39 -07001520#line 87 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001521 {act = 1;}
1522 break;
1523 case 6:
1524#line 1 "NONE"
1525 {te = p+1;}
halcanaryaa7f67c2016-07-27 10:08:39 -07001526#line 91 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001527 {act = 5;}
1528 break;
1529 case 13:
1530#line 1 "NONE"
1531 {te = p+1;}
halcanaryaa7f67c2016-07-27 10:08:39 -07001532#line 92 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001533 {act = 6;}
1534 break;
halcanaryaa7f67c2016-07-27 10:08:39 -07001535#line 1536 "hb-ot-shape-complex-indic-machine.hh"
halcanary00d44e02016-05-03 15:09:52 -07001536 }
1537
1538_again:
1539 switch ( _indic_syllable_machine_to_state_actions[cs] ) {
1540 case 10:
1541#line 1 "NONE"
1542 {ts = 0;}
1543 break;
halcanaryaa7f67c2016-07-27 10:08:39 -07001544#line 1545 "hb-ot-shape-complex-indic-machine.hh"
halcanary00d44e02016-05-03 15:09:52 -07001545 }
1546
1547 if ( ++p != pe )
1548 goto _resume;
1549 _test_eof: {}
1550 if ( p == eof )
1551 {
1552 if ( _indic_syllable_machine_eof_trans[cs] > 0 ) {
1553 _trans = _indic_syllable_machine_eof_trans[cs] - 1;
1554 goto _eof_trans;
1555 }
1556 }
1557
1558 }
1559
halcanaryaa7f67c2016-07-27 10:08:39 -07001560#line 126 "hb-ot-shape-complex-indic-machine.rl"
halcanary00d44e02016-05-03 15:09:52 -07001561
1562}
1563
1564#endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */