100d44e014c805d06a59a74cd744e24482c218e9bhalcanary
200d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 1 "hb-buffer-deserialize-text.rl"
300d44e014c805d06a59a74cd744e24482c218e9bhalcanary/*
400d44e014c805d06a59a74cd744e24482c218e9bhalcanary * Copyright © 2013  Google, Inc.
500d44e014c805d06a59a74cd744e24482c218e9bhalcanary *
600d44e014c805d06a59a74cd744e24482c218e9bhalcanary *  This is part of HarfBuzz, a text shaping library.
700d44e014c805d06a59a74cd744e24482c218e9bhalcanary *
800d44e014c805d06a59a74cd744e24482c218e9bhalcanary * Permission is hereby granted, without written agreement and without
900d44e014c805d06a59a74cd744e24482c218e9bhalcanary * license or royalty fees, to use, copy, modify, and distribute this
1000d44e014c805d06a59a74cd744e24482c218e9bhalcanary * software and its documentation for any purpose, provided that the
1100d44e014c805d06a59a74cd744e24482c218e9bhalcanary * above copyright notice and the following two paragraphs appear in
1200d44e014c805d06a59a74cd744e24482c218e9bhalcanary * all copies of this software.
1300d44e014c805d06a59a74cd744e24482c218e9bhalcanary *
1400d44e014c805d06a59a74cd744e24482c218e9bhalcanary * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
1500d44e014c805d06a59a74cd744e24482c218e9bhalcanary * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
1600d44e014c805d06a59a74cd744e24482c218e9bhalcanary * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
1700d44e014c805d06a59a74cd744e24482c218e9bhalcanary * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
1800d44e014c805d06a59a74cd744e24482c218e9bhalcanary * DAMAGE.
1900d44e014c805d06a59a74cd744e24482c218e9bhalcanary *
2000d44e014c805d06a59a74cd744e24482c218e9bhalcanary * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
2100d44e014c805d06a59a74cd744e24482c218e9bhalcanary * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
2200d44e014c805d06a59a74cd744e24482c218e9bhalcanary * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
2300d44e014c805d06a59a74cd744e24482c218e9bhalcanary * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
2400d44e014c805d06a59a74cd744e24482c218e9bhalcanary * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
2500d44e014c805d06a59a74cd744e24482c218e9bhalcanary *
2600d44e014c805d06a59a74cd744e24482c218e9bhalcanary * Google Author(s): Behdad Esfahbod
2700d44e014c805d06a59a74cd744e24482c218e9bhalcanary */
2800d44e014c805d06a59a74cd744e24482c218e9bhalcanary
2900d44e014c805d06a59a74cd744e24482c218e9bhalcanary#ifndef HB_BUFFER_DESERIALIZE_TEXT_HH
3000d44e014c805d06a59a74cd744e24482c218e9bhalcanary#define HB_BUFFER_DESERIALIZE_TEXT_HH
3100d44e014c805d06a59a74cd744e24482c218e9bhalcanary
3200d44e014c805d06a59a74cd744e24482c218e9bhalcanary#include "hb-private.hh"
3300d44e014c805d06a59a74cd744e24482c218e9bhalcanary
3400d44e014c805d06a59a74cd744e24482c218e9bhalcanary
3500d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 36 "hb-buffer-deserialize-text.hh"
3600d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const unsigned char _deserialize_text_trans_keys[] = {
3700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0u, 0u, 9u, 122u, 45u, 57u, 48u, 57u, 45u, 57u, 48u, 57u, 48u, 57u, 45u, 57u,
3800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	48u, 57u, 44u, 44u, 45u, 57u, 48u, 57u, 44u, 57u, 9u, 124u, 9u, 124u, 0u, 0u,
3900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	9u, 122u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u, 9u, 124u,
4000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	9u, 124u, 9u, 124u, 9u, 124u, 0
4100d44e014c805d06a59a74cd744e24482c218e9bhalcanary};
4200d44e014c805d06a59a74cd744e24482c218e9bhalcanary
4300d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const char _deserialize_text_key_spans[] = {
4400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 114, 13, 10, 13, 10, 10, 13,
4500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	10, 1, 13, 10, 14, 116, 116, 0,
4600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	114, 116, 116, 116, 116, 116, 116, 116,
4700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	116, 116, 116
4800d44e014c805d06a59a74cd744e24482c218e9bhalcanary};
4900d44e014c805d06a59a74cd744e24482c218e9bhalcanary
5000d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const short _deserialize_text_index_offsets[] = {
5100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 0, 115, 129, 140, 154, 165, 176,
5200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	190, 201, 203, 217, 228, 243, 360, 477,
5300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	478, 593, 710, 827, 944, 1061, 1178, 1295,
5400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1412, 1529, 1646
5500d44e014c805d06a59a74cd744e24482c218e9bhalcanary};
5600d44e014c805d06a59a74cd744e24482c218e9bhalcanary
5700d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const char _deserialize_text_indicies[] = {
5800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 0, 0, 0, 0, 1, 1,
5900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
6000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
6100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 1, 1, 1, 1, 1, 1, 1,
6200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
6300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	2, 3, 3, 3, 3, 3, 3, 3,
6400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	3, 3, 1, 1, 1, 1, 1, 1,
6500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 4, 4, 4, 4, 4, 4, 4,
6600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
6700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
6800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 1, 1, 1, 1, 1,
6900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 4, 4, 4, 4, 4, 4, 4,
7000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
7100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
7200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 1, 5, 1, 1, 6,
7300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	7, 7, 7, 7, 7, 7, 7, 7,
7400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	7, 1, 8, 9, 9, 9, 9, 9,
7500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	9, 9, 9, 9, 1, 10, 1, 1,
7600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	11, 12, 12, 12, 12, 12, 12, 12,
7700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	12, 12, 1, 13, 14, 14, 14, 14,
7800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	14, 14, 14, 14, 14, 1, 15, 16,
7900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	16, 16, 16, 16, 16, 16, 16, 16,
8000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 17, 1, 1, 18, 19, 19, 19,
8100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	19, 19, 19, 19, 19, 19, 1, 20,
8200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	21, 21, 21, 21, 21, 21, 21, 21,
8300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	21, 1, 22, 1, 23, 1, 1, 24,
8400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	25, 25, 25, 25, 25, 25, 25, 25,
8500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	25, 1, 26, 27, 27, 27, 27, 27,
8600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	27, 27, 27, 27, 1, 22, 1, 1,
8700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 21, 21, 21, 21, 21, 21, 21,
8800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	21, 21, 21, 1, 28, 28, 28, 28,
8900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	28, 1, 1, 1, 1, 1, 1, 1,
9000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
9100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 28, 1, 1, 1, 1,
9200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 29, 1,
9300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
9400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
9500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	30, 1, 1, 31, 1, 1, 1, 1,
9600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
9700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
9800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
9900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	32, 1, 1, 1, 1, 1, 1, 1,
10000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
10100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
10200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 33,
10300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 34, 34, 34, 34, 34, 1, 1,
10400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
10500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
10600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	34, 1, 1, 1, 1, 1, 1, 1,
10700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
10800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
10900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
11000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
11100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
11200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
11300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 35, 1, 1,
11400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
11500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
11600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
11700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 36, 1, 1, 0,
11800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 0, 0, 0, 1, 1, 1, 1,
11900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
12000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 0, 1,
12100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
12200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 2, 3,
12300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	3, 3, 3, 3, 3, 3, 3, 3,
12400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 4,
12500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
12600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
12700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
12800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 1, 1, 1, 1, 1, 1, 4,
12900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
13000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
13100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 4, 4, 4, 4, 4, 4,
13200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 1, 28, 28, 28, 28, 28, 1,
13300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
13400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
13500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 28, 1, 1, 1, 1, 1, 1,
13600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 29, 1, 1, 1,
13700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 37, 37, 37, 37, 37, 37, 37,
13800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	37, 37, 37, 1, 1, 1, 30, 1,
13900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 31, 1, 1, 1, 1, 1, 1,
14000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
14100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
14200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 32, 1,
14300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
14400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
14500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
14600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 33, 1, 38,
14700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	38, 38, 38, 38, 1, 1, 1, 1,
14800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
14900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 38, 1,
15000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
15100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 39, 1, 1, 1, 1, 1,
15200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
15300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
15400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
15500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
15600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
15700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 40, 1, 1, 1, 1,
15800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
15900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
16000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
16100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 41, 1, 42, 42, 42, 42,
16200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	42, 1, 1, 1, 1, 1, 1, 1,
16300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
16400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 42, 1, 1, 1, 1,
16500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
16600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
16700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
16800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
16900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
17000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
17100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
17200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	43, 1, 1, 1, 1, 1, 1, 1,
17300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
17400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
17500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 44,
17600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 42, 42, 42, 42, 42, 1, 1,
17700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
17800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
17900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	42, 1, 1, 1, 1, 1, 1, 1,
18000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
18100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	14, 14, 14, 14, 14, 14, 14, 14,
18200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	14, 14, 1, 1, 1, 1, 1, 1,
18300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
18400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
18500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
18600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 43, 1, 1,
18700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
18800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
18900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
19000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 44, 1, 38, 38,
19100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	38, 38, 38, 1, 1, 1, 1, 1,
19200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
19300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 38, 1, 1,
19400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
19500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 39, 1, 1, 1, 9, 9, 9,
19600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	9, 9, 9, 9, 9, 9, 9, 1,
19700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
19800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
19900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
20000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
20100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 40, 1, 1, 1, 1, 1,
20200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
20300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
20400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
20500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 41, 1, 45, 45, 45, 45, 45,
20600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
20700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
20800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 45, 1, 1, 1, 1, 1,
20900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 46, 1, 1,
21000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
21100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
21200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 47, 1, 1, 1, 1, 1,
21300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
21400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
21500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 48,
21600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
21700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
21800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
21900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 49, 1,
22000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	50, 50, 50, 50, 50, 1, 1, 1,
22100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
22200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 50,
22300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
22400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 51, 1, 1, 1, 1, 1,
22500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
22600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
22700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
22800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
22900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
23000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 52, 1, 1, 1,
23100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
23200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
23300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
23400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 53, 1, 50, 50, 50,
23500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	50, 50, 1, 1, 1, 1, 1, 1,
23600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
23700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 50, 1, 1, 1,
23800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 51,
23900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 27, 27, 27, 27,
24000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	27, 27, 27, 27, 27, 27, 1, 1,
24100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
24200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
24300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
24400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
24500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 52, 1, 1, 1, 1, 1, 1,
24600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
24700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
24800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
24900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	53, 1, 45, 45, 45, 45, 45, 1,
25000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
25100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
25200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 45, 1, 1, 1, 1, 1, 1,
25300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 46, 1, 1, 1,
25400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 54, 54, 54, 54, 54, 54, 54,
25500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	54, 54, 54, 1, 1, 1, 1, 1,
25600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 47, 1, 1, 1, 1, 1, 1,
25700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
25800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
25900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 48, 1,
26000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
26100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
26200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
26300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 49, 1, 28,
26400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	28, 28, 28, 28, 1, 1, 1, 1,
26500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
26600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 28, 1,
26700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 1, 1, 1, 1, 1,
26800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 29, 1, 55, 55, 1, 55, 55,
26900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 55, 55, 55, 55, 55, 55, 55,
27000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 1, 1, 30, 1, 1, 31, 55,
27100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 55, 55, 55, 55, 55, 55, 55,
27200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 55, 55, 55, 55, 55, 55, 55,
27300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 55, 55, 55, 55, 55, 55, 55,
27400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 1, 1, 32, 1, 55, 1, 55,
27500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 55, 55, 55, 55, 55, 55, 55,
27600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 55, 55, 55, 55, 55, 55, 55,
27700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 55, 55, 55, 55, 55, 55, 55,
27800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	55, 1, 33, 1, 0
27900d44e014c805d06a59a74cd744e24482c218e9bhalcanary};
28000d44e014c805d06a59a74cd744e24482c218e9bhalcanary
28100d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const char _deserialize_text_trans_targs[] = {
28200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	1, 0, 13, 17, 26, 3, 18, 21,
28300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	18, 21, 5, 19, 20, 19, 20, 22,
28400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	25, 8, 9, 12, 9, 12, 10, 11,
28500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	23, 24, 23, 24, 14, 2, 6, 7,
28600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	15, 16, 14, 15, 16, 17, 14, 4,
28700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	15, 16, 14, 15, 16, 14, 2, 7,
28800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	15, 16, 14, 2, 15, 16, 25, 26
28900d44e014c805d06a59a74cd744e24482c218e9bhalcanary};
29000d44e014c805d06a59a74cd744e24482c218e9bhalcanary
29100d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const char _deserialize_text_trans_actions[] = {
29200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 0, 1, 1, 1, 2, 2, 2,
29300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 0, 2, 2, 2, 0, 0, 2,
29400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	2, 2, 2, 2, 0, 0, 3, 2,
29500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	2, 2, 0, 0, 4, 5, 5, 5,
29600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	4, 4, 0, 0, 0, 0, 6, 7,
29700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	6, 6, 8, 8, 8, 9, 10, 10,
29800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	9, 9, 11, 12, 11, 11, 0, 0
29900d44e014c805d06a59a74cd744e24482c218e9bhalcanary};
30000d44e014c805d06a59a74cd744e24482c218e9bhalcanary
30100d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const char _deserialize_text_eof_actions[] = {
30200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 0, 0, 0, 0, 0, 0, 0,
30300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 0, 0, 0, 0, 4, 0, 0,
30400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	0, 4, 6, 8, 8, 6, 9, 11,
30500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	11, 9, 4
30600d44e014c805d06a59a74cd744e24482c218e9bhalcanary};
30700d44e014c805d06a59a74cd744e24482c218e9bhalcanary
30800d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const int deserialize_text_start = 1;
30900d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const int deserialize_text_first_final = 13;
31000d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const int deserialize_text_error = 0;
31100d44e014c805d06a59a74cd744e24482c218e9bhalcanary
31200d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic const int deserialize_text_en_main = 1;
31300d44e014c805d06a59a74cd744e24482c218e9bhalcanary
31400d44e014c805d06a59a74cd744e24482c218e9bhalcanary
31500d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 91 "hb-buffer-deserialize-text.rl"
31600d44e014c805d06a59a74cd744e24482c218e9bhalcanary
31700d44e014c805d06a59a74cd744e24482c218e9bhalcanary
31800d44e014c805d06a59a74cd744e24482c218e9bhalcanarystatic hb_bool_t
31900d44e014c805d06a59a74cd744e24482c218e9bhalcanary_hb_buffer_deserialize_glyphs_text (hb_buffer_t *buffer,
32000d44e014c805d06a59a74cd744e24482c218e9bhalcanary				    const char *buf,
32100d44e014c805d06a59a74cd744e24482c218e9bhalcanary				    unsigned int buf_len,
32200d44e014c805d06a59a74cd744e24482c218e9bhalcanary				    const char **end_ptr,
32300d44e014c805d06a59a74cd744e24482c218e9bhalcanary				    hb_font_t *font)
32400d44e014c805d06a59a74cd744e24482c218e9bhalcanary{
32500d44e014c805d06a59a74cd744e24482c218e9bhalcanary  const char *p = buf, *pe = buf + buf_len;
32600d44e014c805d06a59a74cd744e24482c218e9bhalcanary
32700d44e014c805d06a59a74cd744e24482c218e9bhalcanary  /* Ensure we have positions. */
32800d44e014c805d06a59a74cd744e24482c218e9bhalcanary  (void) hb_buffer_get_glyph_positions (buffer, NULL);
32900d44e014c805d06a59a74cd744e24482c218e9bhalcanary
33000d44e014c805d06a59a74cd744e24482c218e9bhalcanary  while (p < pe && ISSPACE (*p))
33100d44e014c805d06a59a74cd744e24482c218e9bhalcanary    p++;
33200d44e014c805d06a59a74cd744e24482c218e9bhalcanary  if (p < pe && *p == (buffer->len ? '|' : '['))
33300d44e014c805d06a59a74cd744e24482c218e9bhalcanary  {
33400d44e014c805d06a59a74cd744e24482c218e9bhalcanary    *end_ptr = ++p;
33500d44e014c805d06a59a74cd744e24482c218e9bhalcanary  }
33600d44e014c805d06a59a74cd744e24482c218e9bhalcanary
33700d44e014c805d06a59a74cd744e24482c218e9bhalcanary  const char *eof = pe, *tok = NULL;
33800d44e014c805d06a59a74cd744e24482c218e9bhalcanary  int cs;
33900d44e014c805d06a59a74cd744e24482c218e9bhalcanary  hb_glyph_info_t info = {0};
34000d44e014c805d06a59a74cd744e24482c218e9bhalcanary  hb_glyph_position_t pos = {0};
34100d44e014c805d06a59a74cd744e24482c218e9bhalcanary
34200d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 343 "hb-buffer-deserialize-text.hh"
34300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
34400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	cs = deserialize_text_start;
34500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	}
34600d44e014c805d06a59a74cd744e24482c218e9bhalcanary
34700d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 348 "hb-buffer-deserialize-text.hh"
34800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
34900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	int _slen;
35000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	int _trans;
35100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	const unsigned char *_keys;
35200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	const char *_inds;
35300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if ( p == pe )
35400d44e014c805d06a59a74cd744e24482c218e9bhalcanary		goto _test_eof;
35500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if ( cs == 0 )
35600d44e014c805d06a59a74cd744e24482c218e9bhalcanary		goto _out;
35700d44e014c805d06a59a74cd744e24482c218e9bhalcanary_resume:
35800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	_keys = _deserialize_text_trans_keys + (cs<<1);
35900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	_inds = _deserialize_text_indicies + _deserialize_text_index_offsets[cs];
36000d44e014c805d06a59a74cd744e24482c218e9bhalcanary
36100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	_slen = _deserialize_text_key_spans[cs];
36200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	_trans = _inds[ _slen > 0 && _keys[0] <=(*p) &&
36300d44e014c805d06a59a74cd744e24482c218e9bhalcanary		(*p) <= _keys[1] ?
36400d44e014c805d06a59a74cd744e24482c218e9bhalcanary		(*p) - _keys[0] : _slen ];
36500d44e014c805d06a59a74cd744e24482c218e9bhalcanary
36600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	cs = _deserialize_text_trans_targs[_trans];
36700d44e014c805d06a59a74cd744e24482c218e9bhalcanary
36800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if ( _deserialize_text_trans_actions[_trans] == 0 )
36900d44e014c805d06a59a74cd744e24482c218e9bhalcanary		goto _again;
37000d44e014c805d06a59a74cd744e24482c218e9bhalcanary
37100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	switch ( _deserialize_text_trans_actions[_trans] ) {
37200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 2:
37300d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 51 "hb-buffer-deserialize-text.rl"
37400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
37500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	tok = p;
37600d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
37700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
37800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 5:
37900d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 55 "hb-buffer-deserialize-text.rl"
38000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
38100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (!hb_font_glyph_from_string (font,
38200d44e014c805d06a59a74cd744e24482c218e9bhalcanary					tok, p - tok,
38300d44e014c805d06a59a74cd744e24482c218e9bhalcanary					&info.codepoint))
38400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
38500d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
38600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
38700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 10:
38800d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 62 "hb-buffer-deserialize-text.rl"
38900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_uint (tok, p, &info.cluster )) return false; }
39000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
39100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 3:
39200d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 63 "hb-buffer-deserialize-text.rl"
39300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.x_offset )) return false; }
39400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
39500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 12:
39600d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 64 "hb-buffer-deserialize-text.rl"
39700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.y_offset )) return false; }
39800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
39900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 7:
40000d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 65 "hb-buffer-deserialize-text.rl"
40100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.x_advance)) return false; }
40200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
40300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 1:
40400d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 38 "hb-buffer-deserialize-text.rl"
40500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
40600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	memset (&info, 0, sizeof (info));
40700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	memset (&pos , 0, sizeof (pos ));
40800d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
40900d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 51 "hb-buffer-deserialize-text.rl"
41000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
41100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	tok = p;
41200d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
41300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
41400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 4:
41500d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 55 "hb-buffer-deserialize-text.rl"
41600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
41700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (!hb_font_glyph_from_string (font,
41800d44e014c805d06a59a74cd744e24482c218e9bhalcanary					tok, p - tok,
41900d44e014c805d06a59a74cd744e24482c218e9bhalcanary					&info.codepoint))
42000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
42100d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
42200d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
42300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
42400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
42500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
42600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
42700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
42800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
42900d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
43000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
43100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 9:
43200d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 62 "hb-buffer-deserialize-text.rl"
43300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_uint (tok, p, &info.cluster )) return false; }
43400d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
43500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
43600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
43700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
43800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
43900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
44000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
44100d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
44200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
44300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 11:
44400d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 64 "hb-buffer-deserialize-text.rl"
44500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.y_offset )) return false; }
44600d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
44700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
44800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
44900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
45000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
45100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
45200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
45300d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
45400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
45500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 6:
45600d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 65 "hb-buffer-deserialize-text.rl"
45700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.x_advance)) return false; }
45800d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
45900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
46000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
46100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
46200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
46300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
46400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
46500d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
46600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
46700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 8:
46800d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 66 "hb-buffer-deserialize-text.rl"
46900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.y_advance)) return false; }
47000d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
47100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
47200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
47300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
47400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
47500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
47600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
47700d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
47800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
47900d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 480 "hb-buffer-deserialize-text.hh"
48000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	}
48100d44e014c805d06a59a74cd744e24482c218e9bhalcanary
48200d44e014c805d06a59a74cd744e24482c218e9bhalcanary_again:
48300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if ( cs == 0 )
48400d44e014c805d06a59a74cd744e24482c218e9bhalcanary		goto _out;
48500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if ( ++p != pe )
48600d44e014c805d06a59a74cd744e24482c218e9bhalcanary		goto _resume;
48700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	_test_eof: {}
48800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if ( p == eof )
48900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
49000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	switch ( _deserialize_text_eof_actions[cs] ) {
49100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 4:
49200d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 55 "hb-buffer-deserialize-text.rl"
49300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
49400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (!hb_font_glyph_from_string (font,
49500d44e014c805d06a59a74cd744e24482c218e9bhalcanary					tok, p - tok,
49600d44e014c805d06a59a74cd744e24482c218e9bhalcanary					&info.codepoint))
49700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
49800d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
49900d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
50000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
50100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
50200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
50300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
50400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
50500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
50600d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
50700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
50800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 9:
50900d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 62 "hb-buffer-deserialize-text.rl"
51000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_uint (tok, p, &info.cluster )) return false; }
51100d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
51200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
51300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
51400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
51500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
51600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
51700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
51800d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
51900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
52000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 11:
52100d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 64 "hb-buffer-deserialize-text.rl"
52200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.y_offset )) return false; }
52300d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
52400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
52500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
52600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
52700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
52800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
52900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
53000d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
53100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
53200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 6:
53300d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 65 "hb-buffer-deserialize-text.rl"
53400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.x_advance)) return false; }
53500d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
53600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
53700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
53800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
53900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
54000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
54100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
54200d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
54300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
54400d44e014c805d06a59a74cd744e24482c218e9bhalcanary	case 8:
54500d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 66 "hb-buffer-deserialize-text.rl"
54600d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{ if (!parse_int  (tok, p, &pos.y_advance)) return false; }
54700d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 43 "hb-buffer-deserialize-text.rl"
54800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	{
54900d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->add_info (info);
55000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	if (buffer->in_error)
55100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	  return false;
55200d44e014c805d06a59a74cd744e24482c218e9bhalcanary	buffer->pos[buffer->len - 1] = pos;
55300d44e014c805d06a59a74cd744e24482c218e9bhalcanary	*end_ptr = p;
55400d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
55500d44e014c805d06a59a74cd744e24482c218e9bhalcanary	break;
55600d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 557 "hb-buffer-deserialize-text.hh"
55700d44e014c805d06a59a74cd744e24482c218e9bhalcanary	}
55800d44e014c805d06a59a74cd744e24482c218e9bhalcanary	}
55900d44e014c805d06a59a74cd744e24482c218e9bhalcanary
56000d44e014c805d06a59a74cd744e24482c218e9bhalcanary	_out: {}
56100d44e014c805d06a59a74cd744e24482c218e9bhalcanary	}
56200d44e014c805d06a59a74cd744e24482c218e9bhalcanary
56300d44e014c805d06a59a74cd744e24482c218e9bhalcanary#line 119 "hb-buffer-deserialize-text.rl"
56400d44e014c805d06a59a74cd744e24482c218e9bhalcanary
56500d44e014c805d06a59a74cd744e24482c218e9bhalcanary
56600d44e014c805d06a59a74cd744e24482c218e9bhalcanary  *end_ptr = p;
56700d44e014c805d06a59a74cd744e24482c218e9bhalcanary
56800d44e014c805d06a59a74cd744e24482c218e9bhalcanary  return p == pe && *(p-1) != ']';
56900d44e014c805d06a59a74cd744e24482c218e9bhalcanary}
57000d44e014c805d06a59a74cd744e24482c218e9bhalcanary
57100d44e014c805d06a59a74cd744e24482c218e9bhalcanary#endif /* HB_BUFFER_DESERIALIZE_TEXT_HH */
572