diff options
author | Tom Hacohen <tom@stosb.com> | 2015-05-07 10:02:40 +0100 |
---|---|---|
committer | Tom Hacohen <tom@stosb.com> | 2015-05-07 10:03:26 +0100 |
commit | a2a9f33802a3923c1469789f66d5fdab1eaea943 (patch) | |
tree | 8c114ee6b77a5877dff96a62f90b2f9b23d50f2c | |
parent | 92ff90ecca98f9e8e66a1f7a3ecf4e46f65913d4 (diff) |
Static deps: Move unibreak to be an external dep.
We need any version of libunibreak. The first one has been released in mid 2012.
Even slow distros like ubuntu already have an LTS out with a good enough
version, so I consider this enough to remove the maintenance cost.
This has been discussed on IRC.
@feature
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/Makefile_Evas.am | 28 | ||||
-rw-r--r-- | src/static_libs/libunibreak/AUTHORS | 11 | ||||
-rw-r--r-- | src/static_libs/libunibreak/ChangeLog | 702 | ||||
-rw-r--r-- | src/static_libs/libunibreak/LICENCE | 19 | ||||
-rw-r--r-- | src/static_libs/libunibreak/NEWS | 56 | ||||
-rw-r--r-- | src/static_libs/libunibreak/README | 87 | ||||
-rw-r--r-- | src/static_libs/libunibreak/linebreak.c | 879 | ||||
-rw-r--r-- | src/static_libs/libunibreak/linebreak.h | 87 | ||||
-rw-r--r-- | src/static_libs/libunibreak/linebreakdata.c | 1968 | ||||
-rw-r--r-- | src/static_libs/libunibreak/linebreakdef.c | 139 | ||||
-rw-r--r-- | src/static_libs/libunibreak/linebreakdef.h | 174 | ||||
-rw-r--r-- | src/static_libs/libunibreak/wordbreak.c | 453 | ||||
-rw-r--r-- | src/static_libs/libunibreak/wordbreak.h | 76 | ||||
-rw-r--r-- | src/static_libs/libunibreak/wordbreakdata.c | 949 | ||||
-rw-r--r-- | src/static_libs/libunibreak/wordbreakdef.h | 88 |
16 files changed, 3 insertions, 5715 deletions
diff --git a/configure.ac b/configure.ac index 63cc54ddce..280621baf5 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1762,6 +1762,8 @@ EFL_ADD_LIBS([EVAS], [-lm]) | |||
1762 | # Freetype | 1762 | # Freetype |
1763 | EFL_DEPEND_PKG([EVAS], [FREETYPE], [freetype2 >= 9.3.0]) | 1763 | EFL_DEPEND_PKG([EVAS], [FREETYPE], [freetype2 >= 9.3.0]) |
1764 | 1764 | ||
1765 | EFL_DEPEND_PKG([EVAS], [UNIBREAK], [libunibreak]) | ||
1766 | |||
1765 | ## optional dependencies | 1767 | ## optional dependencies |
1766 | 1768 | ||
1767 | # FontConfig | 1769 | # FontConfig |
diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 381a148827..c406bd7d94 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am | |||
@@ -87,24 +87,8 @@ lib/evas/include/evas_blend_ops.h \ | |||
87 | lib/evas/include/evas_filter.h \ | 87 | lib/evas/include/evas_filter.h \ |
88 | lib/evas/canvas/evas_vg_private.h | 88 | lib/evas/canvas/evas_vg_private.h |
89 | 89 | ||
90 | # Linebreak | ||
91 | |||
92 | noinst_HEADERS += \ | ||
93 | static_libs/libunibreak/linebreak.h \ | ||
94 | static_libs/libunibreak/linebreakdef.h \ | ||
95 | static_libs/libunibreak/wordbreakdef.h \ | ||
96 | static_libs/libunibreak/wordbreak.h \ | ||
97 | static_libs/libunibreak/wordbreakdata.c | ||
98 | |||
99 | # Linebreak | ||
100 | lib_evas_libevas_la_SOURCES = \ | ||
101 | static_libs/libunibreak/linebreak.c \ | ||
102 | static_libs/libunibreak/linebreakdata.c \ | ||
103 | static_libs/libunibreak/linebreakdef.c \ | ||
104 | static_libs/libunibreak/wordbreak.c | ||
105 | |||
106 | # Main | 90 | # Main |
107 | lib_evas_libevas_la_SOURCES += \ | 91 | lib_evas_libevas_la_SOURCES = \ |
108 | lib/evas/main.c | 92 | lib/evas/main.c |
109 | 93 | ||
110 | # Canvas | 94 | # Canvas |
@@ -314,7 +298,6 @@ lib_evas_libevas_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ | |||
314 | -I$(top_srcdir)/src/lib/evas/cserve2 \ | 298 | -I$(top_srcdir)/src/lib/evas/cserve2 \ |
315 | -I$(top_srcdir)/src/lib/evas/file \ | 299 | -I$(top_srcdir)/src/lib/evas/file \ |
316 | -I$(top_srcdir)/src/lib/evas/include \ | 300 | -I$(top_srcdir)/src/lib/evas/include \ |
317 | -I$(top_srcdir)/src/static_libs/libunibreak \ | ||
318 | -I$(top_builddir)/src/lib/evas/canvas \ | 301 | -I$(top_builddir)/src/lib/evas/canvas \ |
319 | -I$(top_builddir)/src/modules/evas/engines/software_generic \ | 302 | -I$(top_builddir)/src/modules/evas/engines/software_generic \ |
320 | -I$(top_builddir)/src/modules/evas/engines/gl_generic \ | 303 | -I$(top_builddir)/src/modules/evas/engines/gl_generic \ |
@@ -366,15 +349,6 @@ lib/evas/common/libevas_convert_rgb_32.la \ | |||
366 | 349 | ||
367 | lib_evas_libevas_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ | 350 | lib_evas_libevas_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ |
368 | 351 | ||
369 | # Linebreak | ||
370 | |||
371 | EXTRA_DIST += \ | ||
372 | static_libs/libunibreak/LICENCE \ | ||
373 | static_libs/libunibreak/AUTHORS \ | ||
374 | static_libs/libunibreak/NEWS \ | ||
375 | static_libs/libunibreak/README \ | ||
376 | static_libs/libunibreak/ChangeLog | ||
377 | |||
378 | # Engines | 352 | # Engines |
379 | 353 | ||
380 | EXTRA_DIST += \ | 354 | EXTRA_DIST += \ |
diff --git a/src/static_libs/libunibreak/AUTHORS b/src/static_libs/libunibreak/AUTHORS deleted file mode 100644 index 1b4f4b41d8..0000000000 --- a/src/static_libs/libunibreak/AUTHORS +++ /dev/null | |||
@@ -1,11 +0,0 @@ | |||
1 | Wu Yongwei. Designed and implemented the original liblinebreak. | ||
2 | Current maintainer of libunibreak. | ||
3 | |||
4 | Nikolay Pultsin. Put forward the original requirements on liblinebreak, | ||
5 | performed tests, and made a lot of suggestions on the initial versions. | ||
6 | |||
7 | Thomas Klausner. Autoconfiscated and libtoolized liblinebreak. | ||
8 | |||
9 | Tom Hacohen. Added word boundaries support. | ||
10 | |||
11 | Petr Filipsky. Added incremental processing for line-breaking. | ||
diff --git a/src/static_libs/libunibreak/ChangeLog b/src/static_libs/libunibreak/ChangeLog deleted file mode 100644 index feb830bd37..0000000000 --- a/src/static_libs/libunibreak/ChangeLog +++ /dev/null | |||
@@ -1,702 +0,0 @@ | |||
1 | 2013-11-14 Wu Yongwei <wuyongwei@gmail.com> | ||
2 | |||
3 | * src/linebreak.c: Add/update comments and doc comments. | ||
4 | (lb_init_breaking_class): Rename to treat_first_char. | ||
5 | (lb_classify_break_simple): Rename to get_lb_result_simple. | ||
6 | (lb_classify_break_lookup): Rename to get_lb_result_lookup. | ||
7 | (set_linebreaks): Remove an unused local variable. | ||
8 | |||
9 | 2013-11-14 Wu Yongwei <wuyongwei@gmail.com> | ||
10 | |||
11 | * src/linebreakdata.c: Regenerate from LineBreak-6.3.0.txt. | ||
12 | |||
13 | 2013-11-13 Wu Yongwei <wuyongwei@gmail.com> | ||
14 | |||
15 | Fix compilation problems under MSVC. | ||
16 | * src/linebreak.c (lb_init_breaking_class): Remove `inline'. | ||
17 | (lb_classify_break_simple): Ditto. | ||
18 | (lb_classify_break_lookup): Ditto. | ||
19 | (lb_classify_break_lookup): Move local variable declaration before | ||
20 | assertions. | ||
21 | |||
22 | 2013-11-10 Wu Yongwei <wuyongwei@gmail.com> | ||
23 | |||
24 | * src/Makefile.am (libunibreak_la_LDFLAGS): Set the version-info to | ||
25 | `2:0:1'. | ||
26 | |||
27 | 2013-11-10 Wu Yongwei <wuyongwei@gmail.com> | ||
28 | |||
29 | * src/linebreakdef.c: Adjust the order of code. | ||
30 | (lb_process_next_char): Make its return type int. | ||
31 | * src/linebreak.c (lb_process_next_char): Ditto. | ||
32 | |||
33 | 2013-11-10 Wu Yongwei <wuyongwei@gmail.com> | ||
34 | |||
35 | * src/linebreak.c: Make minor changes in doc comments, formatting, | ||
36 | and names. | ||
37 | * src/linebreakdef.c: Ditto. | ||
38 | |||
39 | 2013-11-10 Wu Yongwei <wuyongwei@gmail.com> | ||
40 | |||
41 | * AUTHORS: Add `Petr Filipsky'. | ||
42 | |||
43 | 2013-11-10 Petr Filipsky <philodej@gmail.com> | ||
44 | |||
45 | Expose low level line-breaking API for incremental processing. | ||
46 | * src/linebreak.h: Add prototype declarations for | ||
47 | lb_init_break_context and lb_process_next_char. | ||
48 | (struct LineBreakContext): New struct. | ||
49 | * src/linebreak.h (LINEBREAK_UNDEFINED): New macro constant. | ||
50 | (lb_init_breaking_class): New static function. | ||
51 | (lb_classify_break_simple): New static function. | ||
52 | (lb_classify_break_lookup): New static function. | ||
53 | (lb_init_break_context): New function. | ||
54 | (lb_process_next_char): New function. | ||
55 | (set_linebreaks): Implement with lb_init_break_context and | ||
56 | lb_process_next_char. | ||
57 | |||
58 | 2013-11-05 Petr Filipsky <philodej@gmail.com> | ||
59 | |||
60 | * src/wordbreakdef.h (enum WordBreakClass): Update according to | ||
61 | Table 3 of Unicode Standard Annex 29, Revision 23. | ||
62 | |||
63 | 2013-09-30 Wu Yongwei <wuyongwei@gmail.com> | ||
64 | |||
65 | Update for the libunibreak 1.1 release. | ||
66 | * configure.ac (AC_INIT): Change the library version to `1.1'. | ||
67 | * Doxyfile (PROJECT_NUMBER): Change to `1.1'. | ||
68 | * Makefile.am (EXTRA_DIST): Add the `tools' directory. | ||
69 | * NEWS: Add information about libunibreak 1.1. | ||
70 | * src/Makefile.am (libunibreak_la_LDFLAGS): Set the version to `1:1'. | ||
71 | |||
72 | 2013-09-29 Wu Yongwei <wuyongwei@gmail.com> | ||
73 | |||
74 | * src/Makefile.msvc: Modernize obsolete/deprecated MSVC options. | ||
75 | |||
76 | 2013-09-28 Wu Yongwei <wuyongwei@gmail.com> | ||
77 | |||
78 | * src/wordbreak.c: Update copyright year and UAX information. | ||
79 | * src/wordbreak.h: Ditto. | ||
80 | * src/wordbreakdef.h: Ditto. | ||
81 | |||
82 | 2013-09-28 Wu Yongwei <wuyongwei@gmail.com> | ||
83 | |||
84 | Fix the errors caused by libtool 2.4 (really annoying to the level | ||
85 | of WTF for making me add the foolish dependency on m4). | ||
86 | * Makefile.am (ACLOCAL_AMFLAGS): Add `-I m4'. | ||
87 | * bootstrap: Add a line to execute autoreconf. | ||
88 | * configure.ac (AC_CONFIG_MACRO_DIR): Set to `[m4]'. | ||
89 | * purge: Make it remove also the m4 directory. | ||
90 | |||
91 | 2013-09-28 Wu Yongwei <wuyongwei@gmail.com> | ||
92 | |||
93 | * Makefile.am (EXTRA_DIST): Add `README.md'. | ||
94 | |||
95 | 2013-09-28 Wu Yongwei <wuyongwei@gmail.com> | ||
96 | |||
97 | * README.md: New Markdown version of README. | ||
98 | * README: Remove. | ||
99 | |||
100 | 2013-05-13 Tom Hacohen <tom@stosb.com> | ||
101 | |||
102 | Update files according to UAX #29-21, for Unicode 6.2.0. | ||
103 | * README: Update the reference to UAX #29-21. | ||
104 | * src/wordbreak.c (set_wordbreaks): Update for WBP_Regional. | ||
105 | * src/wordbreakdef.h (WBP_Regional): New enumerator for the new | ||
106 | property `RI' as defined in UAX #29-21. | ||
107 | * src/wordbreakdata.c: Regenerate from WordBreakProperty-6.2.0.txt. | ||
108 | |||
109 | 2013-05-06 Wu Yongwei <wuyongwei@gmail.com> | ||
110 | |||
111 | * src/Makefile.am (install-exec-hook): Make sure `--disable-static' | ||
112 | can work (thanks to Eugene V. Lyubimkin). | ||
113 | |||
114 | 2012-10-06 Wu Yongwei <wuyongwei@gmail.com> | ||
115 | |||
116 | Update files according to UAX #14-30, for Unicode 6.2.0. | ||
117 | * README: Update the reference to UAX #14-30. | ||
118 | * src/linebreak.c (baTable): Update for the new class `RI'. | ||
119 | * src/linebreak.h (LINEBREAK_VERSION): Set to 0x0202. | ||
120 | * src/linebreakdef.h (LBP_RI): New enumerator for the new class `RI' | ||
121 | as defined in UAX #14-30. | ||
122 | * src/linebreakdata.c: Regenerate from LineBreak-6.2.0.txt. | ||
123 | |||
124 | 2012-10-06 Wu Yongwei <wuyongwei@gmail.com> | ||
125 | |||
126 | * src/linebreak.c (baTable): Correct the issue that one column was | ||
127 | missing in the table. | ||
128 | |||
129 | 2012-10-06 Wu Yongwei <wuyongwei@gmail.com> | ||
130 | |||
131 | * README: Update to reflect the recent changes. | ||
132 | |||
133 | 2012-10-06 Wu Yongwei <wuyongwei@gmail.com> | ||
134 | |||
135 | Make `make linebreakdata' and `make wordbreakdata' work again. | ||
136 | * src/Makefile.am (EXTRA_DIST): Add missing `filter_dup.c'. | ||
137 | (linebreakdata): New make target. | ||
138 | (wordbreakdata): New make target. | ||
139 | |||
140 | 2012-10-06 Wu Yongwei <wuyongwei@gmail.com> | ||
141 | |||
142 | Make `make dist' work again after the directory adjustment. | ||
143 | * Doxyfile (INPUT): Change to `src'. | ||
144 | (FILE_PATTERNS): Set to `*.c *.h'. | ||
145 | * Makefile.am (EXTRA_DIST): Move content from src/Makefile.am. | ||
146 | (doc): Move target from src/Makefile.am. | ||
147 | * src/Makefile.am (EXTRA_DIST): Move partial content to Makefile.am. | ||
148 | (doc): Move target to Makefile.am. | ||
149 | |||
150 | 2012-09-16 Wu Yongwei <wuyongwei@gmail.com> | ||
151 | |||
152 | Update files according to UAX #14-28, for Unicode 6.1.0. | ||
153 | * README: Update the reference to UAX #14-28. | ||
154 | * src/linebreak.c (baTable): Update for the new class `HL'. | ||
155 | (resolve_lb_class): Resolve the new class `CJ' to `ID' (simplified). | ||
156 | * src/linebreakdef.h (LBP_HL): New enumerator for the new class `HL' | ||
157 | as defined in UAX #14-28. | ||
158 | (LBP_CJ): New enumerator for the new class `CJ' as defined in | ||
159 | UAX #14-28. | ||
160 | * src/linebreakdata.c: Regenerate from LineBreak-6.1.0.txt. | ||
161 | |||
162 | 2012-08-13 Tom Hacohen <tom@stosb.com> | ||
163 | |||
164 | Move source files to under src. | ||
165 | * Makefile.am: Split from original Makefile.am. | ||
166 | (SUBDIRS): Add `src'. | ||
167 | * configure.ac (AC_CONFIG_SRCDIR): Add `src/' before `linebreak.c'. | ||
168 | (AC_CONFIG_FILES): Add `src/Makefile'. | ||
169 | * src/LineBreak1.sed: Move from LineBreak1.sed. | ||
170 | * src/LineBreak2.sed: Move from LineBreak2.sed. | ||
171 | * src/Makefile.am: Split from Makefile.am | ||
172 | * src/Makefile.gcc: Move from Makefile.gcc. | ||
173 | * src/Makefile.msvc: Move from Makefile.msvc. | ||
174 | * src/filter_dup.c: Move from filter_dup.c. | ||
175 | * src/linebreak.c: Move from linebreak.c. | ||
176 | * src/linebreak.h: Move from linebreak.h. | ||
177 | * src/linebreakdata.c: Move from linebreakdata.c. | ||
178 | * src/linebreakdata1.tmpl: Move from linebreakdata1.tmpl. | ||
179 | * src/linebreakdata2.tmpl: Move from linebreakdata2.tmpl. | ||
180 | * src/linebreakdata3.tmpl: Move from linebreakdata3.tmpl. | ||
181 | * src/linebreakdef.c: Move from linebreakdef.c. | ||
182 | * src/linebreakdef.h: Move from linebreakdef.h. | ||
183 | * src/sort_numeric_hex.py: Move from sort_numeric_hex.py. | ||
184 | * src/wordbreak.c: Move from wordbreak.c. | ||
185 | * src/wordbreak.h: Move from wordbreak.h. | ||
186 | * src/wordbreakdata.c: Move from wordbreakdata.c. | ||
187 | * src/wordbreakdata1.tmpl: Move from wordbreakdata1.tmpl. | ||
188 | * src/wordbreakdata2.tmpl: Move from wordbreakdata2.tmpl. | ||
189 | * src/wordbreakdef.h: Move from wordbreakdef.h. | ||
190 | |||
191 | 2012-08-12 Wu Yongwei <wuyongwei@gmail.com> | ||
192 | |||
193 | * README: Change the home URL to github; remove $Id$; eliminate | ||
194 | non-ASCII characters. | ||
195 | |||
196 | 2012-08-11 Wu Yongwei <wuyongwei@gmail.com> | ||
197 | |||
198 | Update for the libunibreak 1.0 release. | ||
199 | * configure.ac (AC_INIT): Change the library name and version to | ||
200 | `libunibreak' and `1.0'. | ||
201 | (AC_PROG_LN_S): New macro. | ||
202 | (AC_OUTPUT): Change to `libunibreak.pc'. | ||
203 | * Doxyfile (PROJECT_NAME): Change to `libunibreak'. | ||
204 | (PROJECT_NUMBER): Change to `1.0'. | ||
205 | * LICENCE: Add copyright information about Tom Hacohen. | ||
206 | * Makefile.am (lib_LTLIBRARIES): Change to `libunibreak.la'. | ||
207 | (pkgconfig_DATA): Change to `libunibreak.la'. | ||
208 | (libunibreak_la_LDFLAGS): Reset the version to `1:0'. | ||
209 | (install-exec-hook): Replace the static library liblinebreak.a with | ||
210 | a symlink to libunibreak.a. | ||
211 | * Makefile.msvc: Change the library name to `libunibreak', and the | ||
212 | output library to `unibreak.lib'. | ||
213 | * NEWS: Add information about libunibreak 1.0. | ||
214 | * README: Change the library name, and add information about word | ||
215 | break. | ||
216 | |||
217 | 2012-02-04 Wu Yongwei <wuyongwei@gmail.com> | ||
218 | |||
219 | * wordbreak.h (WORDBREAK_INSIDEACHAR): Change from | ||
220 | WORDBREAK_INSIDECHAR. | ||
221 | * wordbreak.c (set_brks_to): Change `WORDBREAK_INSIDECHAR' to | ||
222 | `WORDBREAK_INSIDEACHAR'. | ||
223 | |||
224 | 2012-01-19 Wu Yongwei <wuyongwei@gmail.com> | ||
225 | |||
226 | * wordbreak.h: Change angle brackets to quotation marks (which | ||
227 | caused build errors). | ||
228 | |||
229 | 2012-01-19 Wu Yongwei <wuyongwei@gmail.com> | ||
230 | |||
231 | * Makefile.gcc (CFILES): Add wordbreak.c. | ||
232 | (WordBreakProperty.txt): New target. | ||
233 | (wordbreakdata): New target. | ||
234 | |||
235 | 2012-01-19 Wu Yongwei <wuyongwei@gmail.com> | ||
236 | |||
237 | * Makefile.am (liblinebreak_la_SOURCES): Remove wordbreakdata.c. | ||
238 | (EXTRA_DIST): Add wordbreakdata.c, wordbreakdata1.tmpl, and | ||
239 | wordbreakdata2.tmpl. | ||
240 | |||
241 | 2012-01-19 Wu Yongwei <wuyongwei@gmail.com> | ||
242 | |||
243 | * Makefile.msvc: Add wordbreak files. | ||
244 | |||
245 | 2012-01-18 Tom Hacohen <tom@stosb.com> | ||
246 | |||
247 | Add word breaking support. | ||
248 | * AUTHORS: Add `Tom Hacohen'. | ||
249 | * Makefile.am (include_HEADERS): Add header files for word breaking. | ||
250 | (liblinebreak_la_SOURCES): Add source files for word breaking. | ||
251 | (sort_numeric_hex.py): Add `sort_numeric_hex.py'. | ||
252 | (distclean-local): Clean also `WordBreakData.txt'. | ||
253 | (WordBreakProperty.txt): New target. | ||
254 | (wordbreakdata): New target. | ||
255 | * sort_numeric_hex.py: New file. | ||
256 | * wordbreak.c: New file. | ||
257 | * wordbreak.h: New file. | ||
258 | * wordbreakdef.h: New file. | ||
259 | * wordbreakdata.c: New file. | ||
260 | * wordbreakdata1.tmpl: New file. | ||
261 | * wordbreakdata2.tmpl: New file. | ||
262 | |||
263 | 2011-05-17 Wu Yongwei <wuyongwei@gmail.com> | ||
264 | |||
265 | Add support for pkg-config (thanks to Tom Hacohen). | ||
266 | * liblinebreak.pc.in: New file. | ||
267 | * configure.ac (AC_OUTPUT): Add `liblinebreak.pc'. | ||
268 | * Makefile.am (pkgconfig_DATA): Set to `liblinebreak.pc'. | ||
269 | (pkgconfigdir): Set to `$(libdir)/pkgconfig'. | ||
270 | |||
271 | 2011-05-07 Wu Yongwei <wuyongwei@gmail.com> | ||
272 | |||
273 | * README: Update the reference to UAX #14-26, for Unicode 6.0.0. | ||
274 | |||
275 | 2011-05-07 Wu Yongwei <wuyongwei@gmail.com> | ||
276 | |||
277 | * configure.ac (AC_INIT): Increase the version to 2.1. | ||
278 | * Makefile.am (liblinebreak_la_LDFLAGS): Set the version-info to | ||
279 | `2:1'. | ||
280 | |||
281 | 2011-05-07 Wu Yongwei <wuyongwei@gmail.com> | ||
282 | |||
283 | * LICENCE: Update the copyright year. | ||
284 | |||
285 | 2011-05-07 Wu Yongwei <wuyongwei@gmail.com> | ||
286 | |||
287 | Update for the 2.1 release. | ||
288 | * Doxyfile (PROJECT_NUMBER): Set to `2.1'. | ||
289 | * NEWS: Add information about the 2.1 release. | ||
290 | * linebreak.h (LINEBREAK_VERSION): Set to `0x0201'. | ||
291 | * linebreak.h: Update comments. | ||
292 | * linebreak.c: Ditto. | ||
293 | * linebreakdef.h: Ditto. | ||
294 | * linebreakdef.c: Ditto. | ||
295 | |||
296 | 2011-05-07 Wu Yongwei <wuyongwei@gmail.com> | ||
297 | |||
298 | * linebreakdata.c: Regenerate from LineBreak-6.0.0.txt. | ||
299 | |||
300 | 2011-05-07 Wu Yongwei <wuyongwei@gmail.com> | ||
301 | |||
302 | * linebreak.c (set_linebreaks): Fix the assertion failure when | ||
303 | U+FFFC (OBJECT REPLACEMENT CHARACTER) appears at the beginning of a | ||
304 | line (thanks to Tom Hacohen). | ||
305 | |||
306 | 2010-01-03 Wu Yongwei <wuyongwei@gmail.com> | ||
307 | |||
308 | * LICENCE: Update the copyright year. | ||
309 | |||
310 | 2010-01-03 Wu Yongwei <wuyongwei@gmail.com> | ||
311 | |||
312 | * NEWS: Add information about the 2.0 release. | ||
313 | |||
314 | 2010-01-03 Wu Yongwei <wuyongwei@gmail.com> | ||
315 | |||
316 | * Doxyfile (PROJECT_NUMBER): Set to `2.0'. | ||
317 | (HAVE_DOT): Set to `YES'. | ||
318 | |||
319 | 2010-01-03 Wu Yongwei <wuyongwei@gmail.com> | ||
320 | |||
321 | * linebreak.c: Update the version number in comment to 2.0. | ||
322 | * linebreak.h: Ditto. | ||
323 | * linebreakdef.c: Ditto. | ||
324 | * linebreakdef.h: Ditto. | ||
325 | |||
326 | 2009-12-17 Wu Yongwei <wuyongwei@gmail.com> | ||
327 | |||
328 | Change the values of enum BreakAction to the same length. | ||
329 | * linebreak.c (DIRECT_BRK): Rename to DIR_BRK. | ||
330 | (INDIRECT_BRK): Rename to IND_BRK. | ||
331 | (CM_INDIRECT_BRK): Rename to CMI_BRK. | ||
332 | (CM_PROHIBITED_BRK): Rename to CMP_BRK. | ||
333 | (PROHIBITED_BRK): Rename to PRH_BRK. | ||
334 | |||
335 | 2009-11-29 Wu Yongwei <wuyongwei@gmail.com> | ||
336 | |||
337 | * Doxyfile (TAB_SIZE): Set to the correct size `4', as used in the | ||
338 | source files. | ||
339 | |||
340 | 2009-11-29 Wu Yongwei <wuyongwei@gmail.com> | ||
341 | |||
342 | Update files according to UAX #14-24, for Unicode 5.2.0. | ||
343 | * linebreak.c: Update comments about UAX #14. | ||
344 | * linebreak.h: Ditto. | ||
345 | * linebreakdef.c: Ditto. | ||
346 | * linebreakdef.h: Ditto. | ||
347 | (LBP_CP): New enumerator for the new `CP' class as defined in | ||
348 | UAX #14-24. | ||
349 | * linebreak.c (baTable): Update for the new class `CP'. | ||
350 | * linebreakdata.c: Regenerate from LineBreak-5.2.0.txt. | ||
351 | * README: Update the reference to UAX #14-24, for Unicode 5.2.0. | ||
352 | |||
353 | 2009-05-03 Wu Yongwei <wuyongwei@gmail.com> | ||
354 | |||
355 | * NEWS: Add information about the 1.2 release. | ||
356 | |||
357 | 2009-04-30 Wu Yongwei <wuyongwei@gmail.com> | ||
358 | |||
359 | Optimize the Doxygen output. | ||
360 | * linebreak.c (lb_prop_index): Adjust its definition format | ||
361 | slightly. | ||
362 | |||
363 | 2009-04-30 Wu Yongwei <wuyongwei@gmail.com> | ||
364 | |||
365 | * Doxyfile (USE_WINDOWS_ENCODING): Remove obsolete tag. | ||
366 | (DETAILS_AT_TOP): Ditto. | ||
367 | (MAX_DOT_GRAPH_WIDTH): Ditto. | ||
368 | (MAX_DOT_GRAPH_HEIGHT): Ditto. | ||
369 | (REFERENCED_BY_RELATION): Set to `NO'. | ||
370 | (REFERENCES_RELATION): Ditto. | ||
371 | (EXCLUDE): Add `filter_dup.c'. | ||
372 | |||
373 | 2009-04-28 Wu Yongwei <wuyongwei@gmail.com> | ||
374 | |||
375 | * linebreak.c (lb_get_next_char_utf8): Fix the issue that the index | ||
376 | can point to the middle of a UTF-8 sequence if End of String (EOS) | ||
377 | is encountered prematurely (thanks to Nikolay Pultsin and Rick Xu). | ||
378 | (lb_get_next_char_utf16): Fix the issue that the index can point to | ||
379 | the middle of a UTF-16 surrogate pair if EOS is encountered | ||
380 | prematurely. | ||
381 | |||
382 | 2009-04-20 Wu Yongwei <wuyongwei@gmail.com> | ||
383 | |||
384 | * linebreakdef.c (lb_prop_English): Remove the specialization of | ||
385 | right single quotation mark as closing punctuation mark, because it | ||
386 | can be used as apostrophe. | ||
387 | (lb_prop_Spanish): Ditto. | ||
388 | (lb_prop_French): Ditto. | ||
389 | |||
390 | 2009-04-09 Wu Yongwei <wuyongwei@gmail.com> | ||
391 | |||
392 | * Makefile.msvc: Make the `clean' target work on MSVC versions other | ||
393 | than 6.0; do not use precompiled header. | ||
394 | |||
395 | 2009-03-07 Wu Yongwei <wuyongwei@gmail.com> | ||
396 | |||
397 | * linebreak.h: Correct the wrong date in the documentation comment. | ||
398 | * linebreakdef.h: Ditto. | ||
399 | |||
400 | 2009-02-10 Wu Yongwei <wuyongwei@gmail.com> | ||
401 | |||
402 | * configure.ac (AC_INIT): Increase the version to 2.0. | ||
403 | * Makefile.am (liblinebreak_la_LDFLAGS): Set the version-info to | ||
404 | `2:0'. | ||
405 | |||
406 | 2009-02-10 Wu Yongwei <wuyongwei@gmail.com> | ||
407 | |||
408 | * linebreak.h (LINEBREAK_VERSION): New macro. | ||
409 | (linebreak_version): New global constant declaration. | ||
410 | * linebreak.c (linebreak_version): New global constant definition. | ||
411 | |||
412 | 2009-02-10 Wu Yongwei <wuyongwei@gmail.com> | ||
413 | |||
414 | Reduce namespace pollution. | ||
415 | * linebreak.c (get_lb_prop_lang): Mark as static. | ||
416 | (get_next_char_utf8): Rename to lb_get_next_char_utf8. | ||
417 | (get_next_char_utf16): Rename to lb_get_next_char_utf32. | ||
418 | (get_next_char_utf32): Rename to lb_get_next_char_utf32. | ||
419 | (is_breakable): Rename to is_line_breakable. | ||
420 | * linebreak.h (get_next_char_utf8): Remove the function prototype | ||
421 | declaration. | ||
422 | (get_next_char_utf16): Ditto. | ||
423 | (get_next_char_utf32): Ditto. | ||
424 | (is_breakable): Rename to is_line_breakable. | ||
425 | * linebreakdef.h (lb_get_next_char_utf8): Add the function prototype | ||
426 | declaration. | ||
427 | (lb_get_next_char_utf16): Ditto. | ||
428 | (lb_get_next_char_utf32): Ditto. | ||
429 | |||
430 | 2009-02-06 Wu Yongwei <wuyongwei@gmail.com> | ||
431 | |||
432 | * NEWS: Add information about the 1.1 release. | ||
433 | |||
434 | 2009-01-02 Wu Yongwei <wuyongwei@gmail.com> | ||
435 | |||
436 | * Makefile.am (EXTRA_DIST): Add the missing `LICENCE' file. | ||
437 | |||
438 | 2008-12-31 Wu Yongwei <wuyongwei@gmail.com> | ||
439 | |||
440 | * linebreak.c: Update the version number in comment to 1.0. | ||
441 | * linebreak.h: Ditto. | ||
442 | * linebreakdef.c: Ditto. | ||
443 | * linebreakdef.h: Ditto. | ||
444 | |||
445 | 2008-12-31 Wu Yongwei <wuyongwei@gmail.com> | ||
446 | |||
447 | * NEWS: Update for the 1.0 release. | ||
448 | |||
449 | 2008-12-31 Wu Yongwei <wuyongwei@gmail.com> | ||
450 | |||
451 | * README: Correct two typos. | ||
452 | |||
453 | 2008-12-31 Wu Yongwei <wuyongwei@gmail.com> | ||
454 | |||
455 | * README: Add the online URL reference. | ||
456 | |||
457 | 2008-12-30 Wu Yongwei <wuyongwei@gmail.com> | ||
458 | |||
459 | * README: Update the reference to UAX #14-22, for Unicode 5.1.0. | ||
460 | |||
461 | 2008-12-13 Wu Yongwei <wuyongwei@gmail.com> | ||
462 | |||
463 | Update files according to UAX #14-22, for Unicode 5.1.0. | ||
464 | * linebreak.c (baTable): Update according to Table 2 of UAX #14-22. | ||
465 | * linebreakdef.c (lb_prop_Spanish): Remove the unnecessary | ||
466 | customization for inverted marks in Spanish. | ||
467 | * linebreakdata.c: Regenerate from LineBreak-5.1.0.txt. | ||
468 | * linebreak.h: Update comment only. | ||
469 | * linebreakdef.h: Ditto. | ||
470 | |||
471 | 2008-12-12 Wu Yongwei <wuyongwei@gmail.com> | ||
472 | |||
473 | * README: Update for the new build methods and better readability. | ||
474 | |||
475 | 2008-12-12 Wu Yongwei <wuyongwei@gmail.com> | ||
476 | |||
477 | * Makefile.msvc: Correct the inconsistent naming in the output | ||
478 | message. | ||
479 | |||
480 | 2008-12-12 Wu Yongwei <wuyongwei@gmail.com> | ||
481 | |||
482 | * configure.ac (AM_INIT_AUTOMAKE): Mark `foreign'. | ||
483 | * bootstrap: New file. | ||
484 | * purge: New file. | ||
485 | * Makefile.gcc (purge): Remove this target. | ||
486 | |||
487 | 2008-12-10 Wu Yongwei <wuyongwei@gmail.com> | ||
488 | |||
489 | * NEWS: New file. | ||
490 | |||
491 | 2008-12-10 Wu Yongwei <wuyongwei@gmail.com> | ||
492 | |||
493 | * AUTHORS: New file. | ||
494 | |||
495 | 2008-12-10 Wu Yongwei <wuyongwei@gmail.com> | ||
496 | |||
497 | * Makefile.gcc (purge): New phony target to purge files generated by | ||
498 | autoconfiscation. | ||
499 | |||
500 | 2008-12-10 Thomas Klausner <tk@giga.or.at> | ||
501 | |||
502 | * configure.ac: New file. | ||
503 | * Makefile.am: New file. | ||
504 | |||
505 | 2008-12-10 Wu Yongwei <wuyongwei@gmail.com> | ||
506 | |||
507 | * Doxyfile (OUTPUT_DIRECTORY): Set to `doc'. | ||
508 | (ALPHABETICAL_INDEX): Set to `YES'. | ||
509 | |||
510 | 2008-12-09 Wu Yongwei <wuyongwei@gmail.com> | ||
511 | |||
512 | * Makefile.msvc: New file. | ||
513 | |||
514 | 2008-12-09 Wu Yongwei <wuyongwei@gmail.com> | ||
515 | |||
516 | * Makefile: Remove (to become Makefile.gcc). | ||
517 | * Makefile.gcc: New file (was Makefile). | ||
518 | |||
519 | 2008-12-07 Wu Yongwei <wuyongwei@gmail.com> | ||
520 | |||
521 | * linebreak.c: Adjust the comment that refers to Unicode Annex 14. | ||
522 | * linebreak.h: Ditto. | ||
523 | * linebreakdef.c: Ditto. | ||
524 | * linebreakdef.h: Ditto. | ||
525 | |||
526 | 2008-12-07 Wu Yongwei <wuyongwei@gmail.com> | ||
527 | |||
528 | Use only POSIX basic regexp to ensure maximum portability (issues | ||
529 | have been found on Mac OS X, where GNU extensions do not work). | ||
530 | * LineBreak1.sed: Replace `[:xdigit:]' with `0-9A-F', and `\+' with | ||
531 | `\{1,\}'. | ||
532 | * LineBreak2.sed: Ditto. | ||
533 | |||
534 | 2008-12-07 Wu Yongwei <wuyongwei@gmail.com> | ||
535 | |||
536 | * Makefile: Replace `*.exe' with `filter_dup$(EXEEXT)', since the | ||
537 | extension `.exe' is specific to Windows. | ||
538 | |||
539 | 2008-04-20 Wu Yongwei <wuyongwei@gmail.com> | ||
540 | |||
541 | Add README and LICENCE files, as well as a Doxyfile to generate | ||
542 | documents. | ||
543 | * README: New file. | ||
544 | * LICENCE: New file. | ||
545 | * Doxyfile: New file. | ||
546 | * Makefile (doc): Add new phony target. | ||
547 | |||
548 | 2008-04-04 Wu Yongwei <wuyongwei@gmail.com> | ||
549 | |||
550 | Remove the English override for plus sign: it is better treated in | ||
551 | the text breaking program (see ../breaktext/ for an example). | ||
552 | * linebreakdef.c (lb_prop_English): Remove the line for plus sign. | ||
553 | |||
554 | 2008-03-29 Wu Yongwei <wuyongwei@gmail.com> | ||
555 | |||
556 | * Makefile: Correct the dependency-making rules when OLDGCC=Y. | ||
557 | |||
558 | 2008-03-23 Wu Yongwei <wuyongwei@gmail.com> | ||
559 | |||
560 | * Makefile (clean): Do not remove *.exe and tags here. | ||
561 | (distclean): Remove *.exe and tags. | ||
562 | |||
563 | 2008-03-23 Wu Yongwei <wuyongwei@gmail.com> | ||
564 | |||
565 | Remove the English override for solidus: it is better treated in the | ||
566 | text breaking program (see ../breaktext/ for an example). | ||
567 | * linebreakdef.c (lb_prop_English): Remove the line for solidus. | ||
568 | |||
569 | 2008-03-16 Wu Yongwei <wuyongwei@gmail.com> | ||
570 | |||
571 | Rename init_linebreak_prop_index to init_linebreak for future | ||
572 | safety; make visible certain functions that are potentially useful. | ||
573 | * linebreak.c (init_linebreak_prop_index): Rename to init_linebreak. | ||
574 | (get_next_char_t): Move to linebreakdef.h. | ||
575 | (get_next_char_utf8): Make non-static. | ||
576 | (get_next_char_utf16): Ditto. | ||
577 | (get_next_char_utf32): Ditto. | ||
578 | (set_linebreaks): Ditto. | ||
579 | * linebreak.h (init_linebreak_prop_index): Rename to init_linebreak. | ||
580 | (get_next_char_utf8): Add the function prototype. | ||
581 | (get_next_char_utf16): Ditto. | ||
582 | (get_next_char_utf32): Ditto. | ||
583 | * linebreakdef.h (get_next_char_t): Add the typedef. | ||
584 | (set_linebreaks): Add the function prototype. | ||
585 | |||
586 | 2008-03-16 Wu Yongwei <wuyongwei@gmail.com> | ||
587 | |||
588 | * Makefile (OLDGCC): Add support for GCC 2.95.3 (when OLDGCC=Y). | ||
589 | |||
590 | 2008-03-15 Wu Yongwei <wuyongwei@gmail.com> | ||
591 | |||
592 | * linebreak.c (set_linebreaks): Fix a bug that `==' was wrongly used | ||
593 | for `='. | ||
594 | |||
595 | 2008-03-05 Wu Yongwei <wuyongwei@gmail.com> | ||
596 | |||
597 | Improve the performance by reducing the look-ups of the | ||
598 | language-specific line breaking properties array from the language | ||
599 | name (thanks to Nikolay Pultsin). | ||
600 | * linebreak.c (get_lb_prop_lang): New function. | ||
601 | (get_char_lb_class_lang): Change the second parameter from the | ||
602 | language name to the line breaking properties array. | ||
603 | (set_linebreaks): Look up the language-specific line breaking | ||
604 | properties array from the language name only once in one function | ||
605 | call. | ||
606 | |||
607 | 2008-03-03 Wu Yongwei <wuyongwei@gmail.com> | ||
608 | |||
609 | Make minor adjustments in code and comments. | ||
610 | * linebreak.c: Adjust the doc comments. | ||
611 | (init_linebreak_prop_index): Modify a conditional to make it more | ||
612 | robust and consistent. | ||
613 | * linebreakdef.c (lb_prop_lang_map): Replace the pointer | ||
614 | lb_prop_default with NULL, since the value is never used. | ||
615 | |||
616 | 2008-03-03 Wu Yongwei <wuyongwei@gmail.com> | ||
617 | |||
618 | Accelerate get_char_lb_class for invalid Unicode code points. | ||
619 | * linebreak.c (get_char_lb_class): Adjust the conditionals so that | ||
620 | getting the line breaking class for an invalid code point is much | ||
621 | faster, which requires the array of line breaking properties be | ||
622 | sorted. | ||
623 | * linebreakdef.h: Adjust a comment that the array of line break | ||
624 | properties must be sorted. | ||
625 | |||
626 | 2008-03-02 Wu Yongwei <wuyongwei@gmail.com> | ||
627 | |||
628 | Change the values of enum BreakAction to more complete forms. | ||
629 | * linebreak.c (INDRCT_BRK): Rename to INDIRECT_BRK. | ||
630 | (CM_INDRCT_BRK): Rename to CM_INDIRECT_BRK. | ||
631 | (CM_PROHIBTD_BRK): Rename to CM_PROHIBITED_BRK. | ||
632 | (PROHIBTD_BRK): Rename to PROHIBITED_BRK. | ||
633 | |||
634 | 2008-03-02 Wu Yongwei <wuyongwei@gmail.com> | ||
635 | |||
636 | Implement a two-stage search in get_char_lb_class_default to | ||
637 | accelerate the overall performance, especially for non-Latin | ||
638 | languages. | ||
639 | * linebreak.c (LINEBREAK_INDEX_SIZE): New constant macro. | ||
640 | (struct LineBreakPropertiesIndex): New struct. | ||
641 | (lb_prop_index): New static variable. | ||
642 | (init_linebreak_prop_index): New function. | ||
643 | (get_char_lb_class_default): New function. | ||
644 | (get_char_lb_class_lang): Use get_char_lb_class_default. | ||
645 | * linebreak.h: Detect C++ and add extern "C" guard if necessary. | ||
646 | (init_linebreak_prop_index): Add the prototype declaration. | ||
647 | * linebreakdef.h: Adjust a comment. | ||
648 | |||
649 | 2008-03-02 Wu Yongwei <wuyongwei@gmail.com> | ||
650 | |||
651 | Split/refactor the code; add (doc) comments. | ||
652 | * Makefile (CFILES): Add linebreakdata.c and linebreakdef.c. | ||
653 | * linebreak.c: Add and adjust comments. | ||
654 | (linebreakdef.h): Add include file. | ||
655 | (linebreakdata.c): Remove include file. | ||
656 | (EOS): Remove (now in linebreakdef.h). | ||
657 | (enum LineBreakClass): Ditto. | ||
658 | (struct LineBreakProperties): Ditto. | ||
659 | (lbpEnglish): Remove (now in linebreakdef.c as lb_prop_English). | ||
660 | (lbpGerman): Remove (now in linebreakdef.c as lb_prop_German). | ||
661 | (lbpSpanish): Remove (now in linebreakdef.c as lb_prop_Spanish). | ||
662 | (lbpFrench): Remove (now in linebreakdef.c as lb_prop_French). | ||
663 | (lbpRussian): Remove (now in linebreakdef.c as lb_prop_Russian). | ||
664 | (lbpChinese): Remove (now in linebreakdef.c as lb_prop_Chinese). | ||
665 | (struct LineBreakPropertiesLang): Remove (now in linebreakdef.h). | ||
666 | (lbpLangs): Remove (now in linebreakdef.c as lb_prop_lang_map). | ||
667 | (get_next_char_utf16): Make sure memory access not go beyond len. | ||
668 | * linebreak.h: Add copyright information and adjust comments. | ||
669 | (stddef.h): Add include file. | ||
670 | * linebreakdata.c (linebreak.h): Add include file. | ||
671 | (linebreakdef.h): Add include file. | ||
672 | (lbpDefault): Make global and rename to lb_prop_default. | ||
673 | * linebreakdata2.tmpl: Add two include files, a comment line, and | ||
674 | remove `static'. | ||
675 | * linebreakdef.c: New file. | ||
676 | * linebreakdef.h: New file. | ||
677 | |||
678 | 2008-02-26 Wu Yongwei <wuyongwei@gmail.com> | ||
679 | |||
680 | * linebreak.c (lbpSpanish): New array for Spanish-specific data. | ||
681 | (lbpLangs): Update the index array for Spanish. | ||
682 | (resolve_lb_class): Resolve AmbIguous class to IDeographic in | ||
683 | Chinese, Japanese, and Korean. | ||
684 | |||
685 | 2008-02-26 Wu Yongwei <wuyongwei@gmail.com> | ||
686 | |||
687 | * Makefile (LineBreak.txt): Add new rule to retrieve it from the Web | ||
688 | if it is not already there. | ||
689 | |||
690 | 2008-02-23 Wu Yongwei <wuyongwei@gmail.com> | ||
691 | |||
692 | Add files for linebreak. | ||
693 | * LineBreak1.sed: New file. | ||
694 | * LineBreak2.sed: New file. | ||
695 | * Makefile: New file. | ||
696 | * filter_dup.c: New file. | ||
697 | * linebreak.c: New file. | ||
698 | * linebreak.h: New file. | ||
699 | * linebreakdata.c: New file. | ||
700 | * linebreakdata1.tmpl: New file. | ||
701 | * linebreakdata2.tmpl: New file. | ||
702 | * linebreakdata3.tmpl: New file. | ||
diff --git a/src/static_libs/libunibreak/LICENCE b/src/static_libs/libunibreak/LICENCE deleted file mode 100644 index ceec155511..0000000000 --- a/src/static_libs/libunibreak/LICENCE +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | Copyright (C) 2008-2012 Wu Yongwei <wuyongwei at gmail dot com> | ||
2 | Copyright (C) 2012 Tom Hacohen <tom dot hacohen at samsung dot com> | ||
3 | |||
4 | This software is provided 'as-is', without any express or implied | ||
5 | warranty. In no event will the author be held liable for any damages | ||
6 | arising from the use of this software. | ||
7 | |||
8 | Permission is granted to anyone to use this software for any purpose, | ||
9 | including commercial applications, and to alter it and redistribute it | ||
10 | freely, subject to the following restrictions: | ||
11 | |||
12 | 1. The origin of this software must not be misrepresented; you must not | ||
13 | claim that you wrote the original software. If you use this software | ||
14 | in a product, an acknowledgement in the product documentation would | ||
15 | be appreciated but is not required. | ||
16 | 2. Altered source versions must be plainly marked as such, and must not | ||
17 | be misrepresented as being the original software. | ||
18 | 3. This notice may not be removed or altered from any source | ||
19 | distribution. | ||
diff --git a/src/static_libs/libunibreak/NEWS b/src/static_libs/libunibreak/NEWS deleted file mode 100644 index 3d3fcb809f..0000000000 --- a/src/static_libs/libunibreak/NEWS +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | New in libunibreak 1.1 | ||
2 | |||
3 | - Update the code and data to conform to Unicode 6.2.0 | ||
4 | - Update build files to support libtool 2.4 | ||
5 | - Adjust code structure | ||
6 | - Make a few bug fixes | ||
7 | |||
8 | New in libunibreak 1.0 | ||
9 | |||
10 | - Add word breaking support | ||
11 | - Change the library name to "libunibreak", while keeping maximum compatibility | ||
12 | - Add pkg-config support | ||
13 | |||
14 | New in liblinebreak 2.1 | ||
15 | |||
16 | - Update the data according to LineBreak-6.0.0.txt | ||
17 | - Fix the bug that an assertion in code can fail if U+FFFC is | ||
18 | encountered at the beginning of a line | ||
19 | |||
20 | New in liblinebreak 2.0 | ||
21 | |||
22 | - Update the algorithm and data according to UAX #14-24 and | ||
23 | LineBreak-5.2.0.txt | ||
24 | - Rename some functions to reduce namespace pollution | ||
25 | - Make Doxygen documentation better | ||
26 | |||
27 | New in liblinebreak 1.2 | ||
28 | |||
29 | - Fix the bug that an assertion in code can fail if an invalid UTF-8 or | ||
30 | UTF-16 sequence is encountered near the end of input | ||
31 | - Remove the specialization of right single quotation mark as closing | ||
32 | punctuation mark in English, French, and Spanish, because it can be | ||
33 | used as apostrophe | ||
34 | - Make Doxygen documentation better | ||
35 | |||
36 | New in liblinebreak 1.1 | ||
37 | |||
38 | - Make get_lb_prop_lang static and not an exported symbol | ||
39 | - Define is_line_breakable to alias to is_breakable | ||
40 | - Declare get_next_char_utf* will be changed to lb_get_next_char_utf* | ||
41 | - Move the declarations of get_next_char_utf* from linebreak.h to | ||
42 | linebreakdef.h | ||
43 | - Add the function documentation comments to the header files | ||
44 | |||
45 | New in liblinebreak 1.0 | ||
46 | |||
47 | - Update the line breaking data according to UAX #14-22 and | ||
48 | LineBreak-5.1.0.txt | ||
49 | - Add autoconfiscation support (./configure, make, make install) | ||
50 | - Add Makefile for MSVC | ||
51 | |||
52 | First public release (0.9.6, or 20080421) | ||
53 | |||
54 | - Implement line breaking algorithm according to UAX #14-19 | ||
55 | - Line breaking data is generated from LineBreak-5.0.0.txt | ||
56 | - Makefile only supports GCC | ||
diff --git a/src/static_libs/libunibreak/README b/src/static_libs/libunibreak/README deleted file mode 100644 index 52cd7388b5..0000000000 --- a/src/static_libs/libunibreak/README +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | LIBUNIBREAK | ||
2 | =========== | ||
3 | |||
4 | Overview | ||
5 | -------- | ||
6 | |||
7 | This is the README file for libunibreak, an implementation of the line | ||
8 | breaking and word breaking algorithms as described in [Unicode Standard | ||
9 | Annex 14] [1] and [Unicode Standard Annex 29] [2]. Check the project's | ||
10 | [home page] [3] for up-to-date information. | ||
11 | |||
12 | [1]: http://www.unicode.org/reports/tr14/tr14-30.html | ||
13 | [2]: http://www.unicode.org/reports/tr29/tr29-21.html | ||
14 | [3]: https://github.com/adah1972/libunibreak | ||
15 | |||
16 | |||
17 | Licence | ||
18 | ------- | ||
19 | |||
20 | This library is released under an open-source licence, the zlib/libpng | ||
21 | licence. Please check the file *LICENCE* for details. | ||
22 | |||
23 | Apart from using the algorithm, part of the code is derived from the | ||
24 | [Unicode Public Data] [4], and the [Unicode Terms of Use] [5] may apply. | ||
25 | |||
26 | [4]: http://www.unicode.org/Public/ | ||
27 | [5]: http://www.unicode.org/copyright.html | ||
28 | |||
29 | |||
30 | Installation | ||
31 | ------------ | ||
32 | |||
33 | There are three ways to build the library: | ||
34 | |||
35 | 1. On \*NIX systems supported by the autoconfiscation tools, do the | ||
36 | normal | ||
37 | |||
38 | ./configure | ||
39 | make | ||
40 | sudo make install | ||
41 | |||
42 | to build and install both the dynamic and static libraries. In | ||
43 | addition, one may | ||
44 | - type `make doc` to generate the doxygen documentation; or | ||
45 | - type `make linebreakdata` to regenerate *linebreakdata.c* from | ||
46 | *LineBreak.txt*. | ||
47 | - type `make wordbreakdata` to regenerate *wordbreakdata.c* from | ||
48 | *WordBreakProperty.txt*. | ||
49 | |||
50 | 2. On systems where GCC and Binutils are supported, one can type | ||
51 | |||
52 | cd src | ||
53 | cp -p Makefile.gcc Makefile | ||
54 | make | ||
55 | |||
56 | to build the static library. In addition, one may | ||
57 | - type `make debug` or `make release` to explicitly generate the | ||
58 | debug or release build; | ||
59 | - type `make doc` to generate the doxygen documentation; or | ||
60 | - type `make linebreakdata` to regenerate *linebreakdata.c* from | ||
61 | *LineBreak.txt*. | ||
62 | - type `make wordbreakdata` to regenerate *wordbreakdata.c* from | ||
63 | *WordBreakProperty.txt*. | ||
64 | |||
65 | 3. On Windows, apart from using method 1 (Cygwin/MSYS) and method 2 | ||
66 | (MinGW), MSVC can also be used. Type | ||
67 | |||
68 | cd src | ||
69 | nmake -f Makefile.msvc | ||
70 | |||
71 | to build the static library. By default the debug release is built. | ||
72 | To build the release version | ||
73 | |||
74 | nmake -f Makefile.msvc CFG="libunibreak - Win32 Release" | ||
75 | |||
76 | |||
77 | Documentation | ||
78 | ------------- | ||
79 | |||
80 | Check the generated document *doc/html/linebreak\_8h.html* and | ||
81 | *doc/html/wordbreak\_8h.html* in the downloaded file for the public | ||
82 | interfaces exposed to applications. | ||
83 | |||
84 | |||
85 | <!-- | ||
86 | vim:autoindent:expandtab:formatoptions=tcqlmn:textwidth=72: | ||
87 | --> | ||
diff --git a/src/static_libs/libunibreak/linebreak.c b/src/static_libs/libunibreak/linebreak.c deleted file mode 100644 index 9716df4860..0000000000 --- a/src/static_libs/libunibreak/linebreak.c +++ /dev/null | |||
@@ -1,879 +0,0 @@ | |||
1 | /* vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: */ | ||
2 | |||
3 | /* | ||
4 | * Line breaking in a Unicode sequence. Designed to be used in a | ||
5 | * generic text renderer. | ||
6 | * | ||
7 | * Copyright (C) 2008-2013 Wu Yongwei <wuyongwei at gmail dot com> | ||
8 | * Copyright (C) 2013 Petr Filipsky <philodej at gmail dot com> | ||
9 | * | ||
10 | * This software is provided 'as-is', without any express or implied | ||
11 | * warranty. In no event will the author be held liable for any damages | ||
12 | * arising from the use of this software. | ||
13 | * | ||
14 | * Permission is granted to anyone to use this software for any purpose, | ||
15 | * including commercial applications, and to alter it and redistribute | ||
16 | * it freely, subject to the following restrictions: | ||
17 | * | ||
18 | * 1. The origin of this software must not be misrepresented; you must | ||
19 | * not claim that you wrote the original software. If you use this | ||
20 | * software in a product, an acknowledgement in the product | ||
21 | * documentation would be appreciated but is not required. | ||
22 | * 2. Altered source versions must be plainly marked as such, and must | ||
23 | * not be misrepresented as being the original software. | ||
24 | * 3. This notice may not be removed or altered from any source | ||
25 | * distribution. | ||
26 | * | ||
27 | * The main reference is Unicode Standard Annex 14 (UAX #14): | ||
28 | * <URL:http://www.unicode.org/reports/tr14/> | ||
29 | * | ||
30 | * When this library was designed, this annex was at Revision 19, for | ||
31 | * Unicode 5.0.0: | ||
32 | * <URL:http://www.unicode.org/reports/tr14/tr14-19.html> | ||
33 | * | ||
34 | * This library has been updated according to Revision 30, for | ||
35 | * Unicode 6.2.0: | ||
36 | * <URL:http://www.unicode.org/reports/tr14/tr14-30.html> | ||
37 | * | ||
38 | * The Unicode Terms of Use are available at | ||
39 | * <URL:http://www.unicode.org/copyright.html> | ||
40 | */ | ||
41 | |||
42 | /** | ||
43 | * @file linebreak.c | ||
44 | * | ||
45 | * Implementation of the line breaking algorithm as described in Unicode | ||
46 | * Standard Annex 14. | ||
47 | * | ||
48 | * @version 2.5, 2013/11/14 | ||
49 | * @author Wu Yongwei | ||
50 | * @author Petr Filipsky | ||
51 | */ | ||
52 | |||
53 | #include <assert.h> | ||
54 | #include <stddef.h> | ||
55 | #include <string.h> | ||
56 | #include "linebreak.h" | ||
57 | #include "linebreakdef.h" | ||
58 | |||
59 | /** | ||
60 | * Special value used internally to indicate an undefined break result. | ||
61 | */ | ||
62 | #define LINEBREAK_UNDEFINED -1 | ||
63 | |||
64 | /** | ||
65 | * Size of the second-level index to the line breaking properties. | ||
66 | */ | ||
67 | #define LINEBREAK_INDEX_SIZE 40 | ||
68 | |||
69 | /** | ||
70 | * Version number of the library. | ||
71 | */ | ||
72 | const int linebreak_version = LINEBREAK_VERSION; | ||
73 | |||
74 | /** | ||
75 | * Enumeration of break actions. They are used in the break action | ||
76 | * pair table below. | ||
77 | */ | ||
78 | enum BreakAction | ||
79 | { | ||
80 | DIR_BRK, /**< Direct break opportunity */ | ||
81 | IND_BRK, /**< Indirect break opportunity */ | ||
82 | CMI_BRK, /**< Indirect break opportunity for combining marks */ | ||
83 | CMP_BRK, /**< Prohibited break for combining marks */ | ||
84 | PRH_BRK /**< Prohibited break */ | ||
85 | }; | ||
86 | |||
87 | /** | ||
88 | * Break action pair table. This is a direct mapping of Table 2 of | ||
89 | * Unicode Standard Annex 14, Revision 30. | ||
90 | */ | ||
91 | static enum BreakAction baTable[LBP_RI][LBP_RI] = { | ||
92 | { /* OP */ | ||
93 | PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, | ||
94 | PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, | ||
95 | PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, | ||
96 | CMP_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, PRH_BRK, | ||
97 | PRH_BRK }, | ||
98 | { /* CL */ | ||
99 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, PRH_BRK, PRH_BRK, | ||
100 | PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
101 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
102 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
103 | DIR_BRK }, | ||
104 | { /* CP */ | ||
105 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, PRH_BRK, PRH_BRK, | ||
106 | PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
107 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
108 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
109 | DIR_BRK }, | ||
110 | { /* QU */ | ||
111 | PRH_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
112 | PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
113 | IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
114 | CMI_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
115 | IND_BRK }, | ||
116 | { /* GL */ | ||
117 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
118 | PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
119 | IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
120 | CMI_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
121 | IND_BRK }, | ||
122 | { /* NS */ | ||
123 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
124 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
125 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
126 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
127 | DIR_BRK }, | ||
128 | { /* EX */ | ||
129 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
130 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
131 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
132 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
133 | DIR_BRK }, | ||
134 | { /* SY */ | ||
135 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
136 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, | ||
137 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
138 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
139 | DIR_BRK }, | ||
140 | { /* IS */ | ||
141 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
142 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
143 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
144 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
145 | DIR_BRK }, | ||
146 | { /* PR */ | ||
147 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
148 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
149 | IND_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
150 | CMI_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
151 | DIR_BRK }, | ||
152 | { /* PO */ | ||
153 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
154 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
155 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
156 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
157 | DIR_BRK }, | ||
158 | { /* NU */ | ||
159 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
160 | PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
161 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
162 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
163 | DIR_BRK }, | ||
164 | { /* AL */ | ||
165 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
166 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
167 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
168 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
169 | DIR_BRK }, | ||
170 | { /* HL */ | ||
171 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
172 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
173 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
174 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
175 | DIR_BRK }, | ||
176 | { /* ID */ | ||
177 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
178 | PRH_BRK, PRH_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
179 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
180 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
181 | DIR_BRK }, | ||
182 | { /* IN */ | ||
183 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
184 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
185 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
186 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
187 | DIR_BRK }, | ||
188 | { /* HY */ | ||
189 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, DIR_BRK, IND_BRK, PRH_BRK, | ||
190 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, | ||
191 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
192 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
193 | DIR_BRK }, | ||
194 | { /* BA */ | ||
195 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, DIR_BRK, IND_BRK, PRH_BRK, | ||
196 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
197 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
198 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
199 | DIR_BRK }, | ||
200 | { /* BB */ | ||
201 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
202 | PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
203 | IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
204 | CMI_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
205 | IND_BRK }, | ||
206 | { /* B2 */ | ||
207 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
208 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
209 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, PRH_BRK, PRH_BRK, | ||
210 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
211 | DIR_BRK }, | ||
212 | { /* ZW */ | ||
213 | DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
214 | DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
215 | DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
216 | DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
217 | DIR_BRK }, | ||
218 | { /* CM */ | ||
219 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
220 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
221 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
222 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
223 | DIR_BRK }, | ||
224 | { /* WJ */ | ||
225 | IND_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
226 | PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
227 | IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
228 | CMI_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, | ||
229 | IND_BRK }, | ||
230 | { /* H2 */ | ||
231 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
232 | PRH_BRK, PRH_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
233 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
234 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, | ||
235 | DIR_BRK }, | ||
236 | { /* H3 */ | ||
237 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
238 | PRH_BRK, PRH_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
239 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
240 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, IND_BRK, | ||
241 | DIR_BRK }, | ||
242 | { /* JL */ | ||
243 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
244 | PRH_BRK, PRH_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
245 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
246 | CMI_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, | ||
247 | DIR_BRK }, | ||
248 | { /* JV */ | ||
249 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
250 | PRH_BRK, PRH_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
251 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
252 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, | ||
253 | DIR_BRK }, | ||
254 | { /* JT */ | ||
255 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
256 | PRH_BRK, PRH_BRK, DIR_BRK, IND_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
257 | DIR_BRK, IND_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
258 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, IND_BRK, | ||
259 | DIR_BRK }, | ||
260 | { /* RI */ | ||
261 | DIR_BRK, PRH_BRK, PRH_BRK, IND_BRK, IND_BRK, IND_BRK, PRH_BRK, | ||
262 | PRH_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
263 | DIR_BRK, DIR_BRK, IND_BRK, IND_BRK, DIR_BRK, DIR_BRK, PRH_BRK, | ||
264 | CMI_BRK, PRH_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, DIR_BRK, | ||
265 | IND_BRK }, | ||
266 | }; | ||
267 | |||
268 | /** | ||
269 | * Struct for the second-level index to the line breaking properties. | ||
270 | */ | ||
271 | struct LineBreakPropertiesIndex | ||
272 | { | ||
273 | utf32_t end; /**< End coding point */ | ||
274 | struct LineBreakProperties *lbp;/**< Pointer to line breaking properties */ | ||
275 | }; | ||
276 | |||
277 | /** | ||
278 | * Second-level index to the line breaking properties. | ||
279 | */ | ||
280 | static struct LineBreakPropertiesIndex lb_prop_index[LINEBREAK_INDEX_SIZE] = | ||
281 | { | ||
282 | { 0xFFFFFFFF, lb_prop_default } | ||
283 | }; | ||
284 | |||
285 | /** | ||
286 | * Initializes the second-level index to the line breaking properties. | ||
287 | * If it is not called, the performance of #get_char_lb_class_lang (and | ||
288 | * thus the main functionality) can be pretty bad, especially for big | ||
289 | * code points like those of Chinese. | ||
290 | */ | ||
291 | void init_linebreak(void) | ||
292 | { | ||
293 | size_t i; | ||
294 | size_t iPropDefault; | ||
295 | size_t len; | ||
296 | size_t step; | ||
297 | |||
298 | len = 0; | ||
299 | while (lb_prop_default[len].prop != LBP_Undefined) | ||
300 | ++len; | ||
301 | step = len / LINEBREAK_INDEX_SIZE; | ||
302 | iPropDefault = 0; | ||
303 | for (i = 0; i < LINEBREAK_INDEX_SIZE; ++i) | ||
304 | { | ||
305 | lb_prop_index[i].lbp = lb_prop_default + iPropDefault; | ||
306 | iPropDefault += step; | ||
307 | lb_prop_index[i].end = lb_prop_default[iPropDefault].start - 1; | ||
308 | } | ||
309 | lb_prop_index[--i].end = 0xFFFFFFFF; | ||
310 | } | ||
311 | |||
312 | /** | ||
313 | * Gets the language-specific line breaking properties. | ||
314 | * | ||
315 | * @param lang language of the text | ||
316 | * @return pointer to the language-specific line breaking | ||
317 | * properties array if found; \c NULL otherwise | ||
318 | */ | ||
319 | static struct LineBreakProperties *get_lb_prop_lang(const char *lang) | ||
320 | { | ||
321 | struct LineBreakPropertiesLang *lbplIter; | ||
322 | if (lang != NULL) | ||
323 | { | ||
324 | for (lbplIter = lb_prop_lang_map; lbplIter->lang != NULL; ++lbplIter) | ||
325 | { | ||
326 | if (strncmp(lang, lbplIter->lang, lbplIter->namelen) == 0) | ||
327 | { | ||
328 | return lbplIter->lbp; | ||
329 | } | ||
330 | } | ||
331 | } | ||
332 | return NULL; | ||
333 | } | ||
334 | |||
335 | /** | ||
336 | * Gets the line breaking class of a character from a line breaking | ||
337 | * properties array. | ||
338 | * | ||
339 | * @param ch character to check | ||
340 | * @param lbp pointer to the line breaking properties array | ||
341 | * @return the line breaking class if found; \c LBP_XX otherwise | ||
342 | */ | ||
343 | static enum LineBreakClass get_char_lb_class( | ||
344 | utf32_t ch, | ||
345 | struct LineBreakProperties *lbp) | ||
346 | { | ||
347 | while (lbp->prop != LBP_Undefined && ch >= lbp->start) | ||
348 | { | ||
349 | if (ch <= lbp->end) | ||
350 | return lbp->prop; | ||
351 | ++lbp; | ||
352 | } | ||
353 | return LBP_XX; | ||
354 | } | ||
355 | |||
356 | /** | ||
357 | * Gets the line breaking class of a character from the default line | ||
358 | * breaking properties array. | ||
359 | * | ||
360 | * @param ch character to check | ||
361 | * @return the line breaking class if found; \c LBP_XX otherwise | ||
362 | */ | ||
363 | static enum LineBreakClass get_char_lb_class_default( | ||
364 | utf32_t ch) | ||
365 | { | ||
366 | size_t i = 0; | ||
367 | while (ch > lb_prop_index[i].end) | ||
368 | ++i; | ||
369 | assert(i < LINEBREAK_INDEX_SIZE); | ||
370 | return get_char_lb_class(ch, lb_prop_index[i].lbp); | ||
371 | } | ||
372 | |||
373 | /** | ||
374 | * Gets the line breaking class of a character for a specific | ||
375 | * language. This function will check the language-specific data first, | ||
376 | * and then the default data if there is no language-specific property | ||
377 | * available for the character. | ||
378 | * | ||
379 | * @param ch character to check | ||
380 | * @param lbpLang pointer to the language-specific line breaking | ||
381 | * properties array | ||
382 | * @return the line breaking class if found; \c LBP_XX | ||
383 | * otherwise | ||
384 | */ | ||
385 | static enum LineBreakClass get_char_lb_class_lang( | ||
386 | utf32_t ch, | ||
387 | struct LineBreakProperties *lbpLang) | ||
388 | { | ||
389 | enum LineBreakClass lbcResult; | ||
390 | |||
391 | /* Find the language-specific line breaking class for a character */ | ||
392 | if (lbpLang) | ||
393 | { | ||
394 | lbcResult = get_char_lb_class(ch, lbpLang); | ||
395 | if (lbcResult != LBP_XX) | ||
396 | return lbcResult; | ||
397 | } | ||
398 | |||
399 | /* Find the generic language-specific line breaking class, if no | ||
400 | * language context is provided, or language-specific data are not | ||
401 | * available for the specific character in the specified language */ | ||
402 | return get_char_lb_class_default(ch); | ||
403 | } | ||
404 | |||
405 | /** | ||
406 | * Resolves the line breaking class for certain ambiguous or complicated | ||
407 | * characters. They are treated in a simplistic way in this | ||
408 | * implementation. | ||
409 | * | ||
410 | * @param lbc line breaking class to resolve | ||
411 | * @param lang language of the text | ||
412 | * @return the resolved line breaking class | ||
413 | */ | ||
414 | static enum LineBreakClass resolve_lb_class( | ||
415 | enum LineBreakClass lbc, | ||
416 | const char *lang) | ||
417 | { | ||
418 | switch (lbc) | ||
419 | { | ||
420 | case LBP_AI: | ||
421 | if (lang != NULL && | ||
422 | (strncmp(lang, "zh", 2) == 0 || /* Chinese */ | ||
423 | strncmp(lang, "ja", 2) == 0 || /* Japanese */ | ||
424 | strncmp(lang, "ko", 2) == 0)) /* Korean */ | ||
425 | { | ||
426 | return LBP_ID; | ||
427 | } | ||
428 | else | ||
429 | { | ||
430 | return LBP_AL; | ||
431 | } | ||
432 | case LBP_CJ: | ||
433 | /* Simplified for `normal' line breaking. See | ||
434 | * <url:http://www.unicode.org/reports/tr14/tr14-30.html#CJ> | ||
435 | * for details. */ | ||
436 | return LBP_ID; | ||
437 | case LBP_SA: | ||
438 | case LBP_SG: | ||
439 | case LBP_XX: | ||
440 | return LBP_AL; | ||
441 | default: | ||
442 | return lbc; | ||
443 | } | ||
444 | } | ||
445 | |||
446 | /** | ||
447 | * Treats specially for the first character in a line. | ||
448 | * | ||
449 | * @param[in,out] lbpCtx pointer to the line breaking context | ||
450 | * @pre \a lbpCtx->lbcCur has a valid line break class | ||
451 | * @post \a lbpCtx->lbcCur has the updated line break class | ||
452 | */ | ||
453 | static void treat_first_char( | ||
454 | struct LineBreakContext* lbpCtx) | ||
455 | { | ||
456 | switch (lbpCtx->lbcCur) | ||
457 | { | ||
458 | case LBP_LF: | ||
459 | case LBP_NL: | ||
460 | lbpCtx->lbcCur = LBP_BK; /* Rule LB5 */ | ||
461 | break; | ||
462 | case LBP_CB: | ||
463 | lbpCtx->lbcCur = LBP_BA; /* Rule LB20 */ | ||
464 | break; | ||
465 | case LBP_SP: | ||
466 | lbpCtx->lbcCur = LBP_WJ; /* Leading space treated as WJ */ | ||
467 | break; | ||
468 | default: | ||
469 | break; | ||
470 | } | ||
471 | } | ||
472 | |||
473 | /** | ||
474 | * Tries telling the line break opportunity by simple rules. | ||
475 | * | ||
476 | * @param[in,out] lbpCtx pointer to the line breaking context | ||
477 | * @pre \a lbpCtx->lbcCur has the current line break | ||
478 | * class; and \a lbpCtx->lbcNew has the line | ||
479 | * break class for the next character | ||
480 | * @post \a lbpCtx->lbcCur has the updated line break | ||
481 | * class | ||
482 | * @return break result, one of #LINEBREAK_MUSTBREAK, | ||
483 | * #LINEBREAK_ALLOWBREAK, and #LINEBREAK_NOBREAK | ||
484 | * if identified; or #LINEBREAK_UNDEFINED if | ||
485 | * table lookup is needed | ||
486 | */ | ||
487 | static int get_lb_result_simple( | ||
488 | struct LineBreakContext* lbpCtx) | ||
489 | { | ||
490 | if (lbpCtx->lbcCur == LBP_BK | ||
491 | || (lbpCtx->lbcCur == LBP_CR && lbpCtx->lbcNew != LBP_LF)) | ||
492 | { | ||
493 | return LINEBREAK_MUSTBREAK; /* Rules LB4 and LB5 */ | ||
494 | } | ||
495 | |||
496 | switch (lbpCtx->lbcNew) | ||
497 | { | ||
498 | case LBP_SP: | ||
499 | return LINEBREAK_NOBREAK; /* Rule LB7; no change to lbcCur */ | ||
500 | case LBP_BK: | ||
501 | case LBP_LF: | ||
502 | case LBP_NL: | ||
503 | lbpCtx->lbcCur = LBP_BK; /* Mandatory break after */ | ||
504 | return LINEBREAK_NOBREAK; /* Rule LB6 */ | ||
505 | case LBP_CR: | ||
506 | lbpCtx->lbcCur = LBP_CR; | ||
507 | return LINEBREAK_NOBREAK; /* Rule LB6 */ | ||
508 | case LBP_CB: | ||
509 | lbpCtx->lbcCur = LBP_BA; | ||
510 | return LINEBREAK_ALLOWBREAK; /* Rule LB20 */ | ||
511 | default: | ||
512 | return LINEBREAK_UNDEFINED; /* Table lookup is needed */ | ||
513 | } | ||
514 | } | ||
515 | |||
516 | /** | ||
517 | * Tells the line break opportunity by table lookup. | ||
518 | * | ||
519 | * @param[in,out] lbpCtx pointer to the line breaking context | ||
520 | * @pre \a lbpCtx->lbcCur has the current line break | ||
521 | * class; \a lbpCtx->lbcLast has the line break | ||
522 | * class for the last character; and \a | ||
523 | * lbcCur->lbcNew has the line break class for | ||
524 | * the next character | ||
525 | * @post \a lbpCtx->lbcCur has the updated line break | ||
526 | * class | ||
527 | * @return break result, one of #LINEBREAK_MUSTBREAK, | ||
528 | * #LINEBREAK_ALLOWBREAK, and #LINEBREAK_NOBREAK | ||
529 | */ | ||
530 | static int get_lb_result_lookup( | ||
531 | struct LineBreakContext* lbpCtx) | ||
532 | { | ||
533 | /* TODO: Rule LB21a, as introduced by Revision 28 of UAX#14, is not | ||
534 | * yet implemented below. */ | ||
535 | int brk = LINEBREAK_UNDEFINED; | ||
536 | assert(lbpCtx->lbcCur <= LBP_JT); | ||
537 | assert(lbpCtx->lbcNew <= LBP_JT); | ||
538 | switch (baTable[lbpCtx->lbcCur - 1][lbpCtx->lbcNew - 1]) | ||
539 | { | ||
540 | case DIR_BRK: | ||
541 | brk = LINEBREAK_ALLOWBREAK; | ||
542 | break; | ||
543 | case CMI_BRK: | ||
544 | case IND_BRK: | ||
545 | brk = (lbpCtx->lbcLast == LBP_SP) | ||
546 | ? LINEBREAK_ALLOWBREAK | ||
547 | : LINEBREAK_NOBREAK; | ||
548 | break; | ||
549 | case CMP_BRK: | ||
550 | brk = LINEBREAK_NOBREAK; | ||
551 | if (lbpCtx->lbcLast != LBP_SP) | ||
552 | return brk; /* Do not update lbcCur */ | ||
553 | break; | ||
554 | case PRH_BRK: | ||
555 | brk = LINEBREAK_NOBREAK; | ||
556 | break; | ||
557 | } | ||
558 | lbpCtx->lbcCur = lbpCtx->lbcNew; | ||
559 | return brk; | ||
560 | } | ||
561 | |||
562 | /** | ||
563 | * Initializes line breaking context for a given language. | ||
564 | * | ||
565 | * @param[in,out] lbpCtx pointer to the line breaking context | ||
566 | * @param[in] ch the first character to process | ||
567 | * @param[in] lang language of the input | ||
568 | * @post the line breaking context is initialized | ||
569 | */ | ||
570 | void lb_init_break_context( | ||
571 | struct LineBreakContext* lbpCtx, | ||
572 | utf32_t ch, | ||
573 | const char* lang) | ||
574 | { | ||
575 | lbpCtx->lang = lang; | ||
576 | lbpCtx->lbpLang = get_lb_prop_lang(lang); | ||
577 | lbpCtx->lbcLast = LBP_Undefined; | ||
578 | lbpCtx->lbcNew = LBP_Undefined; | ||
579 | lbpCtx->lbcCur = resolve_lb_class( | ||
580 | get_char_lb_class_lang(ch, lbpCtx->lbpLang), | ||
581 | lbpCtx->lang); | ||
582 | treat_first_char(lbpCtx); | ||
583 | } | ||
584 | |||
585 | /** | ||
586 | * Updates LineBreakingContext for the next code point and returns | ||
587 | * the detected break. | ||
588 | * | ||
589 | * @param[in,out] lbpCtx pointer to the line breaking context | ||
590 | * @param[in] ch Unicode code point | ||
591 | * @return break result, one of #LINEBREAK_MUSTBREAK, | ||
592 | * #LINEBREAK_ALLOWBREAK, and #LINEBREAK_NOBREAK | ||
593 | * @post the line breaking context is updated | ||
594 | */ | ||
595 | int lb_process_next_char( | ||
596 | struct LineBreakContext* lbpCtx, | ||
597 | utf32_t ch ) | ||
598 | { | ||
599 | int brk; | ||
600 | |||
601 | lbpCtx->lbcLast = lbpCtx->lbcNew; | ||
602 | lbpCtx->lbcNew = get_char_lb_class_lang(ch, lbpCtx->lbpLang); | ||
603 | brk = get_lb_result_simple(lbpCtx); | ||
604 | switch (brk) | ||
605 | { | ||
606 | case LINEBREAK_MUSTBREAK: | ||
607 | lbpCtx->lbcCur = resolve_lb_class(lbpCtx->lbcNew, lbpCtx->lang); | ||
608 | treat_first_char(lbpCtx); | ||
609 | break; | ||
610 | case LINEBREAK_UNDEFINED: | ||
611 | lbpCtx->lbcNew = resolve_lb_class(lbpCtx->lbcNew, lbpCtx->lang); | ||
612 | brk = get_lb_result_lookup(lbpCtx); | ||
613 | break; | ||
614 | default: | ||
615 | break; | ||
616 | } | ||
617 | return brk; | ||
618 | } | ||
619 | |||
620 | /** | ||
621 | * Gets the next Unicode character in a UTF-8 sequence. The index will | ||
622 | * be advanced to the next complete character, unless the end of string | ||
623 | * is reached in the middle of a UTF-8 sequence. | ||
624 | * | ||
625 | * @param[in] s input UTF-8 string | ||
626 | * @param[in] len length of the string in bytes | ||
627 | * @param[in,out] ip pointer to the index | ||
628 | * @return the Unicode character beginning at the index; or | ||
629 | * #EOS if end of input is encountered | ||
630 | */ | ||
631 | utf32_t lb_get_next_char_utf8( | ||
632 | const utf8_t *s, | ||
633 | size_t len, | ||
634 | size_t *ip) | ||
635 | { | ||
636 | utf8_t ch; | ||
637 | utf32_t res; | ||
638 | |||
639 | assert(*ip <= len); | ||
640 | if (*ip == len) | ||
641 | return EOS; | ||
642 | ch = s[*ip]; | ||
643 | |||
644 | if (ch < 0xC2 || ch > 0xF4) | ||
645 | { /* One-byte sequence, tail (should not occur), or invalid */ | ||
646 | *ip += 1; | ||
647 | return ch; | ||
648 | } | ||
649 | else if (ch < 0xE0) | ||
650 | { /* Two-byte sequence */ | ||
651 | if (*ip + 2 > len) | ||
652 | return EOS; | ||
653 | res = ((ch & 0x1F) << 6) + (s[*ip + 1] & 0x3F); | ||
654 | *ip += 2; | ||
655 | return res; | ||
656 | } | ||
657 | else if (ch < 0xF0) | ||
658 | { /* Three-byte sequence */ | ||
659 | if (*ip + 3 > len) | ||
660 | return EOS; | ||
661 | res = ((ch & 0x0F) << 12) + | ||
662 | ((s[*ip + 1] & 0x3F) << 6) + | ||
663 | ((s[*ip + 2] & 0x3F)); | ||
664 | *ip += 3; | ||
665 | return res; | ||
666 | } | ||
667 | else | ||
668 | { /* Four-byte sequence */ | ||
669 | if (*ip + 4 > len) | ||
670 | return EOS; | ||
671 | res = ((ch & 0x07) << 18) + | ||
672 | ((s[*ip + 1] & 0x3F) << 12) + | ||
673 | ((s[*ip + 2] & 0x3F) << 6) + | ||
674 | ((s[*ip + 3] & 0x3F)); | ||
675 | *ip += 4; | ||
676 | return res; | ||
677 | } | ||
678 | } | ||
679 | |||
680 | /** | ||
681 | * Gets the next Unicode character in a UTF-16 sequence. The index will | ||
682 | * be advanced to the next complete character, unless the end of string | ||
683 | * is reached in the middle of a UTF-16 surrogate pair. | ||
684 | * | ||
685 | * @param[in] s input UTF-16 string | ||
686 | * @param[in] len length of the string in words | ||
687 | * @param[in,out] ip pointer to the index | ||
688 | * @return the Unicode character beginning at the index; or | ||
689 | * #EOS if end of input is encountered | ||
690 | */ | ||
691 | utf32_t lb_get_next_char_utf16( | ||
692 | const utf16_t *s, | ||
693 | size_t len, | ||
694 | size_t *ip) | ||
695 | { | ||
696 | utf16_t ch; | ||
697 | |||
698 | assert(*ip <= len); | ||
699 | if (*ip == len) | ||
700 | return EOS; | ||
701 | ch = s[(*ip)++]; | ||
702 | |||
703 | if (ch < 0xD800 || ch > 0xDBFF) | ||
704 | { /* If the character is not a high surrogate */ | ||
705 | return ch; | ||
706 | } | ||
707 | if (*ip == len) | ||
708 | { /* If the input ends here (an error) */ | ||
709 | --(*ip); | ||
710 | return EOS; | ||
711 | } | ||
712 | if (s[*ip] < 0xDC00 || s[*ip] > 0xDFFF) | ||
713 | { /* If the next character is not the low surrogate (an error) */ | ||
714 | return ch; | ||
715 | } | ||
716 | /* Return the constructed character and advance the index again */ | ||
717 | return (((utf32_t)ch & 0x3FF) << 10) + (s[(*ip)++] & 0x3FF) + 0x10000; | ||
718 | } | ||
719 | |||
720 | /** | ||
721 | * Gets the next Unicode character in a UTF-32 sequence. The index will | ||
722 | * be advanced to the next character. | ||
723 | * | ||
724 | * @param[in] s input UTF-32 string | ||
725 | * @param[in] len length of the string in dwords | ||
726 | * @param[in,out] ip pointer to the index | ||
727 | * @return the Unicode character beginning at the index; or | ||
728 | * #EOS if end of input is encountered | ||
729 | */ | ||
730 | utf32_t lb_get_next_char_utf32( | ||
731 | const utf32_t *s, | ||
732 | size_t len, | ||
733 | size_t *ip) | ||
734 | { | ||
735 | assert(*ip <= len); | ||
736 | if (*ip == len) | ||
737 | return EOS; | ||
738 | return s[(*ip)++]; | ||
739 | } | ||
740 | |||
741 | /** | ||
742 | * Sets the line breaking information for a generic input string. | ||
743 | * | ||
744 | * @param[in] s input string | ||
745 | * @param[in] len length of the input | ||
746 | * @param[in] lang language of the input | ||
747 | * @param[out] brks pointer to the output breaking data, | ||
748 | * containing #LINEBREAK_MUSTBREAK, | ||
749 | * #LINEBREAK_ALLOWBREAK, #LINEBREAK_NOBREAK, | ||
750 | * or #LINEBREAK_INSIDEACHAR | ||
751 | * @param[in] get_next_char function to get the next UTF-32 character | ||
752 | */ | ||
753 | void set_linebreaks( | ||
754 | const void *s, | ||
755 | size_t len, | ||
756 | const char *lang, | ||
757 | char *brks, | ||
758 | get_next_char_t get_next_char) | ||
759 | { | ||
760 | utf32_t ch; | ||
761 | struct LineBreakContext lbCtx; | ||
762 | size_t posCur = 0; | ||
763 | size_t posLast = 0; | ||
764 | |||
765 | --posLast; /* To be ++'d later */ | ||
766 | ch = get_next_char(s, len, &posCur); | ||
767 | if (ch == EOS) | ||
768 | return; | ||
769 | lb_init_break_context(&lbCtx, ch, lang); | ||
770 | |||
771 | /* Process a line till an explicit break or end of string */ | ||
772 | for (;;) | ||
773 | { | ||
774 | for (++posLast; posLast < posCur - 1; ++posLast) | ||
775 | { | ||
776 | brks[posLast] = LINEBREAK_INSIDEACHAR; | ||
777 | } | ||
778 | assert(posLast == posCur - 1); | ||
779 | ch = get_next_char(s, len, &posCur); | ||
780 | if (ch == EOS) | ||
781 | break; | ||
782 | brks[posLast] = lb_process_next_char(&lbCtx, ch); | ||
783 | } | ||
784 | |||
785 | assert(posLast == posCur - 1 && posCur <= len); | ||
786 | /* Break after the last character */ | ||
787 | brks[posLast] = LINEBREAK_MUSTBREAK; | ||
788 | /* When the input contains incomplete sequences */ | ||
789 | while (posCur < len) | ||
790 | { | ||
791 | brks[posCur++] = LINEBREAK_INSIDEACHAR; | ||
792 | } | ||
793 | } | ||
794 | |||
795 | /** | ||
796 | * Sets the line breaking information for a UTF-8 input string. | ||
797 | * | ||
798 | * @param[in] s input UTF-8 string | ||
799 | * @param[in] len length of the input | ||
800 | * @param[in] lang language of the input | ||
801 | * @param[out] brks pointer to the output breaking data, containing | ||
802 | * #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK, | ||
803 | * #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR | ||
804 | */ | ||
805 | void set_linebreaks_utf8( | ||
806 | const utf8_t *s, | ||
807 | size_t len, | ||
808 | const char *lang, | ||
809 | char *brks) | ||
810 | { | ||
811 | set_linebreaks(s, len, lang, brks, | ||
812 | (get_next_char_t)lb_get_next_char_utf8); | ||
813 | } | ||
814 | |||
815 | /** | ||
816 | * Sets the line breaking information for a UTF-16 input string. | ||
817 | * | ||
818 | * @param[in] s input UTF-16 string | ||
819 | * @param[in] len length of the input | ||
820 | * @param[in] lang language of the input | ||
821 | * @param[out] brks pointer to the output breaking data, containing | ||
822 | * #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK, | ||
823 | * #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR | ||
824 | */ | ||
825 | void set_linebreaks_utf16( | ||
826 | const utf16_t *s, | ||
827 | size_t len, | ||
828 | const char *lang, | ||
829 | char *brks) | ||
830 | { | ||
831 | set_linebreaks(s, len, lang, brks, | ||
832 | (get_next_char_t)lb_get_next_char_utf16); | ||
833 | } | ||
834 | |||
835 | /** | ||
836 | * Sets the line breaking information for a UTF-32 input string. | ||
837 | * | ||
838 | * @param[in] s input UTF-32 string | ||
839 | * @param[in] len length of the input | ||
840 | * @param[in] lang language of the input | ||
841 | * @param[out] brks pointer to the output breaking data, containing | ||
842 | * #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK, | ||
843 | * #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR | ||
844 | */ | ||
845 | void set_linebreaks_utf32( | ||
846 | const utf32_t *s, | ||
847 | size_t len, | ||
848 | const char *lang, | ||
849 | char *brks) | ||
850 | { | ||
851 | set_linebreaks(s, len, lang, brks, | ||
852 | (get_next_char_t)lb_get_next_char_utf32); | ||
853 | } | ||
854 | |||
855 | /** | ||
856 | * Tells whether a line break can occur between two Unicode characters. | ||
857 | * This is a wrapper function to expose a simple interface. Generally | ||
858 | * speaking, it is better to use #set_linebreaks_utf32 instead, since | ||
859 | * complicated cases involving combining marks, spaces, etc. cannot be | ||
860 | * correctly processed. | ||
861 | * | ||
862 | * @param char1 the first Unicode character | ||
863 | * @param char2 the second Unicode character | ||
864 | * @param lang language of the input | ||
865 | * @return one of #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK, | ||
866 | * #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR | ||
867 | */ | ||
868 | int is_line_breakable( | ||
869 | utf32_t char1, | ||
870 | utf32_t char2, | ||
871 | const char* lang) | ||
872 | { | ||
873 | utf32_t s[2]; | ||
874 | char brks[2]; | ||
875 | s[0] = char1; | ||
876 | s[1] = char2; | ||
877 | set_linebreaks_utf32(s, 2, lang, brks); | ||
878 | return brks[0]; | ||
879 | } | ||
diff --git a/src/static_libs/libunibreak/linebreak.h b/src/static_libs/libunibreak/linebreak.h deleted file mode 100644 index 94fbca0f9f..0000000000 --- a/src/static_libs/libunibreak/linebreak.h +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
1 | /* vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4: */ | ||
2 | |||
3 | /* | ||
4 | * Line breaking in a Unicode sequence. Designed to be used in a | ||
5 | * generic text renderer. | ||
6 | * | ||
7 | * Copyright (C) 2008-2012 Wu Yongwei <wuyongwei at gmail dot com> | ||
8 | * | ||
9 | * This software is provided 'as-is', without any express or implied | ||
10 | * warranty. In no event will the author be held liable for any damages | ||
11 | * arising from the use of this software. | ||
12 | * | ||
13 | * Permission is granted to anyone to use this software for any purpose, | ||
14 | * including commercial applications, and to alter it and redistribute | ||
15 | * it freely, subject to the following restrictions: | ||
16 | * | ||
17 | * 1. The origin of this software must not be misrepresented; you must | ||
18 | * not claim that you wrote the original software. If you use this | ||
19 | * software in a product, an acknowledgement in the product | ||
20 | * documentation would be appreciated but is not required. | ||
21 | * 2. Altered source versions must be plainly marked as such, and must | ||
22 | * not be misrepresented as being the original software. | ||
23 | * 3. This notice may not be removed or altered from any source | ||
24 | * distribution. | ||
25 | * | ||
26 | * The main reference is Unicode Standard Annex 14 (UAX #14): | ||
27 | * <URL:http://www.unicode.org/reports/tr14/> | ||
28 | * | ||
29 | * When this library was designed, this annex was at Revision 19, for | ||
30 | * Unicode 5.0.0: | ||
31 | * <URL:http://www.unicode.org/reports/tr14/tr14-19.html> | ||
32 | * | ||
33 | * This library has been updated according to Revision 30, for | ||
34 | * Unicode 6.2.0: | ||
35 | * <URL:http://www.unicode.org/reports/tr14/tr14-30.html> | ||
36 | * | ||
37 | * The Unicode Terms of Use are available at | ||
38 | * <URL:http://www.unicode.org/copyright.html> | ||
39 | */ | ||
40 | |||
41 | /** | ||
42 | * @file linebreak.h | ||
43 | * | ||
44 | * Header file for the line breaking algorithm. | ||
45 | * | ||
46 | * @version 2.2, 2012/10/06 | ||
47 | * @author Wu Yongwei | ||
48 | */ | ||
49 | |||
50 | #ifndef LINEBREAK_H | ||
51 | #define LINEBREAK_H | ||
52 | |||
53 | #include <stddef.h> | ||
54 | |||
55 | #ifdef __cplusplus | ||
56 | extern "C" { | ||
57 | #endif | ||
58 | |||
59 | #define LINEBREAK_VERSION 0x0202 /**< Version of the library linebreak */ | ||
60 | extern const int linebreak_version; | ||
61 | |||
62 | #ifndef LINEBREAK_UTF_TYPES_DEFINED | ||
63 | #define LINEBREAK_UTF_TYPES_DEFINED | ||
64 | typedef unsigned char utf8_t; /**< Type for UTF-8 data points */ | ||
65 | typedef unsigned short utf16_t; /**< Type for UTF-16 data points */ | ||
66 | typedef unsigned int utf32_t; /**< Type for UTF-32 data points */ | ||
67 | #endif | ||
68 | |||
69 | #define LINEBREAK_MUSTBREAK 0 /**< Break is mandatory */ | ||
70 | #define LINEBREAK_ALLOWBREAK 1 /**< Break is allowed */ | ||
71 | #define LINEBREAK_NOBREAK 2 /**< No break is possible */ | ||
72 | #define LINEBREAK_INSIDEACHAR 3 /**< A UTF-8/16 sequence is unfinished */ | ||
73 | |||
74 | void init_linebreak(void); | ||
75 | void set_linebreaks_utf8( | ||
76 | const utf8_t *s, size_t len, const char* lang, char *brks); | ||
77 | void set_linebreaks_utf16( | ||
78 | const utf16_t *s, size_t len, const char* lang, char *brks); | ||
79 | void set_linebreaks_utf32( | ||
80 | const utf32_t *s, size_t len, const char* lang, char *brks); | ||
81 | int is_line_breakable(utf32_t char1, utf32_t char2, const char* lang); | ||
82 | |||
83 | #ifdef __cplusplus | ||
84 | } | ||
85 | #endif | ||
86 | |||
87 | #endif /* LINEBREAK_H */ | ||
diff --git a/src/static_libs/libunibreak/linebreakdata.c b/src/static_libs/libunibreak/linebreakdata.c deleted file mode 100644 index 3843e3bfe7..0000000000 --- a/src/static_libs/libunibreak/linebreakdata.c +++ /dev/null | |||
@@ -1,1968 +0,0 @@ | |||
1 | /* The content of this file is generated from: | ||
2 | # LineBreak-6.3.0.txt | ||
3 | # Date: 2013-02-06, 19:45:00 GMT [KW, LI] | ||
4 | */ | ||
5 | |||
6 | #include "linebreak.h" | ||
7 | #include "linebreakdef.h" | ||
8 | |||
9 | /** Default line breaking properties as from the Unicode Web site. */ | ||
10 | struct LineBreakProperties lb_prop_default[] = { | ||
11 | { 0x0000, 0x0008, LBP_CM }, | ||
12 | { 0x0009, 0x0009, LBP_BA }, | ||
13 | { 0x000A, 0x000A, LBP_LF }, | ||
14 | { 0x000B, 0x000C, LBP_BK }, | ||
15 | { 0x000D, 0x000D, LBP_CR }, | ||
16 | { 0x000E, 0x001F, LBP_CM }, | ||
17 | { 0x0020, 0x0020, LBP_SP }, | ||
18 | { 0x0021, 0x0021, LBP_EX }, | ||
19 | { 0x0022, 0x0022, LBP_QU }, | ||
20 | { 0x0023, 0x0023, LBP_AL }, | ||
21 | { 0x0024, 0x0024, LBP_PR }, | ||
22 | { 0x0025, 0x0025, LBP_PO }, | ||
23 | { 0x0026, 0x0026, LBP_AL }, | ||
24 | { 0x0027, 0x0027, LBP_QU }, | ||
25 | { 0x0028, 0x0028, LBP_OP }, | ||
26 | { 0x0029, 0x0029, LBP_CP }, | ||
27 | { 0x002A, 0x002A, LBP_AL }, | ||
28 | { 0x002B, 0x002B, LBP_PR }, | ||
29 | { 0x002C, 0x002C, LBP_IS }, | ||
30 | { 0x002D, 0x002D, LBP_HY }, | ||
31 | { 0x002E, 0x002E, LBP_IS }, | ||
32 | { 0x002F, 0x002F, LBP_SY }, | ||
33 | { 0x0030, 0x0039, LBP_NU }, | ||
34 | { 0x003A, 0x003B, LBP_IS }, | ||
35 | { 0x003C, 0x003E, LBP_AL }, | ||
36 | { 0x003F, 0x003F, LBP_EX }, | ||
37 | { 0x0040, 0x005A, LBP_AL }, | ||
38 | { 0x005B, 0x005B, LBP_OP }, | ||
39 | { 0x005C, 0x005C, LBP_PR }, | ||
40 | { 0x005D, 0x005D, LBP_CP }, | ||
41 | { 0x005E, 0x007A, LBP_AL }, | ||
42 | { 0x007B, 0x007B, LBP_OP }, | ||
43 | { 0x007C, 0x007C, LBP_BA }, | ||
44 | { 0x007D, 0x007D, LBP_CL }, | ||
45 | { 0x007E, 0x007E, LBP_AL }, | ||
46 | { 0x007F, 0x0084, LBP_CM }, | ||
47 | { 0x0085, 0x0085, LBP_NL }, | ||
48 | { 0x0086, 0x009F, LBP_CM }, | ||
49 | { 0x00A0, 0x00A0, LBP_GL }, | ||
50 | { 0x00A1, 0x00A1, LBP_OP }, | ||
51 | { 0x00A2, 0x00A2, LBP_PO }, | ||
52 | { 0x00A3, 0x00A5, LBP_PR }, | ||
53 | { 0x00A6, 0x00A6, LBP_AL }, | ||
54 | { 0x00A7, 0x00A8, LBP_AI }, | ||
55 | { 0x00A9, 0x00A9, LBP_AL }, | ||
56 | { 0x00AA, 0x00AA, LBP_AI }, | ||
57 | { 0x00AB, 0x00AB, LBP_QU }, | ||
58 | { 0x00AC, 0x00AC, LBP_AL }, | ||
59 | { 0x00AD, 0x00AD, LBP_BA }, | ||
60 | { 0x00AE, 0x00AF, LBP_AL }, | ||
61 | { 0x00B0, 0x00B0, LBP_PO }, | ||
62 | { 0x00B1, 0x00B1, LBP_PR }, | ||
63 | { 0x00B2, 0x00B3, LBP_AI }, | ||
64 | { 0x00B4, 0x00B4, LBP_BB }, | ||
65 | { 0x00B5, 0x00B5, LBP_AL }, | ||
66 | { 0x00B6, 0x00BA, LBP_AI }, | ||
67 | { 0x00BB, 0x00BB, LBP_QU }, | ||
68 | { 0x00BC, 0x00BE, LBP_AI }, | ||
69 | { 0x00BF, 0x00BF, LBP_OP }, | ||
70 | { 0x00C0, 0x00D6, LBP_AL }, | ||
71 | { 0x00D7, 0x00D7, LBP_AI }, | ||
72 | { 0x00D8, 0x00F6, LBP_AL }, | ||
73 | { 0x00F7, 0x00F7, LBP_AI }, | ||
74 | { 0x00F8, 0x02C6, LBP_AL }, | ||
75 | { 0x02C7, 0x02C7, LBP_AI }, | ||
76 | { 0x02C8, 0x02C8, LBP_BB }, | ||
77 | { 0x02C9, 0x02CB, LBP_AI }, | ||
78 | { 0x02CC, 0x02CC, LBP_BB }, | ||
79 | { 0x02CD, 0x02CD, LBP_AI }, | ||
80 | { 0x02CE, 0x02CF, LBP_AL }, | ||
81 | { 0x02D0, 0x02D0, LBP_AI }, | ||
82 | { 0x02D1, 0x02D7, LBP_AL }, | ||
83 | { 0x02D8, 0x02DB, LBP_AI }, | ||
84 | { 0x02DC, 0x02DC, LBP_AL }, | ||
85 | { 0x02DD, 0x02DD, LBP_AI }, | ||
86 | { 0x02DE, 0x02DE, LBP_AL }, | ||
87 | { 0x02DF, 0x02DF, LBP_BB }, | ||
88 | { 0x02E0, 0x02FF, LBP_AL }, | ||
89 | { 0x0300, 0x034E, LBP_CM }, | ||
90 | { 0x034F, 0x034F, LBP_GL }, | ||
91 | { 0x0350, 0x035B, LBP_CM }, | ||
92 | { 0x035C, 0x0362, LBP_GL }, | ||
93 | { 0x0363, 0x036F, LBP_CM }, | ||
94 | { 0x0370, 0x037D, LBP_AL }, | ||
95 | { 0x037E, 0x037E, LBP_IS }, | ||
96 | { 0x0384, 0x0482, LBP_AL }, | ||
97 | { 0x0483, 0x0489, LBP_CM }, | ||
98 | { 0x048A, 0x0587, LBP_AL }, | ||
99 | { 0x0589, 0x0589, LBP_IS }, | ||
100 | { 0x058A, 0x058A, LBP_BA }, | ||
101 | { 0x058F, 0x058F, LBP_PR }, | ||
102 | { 0x0591, 0x05BD, LBP_CM }, | ||
103 | { 0x05BE, 0x05BE, LBP_BA }, | ||
104 | { 0x05BF, 0x05BF, LBP_CM }, | ||
105 | { 0x05C0, 0x05C0, LBP_AL }, | ||
106 | { 0x05C1, 0x05C2, LBP_CM }, | ||
107 | { 0x05C3, 0x05C3, LBP_AL }, | ||
108 | { 0x05C4, 0x05C5, LBP_CM }, | ||
109 | { 0x05C6, 0x05C6, LBP_EX }, | ||
110 | { 0x05C7, 0x05C7, LBP_CM }, | ||
111 | { 0x05D0, 0x05F2, LBP_HL }, | ||
112 | { 0x05F3, 0x0608, LBP_AL }, | ||
113 | { 0x0609, 0x060B, LBP_PO }, | ||
114 | { 0x060C, 0x060D, LBP_IS }, | ||
115 | { 0x060E, 0x060F, LBP_AL }, | ||
116 | { 0x0610, 0x061A, LBP_CM }, | ||
117 | { 0x061B, 0x061B, LBP_EX }, | ||
118 | { 0x061C, 0x061C, LBP_CM }, | ||
119 | { 0x061E, 0x061F, LBP_EX }, | ||
120 | { 0x0620, 0x064A, LBP_AL }, | ||
121 | { 0x064B, 0x065F, LBP_CM }, | ||
122 | { 0x0660, 0x0669, LBP_NU }, | ||
123 | { 0x066A, 0x066A, LBP_PO }, | ||
124 | { 0x066B, 0x066C, LBP_NU }, | ||
125 | { 0x066D, 0x066F, LBP_AL }, | ||
126 | { 0x0670, 0x0670, LBP_CM }, | ||
127 | { 0x0671, 0x06D3, LBP_AL }, | ||
128 | { 0x06D4, 0x06D4, LBP_EX }, | ||
129 | { 0x06D5, 0x06D5, LBP_AL }, | ||
130 | { 0x06D6, 0x06DC, LBP_CM }, | ||
131 | { 0x06DD, 0x06DE, LBP_AL }, | ||
132 | { 0x06DF, 0x06E4, LBP_CM }, | ||
133 | { 0x06E5, 0x06E6, LBP_AL }, | ||
134 | { 0x06E7, 0x06E8, LBP_CM }, | ||
135 | { 0x06E9, 0x06E9, LBP_AL }, | ||
136 | { 0x06EA, 0x06ED, LBP_CM }, | ||
137 | { 0x06EE, 0x06EF, LBP_AL }, | ||
138 | { 0x06F0, 0x06F9, LBP_NU }, | ||
139 | { 0x06FA, 0x0710, LBP_AL }, | ||
140 | { 0x0711, 0x0711, LBP_CM }, | ||
141 | { 0x0712, 0x072F, LBP_AL }, | ||
142 | { 0x0730, 0x074A, LBP_CM }, | ||
143 | { 0x074D, 0x07A5, LBP_AL }, | ||
144 | { 0x07A6, 0x07B0, LBP_CM }, | ||
145 | { 0x07B1, 0x07B1, LBP_AL }, | ||
146 | { 0x07C0, 0x07C9, LBP_NU }, | ||
147 | { 0x07CA, 0x07EA, LBP_AL }, | ||
148 | { 0x07EB, 0x07F3, LBP_CM }, | ||
149 | { 0x07F4, 0x07F7, LBP_AL }, | ||
150 | { 0x07F8, 0x07F8, LBP_IS }, | ||
151 | { 0x07F9, 0x07F9, LBP_EX }, | ||
152 | { 0x07FA, 0x0815, LBP_AL }, | ||
153 | { 0x0816, 0x0819, LBP_CM }, | ||
154 | { 0x081A, 0x081A, LBP_AL }, | ||
155 | { 0x081B, 0x0823, LBP_CM }, | ||
156 | { 0x0824, 0x0824, LBP_AL }, | ||
157 | { 0x0825, 0x0827, LBP_CM }, | ||
158 | { 0x0828, 0x0828, LBP_AL }, | ||
159 | { 0x0829, 0x082D, LBP_CM }, | ||
160 | { 0x0830, 0x0858, LBP_AL }, | ||
161 | { 0x0859, 0x085B, LBP_CM }, | ||
162 | { 0x085E, 0x08AC, LBP_AL }, | ||
163 | { 0x08E4, 0x0903, LBP_CM }, | ||
164 | { 0x0904, 0x0939, LBP_AL }, | ||
165 | { 0x093A, 0x093C, LBP_CM }, | ||
166 | { 0x093D, 0x093D, LBP_AL }, | ||
167 | { 0x093E, 0x094F, LBP_CM }, | ||
168 | { 0x0950, 0x0950, LBP_AL }, | ||
169 | { 0x0951, 0x0957, LBP_CM }, | ||
170 | { 0x0958, 0x0961, LBP_AL }, | ||
171 | { 0x0962, 0x0963, LBP_CM }, | ||
172 | { 0x0964, 0x0965, LBP_BA }, | ||
173 | { 0x0966, 0x096F, LBP_NU }, | ||
174 | { 0x0970, 0x097F, LBP_AL }, | ||
175 | { 0x0981, 0x0983, LBP_CM }, | ||
176 | { 0x0985, 0x09B9, LBP_AL }, | ||
177 | { 0x09BC, 0x09BC, LBP_CM }, | ||
178 | { 0x09BD, 0x09BD, LBP_AL }, | ||
179 | { 0x09BE, 0x09CD, LBP_CM }, | ||
180 | { 0x09CE, 0x09CE, LBP_AL }, | ||
181 | { 0x09D7, 0x09D7, LBP_CM }, | ||
182 | { 0x09DC, 0x09E1, LBP_AL }, | ||
183 | { 0x09E2, 0x09E3, LBP_CM }, | ||
184 | { 0x09E6, 0x09EF, LBP_NU }, | ||
185 | { 0x09F0, 0x09F1, LBP_AL }, | ||
186 | { 0x09F2, 0x09F3, LBP_PO }, | ||
187 | { 0x09F4, 0x09F8, LBP_AL }, | ||
188 | { 0x09F9, 0x09F9, LBP_PO }, | ||
189 | { 0x09FA, 0x09FA, LBP_AL }, | ||
190 | { 0x09FB, 0x09FB, LBP_PR }, | ||
191 | { 0x0A01, 0x0A03, LBP_CM }, | ||
192 | { 0x0A05, 0x0A39, LBP_AL }, | ||
193 | { 0x0A3C, 0x0A51, LBP_CM }, | ||
194 | { 0x0A59, 0x0A5E, LBP_AL }, | ||
195 | { 0x0A66, 0x0A6F, LBP_NU }, | ||
196 | { 0x0A70, 0x0A71, LBP_CM }, | ||
197 | { 0x0A72, 0x0A74, LBP_AL }, | ||
198 | { 0x0A75, 0x0A83, LBP_CM }, | ||
199 | { 0x0A85, 0x0AB9, LBP_AL }, | ||
200 | { 0x0ABC, 0x0ABC, LBP_CM }, | ||
201 | { 0x0ABD, 0x0ABD, LBP_AL }, | ||
202 | { 0x0ABE, 0x0ACD, LBP_CM }, | ||
203 | { 0x0AD0, 0x0AE1, LBP_AL }, | ||
204 | { 0x0AE2, 0x0AE3, LBP_CM }, | ||
205 | { 0x0AE6, 0x0AEF, LBP_NU }, | ||
206 | { 0x0AF0, 0x0AF0, LBP_AL }, | ||
207 | { 0x0AF1, 0x0AF1, LBP_PR }, | ||
208 | { 0x0B01, 0x0B03, LBP_CM }, | ||
209 | { 0x0B05, 0x0B39, LBP_AL }, | ||
210 | { 0x0B3C, 0x0B3C, LBP_CM }, | ||
211 | { 0x0B3D, 0x0B3D, LBP_AL }, | ||
212 | { 0x0B3E, 0x0B57, LBP_CM }, | ||
213 | { 0x0B5C, 0x0B61, LBP_AL }, | ||
214 | { 0x0B62, 0x0B63, LBP_CM }, | ||
215 | { 0x0B66, 0x0B6F, LBP_NU }, | ||
216 | { 0x0B70, 0x0B77, LBP_AL }, | ||
217 | { 0x0B82, 0x0B82, LBP_CM }, | ||
218 | { 0x0B83, 0x0BB9, LBP_AL }, | ||
219 | { 0x0BBE, 0x0BCD, LBP_CM }, | ||
220 | { 0x0BD0, 0x0BD0, LBP_AL }, | ||
221 | { 0x0BD7, 0x0BD7, LBP_CM }, | ||
222 | { 0x0BE6, 0x0BEF, LBP_NU }, | ||
223 | { 0x0BF0, 0x0BF8, LBP_AL }, | ||
224 | { 0x0BF9, 0x0BF9, LBP_PR }, | ||
225 | { 0x0BFA, 0x0BFA, LBP_AL }, | ||
226 | { 0x0C01, 0x0C03, LBP_CM }, | ||
227 | { 0x0C05, 0x0C3D, LBP_AL }, | ||
228 | { 0x0C3E, 0x0C56, LBP_CM }, | ||
229 | { 0x0C58, 0x0C61, LBP_AL }, | ||
230 | { 0x0C62, 0x0C63, LBP_CM }, | ||
231 | { 0x0C66, 0x0C6F, LBP_NU }, | ||
232 | { 0x0C78, 0x0C7F, LBP_AL }, | ||
233 | { 0x0C82, 0x0C83, LBP_CM }, | ||
234 | { 0x0C85, 0x0CB9, LBP_AL }, | ||
235 | { 0x0CBC, 0x0CBC, LBP_CM }, | ||
236 | { 0x0CBD, 0x0CBD, LBP_AL }, | ||
237 | { 0x0CBE, 0x0CD6, LBP_CM }, | ||
238 | { 0x0CDE, 0x0CE1, LBP_AL }, | ||
239 | { 0x0CE2, 0x0CE3, LBP_CM }, | ||
240 | { 0x0CE6, 0x0CEF, LBP_NU }, | ||
241 | { 0x0CF1, 0x0CF2, LBP_AL }, | ||
242 | { 0x0D02, 0x0D03, LBP_CM }, | ||
243 | { 0x0D05, 0x0D3D, LBP_AL }, | ||
244 | { 0x0D3E, 0x0D4D, LBP_CM }, | ||
245 | { 0x0D4E, 0x0D4E, LBP_AL }, | ||
246 | { 0x0D57, 0x0D57, LBP_CM }, | ||
247 | { 0x0D60, 0x0D61, LBP_AL }, | ||
248 | { 0x0D62, 0x0D63, LBP_CM }, | ||
249 | { 0x0D66, 0x0D6F, LBP_NU }, | ||
250 | { 0x0D70, 0x0D75, LBP_AL }, | ||
251 | { 0x0D79, 0x0D79, LBP_PO }, | ||
252 | { 0x0D7A, 0x0D7F, LBP_AL }, | ||
253 | { 0x0D82, 0x0D83, LBP_CM }, | ||
254 | { 0x0D85, 0x0DC6, LBP_AL }, | ||
255 | { 0x0DCA, 0x0DF3, LBP_CM }, | ||
256 | { 0x0DF4, 0x0DF4, LBP_AL }, | ||
257 | { 0x0E01, 0x0E3A, LBP_SA }, | ||
258 | { 0x0E3F, 0x0E3F, LBP_PR }, | ||
259 | { 0x0E40, 0x0E4E, LBP_SA }, | ||
260 | { 0x0E4F, 0x0E4F, LBP_AL }, | ||
261 | { 0x0E50, 0x0E59, LBP_NU }, | ||
262 | { 0x0E5A, 0x0E5B, LBP_BA }, | ||
263 | { 0x0E81, 0x0ECD, LBP_SA }, | ||
264 | { 0x0ED0, 0x0ED9, LBP_NU }, | ||
265 | { 0x0EDC, 0x0EDF, LBP_SA }, | ||
266 | { 0x0F00, 0x0F00, LBP_AL }, | ||
267 | { 0x0F01, 0x0F04, LBP_BB }, | ||
268 | { 0x0F05, 0x0F05, LBP_AL }, | ||
269 | { 0x0F06, 0x0F07, LBP_BB }, | ||
270 | { 0x0F08, 0x0F08, LBP_GL }, | ||
271 | { 0x0F09, 0x0F0A, LBP_BB }, | ||
272 | { 0x0F0B, 0x0F0B, LBP_BA }, | ||
273 | { 0x0F0C, 0x0F0C, LBP_GL }, | ||
274 | { 0x0F0D, 0x0F11, LBP_EX }, | ||
275 | { 0x0F12, 0x0F12, LBP_GL }, | ||
276 | { 0x0F13, 0x0F13, LBP_AL }, | ||
277 | { 0x0F14, 0x0F14, LBP_EX }, | ||
278 | { 0x0F15, 0x0F17, LBP_AL }, | ||
279 | { 0x0F18, 0x0F19, LBP_CM }, | ||
280 | { 0x0F1A, 0x0F1F, LBP_AL }, | ||
281 | { 0x0F20, 0x0F29, LBP_NU }, | ||
282 | { 0x0F2A, 0x0F33, LBP_AL }, | ||
283 | { 0x0F34, 0x0F34, LBP_BA }, | ||
284 | { 0x0F35, 0x0F35, LBP_CM }, | ||
285 | { 0x0F36, 0x0F36, LBP_AL }, | ||
286 | { 0x0F37, 0x0F37, LBP_CM }, | ||
287 | { 0x0F38, 0x0F38, LBP_AL }, | ||
288 | { 0x0F39, 0x0F39, LBP_CM }, | ||
289 | { 0x0F3A, 0x0F3A, LBP_OP }, | ||
290 | { 0x0F3B, 0x0F3B, LBP_CL }, | ||
291 | { 0x0F3C, 0x0F3C, LBP_OP }, | ||
292 | { 0x0F3D, 0x0F3D, LBP_CL }, | ||
293 | { 0x0F3E, 0x0F3F, LBP_CM }, | ||
294 | { 0x0F40, 0x0F6C, LBP_AL }, | ||
295 | { 0x0F71, 0x0F7E, LBP_CM }, | ||
296 | { 0x0F7F, 0x0F7F, LBP_BA }, | ||
297 | { 0x0F80, 0x0F84, LBP_CM }, | ||
298 | { 0x0F85, 0x0F85, LBP_BA }, | ||
299 | { 0x0F86, 0x0F87, LBP_CM }, | ||
300 | { 0x0F88, 0x0F8C, LBP_AL }, | ||
301 | { 0x0F8D, 0x0FBC, LBP_CM }, | ||
302 | { 0x0FBE, 0x0FBF, LBP_BA }, | ||
303 | { 0x0FC0, 0x0FC5, LBP_AL }, | ||
304 | { 0x0FC6, 0x0FC6, LBP_CM }, | ||
305 | { 0x0FC7, 0x0FCF, LBP_AL }, | ||
306 | { 0x0FD0, 0x0FD1, LBP_BB }, | ||
307 | { 0x0FD2, 0x0FD2, LBP_BA }, | ||
308 | { 0x0FD3, 0x0FD3, LBP_BB }, | ||
309 | { 0x0FD4, 0x0FD8, LBP_AL }, | ||
310 | { 0x0FD9, 0x0FDA, LBP_GL }, | ||
311 | { 0x1000, 0x103F, LBP_SA }, | ||
312 | { 0x1040, 0x1049, LBP_NU }, | ||
313 | { 0x104A, 0x104B, LBP_BA }, | ||
314 | { 0x104C, 0x104F, LBP_AL }, | ||
315 | { 0x1050, 0x108F, LBP_SA }, | ||
316 | { 0x1090, 0x1099, LBP_NU }, | ||
317 | { 0x109A, 0x109F, LBP_SA }, | ||
318 | { 0x10A0, 0x10FF, LBP_AL }, | ||
319 | { 0x1100, 0x115F, LBP_JL }, | ||
320 | { 0x1160, 0x11A7, LBP_JV }, | ||
321 | { 0x11A8, 0x11FF, LBP_JT }, | ||
322 | { 0x1200, 0x135A, LBP_AL }, | ||
323 | { 0x135D, 0x135F, LBP_CM }, | ||
324 | { 0x1360, 0x1360, LBP_AL }, | ||
325 | { 0x1361, 0x1361, LBP_BA }, | ||
326 | { 0x1362, 0x13F4, LBP_AL }, | ||
327 | { 0x1400, 0x1400, LBP_BA }, | ||
328 | { 0x1401, 0x167F, LBP_AL }, | ||
329 | { 0x1680, 0x1680, LBP_BA }, | ||
330 | { 0x1681, 0x169A, LBP_AL }, | ||
331 | { 0x169B, 0x169B, LBP_OP }, | ||
332 | { 0x169C, 0x169C, LBP_CL }, | ||
333 | { 0x16A0, 0x16EA, LBP_AL }, | ||
334 | { 0x16EB, 0x16ED, LBP_BA }, | ||
335 | { 0x16EE, 0x1711, LBP_AL }, | ||
336 | { 0x1712, 0x1714, LBP_CM }, | ||
337 | { 0x1720, 0x1731, LBP_AL }, | ||
338 | { 0x1732, 0x1734, LBP_CM }, | ||
339 | { 0x1735, 0x1736, LBP_BA }, | ||
340 | { 0x1740, 0x1751, LBP_AL }, | ||
341 | { 0x1752, 0x1753, LBP_CM }, | ||
342 | { 0x1760, 0x1770, LBP_AL }, | ||
343 | { 0x1772, 0x1773, LBP_CM }, | ||
344 | { 0x1780, 0x17D3, LBP_SA }, | ||
345 | { 0x17D4, 0x17D5, LBP_BA }, | ||
346 | { 0x17D6, 0x17D6, LBP_NS }, | ||
347 | { 0x17D7, 0x17D7, LBP_SA }, | ||
348 | { 0x17D8, 0x17D8, LBP_BA }, | ||
349 | { 0x17D9, 0x17D9, LBP_AL }, | ||
350 | { 0x17DA, 0x17DA, LBP_BA }, | ||
351 | { 0x17DB, 0x17DB, LBP_PR }, | ||
352 | { 0x17DC, 0x17DD, LBP_SA }, | ||
353 | { 0x17E0, 0x17E9, LBP_NU }, | ||
354 | { 0x17F0, 0x1801, LBP_AL }, | ||
355 | { 0x1802, 0x1803, LBP_EX }, | ||
356 | { 0x1804, 0x1805, LBP_BA }, | ||
357 | { 0x1806, 0x1806, LBP_BB }, | ||
358 | { 0x1807, 0x1807, LBP_AL }, | ||
359 | { 0x1808, 0x1809, LBP_EX }, | ||
360 | { 0x180A, 0x180A, LBP_AL }, | ||
361 | { 0x180B, 0x180D, LBP_CM }, | ||
362 | { 0x180E, 0x180E, LBP_GL }, | ||
363 | { 0x1810, 0x1819, LBP_NU }, | ||
364 | { 0x1820, 0x18A8, LBP_AL }, | ||
365 | { 0x18A9, 0x18A9, LBP_CM }, | ||
366 | { 0x18AA, 0x191C, LBP_AL }, | ||
367 | { 0x1920, 0x193B, LBP_CM }, | ||
368 | { 0x1940, 0x1940, LBP_AL }, | ||
369 | { 0x1944, 0x1945, LBP_EX }, | ||
370 | { 0x1946, 0x194F, LBP_NU }, | ||
371 | { 0x1950, 0x19C9, LBP_SA }, | ||
372 | { 0x19D0, 0x19D9, LBP_NU }, | ||
373 | { 0x19DA, 0x19DF, LBP_SA }, | ||
374 | { 0x19E0, 0x1A16, LBP_AL }, | ||
375 | { 0x1A17, 0x1A1B, LBP_CM }, | ||
376 | { 0x1A1E, 0x1A1F, LBP_AL }, | ||
377 | { 0x1A20, 0x1A7C, LBP_SA }, | ||
378 | { 0x1A7F, 0x1A7F, LBP_CM }, | ||
379 | { 0x1A80, 0x1A99, LBP_NU }, | ||
380 | { 0x1AA0, 0x1AAD, LBP_SA }, | ||
381 | { 0x1B00, 0x1B04, LBP_CM }, | ||
382 | { 0x1B05, 0x1B33, LBP_AL }, | ||
383 | { 0x1B34, 0x1B44, LBP_CM }, | ||
384 | { 0x1B45, 0x1B4B, LBP_AL }, | ||
385 | { 0x1B50, 0x1B59, LBP_NU }, | ||
386 | { 0x1B5A, 0x1B5B, LBP_BA }, | ||
387 | { 0x1B5C, 0x1B5C, LBP_AL }, | ||
388 | { 0x1B5D, 0x1B60, LBP_BA }, | ||
389 | { 0x1B61, 0x1B6A, LBP_AL }, | ||
390 | { 0x1B6B, 0x1B73, LBP_CM }, | ||
391 | { 0x1B74, 0x1B7C, LBP_AL }, | ||
392 | { 0x1B80, 0x1B82, LBP_CM }, | ||
393 | { 0x1B83, 0x1BA0, LBP_AL }, | ||
394 | { 0x1BA1, 0x1BAD, LBP_CM }, | ||
395 | { 0x1BAE, 0x1BAF, LBP_AL }, | ||
396 | { 0x1BB0, 0x1BB9, LBP_NU }, | ||
397 | { 0x1BBA, 0x1BE5, LBP_AL }, | ||
398 | { 0x1BE6, 0x1BF3, LBP_CM }, | ||
399 | { 0x1BFC, 0x1C23, LBP_AL }, | ||
400 | { 0x1C24, 0x1C37, LBP_CM }, | ||
401 | { 0x1C3B, 0x1C3F, LBP_BA }, | ||
402 | { 0x1C40, 0x1C49, LBP_NU }, | ||
403 | { 0x1C4D, 0x1C4F, LBP_AL }, | ||
404 | { 0x1C50, 0x1C59, LBP_NU }, | ||
405 | { 0x1C5A, 0x1C7D, LBP_AL }, | ||
406 | { 0x1C7E, 0x1C7F, LBP_BA }, | ||
407 | { 0x1CC0, 0x1CC7, LBP_AL }, | ||
408 | { 0x1CD0, 0x1CD2, LBP_CM }, | ||
409 | { 0x1CD3, 0x1CD3, LBP_AL }, | ||
410 | { 0x1CD4, 0x1CE8, LBP_CM }, | ||
411 | { 0x1CE9, 0x1CEC, LBP_AL }, | ||
412 | { 0x1CED, 0x1CED, LBP_CM }, | ||
413 | { 0x1CEE, 0x1CF1, LBP_AL }, | ||
414 | { 0x1CF2, 0x1CF4, LBP_CM }, | ||
415 | { 0x1CF5, 0x1DBF, LBP_AL }, | ||
416 | { 0x1DC0, 0x1DFF, LBP_CM }, | ||
417 | { 0x1E00, 0x1FFC, LBP_AL }, | ||
418 | { 0x1FFD, 0x1FFD, LBP_BB }, | ||
419 | { 0x1FFE, 0x1FFE, LBP_AL }, | ||
420 | { 0x2000, 0x2006, LBP_BA }, | ||
421 | { 0x2007, 0x2007, LBP_GL }, | ||
422 | { 0x2008, 0x200A, LBP_BA }, | ||
423 | { 0x200B, 0x200B, LBP_ZW }, | ||
424 | { 0x200C, 0x200F, LBP_CM }, | ||
425 | { 0x2010, 0x2010, LBP_BA }, | ||
426 | { 0x2011, 0x2011, LBP_GL }, | ||
427 | { 0x2012, 0x2013, LBP_BA }, | ||
428 | { 0x2014, 0x2014, LBP_B2 }, | ||
429 | { 0x2015, 0x2016, LBP_AI }, | ||
430 | { 0x2017, 0x2017, LBP_AL }, | ||
431 | { 0x2018, 0x2019, LBP_QU }, | ||
432 | { 0x201A, 0x201A, LBP_OP }, | ||
433 | { 0x201B, 0x201D, LBP_QU }, | ||
434 | { 0x201E, 0x201E, LBP_OP }, | ||
435 | { 0x201F, 0x201F, LBP_QU }, | ||
436 | { 0x2020, 0x2021, LBP_AI }, | ||
437 | { 0x2022, 0x2023, LBP_AL }, | ||
438 | { 0x2024, 0x2026, LBP_IN }, | ||
439 | { 0x2027, 0x2027, LBP_BA }, | ||
440 | { 0x2028, 0x2029, LBP_BK }, | ||
441 | { 0x202A, 0x202E, LBP_CM }, | ||
442 | { 0x202F, 0x202F, LBP_GL }, | ||
443 | { 0x2030, 0x2037, LBP_PO }, | ||
444 | { 0x2038, 0x2038, LBP_AL }, | ||
445 | { 0x2039, 0x203A, LBP_QU }, | ||
446 | { 0x203B, 0x203B, LBP_AI }, | ||
447 | { 0x203C, 0x203D, LBP_NS }, | ||
448 | { 0x203E, 0x2043, LBP_AL }, | ||
449 | { 0x2044, 0x2044, LBP_IS }, | ||
450 | { 0x2045, 0x2045, LBP_OP }, | ||
451 | { 0x2046, 0x2046, LBP_CL }, | ||
452 | { 0x2047, 0x2049, LBP_NS }, | ||
453 | { 0x204A, 0x2055, LBP_AL }, | ||
454 | { 0x2056, 0x2056, LBP_BA }, | ||
455 | { 0x2057, 0x2057, LBP_AL }, | ||
456 | { 0x2058, 0x205B, LBP_BA }, | ||
457 | { 0x205C, 0x205C, LBP_AL }, | ||
458 | { 0x205D, 0x205F, LBP_BA }, | ||
459 | { 0x2060, 0x2060, LBP_WJ }, | ||
460 | { 0x2061, 0x2064, LBP_AL }, | ||
461 | { 0x2066, 0x206F, LBP_CM }, | ||
462 | { 0x2070, 0x2071, LBP_AL }, | ||
463 | { 0x2074, 0x2074, LBP_AI }, | ||
464 | { 0x2075, 0x207C, LBP_AL }, | ||
465 | { 0x207D, 0x207D, LBP_OP }, | ||
466 | { 0x207E, 0x207E, LBP_CL }, | ||
467 | { 0x207F, 0x207F, LBP_AI }, | ||
468 | { 0x2080, 0x2080, LBP_AL }, | ||
469 | { 0x2081, 0x2084, LBP_AI }, | ||
470 | { 0x2085, 0x208C, LBP_AL }, | ||
471 | { 0x208D, 0x208D, LBP_OP }, | ||
472 | { 0x208E, 0x208E, LBP_CL }, | ||
473 | { 0x2090, 0x209C, LBP_AL }, | ||
474 | { 0x20A0, 0x20A6, LBP_PR }, | ||
475 | { 0x20A7, 0x20A7, LBP_PO }, | ||
476 | { 0x20A8, 0x20B5, LBP_PR }, | ||
477 | { 0x20B6, 0x20B6, LBP_PO }, | ||
478 | { 0x20B7, 0x20CF, LBP_PR }, | ||
479 | { 0x20D0, 0x20F0, LBP_CM }, | ||
480 | { 0x2100, 0x2102, LBP_AL }, | ||
481 | { 0x2103, 0x2103, LBP_PO }, | ||
482 | { 0x2104, 0x2104, LBP_AL }, | ||
483 | { 0x2105, 0x2105, LBP_AI }, | ||
484 | { 0x2106, 0x2108, LBP_AL }, | ||
485 | { 0x2109, 0x2109, LBP_PO }, | ||
486 | { 0x210A, 0x2112, LBP_AL }, | ||
487 | { 0x2113, 0x2113, LBP_AI }, | ||
488 | { 0x2114, 0x2115, LBP_AL }, | ||
489 | { 0x2116, 0x2116, LBP_PR }, | ||
490 | { 0x2117, 0x2120, LBP_AL }, | ||
491 | { 0x2121, 0x2122, LBP_AI }, | ||
492 | { 0x2123, 0x212A, LBP_AL }, | ||
493 | { 0x212B, 0x212B, LBP_AI }, | ||
494 | { 0x212C, 0x2153, LBP_AL }, | ||
495 | { 0x2154, 0x2155, LBP_AI }, | ||
496 | { 0x2156, 0x215A, LBP_AL }, | ||
497 | { 0x215B, 0x215B, LBP_AI }, | ||
498 | { 0x215C, 0x215D, LBP_AL }, | ||
499 | { 0x215E, 0x215E, LBP_AI }, | ||
500 | { 0x215F, 0x215F, LBP_AL }, | ||
501 | { 0x2160, 0x216B, LBP_AI }, | ||
502 | { 0x216C, 0x216F, LBP_AL }, | ||
503 | { 0x2170, 0x2179, LBP_AI }, | ||
504 | { 0x217A, 0x2188, LBP_AL }, | ||
505 | { 0x2189, 0x2199, LBP_AI }, | ||
506 | { 0x219A, 0x21D1, LBP_AL }, | ||
507 | { 0x21D2, 0x21D2, LBP_AI }, | ||
508 | { 0x21D3, 0x21D3, LBP_AL }, | ||
509 | { 0x21D4, 0x21D4, LBP_AI }, | ||
510 | { 0x21D5, 0x21FF, LBP_AL }, | ||
511 | { 0x2200, 0x2200, LBP_AI }, | ||
512 | { 0x2201, 0x2201, LBP_AL }, | ||
513 | { 0x2202, 0x2203, LBP_AI }, | ||
514 | { 0x2204, 0x2206, LBP_AL }, | ||
515 | { 0x2207, 0x2208, LBP_AI }, | ||
516 | { 0x2209, 0x220A, LBP_AL }, | ||
517 | { 0x220B, 0x220B, LBP_AI }, | ||
518 | { 0x220C, 0x220E, LBP_AL }, | ||
519 | { 0x220F, 0x220F, LBP_AI }, | ||
520 | { 0x2210, 0x2210, LBP_AL }, | ||
521 | { 0x2211, 0x2211, LBP_AI }, | ||
522 | { 0x2212, 0x2213, LBP_PR }, | ||
523 | { 0x2214, 0x2214, LBP_AL }, | ||
524 | { 0x2215, 0x2215, LBP_AI }, | ||
525 | { 0x2216, 0x2219, LBP_AL }, | ||
526 | { 0x221A, 0x221A, LBP_AI }, | ||
527 | { 0x221B, 0x221C, LBP_AL }, | ||
528 | { 0x221D, 0x2220, LBP_AI }, | ||
529 | { 0x2221, 0x2222, LBP_AL }, | ||
530 | { 0x2223, 0x2223, LBP_AI }, | ||
531 | { 0x2224, 0x2224, LBP_AL }, | ||
532 | { 0x2225, 0x2225, LBP_AI }, | ||
533 | { 0x2226, 0x2226, LBP_AL }, | ||
534 | { 0x2227, 0x222C, LBP_AI }, | ||
535 | { 0x222D, 0x222D, LBP_AL }, | ||
536 | { 0x222E, 0x222E, LBP_AI }, | ||
537 | { 0x222F, 0x2233, LBP_AL }, | ||
538 | { 0x2234, 0x2237, LBP_AI }, | ||
539 | { 0x2238, 0x223B, LBP_AL }, | ||
540 | { 0x223C, 0x223D, LBP_AI }, | ||
541 | { 0x223E, 0x2247, LBP_AL }, | ||
542 | { 0x2248, 0x2248, LBP_AI }, | ||
543 | { 0x2249, 0x224B, LBP_AL }, | ||
544 | { 0x224C, 0x224C, LBP_AI }, | ||
545 | { 0x224D, 0x2251, LBP_AL }, | ||
546 | { 0x2252, 0x2252, LBP_AI }, | ||
547 | { 0x2253, 0x225F, LBP_AL }, | ||
548 | { 0x2260, 0x2261, LBP_AI }, | ||
549 | { 0x2262, 0x2263, LBP_AL }, | ||
550 | { 0x2264, 0x2267, LBP_AI }, | ||
551 | { 0x2268, 0x2269, LBP_AL }, | ||
552 | { 0x226A, 0x226B, LBP_AI }, | ||
553 | { 0x226C, 0x226D, LBP_AL }, | ||
554 | { 0x226E, 0x226F, LBP_AI }, | ||
555 | { 0x2270, 0x2281, LBP_AL }, | ||
556 | { 0x2282, 0x2283, LBP_AI }, | ||
557 | { 0x2284, 0x2285, LBP_AL }, | ||
558 | { 0x2286, 0x2287, LBP_AI }, | ||
559 | { 0x2288, 0x2294, LBP_AL }, | ||
560 | { 0x2295, 0x2295, LBP_AI }, | ||
561 | { 0x2296, 0x2298, LBP_AL }, | ||
562 | { 0x2299, 0x2299, LBP_AI }, | ||
563 | { 0x229A, 0x22A4, LBP_AL }, | ||
564 | { 0x22A5, 0x22A5, LBP_AI }, | ||
565 | { 0x22A6, 0x22BE, LBP_AL }, | ||
566 | { 0x22BF, 0x22BF, LBP_AI }, | ||
567 | { 0x22C0, 0x2311, LBP_AL }, | ||
568 | { 0x2312, 0x2312, LBP_AI }, | ||
569 | { 0x2313, 0x2319, LBP_AL }, | ||
570 | { 0x231A, 0x231B, LBP_ID }, | ||
571 | { 0x231C, 0x2328, LBP_AL }, | ||
572 | { 0x2329, 0x2329, LBP_OP }, | ||
573 | { 0x232A, 0x232A, LBP_CL }, | ||
574 | { 0x232B, 0x23EF, LBP_AL }, | ||
575 | { 0x23F0, 0x23F3, LBP_ID }, | ||
576 | { 0x2400, 0x244A, LBP_AL }, | ||
577 | { 0x2460, 0x24FE, LBP_AI }, | ||
578 | { 0x24FF, 0x24FF, LBP_AL }, | ||
579 | { 0x2500, 0x254B, LBP_AI }, | ||
580 | { 0x254C, 0x254F, LBP_AL }, | ||
581 | { 0x2550, 0x2574, LBP_AI }, | ||
582 | { 0x2575, 0x257F, LBP_AL }, | ||
583 | { 0x2580, 0x258F, LBP_AI }, | ||
584 | { 0x2590, 0x2591, LBP_AL }, | ||
585 | { 0x2592, 0x2595, LBP_AI }, | ||
586 | { 0x2596, 0x259F, LBP_AL }, | ||
587 | { 0x25A0, 0x25A1, LBP_AI }, | ||
588 | { 0x25A2, 0x25A2, LBP_AL }, | ||
589 | { 0x25A3, 0x25A9, LBP_AI }, | ||
590 | { 0x25AA, 0x25B1, LBP_AL }, | ||
591 | { 0x25B2, 0x25B3, LBP_AI }, | ||
592 | { 0x25B4, 0x25B5, LBP_AL }, | ||
593 | { 0x25B6, 0x25B7, LBP_AI }, | ||
594 | { 0x25B8, 0x25BB, LBP_AL }, | ||
595 | { 0x25BC, 0x25BD, LBP_AI }, | ||
596 | { 0x25BE, 0x25BF, LBP_AL }, | ||
597 | { 0x25C0, 0x25C1, LBP_AI }, | ||
598 | { 0x25C2, 0x25C5, LBP_AL }, | ||
599 | { 0x25C6, 0x25C8, LBP_AI }, | ||
600 | { 0x25C9, 0x25CA, LBP_AL }, | ||
601 | { 0x25CB, 0x25CB, LBP_AI }, | ||
602 | { 0x25CC, 0x25CD, LBP_AL }, | ||
603 | { 0x25CE, 0x25D1, LBP_AI }, | ||
604 | { 0x25D2, 0x25E1, LBP_AL }, | ||
605 | { 0x25E2, 0x25E5, LBP_AI }, | ||
606 | { 0x25E6, 0x25EE, LBP_AL }, | ||
607 | { 0x25EF, 0x25EF, LBP_AI }, | ||
608 | { 0x25F0, 0x25FF, LBP_AL }, | ||
609 | { 0x2600, 0x2603, LBP_ID }, | ||
610 | { 0x2604, 0x2604, LBP_AL }, | ||
611 | { 0x2605, 0x2606, LBP_AI }, | ||
612 | { 0x2607, 0x2608, LBP_AL }, | ||
613 | { 0x2609, 0x2609, LBP_AI }, | ||
614 | { 0x260A, 0x260D, LBP_AL }, | ||
615 | { 0x260E, 0x260F, LBP_AI }, | ||
616 | { 0x2610, 0x2613, LBP_AL }, | ||
617 | { 0x2614, 0x2615, LBP_ID }, | ||
618 | { 0x2616, 0x2617, LBP_AI }, | ||
619 | { 0x2618, 0x2618, LBP_ID }, | ||
620 | { 0x2619, 0x2619, LBP_AL }, | ||
621 | { 0x261A, 0x261F, LBP_ID }, | ||
622 | { 0x2620, 0x2638, LBP_AL }, | ||
623 | { 0x2639, 0x263B, LBP_ID }, | ||
624 | { 0x263C, 0x263F, LBP_AL }, | ||
625 | { 0x2640, 0x2640, LBP_AI }, | ||
626 | { 0x2641, 0x2641, LBP_AL }, | ||
627 | { 0x2642, 0x2642, LBP_AI }, | ||
628 | { 0x2643, 0x265F, LBP_AL }, | ||
629 | { 0x2660, 0x2661, LBP_AI }, | ||
630 | { 0x2662, 0x2662, LBP_AL }, | ||
631 | { 0x2663, 0x2665, LBP_AI }, | ||
632 | { 0x2666, 0x2666, LBP_AL }, | ||
633 | { 0x2667, 0x2667, LBP_AI }, | ||
634 | { 0x2668, 0x2668, LBP_ID }, | ||
635 | { 0x2669, 0x266A, LBP_AI }, | ||
636 | { 0x266B, 0x266B, LBP_AL }, | ||
637 | { 0x266C, 0x266D, LBP_AI }, | ||
638 | { 0x266E, 0x266E, LBP_AL }, | ||
639 | { 0x266F, 0x266F, LBP_AI }, | ||
640 | { 0x2670, 0x267E, LBP_AL }, | ||
641 | { 0x267F, 0x267F, LBP_ID }, | ||
642 | { 0x2680, 0x269D, LBP_AL }, | ||
643 | { 0x269E, 0x269F, LBP_AI }, | ||
644 | { 0x26A0, 0x26BC, LBP_AL }, | ||
645 | { 0x26BD, 0x26C8, LBP_ID }, | ||
646 | { 0x26C9, 0x26CC, LBP_AI }, | ||
647 | { 0x26CD, 0x26CD, LBP_ID }, | ||
648 | { 0x26CE, 0x26CE, LBP_AL }, | ||
649 | { 0x26CF, 0x26D1, LBP_ID }, | ||
650 | { 0x26D2, 0x26D2, LBP_AI }, | ||
651 | { 0x26D3, 0x26D4, LBP_ID }, | ||
652 | { 0x26D5, 0x26D7, LBP_AI }, | ||
653 | { 0x26D8, 0x26D9, LBP_ID }, | ||
654 | { 0x26DA, 0x26DB, LBP_AI }, | ||
655 | { 0x26DC, 0x26DC, LBP_ID }, | ||
656 | { 0x26DD, 0x26DE, LBP_AI }, | ||
657 | { 0x26DF, 0x26E1, LBP_ID }, | ||
658 | { 0x26E2, 0x26E2, LBP_AL }, | ||
659 | { 0x26E3, 0x26E3, LBP_AI }, | ||
660 | { 0x26E4, 0x26E7, LBP_AL }, | ||
661 | { 0x26E8, 0x26E9, LBP_AI }, | ||
662 | { 0x26EA, 0x26EA, LBP_ID }, | ||
663 | { 0x26EB, 0x26F0, LBP_AI }, | ||
664 | { 0x26F1, 0x26F5, LBP_ID }, | ||
665 | { 0x26F6, 0x26F6, LBP_AI }, | ||
666 | { 0x26F7, 0x26FA, LBP_ID }, | ||
667 | { 0x26FB, 0x26FC, LBP_AI }, | ||
668 | { 0x26FD, 0x2704, LBP_ID }, | ||
669 | { 0x2705, 0x2707, LBP_AL }, | ||
670 | { 0x2708, 0x270D, LBP_ID }, | ||
671 | { 0x270E, 0x2756, LBP_AL }, | ||
672 | { 0x2757, 0x2757, LBP_AI }, | ||
673 | { 0x2758, 0x275A, LBP_AL }, | ||
674 | { 0x275B, 0x275E, LBP_QU }, | ||
675 | { 0x275F, 0x2761, LBP_AL }, | ||
676 | { 0x2762, 0x2763, LBP_EX }, | ||
677 | { 0x2764, 0x2767, LBP_AL }, | ||
678 | { 0x2768, 0x2768, LBP_OP }, | ||
679 | { 0x2769, 0x2769, LBP_CL }, | ||
680 | { 0x276A, 0x276A, LBP_OP }, | ||
681 | { 0x276B, 0x276B, LBP_CL }, | ||
682 | { 0x276C, 0x276C, LBP_OP }, | ||
683 | { 0x276D, 0x276D, LBP_CL }, | ||
684 | { 0x276E, 0x276E, LBP_OP }, | ||
685 | { 0x276F, 0x276F, LBP_CL }, | ||
686 | { 0x2770, 0x2770, LBP_OP }, | ||
687 | { 0x2771, 0x2771, LBP_CL }, | ||
688 | { 0x2772, 0x2772, LBP_OP }, | ||
689 | { 0x2773, 0x2773, LBP_CL }, | ||
690 | { 0x2774, 0x2774, LBP_OP }, | ||
691 | { 0x2775, 0x2775, LBP_CL }, | ||
692 | { 0x2776, 0x2793, LBP_AI }, | ||
693 | { 0x2794, 0x27C4, LBP_AL }, | ||
694 | { 0x27C5, 0x27C5, LBP_OP }, | ||
695 | { 0x27C6, 0x27C6, LBP_CL }, | ||
696 | { 0x27C7, 0x27E5, LBP_AL }, | ||
697 | { 0x27E6, 0x27E6, LBP_OP }, | ||
698 | { 0x27E7, 0x27E7, LBP_CL }, | ||
699 | { 0x27E8, 0x27E8, LBP_OP }, | ||
700 | { 0x27E9, 0x27E9, LBP_CL }, | ||
701 | { 0x27EA, 0x27EA, LBP_OP }, | ||
702 | { 0x27EB, 0x27EB, LBP_CL }, | ||
703 | { 0x27EC, 0x27EC, LBP_OP }, | ||
704 | { 0x27ED, 0x27ED, LBP_CL }, | ||
705 | { 0x27EE, 0x27EE, LBP_OP }, | ||
706 | { 0x27EF, 0x27EF, LBP_CL }, | ||
707 | { 0x27F0, 0x2982, LBP_AL }, | ||
708 | { 0x2983, 0x2983, LBP_OP }, | ||
709 | { 0x2984, 0x2984, LBP_CL }, | ||
710 | { 0x2985, 0x2985, LBP_OP }, | ||
711 | { 0x2986, 0x2986, LBP_CL }, | ||
712 | { 0x2987, 0x2987, LBP_OP }, | ||
713 | { 0x2988, 0x2988, LBP_CL }, | ||
714 | { 0x2989, 0x2989, LBP_OP }, | ||
715 | { 0x298A, 0x298A, LBP_CL }, | ||
716 | { 0x298B, 0x298B, LBP_OP }, | ||
717 | { 0x298C, 0x298C, LBP_CL }, | ||
718 | { 0x298D, 0x298D, LBP_OP }, | ||
719 | { 0x298E, 0x298E, LBP_CL }, | ||
720 | { 0x298F, 0x298F, LBP_OP }, | ||
721 | { 0x2990, 0x2990, LBP_CL }, | ||
722 | { 0x2991, 0x2991, LBP_OP }, | ||
723 | { 0x2992, 0x2992, LBP_CL }, | ||
724 | { 0x2993, 0x2993, LBP_OP }, | ||
725 | { 0x2994, 0x2994, LBP_CL }, | ||
726 | { 0x2995, 0x2995, LBP_OP }, | ||
727 | { 0x2996, 0x2996, LBP_CL }, | ||
728 | { 0x2997, 0x2997, LBP_OP }, | ||
729 | { 0x2998, 0x2998, LBP_CL }, | ||
730 | { 0x2999, 0x29D7, LBP_AL }, | ||
731 | { 0x29D8, 0x29D8, LBP_OP }, | ||
732 | { 0x29D9, 0x29D9, LBP_CL }, | ||
733 | { 0x29DA, 0x29DA, LBP_OP }, | ||
734 | { 0x29DB, 0x29DB, LBP_CL }, | ||
735 | { 0x29DC, 0x29FB, LBP_AL }, | ||
736 | { 0x29FC, 0x29FC, LBP_OP }, | ||
737 | { 0x29FD, 0x29FD, LBP_CL }, | ||
738 | { 0x29FE, 0x2B54, LBP_AL }, | ||
739 | { 0x2B55, 0x2B59, LBP_AI }, | ||
740 | { 0x2C00, 0x2CEE, LBP_AL }, | ||
741 | { 0x2CEF, 0x2CF1, LBP_CM }, | ||
742 | { 0x2CF2, 0x2CF3, LBP_AL }, | ||
743 | { 0x2CF9, 0x2CF9, LBP_EX }, | ||
744 | { 0x2CFA, 0x2CFC, LBP_BA }, | ||
745 | { 0x2CFD, 0x2CFD, LBP_AL }, | ||
746 | { 0x2CFE, 0x2CFE, LBP_EX }, | ||
747 | { 0x2CFF, 0x2CFF, LBP_BA }, | ||
748 | { 0x2D00, 0x2D6F, LBP_AL }, | ||
749 | { 0x2D70, 0x2D70, LBP_BA }, | ||
750 | { 0x2D7F, 0x2D7F, LBP_CM }, | ||
751 | { 0x2D80, 0x2DDE, LBP_AL }, | ||
752 | { 0x2DE0, 0x2DFF, LBP_CM }, | ||
753 | { 0x2E00, 0x2E0D, LBP_QU }, | ||
754 | { 0x2E0E, 0x2E15, LBP_BA }, | ||
755 | { 0x2E16, 0x2E16, LBP_AL }, | ||
756 | { 0x2E17, 0x2E17, LBP_BA }, | ||
757 | { 0x2E18, 0x2E18, LBP_OP }, | ||
758 | { 0x2E19, 0x2E19, LBP_BA }, | ||
759 | { 0x2E1A, 0x2E1B, LBP_AL }, | ||
760 | { 0x2E1C, 0x2E1D, LBP_QU }, | ||
761 | { 0x2E1E, 0x2E1F, LBP_AL }, | ||
762 | { 0x2E20, 0x2E21, LBP_QU }, | ||
763 | { 0x2E22, 0x2E22, LBP_OP }, | ||
764 | { 0x2E23, 0x2E23, LBP_CL }, | ||
765 | { 0x2E24, 0x2E24, LBP_OP }, | ||
766 | { 0x2E25, 0x2E25, LBP_CL }, | ||
767 | { 0x2E26, 0x2E26, LBP_OP }, | ||
768 | { 0x2E27, 0x2E27, LBP_CL }, | ||
769 | { 0x2E28, 0x2E28, LBP_OP }, | ||
770 | { 0x2E29, 0x2E29, LBP_CL }, | ||
771 | { 0x2E2A, 0x2E2D, LBP_BA }, | ||
772 | { 0x2E2E, 0x2E2E, LBP_EX }, | ||
773 | { 0x2E2F, 0x2E2F, LBP_AL }, | ||
774 | { 0x2E30, 0x2E31, LBP_BA }, | ||
775 | { 0x2E32, 0x2E32, LBP_AL }, | ||
776 | { 0x2E33, 0x2E34, LBP_BA }, | ||
777 | { 0x2E35, 0x2E39, LBP_AL }, | ||
778 | { 0x2E3A, 0x2E3B, LBP_B2 }, | ||
779 | { 0x2E80, 0x2FFB, LBP_ID }, | ||
780 | { 0x3000, 0x3000, LBP_BA }, | ||
781 | { 0x3001, 0x3002, LBP_CL }, | ||
782 | { 0x3003, 0x3004, LBP_ID }, | ||
783 | { 0x3005, 0x3005, LBP_NS }, | ||
784 | { 0x3006, 0x3007, LBP_ID }, | ||
785 | { 0x3008, 0x3008, LBP_OP }, | ||
786 | { 0x3009, 0x3009, LBP_CL }, | ||
787 | { 0x300A, 0x300A, LBP_OP }, | ||
788 | { 0x300B, 0x300B, LBP_CL }, | ||
789 | { 0x300C, 0x300C, LBP_OP }, | ||
790 | { 0x300D, 0x300D, LBP_CL }, | ||
791 | { 0x300E, 0x300E, LBP_OP }, | ||
792 | { 0x300F, 0x300F, LBP_CL }, | ||
793 | { 0x3010, 0x3010, LBP_OP }, | ||
794 | { 0x3011, 0x3011, LBP_CL }, | ||
795 | { 0x3012, 0x3013, LBP_ID }, | ||
796 | { 0x3014, 0x3014, LBP_OP }, | ||
797 | { 0x3015, 0x3015, LBP_CL }, | ||
798 | { 0x3016, 0x3016, LBP_OP }, | ||
799 | { 0x3017, 0x3017, LBP_CL }, | ||
800 | { 0x3018, 0x3018, LBP_OP }, | ||
801 | { 0x3019, 0x3019, LBP_CL }, | ||
802 | { 0x301A, 0x301A, LBP_OP }, | ||
803 | { 0x301B, 0x301B, LBP_CL }, | ||
804 | { 0x301C, 0x301C, LBP_NS }, | ||
805 | { 0x301D, 0x301D, LBP_OP }, | ||
806 | { 0x301E, 0x301F, LBP_CL }, | ||
807 | { 0x3020, 0x3029, LBP_ID }, | ||
808 | { 0x302A, 0x302F, LBP_CM }, | ||
809 | { 0x3030, 0x3034, LBP_ID }, | ||
810 | { 0x3035, 0x3035, LBP_CM }, | ||
811 | { 0x3036, 0x303A, LBP_ID }, | ||
812 | { 0x303B, 0x303C, LBP_NS }, | ||
813 | { 0x303D, 0x303F, LBP_ID }, | ||
814 | { 0x3041, 0x3041, LBP_CJ }, | ||
815 | { 0x3042, 0x3042, LBP_ID }, | ||
816 | { 0x3043, 0x3043, LBP_CJ }, | ||
817 | { 0x3044, 0x3044, LBP_ID }, | ||
818 | { 0x3045, 0x3045, LBP_CJ }, | ||
819 | { 0x3046, 0x3046, LBP_ID }, | ||
820 | { 0x3047, 0x3047, LBP_CJ }, | ||
821 | { 0x3048, 0x3048, LBP_ID }, | ||
822 | { 0x3049, 0x3049, LBP_CJ }, | ||
823 | { 0x304A, 0x3062, LBP_ID }, | ||
824 | { 0x3063, 0x3063, LBP_CJ }, | ||
825 | { 0x3064, 0x3082, LBP_ID }, | ||
826 | { 0x3083, 0x3083, LBP_CJ }, | ||
827 | { 0x3084, 0x3084, LBP_ID }, | ||
828 | { 0x3085, 0x3085, LBP_CJ }, | ||
829 | { 0x3086, 0x3086, LBP_ID }, | ||
830 | { 0x3087, 0x3087, LBP_CJ }, | ||
831 | { 0x3088, 0x308D, LBP_ID }, | ||
832 | { 0x308E, 0x308E, LBP_CJ }, | ||
833 | { 0x308F, 0x3094, LBP_ID }, | ||
834 | { 0x3095, 0x3096, LBP_CJ }, | ||
835 | { 0x3099, 0x309A, LBP_CM }, | ||
836 | { 0x309B, 0x309E, LBP_NS }, | ||
837 | { 0x309F, 0x309F, LBP_ID }, | ||
838 | { 0x30A0, 0x30A0, LBP_NS }, | ||
839 | { 0x30A1, 0x30A1, LBP_CJ }, | ||
840 | { 0x30A2, 0x30A2, LBP_ID }, | ||
841 | { 0x30A3, 0x30A3, LBP_CJ }, | ||
842 | { 0x30A4, 0x30A4, LBP_ID }, | ||
843 | { 0x30A5, 0x30A5, LBP_CJ }, | ||
844 | { 0x30A6, 0x30A6, LBP_ID }, | ||
845 | { 0x30A7, 0x30A7, LBP_CJ }, | ||
846 | { 0x30A8, 0x30A8, LBP_ID }, | ||
847 | { 0x30A9, 0x30A9, LBP_CJ }, | ||
848 | { 0x30AA, 0x30C2, LBP_ID }, | ||
849 | { 0x30C3, 0x30C3, LBP_CJ }, | ||
850 | { 0x30C4, 0x30E2, LBP_ID }, | ||
851 | { 0x30E3, 0x30E3, LBP_CJ }, | ||
852 | { 0x30E4, 0x30E4, LBP_ID }, | ||
853 | { 0x30E5, 0x30E5, LBP_CJ }, | ||
854 | { 0x30E6, 0x30E6, LBP_ID }, | ||
855 | { 0x30E7, 0x30E7, LBP_CJ }, | ||
856 | { 0x30E8, 0x30ED, LBP_ID }, | ||
857 | { 0x30EE, 0x30EE, LBP_CJ }, | ||
858 | { 0x30EF, 0x30F4, LBP_ID }, | ||
859 | { 0x30F5, 0x30F6, LBP_CJ }, | ||
860 | { 0x30F7, 0x30FA, LBP_ID }, | ||
861 | { 0x30FB, 0x30FB, LBP_NS }, | ||
862 | { 0x30FC, 0x30FC, LBP_CJ }, | ||
863 | { 0x30FD, 0x30FE, LBP_NS }, | ||
864 | { 0x30FF, 0x31E3, LBP_ID }, | ||
865 | { 0x31F0, 0x31FF, LBP_CJ }, | ||
866 | { 0x3200, 0x3247, LBP_ID }, | ||
867 | { 0x3248, 0x324F, LBP_AI }, | ||
868 | { 0x3250, 0x4DBF, LBP_ID }, | ||
869 | { 0x4DC0, 0x4DFF, LBP_AL }, | ||
870 | { 0x4E00, 0xA014, LBP_ID }, | ||
871 | { 0xA015, 0xA015, LBP_NS }, | ||
872 | { 0xA016, 0xA4C6, LBP_ID }, | ||
873 | { 0xA4D0, 0xA4FD, LBP_AL }, | ||
874 | { 0xA4FE, 0xA4FF, LBP_BA }, | ||
875 | { 0xA500, 0xA60C, LBP_AL }, | ||
876 | { 0xA60D, 0xA60D, LBP_BA }, | ||
877 | { 0xA60E, 0xA60E, LBP_EX }, | ||
878 | { 0xA60F, 0xA60F, LBP_BA }, | ||
879 | { 0xA610, 0xA61F, LBP_AL }, | ||
880 | { 0xA620, 0xA629, LBP_NU }, | ||
881 | { 0xA62A, 0xA66E, LBP_AL }, | ||
882 | { 0xA66F, 0xA672, LBP_CM }, | ||
883 | { 0xA673, 0xA673, LBP_AL }, | ||
884 | { 0xA674, 0xA67D, LBP_CM }, | ||
885 | { 0xA67E, 0xA697, LBP_AL }, | ||
886 | { 0xA69F, 0xA69F, LBP_CM }, | ||
887 | { 0xA6A0, 0xA6EF, LBP_AL }, | ||
888 | { 0xA6F0, 0xA6F1, LBP_CM }, | ||
889 | { 0xA6F2, 0xA6F2, LBP_AL }, | ||
890 | { 0xA6F3, 0xA6F7, LBP_BA }, | ||
891 | { 0xA700, 0xA801, LBP_AL }, | ||
892 | { 0xA802, 0xA802, LBP_CM }, | ||
893 | { 0xA803, 0xA805, LBP_AL }, | ||
894 | { 0xA806, 0xA806, LBP_CM }, | ||
895 | { 0xA807, 0xA80A, LBP_AL }, | ||
896 | { 0xA80B, 0xA80B, LBP_CM }, | ||
897 | { 0xA80C, 0xA822, LBP_AL }, | ||
898 | { 0xA823, 0xA827, LBP_CM }, | ||
899 | { 0xA828, 0xA837, LBP_AL }, | ||
900 | { 0xA838, 0xA838, LBP_PO }, | ||
901 | { 0xA839, 0xA873, LBP_AL }, | ||
902 | { 0xA874, 0xA875, LBP_BB }, | ||
903 | { 0xA876, 0xA877, LBP_EX }, | ||
904 | { 0xA880, 0xA881, LBP_CM }, | ||
905 | { 0xA882, 0xA8B3, LBP_AL }, | ||
906 | { 0xA8B4, 0xA8C4, LBP_CM }, | ||
907 | { 0xA8CE, 0xA8CF, LBP_BA }, | ||
908 | { 0xA8D0, 0xA8D9, LBP_NU }, | ||
909 | { 0xA8E0, 0xA8F1, LBP_CM }, | ||
910 | { 0xA8F2, 0xA8FB, LBP_AL }, | ||
911 | { 0xA900, 0xA909, LBP_NU }, | ||
912 | { 0xA90A, 0xA925, LBP_AL }, | ||
913 | { 0xA926, 0xA92D, LBP_CM }, | ||
914 | { 0xA92E, 0xA92F, LBP_BA }, | ||
915 | { 0xA930, 0xA946, LBP_AL }, | ||
916 | { 0xA947, 0xA953, LBP_CM }, | ||
917 | { 0xA95F, 0xA95F, LBP_AL }, | ||
918 | { 0xA960, 0xA97C, LBP_JL }, | ||
919 | { 0xA980, 0xA983, LBP_CM }, | ||
920 | { 0xA984, 0xA9B2, LBP_AL }, | ||
921 | { 0xA9B3, 0xA9C0, LBP_CM }, | ||
922 | { 0xA9C1, 0xA9C6, LBP_AL }, | ||
923 | { 0xA9C7, 0xA9C9, LBP_BA }, | ||
924 | { 0xA9CA, 0xA9CF, LBP_AL }, | ||
925 | { 0xA9D0, 0xA9D9, LBP_NU }, | ||
926 | { 0xA9DE, 0xAA28, LBP_AL }, | ||
927 | { 0xAA29, 0xAA36, LBP_CM }, | ||
928 | { 0xAA40, 0xAA42, LBP_AL }, | ||
929 | { 0xAA43, 0xAA43, LBP_CM }, | ||
930 | { 0xAA44, 0xAA4B, LBP_AL }, | ||
931 | { 0xAA4C, 0xAA4D, LBP_CM }, | ||
932 | { 0xAA50, 0xAA59, LBP_NU }, | ||
933 | { 0xAA5C, 0xAA5C, LBP_AL }, | ||
934 | { 0xAA5D, 0xAA5F, LBP_BA }, | ||
935 | { 0xAA60, 0xAADF, LBP_SA }, | ||
936 | { 0xAAE0, 0xAAEA, LBP_AL }, | ||
937 | { 0xAAEB, 0xAAEF, LBP_CM }, | ||
938 | { 0xAAF0, 0xAAF1, LBP_BA }, | ||
939 | { 0xAAF2, 0xAAF4, LBP_AL }, | ||
940 | { 0xAAF5, 0xAAF6, LBP_CM }, | ||
941 | { 0xAB01, 0xABE2, LBP_AL }, | ||
942 | { 0xABE3, 0xABEA, LBP_CM }, | ||
943 | { 0xABEB, 0xABEB, LBP_BA }, | ||
944 | { 0xABEC, 0xABED, LBP_CM }, | ||
945 | { 0xABF0, 0xABF9, LBP_NU }, | ||
946 | { 0xAC00, 0xAC00, LBP_H2 }, | ||
947 | { 0xAC01, 0xAC1B, LBP_H3 }, | ||
948 | { 0xAC1C, 0xAC1C, LBP_H2 }, | ||
949 | { 0xAC1D, 0xAC37, LBP_H3 }, | ||
950 | { 0xAC38, 0xAC38, LBP_H2 }, | ||
951 | { 0xAC39, 0xAC53, LBP_H3 }, | ||
952 | { 0xAC54, 0xAC54, LBP_H2 }, | ||
953 | { 0xAC55, 0xAC6F, LBP_H3 }, | ||
954 | { 0xAC70, 0xAC70, LBP_H2 }, | ||
955 | { 0xAC71, 0xAC8B, LBP_H3 }, | ||
956 | { 0xAC8C, 0xAC8C, LBP_H2 }, | ||
957 | { 0xAC8D, 0xACA7, LBP_H3 }, | ||
958 | { 0xACA8, 0xACA8, LBP_H2 }, | ||
959 | { 0xACA9, 0xACC3, LBP_H3 }, | ||
960 | { 0xACC4, 0xACC4, LBP_H2 }, | ||
961 | { 0xACC5, 0xACDF, LBP_H3 }, | ||
962 | { 0xACE0, 0xACE0, LBP_H2 }, | ||
963 | { 0xACE1, 0xACFB, LBP_H3 }, | ||
964 | { 0xACFC, 0xACFC, LBP_H2 }, | ||
965 | { 0xACFD, 0xAD17, LBP_H3 }, | ||
966 | { 0xAD18, 0xAD18, LBP_H2 }, | ||
967 | { 0xAD19, 0xAD33, LBP_H3 }, | ||
968 | { 0xAD34, 0xAD34, LBP_H2 }, | ||
969 | { 0xAD35, 0xAD4F, LBP_H3 }, | ||
970 | { 0xAD50, 0xAD50, LBP_H2 }, | ||
971 | { 0xAD51, 0xAD6B, LBP_H3 }, | ||
972 | { 0xAD6C, 0xAD6C, LBP_H2 }, | ||
973 | { 0xAD6D, 0xAD87, LBP_H3 }, | ||
974 | { 0xAD88, 0xAD88, LBP_H2 }, | ||
975 | { 0xAD89, 0xADA3, LBP_H3 }, | ||
976 | { 0xADA4, 0xADA4, LBP_H2 }, | ||
977 | { 0xADA5, 0xADBF, LBP_H3 }, | ||
978 | { 0xADC0, 0xADC0, LBP_H2 }, | ||
979 | { 0xADC1, 0xADDB, LBP_H3 }, | ||
980 | { 0xADDC, 0xADDC, LBP_H2 }, | ||
981 | { 0xADDD, 0xADF7, LBP_H3 }, | ||
982 | { 0xADF8, 0xADF8, LBP_H2 }, | ||
983 | { 0xADF9, 0xAE13, LBP_H3 }, | ||
984 | { 0xAE14, 0xAE14, LBP_H2 }, | ||
985 | { 0xAE15, 0xAE2F, LBP_H3 }, | ||
986 | { 0xAE30, 0xAE30, LBP_H2 }, | ||
987 | { 0xAE31, 0xAE4B, LBP_H3 }, | ||
988 | { 0xAE4C, 0xAE4C, LBP_H2 }, | ||
989 | { 0xAE4D, 0xAE67, LBP_H3 }, | ||
990 | { 0xAE68, 0xAE68, LBP_H2 }, | ||
991 | { 0xAE69, 0xAE83, LBP_H3 }, | ||
992 | { 0xAE84, 0xAE84, LBP_H2 }, | ||
993 | { 0xAE85, 0xAE9F, LBP_H3 }, | ||
994 | { 0xAEA0, 0xAEA0, LBP_H2 }, | ||
995 | { 0xAEA1, 0xAEBB, LBP_H3 }, | ||
996 | { 0xAEBC, 0xAEBC, LBP_H2 }, | ||
997 | { 0xAEBD, 0xAED7, LBP_H3 }, | ||
998 | { 0xAED8, 0xAED8, LBP_H2 }, | ||
999 | { 0xAED9, 0xAEF3, LBP_H3 }, | ||
1000 | { 0xAEF4, 0xAEF4, LBP_H2 }, | ||
1001 | { 0xAEF5, 0xAF0F, LBP_H3 }, | ||
1002 | { 0xAF10, 0xAF10, LBP_H2 }, | ||
1003 | { 0xAF11, 0xAF2B, LBP_H3 }, | ||
1004 | { 0xAF2C, 0xAF2C, LBP_H2 }, | ||
1005 | { 0xAF2D, 0xAF47, LBP_H3 }, | ||
1006 | { 0xAF48, 0xAF48, LBP_H2 }, | ||
1007 | { 0xAF49, 0xAF63, LBP_H3 }, | ||
1008 | { 0xAF64, 0xAF64, LBP_H2 }, | ||
1009 | { 0xAF65, 0xAF7F, LBP_H3 }, | ||
1010 | { 0xAF80, 0xAF80, LBP_H2 }, | ||
1011 | { 0xAF81, 0xAF9B, LBP_H3 }, | ||
1012 | { 0xAF9C, 0xAF9C, LBP_H2 }, | ||
1013 | { 0xAF9D, 0xAFB7, LBP_H3 }, | ||
1014 | { 0xAFB8, 0xAFB8, LBP_H2 }, | ||
1015 | { 0xAFB9, 0xAFD3, LBP_H3 }, | ||
1016 | { 0xAFD4, 0xAFD4, LBP_H2 }, | ||
1017 | { 0xAFD5, 0xAFEF, LBP_H3 }, | ||
1018 | { 0xAFF0, 0xAFF0, LBP_H2 }, | ||
1019 | { 0xAFF1, 0xB00B, LBP_H3 }, | ||
1020 | { 0xB00C, 0xB00C, LBP_H2 }, | ||
1021 | { 0xB00D, 0xB027, LBP_H3 }, | ||
1022 | { 0xB028, 0xB028, LBP_H2 }, | ||
1023 | { 0xB029, 0xB043, LBP_H3 }, | ||
1024 | { 0xB044, 0xB044, LBP_H2 }, | ||
1025 | { 0xB045, 0xB05F, LBP_H3 }, | ||
1026 | { 0xB060, 0xB060, LBP_H2 }, | ||
1027 | { 0xB061, 0xB07B, LBP_H3 }, | ||
1028 | { 0xB07C, 0xB07C, LBP_H2 }, | ||
1029 | { 0xB07D, 0xB097, LBP_H3 }, | ||
1030 | { 0xB098, 0xB098, LBP_H2 }, | ||
1031 | { 0xB099, 0xB0B3, LBP_H3 }, | ||
1032 | { 0xB0B4, 0xB0B4, LBP_H2 }, | ||
1033 | { 0xB0B5, 0xB0CF, LBP_H3 }, | ||
1034 | { 0xB0D0, 0xB0D0, LBP_H2 }, | ||
1035 | { 0xB0D1, 0xB0EB, LBP_H3 }, | ||
1036 | { 0xB0EC, 0xB0EC, LBP_H2 }, | ||
1037 | { 0xB0ED, 0xB107, LBP_H3 }, | ||
1038 | { 0xB108, 0xB108, LBP_H2 }, | ||
1039 | { 0xB109, 0xB123, LBP_H3 }, | ||
1040 | { 0xB124, 0xB124, LBP_H2 }, | ||
1041 | { 0xB125, 0xB13F, LBP_H3 }, | ||
1042 | { 0xB140, 0xB140, LBP_H2 }, | ||
1043 | { 0xB141, 0xB15B, LBP_H3 }, | ||
1044 | { 0xB15C, 0xB15C, LBP_H2 }, | ||
1045 | { 0xB15D, 0xB177, LBP_H3 }, | ||
1046 | { 0xB178, 0xB178, LBP_H2 }, | ||
1047 | { 0xB179, 0xB193, LBP_H3 }, | ||
1048 | { 0xB194, 0xB194, LBP_H2 }, | ||
1049 | { 0xB195, 0xB1AF, LBP_H3 }, | ||
1050 | { 0xB1B0, 0xB1B0, LBP_H2 }, | ||
1051 | { 0xB1B1, 0xB1CB, LBP_H3 }, | ||
1052 | { 0xB1CC, 0xB1CC, LBP_H2 }, | ||
1053 | { 0xB1CD, 0xB1E7, LBP_H3 }, | ||
1054 | { 0xB1E8, 0xB1E8, LBP_H2 }, | ||
1055 | { 0xB1E9, 0xB203, LBP_H3 }, | ||
1056 | { 0xB204, 0xB204, LBP_H2 }, | ||
1057 | { 0xB205, 0xB21F, LBP_H3 }, | ||
1058 | { 0xB220, 0xB220, LBP_H2 }, | ||
1059 | { 0xB221, 0xB23B, LBP_H3 }, | ||
1060 | { 0xB23C, 0xB23C, LBP_H2 }, | ||
1061 | { 0xB23D, 0xB257, LBP_H3 }, | ||
1062 | { 0xB258, 0xB258, LBP_H2 }, | ||
1063 | { 0xB259, 0xB273, LBP_H3 }, | ||
1064 | { 0xB274, 0xB274, LBP_H2 }, | ||
1065 | { 0xB275, 0xB28F, LBP_H3 }, | ||
1066 | { 0xB290, 0xB290, LBP_H2 }, | ||
1067 | { 0xB291, 0xB2AB, LBP_H3 }, | ||
1068 | { 0xB2AC, 0xB2AC, LBP_H2 }, | ||
1069 | { 0xB2AD, 0xB2C7, LBP_H3 }, | ||
1070 | { 0xB2C8, 0xB2C8, LBP_H2 }, | ||
1071 | { 0xB2C9, 0xB2E3, LBP_H3 }, | ||
1072 | { 0xB2E4, 0xB2E4, LBP_H2 }, | ||
1073 | { 0xB2E5, 0xB2FF, LBP_H3 }, | ||
1074 | { 0xB300, 0xB300, LBP_H2 }, | ||
1075 | { 0xB301, 0xB31B, LBP_H3 }, | ||
1076 | { 0xB31C, 0xB31C, LBP_H2 }, | ||
1077 | { 0xB31D, 0xB337, LBP_H3 }, | ||
1078 | { 0xB338, 0xB338, LBP_H2 }, | ||
1079 | { 0xB339, 0xB353, LBP_H3 }, | ||
1080 | { 0xB354, 0xB354, LBP_H2 }, | ||
1081 | { 0xB355, 0xB36F, LBP_H3 }, | ||
1082 | { 0xB370, 0xB370, LBP_H2 }, | ||
1083 | { 0xB371, 0xB38B, LBP_H3 }, | ||
1084 | { 0xB38C, 0xB38C, LBP_H2 }, | ||
1085 | { 0xB38D, 0xB3A7, LBP_H3 }, | ||
1086 | { 0xB3A8, 0xB3A8, LBP_H2 }, | ||
1087 | { 0xB3A9, 0xB3C3, LBP_H3 }, | ||
1088 | { 0xB3C4, 0xB3C4, LBP_H2 }, | ||
1089 | { 0xB3C5, 0xB3DF, LBP_H3 }, | ||
1090 | { 0xB3E0, 0xB3E0, LBP_H2 }, | ||
1091 | { 0xB3E1, 0xB3FB, LBP_H3 }, | ||
1092 | { 0xB3FC, 0xB3FC, LBP_H2 }, | ||
1093 | { 0xB3FD, 0xB417, LBP_H3 }, | ||
1094 | { 0xB418, 0xB418, LBP_H2 }, | ||
1095 | { 0xB419, 0xB433, LBP_H3 }, | ||
1096 | { 0xB434, 0xB434, LBP_H2 }, | ||
1097 | { 0xB435, 0xB44F, LBP_H3 }, | ||
1098 | { 0xB450, 0xB450, LBP_H2 }, | ||
1099 | { 0xB451, 0xB46B, LBP_H3 }, | ||
1100 | { 0xB46C, 0xB46C, LBP_H2 }, | ||
1101 | { 0xB46D, 0xB487, LBP_H3 }, | ||
1102 | { 0xB488, 0xB488, LBP_H2 }, | ||
1103 | { 0xB489, 0xB4A3, LBP_H3 }, | ||
1104 | { 0xB4A4, 0xB4A4, LBP_H2 }, | ||
1105 | { 0xB4A5, 0xB4BF, LBP_H3 }, | ||
1106 | { 0xB4C0, 0xB4C0, LBP_H2 }, | ||
1107 | { 0xB4C1, 0xB4DB, LBP_H3 }, | ||
1108 | { 0xB4DC, 0xB4DC, LBP_H2 }, | ||
1109 | { 0xB4DD, 0xB4F7, LBP_H3 }, | ||
1110 | { 0xB4F8, 0xB4F8, LBP_H2 }, | ||
1111 | { 0xB4F9, 0xB513, LBP_H3 }, | ||
1112 | { 0xB514, 0xB514, LBP_H2 }, | ||
1113 | { 0xB515, 0xB52F, LBP_H3 }, | ||
1114 | { 0xB530, 0xB530, LBP_H2 }, | ||
1115 | { 0xB531, 0xB54B, LBP_H3 }, | ||
1116 | { 0xB54C, 0xB54C, LBP_H2 }, | ||
1117 | { 0xB54D, 0xB567, LBP_H3 }, | ||
1118 | { 0xB568, 0xB568, LBP_H2 }, | ||
1119 | { 0xB569, 0xB583, LBP_H3 }, | ||
1120 | { 0xB584, 0xB584, LBP_H2 }, | ||
1121 | { 0xB585, 0xB59F, LBP_H3 }, | ||
1122 | { 0xB5A0, 0xB5A0, LBP_H2 }, | ||
1123 | { 0xB5A1, 0xB5BB, LBP_H3 }, | ||
1124 | { 0xB5BC, 0xB5BC, LBP_H2 }, | ||
1125 | { 0xB5BD, 0xB5D7, LBP_H3 }, | ||
1126 | { 0xB5D8, 0xB5D8, LBP_H2 }, | ||
1127 | { 0xB5D9, 0xB5F3, LBP_H3 }, | ||
1128 | { 0xB5F4, 0xB5F4, LBP_H2 }, | ||
1129 | { 0xB5F5, 0xB60F, LBP_H3 }, | ||
1130 | { 0xB610, 0xB610, LBP_H2 }, | ||
1131 | { 0xB611, 0xB62B, LBP_H3 }, | ||
1132 | { 0xB62C, 0xB62C, LBP_H2 }, | ||
1133 | { 0xB62D, 0xB647, LBP_H3 }, | ||
1134 | { 0xB648, 0xB648, LBP_H2 }, | ||
1135 | { 0xB649, 0xB663, LBP_H3 }, | ||
1136 | { 0xB664, 0xB664, LBP_H2 }, | ||
1137 | { 0xB665, 0xB67F, LBP_H3 }, | ||
1138 | { 0xB680, 0xB680, LBP_H2 }, | ||
1139 | { 0xB681, 0xB69B, LBP_H3 }, | ||
1140 | { 0xB69C, 0xB69C, LBP_H2 }, | ||
1141 | { 0xB69D, 0xB6B7, LBP_H3 }, | ||
1142 | { 0xB6B8, 0xB6B8, LBP_H2 }, | ||
1143 | { 0xB6B9, 0xB6D3, LBP_H3 }, | ||
1144 | { 0xB6D4, 0xB6D4, LBP_H2 }, | ||
1145 | { 0xB6D5, 0xB6EF, LBP_H3 }, | ||
1146 | { 0xB6F0, 0xB6F0, LBP_H2 }, | ||
1147 | { 0xB6F1, 0xB70B, LBP_H3 }, | ||
1148 | { 0xB70C, 0xB70C, LBP_H2 }, | ||
1149 | { 0xB70D, 0xB727, LBP_H3 }, | ||
1150 | { 0xB728, 0xB728, LBP_H2 }, | ||
1151 | { 0xB729, 0xB743, LBP_H3 }, | ||
1152 | { 0xB744, 0xB744, LBP_H2 }, | ||
1153 | { 0xB745, 0xB75F, LBP_H3 }, | ||
1154 | { 0xB760, 0xB760, LBP_H2 }, | ||
1155 | { 0xB761, 0xB77B, LBP_H3 }, | ||
1156 | { 0xB77C, 0xB77C, LBP_H2 }, | ||
1157 | { 0xB77D, 0xB797, LBP_H3 }, | ||
1158 | { 0xB798, 0xB798, LBP_H2 }, | ||
1159 | { 0xB799, 0xB7B3, LBP_H3 }, | ||
1160 | { 0xB7B4, 0xB7B4, LBP_H2 }, | ||
1161 | { 0xB7B5, 0xB7CF, LBP_H3 }, | ||
1162 | { 0xB7D0, 0xB7D0, LBP_H2 }, | ||
1163 | { 0xB7D1, 0xB7EB, LBP_H3 }, | ||
1164 | { 0xB7EC, 0xB7EC, LBP_H2 }, | ||
1165 | { 0xB7ED, 0xB807, LBP_H3 }, | ||
1166 | { 0xB808, 0xB808, LBP_H2 }, | ||
1167 | { 0xB809, 0xB823, LBP_H3 }, | ||
1168 | { 0xB824, 0xB824, LBP_H2 }, | ||
1169 | { 0xB825, 0xB83F, LBP_H3 }, | ||
1170 | { 0xB840, 0xB840, LBP_H2 }, | ||
1171 | { 0xB841, 0xB85B, LBP_H3 }, | ||
1172 | { 0xB85C, 0xB85C, LBP_H2 }, | ||
1173 | { 0xB85D, 0xB877, LBP_H3 }, | ||
1174 | { 0xB878, 0xB878, LBP_H2 }, | ||
1175 | { 0xB879, 0xB893, LBP_H3 }, | ||
1176 | { 0xB894, 0xB894, LBP_H2 }, | ||
1177 | { 0xB895, 0xB8AF, LBP_H3 }, | ||
1178 | { 0xB8B0, 0xB8B0, LBP_H2 }, | ||
1179 | { 0xB8B1, 0xB8CB, LBP_H3 }, | ||
1180 | { 0xB8CC, 0xB8CC, LBP_H2 }, | ||
1181 | { 0xB8CD, 0xB8E7, LBP_H3 }, | ||
1182 | { 0xB8E8, 0xB8E8, LBP_H2 }, | ||
1183 | { 0xB8E9, 0xB903, LBP_H3 }, | ||
1184 | { 0xB904, 0xB904, LBP_H2 }, | ||
1185 | { 0xB905, 0xB91F, LBP_H3 }, | ||
1186 | { 0xB920, 0xB920, LBP_H2 }, | ||
1187 | { 0xB921, 0xB93B, LBP_H3 }, | ||
1188 | { 0xB93C, 0xB93C, LBP_H2 }, | ||
1189 | { 0xB93D, 0xB957, LBP_H3 }, | ||
1190 | { 0xB958, 0xB958, LBP_H2 }, | ||
1191 | { 0xB959, 0xB973, LBP_H3 }, | ||
1192 | { 0xB974, 0xB974, LBP_H2 }, | ||
1193 | { 0xB975, 0xB98F, LBP_H3 }, | ||
1194 | { 0xB990, 0xB990, LBP_H2 }, | ||
1195 | { 0xB991, 0xB9AB, LBP_H3 }, | ||
1196 | { 0xB9AC, 0xB9AC, LBP_H2 }, | ||
1197 | { 0xB9AD, 0xB9C7, LBP_H3 }, | ||
1198 | { 0xB9C8, 0xB9C8, LBP_H2 }, | ||
1199 | { 0xB9C9, 0xB9E3, LBP_H3 }, | ||
1200 | { 0xB9E4, 0xB9E4, LBP_H2 }, | ||
1201 | { 0xB9E5, 0xB9FF, LBP_H3 }, | ||
1202 | { 0xBA00, 0xBA00, LBP_H2 }, | ||
1203 | { 0xBA01, 0xBA1B, LBP_H3 }, | ||
1204 | { 0xBA1C, 0xBA1C, LBP_H2 }, | ||
1205 | { 0xBA1D, 0xBA37, LBP_H3 }, | ||
1206 | { 0xBA38, 0xBA38, LBP_H2 }, | ||
1207 | { 0xBA39, 0xBA53, LBP_H3 }, | ||
1208 | { 0xBA54, 0xBA54, LBP_H2 }, | ||
1209 | { 0xBA55, 0xBA6F, LBP_H3 }, | ||
1210 | { 0xBA70, 0xBA70, LBP_H2 }, | ||
1211 | { 0xBA71, 0xBA8B, LBP_H3 }, | ||
1212 | { 0xBA8C, 0xBA8C, LBP_H2 }, | ||
1213 | { 0xBA8D, 0xBAA7, LBP_H3 }, | ||
1214 | { 0xBAA8, 0xBAA8, LBP_H2 }, | ||
1215 | { 0xBAA9, 0xBAC3, LBP_H3 }, | ||
1216 | { 0xBAC4, 0xBAC4, LBP_H2 }, | ||
1217 | { 0xBAC5, 0xBADF, LBP_H3 }, | ||
1218 | { 0xBAE0, 0xBAE0, LBP_H2 }, | ||
1219 | { 0xBAE1, 0xBAFB, LBP_H3 }, | ||
1220 | { 0xBAFC, 0xBAFC, LBP_H2 }, | ||
1221 | { 0xBAFD, 0xBB17, LBP_H3 }, | ||
1222 | { 0xBB18, 0xBB18, LBP_H2 }, | ||
1223 | { 0xBB19, 0xBB33, LBP_H3 }, | ||
1224 | { 0xBB34, 0xBB34, LBP_H2 }, | ||
1225 | { 0xBB35, 0xBB4F, LBP_H3 }, | ||
1226 | { 0xBB50, 0xBB50, LBP_H2 }, | ||
1227 | { 0xBB51, 0xBB6B, LBP_H3 }, | ||
1228 | { 0xBB6C, 0xBB6C, LBP_H2 }, | ||
1229 | { 0xBB6D, 0xBB87, LBP_H3 }, | ||
1230 | { 0xBB88, 0xBB88, LBP_H2 }, | ||
1231 | { 0xBB89, 0xBBA3, LBP_H3 }, | ||
1232 | { 0xBBA4, 0xBBA4, LBP_H2 }, | ||
1233 | { 0xBBA5, 0xBBBF, LBP_H3 }, | ||
1234 | { 0xBBC0, 0xBBC0, LBP_H2 }, | ||
1235 | { 0xBBC1, 0xBBDB, LBP_H3 }, | ||
1236 | { 0xBBDC, 0xBBDC, LBP_H2 }, | ||
1237 | { 0xBBDD, 0xBBF7, LBP_H3 }, | ||
1238 | { 0xBBF8, 0xBBF8, LBP_H2 }, | ||
1239 | { 0xBBF9, 0xBC13, LBP_H3 }, | ||
1240 | { 0xBC14, 0xBC14, LBP_H2 }, | ||
1241 | { 0xBC15, 0xBC2F, LBP_H3 }, | ||
1242 | { 0xBC30, 0xBC30, LBP_H2 }, | ||
1243 | { 0xBC31, 0xBC4B, LBP_H3 }, | ||
1244 | { 0xBC4C, 0xBC4C, LBP_H2 }, | ||
1245 | { 0xBC4D, 0xBC67, LBP_H3 }, | ||
1246 | { 0xBC68, 0xBC68, LBP_H2 }, | ||
1247 | { 0xBC69, 0xBC83, LBP_H3 }, | ||
1248 | { 0xBC84, 0xBC84, LBP_H2 }, | ||
1249 | { 0xBC85, 0xBC9F, LBP_H3 }, | ||
1250 | { 0xBCA0, 0xBCA0, LBP_H2 }, | ||
1251 | { 0xBCA1, 0xBCBB, LBP_H3 }, | ||
1252 | { 0xBCBC, 0xBCBC, LBP_H2 }, | ||
1253 | { 0xBCBD, 0xBCD7, LBP_H3 }, | ||
1254 | { 0xBCD8, 0xBCD8, LBP_H2 }, | ||
1255 | { 0xBCD9, 0xBCF3, LBP_H3 }, | ||
1256 | { 0xBCF4, 0xBCF4, LBP_H2 }, | ||
1257 | { 0xBCF5, 0xBD0F, LBP_H3 }, | ||
1258 | { 0xBD10, 0xBD10, LBP_H2 }, | ||
1259 | { 0xBD11, 0xBD2B, LBP_H3 }, | ||
1260 | { 0xBD2C, 0xBD2C, LBP_H2 }, | ||
1261 | { 0xBD2D, 0xBD47, LBP_H3 }, | ||
1262 | { 0xBD48, 0xBD48, LBP_H2 }, | ||
1263 | { 0xBD49, 0xBD63, LBP_H3 }, | ||
1264 | { 0xBD64, 0xBD64, LBP_H2 }, | ||
1265 | { 0xBD65, 0xBD7F, LBP_H3 }, | ||
1266 | { 0xBD80, 0xBD80, LBP_H2 }, | ||
1267 | { 0xBD81, 0xBD9B, LBP_H3 }, | ||
1268 | { 0xBD9C, 0xBD9C, LBP_H2 }, | ||
1269 | { 0xBD9D, 0xBDB7, LBP_H3 }, | ||
1270 | { 0xBDB8, 0xBDB8, LBP_H2 }, | ||
1271 | { 0xBDB9, 0xBDD3, LBP_H3 }, | ||
1272 | { 0xBDD4, 0xBDD4, LBP_H2 }, | ||
1273 | { 0xBDD5, 0xBDEF, LBP_H3 }, | ||
1274 | { 0xBDF0, 0xBDF0, LBP_H2 }, | ||
1275 | { 0xBDF1, 0xBE0B, LBP_H3 }, | ||
1276 | { 0xBE0C, 0xBE0C, LBP_H2 }, | ||
1277 | { 0xBE0D, 0xBE27, LBP_H3 }, | ||
1278 | { 0xBE28, 0xBE28, LBP_H2 }, | ||
1279 | { 0xBE29, 0xBE43, LBP_H3 }, | ||
1280 | { 0xBE44, 0xBE44, LBP_H2 }, | ||
1281 | { 0xBE45, 0xBE5F, LBP_H3 }, | ||
1282 | { 0xBE60, 0xBE60, LBP_H2 }, | ||
1283 | { 0xBE61, 0xBE7B, LBP_H3 }, | ||
1284 | { 0xBE7C, 0xBE7C, LBP_H2 }, | ||
1285 | { 0xBE7D, 0xBE97, LBP_H3 }, | ||
1286 | { 0xBE98, 0xBE98, LBP_H2 }, | ||
1287 | { 0xBE99, 0xBEB3, LBP_H3 }, | ||
1288 | { 0xBEB4, 0xBEB4, LBP_H2 }, | ||
1289 | { 0xBEB5, 0xBECF, LBP_H3 }, | ||
1290 | { 0xBED0, 0xBED0, LBP_H2 }, | ||
1291 | { 0xBED1, 0xBEEB, LBP_H3 }, | ||
1292 | { 0xBEEC, 0xBEEC, LBP_H2 }, | ||
1293 | { 0xBEED, 0xBF07, LBP_H3 }, | ||
1294 | { 0xBF08, 0xBF08, LBP_H2 }, | ||
1295 | { 0xBF09, 0xBF23, LBP_H3 }, | ||
1296 | { 0xBF24, 0xBF24, LBP_H2 }, | ||
1297 | { 0xBF25, 0xBF3F, LBP_H3 }, | ||
1298 | { 0xBF40, 0xBF40, LBP_H2 }, | ||
1299 | { 0xBF41, 0xBF5B, LBP_H3 }, | ||
1300 | { 0xBF5C, 0xBF5C, LBP_H2 }, | ||
1301 | { 0xBF5D, 0xBF77, LBP_H3 }, | ||
1302 | { 0xBF78, 0xBF78, LBP_H2 }, | ||
1303 | { 0xBF79, 0xBF93, LBP_H3 }, | ||
1304 | { 0xBF94, 0xBF94, LBP_H2 }, | ||
1305 | { 0xBF95, 0xBFAF, LBP_H3 }, | ||
1306 | { 0xBFB0, 0xBFB0, LBP_H2 }, | ||
1307 | { 0xBFB1, 0xBFCB, LBP_H3 }, | ||
1308 | { 0xBFCC, 0xBFCC, LBP_H2 }, | ||
1309 | { 0xBFCD, 0xBFE7, LBP_H3 }, | ||
1310 | { 0xBFE8, 0xBFE8, LBP_H2 }, | ||
1311 | { 0xBFE9, 0xC003, LBP_H3 }, | ||
1312 | { 0xC004, 0xC004, LBP_H2 }, | ||
1313 | { 0xC005, 0xC01F, LBP_H3 }, | ||
1314 | { 0xC020, 0xC020, LBP_H2 }, | ||
1315 | { 0xC021, 0xC03B, LBP_H3 }, | ||
1316 | { 0xC03C, 0xC03C, LBP_H2 }, | ||
1317 | { 0xC03D, 0xC057, LBP_H3 }, | ||
1318 | { 0xC058, 0xC058, LBP_H2 }, | ||
1319 | { 0xC059, 0xC073, LBP_H3 }, | ||
1320 | { 0xC074, 0xC074, LBP_H2 }, | ||
1321 | { 0xC075, 0xC08F, LBP_H3 }, | ||
1322 | { 0xC090, 0xC090, LBP_H2 }, | ||
1323 | { 0xC091, 0xC0AB, LBP_H3 }, | ||
1324 | { 0xC0AC, 0xC0AC, LBP_H2 }, | ||
1325 | { 0xC0AD, 0xC0C7, LBP_H3 }, | ||
1326 | { 0xC0C8, 0xC0C8, LBP_H2 }, | ||
1327 | { 0xC0C9, 0xC0E3, LBP_H3 }, | ||
1328 | { 0xC0E4, 0xC0E4, LBP_H2 }, | ||
1329 | { 0xC0E5, 0xC0FF, LBP_H3 }, | ||
1330 | { 0xC100, 0xC100, LBP_H2 }, | ||
1331 | { 0xC101, 0xC11B, LBP_H3 }, | ||
1332 | { 0xC11C, 0xC11C, LBP_H2 }, | ||
1333 | { 0xC11D, 0xC137, LBP_H3 }, | ||
1334 | { 0xC138, 0xC138, LBP_H2 }, | ||
1335 | { 0xC139, 0xC153, LBP_H3 }, | ||
1336 | { 0xC154, 0xC154, LBP_H2 }, | ||
1337 | { 0xC155, 0xC16F, LBP_H3 }, | ||
1338 | { 0xC170, 0xC170, LBP_H2 }, | ||
1339 | { 0xC171, 0xC18B, LBP_H3 }, | ||
1340 | { 0xC18C, 0xC18C, LBP_H2 }, | ||
1341 | { 0xC18D, 0xC1A7, LBP_H3 }, | ||
1342 | { 0xC1A8, 0xC1A8, LBP_H2 }, | ||
1343 | { 0xC1A9, 0xC1C3, LBP_H3 }, | ||
1344 | { 0xC1C4, 0xC1C4, LBP_H2 }, | ||
1345 | { 0xC1C5, 0xC1DF, LBP_H3 }, | ||
1346 | { 0xC1E0, 0xC1E0, LBP_H2 }, | ||
1347 | { 0xC1E1, 0xC1FB, LBP_H3 }, | ||
1348 | { 0xC1FC, 0xC1FC, LBP_H2 }, | ||
1349 | { 0xC1FD, 0xC217, LBP_H3 }, | ||
1350 | { 0xC218, 0xC218, LBP_H2 }, | ||
1351 | { 0xC219, 0xC233, LBP_H3 }, | ||
1352 | { 0xC234, 0xC234, LBP_H2 }, | ||
1353 | { 0xC235, 0xC24F, LBP_H3 }, | ||
1354 | { 0xC250, 0xC250, LBP_H2 }, | ||
1355 | { 0xC251, 0xC26B, LBP_H3 }, | ||
1356 | { 0xC26C, 0xC26C, LBP_H2 }, | ||
1357 | { 0xC26D, 0xC287, LBP_H3 }, | ||
1358 | { 0xC288, 0xC288, LBP_H2 }, | ||
1359 | { 0xC289, 0xC2A3, LBP_H3 }, | ||
1360 | { 0xC2A4, 0xC2A4, LBP_H2 }, | ||
1361 | { 0xC2A5, 0xC2BF, LBP_H3 }, | ||
1362 | { 0xC2C0, 0xC2C0, LBP_H2 }, | ||
1363 | { 0xC2C1, 0xC2DB, LBP_H3 }, | ||
1364 | { 0xC2DC, 0xC2DC, LBP_H2 }, | ||
1365 | { 0xC2DD, 0xC2F7, LBP_H3 }, | ||
1366 | { 0xC2F8, 0xC2F8, LBP_H2 }, | ||
1367 | { 0xC2F9, 0xC313, LBP_H3 }, | ||
1368 | { 0xC314, 0xC314, LBP_H2 }, | ||
1369 | { 0xC315, 0xC32F, LBP_H3 }, | ||
1370 | { 0xC330, 0xC330, LBP_H2 }, | ||
1371 | { 0xC331, 0xC34B, LBP_H3 }, | ||
1372 | { 0xC34C, 0xC34C, LBP_H2 }, | ||
1373 | { 0xC34D, 0xC367, LBP_H3 }, | ||
1374 | { 0xC368, 0xC368, LBP_H2 }, | ||
1375 | { 0xC369, 0xC383, LBP_H3 }, | ||
1376 | { 0xC384, 0xC384, LBP_H2 }, | ||
1377 | { 0xC385, 0xC39F, LBP_H3 }, | ||
1378 | { 0xC3A0, 0xC3A0, LBP_H2 }, | ||
1379 | { 0xC3A1, 0xC3BB, LBP_H3 }, | ||
1380 | { 0xC3BC, 0xC3BC, LBP_H2 }, | ||
1381 | { 0xC3BD, 0xC3D7, LBP_H3 }, | ||
1382 | { 0xC3D8, 0xC3D8, LBP_H2 }, | ||
1383 | { 0xC3D9, 0xC3F3, LBP_H3 }, | ||
1384 | { 0xC3F4, 0xC3F4, LBP_H2 }, | ||
1385 | { 0xC3F5, 0xC40F, LBP_H3 }, | ||
1386 | { 0xC410, 0xC410, LBP_H2 }, | ||
1387 | { 0xC411, 0xC42B, LBP_H3 }, | ||
1388 | { 0xC42C, 0xC42C, LBP_H2 }, | ||
1389 | { 0xC42D, 0xC447, LBP_H3 }, | ||
1390 | { 0xC448, 0xC448, LBP_H2 }, | ||
1391 | { 0xC449, 0xC463, LBP_H3 }, | ||
1392 | { 0xC464, 0xC464, LBP_H2 }, | ||
1393 | { 0xC465, 0xC47F, LBP_H3 }, | ||
1394 | { 0xC480, 0xC480, LBP_H2 }, | ||
1395 | { 0xC481, 0xC49B, LBP_H3 }, | ||
1396 | { 0xC49C, 0xC49C, LBP_H2 }, | ||
1397 | { 0xC49D, 0xC4B7, LBP_H3 }, | ||
1398 | { 0xC4B8, 0xC4B8, LBP_H2 }, | ||
1399 | { 0xC4B9, 0xC4D3, LBP_H3 }, | ||
1400 | { 0xC4D4, 0xC4D4, LBP_H2 }, | ||
1401 | { 0xC4D5, 0xC4EF, LBP_H3 }, | ||
1402 | { 0xC4F0, 0xC4F0, LBP_H2 }, | ||
1403 | { 0xC4F1, 0xC50B, LBP_H3 }, | ||
1404 | { 0xC50C, 0xC50C, LBP_H2 }, | ||
1405 | { 0xC50D, 0xC527, LBP_H3 }, | ||
1406 | { 0xC528, 0xC528, LBP_H2 }, | ||
1407 | { 0xC529, 0xC543, LBP_H3 }, | ||
1408 | { 0xC544, 0xC544, LBP_H2 }, | ||
1409 | { 0xC545, 0xC55F, LBP_H3 }, | ||
1410 | { 0xC560, 0xC560, LBP_H2 }, | ||
1411 | { 0xC561, 0xC57B, LBP_H3 }, | ||
1412 | { 0xC57C, 0xC57C, LBP_H2 }, | ||
1413 | { 0xC57D, 0xC597, LBP_H3 }, | ||
1414 | { 0xC598, 0xC598, LBP_H2 }, | ||
1415 | { 0xC599, 0xC5B3, LBP_H3 }, | ||
1416 | { 0xC5B4, 0xC5B4, LBP_H2 }, | ||
1417 | { 0xC5B5, 0xC5CF, LBP_H3 }, | ||
1418 | { 0xC5D0, 0xC5D0, LBP_H2 }, | ||
1419 | { 0xC5D1, 0xC5EB, LBP_H3 }, | ||
1420 | { 0xC5EC, 0xC5EC, LBP_H2 }, | ||
1421 | { 0xC5ED, 0xC607, LBP_H3 }, | ||
1422 | { 0xC608, 0xC608, LBP_H2 }, | ||
1423 | { 0xC609, 0xC623, LBP_H3 }, | ||
1424 | { 0xC624, 0xC624, LBP_H2 }, | ||
1425 | { 0xC625, 0xC63F, LBP_H3 }, | ||
1426 | { 0xC640, 0xC640, LBP_H2 }, | ||
1427 | { 0xC641, 0xC65B, LBP_H3 }, | ||
1428 | { 0xC65C, 0xC65C, LBP_H2 }, | ||
1429 | { 0xC65D, 0xC677, LBP_H3 }, | ||
1430 | { 0xC678, 0xC678, LBP_H2 }, | ||
1431 | { 0xC679, 0xC693, LBP_H3 }, | ||
1432 | { 0xC694, 0xC694, LBP_H2 }, | ||
1433 | { 0xC695, 0xC6AF, LBP_H3 }, | ||
1434 | { 0xC6B0, 0xC6B0, LBP_H2 }, | ||
1435 | { 0xC6B1, 0xC6CB, LBP_H3 }, | ||
1436 | { 0xC6CC, 0xC6CC, LBP_H2 }, | ||
1437 | { 0xC6CD, 0xC6E7, LBP_H3 }, | ||
1438 | { 0xC6E8, 0xC6E8, LBP_H2 }, | ||
1439 | { 0xC6E9, 0xC703, LBP_H3 }, | ||
1440 | { 0xC704, 0xC704, LBP_H2 }, | ||
1441 | { 0xC705, 0xC71F, LBP_H3 }, | ||
1442 | { 0xC720, 0xC720, LBP_H2 }, | ||
1443 | { 0xC721, 0xC73B, LBP_H3 }, | ||
1444 | { 0xC73C, 0xC73C, LBP_H2 }, | ||
1445 | { 0xC73D, 0xC757, LBP_H3 }, | ||
1446 | { 0xC758, 0xC758, LBP_H2 }, | ||
1447 | { 0xC759, 0xC773, LBP_H3 }, | ||
1448 | { 0xC774, 0xC774, LBP_H2 }, | ||
1449 | { 0xC775, 0xC78F, LBP_H3 }, | ||
1450 | { 0xC790, 0xC790, LBP_H2 }, | ||
1451 | { 0xC791, 0xC7AB, LBP_H3 }, | ||
1452 | { 0xC7AC, 0xC7AC, LBP_H2 }, | ||
1453 | { 0xC7AD, 0xC7C7, LBP_H3 }, | ||
1454 | { 0xC7C8, 0xC7C8, LBP_H2 }, | ||
1455 | { 0xC7C9, 0xC7E3, LBP_H3 }, | ||
1456 | { 0xC7E4, 0xC7E4, LBP_H2 }, | ||
1457 | { 0xC7E5, 0xC7FF, LBP_H3 }, | ||
1458 | { 0xC800, 0xC800, LBP_H2 }, | ||
1459 | { 0xC801, 0xC81B, LBP_H3 }, | ||
1460 | { 0xC81C, 0xC81C, LBP_H2 }, | ||
1461 | { 0xC81D, 0xC837, LBP_H3 }, | ||
1462 | { 0xC838, 0xC838, LBP_H2 }, | ||
1463 | { 0xC839, 0xC853, LBP_H3 }, | ||
1464 | { 0xC854, 0xC854, LBP_H2 }, | ||
1465 | { 0xC855, 0xC86F, LBP_H3 }, | ||
1466 | { 0xC870, 0xC870, LBP_H2 }, | ||
1467 | { 0xC871, 0xC88B, LBP_H3 }, | ||
1468 | { 0xC88C, 0xC88C, LBP_H2 }, | ||
1469 | { 0xC88D, 0xC8A7, LBP_H3 }, | ||
1470 | { 0xC8A8, 0xC8A8, LBP_H2 }, | ||
1471 | { 0xC8A9, 0xC8C3, LBP_H3 }, | ||
1472 | { 0xC8C4, 0xC8C4, LBP_H2 }, | ||
1473 | { 0xC8C5, 0xC8DF, LBP_H3 }, | ||
1474 | { 0xC8E0, 0xC8E0, LBP_H2 }, | ||
1475 | { 0xC8E1, 0xC8FB, LBP_H3 }, | ||
1476 | { 0xC8FC, 0xC8FC, LBP_H2 }, | ||
1477 | { 0xC8FD, 0xC917, LBP_H3 }, | ||
1478 | { 0xC918, 0xC918, LBP_H2 }, | ||
1479 | { 0xC919, 0xC933, LBP_H3 }, | ||
1480 | { 0xC934, 0xC934, LBP_H2 }, | ||
1481 | { 0xC935, 0xC94F, LBP_H3 }, | ||
1482 | { 0xC950, 0xC950, LBP_H2 }, | ||
1483 | { 0xC951, 0xC96B, LBP_H3 }, | ||
1484 | { 0xC96C, 0xC96C, LBP_H2 }, | ||
1485 | { 0xC96D, 0xC987, LBP_H3 }, | ||
1486 | { 0xC988, 0xC988, LBP_H2 }, | ||
1487 | { 0xC989, 0xC9A3, LBP_H3 }, | ||
1488 | { 0xC9A4, 0xC9A4, LBP_H2 }, | ||
1489 | { 0xC9A5, 0xC9BF, LBP_H3 }, | ||
1490 | { 0xC9C0, 0xC9C0, LBP_H2 }, | ||
1491 | { 0xC9C1, 0xC9DB, LBP_H3 }, | ||
1492 | { 0xC9DC, 0xC9DC, LBP_H2 }, | ||
1493 | { 0xC9DD, 0xC9F7, LBP_H3 }, | ||
1494 | { 0xC9F8, 0xC9F8, LBP_H2 }, | ||
1495 | { 0xC9F9, 0xCA13, LBP_H3 }, | ||
1496 | { 0xCA14, 0xCA14, LBP_H2 }, | ||
1497 | { 0xCA15, 0xCA2F, LBP_H3 }, | ||
1498 | { 0xCA30, 0xCA30, LBP_H2 }, | ||
1499 | { 0xCA31, 0xCA4B, LBP_H3 }, | ||
1500 | { 0xCA4C, 0xCA4C, LBP_H2 }, | ||
1501 | { 0xCA4D, 0xCA67, LBP_H3 }, | ||
1502 | { 0xCA68, 0xCA68, LBP_H2 }, | ||
1503 | { 0xCA69, 0xCA83, LBP_H3 }, | ||
1504 | { 0xCA84, 0xCA84, LBP_H2 }, | ||
1505 | { 0xCA85, 0xCA9F, LBP_H3 }, | ||
1506 | { 0xCAA0, 0xCAA0, LBP_H2 }, | ||
1507 | { 0xCAA1, 0xCABB, LBP_H3 }, | ||
1508 | { 0xCABC, 0xCABC, LBP_H2 }, | ||
1509 | { 0xCABD, 0xCAD7, LBP_H3 }, | ||
1510 | { 0xCAD8, 0xCAD8, LBP_H2 }, | ||
1511 | { 0xCAD9, 0xCAF3, LBP_H3 }, | ||
1512 | { 0xCAF4, 0xCAF4, LBP_H2 }, | ||
1513 | { 0xCAF5, 0xCB0F, LBP_H3 }, | ||
1514 | { 0xCB10, 0xCB10, LBP_H2 }, | ||
1515 | { 0xCB11, 0xCB2B, LBP_H3 }, | ||
1516 | { 0xCB2C, 0xCB2C, LBP_H2 }, | ||
1517 | { 0xCB2D, 0xCB47, LBP_H3 }, | ||
1518 | { 0xCB48, 0xCB48, LBP_H2 }, | ||
1519 | { 0xCB49, 0xCB63, LBP_H3 }, | ||
1520 | { 0xCB64, 0xCB64, LBP_H2 }, | ||
1521 | { 0xCB65, 0xCB7F, LBP_H3 }, | ||
1522 | { 0xCB80, 0xCB80, LBP_H2 }, | ||
1523 | { 0xCB81, 0xCB9B, LBP_H3 }, | ||
1524 | { 0xCB9C, 0xCB9C, LBP_H2 }, | ||
1525 | { 0xCB9D, 0xCBB7, LBP_H3 }, | ||
1526 | { 0xCBB8, 0xCBB8, LBP_H2 }, | ||
1527 | { 0xCBB9, 0xCBD3, LBP_H3 }, | ||
1528 | { 0xCBD4, 0xCBD4, LBP_H2 }, | ||
1529 | { 0xCBD5, 0xCBEF, LBP_H3 }, | ||
1530 | { 0xCBF0, 0xCBF0, LBP_H2 }, | ||
1531 | { 0xCBF1, 0xCC0B, LBP_H3 }, | ||
1532 | { 0xCC0C, 0xCC0C, LBP_H2 }, | ||
1533 | { 0xCC0D, 0xCC27, LBP_H3 }, | ||
1534 | { 0xCC28, 0xCC28, LBP_H2 }, | ||
1535 | { 0xCC29, 0xCC43, LBP_H3 }, | ||
1536 | { 0xCC44, 0xCC44, LBP_H2 }, | ||
1537 | { 0xCC45, 0xCC5F, LBP_H3 }, | ||
1538 | { 0xCC60, 0xCC60, LBP_H2 }, | ||
1539 | { 0xCC61, 0xCC7B, LBP_H3 }, | ||
1540 | { 0xCC7C, 0xCC7C, LBP_H2 }, | ||
1541 | { 0xCC7D, 0xCC97, LBP_H3 }, | ||
1542 | { 0xCC98, 0xCC98, LBP_H2 }, | ||
1543 | { 0xCC99, 0xCCB3, LBP_H3 }, | ||
1544 | { 0xCCB4, 0xCCB4, LBP_H2 }, | ||
1545 | { 0xCCB5, 0xCCCF, LBP_H3 }, | ||
1546 | { 0xCCD0, 0xCCD0, LBP_H2 }, | ||
1547 | { 0xCCD1, 0xCCEB, LBP_H3 }, | ||
1548 | { 0xCCEC, 0xCCEC, LBP_H2 }, | ||
1549 | { 0xCCED, 0xCD07, LBP_H3 }, | ||
1550 | { 0xCD08, 0xCD08, LBP_H2 }, | ||
1551 | { 0xCD09, 0xCD23, LBP_H3 }, | ||
1552 | { 0xCD24, 0xCD24, LBP_H2 }, | ||
1553 | { 0xCD25, 0xCD3F, LBP_H3 }, | ||
1554 | { 0xCD40, 0xCD40, LBP_H2 }, | ||
1555 | { 0xCD41, 0xCD5B, LBP_H3 }, | ||
1556 | { 0xCD5C, 0xCD5C, LBP_H2 }, | ||
1557 | { 0xCD5D, 0xCD77, LBP_H3 }, | ||
1558 | { 0xCD78, 0xCD78, LBP_H2 }, | ||
1559 | { 0xCD79, 0xCD93, LBP_H3 }, | ||
1560 | { 0xCD94, 0xCD94, LBP_H2 }, | ||
1561 | { 0xCD95, 0xCDAF, LBP_H3 }, | ||
1562 | { 0xCDB0, 0xCDB0, LBP_H2 }, | ||
1563 | { 0xCDB1, 0xCDCB, LBP_H3 }, | ||
1564 | { 0xCDCC, 0xCDCC, LBP_H2 }, | ||
1565 | { 0xCDCD, 0xCDE7, LBP_H3 }, | ||
1566 | { 0xCDE8, 0xCDE8, LBP_H2 }, | ||
1567 | { 0xCDE9, 0xCE03, LBP_H3 }, | ||
1568 | { 0xCE04, 0xCE04, LBP_H2 }, | ||
1569 | { 0xCE05, 0xCE1F, LBP_H3 }, | ||
1570 | { 0xCE20, 0xCE20, LBP_H2 }, | ||
1571 | { 0xCE21, 0xCE3B, LBP_H3 }, | ||
1572 | { 0xCE3C, 0xCE3C, LBP_H2 }, | ||
1573 | { 0xCE3D, 0xCE57, LBP_H3 }, | ||
1574 | { 0xCE58, 0xCE58, LBP_H2 }, | ||
1575 | { 0xCE59, 0xCE73, LBP_H3 }, | ||
1576 | { 0xCE74, 0xCE74, LBP_H2 }, | ||
1577 | { 0xCE75, 0xCE8F, LBP_H3 }, | ||
1578 | { 0xCE90, 0xCE90, LBP_H2 }, | ||
1579 | { 0xCE91, 0xCEAB, LBP_H3 }, | ||
1580 | { 0xCEAC, 0xCEAC, LBP_H2 }, | ||
1581 | { 0xCEAD, 0xCEC7, LBP_H3 }, | ||
1582 | { 0xCEC8, 0xCEC8, LBP_H2 }, | ||
1583 | { 0xCEC9, 0xCEE3, LBP_H3 }, | ||
1584 | { 0xCEE4, 0xCEE4, LBP_H2 }, | ||
1585 | { 0xCEE5, 0xCEFF, LBP_H3 }, | ||
1586 | { 0xCF00, 0xCF00, LBP_H2 }, | ||
1587 | { 0xCF01, 0xCF1B, LBP_H3 }, | ||
1588 | { 0xCF1C, 0xCF1C, LBP_H2 }, | ||
1589 | { 0xCF1D, 0xCF37, LBP_H3 }, | ||
1590 | { 0xCF38, 0xCF38, LBP_H2 }, | ||
1591 | { 0xCF39, 0xCF53, LBP_H3 }, | ||
1592 | { 0xCF54, 0xCF54, LBP_H2 }, | ||
1593 | { 0xCF55, 0xCF6F, LBP_H3 }, | ||
1594 | { 0xCF70, 0xCF70, LBP_H2 }, | ||
1595 | { 0xCF71, 0xCF8B, LBP_H3 }, | ||
1596 | { 0xCF8C, 0xCF8C, LBP_H2 }, | ||
1597 | { 0xCF8D, 0xCFA7, LBP_H3 }, | ||
1598 | { 0xCFA8, 0xCFA8, LBP_H2 }, | ||
1599 | { 0xCFA9, 0xCFC3, LBP_H3 }, | ||
1600 | { 0xCFC4, 0xCFC4, LBP_H2 }, | ||
1601 | { 0xCFC5, 0xCFDF, LBP_H3 }, | ||
1602 | { 0xCFE0, 0xCFE0, LBP_H2 }, | ||
1603 | { 0xCFE1, 0xCFFB, LBP_H3 }, | ||
1604 | { 0xCFFC, 0xCFFC, LBP_H2 }, | ||
1605 | { 0xCFFD, 0xD017, LBP_H3 }, | ||
1606 | { 0xD018, 0xD018, LBP_H2 }, | ||
1607 | { 0xD019, 0xD033, LBP_H3 }, | ||
1608 | { 0xD034, 0xD034, LBP_H2 }, | ||
1609 | { 0xD035, 0xD04F, LBP_H3 }, | ||
1610 | { 0xD050, 0xD050, LBP_H2 }, | ||
1611 | { 0xD051, 0xD06B, LBP_H3 }, | ||
1612 | { 0xD06C, 0xD06C, LBP_H2 }, | ||
1613 | { 0xD06D, 0xD087, LBP_H3 }, | ||
1614 | { 0xD088, 0xD088, LBP_H2 }, | ||
1615 | { 0xD089, 0xD0A3, LBP_H3 }, | ||
1616 | { 0xD0A4, 0xD0A4, LBP_H2 }, | ||
1617 | { 0xD0A5, 0xD0BF, LBP_H3 }, | ||
1618 | { 0xD0C0, 0xD0C0, LBP_H2 }, | ||
1619 | { 0xD0C1, 0xD0DB, LBP_H3 }, | ||
1620 | { 0xD0DC, 0xD0DC, LBP_H2 }, | ||
1621 | { 0xD0DD, 0xD0F7, LBP_H3 }, | ||
1622 | { 0xD0F8, 0xD0F8, LBP_H2 }, | ||
1623 | { 0xD0F9, 0xD113, LBP_H3 }, | ||
1624 | { 0xD114, 0xD114, LBP_H2 }, | ||
1625 | { 0xD115, 0xD12F, LBP_H3 }, | ||
1626 | { 0xD130, 0xD130, LBP_H2 }, | ||
1627 | { 0xD131, 0xD14B, LBP_H3 }, | ||
1628 | { 0xD14C, 0xD14C, LBP_H2 }, | ||
1629 | { 0xD14D, 0xD167, LBP_H3 }, | ||
1630 | { 0xD168, 0xD168, LBP_H2 }, | ||
1631 | { 0xD169, 0xD183, LBP_H3 }, | ||
1632 | { 0xD184, 0xD184, LBP_H2 }, | ||
1633 | { 0xD185, 0xD19F, LBP_H3 }, | ||
1634 | { 0xD1A0, 0xD1A0, LBP_H2 }, | ||
1635 | { 0xD1A1, 0xD1BB, LBP_H3 }, | ||
1636 | { 0xD1BC, 0xD1BC, LBP_H2 }, | ||
1637 | { 0xD1BD, 0xD1D7, LBP_H3 }, | ||
1638 | { 0xD1D8, 0xD1D8, LBP_H2 }, | ||
1639 | { 0xD1D9, 0xD1F3, LBP_H3 }, | ||
1640 | { 0xD1F4, 0xD1F4, LBP_H2 }, | ||
1641 | { 0xD1F5, 0xD20F, LBP_H3 }, | ||
1642 | { 0xD210, 0xD210, LBP_H2 }, | ||
1643 | { 0xD211, 0xD22B, LBP_H3 }, | ||
1644 | { 0xD22C, 0xD22C, LBP_H2 }, | ||
1645 | { 0xD22D, 0xD247, LBP_H3 }, | ||
1646 | { 0xD248, 0xD248, LBP_H2 }, | ||
1647 | { 0xD249, 0xD263, LBP_H3 }, | ||
1648 | { 0xD264, 0xD264, LBP_H2 }, | ||
1649 | { 0xD265, 0xD27F, LBP_H3 }, | ||
1650 | { 0xD280, 0xD280, LBP_H2 }, | ||
1651 | { 0xD281, 0xD29B, LBP_H3 }, | ||
1652 | { 0xD29C, 0xD29C, LBP_H2 }, | ||
1653 | { 0xD29D, 0xD2B7, LBP_H3 }, | ||
1654 | { 0xD2B8, 0xD2B8, LBP_H2 }, | ||
1655 | { 0xD2B9, 0xD2D3, LBP_H3 }, | ||
1656 | { 0xD2D4, 0xD2D4, LBP_H2 }, | ||
1657 | { 0xD2D5, 0xD2EF, LBP_H3 }, | ||
1658 | { 0xD2F0, 0xD2F0, LBP_H2 }, | ||
1659 | { 0xD2F1, 0xD30B, LBP_H3 }, | ||
1660 | { 0xD30C, 0xD30C, LBP_H2 }, | ||
1661 | { 0xD30D, 0xD327, LBP_H3 }, | ||
1662 | { 0xD328, 0xD328, LBP_H2 }, | ||
1663 | { 0xD329, 0xD343, LBP_H3 }, | ||
1664 | { 0xD344, 0xD344, LBP_H2 }, | ||
1665 | { 0xD345, 0xD35F, LBP_H3 }, | ||
1666 | { 0xD360, 0xD360, LBP_H2 }, | ||
1667 | { 0xD361, 0xD37B, LBP_H3 }, | ||
1668 | { 0xD37C, 0xD37C, LBP_H2 }, | ||
1669 | { 0xD37D, 0xD397, LBP_H3 }, | ||
1670 | { 0xD398, 0xD398, LBP_H2 }, | ||
1671 | { 0xD399, 0xD3B3, LBP_H3 }, | ||
1672 | { 0xD3B4, 0xD3B4, LBP_H2 }, | ||
1673 | { 0xD3B5, 0xD3CF, LBP_H3 }, | ||
1674 | { 0xD3D0, 0xD3D0, LBP_H2 }, | ||
1675 | { 0xD3D1, 0xD3EB, LBP_H3 }, | ||
1676 | { 0xD3EC, 0xD3EC, LBP_H2 }, | ||
1677 | { 0xD3ED, 0xD407, LBP_H3 }, |