Coverage Report

Created: 2025-07-07 10:01

/work/workdir/UnpackedTarball/harfbuzz/src/hb-buffer-deserialize-json.hh
Line
Count
Source (jump to first uncovered line)
1
2
#line 1 "hb-buffer-deserialize-json.rl"
3
/*
4
 * Copyright © 2013  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_BUFFER_DESERIALIZE_JSON_HH
30
#define HB_BUFFER_DESERIALIZE_JSON_HH
31
32
#include "hb.hh"
33
34
35
#line 33 "hb-buffer-deserialize-json.hh"
36
static const unsigned char _deserialize_json_trans_keys[] = {
37
  0u, 0u, 9u, 34u, 97u, 121u, 120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 
38
  9u, 125u, 9u, 125u, 9u, 93u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 
39
  9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 9u, 125u, 
40
  120u, 121u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 
41
  9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 9u, 125u, 108u, 108u, 34u, 34u, 9u, 58u, 
42
  9u, 57u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 34u, 92u, 9u, 125u, 
43
  34u, 92u, 9u, 125u, 9u, 125u, 34u, 34u, 9u, 58u, 9u, 57u, 48u, 57u, 9u, 125u, 
44
  34u, 34u, 9u, 58u, 9u, 57u, 9u, 125u, 98u, 98u, 9u, 123u, 9u, 123u, 9u, 123u, 
45
  0
46
};
47
48
static const char _deserialize_json_key_spans[] = {
49
  0, 26, 25, 2, 1, 50, 49, 10, 
50
  117, 117, 85, 117, 1, 50, 49, 10, 
51
  117, 117, 1, 1, 50, 49, 117, 117, 
52
  2, 1, 50, 49, 10, 117, 117, 1, 
53
  50, 49, 10, 117, 117, 1, 1, 50, 
54
  49, 117, 117, 1, 50, 49, 59, 117, 
55
  59, 117, 117, 1, 50, 49, 10, 117, 
56
  1, 50, 49, 117, 1, 115, 115, 115
57
};
58
59
static const short _deserialize_json_index_offsets[] = {
60
  0, 0, 27, 53, 56, 58, 109, 159, 
61
  170, 288, 406, 492, 610, 612, 663, 713, 
62
  724, 842, 960, 962, 964, 1015, 1065, 1183, 
63
  1301, 1304, 1306, 1357, 1407, 1418, 1536, 1654, 
64
  1656, 1707, 1757, 1768, 1886, 2004, 2006, 2008, 
65
  2059, 2109, 2227, 2345, 2347, 2398, 2448, 2508, 
66
  2626, 2686, 2804, 2922, 2924, 2975, 3025, 3036, 
67
  3154, 3156, 3207, 3257, 3375, 3377, 3493, 3609
68
};
69
70
static const char _deserialize_json_indicies[] = {
71
  0, 0, 0, 0, 0, 1, 1, 
72
  1, 1, 1, 1, 1, 1, 1, 1, 
73
  1, 1, 1, 1, 1, 1, 1, 1, 
74
  0, 1, 2, 1, 3, 1, 4, 5, 
75
  1, 6, 7, 8, 1, 1, 1, 1, 
76
  1, 1, 1, 1, 1, 1, 1, 1, 
77
  9, 1, 8, 10, 10, 1, 11, 12, 
78
  1, 13, 1, 13, 13, 13, 13, 13, 
79
  1, 1, 1, 1, 1, 1, 1, 1, 
80
  1, 1, 1, 1, 1, 1, 1, 1, 
81
  1, 1, 13, 1, 1, 1, 1, 1, 
82
  1, 1, 1, 1, 1, 1, 1, 1, 
83
  1, 1, 1, 1, 1, 1, 1, 1, 
84
  1, 1, 1, 1, 14, 1, 14, 14, 
85
  14, 14, 14, 1, 1, 1, 1, 1, 
86
  1, 1, 1, 1, 1, 1, 1, 1, 
87
  1, 1, 1, 1, 1, 14, 1, 1, 
88
  1, 1, 1, 1, 1, 1, 1, 1, 
89
  1, 1, 15, 1, 1, 16, 17, 17, 
90
  17, 17, 17, 17, 17, 17, 17, 1, 
91
  18, 19, 19, 19, 19, 19, 19, 19, 
92
  19, 19, 1, 20, 20, 20, 20, 20, 
93
  1, 1, 1, 1, 1, 1, 1, 1, 
94
  1, 1, 1, 1, 1, 1, 1, 1, 
95
  1, 1, 20, 1, 1, 1, 1, 1, 
96
  1, 1, 1, 1, 1, 1, 21, 1, 
97
  1, 1, 1, 1, 1, 1, 1, 1, 
98
  1, 1, 1, 1, 1, 1, 1, 1, 
99
  1, 1, 1, 1, 1, 1, 1, 1, 
100
  1, 1, 1, 1, 1, 1, 1, 1, 
101
  1, 1, 1, 1, 1, 1, 1, 1, 
102
  1, 1, 1, 1, 1, 1, 1, 1, 
103
  1, 1, 1, 1, 1, 1, 1, 1, 
104
  1, 1, 1, 1, 1, 1, 1, 1, 
105
  1, 1, 1, 1, 1, 1, 1, 1, 
106
  1, 1, 1, 1, 1, 1, 1, 22, 
107
  1, 23, 23, 23, 23, 23, 1, 1, 
108
  1, 1, 1, 1, 1, 1, 1, 1, 
109
  1, 1, 1, 1, 1, 1, 1, 1, 
110
  23, 1, 1, 1, 1, 1, 1, 1, 
111
  1, 1, 1, 1, 0, 1, 1, 1, 
112
  1, 1, 1, 1, 1, 1, 1, 1, 
113
  1, 1, 1, 1, 1, 1, 1, 1, 
114
  1, 1, 1, 1, 1, 1, 1, 1, 
115
  1, 1, 1, 1, 1, 1, 1, 1, 
116
  1, 1, 1, 1, 1, 1, 1, 1, 
117
  1, 1, 1, 1, 1, 1, 1, 1, 
118
  1, 1, 1, 1, 1, 1, 1, 1, 
119
  1, 1, 1, 1, 1, 1, 1, 1, 
120
  1, 1, 1, 1, 1, 1, 1, 1, 
121
  1, 1, 1, 1, 1, 24, 1, 24, 
122
  24, 24, 24, 24, 1, 1, 1, 1, 
123
  1, 1, 1, 1, 1, 1, 1, 1, 
124
  1, 1, 1, 1, 1, 1, 24, 1, 
125
  1, 1, 1, 1, 1, 1, 1, 1, 
126
  1, 1, 25, 1, 1, 1, 1, 1, 
127
  1, 1, 1, 1, 1, 1, 1, 1, 
128
  1, 1, 1, 1, 1, 1, 1, 1, 
129
  1, 1, 1, 1, 1, 1, 1, 1, 
130
  1, 1, 1, 1, 1, 1, 1, 1, 
131
  1, 1, 1, 1, 1, 1, 1, 1, 
132
  1, 1, 1, 25, 1, 20, 20, 20, 
133
  20, 20, 1, 1, 1, 1, 1, 1, 
134
  1, 1, 1, 1, 1, 1, 1, 1, 
135
  1, 1, 1, 1, 20, 1, 1, 1, 
136
  1, 1, 1, 1, 1, 1, 1, 1, 
137
  21, 1, 1, 1, 19, 19, 19, 19, 
138
  19, 19, 19, 19, 19, 19, 1, 1, 
139
  1, 1, 1, 1, 1, 1, 1, 1, 
140
  1, 1, 1, 1, 1, 1, 1, 1, 
141
  1, 1, 1, 1, 1, 1, 1, 1, 
142
  1, 1, 1, 1, 1, 1, 1, 1, 
143
  1, 1, 1, 1, 1, 1, 1, 1, 
144
  1, 1, 1, 1, 1, 1, 1, 1, 
145
  1, 1, 1, 1, 1, 1, 1, 1, 
146
  1, 1, 1, 1, 1, 1, 1, 1, 
147
  1, 22, 1, 26, 1, 26, 26, 26, 
148
  26, 26, 1, 1, 1, 1, 1, 1, 
149
  1, 1, 1, 1, 1, 1, 1, 1, 
150
  1, 1, 1, 1, 26, 1, 1, 1, 
151
  1, 1, 1, 1, 1, 1, 1, 1, 
152
  1, 1, 1, 1, 1, 1, 1, 1, 
153
  1, 1, 1, 1, 1, 1, 27, 1, 
154
  27, 27, 27, 27, 27, 1, 1, 1, 
155
  1, 1, 1, 1, 1, 1, 1, 1, 
156
  1, 1, 1, 1, 1, 1, 1, 27, 
157
  1, 1, 1, 1, 1, 1, 1, 1, 
158
  1, 1, 1, 1, 28, 1, 1, 29, 
159
  30, 30, 30, 30, 30, 30, 30, 30, 
160
  30, 1, 31, 32, 32, 32, 32, 32, 
161
  32, 32, 32, 32, 1, 33, 33, 33, 
162
  33, 33, 1, 1, 1, 1, 1, 1, 
163
  1, 1, 1, 1, 1, 1, 1, 1, 
164
  1, 1, 1, 1, 33, 1, 1, 1, 
165
  1, 1, 1, 1, 1, 1, 1, 1, 
166
  34, 1, 1, 1, 1, 1, 1, 1, 
167
  1, 1, 1, 1, 1, 1, 1, 1, 
168
  1, 1, 1, 1, 1, 1, 1, 1, 
169
  1, 1, 1, 1, 1, 1, 1, 1, 
170
  1, 1, 1, 1, 1, 1, 1, 1, 
171
  1, 1, 1, 1, 1, 1, 1, 1, 
172
  1, 1, 1, 1, 1, 1, 1, 1, 
173
  1, 1, 1, 1, 1, 1, 1, 1, 
174
  1, 1, 1, 1, 1, 1, 1, 1, 
175
  1, 1, 1, 1, 1, 1, 1, 1, 
176
  1, 35, 1, 33, 33, 33, 33, 33, 
177
  1, 1, 1, 1, 1, 1, 1, 1, 
178
  1, 1, 1, 1, 1, 1, 1, 1, 
179
  1, 1, 33, 1, 1, 1, 1, 1, 
180
  1, 1, 1, 1, 1, 1, 34, 1, 
181
  1, 1, 32, 32, 32, 32, 32, 32, 
182
  32, 32, 32, 32, 1, 1, 1, 1, 
183
  1, 1, 1, 1, 1, 1, 1, 1, 
184
  1, 1, 1, 1, 1, 1, 1, 1, 
185
  1, 1, 1, 1, 1, 1, 1, 1, 
186
  1, 1, 1, 1, 1, 1, 1, 1, 
187
  1, 1, 1, 1, 1, 1, 1, 1, 
188
  1, 1, 1, 1, 1, 1, 1, 1, 
189
  1, 1, 1, 1, 1, 1, 1, 1, 
190
  1, 1, 1, 1, 1, 1, 1, 35, 
191
  1, 36, 1, 37, 1, 37, 37, 37, 
192
  37, 37, 1, 1, 1, 1, 1, 1, 
193
  1, 1, 1, 1, 1, 1, 1, 1, 
194
  1, 1, 1, 1, 37, 1, 1, 1, 
195
  1, 1, 1, 1, 1, 1, 1, 1, 
196
  1, 1, 1, 1, 1, 1, 1, 1, 
197
  1, 1, 1, 1, 1, 1, 38, 1, 
198
  38, 38, 38, 38, 38, 1, 1, 1, 
199
  1, 1, 1, 1, 1, 1, 1, 1, 
200
  1, 1, 1, 1, 1, 1, 1, 38, 
201
  1, 1, 1, 1, 1, 1, 1, 1, 
202
  1, 1, 1, 1, 1, 1, 1, 39, 
203
  40, 40, 40, 40, 40, 40, 40, 40, 
204
  40, 1, 41, 41, 41, 41, 41, 1, 
205
  1, 1, 1, 1, 1, 1, 1, 1, 
206
  1, 1, 1, 1, 1, 1, 1, 1, 
207
  1, 41, 1, 1, 1, 1, 1, 1, 
208
  1, 1, 1, 1, 1, 42, 1, 1, 
209
  1, 1, 1, 1, 1, 1, 1, 1, 
210
  1, 1, 1, 1, 1, 1, 1, 1, 
211
  1, 1, 1, 1, 1, 1, 1, 1, 
212
  1, 1, 1, 1, 1, 1, 1, 1, 
213
  1, 1, 1, 1, 1, 1, 1, 1, 
214
  1, 1, 1, 1, 1, 1, 1, 1, 
215
  1, 1, 1, 1, 1, 1, 1, 1, 
216
  1, 1, 1, 1, 1, 1, 1, 1, 
217
  1, 1, 1, 1, 1, 1, 1, 1, 
218
  1, 1, 1, 1, 1, 1, 43, 1, 
219
  41, 41, 41, 41, 41, 1, 1, 1, 
220
  1, 1, 1, 1, 1, 1, 1, 1, 
221
  1, 1, 1, 1, 1, 1, 1, 41, 
222
  1, 1, 1, 1, 1, 1, 1, 1, 
223
  1, 1, 1, 42, 1, 1, 1, 44, 
224
  44, 44, 44, 44, 44, 44, 44, 44, 
225
  44, 1, 1, 1, 1, 1, 1, 1, 
226
  1, 1, 1, 1, 1, 1, 1, 1, 
227
  1, 1, 1, 1, 1, 1, 1, 1, 
228
  1, 1, 1, 1, 1, 1, 1, 1, 
229
  1, 1, 1, 1, 1, 1, 1, 1, 
230
  1, 1, 1, 1, 1, 1, 1, 1, 
231
  1, 1, 1, 1, 1, 1, 1, 1, 
232
  1, 1, 1, 1, 1, 1, 1, 1, 
233
  1, 1, 1, 1, 43, 1, 45, 46, 
234
  1, 47, 1, 47, 47, 47, 47, 47, 
235
  1, 1, 1, 1, 1, 1, 1, 1, 
236
  1, 1, 1, 1, 1, 1, 1, 1, 
237
  1, 1, 47, 1, 1, 1, 1, 1, 
238
  1, 1, 1, 1, 1, 1, 1, 1, 
239
  1, 1, 1, 1, 1, 1, 1, 1, 
240
  1, 1, 1, 1, 48, 1, 48, 48, 
241
  48, 48, 48, 1, 1, 1, 1, 1, 
242
  1, 1, 1, 1, 1, 1, 1, 1, 
243
  1, 1, 1, 1, 1, 48, 1, 1, 
244
  1, 1, 1, 1, 1, 1, 1, 1, 
245
  1, 1, 49, 1, 1, 50, 51, 51, 
246
  51, 51, 51, 51, 51, 51, 51, 1, 
247
  52, 53, 53, 53, 53, 53, 53, 53, 
248
  53, 53, 1, 54, 54, 54, 54, 54, 
249
  1, 1, 1, 1, 1, 1, 1, 1, 
250
  1, 1, 1, 1, 1, 1, 1, 1, 
251
  1, 1, 54, 1, 1, 1, 1, 1, 
252
  1, 1, 1, 1, 1, 1, 55, 1, 
253
  1, 1, 1, 1, 1, 1, 1, 1, 
254
  1, 1, 1, 1, 1, 1, 1, 1, 
255
  1, 1, 1, 1, 1, 1, 1, 1, 
256
  1, 1, 1, 1, 1, 1, 1, 1, 
257
  1, 1, 1, 1, 1, 1, 1, 1, 
258
  1, 1, 1, 1, 1, 1, 1, 1, 
259
  1, 1, 1, 1, 1, 1, 1, 1, 
260
  1, 1, 1, 1, 1, 1, 1, 1, 
261
  1, 1, 1, 1, 1, 1, 1, 1, 
262
  1, 1, 1, 1, 1, 1, 1, 56, 
263
  1, 54, 54, 54, 54, 54, 1, 1, 
264
  1, 1, 1, 1, 1, 1, 1, 1, 
265
  1, 1, 1, 1, 1, 1, 1, 1, 
266
  54, 1, 1, 1, 1, 1, 1, 1, 
267
  1, 1, 1, 1, 55, 1, 1, 1, 
268
  53, 53, 53, 53, 53, 53, 53, 53, 
269
  53, 53, 1, 1, 1, 1, 1, 1, 
270
  1, 1, 1, 1, 1, 1, 1, 1, 
271
  1, 1, 1, 1, 1, 1, 1, 1, 
272
  1, 1, 1, 1, 1, 1, 1, 1, 
273
  1, 1, 1, 1, 1, 1, 1, 1, 
274
  1, 1, 1, 1, 1, 1, 1, 1, 
275
  1, 1, 1, 1, 1, 1, 1, 1, 
276
  1, 1, 1, 1, 1, 1, 1, 1, 
277
  1, 1, 1, 1, 1, 56, 1, 57, 
278
  1, 57, 57, 57, 57, 57, 1, 1, 
279
  1, 1, 1, 1, 1, 1, 1, 1, 
280
  1, 1, 1, 1, 1, 1, 1, 1, 
281
  57, 1, 1, 1, 1, 1, 1, 1, 
282
  1, 1, 1, 1, 1, 1, 1, 1, 
283
  1, 1, 1, 1, 1, 1, 1, 1, 
284
  1, 1, 58, 1, 58, 58, 58, 58, 
285
  58, 1, 1, 1, 1, 1, 1, 1, 
286
  1, 1, 1, 1, 1, 1, 1, 1, 
287
  1, 1, 1, 58, 1, 1, 1, 1, 
288
  1, 1, 1, 1, 1, 1, 1, 1, 
289
  59, 1, 1, 60, 61, 61, 61, 61, 
290
  61, 61, 61, 61, 61, 1, 62, 63, 
291
  63, 63, 63, 63, 63, 63, 63, 63, 
292
  1, 64, 64, 64, 64, 64, 1, 1, 
293
  1, 1, 1, 1, 1, 1, 1, 1, 
294
  1, 1, 1, 1, 1, 1, 1, 1, 
295
  64, 1, 1, 1, 1, 1, 1, 1, 
296
  1, 1, 1, 1, 65, 1, 1, 1, 
297
  1, 1, 1, 1, 1, 1, 1, 1, 
298
  1, 1, 1, 1, 1, 1, 1, 1, 
299
  1, 1, 1, 1, 1, 1, 1, 1, 
300
  1, 1, 1, 1, 1, 1, 1, 1, 
301
  1, 1, 1, 1, 1, 1, 1, 1, 
302
  1, 1, 1, 1, 1, 1, 1, 1, 
303
  1, 1, 1, 1, 1, 1, 1, 1, 
304
  1, 1, 1, 1, 1, 1, 1, 1, 
305
  1, 1, 1, 1, 1, 1, 1, 1, 
306
  1, 1, 1, 1, 1, 66, 1, 64, 
307
  64, 64, 64, 64, 1, 1, 1, 1, 
308
  1, 1, 1, 1, 1, 1, 1, 1, 
309
  1, 1, 1, 1, 1, 1, 64, 1, 
310
  1, 1, 1, 1, 1, 1, 1, 1, 
311
  1, 1, 65, 1, 1, 1, 63, 63, 
312
  63, 63, 63, 63, 63, 63, 63, 63, 
313
  1, 1, 1, 1, 1, 1, 1, 1, 
314
  1, 1, 1, 1, 1, 1, 1, 1, 
315
  1, 1, 1, 1, 1, 1, 1, 1, 
316
  1, 1, 1, 1, 1, 1, 1, 1, 
317
  1, 1, 1, 1, 1, 1, 1, 1, 
318
  1, 1, 1, 1, 1, 1, 1, 1, 
319
  1, 1, 1, 1, 1, 1, 1, 1, 
320
  1, 1, 1, 1, 1, 1, 1, 1, 
321
  1, 1, 1, 66, 1, 67, 1, 68, 
322
  1, 68, 68, 68, 68, 68, 1, 1, 
323
  1, 1, 1, 1, 1, 1, 1, 1, 
324
  1, 1, 1, 1, 1, 1, 1, 1, 
325
  68, 1, 1, 1, 1, 1, 1, 1, 
326
  1, 1, 1, 1, 1, 1, 1, 1, 
327
  1, 1, 1, 1, 1, 1, 1, 1, 
328
  1, 1, 69, 1, 69, 69, 69, 69, 
329
  69, 1, 1, 1, 1, 1, 1, 1, 
330
  1, 1, 1, 1, 1, 1, 1, 1, 
331
  1, 1, 1, 69, 1, 1, 1, 1, 
332
  1, 1, 1, 1, 1, 1, 1, 1, 
333
  1, 1, 1, 70, 71, 71, 71, 71, 
334
  71, 71, 71, 71, 71, 1, 72, 72, 
335
  72, 72, 72, 1, 1, 1, 1, 1, 
336
  1, 1, 1, 1, 1, 1, 1, 1, 
337
  1, 1, 1, 1, 1, 72, 1, 1, 
338
  1, 1, 1, 1, 1, 1, 1, 1, 
339
  1, 73, 1, 1, 1, 1, 1, 1, 
340
  1, 1, 1, 1, 1, 1, 1, 1, 
341
  1, 1, 1, 1, 1, 1, 1, 1, 
342
  1, 1, 1, 1, 1, 1, 1, 1, 
343
  1, 1, 1, 1, 1, 1, 1, 1, 
344
  1, 1, 1, 1, 1, 1, 1, 1, 
345
  1, 1, 1, 1, 1, 1, 1, 1, 
346
  1, 1, 1, 1, 1, 1, 1, 1, 
347
  1, 1, 1, 1, 1, 1, 1, 1, 
348
  1, 1, 1, 1, 1, 1, 1, 1, 
349
  1, 1, 74, 1, 72, 72, 72, 72, 
350
  72, 1, 1, 1, 1, 1, 1, 1, 
351
  1, 1, 1, 1, 1, 1, 1, 1, 
352
  1, 1, 1, 72, 1, 1, 1, 1, 
353
  1, 1, 1, 1, 1, 1, 1, 73, 
354
  1, 1, 1, 75, 75, 75, 75, 75, 
355
  75, 75, 75, 75, 75, 1, 1, 1, 
356
  1, 1, 1, 1, 1, 1, 1, 1, 
357
  1, 1, 1, 1, 1, 1, 1, 1, 
358
  1, 1, 1, 1, 1, 1, 1, 1, 
359
  1, 1, 1, 1, 1, 1, 1, 1, 
360
  1, 1, 1, 1, 1, 1, 1, 1, 
361
  1, 1, 1, 1, 1, 1, 1, 1, 
362
  1, 1, 1, 1, 1, 1, 1, 1, 
363
  1, 1, 1, 1, 1, 1, 1, 1, 
364
  74, 1, 76, 1, 76, 76, 76, 76, 
365
  76, 1, 1, 1, 1, 1, 1, 1, 
366
  1, 1, 1, 1, 1, 1, 1, 1, 
367
  1, 1, 1, 76, 1, 1, 1, 1, 
368
  1, 1, 1, 1, 1, 1, 1, 1, 
369
  1, 1, 1, 1, 1, 1, 1, 1, 
370
  1, 1, 1, 1, 1, 77, 1, 77, 
371
  77, 77, 77, 77, 1, 1, 1, 1, 
372
  1, 1, 1, 1, 1, 1, 1, 1, 
373
  1, 1, 1, 1, 1, 1, 77, 1, 
374
  78, 1, 1, 1, 1, 1, 1, 1, 
375
  1, 1, 1, 1, 1, 1, 79, 80, 
376
  80, 80, 80, 80, 80, 80, 80, 80, 
377
  1, 82, 81, 81, 81, 81, 81, 81, 
378
  81, 81, 81, 81, 81, 81, 81, 81, 
379
  81, 81, 81, 81, 81, 81, 81, 81, 
380
  81, 81, 81, 81, 81, 81, 81, 81, 
381
  81, 81, 81, 81, 81, 81, 81, 81, 
382
  81, 81, 81, 81, 81, 81, 81, 81, 
383
  81, 81, 81, 81, 81, 81, 81, 81, 
384
  81, 81, 81, 83, 81, 84, 84, 84, 
385
  84, 84, 1, 1, 1, 1, 1, 1, 
386
  1, 1, 1, 1, 1, 1, 1, 1, 
387
  1, 1, 1, 1, 84, 1, 1, 1, 
388
  1, 1, 1, 1, 1, 1, 1, 1, 
389
  85, 1, 1, 1, 1, 1, 1, 1, 
390
  1, 1, 1, 1, 1, 1, 1, 1, 
391
  1, 1, 1, 1, 1, 1, 1, 1, 
392
  1, 1, 1, 1, 1, 1, 1, 1, 
393
  1, 1, 1, 1, 1, 1, 1, 1, 
394
  1, 1, 1, 1, 1, 1, 1, 1, 
395
  1, 1, 1, 1, 1, 1, 1, 1, 
396
  1, 1, 1, 1, 1, 1, 1, 1, 
397
  1, 1, 1, 1, 1, 1, 1, 1, 
398
  1, 1, 1, 1, 1, 1, 1, 1, 
399
  1, 86, 1, 81, 1, 1, 1, 1, 
400
  1, 1, 1, 1, 1, 1, 1, 1, 
401
  1, 1, 1, 1, 1, 1, 1, 1, 
402
  1, 1, 1, 1, 1, 1, 1, 1, 
403
  1, 1, 1, 1, 1, 1, 1, 1, 
404
  1, 1, 1, 1, 1, 1, 1, 1, 
405
  1, 1, 1, 1, 1, 1, 1, 1, 
406
  1, 1, 1, 1, 1, 81, 1, 87, 
407
  87, 87, 87, 87, 1, 1, 1, 1, 
408
  1, 1, 1, 1, 1, 1, 1, 1, 
409
  1, 1, 1, 1, 1, 1, 87, 1, 
410
  1, 1, 1, 1, 1, 1, 1, 1, 
411
  1, 1, 88, 1, 1, 1, 1, 1, 
412
  1, 1, 1, 1, 1, 1, 1, 1, 
413
  1, 1, 1, 1, 1, 1, 1, 1, 
414
  1, 1, 1, 1, 1, 1, 1, 1, 
415
  1, 1, 1, 1, 1, 1, 1, 1, 
416
  1, 1, 1, 1, 1, 1, 1, 1, 
417
  1, 1, 1, 1, 1, 1, 1, 1, 
418
  1, 1, 1, 1, 1, 1, 1, 1, 
419
  1, 1, 1, 1, 1, 1, 1, 1, 
420
  1, 1, 1, 1, 1, 1, 1, 1, 
421
  1, 1, 1, 89, 1, 87, 87, 87, 
422
  87, 87, 1, 1, 1, 1, 1, 1, 
423
  1, 1, 1, 1, 1, 1, 1, 1, 
424
  1, 1, 1, 1, 87, 1, 1, 1, 
425
  1, 1, 1, 1, 1, 1, 1, 1, 
426
  88, 1, 1, 1, 90, 90, 90, 90, 
427
  90, 90, 90, 90, 90, 90, 1, 1, 
428
  1, 1, 1, 1, 1, 1, 1, 1, 
429
  1, 1, 1, 1, 1, 1, 1, 1, 
430
  1, 1, 1, 1, 1, 1, 1, 1, 
431
  1, 1, 1, 1, 1, 1, 1, 1, 
432
  1, 1, 1, 1, 1, 1, 1, 1, 
433
  1, 1, 1, 1, 1, 1, 1, 1, 
434
  1, 1, 1, 1, 1, 1, 1, 1, 
435
  1, 1, 1, 1, 1, 1, 1, 1, 
436
  1, 89, 1, 91, 1, 91, 91, 91, 
437
  91, 91, 1, 1, 1, 1, 1, 1, 
438
  1, 1, 1, 1, 1, 1, 1, 1, 
439
  1, 1, 1, 1, 91, 1, 1, 1, 
440
  1, 1, 1, 1, 1, 1, 1, 1, 
441
  1, 1, 1, 1, 1, 1, 1, 1, 
442
  1, 1, 1, 1, 1, 1, 92, 1, 
443
  92, 92, 92, 92, 92, 1, 1, 1, 
444
  1, 1, 1, 1, 1, 1, 1, 1, 
445
  1, 1, 1, 1, 1, 1, 1, 92, 
446
  1, 1, 1, 1, 1, 1, 1, 1, 
447
  1, 1, 1, 1, 93, 1, 1, 94, 
448
  95, 95, 95, 95, 95, 95, 95, 95, 
449
  95, 1, 23, 96, 96, 96, 96, 96, 
450
  96, 96, 96, 96, 1, 23, 23, 23, 
451
  23, 23, 1, 1, 1, 1, 1, 1, 
452
  1, 1, 1, 1, 1, 1, 1, 1, 
453
  1, 1, 1, 1, 23, 1, 1, 1, 
454
  1, 1, 1, 1, 1, 1, 1, 1, 
455
  0, 1, 1, 1, 96, 96, 96, 96, 
456
  96, 96, 96, 96, 96, 96, 1, 1, 
457
  1, 1, 1, 1, 1, 1, 1, 1, 
458
  1, 1, 1, 1, 1, 1, 1, 1, 
459
  1, 1, 1, 1, 1, 1, 1, 1, 
460
  1, 1, 1, 1, 1, 1, 1, 1, 
461
  1, 1, 1, 1, 1, 1, 1, 1, 
462
  1, 1, 1, 1, 1, 1, 1, 1, 
463
  1, 1, 1, 1, 1, 1, 1, 1, 
464
  1, 1, 1, 1, 1, 1, 1, 1, 
465
  1, 24, 1, 97, 1, 97, 97, 97, 
466
  97, 97, 1, 1, 1, 1, 1, 1, 
467
  1, 1, 1, 1, 1, 1, 1, 1, 
468
  1, 1, 1, 1, 97, 1, 1, 1, 
469
  1, 1, 1, 1, 1, 1, 1, 1, 
470
  1, 1, 1, 1, 1, 1, 1, 1, 
471
  1, 1, 1, 1, 1, 1, 98, 1, 
472
  98, 98, 98, 98, 98, 1, 1, 1, 
473
  1, 1, 1, 1, 1, 1, 1, 1, 
474
  1, 1, 1, 1, 1, 1, 1, 98, 
475
  1, 1, 1, 1, 1, 1, 1, 1, 
476
  1, 1, 1, 1, 1, 1, 1, 99, 
477
  100, 100, 100, 100, 100, 100, 100, 100, 
478
  100, 1, 87, 87, 87, 87, 87, 1, 
479
  1, 1, 1, 1, 1, 1, 1, 1, 
480
  1, 1, 1, 1, 1, 1, 1, 1, 
481
  1, 87, 1, 1, 1, 1, 1, 1, 
482
  1, 1, 1, 1, 1, 88, 1, 1, 
483
  1, 101, 101, 101, 101, 101, 101, 101, 
484
  101, 101, 101, 1, 1, 1, 1, 1, 
485
  1, 1, 1, 1, 1, 1, 1, 1, 
486
  1, 1, 1, 1, 1, 1, 1, 1, 
487
  1, 1, 1, 1, 1, 1, 1, 1, 
488
  1, 1, 1, 1, 1, 1, 1, 1, 
489
  1, 1, 1, 1, 1, 1, 1, 1, 
490
  1, 1, 1, 1, 1, 1, 1, 1, 
491
  1, 1, 1, 1, 1, 1, 1, 1, 
492
  1, 1, 1, 1, 1, 1, 89, 1, 
493
  8, 1, 102, 102, 102, 102, 102, 1, 
494
  1, 1, 1, 1, 1, 1, 1, 1, 
495
  1, 1, 1, 1, 1, 1, 1, 1, 
496
  1, 102, 1, 1, 1, 1, 1, 1, 
497
  1, 1, 1, 1, 1, 1, 1, 1, 
498
  1, 1, 1, 1, 1, 1, 1, 1, 
499
  1, 1, 1, 1, 1, 1, 1, 1, 
500
  1, 1, 1, 1, 1, 1, 1, 1, 
501
  1, 1, 1, 1, 1, 1, 1, 1, 
502
  1, 1, 1, 1, 1, 1, 1, 1, 
503
  1, 1, 1, 1, 103, 1, 1, 1, 
504
  1, 1, 1, 1, 1, 1, 1, 1, 
505
  1, 1, 1, 1, 1, 1, 1, 1, 
506
  1, 1, 1, 1, 1, 1, 1, 1, 
507
  1, 1, 1, 1, 104, 1, 103, 103, 
508
  103, 103, 103, 1, 1, 1, 1, 1, 
509
  1, 1, 1, 1, 1, 1, 1, 1, 
510
  1, 1, 1, 1, 1, 103, 1, 1, 
511
  1, 1, 1, 1, 1, 1, 1, 1, 
512
  1, 1, 1, 1, 1, 1, 1, 1, 
513
  1, 1, 1, 1, 1, 1, 1, 1, 
514
  1, 1, 1, 1, 1, 1, 1, 1, 
515
  1, 1, 1, 1, 1, 1, 1, 1, 
516
  1, 1, 1, 1, 1, 1, 1, 1, 
517
  1, 1, 1, 1, 1, 1, 1, 1, 
518
  1, 1, 1, 1, 1, 1, 1, 1, 
519
  1, 1, 1, 1, 1, 1, 1, 1, 
520
  1, 1, 1, 1, 1, 1, 1, 1, 
521
  1, 1, 1, 1, 1, 1, 1, 1, 
522
  104, 1, 25, 25, 25, 25, 25, 1, 
523
  1, 1, 1, 1, 1, 1, 1, 1, 
524
  1, 1, 1, 1, 1, 1, 1, 1, 
525
  1, 25, 1, 1, 1, 1, 1, 1, 
526
  1, 1, 1, 1, 1, 1, 1, 1, 
527
  1, 1, 1, 1, 1, 1, 1, 1, 
528
  1, 1, 1, 1, 1, 1, 1, 1, 
529
  1, 1, 1, 1, 1, 1, 1, 1, 
530
  1, 1, 1, 1, 1, 1, 1, 1, 
531
  1, 1, 1, 1, 1, 1, 1, 1, 
532
  1, 1, 1, 1, 1, 1, 1, 1, 
533
  1, 1, 1, 1, 1, 1, 1, 1, 
534
  1, 1, 1, 1, 1, 1, 1, 1, 
535
  1, 1, 1, 1, 1, 1, 1, 1, 
536
  1, 1, 1, 1, 104, 1, 0
537
};
538
539
static const char _deserialize_json_trans_targs[] = {
540
  1, 0, 2, 3, 18, 24, 37, 43, 
541
  51, 56, 60, 4, 12, 5, 6, 7, 
542
  8, 11, 8, 11, 9, 1, 10, 9, 
543
  10, 63, 13, 14, 15, 16, 17, 16, 
544
  17, 9, 1, 10, 19, 20, 21, 22, 
545
  23, 9, 1, 10, 23, 25, 31, 26, 
546
  27, 28, 29, 30, 29, 30, 9, 1, 
547
  10, 32, 33, 34, 35, 36, 35, 36, 
548
  9, 1, 10, 38, 39, 40, 41, 42, 
549
  9, 1, 10, 42, 44, 45, 46, 49, 
550
  50, 46, 47, 48, 9, 1, 10, 9, 
551
  1, 10, 50, 52, 53, 54, 9, 55, 
552
  55, 57, 58, 49, 59, 59, 61, 62, 
553
  1
554
};
555
556
static const char _deserialize_json_trans_actions[] = {
557
  0, 0, 0, 0, 0, 0, 0, 0, 
558
  0, 0, 0, 0, 0, 0, 0, 1, 
559
  1, 1, 0, 0, 2, 2, 2, 0, 
560
  0, 3, 0, 0, 1, 1, 1, 0, 
561
  0, 4, 4, 4, 0, 0, 0, 1, 
562
  1, 5, 5, 5, 0, 0, 0, 0, 
563
  0, 1, 1, 1, 0, 0, 6, 6, 
564
  6, 0, 0, 1, 1, 1, 0, 0, 
565
  7, 7, 7, 0, 0, 0, 1, 1, 
566
  8, 8, 8, 0, 0, 0, 1, 9, 
567
  9, 0, 10, 0, 11, 11, 11, 12, 
568
  12, 12, 10, 0, 0, 1, 1, 1, 
569
  0, 0, 0, 13, 13, 14, 0, 0, 
570
  15
571
};
572
573
static const int deserialize_json_start = 61;
574
static const int deserialize_json_first_final = 61;
575
static const int deserialize_json_error = 0;
576
577
static const int deserialize_json_en_main = 61;
578
579
580
#line 115 "hb-buffer-deserialize-json.rl"
581
582
583
static hb_bool_t
584
_hb_buffer_deserialize_json (hb_buffer_t *buffer,
585
            const char *buf,
586
            unsigned int buf_len,
587
            const char **end_ptr,
588
            hb_font_t *font)
589
0
{
590
0
  const char *p = buf, *pe = buf + buf_len;
591
592
  /* Ensure we have positions. */
593
0
  (void) hb_buffer_get_glyph_positions (buffer, nullptr);
594
595
0
  const char *tok = nullptr;
596
0
  int cs;
597
0
  hb_glyph_info_t info = {0};
598
0
  hb_glyph_position_t pos = {0};
599
  
600
0
#line 594 "hb-buffer-deserialize-json.hh"
601
0
  {
602
0
  cs = deserialize_json_start;
603
0
  }
604
605
0
#line 597 "hb-buffer-deserialize-json.hh"
606
0
  {
607
0
  int _slen;
608
0
  int _trans;
609
0
  const unsigned char *_keys;
610
0
  const char *_inds;
611
0
  if ( p == pe )
612
0
    goto _test_eof;
613
0
  if ( cs == 0 )
614
0
    goto _out;
615
0
_resume:
616
0
  _keys = _deserialize_json_trans_keys + (cs<<1);
617
0
  _inds = _deserialize_json_indicies + _deserialize_json_index_offsets[cs];
618
619
0
  _slen = _deserialize_json_key_spans[cs];
620
0
  _trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
621
0
    (*p) <= _keys[1] ?
622
0
    (*p) - _keys[0] : _slen ];
623
624
0
  cs = _deserialize_json_trans_targs[_trans];
625
626
0
  if ( _deserialize_json_trans_actions[_trans] == 0 )
627
0
    goto _again;
628
629
0
  switch ( _deserialize_json_trans_actions[_trans] ) {
630
0
  case 15:
631
0
#line 38 "hb-buffer-deserialize-json.rl"
632
0
  {
633
0
  hb_memset (&info, 0, sizeof (info));
634
0
  hb_memset (&pos , 0, sizeof (pos ));
635
0
}
636
0
  break;
637
0
  case 3:
638
0
#line 43 "hb-buffer-deserialize-json.rl"
639
0
  {
640
0
  buffer->add_info (info);
641
0
  if (unlikely (!buffer->successful))
642
0
    return false;
643
0
  buffer->pos[buffer->len - 1] = pos;
644
0
  *end_ptr = p;
645
0
}
646
0
  break;
647
0
  case 1:
648
0
#line 51 "hb-buffer-deserialize-json.rl"
649
0
  {
650
0
  tok = p;
651
0
}
652
0
  break;
653
0
  case 10:
654
0
#line 55 "hb-buffer-deserialize-json.rl"
655
0
  { if (unlikely (!buffer->ensure_glyphs ())) return false; }
656
0
  break;
657
0
  case 14:
658
0
#line 56 "hb-buffer-deserialize-json.rl"
659
0
  { if (unlikely (!buffer->ensure_unicode ())) return false; }
660
0
  break;
661
0
  case 11:
662
0
#line 58 "hb-buffer-deserialize-json.rl"
663
0
  {
664
  /* TODO Unescape \" and \\ if found. */
665
0
  if (!hb_font_glyph_from_string (font,
666
0
          tok+1, p - tok - 2, /* Skip "" */
667
0
          &info.codepoint))
668
0
    return false;
669
0
}
670
0
  break;
671
0
  case 12:
672
0
#line 66 "hb-buffer-deserialize-json.rl"
673
0
  { if (!parse_uint (tok, p, &info.codepoint)) return false; }
674
0
  break;
675
0
  case 5:
676
0
#line 67 "hb-buffer-deserialize-json.rl"
677
0
  { if (!parse_uint (tok, p, &info.cluster )) return false; }
678
0
  break;
679
0
  case 6:
680
0
#line 68 "hb-buffer-deserialize-json.rl"
681
0
  { if (!parse_int  (tok, p, &pos.x_offset )) return false; }
682
0
  break;
683
0
  case 7:
684
0
#line 69 "hb-buffer-deserialize-json.rl"
685
0
  { if (!parse_int  (tok, p, &pos.y_offset )) return false; }
686
0
  break;
687
0
  case 2:
688
0
#line 70 "hb-buffer-deserialize-json.rl"
689
0
  { if (!parse_int  (tok, p, &pos.x_advance)) return false; }
690
0
  break;
691
0
  case 4:
692
0
#line 71 "hb-buffer-deserialize-json.rl"
693
0
  { if (!parse_int  (tok, p, &pos.y_advance)) return false; }
694
0
  break;
695
0
  case 8:
696
0
#line 72 "hb-buffer-deserialize-json.rl"
697
0
  { if (!parse_uint (tok, p, &info.mask    )) return false; }
698
0
  break;
699
0
  case 9:
700
0
#line 51 "hb-buffer-deserialize-json.rl"
701
0
  {
702
0
  tok = p;
703
0
}
704
0
#line 55 "hb-buffer-deserialize-json.rl"
705
0
  { if (unlikely (!buffer->ensure_glyphs ())) return false; }
706
0
  break;
707
0
  case 13:
708
0
#line 51 "hb-buffer-deserialize-json.rl"
709
0
  {
710
0
  tok = p;
711
0
}
712
0
#line 56 "hb-buffer-deserialize-json.rl"
713
0
  { if (unlikely (!buffer->ensure_unicode ())) return false; }
714
0
  break;
715
0
#line 689 "hb-buffer-deserialize-json.hh"
716
0
  }
717
718
0
_again:
719
0
  if ( cs == 0 )
720
0
    goto _out;
721
0
  if ( ++p != pe )
722
0
    goto _resume;
723
0
  _test_eof: {}
724
0
  _out: {}
725
0
  }
726
727
0
#line 136 "hb-buffer-deserialize-json.rl"
728
729
730
0
  *end_ptr = p;
731
732
0
  return p == pe;
733
0
}
734
735
#endif /* HB_BUFFER_DESERIALIZE_JSON_HH */