aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xgen/prop/bool-props114
-rw-r--r--gen/prop/bool-props.awk79
-rw-r--r--include/unicode/prop.h54
-rw-r--r--lib/unicode/prop/uprop_is_ahex.c21
-rw-r--r--lib/unicode/prop/uprop_is_alpha.c754
-rw-r--r--lib/unicode/prop/uprop_is_bidi_c.c25
-rw-r--r--lib/unicode/prop/uprop_is_bidi_m.c133
-rw-r--r--lib/unicode/prop/uprop_is_cased.c178
-rw-r--r--lib/unicode/prop/uprop_is_ci.c455
-rw-r--r--lib/unicode/prop/uprop_is_cwcf.c646
-rw-r--r--lib/unicode/prop/uprop_is_cwcm.c154
-rw-r--r--lib/unicode/prop/uprop_is_cwkcf.c856
-rw-r--r--lib/unicode/prop/uprop_is_cwl.c634
-rw-r--r--lib/unicode/prop/uprop_is_cwt.c650
-rw-r--r--lib/unicode/prop/uprop_is_cwu.c651
-rw-r--r--lib/unicode/prop/uprop_is_dash.c50
-rw-r--r--lib/unicode/prop/uprop_is_dep.c29
-rw-r--r--lib/unicode/prop/uprop_is_di.c44
-rw-r--r--lib/unicode/prop/uprop_is_dia.c217
-rw-r--r--lib/unicode/prop/uprop_is_ebase.c61
-rw-r--r--lib/unicode/prop/uprop_is_ecomp.c35
-rw-r--r--lib/unicode/prop/uprop_is_emod.c22
-rw-r--r--lib/unicode/prop/uprop_is_emoji.c174
-rw-r--r--lib/unicode/prop/uprop_is_epres.c102
-rw-r--r--lib/unicode/prop/uprop_is_ext.c60
-rw-r--r--lib/unicode/prop/uprop_is_extpic.c104
-rw-r--r--lib/unicode/prop/uprop_is_gr_base.c901
-rw-r--r--lib/unicode/prop/uprop_is_gr_ext.c384
-rw-r--r--lib/unicode/prop/uprop_is_hex.c31
-rw-r--r--lib/unicode/prop/uprop_is_id_compat_math_continue.c44
-rw-r--r--lib/unicode/prop/uprop_is_id_compat_math_start.c34
-rw-r--r--lib/unicode/prop/uprop_is_idbo.c24
-rw-r--r--lib/unicode/prop/uprop_is_idc.c787
-rw-r--r--lib/unicode/prop/uprop_is_ideo.c42
-rw-r--r--lib/unicode/prop/uprop_is_ids.c681
-rw-r--r--lib/unicode/prop/uprop_is_incb.c221
-rw-r--r--lib/unicode/prop/uprop_is_loe.c28
-rw-r--r--lib/unicode/prop/uprop_is_lower.c693
-rw-r--r--lib/unicode/prop/uprop_is_math.c157
-rw-r--r--lib/unicode/prop/uprop_is_pat_syn.c41
-rw-r--r--lib/unicode/prop/uprop_is_pcm.c28
-rw-r--r--lib/unicode/prop/uprop_is_qmark.c37
-rw-r--r--lib/unicode/prop/uprop_is_radical.c24
-rw-r--r--lib/unicode/prop/uprop_is_sd.c61
-rw-r--r--lib/unicode/prop/uprop_is_sterm.c106
-rw-r--r--lib/unicode/prop/uprop_is_term.c131
-rw-r--r--lib/unicode/prop/uprop_is_uideo.c38
-rw-r--r--lib/unicode/prop/uprop_is_upper.c676
-rw-r--r--lib/unicode/prop/uprop_is_vs.c25
-rw-r--r--lib/unicode/prop/uprop_is_wspace.c34
-rw-r--r--lib/unicode/prop/uprop_is_xidc.c794
-rw-r--r--lib/unicode/prop/uprop_is_xids.c688
52 files changed, 13011 insertions, 1 deletions
diff --git a/gen/prop/bool-props b/gen/prop/bool-props
new file mode 100755
index 0000000..261caa6
--- /dev/null
+++ b/gen/prop/bool-props
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+set -e
+cd "${0%/*}/../.."
+
+props1='
+ahex=ASCII_Hex_Digit
+bidi_c=Bidi_Control
+dash=Dash
+dep=Deprecated
+dia=Diacritic
+ext=Extender
+hex=Hex_Digit
+idbo=IDS_Binary_Operator
+id_compat_math_continue=ID_Compat_Math_Continue
+id_compat_math_start=ID_Compat_Math_Start
+ideo=Ideographic
+loe=Logical_Order_Exception
+pat_syn=Pattern_Syntax
+pcm=Prepended_Concatenation_Mark
+qmark=Quotation_Mark
+radical=Radical
+sd=Soft_Dotted
+sterm=Sentence_Terminal
+term=Terminal_Punctuation
+uideo=Unified_Ideograph
+vs=Variation_Selector
+wspace=White_Space
+'
+
+props2='
+alpha=Alphabetic
+cased=Cased
+ci=Case_Ignorable
+cwcf=Changes_When_Casefolded
+cwcm=Changes_When_Casemapped
+cwl=Changes_When_Lowercased
+cwt=Changes_When_Titlecased
+cwu=Changes_When_Uppercased
+di=Default_Ignorable_Code_Point
+gr_base=Grapheme_Base
+gr_ext=Grapheme_Extend
+idc=ID_Continue
+ids=ID_Start
+incb=Indic_Conjunct_Break
+lower=Lowercase
+math=Math
+upper=Uppercase
+xidc=XID_Continue
+xids=XID_Start
+'
+
+props3='
+ebase=Emoji_Modifier_Base
+ecomp=Emoji_Component
+emod=Emoji_Modifier
+emoji=Emoji
+epres=Emoji_Presentation
+extpic=Extended_Pictographic
+'
+
+props4='
+cwkcf=Changes_When_NFKC_Casefolded
+'
+
+props5='
+bidi_m=Bidi_Mirrored
+'
+
+manual='
+idst=IDS_Trinary_Operator
+idsu=IDS_Unary_Operator
+join_c=Join_Control
+nchar=Noncharacter_Code_Point
+pat_ws=Pattern_White_Space
+ri=Regional_Indicator
+'
+
+gen()
+{
+ local p=${1%%=*}
+ gawk -M -v prop=${1#*=} -v short=$p \
+ -f gen/prop/bool-props.awk data/$2 \
+ >lib/unicode/prop/uprop_is_${p}.c
+ printf 'DONE uprop_is_%s()\n' $p >&2
+}
+
+for prop in $props1; do gen $prop PropList.txt & done
+for prop in $props2; do gen $prop DerivedCoreProperties.txt & done
+for prop in $props3; do gen $prop emoji-data.txt & done
+for prop in $props4; do gen $prop DerivedNormalizationProps.txt & done
+for prop in $props5; do gen $prop DerivedBinaryProperties.txt & done
+
+printf '[[__nodiscard__, __unsequenced__]] bool uprop_is_%s(rune);\n' \
+ $(printf '%s\n' $props1 $props2 $props3 $props4 $props5 | cut -d= -f1) \
+| gawk '
+ /PROP PREDICATES END/ { no = 0 }
+ FILENAME != "-" && !no { print }
+ FILENAME == "-" { funcs[++i] = $0 }
+
+ /PROP PREDICATES START/ {
+ no = 1
+ asort(funcs)
+ for (i = 1; i <= length(funcs); i++)
+ print funcs[i]
+ }
+' - include/unicode/prop.h | sponge include/unicode/prop.h
+
+wait
+for prop in $manual
+do
+ shrt=${prop%%=*}
+ printf 'Function uprop_is_%s() implemented manually\n' $shrt >&2
+done
diff --git a/gen/prop/bool-props.awk b/gen/prop/bool-props.awk
new file mode 100644
index 0000000..d9c6299
--- /dev/null
+++ b/gen/prop/bool-props.awk
@@ -0,0 +1,79 @@
+BEGIN {
+ FS = "( *#.*| +; +)"
+
+ print "/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */"
+ print ""
+ print "#include \"__bsearch.h\""
+ print "#include \"bitset.h\""
+ print "#include \"rune.h\""
+ print "#include \"unicode/prop.h\""
+ print ""
+ print "/* clang-format off */"
+ print ""
+}
+
+$2 == prop || (prop == "Indic_Conjunct_Break" && $2 ~ /InCB;/) {
+ n = split($1, a, /\.\./)
+ lo = strtonum("0x" a[1])
+ hi = strtonum("0x" a[n])
+
+ for (i = lo; i <= hi; i++)
+ xs[i] = 1
+}
+
+END {
+ for (i = 0; i <= 0xFF; i++) {
+ if (xs[i])
+ mask = or(mask, lshift(1, i))
+ }
+
+ if (mask > 0) {
+ print "static constexpr bitset(bs, LATIN1_MAX) = {"
+ for (i = 0; i < 32; i++) {
+ if (i % 8 == 0)
+ printf "\t"
+ printf "0x%02X,", and(rshift(mask, 8 * i), 0xFF)
+ printf((i % 8 == 7) ? "\n" : " ")
+ }
+ print "};"
+ print ""
+ }
+
+ for (i = 0x100; i <= 0x10FFFF; i++) {
+ if (xs[i]) {
+ need_big_lookup = 1
+ break
+ }
+ }
+
+ if (need_big_lookup) {
+ print "static const struct {"
+ print "\trune lo, hi;"
+ print "} lookup[] = {"
+
+ for (i = 0x100; i <= 0x10FFFF; i++) {
+ if (!xs[i])
+ continue
+ lo = i
+ while (xs[i + 1])
+ i++
+ printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X)},\n", lo, i
+ }
+
+ print "};"
+ print ""
+ print "__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)"
+ print ""
+ }
+
+ print "bool"
+ printf "uprop_is_%s(rune ch)\n", short
+ print "{"
+ if (mask > 0 && need_big_lookup)
+ print "\treturn ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);"
+ else if (need_big_lookup)
+ print "\treturn mlib_lookup_contains(ch);"
+ else
+ print "\treturn ch <= LATIN1_MAX && TESTBIT(bs, ch);"
+ print "}"
+}
diff --git a/include/unicode/prop.h b/include/unicode/prop.h
index e3a31ad..291d41b 100644
--- a/include/unicode/prop.h
+++ b/include/unicode/prop.h
@@ -48,6 +48,58 @@ enum [[clang::flag_enum]] uprop_gc : uint_fast32_t {
GC_Z = GC_ZL | GC_ZP | GC_ZS, /* Separator */
};
-enum uprop_gc uprop_get_gc(rune);
+[[__nodiscard__, __unsequenced__]] enum uprop_gc uprop_get_gc(rune);
+
+/* PROP PREDICATES START */
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ahex(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_alpha(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_bidi_c(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_bidi_m(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cased(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ci(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwcf(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwcm(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwkcf(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwl(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwt(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwu(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_dash(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_dep(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_di(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_dia(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ebase(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ecomp(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_emod(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_emoji(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_epres(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ext(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_extpic(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_gr_base(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_gr_ext(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_hex(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_id_compat_math_continue(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_id_compat_math_start(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_idbo(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_idc(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ideo(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ids(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_incb(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_loe(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_lower(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_math(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_pat_syn(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_pcm(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_qmark(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_radical(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_sd(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_sterm(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_term(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_uideo(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_upper(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_vs(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_wspace(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_xidc(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_xids(rune);
+/* PROP PREDICATES END */
#endif /* !MLIB_UNICODE_PROP_H */
diff --git a/lib/unicode/prop/uprop_is_ahex.c b/lib/unicode/prop/uprop_is_ahex.c
new file mode 100644
index 0000000..21dcd97
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_ahex.c
@@ -0,0 +1,21 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
+ 0x7E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+bool
+uprop_is_ahex(rune ch)
+{
+ return ch <= LATIN1_MAX && TESTBIT(bs, ch);
+}
diff --git a/lib/unicode/prop/uprop_is_alpha.c b/lib/unicode/prop/uprop_is_alpha.c
new file mode 100644
index 0000000..f5328b4
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_alpha.c
@@ -0,0 +1,754 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x0002C1)},
+ {RUNE_C(0x0002C6), RUNE_C(0x0002D1)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x0002EC), RUNE_C(0x0002EC)},
+ {RUNE_C(0x0002EE), RUNE_C(0x0002EE)},
+ {RUNE_C(0x000345), RUNE_C(0x000345)},
+ {RUNE_C(0x000370), RUNE_C(0x000374)},
+ {RUNE_C(0x000376), RUNE_C(0x000377)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037D)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x000481)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000559), RUNE_C(0x000559)},
+ {RUNE_C(0x000560), RUNE_C(0x000588)},
+ {RUNE_C(0x0005B0), RUNE_C(0x0005BD)},
+ {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
+ {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
+ {RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
+ {RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
+ {RUNE_C(0x0005D0), RUNE_C(0x0005EA)},
+ {RUNE_C(0x0005EF), RUNE_C(0x0005F2)},
+ {RUNE_C(0x000610), RUNE_C(0x00061A)},
+ {RUNE_C(0x000620), RUNE_C(0x000657)},
+ {RUNE_C(0x000659), RUNE_C(0x00065F)},
+ {RUNE_C(0x00066E), RUNE_C(0x0006D3)},
+ {RUNE_C(0x0006D5), RUNE_C(0x0006DC)},
+ {RUNE_C(0x0006E1), RUNE_C(0x0006E8)},
+ {RUNE_C(0x0006ED), RUNE_C(0x0006EF)},
+ {RUNE_C(0x0006FA), RUNE_C(0x0006FC)},
+ {RUNE_C(0x0006FF), RUNE_C(0x0006FF)},
+ {RUNE_C(0x000710), RUNE_C(0x00073F)},
+ {RUNE_C(0x00074D), RUNE_C(0x0007B1)},
+ {RUNE_C(0x0007CA), RUNE_C(0x0007EA)},
+ {RUNE_C(0x0007F4), RUNE_C(0x0007F5)},
+ {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
+ {RUNE_C(0x000800), RUNE_C(0x000817)},
+ {RUNE_C(0x00081A), RUNE_C(0x00082C)},
+ {RUNE_C(0x000840), RUNE_C(0x000858)},
+ {RUNE_C(0x000860), RUNE_C(0x00086A)},
+ {RUNE_C(0x000870), RUNE_C(0x000887)},
+ {RUNE_C(0x000889), RUNE_C(0x00088E)},
+ {RUNE_C(0x0008A0), RUNE_C(0x0008C9)},
+ {RUNE_C(0x0008D4), RUNE_C(0x0008DF)},
+ {RUNE_C(0x0008E3), RUNE_C(0x0008E9)},
+ {RUNE_C(0x0008F0), RUNE_C(0x00093B)},
+ {RUNE_C(0x00093D), RUNE_C(0x00094C)},
+ {RUNE_C(0x00094E), RUNE_C(0x000950)},
+ {RUNE_C(0x000955), RUNE_C(0x000963)},
+ {RUNE_C(0x000971), RUNE_C(0x000983)},
+ {RUNE_C(0x000985), RUNE_C(0x00098C)},
+ {RUNE_C(0x00098F), RUNE_C(0x000990)},
+ {RUNE_C(0x000993), RUNE_C(0x0009A8)},
+ {RUNE_C(0x0009AA), RUNE_C(0x0009B0)},
+ {RUNE_C(0x0009B2), RUNE_C(0x0009B2)},
+ {RUNE_C(0x0009B6), RUNE_C(0x0009B9)},
+ {RUNE_C(0x0009BD), RUNE_C(0x0009C4)},
+ {RUNE_C(0x0009C7), RUNE_C(0x0009C8)},
+ {RUNE_C(0x0009CB), RUNE_C(0x0009CC)},
+ {RUNE_C(0x0009CE), RUNE_C(0x0009CE)},
+ {RUNE_C(0x0009D7), RUNE_C(0x0009D7)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009E3)},
+ {RUNE_C(0x0009F0), RUNE_C(0x0009F1)},
+ {RUNE_C(0x0009FC), RUNE_C(0x0009FC)},
+ {RUNE_C(0x000A01), RUNE_C(0x000A03)},
+ {RUNE_C(0x000A05), RUNE_C(0x000A0A)},
+ {RUNE_C(0x000A0F), RUNE_C(0x000A10)},
+ {RUNE_C(0x000A13), RUNE_C(0x000A28)},
+ {RUNE_C(0x000A2A), RUNE_C(0x000A30)},
+ {RUNE_C(0x000A32), RUNE_C(0x000A33)},
+ {RUNE_C(0x000A35), RUNE_C(0x000A36)},
+ {RUNE_C(0x000A38), RUNE_C(0x000A39)},
+ {RUNE_C(0x000A3E), RUNE_C(0x000A42)},
+ {RUNE_C(0x000A47), RUNE_C(0x000A48)},
+ {RUNE_C(0x000A4B), RUNE_C(0x000A4C)},
+ {RUNE_C(0x000A51), RUNE_C(0x000A51)},
+ {RUNE_C(0x000A59), RUNE_C(0x000A5C)},
+ {RUNE_C(0x000A5E), RUNE_C(0x000A5E)},
+ {RUNE_C(0x000A70), RUNE_C(0x000A75)},
+ {RUNE_C(0x000A81), RUNE_C(0x000A83)},
+ {RUNE_C(0x000A85), RUNE_C(0x000A8D)},
+ {RUNE_C(0x000A8F), RUNE_C(0x000A91)},
+ {RUNE_C(0x000A93), RUNE_C(0x000AA8)},
+ {RUNE_C(0x000AAA), RUNE_C(0x000AB0)},
+ {RUNE_C(0x000AB2), RUNE_C(0x000AB3)},
+ {RUNE_C(0x000AB5), RUNE_C(0x000AB9)},
+ {RUNE_C(0x000ABD), RUNE_C(0x000AC5)},
+ {RUNE_C(0x000AC7), RUNE_C(0x000AC9)},
+ {RUNE_C(0x000ACB), RUNE_C(0x000ACC)},
+ {RUNE_C(0x000AD0), RUNE_C(0x000AD0)},
+ {RUNE_C(0x000AE0), RUNE_C(0x000AE3)},
+ {RUNE_C(0x000AF9), RUNE_C(0x000AFC)},
+ {RUNE_C(0x000B01), RUNE_C(0x000B03)},
+ {RUNE_C(0x000B05), RUNE_C(0x000B0C)},
+ {RUNE_C(0x000B0F), RUNE_C(0x000B10)},
+ {RUNE_C(0x000B13), RUNE_C(0x000B28)},
+ {RUNE_C(0x000B2A), RUNE_C(0x000B30)},
+ {RUNE_C(0x000B32), RUNE_C(0x000B33)},
+ {RUNE_C(0x000B35), RUNE_C(0x000B39)},
+ {RUNE_C(0x000B3D), RUNE_C(0x000B44)},
+ {RUNE_C(0x000B47), RUNE_C(0x000B48)},
+ {RUNE_C(0x000B4B), RUNE_C(0x000B4C)},
+ {RUNE_C(0x000B56), RUNE_C(0x000B57)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000B5F), RUNE_C(0x000B63)},
+ {RUNE_C(0x000B71), RUNE_C(0x000B71)},
+ {RUNE_C(0x000B82), RUNE_C(0x000B83)},
+ {RUNE_C(0x000B85), RUNE_C(0x000B8A)},
+ {RUNE_C(0x000B8E), RUNE_C(0x000B90)},
+ {RUNE_C(0x000B92), RUNE_C(0x000B95)},
+ {RUNE_C(0x000B99), RUNE_C(0x000B9A)},
+ {RUNE_C(0x000B9C), RUNE_C(0x000B9C)},
+ {RUNE_C(0x000B9E), RUNE_C(0x000B9F)},
+ {RUNE_C(0x000BA3), RUNE_C(0x000BA4)},
+ {RUNE_C(0x000BA8), RUNE_C(0x000BAA)},
+ {RUNE_C(0x000BAE), RUNE_C(0x000BB9)},
+ {RUNE_C(0x000BBE), RUNE_C(0x000BC2)},
+ {RUNE_C(0x000BC6), RUNE_C(0x000BC8)},
+ {RUNE_C(0x000BCA), RUNE_C(0x000BCC)},
+ {RUNE_C(0x000BD0), RUNE_C(0x000BD0)},
+ {RUNE_C(0x000BD7), RUNE_C(0x000BD7)},
+ {RUNE_C(0x000C00), RUNE_C(0x000C0C)},
+ {RUNE_C(0x000C0E), RUNE_C(0x000C10)},
+ {RUNE_C(0x000C12), RUNE_C(0x000C28)},
+ {RUNE_C(0x000C2A), RUNE_C(0x000C39)},
+ {RUNE_C(0x000C3D), RUNE_C(0x000C44)},
+ {RUNE_C(0x000C46), RUNE_C(0x000C48)},
+ {RUNE_C(0x000C4A), RUNE_C(0x000C4C)},
+ {RUNE_C(0x000C55), RUNE_C(0x000C56)},
+ {RUNE_C(0x000C58), RUNE_C(0x000C5A)},
+ {RUNE_C(0x000C5D), RUNE_C(0x000C5D)},
+ {RUNE_C(0x000C60), RUNE_C(0x000C63)},
+ {RUNE_C(0x000C80), RUNE_C(0x000C83)},
+ {RUNE_C(0x000C85), RUNE_C(0x000C8C)},
+ {RUNE_C(0x000C8E), RUNE_C(0x000C90)},
+ {RUNE_C(0x000C92), RUNE_C(0x000CA8)},
+ {RUNE_C(0x000CAA), RUNE_C(0x000CB3)},
+ {RUNE_C(0x000CB5), RUNE_C(0x000CB9)},
+ {RUNE_C(0x000CBD), RUNE_C(0x000CC4)},
+ {RUNE_C(0x000CC6), RUNE_C(0x000CC8)},
+ {RUNE_C(0x000CCA), RUNE_C(0x000CCC)},
+ {RUNE_C(0x000CD5), RUNE_C(0x000CD6)},
+ {RUNE_C(0x000CDD), RUNE_C(0x000CDE)},
+ {RUNE_C(0x000CE0), RUNE_C(0x000CE3)},
+ {RUNE_C(0x000CF1), RUNE_C(0x000CF3)},
+ {RUNE_C(0x000D00), RUNE_C(0x000D0C)},
+ {RUNE_C(0x000D0E), RUNE_C(0x000D10)},
+ {RUNE_C(0x000D12), RUNE_C(0x000D3A)},
+ {RUNE_C(0x000D3D), RUNE_C(0x000D44)},
+ {RUNE_C(0x000D46), RUNE_C(0x000D48)},
+ {RUNE_C(0x000D4A), RUNE_C(0x000D4C)},
+ {RUNE_C(0x000D4E), RUNE_C(0x000D4E)},
+ {RUNE_C(0x000D54), RUNE_C(0x000D57)},
+ {RUNE_C(0x000D5F), RUNE_C(0x000D63)},
+ {RUNE_C(0x000D7A), RUNE_C(0x000D7F)},
+ {RUNE_C(0x000D81), RUNE_C(0x000D83)},
+ {RUNE_C(0x000D85), RUNE_C(0x000D96)},
+ {RUNE_C(0x000D9A), RUNE_C(0x000DB1)},
+ {RUNE_C(0x000DB3), RUNE_C(0x000DBB)},
+ {RUNE_C(0x000DBD), RUNE_C(0x000DBD)},
+ {RUNE_C(0x000DC0), RUNE_C(0x000DC6)},
+ {RUNE_C(0x000DCF), RUNE_C(0x000DD4)},
+ {RUNE_C(0x000DD6), RUNE_C(0x000DD6)},
+ {RUNE_C(0x000DD8), RUNE_C(0x000DDF)},
+ {RUNE_C(0x000DF2), RUNE_C(0x000DF3)},
+ {RUNE_C(0x000E01), RUNE_C(0x000E3A)},
+ {RUNE_C(0x000E40), RUNE_C(0x000E46)},
+ {RUNE_C(0x000E4D), RUNE_C(0x000E4D)},
+ {RUNE_C(0x000E81), RUNE_C(0x000E82)},
+ {RUNE_C(0x000E84), RUNE_C(0x000E84)},
+ {RUNE_C(0x000E86), RUNE_C(0x000E8A)},
+ {RUNE_C(0x000E8C), RUNE_C(0x000EA3)},
+ {RUNE_C(0x000EA5), RUNE_C(0x000EA5)},
+ {RUNE_C(0x000EA7), RUNE_C(0x000EB9)},
+ {RUNE_C(0x000EBB), RUNE_C(0x000EBD)},
+ {RUNE_C(0x000EC0), RUNE_C(0x000EC4)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x000ECD), RUNE_C(0x000ECD)},
+ {RUNE_C(0x000EDC), RUNE_C(0x000EDF)},
+ {RUNE_C(0x000F00), RUNE_C(0x000F00)},
+ {RUNE_C(0x000F40), RUNE_C(0x000F47)},
+ {RUNE_C(0x000F49), RUNE_C(0x000F6C)},
+ {RUNE_C(0x000F71), RUNE_C(0x000F83)},
+ {RUNE_C(0x000F88), RUNE_C(0x000F97)},
+ {RUNE_C(0x000F99), RUNE_C(0x000FBC)},
+ {RUNE_C(0x001000), RUNE_C(0x001036)},
+ {RUNE_C(0x001038), RUNE_C(0x001038)},
+ {RUNE_C(0x00103B), RUNE_C(0x00103F)},
+ {RUNE_C(0x001050), RUNE_C(0x00108F)},
+ {RUNE_C(0x00109A), RUNE_C(0x00109D)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FC), RUNE_C(0x001248)},
+ {RUNE_C(0x00124A), RUNE_C(0x00124D)},
+ {RUNE_C(0x001250), RUNE_C(0x001256)},
+ {RUNE_C(0x001258), RUNE_C(0x001258)},
+ {RUNE_C(0x00125A), RUNE_C(0x00125D)},
+ {RUNE_C(0x001260), RUNE_C(0x001288)},
+ {RUNE_C(0x00128A), RUNE_C(0x00128D)},
+ {RUNE_C(0x001290), RUNE_C(0x0012B0)},
+ {RUNE_C(0x0012B2), RUNE_C(0x0012B5)},
+ {RUNE_C(0x0012B8), RUNE_C(0x0012BE)},
+ {RUNE_C(0x0012C0), RUNE_C(0x0012C0)},
+ {RUNE_C(0x0012C2), RUNE_C(0x0012C5)},
+ {RUNE_C(0x0012C8), RUNE_C(0x0012D6)},
+ {RUNE_C(0x0012D8), RUNE_C(0x001310)},
+ {RUNE_C(0x001312), RUNE_C(0x001315)},
+ {RUNE_C(0x001318), RUNE_C(0x00135A)},
+ {RUNE_C(0x001380), RUNE_C(0x00138F)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001401), RUNE_C(0x00166C)},
+ {RUNE_C(0x00166F), RUNE_C(0x00167F)},
+ {RUNE_C(0x001681), RUNE_C(0x00169A)},
+ {RUNE_C(0x0016A0), RUNE_C(0x0016EA)},
+ {RUNE_C(0x0016EE), RUNE_C(0x0016F8)},
+ {RUNE_C(0x001700), RUNE_C(0x001713)},
+ {RUNE_C(0x00171F), RUNE_C(0x001733)},
+ {RUNE_C(0x001740), RUNE_C(0x001753)},
+ {RUNE_C(0x001760), RUNE_C(0x00176C)},
+ {RUNE_C(0x00176E), RUNE_C(0x001770)},
+ {RUNE_C(0x001772), RUNE_C(0x001773)},
+ {RUNE_C(0x001780), RUNE_C(0x0017B3)},
+ {RUNE_C(0x0017B6), RUNE_C(0x0017C8)},
+ {RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
+ {RUNE_C(0x0017DC), RUNE_C(0x0017DC)},
+ {RUNE_C(0x001820), RUNE_C(0x001878)},
+ {RUNE_C(0x001880), RUNE_C(0x0018AA)},
+ {RUNE_C(0x0018B0), RUNE_C(0x0018F5)},
+ {RUNE_C(0x001900), RUNE_C(0x00191E)},
+ {RUNE_C(0x001920), RUNE_C(0x00192B)},
+ {RUNE_C(0x001930), RUNE_C(0x001938)},
+ {RUNE_C(0x001950), RUNE_C(0x00196D)},
+ {RUNE_C(0x001970), RUNE_C(0x001974)},
+ {RUNE_C(0x001980), RUNE_C(0x0019AB)},
+ {RUNE_C(0x0019B0), RUNE_C(0x0019C9)},
+ {RUNE_C(0x001A00), RUNE_C(0x001A1B)},
+ {RUNE_C(0x001A20), RUNE_C(0x001A5E)},
+ {RUNE_C(0x001A61), RUNE_C(0x001A74)},
+ {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
+ {RUNE_C(0x001ABF), RUNE_C(0x001AC0)},
+ {RUNE_C(0x001ACC), RUNE_C(0x001ACE)},
+ {RUNE_C(0x001B00), RUNE_C(0x001B33)},
+ {RUNE_C(0x001B35), RUNE_C(0x001B43)},
+ {RUNE_C(0x001B45), RUNE_C(0x001B4C)},
+ {RUNE_C(0x001B80), RUNE_C(0x001BA9)},
+ {RUNE_C(0x001BAC), RUNE_C(0x001BAF)},
+ {RUNE_C(0x001BBA), RUNE_C(0x001BE5)},
+ {RUNE_C(0x001BE7), RUNE_C(0x001BF1)},
+ {RUNE_C(0x001C00), RUNE_C(0x001C36)},
+ {RUNE_C(0x001C4D), RUNE_C(0x001C4F)},
+ {RUNE_C(0x001C5A), RUNE_C(0x001C7D)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001CE9), RUNE_C(0x001CEC)},
+ {RUNE_C(0x001CEE), RUNE_C(0x001CF3)},
+ {RUNE_C(0x001CF5), RUNE_C(0x001CF6)},
+ {RUNE_C(0x001CFA), RUNE_C(0x001CFA)},
+ {RUNE_C(0x001D00), RUNE_C(0x001DBF)},
+ {RUNE_C(0x001DE7), RUNE_C(0x001DF4)},
+ {RUNE_C(0x001E00), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFC)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210A), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002119), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x00212D)},
+ {RUNE_C(0x00212F), RUNE_C(0x002139)},
+ {RUNE_C(0x00213C), RUNE_C(0x00213F)},
+ {RUNE_C(0x002145), RUNE_C(0x002149)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002160), RUNE_C(0x002188)},
+ {RUNE_C(0x0024B6), RUNE_C(0x0024E9)},
+ {RUNE_C(0x002C00), RUNE_C(0x002CE4)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x002D30), RUNE_C(0x002D67)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
+ {RUNE_C(0x002D80), RUNE_C(0x002D96)},
+ {RUNE_C(0x002DA0), RUNE_C(0x002DA6)},
+ {RUNE_C(0x002DA8), RUNE_C(0x002DAE)},
+ {RUNE_C(0x002DB0), RUNE_C(0x002DB6)},
+ {RUNE_C(0x002DB8), RUNE_C(0x002DBE)},
+ {RUNE_C(0x002DC0), RUNE_C(0x002DC6)},
+ {RUNE_C(0x002DC8), RUNE_C(0x002DCE)},
+ {RUNE_C(0x002DD0), RUNE_C(0x002DD6)},
+ {RUNE_C(0x002DD8), RUNE_C(0x002DDE)},
+ {RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
+ {RUNE_C(0x002E2F), RUNE_C(0x002E2F)},
+ {RUNE_C(0x003005), RUNE_C(0x003007)},
+ {RUNE_C(0x003021), RUNE_C(0x003029)},
+ {RUNE_C(0x003031), RUNE_C(0x003035)},
+ {RUNE_C(0x003038), RUNE_C(0x00303C)},
+ {RUNE_C(0x003041), RUNE_C(0x003096)},
+ {RUNE_C(0x00309D), RUNE_C(0x00309F)},
+ {RUNE_C(0x0030A1), RUNE_C(0x0030FA)},
+ {RUNE_C(0x0030FC), RUNE_C(0x0030FF)},
+ {RUNE_C(0x003105), RUNE_C(0x00312F)},
+ {RUNE_C(0x003131), RUNE_C(0x00318E)},
+ {RUNE_C(0x0031A0), RUNE_C(0x0031BF)},
+ {RUNE_C(0x0031F0), RUNE_C(0x0031FF)},
+ {RUNE_C(0x003400), RUNE_C(0x004DBF)},
+ {RUNE_C(0x004E00), RUNE_C(0x00A48C)},
+ {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)},
+ {RUNE_C(0x00A500), RUNE_C(0x00A60C)},
+ {RUNE_C(0x00A610), RUNE_C(0x00A61F)},
+ {RUNE_C(0x00A62A), RUNE_C(0x00A62B)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66E)},
+ {RUNE_C(0x00A674), RUNE_C(0x00A67B)},
+ {RUNE_C(0x00A67F), RUNE_C(0x00A6EF)},
+ {RUNE_C(0x00A717), RUNE_C(0x00A71F)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A788)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A805)},
+ {RUNE_C(0x00A807), RUNE_C(0x00A827)},
+ {RUNE_C(0x00A840), RUNE_C(0x00A873)},
+ {RUNE_C(0x00A880), RUNE_C(0x00A8C3)},
+ {RUNE_C(0x00A8C5), RUNE_C(0x00A8C5)},
+ {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)},
+ {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)},
+ {RUNE_C(0x00A8FD), RUNE_C(0x00A8FF)},
+ {RUNE_C(0x00A90A), RUNE_C(0x00A92A)},
+ {RUNE_C(0x00A930), RUNE_C(0x00A952)},
+ {RUNE_C(0x00A960), RUNE_C(0x00A97C)},
+ {RUNE_C(0x00A980), RUNE_C(0x00A9B2)},
+ {RUNE_C(0x00A9B4), RUNE_C(0x00A9BF)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)},
+ {RUNE_C(0x00A9E0), RUNE_C(0x00A9EF)},
+ {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)},
+ {RUNE_C(0x00AA00), RUNE_C(0x00AA36)},
+ {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)},
+ {RUNE_C(0x00AA60), RUNE_C(0x00AA76)},
+ {RUNE_C(0x00AA7A), RUNE_C(0x00AABE)},
+ {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)},
+ {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)},
+ {RUNE_C(0x00AADB), RUNE_C(0x00AADD)},
+ {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)},
+ {RUNE_C(0x00AAF2), RUNE_C(0x00AAF5)},
+ {RUNE_C(0x00AB01), RUNE_C(0x00AB06)},
+ {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)},
+ {RUNE_C(0x00AB11), RUNE_C(0x00AB16)},
+ {RUNE_C(0x00AB20), RUNE_C(0x00AB26)},
+ {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)},
+ {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)},
+ {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)},
+ {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)},
+ {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)},
+ {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)},
+ {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)},
+ {RUNE_C(0x00FB40), RUNE_C(0x00FB41)},
+ {RUNE_C(0x00FB43), RUNE_C(0x00FB44)},
+ {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)},
+ {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)},
+ {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)},
+ {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)},
+ {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)},
+ {RUNE_C(0x00FE70), RUNE_C(0x00FE74)},
+ {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x00FF66), RUNE_C(0x00FFBE)},
+ {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)},
+ {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)},
+ {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)},
+ {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)},
+ {RUNE_C(0x010000), RUNE_C(0x01000B)},
+ {RUNE_C(0x01000D), RUNE_C(0x010026)},
+ {RUNE_C(0x010028), RUNE_C(0x01003A)},
+ {RUNE_C(0x01003C), RUNE_C(0x01003D)},
+ {RUNE_C(0x01003F), RUNE_C(0x01004D)},
+ {RUNE_C(0x010050), RUNE_C(0x01005D)},
+ {RUNE_C(0x010080), RUNE_C(0x0100FA)},
+ {RUNE_C(0x010140), RUNE_C(0x010174)},
+ {RUNE_C(0x010280), RUNE_C(0x01029C)},
+ {RUNE_C(0x0102A0), RUNE_C(0x0102D0)},
+ {RUNE_C(0x010300), RUNE_C(0x01031F)},
+ {RUNE_C(0x01032D), RUNE_C(0x01034A)},
+ {RUNE_C(0x010350), RUNE_C(0x01037A)},
+ {RUNE_C(0x010380), RUNE_C(0x01039D)},
+ {RUNE_C(0x0103A0), RUNE_C(0x0103C3)},
+ {RUNE_C(0x0103C8), RUNE_C(0x0103CF)},
+ {RUNE_C(0x0103D1), RUNE_C(0x0103D5)},
+ {RUNE_C(0x010400), RUNE_C(0x01049D)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010500), RUNE_C(0x010527)},
+ {RUNE_C(0x010530), RUNE_C(0x010563)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010600), RUNE_C(0x010736)},
+ {RUNE_C(0x010740), RUNE_C(0x010755)},
+ {RUNE_C(0x010760), RUNE_C(0x010767)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010800), RUNE_C(0x010805)},
+ {RUNE_C(0x010808), RUNE_C(0x010808)},
+ {RUNE_C(0x01080A), RUNE_C(0x010835)},
+ {RUNE_C(0x010837), RUNE_C(0x010838)},
+ {RUNE_C(0x01083C), RUNE_C(0x01083C)},
+ {RUNE_C(0x01083F), RUNE_C(0x010855)},
+ {RUNE_C(0x010860), RUNE_C(0x010876)},
+ {RUNE_C(0x010880), RUNE_C(0x01089E)},
+ {RUNE_C(0x0108E0), RUNE_C(0x0108F2)},
+ {RUNE_C(0x0108F4), RUNE_C(0x0108F5)},
+ {RUNE_C(0x010900), RUNE_C(0x010915)},
+ {RUNE_C(0x010920), RUNE_C(0x010939)},
+ {RUNE_C(0x010980), RUNE_C(0x0109B7)},
+ {RUNE_C(0x0109BE), RUNE_C(0x0109BF)},
+ {RUNE_C(0x010A00), RUNE_C(0x010A03)},
+ {RUNE_C(0x010A05), RUNE_C(0x010A06)},
+ {RUNE_C(0x010A0C), RUNE_C(0x010A13)},
+ {RUNE_C(0x010A15), RUNE_C(0x010A17)},
+ {RUNE_C(0x010A19), RUNE_C(0x010A35)},
+ {RUNE_C(0x010A60), RUNE_C(0x010A7C)},
+ {RUNE_C(0x010A80), RUNE_C(0x010A9C)},
+ {RUNE_C(0x010AC0), RUNE_C(0x010AC7)},
+ {RUNE_C(0x010AC9), RUNE_C(0x010AE4)},
+ {RUNE_C(0x010B00), RUNE_C(0x010B35)},
+ {RUNE_C(0x010B40), RUNE_C(0x010B55)},
+ {RUNE_C(0x010B60), RUNE_C(0x010B72)},
+ {RUNE_C(0x010B80), RUNE_C(0x010B91)},
+ {RUNE_C(0x010C00), RUNE_C(0x010C48)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x010D00), RUNE_C(0x010D27)},
+ {RUNE_C(0x010E80), RUNE_C(0x010EA9)},
+ {RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
+ {RUNE_C(0x010EB0), RUNE_C(0x010EB1)},
+ {RUNE_C(0x010F00), RUNE_C(0x010F1C)},
+ {RUNE_C(0x010F27), RUNE_C(0x010F27)},
+ {RUNE_C(0x010F30), RUNE_C(0x010F45)},
+ {RUNE_C(0x010F70), RUNE_C(0x010F81)},
+ {RUNE_C(0x010FB0), RUNE_C(0x010FC4)},
+ {RUNE_C(0x010FE0), RUNE_C(0x010FF6)},
+ {RUNE_C(0x011000), RUNE_C(0x011045)},
+ {RUNE_C(0x011071), RUNE_C(0x011075)},
+ {RUNE_C(0x011080), RUNE_C(0x0110B8)},
+ {RUNE_C(0x0110C2), RUNE_C(0x0110C2)},
+ {RUNE_C(0x0110D0), RUNE_C(0x0110E8)},
+ {RUNE_C(0x011100), RUNE_C(0x011132)},
+ {RUNE_C(0x011144), RUNE_C(0x011147)},
+ {RUNE_C(0x011150), RUNE_C(0x011172)},
+ {RUNE_C(0x011176), RUNE_C(0x011176)},
+ {RUNE_C(0x011180), RUNE_C(0x0111BF)},
+ {RUNE_C(0x0111C1), RUNE_C(0x0111C4)},
+ {RUNE_C(0x0111CE), RUNE_C(0x0111CF)},
+ {RUNE_C(0x0111DA), RUNE_C(0x0111DA)},
+ {RUNE_C(0x0111DC), RUNE_C(0x0111DC)},
+ {RUNE_C(0x011200), RUNE_C(0x011211)},
+ {RUNE_C(0x011213), RUNE_C(0x011234)},
+ {RUNE_C(0x011237), RUNE_C(0x011237)},
+ {RUNE_C(0x01123E), RUNE_C(0x011241)},
+ {RUNE_C(0x011280), RUNE_C(0x011286)},
+ {RUNE_C(0x011288), RUNE_C(0x011288)},
+ {RUNE_C(0x01128A), RUNE_C(0x01128D)},
+ {RUNE_C(0x01128F), RUNE_C(0x01129D)},
+ {RUNE_C(0x01129F), RUNE_C(0x0112A8)},
+ {RUNE_C(0x0112B0), RUNE_C(0x0112E8)},
+ {RUNE_C(0x011300), RUNE_C(0x011303)},
+ {RUNE_C(0x011305), RUNE_C(0x01130C)},
+ {RUNE_C(0x01130F), RUNE_C(0x011310)},
+ {RUNE_C(0x011313), RUNE_C(0x011328)},
+ {RUNE_C(0x01132A), RUNE_C(0x011330)},
+ {RUNE_C(0x011332), RUNE_C(0x011333)},
+ {RUNE_C(0x011335), RUNE_C(0x011339)},
+ {RUNE_C(0x01133D), RUNE_C(0x011344)},
+ {RUNE_C(0x011347), RUNE_C(0x011348)},
+ {RUNE_C(0x01134B), RUNE_C(0x01134C)},
+ {RUNE_C(0x011350), RUNE_C(0x011350)},
+ {RUNE_C(0x011357), RUNE_C(0x011357)},
+ {RUNE_C(0x01135D), RUNE_C(0x011363)},
+ {RUNE_C(0x011400), RUNE_C(0x011441)},
+ {RUNE_C(0x011443), RUNE_C(0x011445)},
+ {RUNE_C(0x011447), RUNE_C(0x01144A)},
+ {RUNE_C(0x01145F), RUNE_C(0x011461)},
+ {RUNE_C(0x011480), RUNE_C(0x0114C1)},
+ {RUNE_C(0x0114C4), RUNE_C(0x0114C5)},
+ {RUNE_C(0x0114C7), RUNE_C(0x0114C7)},
+ {RUNE_C(0x011580), RUNE_C(0x0115B5)},
+ {RUNE_C(0x0115B8), RUNE_C(0x0115BE)},
+ {RUNE_C(0x0115D8), RUNE_C(0x0115DD)},
+ {RUNE_C(0x011600), RUNE_C(0x01163E)},
+ {RUNE_C(0x011640), RUNE_C(0x011640)},
+ {RUNE_C(0x011644), RUNE_C(0x011644)},
+ {RUNE_C(0x011680), RUNE_C(0x0116B5)},
+ {RUNE_C(0x0116B8), RUNE_C(0x0116B8)},
+ {RUNE_C(0x011700), RUNE_C(0x01171A)},
+ {RUNE_C(0x01171D), RUNE_C(0x01172A)},
+ {RUNE_C(0x011740), RUNE_C(0x011746)},
+ {RUNE_C(0x011800), RUNE_C(0x011838)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x0118FF), RUNE_C(0x011906)},
+ {RUNE_C(0x011909), RUNE_C(0x011909)},
+ {RUNE_C(0x01190C), RUNE_C(0x011913)},
+ {RUNE_C(0x011915), RUNE_C(0x011916)},
+ {RUNE_C(0x011918), RUNE_C(0x011935)},
+ {RUNE_C(0x011937), RUNE_C(0x011938)},
+ {RUNE_C(0x01193B), RUNE_C(0x01193C)},
+ {RUNE_C(0x01193F), RUNE_C(0x011942)},
+ {RUNE_C(0x0119A0), RUNE_C(0x0119A7)},
+ {RUNE_C(0x0119AA), RUNE_C(0x0119D7)},
+ {RUNE_C(0x0119DA), RUNE_C(0x0119DF)},
+ {RUNE_C(0x0119E1), RUNE_C(0x0119E1)},
+ {RUNE_C(0x0119E3), RUNE_C(0x0119E4)},
+ {RUNE_C(0x011A00), RUNE_C(0x011A32)},
+ {RUNE_C(0x011A35), RUNE_C(0x011A3E)},
+ {RUNE_C(0x011A50), RUNE_C(0x011A97)},
+ {RUNE_C(0x011A9D), RUNE_C(0x011A9D)},
+ {RUNE_C(0x011AB0), RUNE_C(0x011AF8)},
+ {RUNE_C(0x011C00), RUNE_C(0x011C08)},
+ {RUNE_C(0x011C0A), RUNE_C(0x011C36)},
+ {RUNE_C(0x011C38), RUNE_C(0x011C3E)},
+ {RUNE_C(0x011C40), RUNE_C(0x011C40)},
+ {RUNE_C(0x011C72), RUNE_C(0x011C8F)},
+ {RUNE_C(0x011C92), RUNE_C(0x011CA7)},
+ {RUNE_C(0x011CA9), RUNE_C(0x011CB6)},
+ {RUNE_C(0x011D00), RUNE_C(0x011D06)},
+ {RUNE_C(0x011D08), RUNE_C(0x011D09)},
+ {RUNE_C(0x011D0B), RUNE_C(0x011D36)},
+ {RUNE_C(0x011D3A), RUNE_C(0x011D3A)},
+ {RUNE_C(0x011D3C), RUNE_C(0x011D3D)},
+ {RUNE_C(0x011D3F), RUNE_C(0x011D41)},
+ {RUNE_C(0x011D43), RUNE_C(0x011D43)},
+ {RUNE_C(0x011D46), RUNE_C(0x011D47)},
+ {RUNE_C(0x011D60), RUNE_C(0x011D65)},
+ {RUNE_C(0x011D67), RUNE_C(0x011D68)},
+ {RUNE_C(0x011D6A), RUNE_C(0x011D8E)},
+ {RUNE_C(0x011D90), RUNE_C(0x011D91)},
+ {RUNE_C(0x011D93), RUNE_C(0x011D96)},
+ {RUNE_C(0x011D98), RUNE_C(0x011D98)},
+ {RUNE_C(0x011EE0), RUNE_C(0x011EF6)},
+ {RUNE_C(0x011F00), RUNE_C(0x011F10)},
+ {RUNE_C(0x011F12), RUNE_C(0x011F3A)},
+ {RUNE_C(0x011F3E), RUNE_C(0x011F40)},
+ {RUNE_C(0x011FB0), RUNE_C(0x011FB0)},
+ {RUNE_C(0x012000), RUNE_C(0x012399)},
+ {RUNE_C(0x012400), RUNE_C(0x01246E)},
+ {RUNE_C(0x012480), RUNE_C(0x012543)},
+ {RUNE_C(0x012F90), RUNE_C(0x012FF0)},
+ {RUNE_C(0x013000), RUNE_C(0x01342F)},
+ {RUNE_C(0x013441), RUNE_C(0x013446)},
+ {RUNE_C(0x014400), RUNE_C(0x014646)},
+ {RUNE_C(0x016800), RUNE_C(0x016A38)},
+ {RUNE_C(0x016A40), RUNE_C(0x016A5E)},
+ {RUNE_C(0x016A70), RUNE_C(0x016ABE)},
+ {RUNE_C(0x016AD0), RUNE_C(0x016AED)},
+ {RUNE_C(0x016B00), RUNE_C(0x016B2F)},
+ {RUNE_C(0x016B40), RUNE_C(0x016B43)},
+ {RUNE_C(0x016B63), RUNE_C(0x016B77)},
+ {RUNE_C(0x016B7D), RUNE_C(0x016B8F)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E7F)},
+ {RUNE_C(0x016F00), RUNE_C(0x016F4A)},
+ {RUNE_C(0x016F4F), RUNE_C(0x016F87)},
+ {RUNE_C(0x016F8F), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
+ {RUNE_C(0x016FE3), RUNE_C(0x016FE3)},
+ {RUNE_C(0x016FF0), RUNE_C(0x016FF1)},
+ {RUNE_C(0x017000), RUNE_C(0x0187F7)},
+ {RUNE_C(0x018800), RUNE_C(0x018CD5)},
+ {RUNE_C(0x018D00), RUNE_C(0x018D08)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01B000), RUNE_C(0x01B122)},
+ {RUNE_C(0x01B132), RUNE_C(0x01B132)},
+ {RUNE_C(0x01B150), RUNE_C(0x01B152)},
+ {RUNE_C(0x01B155), RUNE_C(0x01B155)},
+ {RUNE_C(0x01B164), RUNE_C(0x01B167)},
+ {RUNE_C(0x01B170), RUNE_C(0x01B2FB)},
+ {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)},
+ {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)},
+ {RUNE_C(0x01BC80), RUNE_C(0x01BC88)},
+ {RUNE_C(0x01BC90), RUNE_C(0x01BC99)},
+ {RUNE_C(0x01BC9E), RUNE_C(0x01BC9E)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)},
+ {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)},
+ {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)},
+ {RUNE_C(0x01D6FC), RUNE_C(0x01D714)},
+ {RUNE_C(0x01D716), RUNE_C(0x01D734)},
+ {RUNE_C(0x01D736), RUNE_C(0x01D74E)},
+ {RUNE_C(0x01D750), RUNE_C(0x01D76E)},
+ {RUNE_C(0x01D770), RUNE_C(0x01D788)},
+ {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)},
+ {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)},
+ {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E000), RUNE_C(0x01E006)},
+ {RUNE_C(0x01E008), RUNE_C(0x01E018)},
+ {RUNE_C(0x01E01B), RUNE_C(0x01E021)},
+ {RUNE_C(0x01E023), RUNE_C(0x01E024)},
+ {RUNE_C(0x01E026), RUNE_C(0x01E02A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
+ {RUNE_C(0x01E100), RUNE_C(0x01E12C)},
+ {RUNE_C(0x01E137), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E14E), RUNE_C(0x01E14E)},
+ {RUNE_C(0x01E290), RUNE_C(0x01E2AD)},
+ {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)},
+ {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)},
+ {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)},
+ {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)},
+ {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)},
+ {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)},
+ {RUNE_C(0x01E800), RUNE_C(0x01E8C4)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E943)},
+ {RUNE_C(0x01E947), RUNE_C(0x01E947)},
+ {RUNE_C(0x01E94B), RUNE_C(0x01E94B)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x01F130), RUNE_C(0x01F149)},
+ {RUNE_C(0x01F150), RUNE_C(0x01F169)},
+ {RUNE_C(0x01F170), RUNE_C(0x01F189)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_alpha(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_bidi_c.c b/lib/unicode/prop/uprop_is_bidi_c.c
new file mode 100644
index 0000000..962c219
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_bidi_c.c
@@ -0,0 +1,25 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00061C), RUNE_C(0x00061C)},
+ {RUNE_C(0x00200E), RUNE_C(0x00200F)},
+ {RUNE_C(0x00202A), RUNE_C(0x00202E)},
+ {RUNE_C(0x002066), RUNE_C(0x002069)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_bidi_c(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_bidi_m.c b/lib/unicode/prop/uprop_is_bidi_m.c
new file mode 100644
index 0000000..f415fce
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_bidi_m.c
@@ -0,0 +1,133 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x50,
+ 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x28,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000F3A), RUNE_C(0x000F3D)},
+ {RUNE_C(0x00169B), RUNE_C(0x00169C)},
+ {RUNE_C(0x002039), RUNE_C(0x00203A)},
+ {RUNE_C(0x002045), RUNE_C(0x002046)},
+ {RUNE_C(0x00207D), RUNE_C(0x00207E)},
+ {RUNE_C(0x00208D), RUNE_C(0x00208E)},
+ {RUNE_C(0x002140), RUNE_C(0x002140)},
+ {RUNE_C(0x002201), RUNE_C(0x002204)},
+ {RUNE_C(0x002208), RUNE_C(0x00220D)},
+ {RUNE_C(0x002211), RUNE_C(0x002211)},
+ {RUNE_C(0x002215), RUNE_C(0x002216)},
+ {RUNE_C(0x00221A), RUNE_C(0x00221D)},
+ {RUNE_C(0x00221F), RUNE_C(0x002222)},
+ {RUNE_C(0x002224), RUNE_C(0x002224)},
+ {RUNE_C(0x002226), RUNE_C(0x002226)},
+ {RUNE_C(0x00222B), RUNE_C(0x002233)},
+ {RUNE_C(0x002239), RUNE_C(0x002239)},
+ {RUNE_C(0x00223B), RUNE_C(0x00224C)},
+ {RUNE_C(0x002252), RUNE_C(0x002255)},
+ {RUNE_C(0x00225F), RUNE_C(0x002260)},
+ {RUNE_C(0x002262), RUNE_C(0x002262)},
+ {RUNE_C(0x002264), RUNE_C(0x00226B)},
+ {RUNE_C(0x00226E), RUNE_C(0x00228C)},
+ {RUNE_C(0x00228F), RUNE_C(0x002292)},
+ {RUNE_C(0x002298), RUNE_C(0x002298)},
+ {RUNE_C(0x0022A2), RUNE_C(0x0022A3)},
+ {RUNE_C(0x0022A6), RUNE_C(0x0022B8)},
+ {RUNE_C(0x0022BE), RUNE_C(0x0022BF)},
+ {RUNE_C(0x0022C9), RUNE_C(0x0022CD)},
+ {RUNE_C(0x0022D0), RUNE_C(0x0022D1)},
+ {RUNE_C(0x0022D6), RUNE_C(0x0022ED)},
+ {RUNE_C(0x0022F0), RUNE_C(0x0022FF)},
+ {RUNE_C(0x002308), RUNE_C(0x00230B)},
+ {RUNE_C(0x002320), RUNE_C(0x002321)},
+ {RUNE_C(0x002329), RUNE_C(0x00232A)},
+ {RUNE_C(0x002768), RUNE_C(0x002775)},
+ {RUNE_C(0x0027C0), RUNE_C(0x0027C0)},
+ {RUNE_C(0x0027C3), RUNE_C(0x0027C6)},
+ {RUNE_C(0x0027C8), RUNE_C(0x0027C9)},
+ {RUNE_C(0x0027CB), RUNE_C(0x0027CD)},
+ {RUNE_C(0x0027D3), RUNE_C(0x0027D6)},
+ {RUNE_C(0x0027DC), RUNE_C(0x0027DE)},
+ {RUNE_C(0x0027E2), RUNE_C(0x0027EF)},
+ {RUNE_C(0x002983), RUNE_C(0x002998)},
+ {RUNE_C(0x00299B), RUNE_C(0x0029A0)},
+ {RUNE_C(0x0029A2), RUNE_C(0x0029AF)},
+ {RUNE_C(0x0029B8), RUNE_C(0x0029B8)},
+ {RUNE_C(0x0029C0), RUNE_C(0x0029C5)},
+ {RUNE_C(0x0029C9), RUNE_C(0x0029C9)},
+ {RUNE_C(0x0029CE), RUNE_C(0x0029D2)},
+ {RUNE_C(0x0029D4), RUNE_C(0x0029D5)},
+ {RUNE_C(0x0029D8), RUNE_C(0x0029DC)},
+ {RUNE_C(0x0029E1), RUNE_C(0x0029E1)},
+ {RUNE_C(0x0029E3), RUNE_C(0x0029E5)},
+ {RUNE_C(0x0029E8), RUNE_C(0x0029E9)},
+ {RUNE_C(0x0029F4), RUNE_C(0x0029F9)},
+ {RUNE_C(0x0029FC), RUNE_C(0x0029FD)},
+ {RUNE_C(0x002A0A), RUNE_C(0x002A1C)},
+ {RUNE_C(0x002A1E), RUNE_C(0x002A21)},
+ {RUNE_C(0x002A24), RUNE_C(0x002A24)},
+ {RUNE_C(0x002A26), RUNE_C(0x002A26)},
+ {RUNE_C(0x002A29), RUNE_C(0x002A29)},
+ {RUNE_C(0x002A2B), RUNE_C(0x002A2E)},
+ {RUNE_C(0x002A34), RUNE_C(0x002A35)},
+ {RUNE_C(0x002A3C), RUNE_C(0x002A3E)},
+ {RUNE_C(0x002A57), RUNE_C(0x002A58)},
+ {RUNE_C(0x002A64), RUNE_C(0x002A65)},
+ {RUNE_C(0x002A6A), RUNE_C(0x002A6D)},
+ {RUNE_C(0x002A6F), RUNE_C(0x002A70)},
+ {RUNE_C(0x002A73), RUNE_C(0x002A74)},
+ {RUNE_C(0x002A79), RUNE_C(0x002AA3)},
+ {RUNE_C(0x002AA6), RUNE_C(0x002AAD)},
+ {RUNE_C(0x002AAF), RUNE_C(0x002AD6)},
+ {RUNE_C(0x002ADC), RUNE_C(0x002ADC)},
+ {RUNE_C(0x002ADE), RUNE_C(0x002ADE)},
+ {RUNE_C(0x002AE2), RUNE_C(0x002AE6)},
+ {RUNE_C(0x002AEC), RUNE_C(0x002AEE)},
+ {RUNE_C(0x002AF3), RUNE_C(0x002AF3)},
+ {RUNE_C(0x002AF7), RUNE_C(0x002AFB)},
+ {RUNE_C(0x002AFD), RUNE_C(0x002AFD)},
+ {RUNE_C(0x002BFE), RUNE_C(0x002BFE)},
+ {RUNE_C(0x002E02), RUNE_C(0x002E05)},
+ {RUNE_C(0x002E09), RUNE_C(0x002E0A)},
+ {RUNE_C(0x002E0C), RUNE_C(0x002E0D)},
+ {RUNE_C(0x002E1C), RUNE_C(0x002E1D)},
+ {RUNE_C(0x002E20), RUNE_C(0x002E29)},
+ {RUNE_C(0x002E55), RUNE_C(0x002E5C)},
+ {RUNE_C(0x003008), RUNE_C(0x003011)},
+ {RUNE_C(0x003014), RUNE_C(0x00301B)},
+ {RUNE_C(0x00FE59), RUNE_C(0x00FE5E)},
+ {RUNE_C(0x00FE64), RUNE_C(0x00FE65)},
+ {RUNE_C(0x00FF08), RUNE_C(0x00FF09)},
+ {RUNE_C(0x00FF1C), RUNE_C(0x00FF1C)},
+ {RUNE_C(0x00FF1E), RUNE_C(0x00FF1E)},
+ {RUNE_C(0x00FF3B), RUNE_C(0x00FF3B)},
+ {RUNE_C(0x00FF3D), RUNE_C(0x00FF3D)},
+ {RUNE_C(0x00FF5B), RUNE_C(0x00FF5B)},
+ {RUNE_C(0x00FF5D), RUNE_C(0x00FF5D)},
+ {RUNE_C(0x00FF5F), RUNE_C(0x00FF60)},
+ {RUNE_C(0x00FF62), RUNE_C(0x00FF63)},
+ {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)},
+ {RUNE_C(0x01D715), RUNE_C(0x01D715)},
+ {RUNE_C(0x01D74F), RUNE_C(0x01D74F)},
+ {RUNE_C(0x01D789), RUNE_C(0x01D789)},
+ {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_bidi_m(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_cased.c b/lib/unicode/prop/uprop_is_cased.c
new file mode 100644
index 0000000..ee0b288
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_cased.c
@@ -0,0 +1,178 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x0001BA)},
+ {RUNE_C(0x0001BC), RUNE_C(0x0001BF)},
+ {RUNE_C(0x0001C4), RUNE_C(0x000293)},
+ {RUNE_C(0x000295), RUNE_C(0x0002B8)},
+ {RUNE_C(0x0002C0), RUNE_C(0x0002C1)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x000345), RUNE_C(0x000345)},
+ {RUNE_C(0x000370), RUNE_C(0x000373)},
+ {RUNE_C(0x000376), RUNE_C(0x000377)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037D)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x000481)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000560), RUNE_C(0x000588)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FC), RUNE_C(0x0010FF)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001D00), RUNE_C(0x001DBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFC)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210A), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002119), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x00212D)},
+ {RUNE_C(0x00212F), RUNE_C(0x002134)},
+ {RUNE_C(0x002139), RUNE_C(0x002139)},
+ {RUNE_C(0x00213C), RUNE_C(0x00213F)},
+ {RUNE_C(0x002145), RUNE_C(0x002149)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002160), RUNE_C(0x00217F)},
+ {RUNE_C(0x002183), RUNE_C(0x002184)},
+ {RUNE_C(0x0024B6), RUNE_C(0x0024E9)},
+ {RUNE_C(0x002C00), RUNE_C(0x002CE4)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66D)},
+ {RUNE_C(0x00A680), RUNE_C(0x00A69D)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A787)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A78E)},
+ {RUNE_C(0x00A790), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A7F6)},
+ {RUNE_C(0x00A7F8), RUNE_C(0x00A7FA)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x010400), RUNE_C(0x01044F)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010780), RUNE_C(0x010780)},
+ {RUNE_C(0x010783), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E7F)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)},
+ {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)},
+ {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)},
+ {RUNE_C(0x01D6FC), RUNE_C(0x01D714)},
+ {RUNE_C(0x01D716), RUNE_C(0x01D734)},
+ {RUNE_C(0x01D736), RUNE_C(0x01D74E)},
+ {RUNE_C(0x01D750), RUNE_C(0x01D76E)},
+ {RUNE_C(0x01D770), RUNE_C(0x01D788)},
+ {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)},
+ {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)},
+ {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF09)},
+ {RUNE_C(0x01DF0B), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E943)},
+ {RUNE_C(0x01F130), RUNE_C(0x01F149)},
+ {RUNE_C(0x01F150), RUNE_C(0x01F169)},
+ {RUNE_C(0x01F170), RUNE_C(0x01F189)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_cased(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_ci.c b/lib/unicode/prop/uprop_is_ci.c
new file mode 100644
index 0000000..43f0e11
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_ci.c
@@ -0,0 +1,455 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xA1, 0x90, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x0002B0), RUNE_C(0x00036F)},
+ {RUNE_C(0x000374), RUNE_C(0x000375)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037A)},
+ {RUNE_C(0x000384), RUNE_C(0x000385)},
+ {RUNE_C(0x000387), RUNE_C(0x000387)},
+ {RUNE_C(0x000483), RUNE_C(0x000489)},
+ {RUNE_C(0x000559), RUNE_C(0x000559)},
+ {RUNE_C(0x00055F), RUNE_C(0x00055F)},
+ {RUNE_C(0x000591), RUNE_C(0x0005BD)},
+ {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
+ {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
+ {RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
+ {RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
+ {RUNE_C(0x0005F4), RUNE_C(0x0005F4)},
+ {RUNE_C(0x000600), RUNE_C(0x000605)},
+ {RUNE_C(0x000610), RUNE_C(0x00061A)},
+ {RUNE_C(0x00061C), RUNE_C(0x00061C)},
+ {RUNE_C(0x000640), RUNE_C(0x000640)},
+ {RUNE_C(0x00064B), RUNE_C(0x00065F)},
+ {RUNE_C(0x000670), RUNE_C(0x000670)},
+ {RUNE_C(0x0006D6), RUNE_C(0x0006DD)},
+ {RUNE_C(0x0006DF), RUNE_C(0x0006E8)},
+ {RUNE_C(0x0006EA), RUNE_C(0x0006ED)},
+ {RUNE_C(0x00070F), RUNE_C(0x00070F)},
+ {RUNE_C(0x000711), RUNE_C(0x000711)},
+ {RUNE_C(0x000730), RUNE_C(0x00074A)},
+ {RUNE_C(0x0007A6), RUNE_C(0x0007B0)},
+ {RUNE_C(0x0007EB), RUNE_C(0x0007F5)},
+ {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
+ {RUNE_C(0x0007FD), RUNE_C(0x0007FD)},
+ {RUNE_C(0x000816), RUNE_C(0x00082D)},
+ {RUNE_C(0x000859), RUNE_C(0x00085B)},
+ {RUNE_C(0x000888), RUNE_C(0x000888)},
+ {RUNE_C(0x000890), RUNE_C(0x000891)},
+ {RUNE_C(0x000898), RUNE_C(0x00089F)},
+ {RUNE_C(0x0008C9), RUNE_C(0x000902)},
+ {RUNE_C(0x00093A), RUNE_C(0x00093A)},
+ {RUNE_C(0x00093C), RUNE_C(0x00093C)},
+ {RUNE_C(0x000941), RUNE_C(0x000948)},
+ {RUNE_C(0x00094D), RUNE_C(0x00094D)},
+ {RUNE_C(0x000951), RUNE_C(0x000957)},
+ {RUNE_C(0x000962), RUNE_C(0x000963)},
+ {RUNE_C(0x000971), RUNE_C(0x000971)},
+ {RUNE_C(0x000981), RUNE_C(0x000981)},
+ {RUNE_C(0x0009BC), RUNE_C(0x0009BC)},
+ {RUNE_C(0x0009C1), RUNE_C(0x0009C4)},
+ {RUNE_C(0x0009CD), RUNE_C(0x0009CD)},
+ {RUNE_C(0x0009E2), RUNE_C(0x0009E3)},
+ {RUNE_C(0x0009FE), RUNE_C(0x0009FE)},
+ {RUNE_C(0x000A01), RUNE_C(0x000A02)},
+ {RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
+ {RUNE_C(0x000A41), RUNE_C(0x000A42)},
+ {RUNE_C(0x000A47), RUNE_C(0x000A48)},
+ {RUNE_C(0x000A4B), RUNE_C(0x000A4D)},
+ {RUNE_C(0x000A51), RUNE_C(0x000A51)},
+ {RUNE_C(0x000A70), RUNE_C(0x000A71)},
+ {RUNE_C(0x000A75), RUNE_C(0x000A75)},
+ {RUNE_C(0x000A81), RUNE_C(0x000A82)},
+ {RUNE_C(0x000ABC), RUNE_C(0x000ABC)},
+ {RUNE_C(0x000AC1), RUNE_C(0x000AC5)},
+ {RUNE_C(0x000AC7), RUNE_C(0x000AC8)},
+ {RUNE_C(0x000ACD), RUNE_C(0x000ACD)},
+ {RUNE_C(0x000AE2), RUNE_C(0x000AE3)},
+ {RUNE_C(0x000AFA), RUNE_C(0x000AFF)},
+ {RUNE_C(0x000B01), RUNE_C(0x000B01)},
+ {RUNE_C(0x000B3C), RUNE_C(0x000B3C)},
+ {RUNE_C(0x000B3F), RUNE_C(0x000B3F)},
+ {RUNE_C(0x000B41), RUNE_C(0x000B44)},
+ {RUNE_C(0x000B4D), RUNE_C(0x000B4D)},
+ {RUNE_C(0x000B55), RUNE_C(0x000B56)},
+ {RUNE_C(0x000B62), RUNE_C(0x000B63)},
+ {RUNE_C(0x000B82), RUNE_C(0x000B82)},
+ {RUNE_C(0x000BC0), RUNE_C(0x000BC0)},
+ {RUNE_C(0x000BCD), RUNE_C(0x000BCD)},
+ {RUNE_C(0x000C00), RUNE_C(0x000C00)},
+ {RUNE_C(0x000C04), RUNE_C(0x000C04)},
+ {RUNE_C(0x000C3C), RUNE_C(0x000C3C)},
+ {RUNE_C(0x000C3E), RUNE_C(0x000C40)},
+ {RUNE_C(0x000C46), RUNE_C(0x000C48)},
+ {RUNE_C(0x000C4A), RUNE_C(0x000C4D)},
+ {RUNE_C(0x000C55), RUNE_C(0x000C56)},
+ {RUNE_C(0x000C62), RUNE_C(0x000C63)},
+ {RUNE_C(0x000C81), RUNE_C(0x000C81)},
+ {RUNE_C(0x000CBC), RUNE_C(0x000CBC)},
+ {RUNE_C(0x000CBF), RUNE_C(0x000CBF)},
+ {RUNE_C(0x000CC6), RUNE_C(0x000CC6)},
+ {RUNE_C(0x000CCC), RUNE_C(0x000CCD)},
+ {RUNE_C(0x000CE2), RUNE_C(0x000CE3)},
+ {RUNE_C(0x000D00), RUNE_C(0x000D01)},
+ {RUNE_C(0x000D3B), RUNE_C(0x000D3C)},
+ {RUNE_C(0x000D41), RUNE_C(0x000D44)},
+ {RUNE_C(0x000D4D), RUNE_C(0x000D4D)},
+ {RUNE_C(0x000D62), RUNE_C(0x000D63)},
+ {RUNE_C(0x000D81), RUNE_C(0x000D81)},
+ {RUNE_C(0x000DCA), RUNE_C(0x000DCA)},
+ {RUNE_C(0x000DD2), RUNE_C(0x000DD4)},
+ {RUNE_C(0x000DD6), RUNE_C(0x000DD6)},
+ {RUNE_C(0x000E31), RUNE_C(0x000E31)},
+ {RUNE_C(0x000E34), RUNE_C(0x000E3A)},
+ {RUNE_C(0x000E46), RUNE_C(0x000E4E)},
+ {RUNE_C(0x000EB1), RUNE_C(0x000EB1)},
+ {RUNE_C(0x000EB4), RUNE_C(0x000EBC)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x000EC8), RUNE_C(0x000ECE)},
+ {RUNE_C(0x000F18), RUNE_C(0x000F19)},
+ {RUNE_C(0x000F35), RUNE_C(0x000F35)},
+ {RUNE_C(0x000F37), RUNE_C(0x000F37)},
+ {RUNE_C(0x000F39), RUNE_C(0x000F39)},
+ {RUNE_C(0x000F71), RUNE_C(0x000F7E)},
+ {RUNE_C(0x000F80), RUNE_C(0x000F84)},
+ {RUNE_C(0x000F86), RUNE_C(0x000F87)},
+ {RUNE_C(0x000F8D), RUNE_C(0x000F97)},
+ {RUNE_C(0x000F99), RUNE_C(0x000FBC)},
+ {RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
+ {RUNE_C(0x00102D), RUNE_C(0x001030)},
+ {RUNE_C(0x001032), RUNE_C(0x001037)},
+ {RUNE_C(0x001039), RUNE_C(0x00103A)},
+ {RUNE_C(0x00103D), RUNE_C(0x00103E)},
+ {RUNE_C(0x001058), RUNE_C(0x001059)},
+ {RUNE_C(0x00105E), RUNE_C(0x001060)},
+ {RUNE_C(0x001071), RUNE_C(0x001074)},
+ {RUNE_C(0x001082), RUNE_C(0x001082)},
+ {RUNE_C(0x001085), RUNE_C(0x001086)},
+ {RUNE_C(0x00108D), RUNE_C(0x00108D)},
+ {RUNE_C(0x00109D), RUNE_C(0x00109D)},
+ {RUNE_C(0x0010FC), RUNE_C(0x0010FC)},
+ {RUNE_C(0x00135D), RUNE_C(0x00135F)},
+ {RUNE_C(0x001712), RUNE_C(0x001714)},
+ {RUNE_C(0x001732), RUNE_C(0x001733)},
+ {RUNE_C(0x001752), RUNE_C(0x001753)},
+ {RUNE_C(0x001772), RUNE_C(0x001773)},
+ {RUNE_C(0x0017B4), RUNE_C(0x0017B5)},
+ {RUNE_C(0x0017B7), RUNE_C(0x0017BD)},
+ {RUNE_C(0x0017C6), RUNE_C(0x0017C6)},
+ {RUNE_C(0x0017C9), RUNE_C(0x0017D3)},
+ {RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
+ {RUNE_C(0x0017DD), RUNE_C(0x0017DD)},
+ {RUNE_C(0x00180B), RUNE_C(0x00180F)},
+ {RUNE_C(0x001843), RUNE_C(0x001843)},
+ {RUNE_C(0x001885), RUNE_C(0x001886)},
+ {RUNE_C(0x0018A9), RUNE_C(0x0018A9)},
+ {RUNE_C(0x001920), RUNE_C(0x001922)},
+ {RUNE_C(0x001927), RUNE_C(0x001928)},
+ {RUNE_C(0x001932), RUNE_C(0x001932)},
+ {RUNE_C(0x001939), RUNE_C(0x00193B)},
+ {RUNE_C(0x001A17), RUNE_C(0x001A18)},
+ {RUNE_C(0x001A1B), RUNE_C(0x001A1B)},
+ {RUNE_C(0x001A56), RUNE_C(0x001A56)},
+ {RUNE_C(0x001A58), RUNE_C(0x001A5E)},
+ {RUNE_C(0x001A60), RUNE_C(0x001A60)},
+ {RUNE_C(0x001A62), RUNE_C(0x001A62)},
+ {RUNE_C(0x001A65), RUNE_C(0x001A6C)},
+ {RUNE_C(0x001A73), RUNE_C(0x001A7C)},
+ {RUNE_C(0x001A7F), RUNE_C(0x001A7F)},
+ {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
+ {RUNE_C(0x001AB0), RUNE_C(0x001ACE)},
+ {RUNE_C(0x001B00), RUNE_C(0x001B03)},
+ {RUNE_C(0x001B34), RUNE_C(0x001B34)},
+ {RUNE_C(0x001B36), RUNE_C(0x001B3A)},
+ {RUNE_C(0x001B3C), RUNE_C(0x001B3C)},
+ {RUNE_C(0x001B42), RUNE_C(0x001B42)},
+ {RUNE_C(0x001B6B), RUNE_C(0x001B73)},
+ {RUNE_C(0x001B80), RUNE_C(0x001B81)},
+ {RUNE_C(0x001BA2), RUNE_C(0x001BA5)},
+ {RUNE_C(0x001BA8), RUNE_C(0x001BA9)},
+ {RUNE_C(0x001BAB), RUNE_C(0x001BAD)},
+ {RUNE_C(0x001BE6), RUNE_C(0x001BE6)},
+ {RUNE_C(0x001BE8), RUNE_C(0x001BE9)},
+ {RUNE_C(0x001BED), RUNE_C(0x001BED)},
+ {RUNE_C(0x001BEF), RUNE_C(0x001BF1)},
+ {RUNE_C(0x001C2C), RUNE_C(0x001C33)},
+ {RUNE_C(0x001C36), RUNE_C(0x001C37)},
+ {RUNE_C(0x001C78), RUNE_C(0x001C7D)},
+ {RUNE_C(0x001CD0), RUNE_C(0x001CD2)},
+ {RUNE_C(0x001CD4), RUNE_C(0x001CE0)},
+ {RUNE_C(0x001CE2), RUNE_C(0x001CE8)},
+ {RUNE_C(0x001CED), RUNE_C(0x001CED)},
+ {RUNE_C(0x001CF4), RUNE_C(0x001CF4)},
+ {RUNE_C(0x001CF8), RUNE_C(0x001CF9)},
+ {RUNE_C(0x001D2C), RUNE_C(0x001D6A)},
+ {RUNE_C(0x001D78), RUNE_C(0x001D78)},
+ {RUNE_C(0x001D9B), RUNE_C(0x001DFF)},
+ {RUNE_C(0x001FBD), RUNE_C(0x001FBD)},
+ {RUNE_C(0x001FBF), RUNE_C(0x001FC1)},
+ {RUNE_C(0x001FCD), RUNE_C(0x001FCF)},
+ {RUNE_C(0x001FDD), RUNE_C(0x001FDF)},
+ {RUNE_C(0x001FED), RUNE_C(0x001FEF)},
+ {RUNE_C(0x001FFD), RUNE_C(0x001FFE)},
+ {RUNE_C(0x00200B), RUNE_C(0x00200F)},
+ {RUNE_C(0x002018), RUNE_C(0x002019)},
+ {RUNE_C(0x002024), RUNE_C(0x002024)},
+ {RUNE_C(0x002027), RUNE_C(0x002027)},
+ {RUNE_C(0x00202A), RUNE_C(0x00202E)},
+ {RUNE_C(0x002060), RUNE_C(0x002064)},
+ {RUNE_C(0x002066), RUNE_C(0x00206F)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x0020D0), RUNE_C(0x0020F0)},
+ {RUNE_C(0x002C7C), RUNE_C(0x002C7D)},
+ {RUNE_C(0x002CEF), RUNE_C(0x002CF1)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
+ {RUNE_C(0x002D7F), RUNE_C(0x002D7F)},
+ {RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
+ {RUNE_C(0x002E2F), RUNE_C(0x002E2F)},
+ {RUNE_C(0x003005), RUNE_C(0x003005)},
+ {RUNE_C(0x00302A), RUNE_C(0x00302D)},
+ {RUNE_C(0x003031), RUNE_C(0x003035)},
+ {RUNE_C(0x00303B), RUNE_C(0x00303B)},
+ {RUNE_C(0x003099), RUNE_C(0x00309E)},
+ {RUNE_C(0x0030FC), RUNE_C(0x0030FE)},
+ {RUNE_C(0x00A015), RUNE_C(0x00A015)},
+ {RUNE_C(0x00A4F8), RUNE_C(0x00A4FD)},
+ {RUNE_C(0x00A60C), RUNE_C(0x00A60C)},
+ {RUNE_C(0x00A66F), RUNE_C(0x00A672)},
+ {RUNE_C(0x00A674), RUNE_C(0x00A67D)},
+ {RUNE_C(0x00A67F), RUNE_C(0x00A67F)},
+ {RUNE_C(0x00A69C), RUNE_C(0x00A69F)},
+ {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)},
+ {RUNE_C(0x00A700), RUNE_C(0x00A721)},
+ {RUNE_C(0x00A770), RUNE_C(0x00A770)},
+ {RUNE_C(0x00A788), RUNE_C(0x00A78A)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)},
+ {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)},
+ {RUNE_C(0x00A802), RUNE_C(0x00A802)},
+ {RUNE_C(0x00A806), RUNE_C(0x00A806)},
+ {RUNE_C(0x00A80B), RUNE_C(0x00A80B)},
+ {RUNE_C(0x00A825), RUNE_C(0x00A826)},
+ {RUNE_C(0x00A82C), RUNE_C(0x00A82C)},
+ {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)},
+ {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)},
+ {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)},
+ {RUNE_C(0x00A926), RUNE_C(0x00A92D)},
+ {RUNE_C(0x00A947), RUNE_C(0x00A951)},
+ {RUNE_C(0x00A980), RUNE_C(0x00A982)},
+ {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)},
+ {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)},
+ {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)},
+ {RUNE_C(0x00A9E5), RUNE_C(0x00A9E6)},
+ {RUNE_C(0x00AA29), RUNE_C(0x00AA2E)},
+ {RUNE_C(0x00AA31), RUNE_C(0x00AA32)},
+ {RUNE_C(0x00AA35), RUNE_C(0x00AA36)},
+ {RUNE_C(0x00AA43), RUNE_C(0x00AA43)},
+ {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)},
+ {RUNE_C(0x00AA70), RUNE_C(0x00AA70)},
+ {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)},
+ {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)},
+ {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)},
+ {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)},
+ {RUNE_C(0x00AABE), RUNE_C(0x00AABF)},
+ {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)},
+ {RUNE_C(0x00AADD), RUNE_C(0x00AADD)},
+ {RUNE_C(0x00AAEC), RUNE_C(0x00AAED)},
+ {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)},
+ {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)},
+ {RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)},
+ {RUNE_C(0x00AB69), RUNE_C(0x00AB6B)},
+ {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)},
+ {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)},
+ {RUNE_C(0x00ABED), RUNE_C(0x00ABED)},
+ {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)},
+ {RUNE_C(0x00FBB2), RUNE_C(0x00FBC2)},
+ {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
+ {RUNE_C(0x00FE13), RUNE_C(0x00FE13)},
+ {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
+ {RUNE_C(0x00FE52), RUNE_C(0x00FE52)},
+ {RUNE_C(0x00FE55), RUNE_C(0x00FE55)},
+ {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)},
+ {RUNE_C(0x00FF07), RUNE_C(0x00FF07)},
+ {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)},
+ {RUNE_C(0x00FF1A), RUNE_C(0x00FF1A)},
+ {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)},
+ {RUNE_C(0x00FF40), RUNE_C(0x00FF40)},
+ {RUNE_C(0x00FF70), RUNE_C(0x00FF70)},
+ {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)},
+ {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)},
+ {RUNE_C(0x00FFF9), RUNE_C(0x00FFFB)},
+ {RUNE_C(0x0101FD), RUNE_C(0x0101FD)},
+ {RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
+ {RUNE_C(0x010376), RUNE_C(0x01037A)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010A01), RUNE_C(0x010A03)},
+ {RUNE_C(0x010A05), RUNE_C(0x010A06)},
+ {RUNE_C(0x010A0C), RUNE_C(0x010A0F)},
+ {RUNE_C(0x010A38), RUNE_C(0x010A3A)},
+ {RUNE_C(0x010A3F), RUNE_C(0x010A3F)},
+ {RUNE_C(0x010AE5), RUNE_C(0x010AE6)},
+ {RUNE_C(0x010D24), RUNE_C(0x010D27)},
+ {RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
+ {RUNE_C(0x010EFD), RUNE_C(0x010EFF)},
+ {RUNE_C(0x010F46), RUNE_C(0x010F50)},
+ {RUNE_C(0x010F82), RUNE_C(0x010F85)},
+ {RUNE_C(0x011001), RUNE_C(0x011001)},
+ {RUNE_C(0x011038), RUNE_C(0x011046)},
+ {RUNE_C(0x011070), RUNE_C(0x011070)},
+ {RUNE_C(0x011073), RUNE_C(0x011074)},
+ {RUNE_C(0x01107F), RUNE_C(0x011081)},
+ {RUNE_C(0x0110B3), RUNE_C(0x0110B6)},
+ {RUNE_C(0x0110B9), RUNE_C(0x0110BA)},
+ {RUNE_C(0x0110BD), RUNE_C(0x0110BD)},
+ {RUNE_C(0x0110C2), RUNE_C(0x0110C2)},
+ {RUNE_C(0x0110CD), RUNE_C(0x0110CD)},
+ {RUNE_C(0x011100), RUNE_C(0x011102)},
+ {RUNE_C(0x011127), RUNE_C(0x01112B)},
+ {RUNE_C(0x01112D), RUNE_C(0x011134)},
+ {RUNE_C(0x011173), RUNE_C(0x011173)},
+ {RUNE_C(0x011180), RUNE_C(0x011181)},
+ {RUNE_C(0x0111B6), RUNE_C(0x0111BE)},
+ {RUNE_C(0x0111C9), RUNE_C(0x0111CC)},
+ {RUNE_C(0x0111CF), RUNE_C(0x0111CF)},
+ {RUNE_C(0x01122F), RUNE_C(0x011231)},
+ {RUNE_C(0x011234), RUNE_C(0x011234)},
+ {RUNE_C(0x011236), RUNE_C(0x011237)},
+ {RUNE_C(0x01123E), RUNE_C(0x01123E)},
+ {RUNE_C(0x011241), RUNE_C(0x011241)},
+ {RUNE_C(0x0112DF), RUNE_C(0x0112DF)},
+ {RUNE_C(0x0112E3), RUNE_C(0x0112EA)},
+ {RUNE_C(0x011300), RUNE_C(0x011301)},
+ {RUNE_C(0x01133B), RUNE_C(0x01133C)},
+ {RUNE_C(0x011340), RUNE_C(0x011340)},
+ {RUNE_C(0x011366), RUNE_C(0x01136C)},
+ {RUNE_C(0x011370), RUNE_C(0x011374)},
+ {RUNE_C(0x011438), RUNE_C(0x01143F)},
+ {RUNE_C(0x011442), RUNE_C(0x011444)},
+ {RUNE_C(0x011446), RUNE_C(0x011446)},
+ {RUNE_C(0x01145E), RUNE_C(0x01145E)},
+ {RUNE_C(0x0114B3), RUNE_C(0x0114B8)},
+ {RUNE_C(0x0114BA), RUNE_C(0x0114BA)},
+ {RUNE_C(0x0114BF), RUNE_C(0x0114C0)},
+ {RUNE_C(0x0114C2), RUNE_C(0x0114C3)},
+ {RUNE_C(0x0115B2), RUNE_C(0x0115B5)},
+ {RUNE_C(0x0115BC), RUNE_C(0x0115BD)},
+ {RUNE_C(0x0115BF), RUNE_C(0x0115C0)},
+ {RUNE_C(0x0115DC), RUNE_C(0x0115DD)},
+ {RUNE_C(0x011633), RUNE_C(0x01163A)},
+ {RUNE_C(0x01163D), RUNE_C(0x01163D)},
+ {RUNE_C(0x01163F), RUNE_C(0x011640)},
+ {RUNE_C(0x0116AB), RUNE_C(0x0116AB)},
+ {RUNE_C(0x0116AD), RUNE_C(0x0116AD)},
+ {RUNE_C(0x0116B0), RUNE_C(0x0116B5)},
+ {RUNE_C(0x0116B7), RUNE_C(0x0116B7)},
+ {RUNE_C(0x01171D), RUNE_C(0x01171F)},
+ {RUNE_C(0x011722), RUNE_C(0x011725)},
+ {RUNE_C(0x011727), RUNE_C(0x01172B)},
+ {RUNE_C(0x01182F), RUNE_C(0x011837)},
+ {RUNE_C(0x011839), RUNE_C(0x01183A)},
+ {RUNE_C(0x01193B), RUNE_C(0x01193C)},
+ {RUNE_C(0x01193E), RUNE_C(0x01193E)},
+ {RUNE_C(0x011943), RUNE_C(0x011943)},
+ {RUNE_C(0x0119D4), RUNE_C(0x0119D7)},
+ {RUNE_C(0x0119DA), RUNE_C(0x0119DB)},
+ {RUNE_C(0x0119E0), RUNE_C(0x0119E0)},
+ {RUNE_C(0x011A01), RUNE_C(0x011A0A)},
+ {RUNE_C(0x011A33), RUNE_C(0x011A38)},
+ {RUNE_C(0x011A3B), RUNE_C(0x011A3E)},
+ {RUNE_C(0x011A47), RUNE_C(0x011A47)},
+ {RUNE_C(0x011A51), RUNE_C(0x011A56)},
+ {RUNE_C(0x011A59), RUNE_C(0x011A5B)},
+ {RUNE_C(0x011A8A), RUNE_C(0x011A96)},
+ {RUNE_C(0x011A98), RUNE_C(0x011A99)},
+ {RUNE_C(0x011C30), RUNE_C(0x011C36)},
+ {RUNE_C(0x011C38), RUNE_C(0x011C3D)},
+ {RUNE_C(0x011C3F), RUNE_C(0x011C3F)},
+ {RUNE_C(0x011C92), RUNE_C(0x011CA7)},
+ {RUNE_C(0x011CAA), RUNE_C(0x011CB0)},
+ {RUNE_C(0x011CB2), RUNE_C(0x011CB3)},
+ {RUNE_C(0x011CB5), RUNE_C(0x011CB6)},
+ {RUNE_C(0x011D31), RUNE_C(0x011D36)},
+ {RUNE_C(0x011D3A), RUNE_C(0x011D3A)},
+ {RUNE_C(0x011D3C), RUNE_C(0x011D3D)},
+ {RUNE_C(0x011D3F), RUNE_C(0x011D45)},
+ {RUNE_C(0x011D47), RUNE_C(0x011D47)},
+ {RUNE_C(0x011D90), RUNE_C(0x011D91)},
+ {RUNE_C(0x011D95), RUNE_C(0x011D95)},
+ {RUNE_C(0x011D97), RUNE_C(0x011D97)},
+ {RUNE_C(0x011EF3), RUNE_C(0x011EF4)},
+ {RUNE_C(0x011F00), RUNE_C(0x011F01)},
+ {RUNE_C(0x011F36), RUNE_C(0x011F3A)},
+ {RUNE_C(0x011F40), RUNE_C(0x011F40)},
+ {RUNE_C(0x011F42), RUNE_C(0x011F42)},
+ {RUNE_C(0x013430), RUNE_C(0x013440)},
+ {RUNE_C(0x013447), RUNE_C(0x013455)},
+ {RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
+ {RUNE_C(0x016B30), RUNE_C(0x016B36)},
+ {RUNE_C(0x016B40), RUNE_C(0x016B43)},
+ {RUNE_C(0x016F4F), RUNE_C(0x016F4F)},
+ {RUNE_C(0x016F8F), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
+ {RUNE_C(0x016FE3), RUNE_C(0x016FE4)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)},
+ {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)},
+ {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)},
+ {RUNE_C(0x01CF30), RUNE_C(0x01CF46)},
+ {RUNE_C(0x01D167), RUNE_C(0x01D169)},
+ {RUNE_C(0x01D173), RUNE_C(0x01D182)},
+ {RUNE_C(0x01D185), RUNE_C(0x01D18B)},
+ {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
+ {RUNE_C(0x01D242), RUNE_C(0x01D244)},
+ {RUNE_C(0x01DA00), RUNE_C(0x01DA36)},
+ {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)},
+ {RUNE_C(0x01DA75), RUNE_C(0x01DA75)},
+ {RUNE_C(0x01DA84), RUNE_C(0x01DA84)},
+ {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)},
+ {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)},
+ {RUNE_C(0x01E000), RUNE_C(0x01E006)},
+ {RUNE_C(0x01E008), RUNE_C(0x01E018)},
+ {RUNE_C(0x01E01B), RUNE_C(0x01E021)},
+ {RUNE_C(0x01E023), RUNE_C(0x01E024)},
+ {RUNE_C(0x01E026), RUNE_C(0x01E02A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
+ {RUNE_C(0x01E130), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)},
+ {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)},
+ {RUNE_C(0x01E4EB), RUNE_C(0x01E4EF)},
+ {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
+ {RUNE_C(0x01E944), RUNE_C(0x01E94B)},
+ {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)},
+ {RUNE_C(0x0E0001), RUNE_C(0x0E0001)},
+ {RUNE_C(0x0E0020), RUNE_C(0x0E007F)},
+ {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_ci(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_cwcf.c b/lib/unicode/prop/uprop_is_cwcf.c
new file mode 100644
index 0000000..beefb71
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_cwcf.c
@@ -0,0 +1,646 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x000100)},
+ {RUNE_C(0x000102), RUNE_C(0x000102)},
+ {RUNE_C(0x000104), RUNE_C(0x000104)},
+ {RUNE_C(0x000106), RUNE_C(0x000106)},
+ {RUNE_C(0x000108), RUNE_C(0x000108)},
+ {RUNE_C(0x00010A), RUNE_C(0x00010A)},
+ {RUNE_C(0x00010C), RUNE_C(0x00010C)},
+ {RUNE_C(0x00010E), RUNE_C(0x00010E)},
+ {RUNE_C(0x000110), RUNE_C(0x000110)},
+ {RUNE_C(0x000112), RUNE_C(0x000112)},
+ {RUNE_C(0x000114), RUNE_C(0x000114)},
+ {RUNE_C(0x000116), RUNE_C(0x000116)},
+ {RUNE_C(0x000118), RUNE_C(0x000118)},
+ {RUNE_C(0x00011A), RUNE_C(0x00011A)},
+ {RUNE_C(0x00011C), RUNE_C(0x00011C)},
+ {RUNE_C(0x00011E), RUNE_C(0x00011E)},
+ {RUNE_C(0x000120), RUNE_C(0x000120)},
+ {RUNE_C(0x000122), RUNE_C(0x000122)},
+ {RUNE_C(0x000124), RUNE_C(0x000124)},
+ {RUNE_C(0x000126), RUNE_C(0x000126)},
+ {RUNE_C(0x000128), RUNE_C(0x000128)},
+ {RUNE_C(0x00012A), RUNE_C(0x00012A)},
+ {RUNE_C(0x00012C), RUNE_C(0x00012C)},
+ {RUNE_C(0x00012E), RUNE_C(0x00012E)},
+ {RUNE_C(0x000130), RUNE_C(0x000130)},
+ {RUNE_C(0x000132), RUNE_C(0x000132)},
+ {RUNE_C(0x000134), RUNE_C(0x000134)},
+ {RUNE_C(0x000136), RUNE_C(0x000136)},
+ {RUNE_C(0x000139), RUNE_C(0x000139)},
+ {RUNE_C(0x00013B), RUNE_C(0x00013B)},
+ {RUNE_C(0x00013D), RUNE_C(0x00013D)},
+ {RUNE_C(0x00013F), RUNE_C(0x00013F)},
+ {RUNE_C(0x000141), RUNE_C(0x000141)},
+ {RUNE_C(0x000143), RUNE_C(0x000143)},
+ {RUNE_C(0x000145), RUNE_C(0x000145)},
+ {RUNE_C(0x000147), RUNE_C(0x000147)},
+ {RUNE_C(0x000149), RUNE_C(0x00014A)},
+ {RUNE_C(0x00014C), RUNE_C(0x00014C)},
+ {RUNE_C(0x00014E), RUNE_C(0x00014E)},
+ {RUNE_C(0x000150), RUNE_C(0x000150)},
+ {RUNE_C(0x000152), RUNE_C(0x000152)},
+ {RUNE_C(0x000154), RUNE_C(0x000154)},
+ {RUNE_C(0x000156), RUNE_C(0x000156)},
+ {RUNE_C(0x000158), RUNE_C(0x000158)},
+ {RUNE_C(0x00015A), RUNE_C(0x00015A)},
+ {RUNE_C(0x00015C), RUNE_C(0x00015C)},
+ {RUNE_C(0x00015E), RUNE_C(0x00015E)},
+ {RUNE_C(0x000160), RUNE_C(0x000160)},
+ {RUNE_C(0x000162), RUNE_C(0x000162)},
+ {RUNE_C(0x000164), RUNE_C(0x000164)},
+ {RUNE_C(0x000166), RUNE_C(0x000166)},
+ {RUNE_C(0x000168), RUNE_C(0x000168)},
+ {RUNE_C(0x00016A), RUNE_C(0x00016A)},
+ {RUNE_C(0x00016C), RUNE_C(0x00016C)},
+ {RUNE_C(0x00016E), RUNE_C(0x00016E)},
+ {RUNE_C(0x000170), RUNE_C(0x000170)},
+ {RUNE_C(0x000172), RUNE_C(0x000172)},
+ {RUNE_C(0x000174), RUNE_C(0x000174)},
+ {RUNE_C(0x000176), RUNE_C(0x000176)},
+ {RUNE_C(0x000178), RUNE_C(0x000179)},
+ {RUNE_C(0x00017B), RUNE_C(0x00017B)},
+ {RUNE_C(0x00017D), RUNE_C(0x00017D)},
+ {RUNE_C(0x00017F), RUNE_C(0x00017F)},
+ {RUNE_C(0x000181), RUNE_C(0x000182)},
+ {RUNE_C(0x000184), RUNE_C(0x000184)},
+ {RUNE_C(0x000186), RUNE_C(0x000187)},
+ {RUNE_C(0x000189), RUNE_C(0x00018B)},
+ {RUNE_C(0x00018E), RUNE_C(0x000191)},
+ {RUNE_C(0x000193), RUNE_C(0x000194)},
+ {RUNE_C(0x000196), RUNE_C(0x000198)},
+ {RUNE_C(0x00019C), RUNE_C(0x00019D)},
+ {RUNE_C(0x00019F), RUNE_C(0x0001A0)},
+ {RUNE_C(0x0001A2), RUNE_C(0x0001A2)},
+ {RUNE_C(0x0001A4), RUNE_C(0x0001A4)},
+ {RUNE_C(0x0001A6), RUNE_C(0x0001A7)},
+ {RUNE_C(0x0001A9), RUNE_C(0x0001A9)},
+ {RUNE_C(0x0001AC), RUNE_C(0x0001AC)},
+ {RUNE_C(0x0001AE), RUNE_C(0x0001AF)},
+ {RUNE_C(0x0001B1), RUNE_C(0x0001B3)},
+ {RUNE_C(0x0001B5), RUNE_C(0x0001B5)},
+ {RUNE_C(0x0001B7), RUNE_C(0x0001B8)},
+ {RUNE_C(0x0001BC), RUNE_C(0x0001BC)},
+ {RUNE_C(0x0001C4), RUNE_C(0x0001C5)},
+ {RUNE_C(0x0001C7), RUNE_C(0x0001C8)},
+ {RUNE_C(0x0001CA), RUNE_C(0x0001CB)},
+ {RUNE_C(0x0001CD), RUNE_C(0x0001CD)},
+ {RUNE_C(0x0001CF), RUNE_C(0x0001CF)},
+ {RUNE_C(0x0001D1), RUNE_C(0x0001D1)},
+ {RUNE_C(0x0001D3), RUNE_C(0x0001D3)},
+ {RUNE_C(0x0001D5), RUNE_C(0x0001D5)},
+ {RUNE_C(0x0001D7), RUNE_C(0x0001D7)},
+ {RUNE_C(0x0001D9), RUNE_C(0x0001D9)},
+ {RUNE_C(0x0001DB), RUNE_C(0x0001DB)},
+ {RUNE_C(0x0001DE), RUNE_C(0x0001DE)},
+ {RUNE_C(0x0001E0), RUNE_C(0x0001E0)},
+ {RUNE_C(0x0001E2), RUNE_C(0x0001E2)},
+ {RUNE_C(0x0001E4), RUNE_C(0x0001E4)},
+ {RUNE_C(0x0001E6), RUNE_C(0x0001E6)},
+ {RUNE_C(0x0001E8), RUNE_C(0x0001E8)},
+ {RUNE_C(0x0001EA), RUNE_C(0x0001EA)},
+ {RUNE_C(0x0001EC), RUNE_C(0x0001EC)},
+ {RUNE_C(0x0001EE), RUNE_C(0x0001EE)},
+ {RUNE_C(0x0001F1), RUNE_C(0x0001F2)},
+ {RUNE_C(0x0001F4), RUNE_C(0x0001F4)},
+ {RUNE_C(0x0001F6), RUNE_C(0x0001F8)},
+ {RUNE_C(0x0001FA), RUNE_C(0x0001FA)},
+ {RUNE_C(0x0001FC), RUNE_C(0x0001FC)},
+ {RUNE_C(0x0001FE), RUNE_C(0x0001FE)},
+ {RUNE_C(0x000200), RUNE_C(0x000200)},
+ {RUNE_C(0x000202), RUNE_C(0x000202)},
+ {RUNE_C(0x000204), RUNE_C(0x000204)},
+ {RUNE_C(0x000206), RUNE_C(0x000206)},
+ {RUNE_C(0x000208), RUNE_C(0x000208)},
+ {RUNE_C(0x00020A), RUNE_C(0x00020A)},
+ {RUNE_C(0x00020C), RUNE_C(0x00020C)},
+ {RUNE_C(0x00020E), RUNE_C(0x00020E)},
+ {RUNE_C(0x000210), RUNE_C(0x000210)},
+ {RUNE_C(0x000212), RUNE_C(0x000212)},
+ {RUNE_C(0x000214), RUNE_C(0x000214)},
+ {RUNE_C(0x000216), RUNE_C(0x000216)},
+ {RUNE_C(0x000218), RUNE_C(0x000218)},
+ {RUNE_C(0x00021A), RUNE_C(0x00021A)},
+ {RUNE_C(0x00021C), RUNE_C(0x00021C)},
+ {RUNE_C(0x00021E), RUNE_C(0x00021E)},
+ {RUNE_C(0x000220), RUNE_C(0x000220)},
+ {RUNE_C(0x000222), RUNE_C(0x000222)},
+ {RUNE_C(0x000224), RUNE_C(0x000224)},
+ {RUNE_C(0x000226), RUNE_C(0x000226)},
+ {RUNE_C(0x000228), RUNE_C(0x000228)},
+ {RUNE_C(0x00022A), RUNE_C(0x00022A)},
+ {RUNE_C(0x00022C), RUNE_C(0x00022C)},
+ {RUNE_C(0x00022E), RUNE_C(0x00022E)},
+ {RUNE_C(0x000230), RUNE_C(0x000230)},
+ {RUNE_C(0x000232), RUNE_C(0x000232)},
+ {RUNE_C(0x00023A), RUNE_C(0x00023B)},
+ {RUNE_C(0x00023D), RUNE_C(0x00023E)},
+ {RUNE_C(0x000241), RUNE_C(0x000241)},
+ {RUNE_C(0x000243), RUNE_C(0x000246)},
+ {RUNE_C(0x000248), RUNE_C(0x000248)},
+ {RUNE_C(0x00024A), RUNE_C(0x00024A)},
+ {RUNE_C(0x00024C), RUNE_C(0x00024C)},
+ {RUNE_C(0x00024E), RUNE_C(0x00024E)},
+ {RUNE_C(0x000345), RUNE_C(0x000345)},
+ {RUNE_C(0x000370), RUNE_C(0x000370)},
+ {RUNE_C(0x000372), RUNE_C(0x000372)},
+ {RUNE_C(0x000376), RUNE_C(0x000376)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x00038F)},
+ {RUNE_C(0x000391), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003AB)},
+ {RUNE_C(0x0003C2), RUNE_C(0x0003C2)},
+ {RUNE_C(0x0003CF), RUNE_C(0x0003D1)},
+ {RUNE_C(0x0003D5), RUNE_C(0x0003D6)},
+ {RUNE_C(0x0003D8), RUNE_C(0x0003D8)},
+ {RUNE_C(0x0003DA), RUNE_C(0x0003DA)},
+ {RUNE_C(0x0003DC), RUNE_C(0x0003DC)},
+ {RUNE_C(0x0003DE), RUNE_C(0x0003DE)},
+ {RUNE_C(0x0003E0), RUNE_C(0x0003E0)},
+ {RUNE_C(0x0003E2), RUNE_C(0x0003E2)},
+ {RUNE_C(0x0003E4), RUNE_C(0x0003E4)},
+ {RUNE_C(0x0003E6), RUNE_C(0x0003E6)},
+ {RUNE_C(0x0003E8), RUNE_C(0x0003E8)},
+ {RUNE_C(0x0003EA), RUNE_C(0x0003EA)},
+ {RUNE_C(0x0003EC), RUNE_C(0x0003EC)},
+ {RUNE_C(0x0003EE), RUNE_C(0x0003EE)},
+ {RUNE_C(0x0003F0), RUNE_C(0x0003F1)},
+ {RUNE_C(0x0003F4), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x0003F7)},
+ {RUNE_C(0x0003F9), RUNE_C(0x0003FA)},
+ {RUNE_C(0x0003FD), RUNE_C(0x00042F)},
+ {RUNE_C(0x000460), RUNE_C(0x000460)},
+ {RUNE_C(0x000462), RUNE_C(0x000462)},
+ {RUNE_C(0x000464), RUNE_C(0x000464)},
+ {RUNE_C(0x000466), RUNE_C(0x000466)},
+ {RUNE_C(0x000468), RUNE_C(0x000468)},
+ {RUNE_C(0x00046A), RUNE_C(0x00046A)},
+ {RUNE_C(0x00046C), RUNE_C(0x00046C)},
+ {RUNE_C(0x00046E), RUNE_C(0x00046E)},
+ {RUNE_C(0x000470), RUNE_C(0x000470)},
+ {RUNE_C(0x000472), RUNE_C(0x000472)},
+ {RUNE_C(0x000474), RUNE_C(0x000474)},
+ {RUNE_C(0x000476), RUNE_C(0x000476)},
+ {RUNE_C(0x000478), RUNE_C(0x000478)},
+ {RUNE_C(0x00047A), RUNE_C(0x00047A)},
+ {RUNE_C(0x00047C), RUNE_C(0x00047C)},
+ {RUNE_C(0x00047E), RUNE_C(0x00047E)},
+ {RUNE_C(0x000480), RUNE_C(0x000480)},
+ {RUNE_C(0x00048A), RUNE_C(0x00048A)},
+ {RUNE_C(0x00048C), RUNE_C(0x00048C)},
+ {RUNE_C(0x00048E), RUNE_C(0x00048E)},
+ {RUNE_C(0x000490), RUNE_C(0x000490)},
+ {RUNE_C(0x000492), RUNE_C(0x000492)},
+ {RUNE_C(0x000494), RUNE_C(0x000494)},
+ {RUNE_C(0x000496), RUNE_C(0x000496)},
+ {RUNE_C(0x000498), RUNE_C(0x000498)},
+ {RUNE_C(0x00049A), RUNE_C(0x00049A)},
+ {RUNE_C(0x00049C), RUNE_C(0x00049C)},
+ {RUNE_C(0x00049E), RUNE_C(0x00049E)},
+ {RUNE_C(0x0004A0), RUNE_C(0x0004A0)},
+ {RUNE_C(0x0004A2), RUNE_C(0x0004A2)},
+ {RUNE_C(0x0004A4), RUNE_C(0x0004A4)},
+ {RUNE_C(0x0004A6), RUNE_C(0x0004A6)},
+ {RUNE_C(0x0004A8), RUNE_C(0x0004A8)},
+ {RUNE_C(0x0004AA), RUNE_C(0x0004AA)},
+ {RUNE_C(0x0004AC), RUNE_C(0x0004AC)},
+ {RUNE_C(0x0004AE), RUNE_C(0x0004AE)},
+ {RUNE_C(0x0004B0), RUNE_C(0x0004B0)},
+ {RUNE_C(0x0004B2), RUNE_C(0x0004B2)},
+ {RUNE_C(0x0004B4), RUNE_C(0x0004B4)},
+ {RUNE_C(0x0004B6), RUNE_C(0x0004B6)},
+ {RUNE_C(0x0004B8), RUNE_C(0x0004B8)},
+ {RUNE_C(0x0004BA), RUNE_C(0x0004BA)},
+ {RUNE_C(0x0004BC), RUNE_C(0x0004BC)},
+ {RUNE_C(0x0004BE), RUNE_C(0x0004BE)},
+ {RUNE_C(0x0004C0), RUNE_C(0x0004C1)},
+ {RUNE_C(0x0004C3), RUNE_C(0x0004C3)},
+ {RUNE_C(0x0004C5), RUNE_C(0x0004C5)},
+ {RUNE_C(0x0004C7), RUNE_C(0x0004C7)},
+ {RUNE_C(0x0004C9), RUNE_C(0x0004C9)},
+ {RUNE_C(0x0004CB), RUNE_C(0x0004CB)},
+ {RUNE_C(0x0004CD), RUNE_C(0x0004CD)},
+ {RUNE_C(0x0004D0), RUNE_C(0x0004D0)},
+ {RUNE_C(0x0004D2), RUNE_C(0x0004D2)},
+ {RUNE_C(0x0004D4), RUNE_C(0x0004D4)},
+ {RUNE_C(0x0004D6), RUNE_C(0x0004D6)},
+ {RUNE_C(0x0004D8), RUNE_C(0x0004D8)},
+ {RUNE_C(0x0004DA), RUNE_C(0x0004DA)},
+ {RUNE_C(0x0004DC), RUNE_C(0x0004DC)},
+ {RUNE_C(0x0004DE), RUNE_C(0x0004DE)},
+ {RUNE_C(0x0004E0), RUNE_C(0x0004E0)},
+ {RUNE_C(0x0004E2), RUNE_C(0x0004E2)},
+ {RUNE_C(0x0004E4), RUNE_C(0x0004E4)},
+ {RUNE_C(0x0004E6), RUNE_C(0x0004E6)},
+ {RUNE_C(0x0004E8), RUNE_C(0x0004E8)},
+ {RUNE_C(0x0004EA), RUNE_C(0x0004EA)},
+ {RUNE_C(0x0004EC), RUNE_C(0x0004EC)},
+ {RUNE_C(0x0004EE), RUNE_C(0x0004EE)},
+ {RUNE_C(0x0004F0), RUNE_C(0x0004F0)},
+ {RUNE_C(0x0004F2), RUNE_C(0x0004F2)},
+ {RUNE_C(0x0004F4), RUNE_C(0x0004F4)},
+ {RUNE_C(0x0004F6), RUNE_C(0x0004F6)},
+ {RUNE_C(0x0004F8), RUNE_C(0x0004F8)},
+ {RUNE_C(0x0004FA), RUNE_C(0x0004FA)},
+ {RUNE_C(0x0004FC), RUNE_C(0x0004FC)},
+ {RUNE_C(0x0004FE), RUNE_C(0x0004FE)},
+ {RUNE_C(0x000500), RUNE_C(0x000500)},
+ {RUNE_C(0x000502), RUNE_C(0x000502)},
+ {RUNE_C(0x000504), RUNE_C(0x000504)},
+ {RUNE_C(0x000506), RUNE_C(0x000506)},
+ {RUNE_C(0x000508), RUNE_C(0x000508)},
+ {RUNE_C(0x00050A), RUNE_C(0x00050A)},
+ {RUNE_C(0x00050C), RUNE_C(0x00050C)},
+ {RUNE_C(0x00050E), RUNE_C(0x00050E)},
+ {RUNE_C(0x000510), RUNE_C(0x000510)},
+ {RUNE_C(0x000512), RUNE_C(0x000512)},
+ {RUNE_C(0x000514), RUNE_C(0x000514)},
+ {RUNE_C(0x000516), RUNE_C(0x000516)},
+ {RUNE_C(0x000518), RUNE_C(0x000518)},
+ {RUNE_C(0x00051A), RUNE_C(0x00051A)},
+ {RUNE_C(0x00051C), RUNE_C(0x00051C)},
+ {RUNE_C(0x00051E), RUNE_C(0x00051E)},
+ {RUNE_C(0x000520), RUNE_C(0x000520)},
+ {RUNE_C(0x000522), RUNE_C(0x000522)},
+ {RUNE_C(0x000524), RUNE_C(0x000524)},
+ {RUNE_C(0x000526), RUNE_C(0x000526)},
+ {RUNE_C(0x000528), RUNE_C(0x000528)},
+ {RUNE_C(0x00052A), RUNE_C(0x00052A)},
+ {RUNE_C(0x00052C), RUNE_C(0x00052C)},
+ {RUNE_C(0x00052E), RUNE_C(0x00052E)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000587), RUNE_C(0x000587)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001E00)},
+ {RUNE_C(0x001E02), RUNE_C(0x001E02)},
+ {RUNE_C(0x001E04), RUNE_C(0x001E04)},
+ {RUNE_C(0x001E06), RUNE_C(0x001E06)},
+ {RUNE_C(0x001E08), RUNE_C(0x001E08)},
+ {RUNE_C(0x001E0A), RUNE_C(0x001E0A)},
+ {RUNE_C(0x001E0C), RUNE_C(0x001E0C)},
+ {RUNE_C(0x001E0E), RUNE_C(0x001E0E)},
+ {RUNE_C(0x001E10), RUNE_C(0x001E10)},
+ {RUNE_C(0x001E12), RUNE_C(0x001E12)},
+ {RUNE_C(0x001E14), RUNE_C(0x001E14)},
+ {RUNE_C(0x001E16), RUNE_C(0x001E16)},
+ {RUNE_C(0x001E18), RUNE_C(0x001E18)},
+ {RUNE_C(0x001E1A), RUNE_C(0x001E1A)},
+ {RUNE_C(0x001E1C), RUNE_C(0x001E1C)},
+ {RUNE_C(0x001E1E), RUNE_C(0x001E1E)},
+ {RUNE_C(0x001E20), RUNE_C(0x001E20)},
+ {RUNE_C(0x001E22), RUNE_C(0x001E22)},
+ {RUNE_C(0x001E24), RUNE_C(0x001E24)},
+ {RUNE_C(0x001E26), RUNE_C(0x001E26)},
+ {RUNE_C(0x001E28), RUNE_C(0x001E28)},
+ {RUNE_C(0x001E2A), RUNE_C(0x001E2A)},
+ {RUNE_C(0x001E2C), RUNE_C(0x001E2C)},
+ {RUNE_C(0x001E2E), RUNE_C(0x001E2E)},
+ {RUNE_C(0x001E30), RUNE_C(0x001E30)},
+ {RUNE_C(0x001E32), RUNE_C(0x001E32)},
+ {RUNE_C(0x001E34), RUNE_C(0x001E34)},
+ {RUNE_C(0x001E36), RUNE_C(0x001E36)},
+ {RUNE_C(0x001E38), RUNE_C(0x001E38)},
+ {RUNE_C(0x001E3A), RUNE_C(0x001E3A)},
+ {RUNE_C(0x001E3C), RUNE_C(0x001E3C)},
+ {RUNE_C(0x001E3E), RUNE_C(0x001E3E)},
+ {RUNE_C(0x001E40), RUNE_C(0x001E40)},
+ {RUNE_C(0x001E42), RUNE_C(0x001E42)},
+ {RUNE_C(0x001E44), RUNE_C(0x001E44)},
+ {RUNE_C(0x001E46), RUNE_C(0x001E46)},
+ {RUNE_C(0x001E48), RUNE_C(0x001E48)},
+ {RUNE_C(0x001E4A), RUNE_C(0x001E4A)},
+ {RUNE_C(0x001E4C), RUNE_C(0x001E4C)},
+ {RUNE_C(0x001E4E), RUNE_C(0x001E4E)},
+ {RUNE_C(0x001E50), RUNE_C(0x001E50)},
+ {RUNE_C(0x001E52), RUNE_C(0x001E52)},
+ {RUNE_C(0x001E54), RUNE_C(0x001E54)},
+ {RUNE_C(0x001E56), RUNE_C(0x001E56)},
+ {RUNE_C(0x001E58), RUNE_C(0x001E58)},
+ {RUNE_C(0x001E5A), RUNE_C(0x001E5A)},
+ {RUNE_C(0x001E5C), RUNE_C(0x001E5C)},
+ {RUNE_C(0x001E5E), RUNE_C(0x001E5E)},
+ {RUNE_C(0x001E60), RUNE_C(0x001E60)},
+ {RUNE_C(0x001E62), RUNE_C(0x001E62)},
+ {RUNE_C(0x001E64), RUNE_C(0x001E64)},
+ {RUNE_C(0x001E66), RUNE_C(0x001E66)},
+ {RUNE_C(0x001E68), RUNE_C(0x001E68)},
+ {RUNE_C(0x001E6A), RUNE_C(0x001E6A)},
+ {RUNE_C(0x001E6C), RUNE_C(0x001E6C)},
+ {RUNE_C(0x001E6E), RUNE_C(0x001E6E)},
+ {RUNE_C(0x001E70), RUNE_C(0x001E70)},
+ {RUNE_C(0x001E72), RUNE_C(0x001E72)},
+ {RUNE_C(0x001E74), RUNE_C(0x001E74)},
+ {RUNE_C(0x001E76), RUNE_C(0x001E76)},
+ {RUNE_C(0x001E78), RUNE_C(0x001E78)},
+ {RUNE_C(0x001E7A), RUNE_C(0x001E7A)},
+ {RUNE_C(0x001E7C), RUNE_C(0x001E7C)},
+ {RUNE_C(0x001E7E), RUNE_C(0x001E7E)},
+ {RUNE_C(0x001E80), RUNE_C(0x001E80)},
+ {RUNE_C(0x001E82), RUNE_C(0x001E82)},
+ {RUNE_C(0x001E84), RUNE_C(0x001E84)},
+ {RUNE_C(0x001E86), RUNE_C(0x001E86)},
+ {RUNE_C(0x001E88), RUNE_C(0x001E88)},
+ {RUNE_C(0x001E8A), RUNE_C(0x001E8A)},
+ {RUNE_C(0x001E8C), RUNE_C(0x001E8C)},
+ {RUNE_C(0x001E8E), RUNE_C(0x001E8E)},
+ {RUNE_C(0x001E90), RUNE_C(0x001E90)},
+ {RUNE_C(0x001E92), RUNE_C(0x001E92)},
+ {RUNE_C(0x001E94), RUNE_C(0x001E94)},
+ {RUNE_C(0x001E9A), RUNE_C(0x001E9B)},
+ {RUNE_C(0x001E9E), RUNE_C(0x001E9E)},
+ {RUNE_C(0x001EA0), RUNE_C(0x001EA0)},
+ {RUNE_C(0x001EA2), RUNE_C(0x001EA2)},
+ {RUNE_C(0x001EA4), RUNE_C(0x001EA4)},
+ {RUNE_C(0x001EA6), RUNE_C(0x001EA6)},
+ {RUNE_C(0x001EA8), RUNE_C(0x001EA8)},
+ {RUNE_C(0x001EAA), RUNE_C(0x001EAA)},
+ {RUNE_C(0x001EAC), RUNE_C(0x001EAC)},
+ {RUNE_C(0x001EAE), RUNE_C(0x001EAE)},
+ {RUNE_C(0x001EB0), RUNE_C(0x001EB0)},
+ {RUNE_C(0x001EB2), RUNE_C(0x001EB2)},
+ {RUNE_C(0x001EB4), RUNE_C(0x001EB4)},
+ {RUNE_C(0x001EB6), RUNE_C(0x001EB6)},
+ {RUNE_C(0x001EB8), RUNE_C(0x001EB8)},
+ {RUNE_C(0x001EBA), RUNE_C(0x001EBA)},
+ {RUNE_C(0x001EBC), RUNE_C(0x001EBC)},
+ {RUNE_C(0x001EBE), RUNE_C(0x001EBE)},
+ {RUNE_C(0x001EC0), RUNE_C(0x001EC0)},
+ {RUNE_C(0x001EC2), RUNE_C(0x001EC2)},
+ {RUNE_C(0x001EC4), RUNE_C(0x001EC4)},
+ {RUNE_C(0x001EC6), RUNE_C(0x001EC6)},
+ {RUNE_C(0x001EC8), RUNE_C(0x001EC8)},
+ {RUNE_C(0x001ECA), RUNE_C(0x001ECA)},
+ {RUNE_C(0x001ECC), RUNE_C(0x001ECC)},
+ {RUNE_C(0x001ECE), RUNE_C(0x001ECE)},
+ {RUNE_C(0x001ED0), RUNE_C(0x001ED0)},
+ {RUNE_C(0x001ED2), RUNE_C(0x001ED2)},
+ {RUNE_C(0x001ED4), RUNE_C(0x001ED4)},
+ {RUNE_C(0x001ED6), RUNE_C(0x001ED6)},
+ {RUNE_C(0x001ED8), RUNE_C(0x001ED8)},
+ {RUNE_C(0x001EDA), RUNE_C(0x001EDA)},
+ {RUNE_C(0x001EDC), RUNE_C(0x001EDC)},
+ {RUNE_C(0x001EDE), RUNE_C(0x001EDE)},
+ {RUNE_C(0x001EE0), RUNE_C(0x001EE0)},
+ {RUNE_C(0x001EE2), RUNE_C(0x001EE2)},
+ {RUNE_C(0x001EE4), RUNE_C(0x001EE4)},
+ {RUNE_C(0x001EE6), RUNE_C(0x001EE6)},
+ {RUNE_C(0x001EE8), RUNE_C(0x001EE8)},
+ {RUNE_C(0x001EEA), RUNE_C(0x001EEA)},
+ {RUNE_C(0x001EEC), RUNE_C(0x001EEC)},
+ {RUNE_C(0x001EEE), RUNE_C(0x001EEE)},
+ {RUNE_C(0x001EF0), RUNE_C(0x001EF0)},
+ {RUNE_C(0x001EF2), RUNE_C(0x001EF2)},
+ {RUNE_C(0x001EF4), RUNE_C(0x001EF4)},
+ {RUNE_C(0x001EF6), RUNE_C(0x001EF6)},
+ {RUNE_C(0x001EF8), RUNE_C(0x001EF8)},
+ {RUNE_C(0x001EFA), RUNE_C(0x001EFA)},
+ {RUNE_C(0x001EFC), RUNE_C(0x001EFC)},
+ {RUNE_C(0x001EFE), RUNE_C(0x001EFE)},
+ {RUNE_C(0x001F08), RUNE_C(0x001F0F)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F28), RUNE_C(0x001F2F)},
+ {RUNE_C(0x001F38), RUNE_C(0x001F3F)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F5F)},
+ {RUNE_C(0x001F68), RUNE_C(0x001F6F)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FAF)},
+ {RUNE_C(0x001FB2), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB7), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC7), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD8), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE8), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF7), RUNE_C(0x001FFC)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x00212A), RUNE_C(0x00212B)},
+ {RUNE_C(0x002132), RUNE_C(0x002132)},
+ {RUNE_C(0x002160), RUNE_C(0x00216F)},
+ {RUNE_C(0x002183), RUNE_C(0x002183)},
+ {RUNE_C(0x0024B6), RUNE_C(0x0024CF)},
+ {RUNE_C(0x002C00), RUNE_C(0x002C2F)},
+ {RUNE_C(0x002C60), RUNE_C(0x002C60)},
+ {RUNE_C(0x002C62), RUNE_C(0x002C64)},
+ {RUNE_C(0x002C67), RUNE_C(0x002C67)},
+ {RUNE_C(0x002C69), RUNE_C(0x002C69)},
+ {RUNE_C(0x002C6B), RUNE_C(0x002C6B)},
+ {RUNE_C(0x002C6D), RUNE_C(0x002C70)},
+ {RUNE_C(0x002C72), RUNE_C(0x002C72)},
+ {RUNE_C(0x002C75), RUNE_C(0x002C75)},
+ {RUNE_C(0x002C7E), RUNE_C(0x002C80)},
+ {RUNE_C(0x002C82), RUNE_C(0x002C82)},
+ {RUNE_C(0x002C84), RUNE_C(0x002C84)},
+ {RUNE_C(0x002C86), RUNE_C(0x002C86)},
+ {RUNE_C(0x002C88), RUNE_C(0x002C88)},
+ {RUNE_C(0x002C8A), RUNE_C(0x002C8A)},
+ {RUNE_C(0x002C8C), RUNE_C(0x002C8C)},
+ {RUNE_C(0x002C8E), RUNE_C(0x002C8E)},
+ {RUNE_C(0x002C90), RUNE_C(0x002C90)},
+ {RUNE_C(0x002C92), RUNE_C(0x002C92)},
+ {RUNE_C(0x002C94), RUNE_C(0x002C94)},
+ {RUNE_C(0x002C96), RUNE_C(0x002C96)},
+ {RUNE_C(0x002C98), RUNE_C(0x002C98)},
+ {RUNE_C(0x002C9A), RUNE_C(0x002C9A)},
+ {RUNE_C(0x002C9C), RUNE_C(0x002C9C)},
+ {RUNE_C(0x002C9E), RUNE_C(0x002C9E)},
+ {RUNE_C(0x002CA0), RUNE_C(0x002CA0)},
+ {RUNE_C(0x002CA2), RUNE_C(0x002CA2)},
+ {RUNE_C(0x002CA4), RUNE_C(0x002CA4)},
+ {RUNE_C(0x002CA6), RUNE_C(0x002CA6)},
+ {RUNE_C(0x002CA8), RUNE_C(0x002CA8)},
+ {RUNE_C(0x002CAA), RUNE_C(0x002CAA)},
+ {RUNE_C(0x002CAC), RUNE_C(0x002CAC)},
+ {RUNE_C(0x002CAE), RUNE_C(0x002CAE)},
+ {RUNE_C(0x002CB0), RUNE_C(0x002CB0)},
+ {RUNE_C(0x002CB2), RUNE_C(0x002CB2)},
+ {RUNE_C(0x002CB4), RUNE_C(0x002CB4)},
+ {RUNE_C(0x002CB6), RUNE_C(0x002CB6)},
+ {RUNE_C(0x002CB8), RUNE_C(0x002CB8)},
+ {RUNE_C(0x002CBA), RUNE_C(0x002CBA)},
+ {RUNE_C(0x002CBC), RUNE_C(0x002CBC)},
+ {RUNE_C(0x002CBE), RUNE_C(0x002CBE)},
+ {RUNE_C(0x002CC0), RUNE_C(0x002CC0)},
+ {RUNE_C(0x002CC2), RUNE_C(0x002CC2)},
+ {RUNE_C(0x002CC4), RUNE_C(0x002CC4)},
+ {RUNE_C(0x002CC6), RUNE_C(0x002CC6)},
+ {RUNE_C(0x002CC8), RUNE_C(0x002CC8)},
+ {RUNE_C(0x002CCA), RUNE_C(0x002CCA)},
+ {RUNE_C(0x002CCC), RUNE_C(0x002CCC)},
+ {RUNE_C(0x002CCE), RUNE_C(0x002CCE)},
+ {RUNE_C(0x002CD0), RUNE_C(0x002CD0)},
+ {RUNE_C(0x002CD2), RUNE_C(0x002CD2)},
+ {RUNE_C(0x002CD4), RUNE_C(0x002CD4)},
+ {RUNE_C(0x002CD6), RUNE_C(0x002CD6)},
+ {RUNE_C(0x002CD8), RUNE_C(0x002CD8)},
+ {RUNE_C(0x002CDA), RUNE_C(0x002CDA)},
+ {RUNE_C(0x002CDC), RUNE_C(0x002CDC)},
+ {RUNE_C(0x002CDE), RUNE_C(0x002CDE)},
+ {RUNE_C(0x002CE0), RUNE_C(0x002CE0)},
+ {RUNE_C(0x002CE2), RUNE_C(0x002CE2)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEB)},
+ {RUNE_C(0x002CED), RUNE_C(0x002CED)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF2)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A640)},
+ {RUNE_C(0x00A642), RUNE_C(0x00A642)},
+ {RUNE_C(0x00A644), RUNE_C(0x00A644)},
+ {RUNE_C(0x00A646), RUNE_C(0x00A646)},
+ {RUNE_C(0x00A648), RUNE_C(0x00A648)},
+ {RUNE_C(0x00A64A), RUNE_C(0x00A64A)},
+ {RUNE_C(0x00A64C), RUNE_C(0x00A64C)},
+ {RUNE_C(0x00A64E), RUNE_C(0x00A64E)},
+ {RUNE_C(0x00A650), RUNE_C(0x00A650)},
+ {RUNE_C(0x00A652), RUNE_C(0x00A652)},
+ {RUNE_C(0x00A654), RUNE_C(0x00A654)},
+ {RUNE_C(0x00A656), RUNE_C(0x00A656)},
+ {RUNE_C(0x00A658), RUNE_C(0x00A658)},
+ {RUNE_C(0x00A65A), RUNE_C(0x00A65A)},
+ {RUNE_C(0x00A65C), RUNE_C(0x00A65C)},
+ {RUNE_C(0x00A65E), RUNE_C(0x00A65E)},
+ {RUNE_C(0x00A660), RUNE_C(0x00A660)},
+ {RUNE_C(0x00A662), RUNE_C(0x00A662)},
+ {RUNE_C(0x00A664), RUNE_C(0x00A664)},
+ {RUNE_C(0x00A666), RUNE_C(0x00A666)},
+ {RUNE_C(0x00A668), RUNE_C(0x00A668)},
+ {RUNE_C(0x00A66A), RUNE_C(0x00A66A)},
+ {RUNE_C(0x00A66C), RUNE_C(0x00A66C)},
+ {RUNE_C(0x00A680), RUNE_C(0x00A680)},
+ {RUNE_C(0x00A682), RUNE_C(0x00A682)},
+ {RUNE_C(0x00A684), RUNE_C(0x00A684)},
+ {RUNE_C(0x00A686), RUNE_C(0x00A686)},
+ {RUNE_C(0x00A688), RUNE_C(0x00A688)},
+ {RUNE_C(0x00A68A), RUNE_C(0x00A68A)},
+ {RUNE_C(0x00A68C), RUNE_C(0x00A68C)},
+ {RUNE_C(0x00A68E), RUNE_C(0x00A68E)},
+ {RUNE_C(0x00A690), RUNE_C(0x00A690)},
+ {RUNE_C(0x00A692), RUNE_C(0x00A692)},
+ {RUNE_C(0x00A694), RUNE_C(0x00A694)},
+ {RUNE_C(0x00A696), RUNE_C(0x00A696)},
+ {RUNE_C(0x00A698), RUNE_C(0x00A698)},
+ {RUNE_C(0x00A69A), RUNE_C(0x00A69A)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A722)},
+ {RUNE_C(0x00A724), RUNE_C(0x00A724)},
+ {RUNE_C(0x00A726), RUNE_C(0x00A726)},
+ {RUNE_C(0x00A728), RUNE_C(0x00A728)},
+ {RUNE_C(0x00A72A), RUNE_C(0x00A72A)},
+ {RUNE_C(0x00A72C), RUNE_C(0x00A72C)},
+ {RUNE_C(0x00A72E), RUNE_C(0x00A72E)},
+ {RUNE_C(0x00A732), RUNE_C(0x00A732)},
+ {RUNE_C(0x00A734), RUNE_C(0x00A734)},
+ {RUNE_C(0x00A736), RUNE_C(0x00A736)},
+ {RUNE_C(0x00A738), RUNE_C(0x00A738)},
+ {RUNE_C(0x00A73A), RUNE_C(0x00A73A)},
+ {RUNE_C(0x00A73C), RUNE_C(0x00A73C)},
+ {RUNE_C(0x00A73E), RUNE_C(0x00A73E)},
+ {RUNE_C(0x00A740), RUNE_C(0x00A740)},
+ {RUNE_C(0x00A742), RUNE_C(0x00A742)},
+ {RUNE_C(0x00A744), RUNE_C(0x00A744)},
+ {RUNE_C(0x00A746), RUNE_C(0x00A746)},
+ {RUNE_C(0x00A748), RUNE_C(0x00A748)},
+ {RUNE_C(0x00A74A), RUNE_C(0x00A74A)},
+ {RUNE_C(0x00A74C), RUNE_C(0x00A74C)},
+ {RUNE_C(0x00A74E), RUNE_C(0x00A74E)},
+ {RUNE_C(0x00A750), RUNE_C(0x00A750)},
+ {RUNE_C(0x00A752), RUNE_C(0x00A752)},
+ {RUNE_C(0x00A754), RUNE_C(0x00A754)},
+ {RUNE_C(0x00A756), RUNE_C(0x00A756)},
+ {RUNE_C(0x00A758), RUNE_C(0x00A758)},
+ {RUNE_C(0x00A75A), RUNE_C(0x00A75A)},
+ {RUNE_C(0x00A75C), RUNE_C(0x00A75C)},
+ {RUNE_C(0x00A75E), RUNE_C(0x00A75E)},
+ {RUNE_C(0x00A760), RUNE_C(0x00A760)},
+ {RUNE_C(0x00A762), RUNE_C(0x00A762)},
+ {RUNE_C(0x00A764), RUNE_C(0x00A764)},
+ {RUNE_C(0x00A766), RUNE_C(0x00A766)},
+ {RUNE_C(0x00A768), RUNE_C(0x00A768)},
+ {RUNE_C(0x00A76A), RUNE_C(0x00A76A)},
+ {RUNE_C(0x00A76C), RUNE_C(0x00A76C)},
+ {RUNE_C(0x00A76E), RUNE_C(0x00A76E)},
+ {RUNE_C(0x00A779), RUNE_C(0x00A779)},
+ {RUNE_C(0x00A77B), RUNE_C(0x00A77B)},
+ {RUNE_C(0x00A77D), RUNE_C(0x00A77E)},
+ {RUNE_C(0x00A780), RUNE_C(0x00A780)},
+ {RUNE_C(0x00A782), RUNE_C(0x00A782)},
+ {RUNE_C(0x00A784), RUNE_C(0x00A784)},
+ {RUNE_C(0x00A786), RUNE_C(0x00A786)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A78B)},
+ {RUNE_C(0x00A78D), RUNE_C(0x00A78D)},
+ {RUNE_C(0x00A790), RUNE_C(0x00A790)},
+ {RUNE_C(0x00A792), RUNE_C(0x00A792)},
+ {RUNE_C(0x00A796), RUNE_C(0x00A796)},
+ {RUNE_C(0x00A798), RUNE_C(0x00A798)},
+ {RUNE_C(0x00A79A), RUNE_C(0x00A79A)},
+ {RUNE_C(0x00A79C), RUNE_C(0x00A79C)},
+ {RUNE_C(0x00A79E), RUNE_C(0x00A79E)},
+ {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)},
+ {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)},
+ {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)},
+ {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)},
+ {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)},
+ {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)},
+ {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)},
+ {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)},
+ {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)},
+ {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)},
+ {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)},
+ {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)},
+ {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)},
+ {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)},
+ {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)},
+ {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)},
+ {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)},
+ {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)},
+ {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x010400), RUNE_C(0x010427)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118BF)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E5F)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E921)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_cwcf(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_cwcm.c b/lib/unicode/prop/uprop_is_cwcm.c
new file mode 100644
index 0000000..b031ce3
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_cwcm.c
@@ -0,0 +1,154 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x000137)},
+ {RUNE_C(0x000139), RUNE_C(0x00018C)},
+ {RUNE_C(0x00018E), RUNE_C(0x00019A)},
+ {RUNE_C(0x00019C), RUNE_C(0x0001A9)},
+ {RUNE_C(0x0001AC), RUNE_C(0x0001B9)},
+ {RUNE_C(0x0001BC), RUNE_C(0x0001BD)},
+ {RUNE_C(0x0001BF), RUNE_C(0x0001BF)},
+ {RUNE_C(0x0001C4), RUNE_C(0x000220)},
+ {RUNE_C(0x000222), RUNE_C(0x000233)},
+ {RUNE_C(0x00023A), RUNE_C(0x000254)},
+ {RUNE_C(0x000256), RUNE_C(0x000257)},
+ {RUNE_C(0x000259), RUNE_C(0x000259)},
+ {RUNE_C(0x00025B), RUNE_C(0x00025C)},
+ {RUNE_C(0x000260), RUNE_C(0x000261)},
+ {RUNE_C(0x000263), RUNE_C(0x000263)},
+ {RUNE_C(0x000265), RUNE_C(0x000266)},
+ {RUNE_C(0x000268), RUNE_C(0x00026C)},
+ {RUNE_C(0x00026F), RUNE_C(0x00026F)},
+ {RUNE_C(0x000271), RUNE_C(0x000272)},
+ {RUNE_C(0x000275), RUNE_C(0x000275)},
+ {RUNE_C(0x00027D), RUNE_C(0x00027D)},
+ {RUNE_C(0x000280), RUNE_C(0x000280)},
+ {RUNE_C(0x000282), RUNE_C(0x000283)},
+ {RUNE_C(0x000287), RUNE_C(0x00028C)},
+ {RUNE_C(0x000292), RUNE_C(0x000292)},
+ {RUNE_C(0x00029D), RUNE_C(0x00029E)},
+ {RUNE_C(0x000345), RUNE_C(0x000345)},
+ {RUNE_C(0x000370), RUNE_C(0x000373)},
+ {RUNE_C(0x000376), RUNE_C(0x000377)},
+ {RUNE_C(0x00037B), RUNE_C(0x00037D)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003D1)},
+ {RUNE_C(0x0003D5), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x0003FB)},
+ {RUNE_C(0x0003FD), RUNE_C(0x000481)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000561), RUNE_C(0x000587)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FD), RUNE_C(0x0010FF)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001D79), RUNE_C(0x001D79)},
+ {RUNE_C(0x001D7D), RUNE_C(0x001D7D)},
+ {RUNE_C(0x001D8E), RUNE_C(0x001D8E)},
+ {RUNE_C(0x001E00), RUNE_C(0x001E9B)},
+ {RUNE_C(0x001E9E), RUNE_C(0x001E9E)},
+ {RUNE_C(0x001EA0), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFC)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x00212A), RUNE_C(0x00212B)},
+ {RUNE_C(0x002132), RUNE_C(0x002132)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002160), RUNE_C(0x00217F)},
+ {RUNE_C(0x002183), RUNE_C(0x002184)},
+ {RUNE_C(0x0024B6), RUNE_C(0x0024E9)},
+ {RUNE_C(0x002C00), RUNE_C(0x002C70)},
+ {RUNE_C(0x002C72), RUNE_C(0x002C73)},
+ {RUNE_C(0x002C75), RUNE_C(0x002C76)},
+ {RUNE_C(0x002C7E), RUNE_C(0x002CE3)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66D)},
+ {RUNE_C(0x00A680), RUNE_C(0x00A69B)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A72F)},
+ {RUNE_C(0x00A732), RUNE_C(0x00A76F)},
+ {RUNE_C(0x00A779), RUNE_C(0x00A787)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A78D)},
+ {RUNE_C(0x00A790), RUNE_C(0x00A794)},
+ {RUNE_C(0x00A796), RUNE_C(0x00A7AE)},
+ {RUNE_C(0x00A7B0), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D6), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F5), RUNE_C(0x00A7F6)},
+ {RUNE_C(0x00AB53), RUNE_C(0x00AB53)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x010400), RUNE_C(0x01044F)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E7F)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E943)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_cwcm(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_cwkcf.c b/lib/unicode/prop/uprop_is_cwkcf.c
new file mode 100644
index 0000000..33a7c48
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_cwkcf.c
@@ -0,0 +1,856 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01, 0xA5, 0x3C, 0x77,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x000100)},
+ {RUNE_C(0x000102), RUNE_C(0x000102)},
+ {RUNE_C(0x000104), RUNE_C(0x000104)},
+ {RUNE_C(0x000106), RUNE_C(0x000106)},
+ {RUNE_C(0x000108), RUNE_C(0x000108)},
+ {RUNE_C(0x00010A), RUNE_C(0x00010A)},
+ {RUNE_C(0x00010C), RUNE_C(0x00010C)},
+ {RUNE_C(0x00010E), RUNE_C(0x00010E)},
+ {RUNE_C(0x000110), RUNE_C(0x000110)},
+ {RUNE_C(0x000112), RUNE_C(0x000112)},
+ {RUNE_C(0x000114), RUNE_C(0x000114)},
+ {RUNE_C(0x000116), RUNE_C(0x000116)},
+ {RUNE_C(0x000118), RUNE_C(0x000118)},
+ {RUNE_C(0x00011A), RUNE_C(0x00011A)},
+ {RUNE_C(0x00011C), RUNE_C(0x00011C)},
+ {RUNE_C(0x00011E), RUNE_C(0x00011E)},
+ {RUNE_C(0x000120), RUNE_C(0x000120)},
+ {RUNE_C(0x000122), RUNE_C(0x000122)},
+ {RUNE_C(0x000124), RUNE_C(0x000124)},
+ {RUNE_C(0x000126), RUNE_C(0x000126)},
+ {RUNE_C(0x000128), RUNE_C(0x000128)},
+ {RUNE_C(0x00012A), RUNE_C(0x00012A)},
+ {RUNE_C(0x00012C), RUNE_C(0x00012C)},
+ {RUNE_C(0x00012E), RUNE_C(0x00012E)},
+ {RUNE_C(0x000130), RUNE_C(0x000130)},
+ {RUNE_C(0x000132), RUNE_C(0x000134)},
+ {RUNE_C(0x000136), RUNE_C(0x000136)},
+ {RUNE_C(0x000139), RUNE_C(0x000139)},
+ {RUNE_C(0x00013B), RUNE_C(0x00013B)},
+ {RUNE_C(0x00013D), RUNE_C(0x00013D)},
+ {RUNE_C(0x00013F), RUNE_C(0x000141)},
+ {RUNE_C(0x000143), RUNE_C(0x000143)},
+ {RUNE_C(0x000145), RUNE_C(0x000145)},
+ {RUNE_C(0x000147), RUNE_C(0x000147)},
+ {RUNE_C(0x000149), RUNE_C(0x00014A)},
+ {RUNE_C(0x00014C), RUNE_C(0x00014C)},
+ {RUNE_C(0x00014E), RUNE_C(0x00014E)},
+ {RUNE_C(0x000150), RUNE_C(0x000150)},
+ {RUNE_C(0x000152), RUNE_C(0x000152)},
+ {RUNE_C(0x000154), RUNE_C(0x000154)},
+ {RUNE_C(0x000156), RUNE_C(0x000156)},
+ {RUNE_C(0x000158), RUNE_C(0x000158)},
+ {RUNE_C(0x00015A), RUNE_C(0x00015A)},
+ {RUNE_C(0x00015C), RUNE_C(0x00015C)},
+ {RUNE_C(0x00015E), RUNE_C(0x00015E)},
+ {RUNE_C(0x000160), RUNE_C(0x000160)},
+ {RUNE_C(0x000162), RUNE_C(0x000162)},
+ {RUNE_C(0x000164), RUNE_C(0x000164)},
+ {RUNE_C(0x000166), RUNE_C(0x000166)},
+ {RUNE_C(0x000168), RUNE_C(0x000168)},
+ {RUNE_C(0x00016A), RUNE_C(0x00016A)},
+ {RUNE_C(0x00016C), RUNE_C(0x00016C)},
+ {RUNE_C(0x00016E), RUNE_C(0x00016E)},
+ {RUNE_C(0x000170), RUNE_C(0x000170)},
+ {RUNE_C(0x000172), RUNE_C(0x000172)},
+ {RUNE_C(0x000174), RUNE_C(0x000174)},
+ {RUNE_C(0x000176), RUNE_C(0x000176)},
+ {RUNE_C(0x000178), RUNE_C(0x000179)},
+ {RUNE_C(0x00017B), RUNE_C(0x00017B)},
+ {RUNE_C(0x00017D), RUNE_C(0x00017D)},
+ {RUNE_C(0x00017F), RUNE_C(0x00017F)},
+ {RUNE_C(0x000181), RUNE_C(0x000182)},
+ {RUNE_C(0x000184), RUNE_C(0x000184)},
+ {RUNE_C(0x000186), RUNE_C(0x000187)},
+ {RUNE_C(0x000189), RUNE_C(0x00018B)},
+ {RUNE_C(0x00018E), RUNE_C(0x000191)},
+ {RUNE_C(0x000193), RUNE_C(0x000194)},
+ {RUNE_C(0x000196), RUNE_C(0x000198)},
+ {RUNE_C(0x00019C), RUNE_C(0x00019D)},
+ {RUNE_C(0x00019F), RUNE_C(0x0001A0)},
+ {RUNE_C(0x0001A2), RUNE_C(0x0001A2)},
+ {RUNE_C(0x0001A4), RUNE_C(0x0001A4)},
+ {RUNE_C(0x0001A6), RUNE_C(0x0001A7)},
+ {RUNE_C(0x0001A9), RUNE_C(0x0001A9)},
+ {RUNE_C(0x0001AC), RUNE_C(0x0001AC)},
+ {RUNE_C(0x0001AE), RUNE_C(0x0001AF)},
+ {RUNE_C(0x0001B1), RUNE_C(0x0001B3)},
+ {RUNE_C(0x0001B5), RUNE_C(0x0001B5)},
+ {RUNE_C(0x0001B7), RUNE_C(0x0001B8)},
+ {RUNE_C(0x0001BC), RUNE_C(0x0001BC)},
+ {RUNE_C(0x0001C4), RUNE_C(0x0001CD)},
+ {RUNE_C(0x0001CF), RUNE_C(0x0001CF)},
+ {RUNE_C(0x0001D1), RUNE_C(0x0001D1)},
+ {RUNE_C(0x0001D3), RUNE_C(0x0001D3)},
+ {RUNE_C(0x0001D5), RUNE_C(0x0001D5)},
+ {RUNE_C(0x0001D7), RUNE_C(0x0001D7)},
+ {RUNE_C(0x0001D9), RUNE_C(0x0001D9)},
+ {RUNE_C(0x0001DB), RUNE_C(0x0001DB)},
+ {RUNE_C(0x0001DE), RUNE_C(0x0001DE)},
+ {RUNE_C(0x0001E0), RUNE_C(0x0001E0)},
+ {RUNE_C(0x0001E2), RUNE_C(0x0001E2)},
+ {RUNE_C(0x0001E4), RUNE_C(0x0001E4)},
+ {RUNE_C(0x0001E6), RUNE_C(0x0001E6)},
+ {RUNE_C(0x0001E8), RUNE_C(0x0001E8)},
+ {RUNE_C(0x0001EA), RUNE_C(0x0001EA)},
+ {RUNE_C(0x0001EC), RUNE_C(0x0001EC)},
+ {RUNE_C(0x0001EE), RUNE_C(0x0001EE)},
+ {RUNE_C(0x0001F1), RUNE_C(0x0001F4)},
+ {RUNE_C(0x0001F6), RUNE_C(0x0001F8)},
+ {RUNE_C(0x0001FA), RUNE_C(0x0001FA)},
+ {RUNE_C(0x0001FC), RUNE_C(0x0001FC)},
+ {RUNE_C(0x0001FE), RUNE_C(0x0001FE)},
+ {RUNE_C(0x000200), RUNE_C(0x000200)},
+ {RUNE_C(0x000202), RUNE_C(0x000202)},
+ {RUNE_C(0x000204), RUNE_C(0x000204)},
+ {RUNE_C(0x000206), RUNE_C(0x000206)},
+ {RUNE_C(0x000208), RUNE_C(0x000208)},
+ {RUNE_C(0x00020A), RUNE_C(0x00020A)},
+ {RUNE_C(0x00020C), RUNE_C(0x00020C)},
+ {RUNE_C(0x00020E), RUNE_C(0x00020E)},
+ {RUNE_C(0x000210), RUNE_C(0x000210)},
+ {RUNE_C(0x000212), RUNE_C(0x000212)},
+ {RUNE_C(0x000214), RUNE_C(0x000214)},
+ {RUNE_C(0x000216), RUNE_C(0x000216)},
+ {RUNE_C(0x000218), RUNE_C(0x000218)},
+ {RUNE_C(0x00021A), RUNE_C(0x00021A)},
+ {RUNE_C(0x00021C), RUNE_C(0x00021C)},
+ {RUNE_C(0x00021E), RUNE_C(0x00021E)},
+ {RUNE_C(0x000220), RUNE_C(0x000220)},
+ {RUNE_C(0x000222), RUNE_C(0x000222)},
+ {RUNE_C(0x000224), RUNE_C(0x000224)},
+ {RUNE_C(0x000226), RUNE_C(0x000226)},
+ {RUNE_C(0x000228), RUNE_C(0x000228)},
+ {RUNE_C(0x00022A), RUNE_C(0x00022A)},
+ {RUNE_C(0x00022C), RUNE_C(0x00022C)},
+ {RUNE_C(0x00022E), RUNE_C(0x00022E)},
+ {RUNE_C(0x000230), RUNE_C(0x000230)},
+ {RUNE_C(0x000232), RUNE_C(0x000232)},
+ {RUNE_C(0x00023A), RUNE_C(0x00023B)},
+ {RUNE_C(0x00023D), RUNE_C(0x00023E)},
+ {RUNE_C(0x000241), RUNE_C(0x000241)},
+ {RUNE_C(0x000243), RUNE_C(0x000246)},
+ {RUNE_C(0x000248), RUNE_C(0x000248)},
+ {RUNE_C(0x00024A), RUNE_C(0x00024A)},
+ {RUNE_C(0x00024C), RUNE_C(0x00024C)},
+ {RUNE_C(0x00024E), RUNE_C(0x00024E)},
+ {RUNE_C(0x0002B0), RUNE_C(0x0002B8)},
+ {RUNE_C(0x0002D8), RUNE_C(0x0002DD)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x000340), RUNE_C(0x000341)},
+ {RUNE_C(0x000343), RUNE_C(0x000345)},
+ {RUNE_C(0x00034F), RUNE_C(0x00034F)},
+ {RUNE_C(0x000370), RUNE_C(0x000370)},
+ {RUNE_C(0x000372), RUNE_C(0x000372)},
+ {RUNE_C(0x000374), RUNE_C(0x000374)},
+ {RUNE_C(0x000376), RUNE_C(0x000376)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037A)},
+ {RUNE_C(0x00037E), RUNE_C(0x00037F)},
+ {RUNE_C(0x000384), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x00038F)},
+ {RUNE_C(0x000391), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003AB)},
+ {RUNE_C(0x0003C2), RUNE_C(0x0003C2)},
+ {RUNE_C(0x0003CF), RUNE_C(0x0003D6)},
+ {RUNE_C(0x0003D8), RUNE_C(0x0003D8)},
+ {RUNE_C(0x0003DA), RUNE_C(0x0003DA)},
+ {RUNE_C(0x0003DC), RUNE_C(0x0003DC)},
+ {RUNE_C(0x0003DE), RUNE_C(0x0003DE)},
+ {RUNE_C(0x0003E0), RUNE_C(0x0003E0)},
+ {RUNE_C(0x0003E2), RUNE_C(0x0003E2)},
+ {RUNE_C(0x0003E4), RUNE_C(0x0003E4)},
+ {RUNE_C(0x0003E6), RUNE_C(0x0003E6)},
+ {RUNE_C(0x0003E8), RUNE_C(0x0003E8)},
+ {RUNE_C(0x0003EA), RUNE_C(0x0003EA)},
+ {RUNE_C(0x0003EC), RUNE_C(0x0003EC)},
+ {RUNE_C(0x0003EE), RUNE_C(0x0003EE)},
+ {RUNE_C(0x0003F0), RUNE_C(0x0003F2)},
+ {RUNE_C(0x0003F4), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x0003F7)},
+ {RUNE_C(0x0003F9), RUNE_C(0x0003FA)},
+ {RUNE_C(0x0003FD), RUNE_C(0x00042F)},
+ {RUNE_C(0x000460), RUNE_C(0x000460)},
+ {RUNE_C(0x000462), RUNE_C(0x000462)},
+ {RUNE_C(0x000464), RUNE_C(0x000464)},
+ {RUNE_C(0x000466), RUNE_C(0x000466)},
+ {RUNE_C(0x000468), RUNE_C(0x000468)},
+ {RUNE_C(0x00046A), RUNE_C(0x00046A)},
+ {RUNE_C(0x00046C), RUNE_C(0x00046C)},
+ {RUNE_C(0x00046E), RUNE_C(0x00046E)},
+ {RUNE_C(0x000470), RUNE_C(0x000470)},
+ {RUNE_C(0x000472), RUNE_C(0x000472)},
+ {RUNE_C(0x000474), RUNE_C(0x000474)},
+ {RUNE_C(0x000476), RUNE_C(0x000476)},
+ {RUNE_C(0x000478), RUNE_C(0x000478)},
+ {RUNE_C(0x00047A), RUNE_C(0x00047A)},
+ {RUNE_C(0x00047C), RUNE_C(0x00047C)},
+ {RUNE_C(0x00047E), RUNE_C(0x00047E)},
+ {RUNE_C(0x000480), RUNE_C(0x000480)},
+ {RUNE_C(0x00048A), RUNE_C(0x00048A)},
+ {RUNE_C(0x00048C), RUNE_C(0x00048C)},
+ {RUNE_C(0x00048E), RUNE_C(0x00048E)},
+ {RUNE_C(0x000490), RUNE_C(0x000490)},
+ {RUNE_C(0x000492), RUNE_C(0x000492)},
+ {RUNE_C(0x000494), RUNE_C(0x000494)},
+ {RUNE_C(0x000496), RUNE_C(0x000496)},
+ {RUNE_C(0x000498), RUNE_C(0x000498)},
+ {RUNE_C(0x00049A), RUNE_C(0x00049A)},
+ {RUNE_C(0x00049C), RUNE_C(0x00049C)},
+ {RUNE_C(0x00049E), RUNE_C(0x00049E)},
+ {RUNE_C(0x0004A0), RUNE_C(0x0004A0)},
+ {RUNE_C(0x0004A2), RUNE_C(0x0004A2)},
+ {RUNE_C(0x0004A4), RUNE_C(0x0004A4)},
+ {RUNE_C(0x0004A6), RUNE_C(0x0004A6)},
+ {RUNE_C(0x0004A8), RUNE_C(0x0004A8)},
+ {RUNE_C(0x0004AA), RUNE_C(0x0004AA)},
+ {RUNE_C(0x0004AC), RUNE_C(0x0004AC)},
+ {RUNE_C(0x0004AE), RUNE_C(0x0004AE)},
+ {RUNE_C(0x0004B0), RUNE_C(0x0004B0)},
+ {RUNE_C(0x0004B2), RUNE_C(0x0004B2)},
+ {RUNE_C(0x0004B4), RUNE_C(0x0004B4)},
+ {RUNE_C(0x0004B6), RUNE_C(0x0004B6)},
+ {RUNE_C(0x0004B8), RUNE_C(0x0004B8)},
+ {RUNE_C(0x0004BA), RUNE_C(0x0004BA)},
+ {RUNE_C(0x0004BC), RUNE_C(0x0004BC)},
+ {RUNE_C(0x0004BE), RUNE_C(0x0004BE)},
+ {RUNE_C(0x0004C0), RUNE_C(0x0004C1)},
+ {RUNE_C(0x0004C3), RUNE_C(0x0004C3)},
+ {RUNE_C(0x0004C5), RUNE_C(0x0004C5)},
+ {RUNE_C(0x0004C7), RUNE_C(0x0004C7)},
+ {RUNE_C(0x0004C9), RUNE_C(0x0004C9)},
+ {RUNE_C(0x0004CB), RUNE_C(0x0004CB)},
+ {RUNE_C(0x0004CD), RUNE_C(0x0004CD)},
+ {RUNE_C(0x0004D0), RUNE_C(0x0004D0)},
+ {RUNE_C(0x0004D2), RUNE_C(0x0004D2)},
+ {RUNE_C(0x0004D4), RUNE_C(0x0004D4)},
+ {RUNE_C(0x0004D6), RUNE_C(0x0004D6)},
+ {RUNE_C(0x0004D8), RUNE_C(0x0004D8)},
+ {RUNE_C(0x0004DA), RUNE_C(0x0004DA)},
+ {RUNE_C(0x0004DC), RUNE_C(0x0004DC)},
+ {RUNE_C(0x0004DE), RUNE_C(0x0004DE)},
+ {RUNE_C(0x0004E0), RUNE_C(0x0004E0)},
+ {RUNE_C(0x0004E2), RUNE_C(0x0004E2)},
+ {RUNE_C(0x0004E4), RUNE_C(0x0004E4)},
+ {RUNE_C(0x0004E6), RUNE_C(0x0004E6)},
+ {RUNE_C(0x0004E8), RUNE_C(0x0004E8)},
+ {RUNE_C(0x0004EA), RUNE_C(0x0004EA)},
+ {RUNE_C(0x0004EC), RUNE_C(0x0004EC)},
+ {RUNE_C(0x0004EE), RUNE_C(0x0004EE)},
+ {RUNE_C(0x0004F0), RUNE_C(0x0004F0)},
+ {RUNE_C(0x0004F2), RUNE_C(0x0004F2)},
+ {RUNE_C(0x0004F4), RUNE_C(0x0004F4)},
+ {RUNE_C(0x0004F6), RUNE_C(0x0004F6)},
+ {RUNE_C(0x0004F8), RUNE_C(0x0004F8)},
+ {RUNE_C(0x0004FA), RUNE_C(0x0004FA)},
+ {RUNE_C(0x0004FC), RUNE_C(0x0004FC)},
+ {RUNE_C(0x0004FE), RUNE_C(0x0004FE)},
+ {RUNE_C(0x000500), RUNE_C(0x000500)},
+ {RUNE_C(0x000502), RUNE_C(0x000502)},
+ {RUNE_C(0x000504), RUNE_C(0x000504)},
+ {RUNE_C(0x000506), RUNE_C(0x000506)},
+ {RUNE_C(0x000508), RUNE_C(0x000508)},
+ {RUNE_C(0x00050A), RUNE_C(0x00050A)},
+ {RUNE_C(0x00050C), RUNE_C(0x00050C)},
+ {RUNE_C(0x00050E), RUNE_C(0x00050E)},
+ {RUNE_C(0x000510), RUNE_C(0x000510)},
+ {RUNE_C(0x000512), RUNE_C(0x000512)},
+ {RUNE_C(0x000514), RUNE_C(0x000514)},
+ {RUNE_C(0x000516), RUNE_C(0x000516)},
+ {RUNE_C(0x000518), RUNE_C(0x000518)},
+ {RUNE_C(0x00051A), RUNE_C(0x00051A)},
+ {RUNE_C(0x00051C), RUNE_C(0x00051C)},
+ {RUNE_C(0x00051E), RUNE_C(0x00051E)},
+ {RUNE_C(0x000520), RUNE_C(0x000520)},
+ {RUNE_C(0x000522), RUNE_C(0x000522)},
+ {RUNE_C(0x000524), RUNE_C(0x000524)},
+ {RUNE_C(0x000526), RUNE_C(0x000526)},
+ {RUNE_C(0x000528), RUNE_C(0x000528)},
+ {RUNE_C(0x00052A), RUNE_C(0x00052A)},
+ {RUNE_C(0x00052C), RUNE_C(0x00052C)},
+ {RUNE_C(0x00052E), RUNE_C(0x00052E)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000587), RUNE_C(0x000587)},
+ {RUNE_C(0x00061C), RUNE_C(0x00061C)},
+ {RUNE_C(0x000675), RUNE_C(0x000678)},
+ {RUNE_C(0x000958), RUNE_C(0x00095F)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009DF)},
+ {RUNE_C(0x000A33), RUNE_C(0x000A33)},
+ {RUNE_C(0x000A36), RUNE_C(0x000A36)},
+ {RUNE_C(0x000A59), RUNE_C(0x000A5B)},
+ {RUNE_C(0x000A5E), RUNE_C(0x000A5E)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000E33), RUNE_C(0x000E33)},
+ {RUNE_C(0x000EB3), RUNE_C(0x000EB3)},
+ {RUNE_C(0x000EDC), RUNE_C(0x000EDD)},
+ {RUNE_C(0x000F0C), RUNE_C(0x000F0C)},
+ {RUNE_C(0x000F43), RUNE_C(0x000F43)},
+ {RUNE_C(0x000F4D), RUNE_C(0x000F4D)},
+ {RUNE_C(0x000F52), RUNE_C(0x000F52)},
+ {RUNE_C(0x000F57), RUNE_C(0x000F57)},
+ {RUNE_C(0x000F5C), RUNE_C(0x000F5C)},
+ {RUNE_C(0x000F69), RUNE_C(0x000F69)},
+ {RUNE_C(0x000F73), RUNE_C(0x000F73)},
+ {RUNE_C(0x000F75), RUNE_C(0x000F79)},
+ {RUNE_C(0x000F81), RUNE_C(0x000F81)},
+ {RUNE_C(0x000F93), RUNE_C(0x000F93)},
+ {RUNE_C(0x000F9D), RUNE_C(0x000F9D)},
+ {RUNE_C(0x000FA2), RUNE_C(0x000FA2)},
+ {RUNE_C(0x000FA7), RUNE_C(0x000FA7)},
+ {RUNE_C(0x000FAC), RUNE_C(0x000FAC)},
+ {RUNE_C(0x000FB9), RUNE_C(0x000FB9)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010FC), RUNE_C(0x0010FC)},
+ {RUNE_C(0x00115F), RUNE_C(0x001160)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x0017B4), RUNE_C(0x0017B5)},
+ {RUNE_C(0x00180B), RUNE_C(0x00180F)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001D2C), RUNE_C(0x001D2E)},
+ {RUNE_C(0x001D30), RUNE_C(0x001D3A)},
+ {RUNE_C(0x001D3C), RUNE_C(0x001D4D)},
+ {RUNE_C(0x001D4F), RUNE_C(0x001D6A)},
+ {RUNE_C(0x001D78), RUNE_C(0x001D78)},
+ {RUNE_C(0x001D9B), RUNE_C(0x001DBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001E00)},
+ {RUNE_C(0x001E02), RUNE_C(0x001E02)},
+ {RUNE_C(0x001E04), RUNE_C(0x001E04)},
+ {RUNE_C(0x001E06), RUNE_C(0x001E06)},
+ {RUNE_C(0x001E08), RUNE_C(0x001E08)},
+ {RUNE_C(0x001E0A), RUNE_C(0x001E0A)},
+ {RUNE_C(0x001E0C), RUNE_C(0x001E0C)},
+ {RUNE_C(0x001E0E), RUNE_C(0x001E0E)},
+ {RUNE_C(0x001E10), RUNE_C(0x001E10)},
+ {RUNE_C(0x001E12), RUNE_C(0x001E12)},
+ {RUNE_C(0x001E14), RUNE_C(0x001E14)},
+ {RUNE_C(0x001E16), RUNE_C(0x001E16)},
+ {RUNE_C(0x001E18), RUNE_C(0x001E18)},
+ {RUNE_C(0x001E1A), RUNE_C(0x001E1A)},
+ {RUNE_C(0x001E1C), RUNE_C(0x001E1C)},
+ {RUNE_C(0x001E1E), RUNE_C(0x001E1E)},
+ {RUNE_C(0x001E20), RUNE_C(0x001E20)},
+ {RUNE_C(0x001E22), RUNE_C(0x001E22)},
+ {RUNE_C(0x001E24), RUNE_C(0x001E24)},
+ {RUNE_C(0x001E26), RUNE_C(0x001E26)},
+ {RUNE_C(0x001E28), RUNE_C(0x001E28)},
+ {RUNE_C(0x001E2A), RUNE_C(0x001E2A)},
+ {RUNE_C(0x001E2C), RUNE_C(0x001E2C)},
+ {RUNE_C(0x001E2E), RUNE_C(0x001E2E)},
+ {RUNE_C(0x001E30), RUNE_C(0x001E30)},
+ {RUNE_C(0x001E32), RUNE_C(0x001E32)},
+ {RUNE_C(0x001E34), RUNE_C(0x001E34)},
+ {RUNE_C(0x001E36), RUNE_C(0x001E36)},
+ {RUNE_C(0x001E38), RUNE_C(0x001E38)},
+ {RUNE_C(0x001E3A), RUNE_C(0x001E3A)},
+ {RUNE_C(0x001E3C), RUNE_C(0x001E3C)},
+ {RUNE_C(0x001E3E), RUNE_C(0x001E3E)},
+ {RUNE_C(0x001E40), RUNE_C(0x001E40)},
+ {RUNE_C(0x001E42), RUNE_C(0x001E42)},
+ {RUNE_C(0x001E44), RUNE_C(0x001E44)},
+ {RUNE_C(0x001E46), RUNE_C(0x001E46)},
+ {RUNE_C(0x001E48), RUNE_C(0x001E48)},
+ {RUNE_C(0x001E4A), RUNE_C(0x001E4A)},
+ {RUNE_C(0x001E4C), RUNE_C(0x001E4C)},
+ {RUNE_C(0x001E4E), RUNE_C(0x001E4E)},
+ {RUNE_C(0x001E50), RUNE_C(0x001E50)},
+ {RUNE_C(0x001E52), RUNE_C(0x001E52)},
+ {RUNE_C(0x001E54), RUNE_C(0x001E54)},
+ {RUNE_C(0x001E56), RUNE_C(0x001E56)},
+ {RUNE_C(0x001E58), RUNE_C(0x001E58)},
+ {RUNE_C(0x001E5A), RUNE_C(0x001E5A)},
+ {RUNE_C(0x001E5C), RUNE_C(0x001E5C)},
+ {RUNE_C(0x001E5E), RUNE_C(0x001E5E)},
+ {RUNE_C(0x001E60), RUNE_C(0x001E60)},
+ {RUNE_C(0x001E62), RUNE_C(0x001E62)},
+ {RUNE_C(0x001E64), RUNE_C(0x001E64)},
+ {RUNE_C(0x001E66), RUNE_C(0x001E66)},
+ {RUNE_C(0x001E68), RUNE_C(0x001E68)},
+ {RUNE_C(0x001E6A), RUNE_C(0x001E6A)},
+ {RUNE_C(0x001E6C), RUNE_C(0x001E6C)},
+ {RUNE_C(0x001E6E), RUNE_C(0x001E6E)},
+ {RUNE_C(0x001E70), RUNE_C(0x001E70)},
+ {RUNE_C(0x001E72), RUNE_C(0x001E72)},
+ {RUNE_C(0x001E74), RUNE_C(0x001E74)},
+ {RUNE_C(0x001E76), RUNE_C(0x001E76)},
+ {RUNE_C(0x001E78), RUNE_C(0x001E78)},
+ {RUNE_C(0x001E7A), RUNE_C(0x001E7A)},
+ {RUNE_C(0x001E7C), RUNE_C(0x001E7C)},
+ {RUNE_C(0x001E7E), RUNE_C(0x001E7E)},
+ {RUNE_C(0x001E80), RUNE_C(0x001E80)},
+ {RUNE_C(0x001E82), RUNE_C(0x001E82)},
+ {RUNE_C(0x001E84), RUNE_C(0x001E84)},
+ {RUNE_C(0x001E86), RUNE_C(0x001E86)},
+ {RUNE_C(0x001E88), RUNE_C(0x001E88)},
+ {RUNE_C(0x001E8A), RUNE_C(0x001E8A)},
+ {RUNE_C(0x001E8C), RUNE_C(0x001E8C)},
+ {RUNE_C(0x001E8E), RUNE_C(0x001E8E)},
+ {RUNE_C(0x001E90), RUNE_C(0x001E90)},
+ {RUNE_C(0x001E92), RUNE_C(0x001E92)},
+ {RUNE_C(0x001E94), RUNE_C(0x001E94)},
+ {RUNE_C(0x001E9A), RUNE_C(0x001E9B)},
+ {RUNE_C(0x001E9E), RUNE_C(0x001E9E)},
+ {RUNE_C(0x001EA0), RUNE_C(0x001EA0)},
+ {RUNE_C(0x001EA2), RUNE_C(0x001EA2)},
+ {RUNE_C(0x001EA4), RUNE_C(0x001EA4)},
+ {RUNE_C(0x001EA6), RUNE_C(0x001EA6)},
+ {RUNE_C(0x001EA8), RUNE_C(0x001EA8)},
+ {RUNE_C(0x001EAA), RUNE_C(0x001EAA)},
+ {RUNE_C(0x001EAC), RUNE_C(0x001EAC)},
+ {RUNE_C(0x001EAE), RUNE_C(0x001EAE)},
+ {RUNE_C(0x001EB0), RUNE_C(0x001EB0)},
+ {RUNE_C(0x001EB2), RUNE_C(0x001EB2)},
+ {RUNE_C(0x001EB4), RUNE_C(0x001EB4)},
+ {RUNE_C(0x001EB6), RUNE_C(0x001EB6)},
+ {RUNE_C(0x001EB8), RUNE_C(0x001EB8)},
+ {RUNE_C(0x001EBA), RUNE_C(0x001EBA)},
+ {RUNE_C(0x001EBC), RUNE_C(0x001EBC)},
+ {RUNE_C(0x001EBE), RUNE_C(0x001EBE)},
+ {RUNE_C(0x001EC0), RUNE_C(0x001EC0)},
+ {RUNE_C(0x001EC2), RUNE_C(0x001EC2)},
+ {RUNE_C(0x001EC4), RUNE_C(0x001EC4)},
+ {RUNE_C(0x001EC6), RUNE_C(0x001EC6)},
+ {RUNE_C(0x001EC8), RUNE_C(0x001EC8)},
+ {RUNE_C(0x001ECA), RUNE_C(0x001ECA)},
+ {RUNE_C(0x001ECC), RUNE_C(0x001ECC)},
+ {RUNE_C(0x001ECE), RUNE_C(0x001ECE)},
+ {RUNE_C(0x001ED0), RUNE_C(0x001ED0)},
+ {RUNE_C(0x001ED2), RUNE_C(0x001ED2)},
+ {RUNE_C(0x001ED4), RUNE_C(0x001ED4)},
+ {RUNE_C(0x001ED6), RUNE_C(0x001ED6)},
+ {RUNE_C(0x001ED8), RUNE_C(0x001ED8)},
+ {RUNE_C(0x001EDA), RUNE_C(0x001EDA)},
+ {RUNE_C(0x001EDC), RUNE_C(0x001EDC)},
+ {RUNE_C(0x001EDE), RUNE_C(0x001EDE)},
+ {RUNE_C(0x001EE0), RUNE_C(0x001EE0)},
+ {RUNE_C(0x001EE2), RUNE_C(0x001EE2)},
+ {RUNE_C(0x001EE4), RUNE_C(0x001EE4)},
+ {RUNE_C(0x001EE6), RUNE_C(0x001EE6)},
+ {RUNE_C(0x001EE8), RUNE_C(0x001EE8)},
+ {RUNE_C(0x001EEA), RUNE_C(0x001EEA)},
+ {RUNE_C(0x001EEC), RUNE_C(0x001EEC)},
+ {RUNE_C(0x001EEE), RUNE_C(0x001EEE)},
+ {RUNE_C(0x001EF0), RUNE_C(0x001EF0)},
+ {RUNE_C(0x001EF2), RUNE_C(0x001EF2)},
+ {RUNE_C(0x001EF4), RUNE_C(0x001EF4)},
+ {RUNE_C(0x001EF6), RUNE_C(0x001EF6)},
+ {RUNE_C(0x001EF8), RUNE_C(0x001EF8)},
+ {RUNE_C(0x001EFA), RUNE_C(0x001EFA)},
+ {RUNE_C(0x001EFC), RUNE_C(0x001EFC)},
+ {RUNE_C(0x001EFE), RUNE_C(0x001EFE)},
+ {RUNE_C(0x001F08), RUNE_C(0x001F0F)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F28), RUNE_C(0x001F2F)},
+ {RUNE_C(0x001F38), RUNE_C(0x001F3F)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F5F)},
+ {RUNE_C(0x001F68), RUNE_C(0x001F6F)},
+ {RUNE_C(0x001F71), RUNE_C(0x001F71)},
+ {RUNE_C(0x001F73), RUNE_C(0x001F73)},
+ {RUNE_C(0x001F75), RUNE_C(0x001F75)},
+ {RUNE_C(0x001F77), RUNE_C(0x001F77)},
+ {RUNE_C(0x001F79), RUNE_C(0x001F79)},
+ {RUNE_C(0x001F7B), RUNE_C(0x001F7B)},
+ {RUNE_C(0x001F7D), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FAF)},
+ {RUNE_C(0x001FB2), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB7), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC7), RUNE_C(0x001FCF)},
+ {RUNE_C(0x001FD3), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD8), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FDD), RUNE_C(0x001FDF)},
+ {RUNE_C(0x001FE3), RUNE_C(0x001FE3)},
+ {RUNE_C(0x001FE8), RUNE_C(0x001FEF)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF7), RUNE_C(0x001FFE)},
+ {RUNE_C(0x002000), RUNE_C(0x00200F)},
+ {RUNE_C(0x002011), RUNE_C(0x002011)},
+ {RUNE_C(0x002017), RUNE_C(0x002017)},
+ {RUNE_C(0x002024), RUNE_C(0x002026)},
+ {RUNE_C(0x00202A), RUNE_C(0x00202F)},
+ {RUNE_C(0x002033), RUNE_C(0x002034)},
+ {RUNE_C(0x002036), RUNE_C(0x002037)},
+ {RUNE_C(0x00203C), RUNE_C(0x00203C)},
+ {RUNE_C(0x00203E), RUNE_C(0x00203E)},
+ {RUNE_C(0x002047), RUNE_C(0x002049)},
+ {RUNE_C(0x002057), RUNE_C(0x002057)},
+ {RUNE_C(0x00205F), RUNE_C(0x002071)},
+ {RUNE_C(0x002074), RUNE_C(0x00208E)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x0020A8), RUNE_C(0x0020A8)},
+ {RUNE_C(0x002100), RUNE_C(0x002103)},
+ {RUNE_C(0x002105), RUNE_C(0x002107)},
+ {RUNE_C(0x002109), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002116)},
+ {RUNE_C(0x002119), RUNE_C(0x00211D)},
+ {RUNE_C(0x002120), RUNE_C(0x002122)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x00212D)},
+ {RUNE_C(0x00212F), RUNE_C(0x002139)},
+ {RUNE_C(0x00213B), RUNE_C(0x002140)},
+ {RUNE_C(0x002145), RUNE_C(0x002149)},
+ {RUNE_C(0x002150), RUNE_C(0x00217F)},
+ {RUNE_C(0x002183), RUNE_C(0x002183)},
+ {RUNE_C(0x002189), RUNE_C(0x002189)},
+ {RUNE_C(0x00222C), RUNE_C(0x00222D)},
+ {RUNE_C(0x00222F), RUNE_C(0x002230)},
+ {RUNE_C(0x002329), RUNE_C(0x00232A)},
+ {RUNE_C(0x002460), RUNE_C(0x0024EA)},
+ {RUNE_C(0x002A0C), RUNE_C(0x002A0C)},
+ {RUNE_C(0x002A74), RUNE_C(0x002A76)},
+ {RUNE_C(0x002ADC), RUNE_C(0x002ADC)},
+ {RUNE_C(0x002C00), RUNE_C(0x002C2F)},
+ {RUNE_C(0x002C60), RUNE_C(0x002C60)},
+ {RUNE_C(0x002C62), RUNE_C(0x002C64)},
+ {RUNE_C(0x002C67), RUNE_C(0x002C67)},
+ {RUNE_C(0x002C69), RUNE_C(0x002C69)},
+ {RUNE_C(0x002C6B), RUNE_C(0x002C6B)},
+ {RUNE_C(0x002C6D), RUNE_C(0x002C70)},
+ {RUNE_C(0x002C72), RUNE_C(0x002C72)},
+ {RUNE_C(0x002C75), RUNE_C(0x002C75)},
+ {RUNE_C(0x002C7C), RUNE_C(0x002C80)},
+ {RUNE_C(0x002C82), RUNE_C(0x002C82)},
+ {RUNE_C(0x002C84), RUNE_C(0x002C84)},
+ {RUNE_C(0x002C86), RUNE_C(0x002C86)},
+ {RUNE_C(0x002C88), RUNE_C(0x002C88)},
+ {RUNE_C(0x002C8A), RUNE_C(0x002C8A)},
+ {RUNE_C(0x002C8C), RUNE_C(0x002C8C)},
+ {RUNE_C(0x002C8E), RUNE_C(0x002C8E)},
+ {RUNE_C(0x002C90), RUNE_C(0x002C90)},
+ {RUNE_C(0x002C92), RUNE_C(0x002C92)},
+ {RUNE_C(0x002C94), RUNE_C(0x002C94)},
+ {RUNE_C(0x002C96), RUNE_C(0x002C96)},
+ {RUNE_C(0x002C98), RUNE_C(0x002C98)},
+ {RUNE_C(0x002C9A), RUNE_C(0x002C9A)},
+ {RUNE_C(0x002C9C), RUNE_C(0x002C9C)},
+ {RUNE_C(0x002C9E), RUNE_C(0x002C9E)},
+ {RUNE_C(0x002CA0), RUNE_C(0x002CA0)},
+ {RUNE_C(0x002CA2), RUNE_C(0x002CA2)},
+ {RUNE_C(0x002CA4), RUNE_C(0x002CA4)},
+ {RUNE_C(0x002CA6), RUNE_C(0x002CA6)},
+ {RUNE_C(0x002CA8), RUNE_C(0x002CA8)},
+ {RUNE_C(0x002CAA), RUNE_C(0x002CAA)},
+ {RUNE_C(0x002CAC), RUNE_C(0x002CAC)},
+ {RUNE_C(0x002CAE), RUNE_C(0x002CAE)},
+ {RUNE_C(0x002CB0), RUNE_C(0x002CB0)},
+ {RUNE_C(0x002CB2), RUNE_C(0x002CB2)},
+ {RUNE_C(0x002CB4), RUNE_C(0x002CB4)},
+ {RUNE_C(0x002CB6), RUNE_C(0x002CB6)},
+ {RUNE_C(0x002CB8), RUNE_C(0x002CB8)},
+ {RUNE_C(0x002CBA), RUNE_C(0x002CBA)},
+ {RUNE_C(0x002CBC), RUNE_C(0x002CBC)},
+ {RUNE_C(0x002CBE), RUNE_C(0x002CBE)},
+ {RUNE_C(0x002CC0), RUNE_C(0x002CC0)},
+ {RUNE_C(0x002CC2), RUNE_C(0x002CC2)},
+ {RUNE_C(0x002CC4), RUNE_C(0x002CC4)},
+ {RUNE_C(0x002CC6), RUNE_C(0x002CC6)},
+ {RUNE_C(0x002CC8), RUNE_C(0x002CC8)},
+ {RUNE_C(0x002CCA), RUNE_C(0x002CCA)},
+ {RUNE_C(0x002CCC), RUNE_C(0x002CCC)},
+ {RUNE_C(0x002CCE), RUNE_C(0x002CCE)},
+ {RUNE_C(0x002CD0), RUNE_C(0x002CD0)},
+ {RUNE_C(0x002CD2), RUNE_C(0x002CD2)},
+ {RUNE_C(0x002CD4), RUNE_C(0x002CD4)},
+ {RUNE_C(0x002CD6), RUNE_C(0x002CD6)},
+ {RUNE_C(0x002CD8), RUNE_C(0x002CD8)},
+ {RUNE_C(0x002CDA), RUNE_C(0x002CDA)},
+ {RUNE_C(0x002CDC), RUNE_C(0x002CDC)},
+ {RUNE_C(0x002CDE), RUNE_C(0x002CDE)},
+ {RUNE_C(0x002CE0), RUNE_C(0x002CE0)},
+ {RUNE_C(0x002CE2), RUNE_C(0x002CE2)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEB)},
+ {RUNE_C(0x002CED), RUNE_C(0x002CED)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF2)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
+ {RUNE_C(0x002E9F), RUNE_C(0x002E9F)},
+ {RUNE_C(0x002EF3), RUNE_C(0x002EF3)},
+ {RUNE_C(0x002F00), RUNE_C(0x002FD5)},
+ {RUNE_C(0x003000), RUNE_C(0x003000)},
+ {RUNE_C(0x003036), RUNE_C(0x003036)},
+ {RUNE_C(0x003038), RUNE_C(0x00303A)},
+ {RUNE_C(0x00309B), RUNE_C(0x00309C)},
+ {RUNE_C(0x00309F), RUNE_C(0x00309F)},
+ {RUNE_C(0x0030FF), RUNE_C(0x0030FF)},
+ {RUNE_C(0x003131), RUNE_C(0x00318E)},
+ {RUNE_C(0x003192), RUNE_C(0x00319F)},
+ {RUNE_C(0x003200), RUNE_C(0x00321E)},
+ {RUNE_C(0x003220), RUNE_C(0x003247)},
+ {RUNE_C(0x003250), RUNE_C(0x00327E)},
+ {RUNE_C(0x003280), RUNE_C(0x0033FF)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A640)},
+ {RUNE_C(0x00A642), RUNE_C(0x00A642)},
+ {RUNE_C(0x00A644), RUNE_C(0x00A644)},
+ {RUNE_C(0x00A646), RUNE_C(0x00A646)},
+ {RUNE_C(0x00A648), RUNE_C(0x00A648)},
+ {RUNE_C(0x00A64A), RUNE_C(0x00A64A)},
+ {RUNE_C(0x00A64C), RUNE_C(0x00A64C)},
+ {RUNE_C(0x00A64E), RUNE_C(0x00A64E)},
+ {RUNE_C(0x00A650), RUNE_C(0x00A650)},
+ {RUNE_C(0x00A652), RUNE_C(0x00A652)},
+ {RUNE_C(0x00A654), RUNE_C(0x00A654)},
+ {RUNE_C(0x00A656), RUNE_C(0x00A656)},
+ {RUNE_C(0x00A658), RUNE_C(0x00A658)},
+ {RUNE_C(0x00A65A), RUNE_C(0x00A65A)},
+ {RUNE_C(0x00A65C), RUNE_C(0x00A65C)},
+ {RUNE_C(0x00A65E), RUNE_C(0x00A65E)},
+ {RUNE_C(0x00A660), RUNE_C(0x00A660)},
+ {RUNE_C(0x00A662), RUNE_C(0x00A662)},
+ {RUNE_C(0x00A664), RUNE_C(0x00A664)},
+ {RUNE_C(0x00A666), RUNE_C(0x00A666)},
+ {RUNE_C(0x00A668), RUNE_C(0x00A668)},
+ {RUNE_C(0x00A66A), RUNE_C(0x00A66A)},
+ {RUNE_C(0x00A66C), RUNE_C(0x00A66C)},
+ {RUNE_C(0x00A680), RUNE_C(0x00A680)},
+ {RUNE_C(0x00A682), RUNE_C(0x00A682)},
+ {RUNE_C(0x00A684), RUNE_C(0x00A684)},
+ {RUNE_C(0x00A686), RUNE_C(0x00A686)},
+ {RUNE_C(0x00A688), RUNE_C(0x00A688)},
+ {RUNE_C(0x00A68A), RUNE_C(0x00A68A)},
+ {RUNE_C(0x00A68C), RUNE_C(0x00A68C)},
+ {RUNE_C(0x00A68E), RUNE_C(0x00A68E)},
+ {RUNE_C(0x00A690), RUNE_C(0x00A690)},
+ {RUNE_C(0x00A692), RUNE_C(0x00A692)},
+ {RUNE_C(0x00A694), RUNE_C(0x00A694)},
+ {RUNE_C(0x00A696), RUNE_C(0x00A696)},
+ {RUNE_C(0x00A698), RUNE_C(0x00A698)},
+ {RUNE_C(0x00A69A), RUNE_C(0x00A69A)},
+ {RUNE_C(0x00A69C), RUNE_C(0x00A69D)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A722)},
+ {RUNE_C(0x00A724), RUNE_C(0x00A724)},
+ {RUNE_C(0x00A726), RUNE_C(0x00A726)},
+ {RUNE_C(0x00A728), RUNE_C(0x00A728)},
+ {RUNE_C(0x00A72A), RUNE_C(0x00A72A)},
+ {RUNE_C(0x00A72C), RUNE_C(0x00A72C)},
+ {RUNE_C(0x00A72E), RUNE_C(0x00A72E)},
+ {RUNE_C(0x00A732), RUNE_C(0x00A732)},
+ {RUNE_C(0x00A734), RUNE_C(0x00A734)},
+ {RUNE_C(0x00A736), RUNE_C(0x00A736)},
+ {RUNE_C(0x00A738), RUNE_C(0x00A738)},
+ {RUNE_C(0x00A73A), RUNE_C(0x00A73A)},
+ {RUNE_C(0x00A73C), RUNE_C(0x00A73C)},
+ {RUNE_C(0x00A73E), RUNE_C(0x00A73E)},
+ {RUNE_C(0x00A740), RUNE_C(0x00A740)},
+ {RUNE_C(0x00A742), RUNE_C(0x00A742)},
+ {RUNE_C(0x00A744), RUNE_C(0x00A744)},
+ {RUNE_C(0x00A746), RUNE_C(0x00A746)},
+ {RUNE_C(0x00A748), RUNE_C(0x00A748)},
+ {RUNE_C(0x00A74A), RUNE_C(0x00A74A)},
+ {RUNE_C(0x00A74C), RUNE_C(0x00A74C)},
+ {RUNE_C(0x00A74E), RUNE_C(0x00A74E)},
+ {RUNE_C(0x00A750), RUNE_C(0x00A750)},
+ {RUNE_C(0x00A752), RUNE_C(0x00A752)},
+ {RUNE_C(0x00A754), RUNE_C(0x00A754)},
+ {RUNE_C(0x00A756), RUNE_C(0x00A756)},
+ {RUNE_C(0x00A758), RUNE_C(0x00A758)},
+ {RUNE_C(0x00A75A), RUNE_C(0x00A75A)},
+ {RUNE_C(0x00A75C), RUNE_C(0x00A75C)},
+ {RUNE_C(0x00A75E), RUNE_C(0x00A75E)},
+ {RUNE_C(0x00A760), RUNE_C(0x00A760)},
+ {RUNE_C(0x00A762), RUNE_C(0x00A762)},
+ {RUNE_C(0x00A764), RUNE_C(0x00A764)},
+ {RUNE_C(0x00A766), RUNE_C(0x00A766)},
+ {RUNE_C(0x00A768), RUNE_C(0x00A768)},
+ {RUNE_C(0x00A76A), RUNE_C(0x00A76A)},
+ {RUNE_C(0x00A76C), RUNE_C(0x00A76C)},
+ {RUNE_C(0x00A76E), RUNE_C(0x00A76E)},
+ {RUNE_C(0x00A770), RUNE_C(0x00A770)},
+ {RUNE_C(0x00A779), RUNE_C(0x00A779)},
+ {RUNE_C(0x00A77B), RUNE_C(0x00A77B)},
+ {RUNE_C(0x00A77D), RUNE_C(0x00A77E)},
+ {RUNE_C(0x00A780), RUNE_C(0x00A780)},
+ {RUNE_C(0x00A782), RUNE_C(0x00A782)},
+ {RUNE_C(0x00A784), RUNE_C(0x00A784)},
+ {RUNE_C(0x00A786), RUNE_C(0x00A786)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A78B)},
+ {RUNE_C(0x00A78D), RUNE_C(0x00A78D)},
+ {RUNE_C(0x00A790), RUNE_C(0x00A790)},
+ {RUNE_C(0x00A792), RUNE_C(0x00A792)},
+ {RUNE_C(0x00A796), RUNE_C(0x00A796)},
+ {RUNE_C(0x00A798), RUNE_C(0x00A798)},
+ {RUNE_C(0x00A79A), RUNE_C(0x00A79A)},
+ {RUNE_C(0x00A79C), RUNE_C(0x00A79C)},
+ {RUNE_C(0x00A79E), RUNE_C(0x00A79E)},
+ {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)},
+ {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)},
+ {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)},
+ {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)},
+ {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)},
+ {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)},
+ {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)},
+ {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)},
+ {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)},
+ {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)},
+ {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)},
+ {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)},
+ {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)},
+ {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)},
+ {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)},
+ {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)},
+ {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)},
+ {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A7F5)},
+ {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB5F)},
+ {RUNE_C(0x00AB69), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA0D)},
+ {RUNE_C(0x00FA10), RUNE_C(0x00FA10)},
+ {RUNE_C(0x00FA12), RUNE_C(0x00FA12)},
+ {RUNE_C(0x00FA15), RUNE_C(0x00FA1E)},
+ {RUNE_C(0x00FA20), RUNE_C(0x00FA20)},
+ {RUNE_C(0x00FA22), RUNE_C(0x00FA22)},
+ {RUNE_C(0x00FA25), RUNE_C(0x00FA26)},
+ {RUNE_C(0x00FA2A), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)},
+ {RUNE_C(0x00FB1F), RUNE_C(0x00FB36)},
+ {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)},
+ {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)},
+ {RUNE_C(0x00FB40), RUNE_C(0x00FB41)},
+ {RUNE_C(0x00FB43), RUNE_C(0x00FB44)},
+ {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)},
+ {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)},
+ {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)},
+ {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)},
+ {RUNE_C(0x00FDF0), RUNE_C(0x00FDFC)},
+ {RUNE_C(0x00FE00), RUNE_C(0x00FE19)},
+ {RUNE_C(0x00FE30), RUNE_C(0x00FE44)},
+ {RUNE_C(0x00FE47), RUNE_C(0x00FE52)},
+ {RUNE_C(0x00FE54), RUNE_C(0x00FE66)},
+ {RUNE_C(0x00FE68), RUNE_C(0x00FE6B)},
+ {RUNE_C(0x00FE70), RUNE_C(0x00FE72)},
+ {RUNE_C(0x00FE74), RUNE_C(0x00FE74)},
+ {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)},
+ {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)},
+ {RUNE_C(0x00FF01), RUNE_C(0x00FFBE)},
+ {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)},
+ {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)},
+ {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)},
+ {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)},
+ {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6)},
+ {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE)},
+ {RUNE_C(0x00FFF0), RUNE_C(0x00FFF8)},
+ {RUNE_C(0x010400), RUNE_C(0x010427)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010781), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118BF)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E5F)},
+ {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)},
+ {RUNE_C(0x01D15E), RUNE_C(0x01D164)},
+ {RUNE_C(0x01D173), RUNE_C(0x01D17A)},
+ {RUNE_C(0x01D1BB), RUNE_C(0x01D1C0)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E921)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x01F100), RUNE_C(0x01F10A)},
+ {RUNE_C(0x01F110), RUNE_C(0x01F12E)},
+ {RUNE_C(0x01F130), RUNE_C(0x01F14F)},
+ {RUNE_C(0x01F16A), RUNE_C(0x01F16C)},
+ {RUNE_C(0x01F190), RUNE_C(0x01F190)},
+ {RUNE_C(0x01F200), RUNE_C(0x01F202)},
+ {RUNE_C(0x01F210), RUNE_C(0x01F23B)},
+ {RUNE_C(0x01F240), RUNE_C(0x01F248)},
+ {RUNE_C(0x01F250), RUNE_C(0x01F251)},
+ {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x0E0000), RUNE_C(0x0E0FFF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_cwkcf(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_cwl.c b/lib/unicode/prop/uprop_is_cwl.c
new file mode 100644
index 0000000..5232692
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_cwl.c
@@ -0,0 +1,634 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x000100)},
+ {RUNE_C(0x000102), RUNE_C(0x000102)},
+ {RUNE_C(0x000104), RUNE_C(0x000104)},
+ {RUNE_C(0x000106), RUNE_C(0x000106)},
+ {RUNE_C(0x000108), RUNE_C(0x000108)},
+ {RUNE_C(0x00010A), RUNE_C(0x00010A)},
+ {RUNE_C(0x00010C), RUNE_C(0x00010C)},
+ {RUNE_C(0x00010E), RUNE_C(0x00010E)},
+ {RUNE_C(0x000110), RUNE_C(0x000110)},
+ {RUNE_C(0x000112), RUNE_C(0x000112)},
+ {RUNE_C(0x000114), RUNE_C(0x000114)},
+ {RUNE_C(0x000116), RUNE_C(0x000116)},
+ {RUNE_C(0x000118), RUNE_C(0x000118)},
+ {RUNE_C(0x00011A), RUNE_C(0x00011A)},
+ {RUNE_C(0x00011C), RUNE_C(0x00011C)},
+ {RUNE_C(0x00011E), RUNE_C(0x00011E)},
+ {RUNE_C(0x000120), RUNE_C(0x000120)},
+ {RUNE_C(0x000122), RUNE_C(0x000122)},
+ {RUNE_C(0x000124), RUNE_C(0x000124)},
+ {RUNE_C(0x000126), RUNE_C(0x000126)},
+ {RUNE_C(0x000128), RUNE_C(0x000128)},
+ {RUNE_C(0x00012A), RUNE_C(0x00012A)},
+ {RUNE_C(0x00012C), RUNE_C(0x00012C)},
+ {RUNE_C(0x00012E), RUNE_C(0x00012E)},
+ {RUNE_C(0x000130), RUNE_C(0x000130)},
+ {RUNE_C(0x000132), RUNE_C(0x000132)},
+ {RUNE_C(0x000134), RUNE_C(0x000134)},
+ {RUNE_C(0x000136), RUNE_C(0x000136)},
+ {RUNE_C(0x000139), RUNE_C(0x000139)},
+ {RUNE_C(0x00013B), RUNE_C(0x00013B)},
+ {RUNE_C(0x00013D), RUNE_C(0x00013D)},
+ {RUNE_C(0x00013F), RUNE_C(0x00013F)},
+ {RUNE_C(0x000141), RUNE_C(0x000141)},
+ {RUNE_C(0x000143), RUNE_C(0x000143)},
+ {RUNE_C(0x000145), RUNE_C(0x000145)},
+ {RUNE_C(0x000147), RUNE_C(0x000147)},
+ {RUNE_C(0x00014A), RUNE_C(0x00014A)},
+ {RUNE_C(0x00014C), RUNE_C(0x00014C)},
+ {RUNE_C(0x00014E), RUNE_C(0x00014E)},
+ {RUNE_C(0x000150), RUNE_C(0x000150)},
+ {RUNE_C(0x000152), RUNE_C(0x000152)},
+ {RUNE_C(0x000154), RUNE_C(0x000154)},
+ {RUNE_C(0x000156), RUNE_C(0x000156)},
+ {RUNE_C(0x000158), RUNE_C(0x000158)},
+ {RUNE_C(0x00015A), RUNE_C(0x00015A)},
+ {RUNE_C(0x00015C), RUNE_C(0x00015C)},
+ {RUNE_C(0x00015E), RUNE_C(0x00015E)},
+ {RUNE_C(0x000160), RUNE_C(0x000160)},
+ {RUNE_C(0x000162), RUNE_C(0x000162)},
+ {RUNE_C(0x000164), RUNE_C(0x000164)},
+ {RUNE_C(0x000166), RUNE_C(0x000166)},
+ {RUNE_C(0x000168), RUNE_C(0x000168)},
+ {RUNE_C(0x00016A), RUNE_C(0x00016A)},
+ {RUNE_C(0x00016C), RUNE_C(0x00016C)},
+ {RUNE_C(0x00016E), RUNE_C(0x00016E)},
+ {RUNE_C(0x000170), RUNE_C(0x000170)},
+ {RUNE_C(0x000172), RUNE_C(0x000172)},
+ {RUNE_C(0x000174), RUNE_C(0x000174)},
+ {RUNE_C(0x000176), RUNE_C(0x000176)},
+ {RUNE_C(0x000178), RUNE_C(0x000179)},
+ {RUNE_C(0x00017B), RUNE_C(0x00017B)},
+ {RUNE_C(0x00017D), RUNE_C(0x00017D)},
+ {RUNE_C(0x000181), RUNE_C(0x000182)},
+ {RUNE_C(0x000184), RUNE_C(0x000184)},
+ {RUNE_C(0x000186), RUNE_C(0x000187)},
+ {RUNE_C(0x000189), RUNE_C(0x00018B)},
+ {RUNE_C(0x00018E), RUNE_C(0x000191)},
+ {RUNE_C(0x000193), RUNE_C(0x000194)},
+ {RUNE_C(0x000196), RUNE_C(0x000198)},
+ {RUNE_C(0x00019C), RUNE_C(0x00019D)},
+ {RUNE_C(0x00019F), RUNE_C(0x0001A0)},
+ {RUNE_C(0x0001A2), RUNE_C(0x0001A2)},
+ {RUNE_C(0x0001A4), RUNE_C(0x0001A4)},
+ {RUNE_C(0x0001A6), RUNE_C(0x0001A7)},
+ {RUNE_C(0x0001A9), RUNE_C(0x0001A9)},
+ {RUNE_C(0x0001AC), RUNE_C(0x0001AC)},
+ {RUNE_C(0x0001AE), RUNE_C(0x0001AF)},
+ {RUNE_C(0x0001B1), RUNE_C(0x0001B3)},
+ {RUNE_C(0x0001B5), RUNE_C(0x0001B5)},
+ {RUNE_C(0x0001B7), RUNE_C(0x0001B8)},
+ {RUNE_C(0x0001BC), RUNE_C(0x0001BC)},
+ {RUNE_C(0x0001C4), RUNE_C(0x0001C5)},
+ {RUNE_C(0x0001C7), RUNE_C(0x0001C8)},
+ {RUNE_C(0x0001CA), RUNE_C(0x0001CB)},
+ {RUNE_C(0x0001CD), RUNE_C(0x0001CD)},
+ {RUNE_C(0x0001CF), RUNE_C(0x0001CF)},
+ {RUNE_C(0x0001D1), RUNE_C(0x0001D1)},
+ {RUNE_C(0x0001D3), RUNE_C(0x0001D3)},
+ {RUNE_C(0x0001D5), RUNE_C(0x0001D5)},
+ {RUNE_C(0x0001D7), RUNE_C(0x0001D7)},
+ {RUNE_C(0x0001D9), RUNE_C(0x0001D9)},
+ {RUNE_C(0x0001DB), RUNE_C(0x0001DB)},
+ {RUNE_C(0x0001DE), RUNE_C(0x0001DE)},
+ {RUNE_C(0x0001E0), RUNE_C(0x0001E0)},
+ {RUNE_C(0x0001E2), RUNE_C(0x0001E2)},
+ {RUNE_C(0x0001E4), RUNE_C(0x0001E4)},
+ {RUNE_C(0x0001E6), RUNE_C(0x0001E6)},
+ {RUNE_C(0x0001E8), RUNE_C(0x0001E8)},
+ {RUNE_C(0x0001EA), RUNE_C(0x0001EA)},
+ {RUNE_C(0x0001EC), RUNE_C(0x0001EC)},
+ {RUNE_C(0x0001EE), RUNE_C(0x0001EE)},
+ {RUNE_C(0x0001F1), RUNE_C(0x0001F2)},
+ {RUNE_C(0x0001F4), RUNE_C(0x0001F4)},
+ {RUNE_C(0x0001F6), RUNE_C(0x0001F8)},
+ {RUNE_C(0x0001FA), RUNE_C(0x0001FA)},
+ {RUNE_C(0x0001FC), RUNE_C(0x0001FC)},
+ {RUNE_C(0x0001FE), RUNE_C(0x0001FE)},
+ {RUNE_C(0x000200), RUNE_C(0x000200)},
+ {RUNE_C(0x000202), RUNE_C(0x000202)},
+ {RUNE_C(0x000204), RUNE_C(0x000204)},
+ {RUNE_C(0x000206), RUNE_C(0x000206)},
+ {RUNE_C(0x000208), RUNE_C(0x000208)},
+ {RUNE_C(0x00020A), RUNE_C(0x00020A)},
+ {RUNE_C(0x00020C), RUNE_C(0x00020C)},
+ {RUNE_C(0x00020E), RUNE_C(0x00020E)},
+ {RUNE_C(0x000210), RUNE_C(0x000210)},
+ {RUNE_C(0x000212), RUNE_C(0x000212)},
+ {RUNE_C(0x000214), RUNE_C(0x000214)},
+ {RUNE_C(0x000216), RUNE_C(0x000216)},
+ {RUNE_C(0x000218), RUNE_C(0x000218)},
+ {RUNE_C(0x00021A), RUNE_C(0x00021A)},
+ {RUNE_C(0x00021C), RUNE_C(0x00021C)},
+ {RUNE_C(0x00021E), RUNE_C(0x00021E)},
+ {RUNE_C(0x000220), RUNE_C(0x000220)},
+ {RUNE_C(0x000222), RUNE_C(0x000222)},
+ {RUNE_C(0x000224), RUNE_C(0x000224)},
+ {RUNE_C(0x000226), RUNE_C(0x000226)},
+ {RUNE_C(0x000228), RUNE_C(0x000228)},
+ {RUNE_C(0x00022A), RUNE_C(0x00022A)},
+ {RUNE_C(0x00022C), RUNE_C(0x00022C)},
+ {RUNE_C(0x00022E), RUNE_C(0x00022E)},
+ {RUNE_C(0x000230), RUNE_C(0x000230)},
+ {RUNE_C(0x000232), RUNE_C(0x000232)},
+ {RUNE_C(0x00023A), RUNE_C(0x00023B)},
+ {RUNE_C(0x00023D), RUNE_C(0x00023E)},
+ {RUNE_C(0x000241), RUNE_C(0x000241)},
+ {RUNE_C(0x000243), RUNE_C(0x000246)},
+ {RUNE_C(0x000248), RUNE_C(0x000248)},
+ {RUNE_C(0x00024A), RUNE_C(0x00024A)},
+ {RUNE_C(0x00024C), RUNE_C(0x00024C)},
+ {RUNE_C(0x00024E), RUNE_C(0x00024E)},
+ {RUNE_C(0x000370), RUNE_C(0x000370)},
+ {RUNE_C(0x000372), RUNE_C(0x000372)},
+ {RUNE_C(0x000376), RUNE_C(0x000376)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x00038F)},
+ {RUNE_C(0x000391), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003AB)},
+ {RUNE_C(0x0003CF), RUNE_C(0x0003CF)},
+ {RUNE_C(0x0003D8), RUNE_C(0x0003D8)},
+ {RUNE_C(0x0003DA), RUNE_C(0x0003DA)},
+ {RUNE_C(0x0003DC), RUNE_C(0x0003DC)},
+ {RUNE_C(0x0003DE), RUNE_C(0x0003DE)},
+ {RUNE_C(0x0003E0), RUNE_C(0x0003E0)},
+ {RUNE_C(0x0003E2), RUNE_C(0x0003E2)},
+ {RUNE_C(0x0003E4), RUNE_C(0x0003E4)},
+ {RUNE_C(0x0003E6), RUNE_C(0x0003E6)},
+ {RUNE_C(0x0003E8), RUNE_C(0x0003E8)},
+ {RUNE_C(0x0003EA), RUNE_C(0x0003EA)},
+ {RUNE_C(0x0003EC), RUNE_C(0x0003EC)},
+ {RUNE_C(0x0003EE), RUNE_C(0x0003EE)},
+ {RUNE_C(0x0003F4), RUNE_C(0x0003F4)},
+ {RUNE_C(0x0003F7), RUNE_C(0x0003F7)},
+ {RUNE_C(0x0003F9), RUNE_C(0x0003FA)},
+ {RUNE_C(0x0003FD), RUNE_C(0x00042F)},
+ {RUNE_C(0x000460), RUNE_C(0x000460)},
+ {RUNE_C(0x000462), RUNE_C(0x000462)},
+ {RUNE_C(0x000464), RUNE_C(0x000464)},
+ {RUNE_C(0x000466), RUNE_C(0x000466)},
+ {RUNE_C(0x000468), RUNE_C(0x000468)},
+ {RUNE_C(0x00046A), RUNE_C(0x00046A)},
+ {RUNE_C(0x00046C), RUNE_C(0x00046C)},
+ {RUNE_C(0x00046E), RUNE_C(0x00046E)},
+ {RUNE_C(0x000470), RUNE_C(0x000470)},
+ {RUNE_C(0x000472), RUNE_C(0x000472)},
+ {RUNE_C(0x000474), RUNE_C(0x000474)},
+ {RUNE_C(0x000476), RUNE_C(0x000476)},
+ {RUNE_C(0x000478), RUNE_C(0x000478)},
+ {RUNE_C(0x00047A), RUNE_C(0x00047A)},
+ {RUNE_C(0x00047C), RUNE_C(0x00047C)},
+ {RUNE_C(0x00047E), RUNE_C(0x00047E)},
+ {RUNE_C(0x000480), RUNE_C(0x000480)},
+ {RUNE_C(0x00048A), RUNE_C(0x00048A)},
+ {RUNE_C(0x00048C), RUNE_C(0x00048C)},
+ {RUNE_C(0x00048E), RUNE_C(0x00048E)},
+ {RUNE_C(0x000490), RUNE_C(0x000490)},
+ {RUNE_C(0x000492), RUNE_C(0x000492)},
+ {RUNE_C(0x000494), RUNE_C(0x000494)},
+ {RUNE_C(0x000496), RUNE_C(0x000496)},
+ {RUNE_C(0x000498), RUNE_C(0x000498)},
+ {RUNE_C(0x00049A), RUNE_C(0x00049A)},
+ {RUNE_C(0x00049C), RUNE_C(0x00049C)},
+ {RUNE_C(0x00049E), RUNE_C(0x00049E)},
+ {RUNE_C(0x0004A0), RUNE_C(0x0004A0)},
+ {RUNE_C(0x0004A2), RUNE_C(0x0004A2)},
+ {RUNE_C(0x0004A4), RUNE_C(0x0004A4)},
+ {RUNE_C(0x0004A6), RUNE_C(0x0004A6)},
+ {RUNE_C(0x0004A8), RUNE_C(0x0004A8)},
+ {RUNE_C(0x0004AA), RUNE_C(0x0004AA)},
+ {RUNE_C(0x0004AC), RUNE_C(0x0004AC)},
+ {RUNE_C(0x0004AE), RUNE_C(0x0004AE)},
+ {RUNE_C(0x0004B0), RUNE_C(0x0004B0)},
+ {RUNE_C(0x0004B2), RUNE_C(0x0004B2)},
+ {RUNE_C(0x0004B4), RUNE_C(0x0004B4)},
+ {RUNE_C(0x0004B6), RUNE_C(0x0004B6)},
+ {RUNE_C(0x0004B8), RUNE_C(0x0004B8)},
+ {RUNE_C(0x0004BA), RUNE_C(0x0004BA)},
+ {RUNE_C(0x0004BC), RUNE_C(0x0004BC)},
+ {RUNE_C(0x0004BE), RUNE_C(0x0004BE)},
+ {RUNE_C(0x0004C0), RUNE_C(0x0004C1)},
+ {RUNE_C(0x0004C3), RUNE_C(0x0004C3)},
+ {RUNE_C(0x0004C5), RUNE_C(0x0004C5)},
+ {RUNE_C(0x0004C7), RUNE_C(0x0004C7)},
+ {RUNE_C(0x0004C9), RUNE_C(0x0004C9)},
+ {RUNE_C(0x0004CB), RUNE_C(0x0004CB)},
+ {RUNE_C(0x0004CD), RUNE_C(0x0004CD)},
+ {RUNE_C(0x0004D0), RUNE_C(0x0004D0)},
+ {RUNE_C(0x0004D2), RUNE_C(0x0004D2)},
+ {RUNE_C(0x0004D4), RUNE_C(0x0004D4)},
+ {RUNE_C(0x0004D6), RUNE_C(0x0004D6)},
+ {RUNE_C(0x0004D8), RUNE_C(0x0004D8)},
+ {RUNE_C(0x0004DA), RUNE_C(0x0004DA)},
+ {RUNE_C(0x0004DC), RUNE_C(0x0004DC)},
+ {RUNE_C(0x0004DE), RUNE_C(0x0004DE)},
+ {RUNE_C(0x0004E0), RUNE_C(0x0004E0)},
+ {RUNE_C(0x0004E2), RUNE_C(0x0004E2)},
+ {RUNE_C(0x0004E4), RUNE_C(0x0004E4)},
+ {RUNE_C(0x0004E6), RUNE_C(0x0004E6)},
+ {RUNE_C(0x0004E8), RUNE_C(0x0004E8)},
+ {RUNE_C(0x0004EA), RUNE_C(0x0004EA)},
+ {RUNE_C(0x0004EC), RUNE_C(0x0004EC)},
+ {RUNE_C(0x0004EE), RUNE_C(0x0004EE)},
+ {RUNE_C(0x0004F0), RUNE_C(0x0004F0)},
+ {RUNE_C(0x0004F2), RUNE_C(0x0004F2)},
+ {RUNE_C(0x0004F4), RUNE_C(0x0004F4)},
+ {RUNE_C(0x0004F6), RUNE_C(0x0004F6)},
+ {RUNE_C(0x0004F8), RUNE_C(0x0004F8)},
+ {RUNE_C(0x0004FA), RUNE_C(0x0004FA)},
+ {RUNE_C(0x0004FC), RUNE_C(0x0004FC)},
+ {RUNE_C(0x0004FE), RUNE_C(0x0004FE)},
+ {RUNE_C(0x000500), RUNE_C(0x000500)},
+ {RUNE_C(0x000502), RUNE_C(0x000502)},
+ {RUNE_C(0x000504), RUNE_C(0x000504)},
+ {RUNE_C(0x000506), RUNE_C(0x000506)},
+ {RUNE_C(0x000508), RUNE_C(0x000508)},
+ {RUNE_C(0x00050A), RUNE_C(0x00050A)},
+ {RUNE_C(0x00050C), RUNE_C(0x00050C)},
+ {RUNE_C(0x00050E), RUNE_C(0x00050E)},
+ {RUNE_C(0x000510), RUNE_C(0x000510)},
+ {RUNE_C(0x000512), RUNE_C(0x000512)},
+ {RUNE_C(0x000514), RUNE_C(0x000514)},
+ {RUNE_C(0x000516), RUNE_C(0x000516)},
+ {RUNE_C(0x000518), RUNE_C(0x000518)},
+ {RUNE_C(0x00051A), RUNE_C(0x00051A)},
+ {RUNE_C(0x00051C), RUNE_C(0x00051C)},
+ {RUNE_C(0x00051E), RUNE_C(0x00051E)},
+ {RUNE_C(0x000520), RUNE_C(0x000520)},
+ {RUNE_C(0x000522), RUNE_C(0x000522)},
+ {RUNE_C(0x000524), RUNE_C(0x000524)},
+ {RUNE_C(0x000526), RUNE_C(0x000526)},
+ {RUNE_C(0x000528), RUNE_C(0x000528)},
+ {RUNE_C(0x00052A), RUNE_C(0x00052A)},
+ {RUNE_C(0x00052C), RUNE_C(0x00052C)},
+ {RUNE_C(0x00052E), RUNE_C(0x00052E)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001E00)},
+ {RUNE_C(0x001E02), RUNE_C(0x001E02)},
+ {RUNE_C(0x001E04), RUNE_C(0x001E04)},
+ {RUNE_C(0x001E06), RUNE_C(0x001E06)},
+ {RUNE_C(0x001E08), RUNE_C(0x001E08)},
+ {RUNE_C(0x001E0A), RUNE_C(0x001E0A)},
+ {RUNE_C(0x001E0C), RUNE_C(0x001E0C)},
+ {RUNE_C(0x001E0E), RUNE_C(0x001E0E)},
+ {RUNE_C(0x001E10), RUNE_C(0x001E10)},
+ {RUNE_C(0x001E12), RUNE_C(0x001E12)},
+ {RUNE_C(0x001E14), RUNE_C(0x001E14)},
+ {RUNE_C(0x001E16), RUNE_C(0x001E16)},
+ {RUNE_C(0x001E18), RUNE_C(0x001E18)},
+ {RUNE_C(0x001E1A), RUNE_C(0x001E1A)},
+ {RUNE_C(0x001E1C), RUNE_C(0x001E1C)},
+ {RUNE_C(0x001E1E), RUNE_C(0x001E1E)},
+ {RUNE_C(0x001E20), RUNE_C(0x001E20)},
+ {RUNE_C(0x001E22), RUNE_C(0x001E22)},
+ {RUNE_C(0x001E24), RUNE_C(0x001E24)},
+ {RUNE_C(0x001E26), RUNE_C(0x001E26)},
+ {RUNE_C(0x001E28), RUNE_C(0x001E28)},
+ {RUNE_C(0x001E2A), RUNE_C(0x001E2A)},
+ {RUNE_C(0x001E2C), RUNE_C(0x001E2C)},
+ {RUNE_C(0x001E2E), RUNE_C(0x001E2E)},
+ {RUNE_C(0x001E30), RUNE_C(0x001E30)},
+ {RUNE_C(0x001E32), RUNE_C(0x001E32)},
+ {RUNE_C(0x001E34), RUNE_C(0x001E34)},
+ {RUNE_C(0x001E36), RUNE_C(0x001E36)},
+ {RUNE_C(0x001E38), RUNE_C(0x001E38)},
+ {RUNE_C(0x001E3A), RUNE_C(0x001E3A)},
+ {RUNE_C(0x001E3C), RUNE_C(0x001E3C)},
+ {RUNE_C(0x001E3E), RUNE_C(0x001E3E)},
+ {RUNE_C(0x001E40), RUNE_C(0x001E40)},
+ {RUNE_C(0x001E42), RUNE_C(0x001E42)},
+ {RUNE_C(0x001E44), RUNE_C(0x001E44)},
+ {RUNE_C(0x001E46), RUNE_C(0x001E46)},
+ {RUNE_C(0x001E48), RUNE_C(0x001E48)},
+ {RUNE_C(0x001E4A), RUNE_C(0x001E4A)},
+ {RUNE_C(0x001E4C), RUNE_C(0x001E4C)},
+ {RUNE_C(0x001E4E), RUNE_C(0x001E4E)},
+ {RUNE_C(0x001E50), RUNE_C(0x001E50)},
+ {RUNE_C(0x001E52), RUNE_C(0x001E52)},
+ {RUNE_C(0x001E54), RUNE_C(0x001E54)},
+ {RUNE_C(0x001E56), RUNE_C(0x001E56)},
+ {RUNE_C(0x001E58), RUNE_C(0x001E58)},
+ {RUNE_C(0x001E5A), RUNE_C(0x001E5A)},
+ {RUNE_C(0x001E5C), RUNE_C(0x001E5C)},
+ {RUNE_C(0x001E5E), RUNE_C(0x001E5E)},
+ {RUNE_C(0x001E60), RUNE_C(0x001E60)},
+ {RUNE_C(0x001E62), RUNE_C(0x001E62)},
+ {RUNE_C(0x001E64), RUNE_C(0x001E64)},
+ {RUNE_C(0x001E66), RUNE_C(0x001E66)},
+ {RUNE_C(0x001E68), RUNE_C(0x001E68)},
+ {RUNE_C(0x001E6A), RUNE_C(0x001E6A)},
+ {RUNE_C(0x001E6C), RUNE_C(0x001E6C)},
+ {RUNE_C(0x001E6E), RUNE_C(0x001E6E)},
+ {RUNE_C(0x001E70), RUNE_C(0x001E70)},
+ {RUNE_C(0x001E72), RUNE_C(0x001E72)},
+ {RUNE_C(0x001E74), RUNE_C(0x001E74)},
+ {RUNE_C(0x001E76), RUNE_C(0x001E76)},
+ {RUNE_C(0x001E78), RUNE_C(0x001E78)},
+ {RUNE_C(0x001E7A), RUNE_C(0x001E7A)},
+ {RUNE_C(0x001E7C), RUNE_C(0x001E7C)},
+ {RUNE_C(0x001E7E), RUNE_C(0x001E7E)},
+ {RUNE_C(0x001E80), RUNE_C(0x001E80)},
+ {RUNE_C(0x001E82), RUNE_C(0x001E82)},
+ {RUNE_C(0x001E84), RUNE_C(0x001E84)},
+ {RUNE_C(0x001E86), RUNE_C(0x001E86)},
+ {RUNE_C(0x001E88), RUNE_C(0x001E88)},
+ {RUNE_C(0x001E8A), RUNE_C(0x001E8A)},
+ {RUNE_C(0x001E8C), RUNE_C(0x001E8C)},
+ {RUNE_C(0x001E8E), RUNE_C(0x001E8E)},
+ {RUNE_C(0x001E90), RUNE_C(0x001E90)},
+ {RUNE_C(0x001E92), RUNE_C(0x001E92)},
+ {RUNE_C(0x001E94), RUNE_C(0x001E94)},
+ {RUNE_C(0x001E9E), RUNE_C(0x001E9E)},
+ {RUNE_C(0x001EA0), RUNE_C(0x001EA0)},
+ {RUNE_C(0x001EA2), RUNE_C(0x001EA2)},
+ {RUNE_C(0x001EA4), RUNE_C(0x001EA4)},
+ {RUNE_C(0x001EA6), RUNE_C(0x001EA6)},
+ {RUNE_C(0x001EA8), RUNE_C(0x001EA8)},
+ {RUNE_C(0x001EAA), RUNE_C(0x001EAA)},
+ {RUNE_C(0x001EAC), RUNE_C(0x001EAC)},
+ {RUNE_C(0x001EAE), RUNE_C(0x001EAE)},
+ {RUNE_C(0x001EB0), RUNE_C(0x001EB0)},
+ {RUNE_C(0x001EB2), RUNE_C(0x001EB2)},
+ {RUNE_C(0x001EB4), RUNE_C(0x001EB4)},
+ {RUNE_C(0x001EB6), RUNE_C(0x001EB6)},
+ {RUNE_C(0x001EB8), RUNE_C(0x001EB8)},
+ {RUNE_C(0x001EBA), RUNE_C(0x001EBA)},
+ {RUNE_C(0x001EBC), RUNE_C(0x001EBC)},
+ {RUNE_C(0x001EBE), RUNE_C(0x001EBE)},
+ {RUNE_C(0x001EC0), RUNE_C(0x001EC0)},
+ {RUNE_C(0x001EC2), RUNE_C(0x001EC2)},
+ {RUNE_C(0x001EC4), RUNE_C(0x001EC4)},
+ {RUNE_C(0x001EC6), RUNE_C(0x001EC6)},
+ {RUNE_C(0x001EC8), RUNE_C(0x001EC8)},
+ {RUNE_C(0x001ECA), RUNE_C(0x001ECA)},
+ {RUNE_C(0x001ECC), RUNE_C(0x001ECC)},
+ {RUNE_C(0x001ECE), RUNE_C(0x001ECE)},
+ {RUNE_C(0x001ED0), RUNE_C(0x001ED0)},
+ {RUNE_C(0x001ED2), RUNE_C(0x001ED2)},
+ {RUNE_C(0x001ED4), RUNE_C(0x001ED4)},
+ {RUNE_C(0x001ED6), RUNE_C(0x001ED6)},
+ {RUNE_C(0x001ED8), RUNE_C(0x001ED8)},
+ {RUNE_C(0x001EDA), RUNE_C(0x001EDA)},
+ {RUNE_C(0x001EDC), RUNE_C(0x001EDC)},
+ {RUNE_C(0x001EDE), RUNE_C(0x001EDE)},
+ {RUNE_C(0x001EE0), RUNE_C(0x001EE0)},
+ {RUNE_C(0x001EE2), RUNE_C(0x001EE2)},
+ {RUNE_C(0x001EE4), RUNE_C(0x001EE4)},
+ {RUNE_C(0x001EE6), RUNE_C(0x001EE6)},
+ {RUNE_C(0x001EE8), RUNE_C(0x001EE8)},
+ {RUNE_C(0x001EEA), RUNE_C(0x001EEA)},
+ {RUNE_C(0x001EEC), RUNE_C(0x001EEC)},
+ {RUNE_C(0x001EEE), RUNE_C(0x001EEE)},
+ {RUNE_C(0x001EF0), RUNE_C(0x001EF0)},
+ {RUNE_C(0x001EF2), RUNE_C(0x001EF2)},
+ {RUNE_C(0x001EF4), RUNE_C(0x001EF4)},
+ {RUNE_C(0x001EF6), RUNE_C(0x001EF6)},
+ {RUNE_C(0x001EF8), RUNE_C(0x001EF8)},
+ {RUNE_C(0x001EFA), RUNE_C(0x001EFA)},
+ {RUNE_C(0x001EFC), RUNE_C(0x001EFC)},
+ {RUNE_C(0x001EFE), RUNE_C(0x001EFE)},
+ {RUNE_C(0x001F08), RUNE_C(0x001F0F)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F28), RUNE_C(0x001F2F)},
+ {RUNE_C(0x001F38), RUNE_C(0x001F3F)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F5F)},
+ {RUNE_C(0x001F68), RUNE_C(0x001F6F)},
+ {RUNE_C(0x001F88), RUNE_C(0x001F8F)},
+ {RUNE_C(0x001F98), RUNE_C(0x001F9F)},
+ {RUNE_C(0x001FA8), RUNE_C(0x001FAF)},
+ {RUNE_C(0x001FB8), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FC8), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD8), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE8), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF8), RUNE_C(0x001FFC)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x00212A), RUNE_C(0x00212B)},
+ {RUNE_C(0x002132), RUNE_C(0x002132)},
+ {RUNE_C(0x002160), RUNE_C(0x00216F)},
+ {RUNE_C(0x002183), RUNE_C(0x002183)},
+ {RUNE_C(0x0024B6), RUNE_C(0x0024CF)},
+ {RUNE_C(0x002C00), RUNE_C(0x002C2F)},
+ {RUNE_C(0x002C60), RUNE_C(0x002C60)},
+ {RUNE_C(0x002C62), RUNE_C(0x002C64)},
+ {RUNE_C(0x002C67), RUNE_C(0x002C67)},
+ {RUNE_C(0x002C69), RUNE_C(0x002C69)},
+ {RUNE_C(0x002C6B), RUNE_C(0x002C6B)},
+ {RUNE_C(0x002C6D), RUNE_C(0x002C70)},
+ {RUNE_C(0x002C72), RUNE_C(0x002C72)},
+ {RUNE_C(0x002C75), RUNE_C(0x002C75)},
+ {RUNE_C(0x002C7E), RUNE_C(0x002C80)},
+ {RUNE_C(0x002C82), RUNE_C(0x002C82)},
+ {RUNE_C(0x002C84), RUNE_C(0x002C84)},
+ {RUNE_C(0x002C86), RUNE_C(0x002C86)},
+ {RUNE_C(0x002C88), RUNE_C(0x002C88)},
+ {RUNE_C(0x002C8A), RUNE_C(0x002C8A)},
+ {RUNE_C(0x002C8C), RUNE_C(0x002C8C)},
+ {RUNE_C(0x002C8E), RUNE_C(0x002C8E)},
+ {RUNE_C(0x002C90), RUNE_C(0x002C90)},
+ {RUNE_C(0x002C92), RUNE_C(0x002C92)},
+ {RUNE_C(0x002C94), RUNE_C(0x002C94)},
+ {RUNE_C(0x002C96), RUNE_C(0x002C96)},
+ {RUNE_C(0x002C98), RUNE_C(0x002C98)},
+ {RUNE_C(0x002C9A), RUNE_C(0x002C9A)},
+ {RUNE_C(0x002C9C), RUNE_C(0x002C9C)},
+ {RUNE_C(0x002C9E), RUNE_C(0x002C9E)},
+ {RUNE_C(0x002CA0), RUNE_C(0x002CA0)},
+ {RUNE_C(0x002CA2), RUNE_C(0x002CA2)},
+ {RUNE_C(0x002CA4), RUNE_C(0x002CA4)},
+ {RUNE_C(0x002CA6), RUNE_C(0x002CA6)},
+ {RUNE_C(0x002CA8), RUNE_C(0x002CA8)},
+ {RUNE_C(0x002CAA), RUNE_C(0x002CAA)},
+ {RUNE_C(0x002CAC), RUNE_C(0x002CAC)},
+ {RUNE_C(0x002CAE), RUNE_C(0x002CAE)},
+ {RUNE_C(0x002CB0), RUNE_C(0x002CB0)},
+ {RUNE_C(0x002CB2), RUNE_C(0x002CB2)},
+ {RUNE_C(0x002CB4), RUNE_C(0x002CB4)},
+ {RUNE_C(0x002CB6), RUNE_C(0x002CB6)},
+ {RUNE_C(0x002CB8), RUNE_C(0x002CB8)},
+ {RUNE_C(0x002CBA), RUNE_C(0x002CBA)},
+ {RUNE_C(0x002CBC), RUNE_C(0x002CBC)},
+ {RUNE_C(0x002CBE), RUNE_C(0x002CBE)},
+ {RUNE_C(0x002CC0), RUNE_C(0x002CC0)},
+ {RUNE_C(0x002CC2), RUNE_C(0x002CC2)},
+ {RUNE_C(0x002CC4), RUNE_C(0x002CC4)},
+ {RUNE_C(0x002CC6), RUNE_C(0x002CC6)},
+ {RUNE_C(0x002CC8), RUNE_C(0x002CC8)},
+ {RUNE_C(0x002CCA), RUNE_C(0x002CCA)},
+ {RUNE_C(0x002CCC), RUNE_C(0x002CCC)},
+ {RUNE_C(0x002CCE), RUNE_C(0x002CCE)},
+ {RUNE_C(0x002CD0), RUNE_C(0x002CD0)},
+ {RUNE_C(0x002CD2), RUNE_C(0x002CD2)},
+ {RUNE_C(0x002CD4), RUNE_C(0x002CD4)},
+ {RUNE_C(0x002CD6), RUNE_C(0x002CD6)},
+ {RUNE_C(0x002CD8), RUNE_C(0x002CD8)},
+ {RUNE_C(0x002CDA), RUNE_C(0x002CDA)},
+ {RUNE_C(0x002CDC), RUNE_C(0x002CDC)},
+ {RUNE_C(0x002CDE), RUNE_C(0x002CDE)},
+ {RUNE_C(0x002CE0), RUNE_C(0x002CE0)},
+ {RUNE_C(0x002CE2), RUNE_C(0x002CE2)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEB)},
+ {RUNE_C(0x002CED), RUNE_C(0x002CED)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF2)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A640)},
+ {RUNE_C(0x00A642), RUNE_C(0x00A642)},
+ {RUNE_C(0x00A644), RUNE_C(0x00A644)},
+ {RUNE_C(0x00A646), RUNE_C(0x00A646)},
+ {RUNE_C(0x00A648), RUNE_C(0x00A648)},
+ {RUNE_C(0x00A64A), RUNE_C(0x00A64A)},
+ {RUNE_C(0x00A64C), RUNE_C(0x00A64C)},
+ {RUNE_C(0x00A64E), RUNE_C(0x00A64E)},
+ {RUNE_C(0x00A650), RUNE_C(0x00A650)},
+ {RUNE_C(0x00A652), RUNE_C(0x00A652)},
+ {RUNE_C(0x00A654), RUNE_C(0x00A654)},
+ {RUNE_C(0x00A656), RUNE_C(0x00A656)},
+ {RUNE_C(0x00A658), RUNE_C(0x00A658)},
+ {RUNE_C(0x00A65A), RUNE_C(0x00A65A)},
+ {RUNE_C(0x00A65C), RUNE_C(0x00A65C)},
+ {RUNE_C(0x00A65E), RUNE_C(0x00A65E)},
+ {RUNE_C(0x00A660), RUNE_C(0x00A660)},
+ {RUNE_C(0x00A662), RUNE_C(0x00A662)},
+ {RUNE_C(0x00A664), RUNE_C(0x00A664)},
+ {RUNE_C(0x00A666), RUNE_C(0x00A666)},
+ {RUNE_C(0x00A668), RUNE_C(0x00A668)},
+ {RUNE_C(0x00A66A), RUNE_C(0x00A66A)},
+ {RUNE_C(0x00A66C), RUNE_C(0x00A66C)},
+ {RUNE_C(0x00A680), RUNE_C(0x00A680)},
+ {RUNE_C(0x00A682), RUNE_C(0x00A682)},
+ {RUNE_C(0x00A684), RUNE_C(0x00A684)},
+ {RUNE_C(0x00A686), RUNE_C(0x00A686)},
+ {RUNE_C(0x00A688), RUNE_C(0x00A688)},
+ {RUNE_C(0x00A68A), RUNE_C(0x00A68A)},
+ {RUNE_C(0x00A68C), RUNE_C(0x00A68C)},
+ {RUNE_C(0x00A68E), RUNE_C(0x00A68E)},
+ {RUNE_C(0x00A690), RUNE_C(0x00A690)},
+ {RUNE_C(0x00A692), RUNE_C(0x00A692)},
+ {RUNE_C(0x00A694), RUNE_C(0x00A694)},
+ {RUNE_C(0x00A696), RUNE_C(0x00A696)},
+ {RUNE_C(0x00A698), RUNE_C(0x00A698)},
+ {RUNE_C(0x00A69A), RUNE_C(0x00A69A)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A722)},
+ {RUNE_C(0x00A724), RUNE_C(0x00A724)},
+ {RUNE_C(0x00A726), RUNE_C(0x00A726)},
+ {RUNE_C(0x00A728), RUNE_C(0x00A728)},
+ {RUNE_C(0x00A72A), RUNE_C(0x00A72A)},
+ {RUNE_C(0x00A72C), RUNE_C(0x00A72C)},
+ {RUNE_C(0x00A72E), RUNE_C(0x00A72E)},
+ {RUNE_C(0x00A732), RUNE_C(0x00A732)},
+ {RUNE_C(0x00A734), RUNE_C(0x00A734)},
+ {RUNE_C(0x00A736), RUNE_C(0x00A736)},
+ {RUNE_C(0x00A738), RUNE_C(0x00A738)},
+ {RUNE_C(0x00A73A), RUNE_C(0x00A73A)},
+ {RUNE_C(0x00A73C), RUNE_C(0x00A73C)},
+ {RUNE_C(0x00A73E), RUNE_C(0x00A73E)},
+ {RUNE_C(0x00A740), RUNE_C(0x00A740)},
+ {RUNE_C(0x00A742), RUNE_C(0x00A742)},
+ {RUNE_C(0x00A744), RUNE_C(0x00A744)},
+ {RUNE_C(0x00A746), RUNE_C(0x00A746)},
+ {RUNE_C(0x00A748), RUNE_C(0x00A748)},
+ {RUNE_C(0x00A74A), RUNE_C(0x00A74A)},
+ {RUNE_C(0x00A74C), RUNE_C(0x00A74C)},
+ {RUNE_C(0x00A74E), RUNE_C(0x00A74E)},
+ {RUNE_C(0x00A750), RUNE_C(0x00A750)},
+ {RUNE_C(0x00A752), RUNE_C(0x00A752)},
+ {RUNE_C(0x00A754), RUNE_C(0x00A754)},
+ {RUNE_C(0x00A756), RUNE_C(0x00A756)},
+ {RUNE_C(0x00A758), RUNE_C(0x00A758)},
+ {RUNE_C(0x00A75A), RUNE_C(0x00A75A)},
+ {RUNE_C(0x00A75C), RUNE_C(0x00A75C)},
+ {RUNE_C(0x00A75E), RUNE_C(0x00A75E)},
+ {RUNE_C(0x00A760), RUNE_C(0x00A760)},
+ {RUNE_C(0x00A762), RUNE_C(0x00A762)},
+ {RUNE_C(0x00A764), RUNE_C(0x00A764)},
+ {RUNE_C(0x00A766), RUNE_C(0x00A766)},
+ {RUNE_C(0x00A768), RUNE_C(0x00A768)},
+ {RUNE_C(0x00A76A), RUNE_C(0x00A76A)},
+ {RUNE_C(0x00A76C), RUNE_C(0x00A76C)},
+ {RUNE_C(0x00A76E), RUNE_C(0x00A76E)},
+ {RUNE_C(0x00A779), RUNE_C(0x00A779)},
+ {RUNE_C(0x00A77B), RUNE_C(0x00A77B)},
+ {RUNE_C(0x00A77D), RUNE_C(0x00A77E)},
+ {RUNE_C(0x00A780), RUNE_C(0x00A780)},
+ {RUNE_C(0x00A782), RUNE_C(0x00A782)},
+ {RUNE_C(0x00A784), RUNE_C(0x00A784)},
+ {RUNE_C(0x00A786), RUNE_C(0x00A786)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A78B)},
+ {RUNE_C(0x00A78D), RUNE_C(0x00A78D)},
+ {RUNE_C(0x00A790), RUNE_C(0x00A790)},
+ {RUNE_C(0x00A792), RUNE_C(0x00A792)},
+ {RUNE_C(0x00A796), RUNE_C(0x00A796)},
+ {RUNE_C(0x00A798), RUNE_C(0x00A798)},
+ {RUNE_C(0x00A79A), RUNE_C(0x00A79A)},
+ {RUNE_C(0x00A79C), RUNE_C(0x00A79C)},
+ {RUNE_C(0x00A79E), RUNE_C(0x00A79E)},
+ {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)},
+ {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)},
+ {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)},
+ {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)},
+ {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)},
+ {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)},
+ {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)},
+ {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)},
+ {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)},
+ {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)},
+ {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)},
+ {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)},
+ {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)},
+ {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)},
+ {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)},
+ {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)},
+ {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)},
+ {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)},
+ {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x010400), RUNE_C(0x010427)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118BF)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E5F)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E921)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_cwl(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_cwt.c b/lib/unicode/prop/uprop_is_cwt.c
new file mode 100644
index 0000000..1b32828
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_cwt.c
@@ -0,0 +1,650 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000101), RUNE_C(0x000101)},
+ {RUNE_C(0x000103), RUNE_C(0x000103)},
+ {RUNE_C(0x000105), RUNE_C(0x000105)},
+ {RUNE_C(0x000107), RUNE_C(0x000107)},
+ {RUNE_C(0x000109), RUNE_C(0x000109)},
+ {RUNE_C(0x00010B), RUNE_C(0x00010B)},
+ {RUNE_C(0x00010D), RUNE_C(0x00010D)},
+ {RUNE_C(0x00010F), RUNE_C(0x00010F)},
+ {RUNE_C(0x000111), RUNE_C(0x000111)},
+ {RUNE_C(0x000113), RUNE_C(0x000113)},
+ {RUNE_C(0x000115), RUNE_C(0x000115)},
+ {RUNE_C(0x000117), RUNE_C(0x000117)},
+ {RUNE_C(0x000119), RUNE_C(0x000119)},
+ {RUNE_C(0x00011B), RUNE_C(0x00011B)},
+ {RUNE_C(0x00011D), RUNE_C(0x00011D)},
+ {RUNE_C(0x00011F), RUNE_C(0x00011F)},
+ {RUNE_C(0x000121), RUNE_C(0x000121)},
+ {RUNE_C(0x000123), RUNE_C(0x000123)},
+ {RUNE_C(0x000125), RUNE_C(0x000125)},
+ {RUNE_C(0x000127), RUNE_C(0x000127)},
+ {RUNE_C(0x000129), RUNE_C(0x000129)},
+ {RUNE_C(0x00012B), RUNE_C(0x00012B)},
+ {RUNE_C(0x00012D), RUNE_C(0x00012D)},
+ {RUNE_C(0x00012F), RUNE_C(0x00012F)},
+ {RUNE_C(0x000131), RUNE_C(0x000131)},
+ {RUNE_C(0x000133), RUNE_C(0x000133)},
+ {RUNE_C(0x000135), RUNE_C(0x000135)},
+ {RUNE_C(0x000137), RUNE_C(0x000137)},
+ {RUNE_C(0x00013A), RUNE_C(0x00013A)},
+ {RUNE_C(0x00013C), RUNE_C(0x00013C)},
+ {RUNE_C(0x00013E), RUNE_C(0x00013E)},
+ {RUNE_C(0x000140), RUNE_C(0x000140)},
+ {RUNE_C(0x000142), RUNE_C(0x000142)},
+ {RUNE_C(0x000144), RUNE_C(0x000144)},
+ {RUNE_C(0x000146), RUNE_C(0x000146)},
+ {RUNE_C(0x000148), RUNE_C(0x000149)},
+ {RUNE_C(0x00014B), RUNE_C(0x00014B)},
+ {RUNE_C(0x00014D), RUNE_C(0x00014D)},
+ {RUNE_C(0x00014F), RUNE_C(0x00014F)},
+ {RUNE_C(0x000151), RUNE_C(0x000151)},
+ {RUNE_C(0x000153), RUNE_C(0x000153)},
+ {RUNE_C(0x000155), RUNE_C(0x000155)},
+ {RUNE_C(0x000157), RUNE_C(0x000157)},
+ {RUNE_C(0x000159), RUNE_C(0x000159)},
+ {RUNE_C(0x00015B), RUNE_C(0x00015B)},
+ {RUNE_C(0x00015D), RUNE_C(0x00015D)},
+ {RUNE_C(0x00015F), RUNE_C(0x00015F)},
+ {RUNE_C(0x000161), RUNE_C(0x000161)},
+ {RUNE_C(0x000163), RUNE_C(0x000163)},
+ {RUNE_C(0x000165), RUNE_C(0x000165)},
+ {RUNE_C(0x000167), RUNE_C(0x000167)},
+ {RUNE_C(0x000169), RUNE_C(0x000169)},
+ {RUNE_C(0x00016B), RUNE_C(0x00016B)},
+ {RUNE_C(0x00016D), RUNE_C(0x00016D)},
+ {RUNE_C(0x00016F), RUNE_C(0x00016F)},
+ {RUNE_C(0x000171), RUNE_C(0x000171)},
+ {RUNE_C(0x000173), RUNE_C(0x000173)},
+ {RUNE_C(0x000175), RUNE_C(0x000175)},
+ {RUNE_C(0x000177), RUNE_C(0x000177)},
+ {RUNE_C(0x00017A), RUNE_C(0x00017A)},
+ {RUNE_C(0x00017C), RUNE_C(0x00017C)},
+ {RUNE_C(0x00017E), RUNE_C(0x000180)},
+ {RUNE_C(0x000183), RUNE_C(0x000183)},
+ {RUNE_C(0x000185), RUNE_C(0x000185)},
+ {RUNE_C(0x000188), RUNE_C(0x000188)},
+ {RUNE_C(0x00018C), RUNE_C(0x00018C)},
+ {RUNE_C(0x000192), RUNE_C(0x000192)},
+ {RUNE_C(0x000195), RUNE_C(0x000195)},
+ {RUNE_C(0x000199), RUNE_C(0x00019A)},
+ {RUNE_C(0x00019E), RUNE_C(0x00019E)},
+ {RUNE_C(0x0001A1), RUNE_C(0x0001A1)},
+ {RUNE_C(0x0001A3), RUNE_C(0x0001A3)},
+ {RUNE_C(0x0001A5), RUNE_C(0x0001A5)},
+ {RUNE_C(0x0001A8), RUNE_C(0x0001A8)},
+ {RUNE_C(0x0001AD), RUNE_C(0x0001AD)},
+ {RUNE_C(0x0001B0), RUNE_C(0x0001B0)},
+ {RUNE_C(0x0001B4), RUNE_C(0x0001B4)},
+ {RUNE_C(0x0001B6), RUNE_C(0x0001B6)},
+ {RUNE_C(0x0001B9), RUNE_C(0x0001B9)},
+ {RUNE_C(0x0001BD), RUNE_C(0x0001BD)},
+ {RUNE_C(0x0001BF), RUNE_C(0x0001BF)},
+ {RUNE_C(0x0001C4), RUNE_C(0x0001C4)},
+ {RUNE_C(0x0001C6), RUNE_C(0x0001C7)},
+ {RUNE_C(0x0001C9), RUNE_C(0x0001CA)},
+ {RUNE_C(0x0001CC), RUNE_C(0x0001CC)},
+ {RUNE_C(0x0001CE), RUNE_C(0x0001CE)},
+ {RUNE_C(0x0001D0), RUNE_C(0x0001D0)},
+ {RUNE_C(0x0001D2), RUNE_C(0x0001D2)},
+ {RUNE_C(0x0001D4), RUNE_C(0x0001D4)},
+ {RUNE_C(0x0001D6), RUNE_C(0x0001D6)},
+ {RUNE_C(0x0001D8), RUNE_C(0x0001D8)},
+ {RUNE_C(0x0001DA), RUNE_C(0x0001DA)},
+ {RUNE_C(0x0001DC), RUNE_C(0x0001DD)},
+ {RUNE_C(0x0001DF), RUNE_C(0x0001DF)},
+ {RUNE_C(0x0001E1), RUNE_C(0x0001E1)},
+ {RUNE_C(0x0001E3), RUNE_C(0x0001E3)},
+ {RUNE_C(0x0001E5), RUNE_C(0x0001E5)},
+ {RUNE_C(0x0001E7), RUNE_C(0x0001E7)},
+ {RUNE_C(0x0001E9), RUNE_C(0x0001E9)},
+ {RUNE_C(0x0001EB), RUNE_C(0x0001EB)},
+ {RUNE_C(0x0001ED), RUNE_C(0x0001ED)},
+ {RUNE_C(0x0001EF), RUNE_C(0x0001F1)},
+ {RUNE_C(0x0001F3), RUNE_C(0x0001F3)},
+ {RUNE_C(0x0001F5), RUNE_C(0x0001F5)},
+ {RUNE_C(0x0001F9), RUNE_C(0x0001F9)},
+ {RUNE_C(0x0001FB), RUNE_C(0x0001FB)},
+ {RUNE_C(0x0001FD), RUNE_C(0x0001FD)},
+ {RUNE_C(0x0001FF), RUNE_C(0x0001FF)},
+ {RUNE_C(0x000201), RUNE_C(0x000201)},
+ {RUNE_C(0x000203), RUNE_C(0x000203)},
+ {RUNE_C(0x000205), RUNE_C(0x000205)},
+ {RUNE_C(0x000207), RUNE_C(0x000207)},
+ {RUNE_C(0x000209), RUNE_C(0x000209)},
+ {RUNE_C(0x00020B), RUNE_C(0x00020B)},
+ {RUNE_C(0x00020D), RUNE_C(0x00020D)},
+ {RUNE_C(0x00020F), RUNE_C(0x00020F)},
+ {RUNE_C(0x000211), RUNE_C(0x000211)},
+ {RUNE_C(0x000213), RUNE_C(0x000213)},
+ {RUNE_C(0x000215), RUNE_C(0x000215)},
+ {RUNE_C(0x000217), RUNE_C(0x000217)},
+ {RUNE_C(0x000219), RUNE_C(0x000219)},
+ {RUNE_C(0x00021B), RUNE_C(0x00021B)},
+ {RUNE_C(0x00021D), RUNE_C(0x00021D)},
+ {RUNE_C(0x00021F), RUNE_C(0x00021F)},
+ {RUNE_C(0x000223), RUNE_C(0x000223)},
+ {RUNE_C(0x000225), RUNE_C(0x000225)},
+ {RUNE_C(0x000227), RUNE_C(0x000227)},
+ {RUNE_C(0x000229), RUNE_C(0x000229)},
+ {RUNE_C(0x00022B), RUNE_C(0x00022B)},
+ {RUNE_C(0x00022D), RUNE_C(0x00022D)},
+ {RUNE_C(0x00022F), RUNE_C(0x00022F)},
+ {RUNE_C(0x000231), RUNE_C(0x000231)},
+ {RUNE_C(0x000233), RUNE_C(0x000233)},
+ {RUNE_C(0x00023C), RUNE_C(0x00023C)},
+ {RUNE_C(0x00023F), RUNE_C(0x000240)},
+ {RUNE_C(0x000242), RUNE_C(0x000242)},
+ {RUNE_C(0x000247), RUNE_C(0x000247)},
+ {RUNE_C(0x000249), RUNE_C(0x000249)},
+ {RUNE_C(0x00024B), RUNE_C(0x00024B)},
+ {RUNE_C(0x00024D), RUNE_C(0x00024D)},
+ {RUNE_C(0x00024F), RUNE_C(0x000254)},
+ {RUNE_C(0x000256), RUNE_C(0x000257)},
+ {RUNE_C(0x000259), RUNE_C(0x000259)},
+ {RUNE_C(0x00025B), RUNE_C(0x00025C)},
+ {RUNE_C(0x000260), RUNE_C(0x000261)},
+ {RUNE_C(0x000263), RUNE_C(0x000263)},
+ {RUNE_C(0x000265), RUNE_C(0x000266)},
+ {RUNE_C(0x000268), RUNE_C(0x00026C)},
+ {RUNE_C(0x00026F), RUNE_C(0x00026F)},
+ {RUNE_C(0x000271), RUNE_C(0x000272)},
+ {RUNE_C(0x000275), RUNE_C(0x000275)},
+ {RUNE_C(0x00027D), RUNE_C(0x00027D)},
+ {RUNE_C(0x000280), RUNE_C(0x000280)},
+ {RUNE_C(0x000282), RUNE_C(0x000283)},
+ {RUNE_C(0x000287), RUNE_C(0x00028C)},
+ {RUNE_C(0x000292), RUNE_C(0x000292)},
+ {RUNE_C(0x00029D), RUNE_C(0x00029E)},
+ {RUNE_C(0x000345), RUNE_C(0x000345)},
+ {RUNE_C(0x000371), RUNE_C(0x000371)},
+ {RUNE_C(0x000373), RUNE_C(0x000373)},
+ {RUNE_C(0x000377), RUNE_C(0x000377)},
+ {RUNE_C(0x00037B), RUNE_C(0x00037D)},
+ {RUNE_C(0x000390), RUNE_C(0x000390)},
+ {RUNE_C(0x0003AC), RUNE_C(0x0003CE)},
+ {RUNE_C(0x0003D0), RUNE_C(0x0003D1)},
+ {RUNE_C(0x0003D5), RUNE_C(0x0003D7)},
+ {RUNE_C(0x0003D9), RUNE_C(0x0003D9)},
+ {RUNE_C(0x0003DB), RUNE_C(0x0003DB)},
+ {RUNE_C(0x0003DD), RUNE_C(0x0003DD)},
+ {RUNE_C(0x0003DF), RUNE_C(0x0003DF)},
+ {RUNE_C(0x0003E1), RUNE_C(0x0003E1)},
+ {RUNE_C(0x0003E3), RUNE_C(0x0003E3)},
+ {RUNE_C(0x0003E5), RUNE_C(0x0003E5)},
+ {RUNE_C(0x0003E7), RUNE_C(0x0003E7)},
+ {RUNE_C(0x0003E9), RUNE_C(0x0003E9)},
+ {RUNE_C(0x0003EB), RUNE_C(0x0003EB)},
+ {RUNE_C(0x0003ED), RUNE_C(0x0003ED)},
+ {RUNE_C(0x0003EF), RUNE_C(0x0003F3)},
+ {RUNE_C(0x0003F5), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F8), RUNE_C(0x0003F8)},
+ {RUNE_C(0x0003FB), RUNE_C(0x0003FB)},
+ {RUNE_C(0x000430), RUNE_C(0x00045F)},
+ {RUNE_C(0x000461), RUNE_C(0x000461)},
+ {RUNE_C(0x000463), RUNE_C(0x000463)},
+ {RUNE_C(0x000465), RUNE_C(0x000465)},
+ {RUNE_C(0x000467), RUNE_C(0x000467)},
+ {RUNE_C(0x000469), RUNE_C(0x000469)},
+ {RUNE_C(0x00046B), RUNE_C(0x00046B)},
+ {RUNE_C(0x00046D), RUNE_C(0x00046D)},
+ {RUNE_C(0x00046F), RUNE_C(0x00046F)},
+ {RUNE_C(0x000471), RUNE_C(0x000471)},
+ {RUNE_C(0x000473), RUNE_C(0x000473)},
+ {RUNE_C(0x000475), RUNE_C(0x000475)},
+ {RUNE_C(0x000477), RUNE_C(0x000477)},
+ {RUNE_C(0x000479), RUNE_C(0x000479)},
+ {RUNE_C(0x00047B), RUNE_C(0x00047B)},
+ {RUNE_C(0x00047D), RUNE_C(0x00047D)},
+ {RUNE_C(0x00047F), RUNE_C(0x00047F)},
+ {RUNE_C(0x000481), RUNE_C(0x000481)},
+ {RUNE_C(0x00048B), RUNE_C(0x00048B)},
+ {RUNE_C(0x00048D), RUNE_C(0x00048D)},
+ {RUNE_C(0x00048F), RUNE_C(0x00048F)},
+ {RUNE_C(0x000491), RUNE_C(0x000491)},
+ {RUNE_C(0x000493), RUNE_C(0x000493)},
+ {RUNE_C(0x000495), RUNE_C(0x000495)},
+ {RUNE_C(0x000497), RUNE_C(0x000497)},
+ {RUNE_C(0x000499), RUNE_C(0x000499)},
+ {RUNE_C(0x00049B), RUNE_C(0x00049B)},
+ {RUNE_C(0x00049D), RUNE_C(0x00049D)},
+ {RUNE_C(0x00049F), RUNE_C(0x00049F)},
+ {RUNE_C(0x0004A1), RUNE_C(0x0004A1)},
+ {RUNE_C(0x0004A3), RUNE_C(0x0004A3)},
+ {RUNE_C(0x0004A5), RUNE_C(0x0004A5)},
+ {RUNE_C(0x0004A7), RUNE_C(0x0004A7)},
+ {RUNE_C(0x0004A9), RUNE_C(0x0004A9)},
+ {RUNE_C(0x0004AB), RUNE_C(0x0004AB)},
+ {RUNE_C(0x0004AD), RUNE_C(0x0004AD)},
+ {RUNE_C(0x0004AF), RUNE_C(0x0004AF)},
+ {RUNE_C(0x0004B1), RUNE_C(0x0004B1)},
+ {RUNE_C(0x0004B3), RUNE_C(0x0004B3)},
+ {RUNE_C(0x0004B5), RUNE_C(0x0004B5)},
+ {RUNE_C(0x0004B7), RUNE_C(0x0004B7)},
+ {RUNE_C(0x0004B9), RUNE_C(0x0004B9)},
+ {RUNE_C(0x0004BB), RUNE_C(0x0004BB)},
+ {RUNE_C(0x0004BD), RUNE_C(0x0004BD)},
+ {RUNE_C(0x0004BF), RUNE_C(0x0004BF)},
+ {RUNE_C(0x0004C2), RUNE_C(0x0004C2)},
+ {RUNE_C(0x0004C4), RUNE_C(0x0004C4)},
+ {RUNE_C(0x0004C6), RUNE_C(0x0004C6)},
+ {RUNE_C(0x0004C8), RUNE_C(0x0004C8)},
+ {RUNE_C(0x0004CA), RUNE_C(0x0004CA)},
+ {RUNE_C(0x0004CC), RUNE_C(0x0004CC)},
+ {RUNE_C(0x0004CE), RUNE_C(0x0004CF)},
+ {RUNE_C(0x0004D1), RUNE_C(0x0004D1)},
+ {RUNE_C(0x0004D3), RUNE_C(0x0004D3)},
+ {RUNE_C(0x0004D5), RUNE_C(0x0004D5)},
+ {RUNE_C(0x0004D7), RUNE_C(0x0004D7)},
+ {RUNE_C(0x0004D9), RUNE_C(0x0004D9)},
+ {RUNE_C(0x0004DB), RUNE_C(0x0004DB)},
+ {RUNE_C(0x0004DD), RUNE_C(0x0004DD)},
+ {RUNE_C(0x0004DF), RUNE_C(0x0004DF)},
+ {RUNE_C(0x0004E1), RUNE_C(0x0004E1)},
+ {RUNE_C(0x0004E3), RUNE_C(0x0004E3)},
+ {RUNE_C(0x0004E5), RUNE_C(0x0004E5)},
+ {RUNE_C(0x0004E7), RUNE_C(0x0004E7)},
+ {RUNE_C(0x0004E9), RUNE_C(0x0004E9)},
+ {RUNE_C(0x0004EB), RUNE_C(0x0004EB)},
+ {RUNE_C(0x0004ED), RUNE_C(0x0004ED)},
+ {RUNE_C(0x0004EF), RUNE_C(0x0004EF)},
+ {RUNE_C(0x0004F1), RUNE_C(0x0004F1)},
+ {RUNE_C(0x0004F3), RUNE_C(0x0004F3)},
+ {RUNE_C(0x0004F5), RUNE_C(0x0004F5)},
+ {RUNE_C(0x0004F7), RUNE_C(0x0004F7)},
+ {RUNE_C(0x0004F9), RUNE_C(0x0004F9)},
+ {RUNE_C(0x0004FB), RUNE_C(0x0004FB)},
+ {RUNE_C(0x0004FD), RUNE_C(0x0004FD)},
+ {RUNE_C(0x0004FF), RUNE_C(0x0004FF)},
+ {RUNE_C(0x000501), RUNE_C(0x000501)},
+ {RUNE_C(0x000503), RUNE_C(0x000503)},
+ {RUNE_C(0x000505), RUNE_C(0x000505)},
+ {RUNE_C(0x000507), RUNE_C(0x000507)},
+ {RUNE_C(0x000509), RUNE_C(0x000509)},
+ {RUNE_C(0x00050B), RUNE_C(0x00050B)},
+ {RUNE_C(0x00050D), RUNE_C(0x00050D)},
+ {RUNE_C(0x00050F), RUNE_C(0x00050F)},
+ {RUNE_C(0x000511), RUNE_C(0x000511)},
+ {RUNE_C(0x000513), RUNE_C(0x000513)},
+ {RUNE_C(0x000515), RUNE_C(0x000515)},
+ {RUNE_C(0x000517), RUNE_C(0x000517)},
+ {RUNE_C(0x000519), RUNE_C(0x000519)},
+ {RUNE_C(0x00051B), RUNE_C(0x00051B)},
+ {RUNE_C(0x00051D), RUNE_C(0x00051D)},
+ {RUNE_C(0x00051F), RUNE_C(0x00051F)},
+ {RUNE_C(0x000521), RUNE_C(0x000521)},
+ {RUNE_C(0x000523), RUNE_C(0x000523)},
+ {RUNE_C(0x000525), RUNE_C(0x000525)},
+ {RUNE_C(0x000527), RUNE_C(0x000527)},
+ {RUNE_C(0x000529), RUNE_C(0x000529)},
+ {RUNE_C(0x00052B), RUNE_C(0x00052B)},
+ {RUNE_C(0x00052D), RUNE_C(0x00052D)},
+ {RUNE_C(0x00052F), RUNE_C(0x00052F)},
+ {RUNE_C(0x000561), RUNE_C(0x000587)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001D79), RUNE_C(0x001D79)},
+ {RUNE_C(0x001D7D), RUNE_C(0x001D7D)},
+ {RUNE_C(0x001D8E), RUNE_C(0x001D8E)},
+ {RUNE_C(0x001E01), RUNE_C(0x001E01)},
+ {RUNE_C(0x001E03), RUNE_C(0x001E03)},
+ {RUNE_C(0x001E05), RUNE_C(0x001E05)},
+ {RUNE_C(0x001E07), RUNE_C(0x001E07)},
+ {RUNE_C(0x001E09), RUNE_C(0x001E09)},
+ {RUNE_C(0x001E0B), RUNE_C(0x001E0B)},
+ {RUNE_C(0x001E0D), RUNE_C(0x001E0D)},
+ {RUNE_C(0x001E0F), RUNE_C(0x001E0F)},
+ {RUNE_C(0x001E11), RUNE_C(0x001E11)},
+ {RUNE_C(0x001E13), RUNE_C(0x001E13)},
+ {RUNE_C(0x001E15), RUNE_C(0x001E15)},
+ {RUNE_C(0x001E17), RUNE_C(0x001E17)},
+ {RUNE_C(0x001E19), RUNE_C(0x001E19)},
+ {RUNE_C(0x001E1B), RUNE_C(0x001E1B)},
+ {RUNE_C(0x001E1D), RUNE_C(0x001E1D)},
+ {RUNE_C(0x001E1F), RUNE_C(0x001E1F)},
+ {RUNE_C(0x001E21), RUNE_C(0x001E21)},
+ {RUNE_C(0x001E23), RUNE_C(0x001E23)},
+ {RUNE_C(0x001E25), RUNE_C(0x001E25)},
+ {RUNE_C(0x001E27), RUNE_C(0x001E27)},
+ {RUNE_C(0x001E29), RUNE_C(0x001E29)},
+ {RUNE_C(0x001E2B), RUNE_C(0x001E2B)},
+ {RUNE_C(0x001E2D), RUNE_C(0x001E2D)},
+ {RUNE_C(0x001E2F), RUNE_C(0x001E2F)},
+ {RUNE_C(0x001E31), RUNE_C(0x001E31)},
+ {RUNE_C(0x001E33), RUNE_C(0x001E33)},
+ {RUNE_C(0x001E35), RUNE_C(0x001E35)},
+ {RUNE_C(0x001E37), RUNE_C(0x001E37)},
+ {RUNE_C(0x001E39), RUNE_C(0x001E39)},
+ {RUNE_C(0x001E3B), RUNE_C(0x001E3B)},
+ {RUNE_C(0x001E3D), RUNE_C(0x001E3D)},
+ {RUNE_C(0x001E3F), RUNE_C(0x001E3F)},
+ {RUNE_C(0x001E41), RUNE_C(0x001E41)},
+ {RUNE_C(0x001E43), RUNE_C(0x001E43)},
+ {RUNE_C(0x001E45), RUNE_C(0x001E45)},
+ {RUNE_C(0x001E47), RUNE_C(0x001E47)},
+ {RUNE_C(0x001E49), RUNE_C(0x001E49)},
+ {RUNE_C(0x001E4B), RUNE_C(0x001E4B)},
+ {RUNE_C(0x001E4D), RUNE_C(0x001E4D)},
+ {RUNE_C(0x001E4F), RUNE_C(0x001E4F)},
+ {RUNE_C(0x001E51), RUNE_C(0x001E51)},
+ {RUNE_C(0x001E53), RUNE_C(0x001E53)},
+ {RUNE_C(0x001E55), RUNE_C(0x001E55)},
+ {RUNE_C(0x001E57), RUNE_C(0x001E57)},
+ {RUNE_C(0x001E59), RUNE_C(0x001E59)},
+ {RUNE_C(0x001E5B), RUNE_C(0x001E5B)},
+ {RUNE_C(0x001E5D), RUNE_C(0x001E5D)},
+ {RUNE_C(0x001E5F), RUNE_C(0x001E5F)},
+ {RUNE_C(0x001E61), RUNE_C(0x001E61)},
+ {RUNE_C(0x001E63), RUNE_C(0x001E63)},
+ {RUNE_C(0x001E65), RUNE_C(0x001E65)},
+ {RUNE_C(0x001E67), RUNE_C(0x001E67)},
+ {RUNE_C(0x001E69), RUNE_C(0x001E69)},
+ {RUNE_C(0x001E6B), RUNE_C(0x001E6B)},
+ {RUNE_C(0x001E6D), RUNE_C(0x001E6D)},
+ {RUNE_C(0x001E6F), RUNE_C(0x001E6F)},
+ {RUNE_C(0x001E71), RUNE_C(0x001E71)},
+ {RUNE_C(0x001E73), RUNE_C(0x001E73)},
+ {RUNE_C(0x001E75), RUNE_C(0x001E75)},
+ {RUNE_C(0x001E77), RUNE_C(0x001E77)},
+ {RUNE_C(0x001E79), RUNE_C(0x001E79)},
+ {RUNE_C(0x001E7B), RUNE_C(0x001E7B)},
+ {RUNE_C(0x001E7D), RUNE_C(0x001E7D)},
+ {RUNE_C(0x001E7F), RUNE_C(0x001E7F)},
+ {RUNE_C(0x001E81), RUNE_C(0x001E81)},
+ {RUNE_C(0x001E83), RUNE_C(0x001E83)},
+ {RUNE_C(0x001E85), RUNE_C(0x001E85)},
+ {RUNE_C(0x001E87), RUNE_C(0x001E87)},
+ {RUNE_C(0x001E89), RUNE_C(0x001E89)},
+ {RUNE_C(0x001E8B), RUNE_C(0x001E8B)},
+ {RUNE_C(0x001E8D), RUNE_C(0x001E8D)},
+ {RUNE_C(0x001E8F), RUNE_C(0x001E8F)},
+ {RUNE_C(0x001E91), RUNE_C(0x001E91)},
+ {RUNE_C(0x001E93), RUNE_C(0x001E93)},
+ {RUNE_C(0x001E95), RUNE_C(0x001E9B)},
+ {RUNE_C(0x001EA1), RUNE_C(0x001EA1)},
+ {RUNE_C(0x001EA3), RUNE_C(0x001EA3)},
+ {RUNE_C(0x001EA5), RUNE_C(0x001EA5)},
+ {RUNE_C(0x001EA7), RUNE_C(0x001EA7)},
+ {RUNE_C(0x001EA9), RUNE_C(0x001EA9)},
+ {RUNE_C(0x001EAB), RUNE_C(0x001EAB)},
+ {RUNE_C(0x001EAD), RUNE_C(0x001EAD)},
+ {RUNE_C(0x001EAF), RUNE_C(0x001EAF)},
+ {RUNE_C(0x001EB1), RUNE_C(0x001EB1)},
+ {RUNE_C(0x001EB3), RUNE_C(0x001EB3)},
+ {RUNE_C(0x001EB5), RUNE_C(0x001EB5)},
+ {RUNE_C(0x001EB7), RUNE_C(0x001EB7)},
+ {RUNE_C(0x001EB9), RUNE_C(0x001EB9)},
+ {RUNE_C(0x001EBB), RUNE_C(0x001EBB)},
+ {RUNE_C(0x001EBD), RUNE_C(0x001EBD)},
+ {RUNE_C(0x001EBF), RUNE_C(0x001EBF)},
+ {RUNE_C(0x001EC1), RUNE_C(0x001EC1)},
+ {RUNE_C(0x001EC3), RUNE_C(0x001EC3)},
+ {RUNE_C(0x001EC5), RUNE_C(0x001EC5)},
+ {RUNE_C(0x001EC7), RUNE_C(0x001EC7)},
+ {RUNE_C(0x001EC9), RUNE_C(0x001EC9)},
+ {RUNE_C(0x001ECB), RUNE_C(0x001ECB)},
+ {RUNE_C(0x001ECD), RUNE_C(0x001ECD)},
+ {RUNE_C(0x001ECF), RUNE_C(0x001ECF)},
+ {RUNE_C(0x001ED1), RUNE_C(0x001ED1)},
+ {RUNE_C(0x001ED3), RUNE_C(0x001ED3)},
+ {RUNE_C(0x001ED5), RUNE_C(0x001ED5)},
+ {RUNE_C(0x001ED7), RUNE_C(0x001ED7)},
+ {RUNE_C(0x001ED9), RUNE_C(0x001ED9)},
+ {RUNE_C(0x001EDB), RUNE_C(0x001EDB)},
+ {RUNE_C(0x001EDD), RUNE_C(0x001EDD)},
+ {RUNE_C(0x001EDF), RUNE_C(0x001EDF)},
+ {RUNE_C(0x001EE1), RUNE_C(0x001EE1)},
+ {RUNE_C(0x001EE3), RUNE_C(0x001EE3)},
+ {RUNE_C(0x001EE5), RUNE_C(0x001EE5)},
+ {RUNE_C(0x001EE7), RUNE_C(0x001EE7)},
+ {RUNE_C(0x001EE9), RUNE_C(0x001EE9)},
+ {RUNE_C(0x001EEB), RUNE_C(0x001EEB)},
+ {RUNE_C(0x001EED), RUNE_C(0x001EED)},
+ {RUNE_C(0x001EEF), RUNE_C(0x001EEF)},
+ {RUNE_C(0x001EF1), RUNE_C(0x001EF1)},
+ {RUNE_C(0x001EF3), RUNE_C(0x001EF3)},
+ {RUNE_C(0x001EF5), RUNE_C(0x001EF5)},
+ {RUNE_C(0x001EF7), RUNE_C(0x001EF7)},
+ {RUNE_C(0x001EF9), RUNE_C(0x001EF9)},
+ {RUNE_C(0x001EFB), RUNE_C(0x001EFB)},
+ {RUNE_C(0x001EFD), RUNE_C(0x001EFD)},
+ {RUNE_C(0x001EFF), RUNE_C(0x001F07)},
+ {RUNE_C(0x001F10), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F27)},
+ {RUNE_C(0x001F30), RUNE_C(0x001F37)},
+ {RUNE_C(0x001F40), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F60), RUNE_C(0x001F67)},
+ {RUNE_C(0x001F70), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001F87)},
+ {RUNE_C(0x001F90), RUNE_C(0x001F97)},
+ {RUNE_C(0x001FA0), RUNE_C(0x001FA7)},
+ {RUNE_C(0x001FB0), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FB7)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FC7)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FD7)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FE7)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FF7)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002170), RUNE_C(0x00217F)},
+ {RUNE_C(0x002184), RUNE_C(0x002184)},
+ {RUNE_C(0x0024D0), RUNE_C(0x0024E9)},
+ {RUNE_C(0x002C30), RUNE_C(0x002C5F)},
+ {RUNE_C(0x002C61), RUNE_C(0x002C61)},
+ {RUNE_C(0x002C65), RUNE_C(0x002C66)},
+ {RUNE_C(0x002C68), RUNE_C(0x002C68)},
+ {RUNE_C(0x002C6A), RUNE_C(0x002C6A)},
+ {RUNE_C(0x002C6C), RUNE_C(0x002C6C)},
+ {RUNE_C(0x002C73), RUNE_C(0x002C73)},
+ {RUNE_C(0x002C76), RUNE_C(0x002C76)},
+ {RUNE_C(0x002C81), RUNE_C(0x002C81)},
+ {RUNE_C(0x002C83), RUNE_C(0x002C83)},
+ {RUNE_C(0x002C85), RUNE_C(0x002C85)},
+ {RUNE_C(0x002C87), RUNE_C(0x002C87)},
+ {RUNE_C(0x002C89), RUNE_C(0x002C89)},
+ {RUNE_C(0x002C8B), RUNE_C(0x002C8B)},
+ {RUNE_C(0x002C8D), RUNE_C(0x002C8D)},
+ {RUNE_C(0x002C8F), RUNE_C(0x002C8F)},
+ {RUNE_C(0x002C91), RUNE_C(0x002C91)},
+ {RUNE_C(0x002C93), RUNE_C(0x002C93)},
+ {RUNE_C(0x002C95), RUNE_C(0x002C95)},
+ {RUNE_C(0x002C97), RUNE_C(0x002C97)},
+ {RUNE_C(0x002C99), RUNE_C(0x002C99)},
+ {RUNE_C(0x002C9B), RUNE_C(0x002C9B)},
+ {RUNE_C(0x002C9D), RUNE_C(0x002C9D)},
+ {RUNE_C(0x002C9F), RUNE_C(0x002C9F)},
+ {RUNE_C(0x002CA1), RUNE_C(0x002CA1)},
+ {RUNE_C(0x002CA3), RUNE_C(0x002CA3)},
+ {RUNE_C(0x002CA5), RUNE_C(0x002CA5)},
+ {RUNE_C(0x002CA7), RUNE_C(0x002CA7)},
+ {RUNE_C(0x002CA9), RUNE_C(0x002CA9)},
+ {RUNE_C(0x002CAB), RUNE_C(0x002CAB)},
+ {RUNE_C(0x002CAD), RUNE_C(0x002CAD)},
+ {RUNE_C(0x002CAF), RUNE_C(0x002CAF)},
+ {RUNE_C(0x002CB1), RUNE_C(0x002CB1)},
+ {RUNE_C(0x002CB3), RUNE_C(0x002CB3)},
+ {RUNE_C(0x002CB5), RUNE_C(0x002CB5)},
+ {RUNE_C(0x002CB7), RUNE_C(0x002CB7)},
+ {RUNE_C(0x002CB9), RUNE_C(0x002CB9)},
+ {RUNE_C(0x002CBB), RUNE_C(0x002CBB)},
+ {RUNE_C(0x002CBD), RUNE_C(0x002CBD)},
+ {RUNE_C(0x002CBF), RUNE_C(0x002CBF)},
+ {RUNE_C(0x002CC1), RUNE_C(0x002CC1)},
+ {RUNE_C(0x002CC3), RUNE_C(0x002CC3)},
+ {RUNE_C(0x002CC5), RUNE_C(0x002CC5)},
+ {RUNE_C(0x002CC7), RUNE_C(0x002CC7)},
+ {RUNE_C(0x002CC9), RUNE_C(0x002CC9)},
+ {RUNE_C(0x002CCB), RUNE_C(0x002CCB)},
+ {RUNE_C(0x002CCD), RUNE_C(0x002CCD)},
+ {RUNE_C(0x002CCF), RUNE_C(0x002CCF)},
+ {RUNE_C(0x002CD1), RUNE_C(0x002CD1)},
+ {RUNE_C(0x002CD3), RUNE_C(0x002CD3)},
+ {RUNE_C(0x002CD5), RUNE_C(0x002CD5)},
+ {RUNE_C(0x002CD7), RUNE_C(0x002CD7)},
+ {RUNE_C(0x002CD9), RUNE_C(0x002CD9)},
+ {RUNE_C(0x002CDB), RUNE_C(0x002CDB)},
+ {RUNE_C(0x002CDD), RUNE_C(0x002CDD)},
+ {RUNE_C(0x002CDF), RUNE_C(0x002CDF)},
+ {RUNE_C(0x002CE1), RUNE_C(0x002CE1)},
+ {RUNE_C(0x002CE3), RUNE_C(0x002CE3)},
+ {RUNE_C(0x002CEC), RUNE_C(0x002CEC)},
+ {RUNE_C(0x002CEE), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF3), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x00A641), RUNE_C(0x00A641)},
+ {RUNE_C(0x00A643), RUNE_C(0x00A643)},
+ {RUNE_C(0x00A645), RUNE_C(0x00A645)},
+ {RUNE_C(0x00A647), RUNE_C(0x00A647)},
+ {RUNE_C(0x00A649), RUNE_C(0x00A649)},
+ {RUNE_C(0x00A64B), RUNE_C(0x00A64B)},
+ {RUNE_C(0x00A64D), RUNE_C(0x00A64D)},
+ {RUNE_C(0x00A64F), RUNE_C(0x00A64F)},
+ {RUNE_C(0x00A651), RUNE_C(0x00A651)},
+ {RUNE_C(0x00A653), RUNE_C(0x00A653)},
+ {RUNE_C(0x00A655), RUNE_C(0x00A655)},
+ {RUNE_C(0x00A657), RUNE_C(0x00A657)},
+ {RUNE_C(0x00A659), RUNE_C(0x00A659)},
+ {RUNE_C(0x00A65B), RUNE_C(0x00A65B)},
+ {RUNE_C(0x00A65D), RUNE_C(0x00A65D)},
+ {RUNE_C(0x00A65F), RUNE_C(0x00A65F)},
+ {RUNE_C(0x00A661), RUNE_C(0x00A661)},
+ {RUNE_C(0x00A663), RUNE_C(0x00A663)},
+ {RUNE_C(0x00A665), RUNE_C(0x00A665)},
+ {RUNE_C(0x00A667), RUNE_C(0x00A667)},
+ {RUNE_C(0x00A669), RUNE_C(0x00A669)},
+ {RUNE_C(0x00A66B), RUNE_C(0x00A66B)},
+ {RUNE_C(0x00A66D), RUNE_C(0x00A66D)},
+ {RUNE_C(0x00A681), RUNE_C(0x00A681)},
+ {RUNE_C(0x00A683), RUNE_C(0x00A683)},
+ {RUNE_C(0x00A685), RUNE_C(0x00A685)},
+ {RUNE_C(0x00A687), RUNE_C(0x00A687)},
+ {RUNE_C(0x00A689), RUNE_C(0x00A689)},
+ {RUNE_C(0x00A68B), RUNE_C(0x00A68B)},
+ {RUNE_C(0x00A68D), RUNE_C(0x00A68D)},
+ {RUNE_C(0x00A68F), RUNE_C(0x00A68F)},
+ {RUNE_C(0x00A691), RUNE_C(0x00A691)},
+ {RUNE_C(0x00A693), RUNE_C(0x00A693)},
+ {RUNE_C(0x00A695), RUNE_C(0x00A695)},
+ {RUNE_C(0x00A697), RUNE_C(0x00A697)},
+ {RUNE_C(0x00A699), RUNE_C(0x00A699)},
+ {RUNE_C(0x00A69B), RUNE_C(0x00A69B)},
+ {RUNE_C(0x00A723), RUNE_C(0x00A723)},
+ {RUNE_C(0x00A725), RUNE_C(0x00A725)},
+ {RUNE_C(0x00A727), RUNE_C(0x00A727)},
+ {RUNE_C(0x00A729), RUNE_C(0x00A729)},
+ {RUNE_C(0x00A72B), RUNE_C(0x00A72B)},
+ {RUNE_C(0x00A72D), RUNE_C(0x00A72D)},
+ {RUNE_C(0x00A72F), RUNE_C(0x00A72F)},
+ {RUNE_C(0x00A733), RUNE_C(0x00A733)},
+ {RUNE_C(0x00A735), RUNE_C(0x00A735)},
+ {RUNE_C(0x00A737), RUNE_C(0x00A737)},
+ {RUNE_C(0x00A739), RUNE_C(0x00A739)},
+ {RUNE_C(0x00A73B), RUNE_C(0x00A73B)},
+ {RUNE_C(0x00A73D), RUNE_C(0x00A73D)},
+ {RUNE_C(0x00A73F), RUNE_C(0x00A73F)},
+ {RUNE_C(0x00A741), RUNE_C(0x00A741)},
+ {RUNE_C(0x00A743), RUNE_C(0x00A743)},
+ {RUNE_C(0x00A745), RUNE_C(0x00A745)},
+ {RUNE_C(0x00A747), RUNE_C(0x00A747)},
+ {RUNE_C(0x00A749), RUNE_C(0x00A749)},
+ {RUNE_C(0x00A74B), RUNE_C(0x00A74B)},
+ {RUNE_C(0x00A74D), RUNE_C(0x00A74D)},
+ {RUNE_C(0x00A74F), RUNE_C(0x00A74F)},
+ {RUNE_C(0x00A751), RUNE_C(0x00A751)},
+ {RUNE_C(0x00A753), RUNE_C(0x00A753)},
+ {RUNE_C(0x00A755), RUNE_C(0x00A755)},
+ {RUNE_C(0x00A757), RUNE_C(0x00A757)},
+ {RUNE_C(0x00A759), RUNE_C(0x00A759)},
+ {RUNE_C(0x00A75B), RUNE_C(0x00A75B)},
+ {RUNE_C(0x00A75D), RUNE_C(0x00A75D)},
+ {RUNE_C(0x00A75F), RUNE_C(0x00A75F)},
+ {RUNE_C(0x00A761), RUNE_C(0x00A761)},
+ {RUNE_C(0x00A763), RUNE_C(0x00A763)},
+ {RUNE_C(0x00A765), RUNE_C(0x00A765)},
+ {RUNE_C(0x00A767), RUNE_C(0x00A767)},
+ {RUNE_C(0x00A769), RUNE_C(0x00A769)},
+ {RUNE_C(0x00A76B), RUNE_C(0x00A76B)},
+ {RUNE_C(0x00A76D), RUNE_C(0x00A76D)},
+ {RUNE_C(0x00A76F), RUNE_C(0x00A76F)},
+ {RUNE_C(0x00A77A), RUNE_C(0x00A77A)},
+ {RUNE_C(0x00A77C), RUNE_C(0x00A77C)},
+ {RUNE_C(0x00A77F), RUNE_C(0x00A77F)},
+ {RUNE_C(0x00A781), RUNE_C(0x00A781)},
+ {RUNE_C(0x00A783), RUNE_C(0x00A783)},
+ {RUNE_C(0x00A785), RUNE_C(0x00A785)},
+ {RUNE_C(0x00A787), RUNE_C(0x00A787)},
+ {RUNE_C(0x00A78C), RUNE_C(0x00A78C)},
+ {RUNE_C(0x00A791), RUNE_C(0x00A791)},
+ {RUNE_C(0x00A793), RUNE_C(0x00A794)},
+ {RUNE_C(0x00A797), RUNE_C(0x00A797)},
+ {RUNE_C(0x00A799), RUNE_C(0x00A799)},
+ {RUNE_C(0x00A79B), RUNE_C(0x00A79B)},
+ {RUNE_C(0x00A79D), RUNE_C(0x00A79D)},
+ {RUNE_C(0x00A79F), RUNE_C(0x00A79F)},
+ {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)},
+ {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)},
+ {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)},
+ {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)},
+ {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)},
+ {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)},
+ {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)},
+ {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)},
+ {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)},
+ {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)},
+ {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)},
+ {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)},
+ {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)},
+ {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)},
+ {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)},
+ {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)},
+ {RUNE_C(0x00AB53), RUNE_C(0x00AB53)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x010428), RUNE_C(0x01044F)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x0118C0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x016E60), RUNE_C(0x016E7F)},
+ {RUNE_C(0x01E922), RUNE_C(0x01E943)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_cwt(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_cwu.c b/lib/unicode/prop/uprop_is_cwu.c
new file mode 100644
index 0000000..27bf088
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_cwu.c
@@ -0,0 +1,651 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000101), RUNE_C(0x000101)},
+ {RUNE_C(0x000103), RUNE_C(0x000103)},
+ {RUNE_C(0x000105), RUNE_C(0x000105)},
+ {RUNE_C(0x000107), RUNE_C(0x000107)},
+ {RUNE_C(0x000109), RUNE_C(0x000109)},
+ {RUNE_C(0x00010B), RUNE_C(0x00010B)},
+ {RUNE_C(0x00010D), RUNE_C(0x00010D)},
+ {RUNE_C(0x00010F), RUNE_C(0x00010F)},
+ {RUNE_C(0x000111), RUNE_C(0x000111)},
+ {RUNE_C(0x000113), RUNE_C(0x000113)},
+ {RUNE_C(0x000115), RUNE_C(0x000115)},
+ {RUNE_C(0x000117), RUNE_C(0x000117)},
+ {RUNE_C(0x000119), RUNE_C(0x000119)},
+ {RUNE_C(0x00011B), RUNE_C(0x00011B)},
+ {RUNE_C(0x00011D), RUNE_C(0x00011D)},
+ {RUNE_C(0x00011F), RUNE_C(0x00011F)},
+ {RUNE_C(0x000121), RUNE_C(0x000121)},
+ {RUNE_C(0x000123), RUNE_C(0x000123)},
+ {RUNE_C(0x000125), RUNE_C(0x000125)},
+ {RUNE_C(0x000127), RUNE_C(0x000127)},
+ {RUNE_C(0x000129), RUNE_C(0x000129)},
+ {RUNE_C(0x00012B), RUNE_C(0x00012B)},
+ {RUNE_C(0x00012D), RUNE_C(0x00012D)},
+ {RUNE_C(0x00012F), RUNE_C(0x00012F)},
+ {RUNE_C(0x000131), RUNE_C(0x000131)},
+ {RUNE_C(0x000133), RUNE_C(0x000133)},
+ {RUNE_C(0x000135), RUNE_C(0x000135)},
+ {RUNE_C(0x000137), RUNE_C(0x000137)},
+ {RUNE_C(0x00013A), RUNE_C(0x00013A)},
+ {RUNE_C(0x00013C), RUNE_C(0x00013C)},
+ {RUNE_C(0x00013E), RUNE_C(0x00013E)},
+ {RUNE_C(0x000140), RUNE_C(0x000140)},
+ {RUNE_C(0x000142), RUNE_C(0x000142)},
+ {RUNE_C(0x000144), RUNE_C(0x000144)},
+ {RUNE_C(0x000146), RUNE_C(0x000146)},
+ {RUNE_C(0x000148), RUNE_C(0x000149)},
+ {RUNE_C(0x00014B), RUNE_C(0x00014B)},
+ {RUNE_C(0x00014D), RUNE_C(0x00014D)},
+ {RUNE_C(0x00014F), RUNE_C(0x00014F)},
+ {RUNE_C(0x000151), RUNE_C(0x000151)},
+ {RUNE_C(0x000153), RUNE_C(0x000153)},
+ {RUNE_C(0x000155), RUNE_C(0x000155)},
+ {RUNE_C(0x000157), RUNE_C(0x000157)},
+ {RUNE_C(0x000159), RUNE_C(0x000159)},
+ {RUNE_C(0x00015B), RUNE_C(0x00015B)},
+ {RUNE_C(0x00015D), RUNE_C(0x00015D)},
+ {RUNE_C(0x00015F), RUNE_C(0x00015F)},
+ {RUNE_C(0x000161), RUNE_C(0x000161)},
+ {RUNE_C(0x000163), RUNE_C(0x000163)},
+ {RUNE_C(0x000165), RUNE_C(0x000165)},
+ {RUNE_C(0x000167), RUNE_C(0x000167)},
+ {RUNE_C(0x000169), RUNE_C(0x000169)},
+ {RUNE_C(0x00016B), RUNE_C(0x00016B)},
+ {RUNE_C(0x00016D), RUNE_C(0x00016D)},
+ {RUNE_C(0x00016F), RUNE_C(0x00016F)},
+ {RUNE_C(0x000171), RUNE_C(0x000171)},
+ {RUNE_C(0x000173), RUNE_C(0x000173)},
+ {RUNE_C(0x000175), RUNE_C(0x000175)},
+ {RUNE_C(0x000177), RUNE_C(0x000177)},
+ {RUNE_C(0x00017A), RUNE_C(0x00017A)},
+ {RUNE_C(0x00017C), RUNE_C(0x00017C)},
+ {RUNE_C(0x00017E), RUNE_C(0x000180)},
+ {RUNE_C(0x000183), RUNE_C(0x000183)},
+ {RUNE_C(0x000185), RUNE_C(0x000185)},
+ {RUNE_C(0x000188), RUNE_C(0x000188)},
+ {RUNE_C(0x00018C), RUNE_C(0x00018C)},
+ {RUNE_C(0x000192), RUNE_C(0x000192)},
+ {RUNE_C(0x000195), RUNE_C(0x000195)},
+ {RUNE_C(0x000199), RUNE_C(0x00019A)},
+ {RUNE_C(0x00019E), RUNE_C(0x00019E)},
+ {RUNE_C(0x0001A1), RUNE_C(0x0001A1)},
+ {RUNE_C(0x0001A3), RUNE_C(0x0001A3)},
+ {RUNE_C(0x0001A5), RUNE_C(0x0001A5)},
+ {RUNE_C(0x0001A8), RUNE_C(0x0001A8)},
+ {RUNE_C(0x0001AD), RUNE_C(0x0001AD)},
+ {RUNE_C(0x0001B0), RUNE_C(0x0001B0)},
+ {RUNE_C(0x0001B4), RUNE_C(0x0001B4)},
+ {RUNE_C(0x0001B6), RUNE_C(0x0001B6)},
+ {RUNE_C(0x0001B9), RUNE_C(0x0001B9)},
+ {RUNE_C(0x0001BD), RUNE_C(0x0001BD)},
+ {RUNE_C(0x0001BF), RUNE_C(0x0001BF)},
+ {RUNE_C(0x0001C5), RUNE_C(0x0001C6)},
+ {RUNE_C(0x0001C8), RUNE_C(0x0001C9)},
+ {RUNE_C(0x0001CB), RUNE_C(0x0001CC)},
+ {RUNE_C(0x0001CE), RUNE_C(0x0001CE)},
+ {RUNE_C(0x0001D0), RUNE_C(0x0001D0)},
+ {RUNE_C(0x0001D2), RUNE_C(0x0001D2)},
+ {RUNE_C(0x0001D4), RUNE_C(0x0001D4)},
+ {RUNE_C(0x0001D6), RUNE_C(0x0001D6)},
+ {RUNE_C(0x0001D8), RUNE_C(0x0001D8)},
+ {RUNE_C(0x0001DA), RUNE_C(0x0001DA)},
+ {RUNE_C(0x0001DC), RUNE_C(0x0001DD)},
+ {RUNE_C(0x0001DF), RUNE_C(0x0001DF)},
+ {RUNE_C(0x0001E1), RUNE_C(0x0001E1)},
+ {RUNE_C(0x0001E3), RUNE_C(0x0001E3)},
+ {RUNE_C(0x0001E5), RUNE_C(0x0001E5)},
+ {RUNE_C(0x0001E7), RUNE_C(0x0001E7)},
+ {RUNE_C(0x0001E9), RUNE_C(0x0001E9)},
+ {RUNE_C(0x0001EB), RUNE_C(0x0001EB)},
+ {RUNE_C(0x0001ED), RUNE_C(0x0001ED)},
+ {RUNE_C(0x0001EF), RUNE_C(0x0001F0)},
+ {RUNE_C(0x0001F2), RUNE_C(0x0001F3)},
+ {RUNE_C(0x0001F5), RUNE_C(0x0001F5)},
+ {RUNE_C(0x0001F9), RUNE_C(0x0001F9)},
+ {RUNE_C(0x0001FB), RUNE_C(0x0001FB)},
+ {RUNE_C(0x0001FD), RUNE_C(0x0001FD)},
+ {RUNE_C(0x0001FF), RUNE_C(0x0001FF)},
+ {RUNE_C(0x000201), RUNE_C(0x000201)},
+ {RUNE_C(0x000203), RUNE_C(0x000203)},
+ {RUNE_C(0x000205), RUNE_C(0x000205)},
+ {RUNE_C(0x000207), RUNE_C(0x000207)},
+ {RUNE_C(0x000209), RUNE_C(0x000209)},
+ {RUNE_C(0x00020B), RUNE_C(0x00020B)},
+ {RUNE_C(0x00020D), RUNE_C(0x00020D)},
+ {RUNE_C(0x00020F), RUNE_C(0x00020F)},
+ {RUNE_C(0x000211), RUNE_C(0x000211)},
+ {RUNE_C(0x000213), RUNE_C(0x000213)},
+ {RUNE_C(0x000215), RUNE_C(0x000215)},
+ {RUNE_C(0x000217), RUNE_C(0x000217)},
+ {RUNE_C(0x000219), RUNE_C(0x000219)},
+ {RUNE_C(0x00021B), RUNE_C(0x00021B)},
+ {RUNE_C(0x00021D), RUNE_C(0x00021D)},
+ {RUNE_C(0x00021F), RUNE_C(0x00021F)},
+ {RUNE_C(0x000223), RUNE_C(0x000223)},
+ {RUNE_C(0x000225), RUNE_C(0x000225)},
+ {RUNE_C(0x000227), RUNE_C(0x000227)},
+ {RUNE_C(0x000229), RUNE_C(0x000229)},
+ {RUNE_C(0x00022B), RUNE_C(0x00022B)},
+ {RUNE_C(0x00022D), RUNE_C(0x00022D)},
+ {RUNE_C(0x00022F), RUNE_C(0x00022F)},
+ {RUNE_C(0x000231), RUNE_C(0x000231)},
+ {RUNE_C(0x000233), RUNE_C(0x000233)},
+ {RUNE_C(0x00023C), RUNE_C(0x00023C)},
+ {RUNE_C(0x00023F), RUNE_C(0x000240)},
+ {RUNE_C(0x000242), RUNE_C(0x000242)},
+ {RUNE_C(0x000247), RUNE_C(0x000247)},
+ {RUNE_C(0x000249), RUNE_C(0x000249)},
+ {RUNE_C(0x00024B), RUNE_C(0x00024B)},
+ {RUNE_C(0x00024D), RUNE_C(0x00024D)},
+ {RUNE_C(0x00024F), RUNE_C(0x000254)},
+ {RUNE_C(0x000256), RUNE_C(0x000257)},
+ {RUNE_C(0x000259), RUNE_C(0x000259)},
+ {RUNE_C(0x00025B), RUNE_C(0x00025C)},
+ {RUNE_C(0x000260), RUNE_C(0x000261)},
+ {RUNE_C(0x000263), RUNE_C(0x000263)},
+ {RUNE_C(0x000265), RUNE_C(0x000266)},
+ {RUNE_C(0x000268), RUNE_C(0x00026C)},
+ {RUNE_C(0x00026F), RUNE_C(0x00026F)},
+ {RUNE_C(0x000271), RUNE_C(0x000272)},
+ {RUNE_C(0x000275), RUNE_C(0x000275)},
+ {RUNE_C(0x00027D), RUNE_C(0x00027D)},
+ {RUNE_C(0x000280), RUNE_C(0x000280)},
+ {RUNE_C(0x000282), RUNE_C(0x000283)},
+ {RUNE_C(0x000287), RUNE_C(0x00028C)},
+ {RUNE_C(0x000292), RUNE_C(0x000292)},
+ {RUNE_C(0x00029D), RUNE_C(0x00029E)},
+ {RUNE_C(0x000345), RUNE_C(0x000345)},
+ {RUNE_C(0x000371), RUNE_C(0x000371)},
+ {RUNE_C(0x000373), RUNE_C(0x000373)},
+ {RUNE_C(0x000377), RUNE_C(0x000377)},
+ {RUNE_C(0x00037B), RUNE_C(0x00037D)},
+ {RUNE_C(0x000390), RUNE_C(0x000390)},
+ {RUNE_C(0x0003AC), RUNE_C(0x0003CE)},
+ {RUNE_C(0x0003D0), RUNE_C(0x0003D1)},
+ {RUNE_C(0x0003D5), RUNE_C(0x0003D7)},
+ {RUNE_C(0x0003D9), RUNE_C(0x0003D9)},
+ {RUNE_C(0x0003DB), RUNE_C(0x0003DB)},
+ {RUNE_C(0x0003DD), RUNE_C(0x0003DD)},
+ {RUNE_C(0x0003DF), RUNE_C(0x0003DF)},
+ {RUNE_C(0x0003E1), RUNE_C(0x0003E1)},
+ {RUNE_C(0x0003E3), RUNE_C(0x0003E3)},
+ {RUNE_C(0x0003E5), RUNE_C(0x0003E5)},
+ {RUNE_C(0x0003E7), RUNE_C(0x0003E7)},
+ {RUNE_C(0x0003E9), RUNE_C(0x0003E9)},
+ {RUNE_C(0x0003EB), RUNE_C(0x0003EB)},
+ {RUNE_C(0x0003ED), RUNE_C(0x0003ED)},
+ {RUNE_C(0x0003EF), RUNE_C(0x0003F3)},
+ {RUNE_C(0x0003F5), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F8), RUNE_C(0x0003F8)},
+ {RUNE_C(0x0003FB), RUNE_C(0x0003FB)},
+ {RUNE_C(0x000430), RUNE_C(0x00045F)},
+ {RUNE_C(0x000461), RUNE_C(0x000461)},
+ {RUNE_C(0x000463), RUNE_C(0x000463)},
+ {RUNE_C(0x000465), RUNE_C(0x000465)},
+ {RUNE_C(0x000467), RUNE_C(0x000467)},
+ {RUNE_C(0x000469), RUNE_C(0x000469)},
+ {RUNE_C(0x00046B), RUNE_C(0x00046B)},
+ {RUNE_C(0x00046D), RUNE_C(0x00046D)},
+ {RUNE_C(0x00046F), RUNE_C(0x00046F)},
+ {RUNE_C(0x000471), RUNE_C(0x000471)},
+ {RUNE_C(0x000473), RUNE_C(0x000473)},
+ {RUNE_C(0x000475), RUNE_C(0x000475)},
+ {RUNE_C(0x000477), RUNE_C(0x000477)},
+ {RUNE_C(0x000479), RUNE_C(0x000479)},
+ {RUNE_C(0x00047B), RUNE_C(0x00047B)},
+ {RUNE_C(0x00047D), RUNE_C(0x00047D)},
+ {RUNE_C(0x00047F), RUNE_C(0x00047F)},
+ {RUNE_C(0x000481), RUNE_C(0x000481)},
+ {RUNE_C(0x00048B), RUNE_C(0x00048B)},
+ {RUNE_C(0x00048D), RUNE_C(0x00048D)},
+ {RUNE_C(0x00048F), RUNE_C(0x00048F)},
+ {RUNE_C(0x000491), RUNE_C(0x000491)},
+ {RUNE_C(0x000493), RUNE_C(0x000493)},
+ {RUNE_C(0x000495), RUNE_C(0x000495)},
+ {RUNE_C(0x000497), RUNE_C(0x000497)},
+ {RUNE_C(0x000499), RUNE_C(0x000499)},
+ {RUNE_C(0x00049B), RUNE_C(0x00049B)},
+ {RUNE_C(0x00049D), RUNE_C(0x00049D)},
+ {RUNE_C(0x00049F), RUNE_C(0x00049F)},
+ {RUNE_C(0x0004A1), RUNE_C(0x0004A1)},
+ {RUNE_C(0x0004A3), RUNE_C(0x0004A3)},
+ {RUNE_C(0x0004A5), RUNE_C(0x0004A5)},
+ {RUNE_C(0x0004A7), RUNE_C(0x0004A7)},
+ {RUNE_C(0x0004A9), RUNE_C(0x0004A9)},
+ {RUNE_C(0x0004AB), RUNE_C(0x0004AB)},
+ {RUNE_C(0x0004AD), RUNE_C(0x0004AD)},
+ {RUNE_C(0x0004AF), RUNE_C(0x0004AF)},
+ {RUNE_C(0x0004B1), RUNE_C(0x0004B1)},
+ {RUNE_C(0x0004B3), RUNE_C(0x0004B3)},
+ {RUNE_C(0x0004B5), RUNE_C(0x0004B5)},
+ {RUNE_C(0x0004B7), RUNE_C(0x0004B7)},
+ {RUNE_C(0x0004B9), RUNE_C(0x0004B9)},
+ {RUNE_C(0x0004BB), RUNE_C(0x0004BB)},
+ {RUNE_C(0x0004BD), RUNE_C(0x0004BD)},
+ {RUNE_C(0x0004BF), RUNE_C(0x0004BF)},
+ {RUNE_C(0x0004C2), RUNE_C(0x0004C2)},
+ {RUNE_C(0x0004C4), RUNE_C(0x0004C4)},
+ {RUNE_C(0x0004C6), RUNE_C(0x0004C6)},
+ {RUNE_C(0x0004C8), RUNE_C(0x0004C8)},
+ {RUNE_C(0x0004CA), RUNE_C(0x0004CA)},
+ {RUNE_C(0x0004CC), RUNE_C(0x0004CC)},
+ {RUNE_C(0x0004CE), RUNE_C(0x0004CF)},
+ {RUNE_C(0x0004D1), RUNE_C(0x0004D1)},
+ {RUNE_C(0x0004D3), RUNE_C(0x0004D3)},
+ {RUNE_C(0x0004D5), RUNE_C(0x0004D5)},
+ {RUNE_C(0x0004D7), RUNE_C(0x0004D7)},
+ {RUNE_C(0x0004D9), RUNE_C(0x0004D9)},
+ {RUNE_C(0x0004DB), RUNE_C(0x0004DB)},
+ {RUNE_C(0x0004DD), RUNE_C(0x0004DD)},
+ {RUNE_C(0x0004DF), RUNE_C(0x0004DF)},
+ {RUNE_C(0x0004E1), RUNE_C(0x0004E1)},
+ {RUNE_C(0x0004E3), RUNE_C(0x0004E3)},
+ {RUNE_C(0x0004E5), RUNE_C(0x0004E5)},
+ {RUNE_C(0x0004E7), RUNE_C(0x0004E7)},
+ {RUNE_C(0x0004E9), RUNE_C(0x0004E9)},
+ {RUNE_C(0x0004EB), RUNE_C(0x0004EB)},
+ {RUNE_C(0x0004ED), RUNE_C(0x0004ED)},
+ {RUNE_C(0x0004EF), RUNE_C(0x0004EF)},
+ {RUNE_C(0x0004F1), RUNE_C(0x0004F1)},
+ {RUNE_C(0x0004F3), RUNE_C(0x0004F3)},
+ {RUNE_C(0x0004F5), RUNE_C(0x0004F5)},
+ {RUNE_C(0x0004F7), RUNE_C(0x0004F7)},
+ {RUNE_C(0x0004F9), RUNE_C(0x0004F9)},
+ {RUNE_C(0x0004FB), RUNE_C(0x0004FB)},
+ {RUNE_C(0x0004FD), RUNE_C(0x0004FD)},
+ {RUNE_C(0x0004FF), RUNE_C(0x0004FF)},
+ {RUNE_C(0x000501), RUNE_C(0x000501)},
+ {RUNE_C(0x000503), RUNE_C(0x000503)},
+ {RUNE_C(0x000505), RUNE_C(0x000505)},
+ {RUNE_C(0x000507), RUNE_C(0x000507)},
+ {RUNE_C(0x000509), RUNE_C(0x000509)},
+ {RUNE_C(0x00050B), RUNE_C(0x00050B)},
+ {RUNE_C(0x00050D), RUNE_C(0x00050D)},
+ {RUNE_C(0x00050F), RUNE_C(0x00050F)},
+ {RUNE_C(0x000511), RUNE_C(0x000511)},
+ {RUNE_C(0x000513), RUNE_C(0x000513)},
+ {RUNE_C(0x000515), RUNE_C(0x000515)},
+ {RUNE_C(0x000517), RUNE_C(0x000517)},
+ {RUNE_C(0x000519), RUNE_C(0x000519)},
+ {RUNE_C(0x00051B), RUNE_C(0x00051B)},
+ {RUNE_C(0x00051D), RUNE_C(0x00051D)},
+ {RUNE_C(0x00051F), RUNE_C(0x00051F)},
+ {RUNE_C(0x000521), RUNE_C(0x000521)},
+ {RUNE_C(0x000523), RUNE_C(0x000523)},
+ {RUNE_C(0x000525), RUNE_C(0x000525)},
+ {RUNE_C(0x000527), RUNE_C(0x000527)},
+ {RUNE_C(0x000529), RUNE_C(0x000529)},
+ {RUNE_C(0x00052B), RUNE_C(0x00052B)},
+ {RUNE_C(0x00052D), RUNE_C(0x00052D)},
+ {RUNE_C(0x00052F), RUNE_C(0x00052F)},
+ {RUNE_C(0x000561), RUNE_C(0x000587)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FD), RUNE_C(0x0010FF)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001D79), RUNE_C(0x001D79)},
+ {RUNE_C(0x001D7D), RUNE_C(0x001D7D)},
+ {RUNE_C(0x001D8E), RUNE_C(0x001D8E)},
+ {RUNE_C(0x001E01), RUNE_C(0x001E01)},
+ {RUNE_C(0x001E03), RUNE_C(0x001E03)},
+ {RUNE_C(0x001E05), RUNE_C(0x001E05)},
+ {RUNE_C(0x001E07), RUNE_C(0x001E07)},
+ {RUNE_C(0x001E09), RUNE_C(0x001E09)},
+ {RUNE_C(0x001E0B), RUNE_C(0x001E0B)},
+ {RUNE_C(0x001E0D), RUNE_C(0x001E0D)},
+ {RUNE_C(0x001E0F), RUNE_C(0x001E0F)},
+ {RUNE_C(0x001E11), RUNE_C(0x001E11)},
+ {RUNE_C(0x001E13), RUNE_C(0x001E13)},
+ {RUNE_C(0x001E15), RUNE_C(0x001E15)},
+ {RUNE_C(0x001E17), RUNE_C(0x001E17)},
+ {RUNE_C(0x001E19), RUNE_C(0x001E19)},
+ {RUNE_C(0x001E1B), RUNE_C(0x001E1B)},
+ {RUNE_C(0x001E1D), RUNE_C(0x001E1D)},
+ {RUNE_C(0x001E1F), RUNE_C(0x001E1F)},
+ {RUNE_C(0x001E21), RUNE_C(0x001E21)},
+ {RUNE_C(0x001E23), RUNE_C(0x001E23)},
+ {RUNE_C(0x001E25), RUNE_C(0x001E25)},
+ {RUNE_C(0x001E27), RUNE_C(0x001E27)},
+ {RUNE_C(0x001E29), RUNE_C(0x001E29)},
+ {RUNE_C(0x001E2B), RUNE_C(0x001E2B)},
+ {RUNE_C(0x001E2D), RUNE_C(0x001E2D)},
+ {RUNE_C(0x001E2F), RUNE_C(0x001E2F)},
+ {RUNE_C(0x001E31), RUNE_C(0x001E31)},
+ {RUNE_C(0x001E33), RUNE_C(0x001E33)},
+ {RUNE_C(0x001E35), RUNE_C(0x001E35)},
+ {RUNE_C(0x001E37), RUNE_C(0x001E37)},
+ {RUNE_C(0x001E39), RUNE_C(0x001E39)},
+ {RUNE_C(0x001E3B), RUNE_C(0x001E3B)},
+ {RUNE_C(0x001E3D), RUNE_C(0x001E3D)},
+ {RUNE_C(0x001E3F), RUNE_C(0x001E3F)},
+ {RUNE_C(0x001E41), RUNE_C(0x001E41)},
+ {RUNE_C(0x001E43), RUNE_C(0x001E43)},
+ {RUNE_C(0x001E45), RUNE_C(0x001E45)},
+ {RUNE_C(0x001E47), RUNE_C(0x001E47)},
+ {RUNE_C(0x001E49), RUNE_C(0x001E49)},
+ {RUNE_C(0x001E4B), RUNE_C(0x001E4B)},
+ {RUNE_C(0x001E4D), RUNE_C(0x001E4D)},
+ {RUNE_C(0x001E4F), RUNE_C(0x001E4F)},
+ {RUNE_C(0x001E51), RUNE_C(0x001E51)},
+ {RUNE_C(0x001E53), RUNE_C(0x001E53)},
+ {RUNE_C(0x001E55), RUNE_C(0x001E55)},
+ {RUNE_C(0x001E57), RUNE_C(0x001E57)},
+ {RUNE_C(0x001E59), RUNE_C(0x001E59)},
+ {RUNE_C(0x001E5B), RUNE_C(0x001E5B)},
+ {RUNE_C(0x001E5D), RUNE_C(0x001E5D)},
+ {RUNE_C(0x001E5F), RUNE_C(0x001E5F)},
+ {RUNE_C(0x001E61), RUNE_C(0x001E61)},
+ {RUNE_C(0x001E63), RUNE_C(0x001E63)},
+ {RUNE_C(0x001E65), RUNE_C(0x001E65)},
+ {RUNE_C(0x001E67), RUNE_C(0x001E67)},
+ {RUNE_C(0x001E69), RUNE_C(0x001E69)},
+ {RUNE_C(0x001E6B), RUNE_C(0x001E6B)},
+ {RUNE_C(0x001E6D), RUNE_C(0x001E6D)},
+ {RUNE_C(0x001E6F), RUNE_C(0x001E6F)},
+ {RUNE_C(0x001E71), RUNE_C(0x001E71)},
+ {RUNE_C(0x001E73), RUNE_C(0x001E73)},
+ {RUNE_C(0x001E75), RUNE_C(0x001E75)},
+ {RUNE_C(0x001E77), RUNE_C(0x001E77)},
+ {RUNE_C(0x001E79), RUNE_C(0x001E79)},
+ {RUNE_C(0x001E7B), RUNE_C(0x001E7B)},
+ {RUNE_C(0x001E7D), RUNE_C(0x001E7D)},
+ {RUNE_C(0x001E7F), RUNE_C(0x001E7F)},
+ {RUNE_C(0x001E81), RUNE_C(0x001E81)},
+ {RUNE_C(0x001E83), RUNE_C(0x001E83)},
+ {RUNE_C(0x001E85), RUNE_C(0x001E85)},
+ {RUNE_C(0x001E87), RUNE_C(0x001E87)},
+ {RUNE_C(0x001E89), RUNE_C(0x001E89)},
+ {RUNE_C(0x001E8B), RUNE_C(0x001E8B)},
+ {RUNE_C(0x001E8D), RUNE_C(0x001E8D)},
+ {RUNE_C(0x001E8F), RUNE_C(0x001E8F)},
+ {RUNE_C(0x001E91), RUNE_C(0x001E91)},
+ {RUNE_C(0x001E93), RUNE_C(0x001E93)},
+ {RUNE_C(0x001E95), RUNE_C(0x001E9B)},
+ {RUNE_C(0x001EA1), RUNE_C(0x001EA1)},
+ {RUNE_C(0x001EA3), RUNE_C(0x001EA3)},
+ {RUNE_C(0x001EA5), RUNE_C(0x001EA5)},
+ {RUNE_C(0x001EA7), RUNE_C(0x001EA7)},
+ {RUNE_C(0x001EA9), RUNE_C(0x001EA9)},
+ {RUNE_C(0x001EAB), RUNE_C(0x001EAB)},
+ {RUNE_C(0x001EAD), RUNE_C(0x001EAD)},
+ {RUNE_C(0x001EAF), RUNE_C(0x001EAF)},
+ {RUNE_C(0x001EB1), RUNE_C(0x001EB1)},
+ {RUNE_C(0x001EB3), RUNE_C(0x001EB3)},
+ {RUNE_C(0x001EB5), RUNE_C(0x001EB5)},
+ {RUNE_C(0x001EB7), RUNE_C(0x001EB7)},
+ {RUNE_C(0x001EB9), RUNE_C(0x001EB9)},
+ {RUNE_C(0x001EBB), RUNE_C(0x001EBB)},
+ {RUNE_C(0x001EBD), RUNE_C(0x001EBD)},
+ {RUNE_C(0x001EBF), RUNE_C(0x001EBF)},
+ {RUNE_C(0x001EC1), RUNE_C(0x001EC1)},
+ {RUNE_C(0x001EC3), RUNE_C(0x001EC3)},
+ {RUNE_C(0x001EC5), RUNE_C(0x001EC5)},
+ {RUNE_C(0x001EC7), RUNE_C(0x001EC7)},
+ {RUNE_C(0x001EC9), RUNE_C(0x001EC9)},
+ {RUNE_C(0x001ECB), RUNE_C(0x001ECB)},
+ {RUNE_C(0x001ECD), RUNE_C(0x001ECD)},
+ {RUNE_C(0x001ECF), RUNE_C(0x001ECF)},
+ {RUNE_C(0x001ED1), RUNE_C(0x001ED1)},
+ {RUNE_C(0x001ED3), RUNE_C(0x001ED3)},
+ {RUNE_C(0x001ED5), RUNE_C(0x001ED5)},
+ {RUNE_C(0x001ED7), RUNE_C(0x001ED7)},
+ {RUNE_C(0x001ED9), RUNE_C(0x001ED9)},
+ {RUNE_C(0x001EDB), RUNE_C(0x001EDB)},
+ {RUNE_C(0x001EDD), RUNE_C(0x001EDD)},
+ {RUNE_C(0x001EDF), RUNE_C(0x001EDF)},
+ {RUNE_C(0x001EE1), RUNE_C(0x001EE1)},
+ {RUNE_C(0x001EE3), RUNE_C(0x001EE3)},
+ {RUNE_C(0x001EE5), RUNE_C(0x001EE5)},
+ {RUNE_C(0x001EE7), RUNE_C(0x001EE7)},
+ {RUNE_C(0x001EE9), RUNE_C(0x001EE9)},
+ {RUNE_C(0x001EEB), RUNE_C(0x001EEB)},
+ {RUNE_C(0x001EED), RUNE_C(0x001EED)},
+ {RUNE_C(0x001EEF), RUNE_C(0x001EEF)},
+ {RUNE_C(0x001EF1), RUNE_C(0x001EF1)},
+ {RUNE_C(0x001EF3), RUNE_C(0x001EF3)},
+ {RUNE_C(0x001EF5), RUNE_C(0x001EF5)},
+ {RUNE_C(0x001EF7), RUNE_C(0x001EF7)},
+ {RUNE_C(0x001EF9), RUNE_C(0x001EF9)},
+ {RUNE_C(0x001EFB), RUNE_C(0x001EFB)},
+ {RUNE_C(0x001EFD), RUNE_C(0x001EFD)},
+ {RUNE_C(0x001EFF), RUNE_C(0x001F07)},
+ {RUNE_C(0x001F10), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F27)},
+ {RUNE_C(0x001F30), RUNE_C(0x001F37)},
+ {RUNE_C(0x001F40), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F60), RUNE_C(0x001F67)},
+ {RUNE_C(0x001F70), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FB7)},
+ {RUNE_C(0x001FBC), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FC7)},
+ {RUNE_C(0x001FCC), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FD7)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FE7)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FF7)},
+ {RUNE_C(0x001FFC), RUNE_C(0x001FFC)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002170), RUNE_C(0x00217F)},
+ {RUNE_C(0x002184), RUNE_C(0x002184)},
+ {RUNE_C(0x0024D0), RUNE_C(0x0024E9)},
+ {RUNE_C(0x002C30), RUNE_C(0x002C5F)},
+ {RUNE_C(0x002C61), RUNE_C(0x002C61)},
+ {RUNE_C(0x002C65), RUNE_C(0x002C66)},
+ {RUNE_C(0x002C68), RUNE_C(0x002C68)},
+ {RUNE_C(0x002C6A), RUNE_C(0x002C6A)},
+ {RUNE_C(0x002C6C), RUNE_C(0x002C6C)},
+ {RUNE_C(0x002C73), RUNE_C(0x002C73)},
+ {RUNE_C(0x002C76), RUNE_C(0x002C76)},
+ {RUNE_C(0x002C81), RUNE_C(0x002C81)},
+ {RUNE_C(0x002C83), RUNE_C(0x002C83)},
+ {RUNE_C(0x002C85), RUNE_C(0x002C85)},
+ {RUNE_C(0x002C87), RUNE_C(0x002C87)},
+ {RUNE_C(0x002C89), RUNE_C(0x002C89)},
+ {RUNE_C(0x002C8B), RUNE_C(0x002C8B)},
+ {RUNE_C(0x002C8D), RUNE_C(0x002C8D)},
+ {RUNE_C(0x002C8F), RUNE_C(0x002C8F)},
+ {RUNE_C(0x002C91), RUNE_C(0x002C91)},
+ {RUNE_C(0x002C93), RUNE_C(0x002C93)},
+ {RUNE_C(0x002C95), RUNE_C(0x002C95)},
+ {RUNE_C(0x002C97), RUNE_C(0x002C97)},
+ {RUNE_C(0x002C99), RUNE_C(0x002C99)},
+ {RUNE_C(0x002C9B), RUNE_C(0x002C9B)},
+ {RUNE_C(0x002C9D), RUNE_C(0x002C9D)},
+ {RUNE_C(0x002C9F), RUNE_C(0x002C9F)},
+ {RUNE_C(0x002CA1), RUNE_C(0x002CA1)},
+ {RUNE_C(0x002CA3), RUNE_C(0x002CA3)},
+ {RUNE_C(0x002CA5), RUNE_C(0x002CA5)},
+ {RUNE_C(0x002CA7), RUNE_C(0x002CA7)},
+ {RUNE_C(0x002CA9), RUNE_C(0x002CA9)},
+ {RUNE_C(0x002CAB), RUNE_C(0x002CAB)},
+ {RUNE_C(0x002CAD), RUNE_C(0x002CAD)},
+ {RUNE_C(0x002CAF), RUNE_C(0x002CAF)},
+ {RUNE_C(0x002CB1), RUNE_C(0x002CB1)},
+ {RUNE_C(0x002CB3), RUNE_C(0x002CB3)},
+ {RUNE_C(0x002CB5), RUNE_C(0x002CB5)},
+ {RUNE_C(0x002CB7), RUNE_C(0x002CB7)},
+ {RUNE_C(0x002CB9), RUNE_C(0x002CB9)},
+ {RUNE_C(0x002CBB), RUNE_C(0x002CBB)},
+ {RUNE_C(0x002CBD), RUNE_C(0x002CBD)},
+ {RUNE_C(0x002CBF), RUNE_C(0x002CBF)},
+ {RUNE_C(0x002CC1), RUNE_C(0x002CC1)},
+ {RUNE_C(0x002CC3), RUNE_C(0x002CC3)},
+ {RUNE_C(0x002CC5), RUNE_C(0x002CC5)},
+ {RUNE_C(0x002CC7), RUNE_C(0x002CC7)},
+ {RUNE_C(0x002CC9), RUNE_C(0x002CC9)},
+ {RUNE_C(0x002CCB), RUNE_C(0x002CCB)},
+ {RUNE_C(0x002CCD), RUNE_C(0x002CCD)},
+ {RUNE_C(0x002CCF), RUNE_C(0x002CCF)},
+ {RUNE_C(0x002CD1), RUNE_C(0x002CD1)},
+ {RUNE_C(0x002CD3), RUNE_C(0x002CD3)},
+ {RUNE_C(0x002CD5), RUNE_C(0x002CD5)},
+ {RUNE_C(0x002CD7), RUNE_C(0x002CD7)},
+ {RUNE_C(0x002CD9), RUNE_C(0x002CD9)},
+ {RUNE_C(0x002CDB), RUNE_C(0x002CDB)},
+ {RUNE_C(0x002CDD), RUNE_C(0x002CDD)},
+ {RUNE_C(0x002CDF), RUNE_C(0x002CDF)},
+ {RUNE_C(0x002CE1), RUNE_C(0x002CE1)},
+ {RUNE_C(0x002CE3), RUNE_C(0x002CE3)},
+ {RUNE_C(0x002CEC), RUNE_C(0x002CEC)},
+ {RUNE_C(0x002CEE), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF3), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x00A641), RUNE_C(0x00A641)},
+ {RUNE_C(0x00A643), RUNE_C(0x00A643)},
+ {RUNE_C(0x00A645), RUNE_C(0x00A645)},
+ {RUNE_C(0x00A647), RUNE_C(0x00A647)},
+ {RUNE_C(0x00A649), RUNE_C(0x00A649)},
+ {RUNE_C(0x00A64B), RUNE_C(0x00A64B)},
+ {RUNE_C(0x00A64D), RUNE_C(0x00A64D)},
+ {RUNE_C(0x00A64F), RUNE_C(0x00A64F)},
+ {RUNE_C(0x00A651), RUNE_C(0x00A651)},
+ {RUNE_C(0x00A653), RUNE_C(0x00A653)},
+ {RUNE_C(0x00A655), RUNE_C(0x00A655)},
+ {RUNE_C(0x00A657), RUNE_C(0x00A657)},
+ {RUNE_C(0x00A659), RUNE_C(0x00A659)},
+ {RUNE_C(0x00A65B), RUNE_C(0x00A65B)},
+ {RUNE_C(0x00A65D), RUNE_C(0x00A65D)},
+ {RUNE_C(0x00A65F), RUNE_C(0x00A65F)},
+ {RUNE_C(0x00A661), RUNE_C(0x00A661)},
+ {RUNE_C(0x00A663), RUNE_C(0x00A663)},
+ {RUNE_C(0x00A665), RUNE_C(0x00A665)},
+ {RUNE_C(0x00A667), RUNE_C(0x00A667)},
+ {RUNE_C(0x00A669), RUNE_C(0x00A669)},
+ {RUNE_C(0x00A66B), RUNE_C(0x00A66B)},
+ {RUNE_C(0x00A66D), RUNE_C(0x00A66D)},
+ {RUNE_C(0x00A681), RUNE_C(0x00A681)},
+ {RUNE_C(0x00A683), RUNE_C(0x00A683)},
+ {RUNE_C(0x00A685), RUNE_C(0x00A685)},
+ {RUNE_C(0x00A687), RUNE_C(0x00A687)},
+ {RUNE_C(0x00A689), RUNE_C(0x00A689)},
+ {RUNE_C(0x00A68B), RUNE_C(0x00A68B)},
+ {RUNE_C(0x00A68D), RUNE_C(0x00A68D)},
+ {RUNE_C(0x00A68F), RUNE_C(0x00A68F)},
+ {RUNE_C(0x00A691), RUNE_C(0x00A691)},
+ {RUNE_C(0x00A693), RUNE_C(0x00A693)},
+ {RUNE_C(0x00A695), RUNE_C(0x00A695)},
+ {RUNE_C(0x00A697), RUNE_C(0x00A697)},
+ {RUNE_C(0x00A699), RUNE_C(0x00A699)},
+ {RUNE_C(0x00A69B), RUNE_C(0x00A69B)},
+ {RUNE_C(0x00A723), RUNE_C(0x00A723)},
+ {RUNE_C(0x00A725), RUNE_C(0x00A725)},
+ {RUNE_C(0x00A727), RUNE_C(0x00A727)},
+ {RUNE_C(0x00A729), RUNE_C(0x00A729)},
+ {RUNE_C(0x00A72B), RUNE_C(0x00A72B)},
+ {RUNE_C(0x00A72D), RUNE_C(0x00A72D)},
+ {RUNE_C(0x00A72F), RUNE_C(0x00A72F)},
+ {RUNE_C(0x00A733), RUNE_C(0x00A733)},
+ {RUNE_C(0x00A735), RUNE_C(0x00A735)},
+ {RUNE_C(0x00A737), RUNE_C(0x00A737)},
+ {RUNE_C(0x00A739), RUNE_C(0x00A739)},
+ {RUNE_C(0x00A73B), RUNE_C(0x00A73B)},
+ {RUNE_C(0x00A73D), RUNE_C(0x00A73D)},
+ {RUNE_C(0x00A73F), RUNE_C(0x00A73F)},
+ {RUNE_C(0x00A741), RUNE_C(0x00A741)},
+ {RUNE_C(0x00A743), RUNE_C(0x00A743)},
+ {RUNE_C(0x00A745), RUNE_C(0x00A745)},
+ {RUNE_C(0x00A747), RUNE_C(0x00A747)},
+ {RUNE_C(0x00A749), RUNE_C(0x00A749)},
+ {RUNE_C(0x00A74B), RUNE_C(0x00A74B)},
+ {RUNE_C(0x00A74D), RUNE_C(0x00A74D)},
+ {RUNE_C(0x00A74F), RUNE_C(0x00A74F)},
+ {RUNE_C(0x00A751), RUNE_C(0x00A751)},
+ {RUNE_C(0x00A753), RUNE_C(0x00A753)},
+ {RUNE_C(0x00A755), RUNE_C(0x00A755)},
+ {RUNE_C(0x00A757), RUNE_C(0x00A757)},
+ {RUNE_C(0x00A759), RUNE_C(0x00A759)},
+ {RUNE_C(0x00A75B), RUNE_C(0x00A75B)},
+ {RUNE_C(0x00A75D), RUNE_C(0x00A75D)},
+ {RUNE_C(0x00A75F), RUNE_C(0x00A75F)},
+ {RUNE_C(0x00A761), RUNE_C(0x00A761)},
+ {RUNE_C(0x00A763), RUNE_C(0x00A763)},
+ {RUNE_C(0x00A765), RUNE_C(0x00A765)},
+ {RUNE_C(0x00A767), RUNE_C(0x00A767)},
+ {RUNE_C(0x00A769), RUNE_C(0x00A769)},
+ {RUNE_C(0x00A76B), RUNE_C(0x00A76B)},
+ {RUNE_C(0x00A76D), RUNE_C(0x00A76D)},
+ {RUNE_C(0x00A76F), RUNE_C(0x00A76F)},
+ {RUNE_C(0x00A77A), RUNE_C(0x00A77A)},
+ {RUNE_C(0x00A77C), RUNE_C(0x00A77C)},
+ {RUNE_C(0x00A77F), RUNE_C(0x00A77F)},
+ {RUNE_C(0x00A781), RUNE_C(0x00A781)},
+ {RUNE_C(0x00A783), RUNE_C(0x00A783)},
+ {RUNE_C(0x00A785), RUNE_C(0x00A785)},
+ {RUNE_C(0x00A787), RUNE_C(0x00A787)},
+ {RUNE_C(0x00A78C), RUNE_C(0x00A78C)},
+ {RUNE_C(0x00A791), RUNE_C(0x00A791)},
+ {RUNE_C(0x00A793), RUNE_C(0x00A794)},
+ {RUNE_C(0x00A797), RUNE_C(0x00A797)},
+ {RUNE_C(0x00A799), RUNE_C(0x00A799)},
+ {RUNE_C(0x00A79B), RUNE_C(0x00A79B)},
+ {RUNE_C(0x00A79D), RUNE_C(0x00A79D)},
+ {RUNE_C(0x00A79F), RUNE_C(0x00A79F)},
+ {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)},
+ {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)},
+ {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)},
+ {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)},
+ {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)},
+ {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)},
+ {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)},
+ {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)},
+ {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)},
+ {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)},
+ {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)},
+ {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)},
+ {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)},
+ {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)},
+ {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)},
+ {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)},
+ {RUNE_C(0x00AB53), RUNE_C(0x00AB53)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x010428), RUNE_C(0x01044F)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x0118C0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x016E60), RUNE_C(0x016E7F)},
+ {RUNE_C(0x01E922), RUNE_C(0x01E943)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_cwu(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_dash.c b/lib/unicode/prop/uprop_is_dash.c
new file mode 100644
index 0000000..7b326f7
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_dash.c
@@ -0,0 +1,50 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00058A), RUNE_C(0x00058A)},
+ {RUNE_C(0x0005BE), RUNE_C(0x0005BE)},
+ {RUNE_C(0x001400), RUNE_C(0x001400)},
+ {RUNE_C(0x001806), RUNE_C(0x001806)},
+ {RUNE_C(0x002010), RUNE_C(0x002015)},
+ {RUNE_C(0x002053), RUNE_C(0x002053)},
+ {RUNE_C(0x00207B), RUNE_C(0x00207B)},
+ {RUNE_C(0x00208B), RUNE_C(0x00208B)},
+ {RUNE_C(0x002212), RUNE_C(0x002212)},
+ {RUNE_C(0x002E17), RUNE_C(0x002E17)},
+ {RUNE_C(0x002E1A), RUNE_C(0x002E1A)},
+ {RUNE_C(0x002E3A), RUNE_C(0x002E3B)},
+ {RUNE_C(0x002E40), RUNE_C(0x002E40)},
+ {RUNE_C(0x002E5D), RUNE_C(0x002E5D)},
+ {RUNE_C(0x00301C), RUNE_C(0x00301C)},
+ {RUNE_C(0x003030), RUNE_C(0x003030)},
+ {RUNE_C(0x0030A0), RUNE_C(0x0030A0)},
+ {RUNE_C(0x00FE31), RUNE_C(0x00FE32)},
+ {RUNE_C(0x00FE58), RUNE_C(0x00FE58)},
+ {RUNE_C(0x00FE63), RUNE_C(0x00FE63)},
+ {RUNE_C(0x00FF0D), RUNE_C(0x00FF0D)},
+ {RUNE_C(0x010EAD), RUNE_C(0x010EAD)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_dash(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_dep.c b/lib/unicode/prop/uprop_is_dep.c
new file mode 100644
index 0000000..aed1401
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_dep.c
@@ -0,0 +1,29 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000149), RUNE_C(0x000149)},
+ {RUNE_C(0x000673), RUNE_C(0x000673)},
+ {RUNE_C(0x000F77), RUNE_C(0x000F77)},
+ {RUNE_C(0x000F79), RUNE_C(0x000F79)},
+ {RUNE_C(0x0017A3), RUNE_C(0x0017A4)},
+ {RUNE_C(0x00206A), RUNE_C(0x00206F)},
+ {RUNE_C(0x002329), RUNE_C(0x00232A)},
+ {RUNE_C(0x0E0001), RUNE_C(0x0E0001)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_dep(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_di.c b/lib/unicode/prop/uprop_is_di.c
new file mode 100644
index 0000000..c4dc596
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_di.c
@@ -0,0 +1,44 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00034F), RUNE_C(0x00034F)},
+ {RUNE_C(0x00061C), RUNE_C(0x00061C)},
+ {RUNE_C(0x00115F), RUNE_C(0x001160)},
+ {RUNE_C(0x0017B4), RUNE_C(0x0017B5)},
+ {RUNE_C(0x00180B), RUNE_C(0x00180F)},
+ {RUNE_C(0x00200B), RUNE_C(0x00200F)},
+ {RUNE_C(0x00202A), RUNE_C(0x00202E)},
+ {RUNE_C(0x002060), RUNE_C(0x00206F)},
+ {RUNE_C(0x003164), RUNE_C(0x003164)},
+ {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
+ {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)},
+ {RUNE_C(0x00FFA0), RUNE_C(0x00FFA0)},
+ {RUNE_C(0x00FFF0), RUNE_C(0x00FFF8)},
+ {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)},
+ {RUNE_C(0x01D173), RUNE_C(0x01D17A)},
+ {RUNE_C(0x0E0000), RUNE_C(0x0E0FFF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_di(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_dia.c b/lib/unicode/prop/uprop_is_dia.c
new file mode 100644
index 0000000..3d0a783
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_dia.c
@@ -0,0 +1,217 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x90, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x0002B0), RUNE_C(0x00034E)},
+ {RUNE_C(0x000350), RUNE_C(0x000357)},
+ {RUNE_C(0x00035D), RUNE_C(0x000362)},
+ {RUNE_C(0x000374), RUNE_C(0x000375)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037A)},
+ {RUNE_C(0x000384), RUNE_C(0x000385)},
+ {RUNE_C(0x000483), RUNE_C(0x000487)},
+ {RUNE_C(0x000559), RUNE_C(0x000559)},
+ {RUNE_C(0x000591), RUNE_C(0x0005A1)},
+ {RUNE_C(0x0005A3), RUNE_C(0x0005BD)},
+ {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
+ {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
+ {RUNE_C(0x0005C4), RUNE_C(0x0005C4)},
+ {RUNE_C(0x00064B), RUNE_C(0x000652)},
+ {RUNE_C(0x000657), RUNE_C(0x000658)},
+ {RUNE_C(0x0006DF), RUNE_C(0x0006E0)},
+ {RUNE_C(0x0006E5), RUNE_C(0x0006E6)},
+ {RUNE_C(0x0006EA), RUNE_C(0x0006EC)},
+ {RUNE_C(0x000730), RUNE_C(0x00074A)},
+ {RUNE_C(0x0007A6), RUNE_C(0x0007B0)},
+ {RUNE_C(0x0007EB), RUNE_C(0x0007F5)},
+ {RUNE_C(0x000818), RUNE_C(0x000819)},
+ {RUNE_C(0x000898), RUNE_C(0x00089F)},
+ {RUNE_C(0x0008C9), RUNE_C(0x0008D2)},
+ {RUNE_C(0x0008E3), RUNE_C(0x0008FE)},
+ {RUNE_C(0x00093C), RUNE_C(0x00093C)},
+ {RUNE_C(0x00094D), RUNE_C(0x00094D)},
+ {RUNE_C(0x000951), RUNE_C(0x000954)},
+ {RUNE_C(0x000971), RUNE_C(0x000971)},
+ {RUNE_C(0x0009BC), RUNE_C(0x0009BC)},
+ {RUNE_C(0x0009CD), RUNE_C(0x0009CD)},
+ {RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
+ {RUNE_C(0x000A4D), RUNE_C(0x000A4D)},
+ {RUNE_C(0x000ABC), RUNE_C(0x000ABC)},
+ {RUNE_C(0x000ACD), RUNE_C(0x000ACD)},
+ {RUNE_C(0x000AFD), RUNE_C(0x000AFF)},
+ {RUNE_C(0x000B3C), RUNE_C(0x000B3C)},
+ {RUNE_C(0x000B4D), RUNE_C(0x000B4D)},
+ {RUNE_C(0x000B55), RUNE_C(0x000B55)},
+ {RUNE_C(0x000BCD), RUNE_C(0x000BCD)},
+ {RUNE_C(0x000C3C), RUNE_C(0x000C3C)},
+ {RUNE_C(0x000C4D), RUNE_C(0x000C4D)},
+ {RUNE_C(0x000CBC), RUNE_C(0x000CBC)},
+ {RUNE_C(0x000CCD), RUNE_C(0x000CCD)},
+ {RUNE_C(0x000D3B), RUNE_C(0x000D3C)},
+ {RUNE_C(0x000D4D), RUNE_C(0x000D4D)},
+ {RUNE_C(0x000DCA), RUNE_C(0x000DCA)},
+ {RUNE_C(0x000E47), RUNE_C(0x000E4C)},
+ {RUNE_C(0x000E4E), RUNE_C(0x000E4E)},
+ {RUNE_C(0x000EBA), RUNE_C(0x000EBA)},
+ {RUNE_C(0x000EC8), RUNE_C(0x000ECC)},
+ {RUNE_C(0x000F18), RUNE_C(0x000F19)},
+ {RUNE_C(0x000F35), RUNE_C(0x000F35)},
+ {RUNE_C(0x000F37), RUNE_C(0x000F37)},
+ {RUNE_C(0x000F39), RUNE_C(0x000F39)},
+ {RUNE_C(0x000F3E), RUNE_C(0x000F3F)},
+ {RUNE_C(0x000F82), RUNE_C(0x000F84)},
+ {RUNE_C(0x000F86), RUNE_C(0x000F87)},
+ {RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
+ {RUNE_C(0x001037), RUNE_C(0x001037)},
+ {RUNE_C(0x001039), RUNE_C(0x00103A)},
+ {RUNE_C(0x001063), RUNE_C(0x001064)},
+ {RUNE_C(0x001069), RUNE_C(0x00106D)},
+ {RUNE_C(0x001087), RUNE_C(0x00108D)},
+ {RUNE_C(0x00108F), RUNE_C(0x00108F)},
+ {RUNE_C(0x00109A), RUNE_C(0x00109B)},
+ {RUNE_C(0x00135D), RUNE_C(0x00135F)},
+ {RUNE_C(0x001714), RUNE_C(0x001715)},
+ {RUNE_C(0x0017C9), RUNE_C(0x0017D3)},
+ {RUNE_C(0x0017DD), RUNE_C(0x0017DD)},
+ {RUNE_C(0x001939), RUNE_C(0x00193B)},
+ {RUNE_C(0x001A75), RUNE_C(0x001A7C)},
+ {RUNE_C(0x001A7F), RUNE_C(0x001A7F)},
+ {RUNE_C(0x001AB0), RUNE_C(0x001ABE)},
+ {RUNE_C(0x001AC1), RUNE_C(0x001ACB)},
+ {RUNE_C(0x001B34), RUNE_C(0x001B34)},
+ {RUNE_C(0x001B44), RUNE_C(0x001B44)},
+ {RUNE_C(0x001B6B), RUNE_C(0x001B73)},
+ {RUNE_C(0x001BAA), RUNE_C(0x001BAB)},
+ {RUNE_C(0x001C36), RUNE_C(0x001C37)},
+ {RUNE_C(0x001C78), RUNE_C(0x001C7D)},
+ {RUNE_C(0x001CD0), RUNE_C(0x001CE8)},
+ {RUNE_C(0x001CED), RUNE_C(0x001CED)},
+ {RUNE_C(0x001CF4), RUNE_C(0x001CF4)},
+ {RUNE_C(0x001CF7), RUNE_C(0x001CF9)},
+ {RUNE_C(0x001D2C), RUNE_C(0x001D6A)},
+ {RUNE_C(0x001DC4), RUNE_C(0x001DCF)},
+ {RUNE_C(0x001DF5), RUNE_C(0x001DFF)},
+ {RUNE_C(0x001FBD), RUNE_C(0x001FBD)},
+ {RUNE_C(0x001FBF), RUNE_C(0x001FC1)},
+ {RUNE_C(0x001FCD), RUNE_C(0x001FCF)},
+ {RUNE_C(0x001FDD), RUNE_C(0x001FDF)},
+ {RUNE_C(0x001FED), RUNE_C(0x001FEF)},
+ {RUNE_C(0x001FFD), RUNE_C(0x001FFE)},
+ {RUNE_C(0x002CEF), RUNE_C(0x002CF1)},
+ {RUNE_C(0x002E2F), RUNE_C(0x002E2F)},
+ {RUNE_C(0x00302A), RUNE_C(0x00302F)},
+ {RUNE_C(0x003099), RUNE_C(0x00309C)},
+ {RUNE_C(0x0030FC), RUNE_C(0x0030FC)},
+ {RUNE_C(0x00A66F), RUNE_C(0x00A66F)},
+ {RUNE_C(0x00A67C), RUNE_C(0x00A67D)},
+ {RUNE_C(0x00A67F), RUNE_C(0x00A67F)},
+ {RUNE_C(0x00A69C), RUNE_C(0x00A69D)},
+ {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)},
+ {RUNE_C(0x00A700), RUNE_C(0x00A721)},
+ {RUNE_C(0x00A788), RUNE_C(0x00A78A)},
+ {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)},
+ {RUNE_C(0x00A8C4), RUNE_C(0x00A8C4)},
+ {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)},
+ {RUNE_C(0x00A92B), RUNE_C(0x00A92E)},
+ {RUNE_C(0x00A953), RUNE_C(0x00A953)},
+ {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)},
+ {RUNE_C(0x00A9C0), RUNE_C(0x00A9C0)},
+ {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5)},
+ {RUNE_C(0x00AA7B), RUNE_C(0x00AA7D)},
+ {RUNE_C(0x00AABF), RUNE_C(0x00AAC2)},
+ {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)},
+ {RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)},
+ {RUNE_C(0x00AB69), RUNE_C(0x00AB6B)},
+ {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)},
+ {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)},
+ {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
+ {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)},
+ {RUNE_C(0x00FF40), RUNE_C(0x00FF40)},
+ {RUNE_C(0x00FF70), RUNE_C(0x00FF70)},
+ {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)},
+ {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)},
+ {RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010AE5), RUNE_C(0x010AE6)},
+ {RUNE_C(0x010D22), RUNE_C(0x010D27)},
+ {RUNE_C(0x010EFD), RUNE_C(0x010EFF)},
+ {RUNE_C(0x010F46), RUNE_C(0x010F50)},
+ {RUNE_C(0x010F82), RUNE_C(0x010F85)},
+ {RUNE_C(0x011046), RUNE_C(0x011046)},
+ {RUNE_C(0x011070), RUNE_C(0x011070)},
+ {RUNE_C(0x0110B9), RUNE_C(0x0110BA)},
+ {RUNE_C(0x011133), RUNE_C(0x011134)},
+ {RUNE_C(0x011173), RUNE_C(0x011173)},
+ {RUNE_C(0x0111C0), RUNE_C(0x0111C0)},
+ {RUNE_C(0x0111CA), RUNE_C(0x0111CC)},
+ {RUNE_C(0x011235), RUNE_C(0x011236)},
+ {RUNE_C(0x0112E9), RUNE_C(0x0112EA)},
+ {RUNE_C(0x01133C), RUNE_C(0x01133C)},
+ {RUNE_C(0x01134D), RUNE_C(0x01134D)},
+ {RUNE_C(0x011366), RUNE_C(0x01136C)},
+ {RUNE_C(0x011370), RUNE_C(0x011374)},
+ {RUNE_C(0x011442), RUNE_C(0x011442)},
+ {RUNE_C(0x011446), RUNE_C(0x011446)},
+ {RUNE_C(0x0114C2), RUNE_C(0x0114C3)},
+ {RUNE_C(0x0115BF), RUNE_C(0x0115C0)},
+ {RUNE_C(0x01163F), RUNE_C(0x01163F)},
+ {RUNE_C(0x0116B6), RUNE_C(0x0116B7)},
+ {RUNE_C(0x01172B), RUNE_C(0x01172B)},
+ {RUNE_C(0x011839), RUNE_C(0x01183A)},
+ {RUNE_C(0x01193D), RUNE_C(0x01193E)},
+ {RUNE_C(0x011943), RUNE_C(0x011943)},
+ {RUNE_C(0x0119E0), RUNE_C(0x0119E0)},
+ {RUNE_C(0x011A34), RUNE_C(0x011A34)},
+ {RUNE_C(0x011A47), RUNE_C(0x011A47)},
+ {RUNE_C(0x011A99), RUNE_C(0x011A99)},
+ {RUNE_C(0x011C3F), RUNE_C(0x011C3F)},
+ {RUNE_C(0x011D42), RUNE_C(0x011D42)},
+ {RUNE_C(0x011D44), RUNE_C(0x011D45)},
+ {RUNE_C(0x011D97), RUNE_C(0x011D97)},
+ {RUNE_C(0x013447), RUNE_C(0x013455)},
+ {RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
+ {RUNE_C(0x016B30), RUNE_C(0x016B36)},
+ {RUNE_C(0x016F8F), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FF0), RUNE_C(0x016FF1)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)},
+ {RUNE_C(0x01CF30), RUNE_C(0x01CF46)},
+ {RUNE_C(0x01D167), RUNE_C(0x01D169)},
+ {RUNE_C(0x01D16D), RUNE_C(0x01D172)},
+ {RUNE_C(0x01D17B), RUNE_C(0x01D182)},
+ {RUNE_C(0x01D185), RUNE_C(0x01D18B)},
+ {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E130), RUNE_C(0x01E136)},
+ {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)},
+ {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)},
+ {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
+ {RUNE_C(0x01E944), RUNE_C(0x01E946)},
+ {RUNE_C(0x01E948), RUNE_C(0x01E94A)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_dia(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_ebase.c b/lib/unicode/prop/uprop_is_ebase.c
new file mode 100644
index 0000000..99da199
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_ebase.c
@@ -0,0 +1,61 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00261D), RUNE_C(0x00261D)},
+ {RUNE_C(0x0026F9), RUNE_C(0x0026F9)},
+ {RUNE_C(0x00270A), RUNE_C(0x00270D)},
+ {RUNE_C(0x01F385), RUNE_C(0x01F385)},
+ {RUNE_C(0x01F3C2), RUNE_C(0x01F3C4)},
+ {RUNE_C(0x01F3C7), RUNE_C(0x01F3C7)},
+ {RUNE_C(0x01F3CA), RUNE_C(0x01F3CC)},
+ {RUNE_C(0x01F442), RUNE_C(0x01F443)},
+ {RUNE_C(0x01F446), RUNE_C(0x01F450)},
+ {RUNE_C(0x01F466), RUNE_C(0x01F478)},
+ {RUNE_C(0x01F47C), RUNE_C(0x01F47C)},
+ {RUNE_C(0x01F481), RUNE_C(0x01F483)},
+ {RUNE_C(0x01F485), RUNE_C(0x01F487)},
+ {RUNE_C(0x01F48F), RUNE_C(0x01F48F)},
+ {RUNE_C(0x01F491), RUNE_C(0x01F491)},
+ {RUNE_C(0x01F4AA), RUNE_C(0x01F4AA)},
+ {RUNE_C(0x01F574), RUNE_C(0x01F575)},
+ {RUNE_C(0x01F57A), RUNE_C(0x01F57A)},
+ {RUNE_C(0x01F590), RUNE_C(0x01F590)},
+ {RUNE_C(0x01F595), RUNE_C(0x01F596)},
+ {RUNE_C(0x01F645), RUNE_C(0x01F647)},
+ {RUNE_C(0x01F64B), RUNE_C(0x01F64F)},
+ {RUNE_C(0x01F6A3), RUNE_C(0x01F6A3)},
+ {RUNE_C(0x01F6B4), RUNE_C(0x01F6B6)},
+ {RUNE_C(0x01F6C0), RUNE_C(0x01F6C0)},
+ {RUNE_C(0x01F6CC), RUNE_C(0x01F6CC)},
+ {RUNE_C(0x01F90C), RUNE_C(0x01F90C)},
+ {RUNE_C(0x01F90F), RUNE_C(0x01F90F)},
+ {RUNE_C(0x01F918), RUNE_C(0x01F91F)},
+ {RUNE_C(0x01F926), RUNE_C(0x01F926)},
+ {RUNE_C(0x01F930), RUNE_C(0x01F939)},
+ {RUNE_C(0x01F93C), RUNE_C(0x01F93E)},
+ {RUNE_C(0x01F977), RUNE_C(0x01F977)},
+ {RUNE_C(0x01F9B5), RUNE_C(0x01F9B6)},
+ {RUNE_C(0x01F9B8), RUNE_C(0x01F9B9)},
+ {RUNE_C(0x01F9BB), RUNE_C(0x01F9BB)},
+ {RUNE_C(0x01F9CD), RUNE_C(0x01F9CF)},
+ {RUNE_C(0x01F9D1), RUNE_C(0x01F9DD)},
+ {RUNE_C(0x01FAC3), RUNE_C(0x01FAC5)},
+ {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_ebase(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_ecomp.c b/lib/unicode/prop/uprop_is_ecomp.c
new file mode 100644
index 0000000..aa61aa3
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_ecomp.c
@@ -0,0 +1,35 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0xFF, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00200D), RUNE_C(0x00200D)},
+ {RUNE_C(0x0020E3), RUNE_C(0x0020E3)},
+ {RUNE_C(0x00FE0F), RUNE_C(0x00FE0F)},
+ {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)},
+ {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)},
+ {RUNE_C(0x01F9B0), RUNE_C(0x01F9B3)},
+ {RUNE_C(0x0E0020), RUNE_C(0x0E007F)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_ecomp(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_emod.c b/lib/unicode/prop/uprop_is_emod.c
new file mode 100644
index 0000000..b560ed9
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_emod.c
@@ -0,0 +1,22 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_emod(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_emoji.c b/lib/unicode/prop/uprop_is_emoji.c
new file mode 100644
index 0000000..d689b14
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_emoji.c
@@ -0,0 +1,174 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0xFF, 0x03,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00203C), RUNE_C(0x00203C)},
+ {RUNE_C(0x002049), RUNE_C(0x002049)},
+ {RUNE_C(0x002122), RUNE_C(0x002122)},
+ {RUNE_C(0x002139), RUNE_C(0x002139)},
+ {RUNE_C(0x002194), RUNE_C(0x002199)},
+ {RUNE_C(0x0021A9), RUNE_C(0x0021AA)},
+ {RUNE_C(0x00231A), RUNE_C(0x00231B)},
+ {RUNE_C(0x002328), RUNE_C(0x002328)},
+ {RUNE_C(0x0023CF), RUNE_C(0x0023CF)},
+ {RUNE_C(0x0023E9), RUNE_C(0x0023F3)},
+ {RUNE_C(0x0023F8), RUNE_C(0x0023FA)},
+ {RUNE_C(0x0024C2), RUNE_C(0x0024C2)},
+ {RUNE_C(0x0025AA), RUNE_C(0x0025AB)},
+ {RUNE_C(0x0025B6), RUNE_C(0x0025B6)},
+ {RUNE_C(0x0025C0), RUNE_C(0x0025C0)},
+ {RUNE_C(0x0025FB), RUNE_C(0x0025FE)},
+ {RUNE_C(0x002600), RUNE_C(0x002604)},
+ {RUNE_C(0x00260E), RUNE_C(0x00260E)},
+ {RUNE_C(0x002611), RUNE_C(0x002611)},
+ {RUNE_C(0x002614), RUNE_C(0x002615)},
+ {RUNE_C(0x002618), RUNE_C(0x002618)},
+ {RUNE_C(0x00261D), RUNE_C(0x00261D)},
+ {RUNE_C(0x002620), RUNE_C(0x002620)},
+ {RUNE_C(0x002622), RUNE_C(0x002623)},
+ {RUNE_C(0x002626), RUNE_C(0x002626)},
+ {RUNE_C(0x00262A), RUNE_C(0x00262A)},
+ {RUNE_C(0x00262E), RUNE_C(0x00262F)},
+ {RUNE_C(0x002638), RUNE_C(0x00263A)},
+ {RUNE_C(0x002640), RUNE_C(0x002640)},
+ {RUNE_C(0x002642), RUNE_C(0x002642)},
+ {RUNE_C(0x002648), RUNE_C(0x002653)},
+ {RUNE_C(0x00265F), RUNE_C(0x002660)},
+ {RUNE_C(0x002663), RUNE_C(0x002663)},
+ {RUNE_C(0x002665), RUNE_C(0x002666)},
+ {RUNE_C(0x002668), RUNE_C(0x002668)},
+ {RUNE_C(0x00267B), RUNE_C(0x00267B)},
+ {RUNE_C(0x00267E), RUNE_C(0x00267F)},
+ {RUNE_C(0x002692), RUNE_C(0x002697)},
+ {RUNE_C(0x002699), RUNE_C(0x002699)},
+ {RUNE_C(0x00269B), RUNE_C(0x00269C)},
+ {RUNE_C(0x0026A0), RUNE_C(0x0026A1)},
+ {RUNE_C(0x0026A7), RUNE_C(0x0026A7)},
+ {RUNE_C(0x0026AA), RUNE_C(0x0026AB)},
+ {RUNE_C(0x0026B0), RUNE_C(0x0026B1)},
+ {RUNE_C(0x0026BD), RUNE_C(0x0026BE)},
+ {RUNE_C(0x0026C4), RUNE_C(0x0026C5)},
+ {RUNE_C(0x0026C8), RUNE_C(0x0026C8)},
+ {RUNE_C(0x0026CE), RUNE_C(0x0026CF)},
+ {RUNE_C(0x0026D1), RUNE_C(0x0026D1)},
+ {RUNE_C(0x0026D3), RUNE_C(0x0026D4)},
+ {RUNE_C(0x0026E9), RUNE_C(0x0026EA)},
+ {RUNE_C(0x0026F0), RUNE_C(0x0026F5)},
+ {RUNE_C(0x0026F7), RUNE_C(0x0026FA)},
+ {RUNE_C(0x0026FD), RUNE_C(0x0026FD)},
+ {RUNE_C(0x002702), RUNE_C(0x002702)},
+ {RUNE_C(0x002705), RUNE_C(0x002705)},
+ {RUNE_C(0x002708), RUNE_C(0x00270D)},
+ {RUNE_C(0x00270F), RUNE_C(0x00270F)},
+ {RUNE_C(0x002712), RUNE_C(0x002712)},
+ {RUNE_C(0x002714), RUNE_C(0x002714)},
+ {RUNE_C(0x002716), RUNE_C(0x002716)},
+ {RUNE_C(0x00271D), RUNE_C(0x00271D)},
+ {RUNE_C(0x002721), RUNE_C(0x002721)},
+ {RUNE_C(0x002728), RUNE_C(0x002728)},
+ {RUNE_C(0x002733), RUNE_C(0x002734)},
+ {RUNE_C(0x002744), RUNE_C(0x002744)},
+ {RUNE_C(0x002747), RUNE_C(0x002747)},
+ {RUNE_C(0x00274C), RUNE_C(0x00274C)},
+ {RUNE_C(0x00274E), RUNE_C(0x00274E)},
+ {RUNE_C(0x002753), RUNE_C(0x002755)},
+ {RUNE_C(0x002757), RUNE_C(0x002757)},
+ {RUNE_C(0x002763), RUNE_C(0x002764)},
+ {RUNE_C(0x002795), RUNE_C(0x002797)},
+ {RUNE_C(0x0027A1), RUNE_C(0x0027A1)},
+ {RUNE_C(0x0027B0), RUNE_C(0x0027B0)},
+ {RUNE_C(0x0027BF), RUNE_C(0x0027BF)},
+ {RUNE_C(0x002934), RUNE_C(0x002935)},
+ {RUNE_C(0x002B05), RUNE_C(0x002B07)},
+ {RUNE_C(0x002B1B), RUNE_C(0x002B1C)},
+ {RUNE_C(0x002B50), RUNE_C(0x002B50)},
+ {RUNE_C(0x002B55), RUNE_C(0x002B55)},
+ {RUNE_C(0x003030), RUNE_C(0x003030)},
+ {RUNE_C(0x00303D), RUNE_C(0x00303D)},
+ {RUNE_C(0x003297), RUNE_C(0x003297)},
+ {RUNE_C(0x003299), RUNE_C(0x003299)},
+ {RUNE_C(0x01F004), RUNE_C(0x01F004)},
+ {RUNE_C(0x01F0CF), RUNE_C(0x01F0CF)},
+ {RUNE_C(0x01F170), RUNE_C(0x01F171)},
+ {RUNE_C(0x01F17E), RUNE_C(0x01F17F)},
+ {RUNE_C(0x01F18E), RUNE_C(0x01F18E)},
+ {RUNE_C(0x01F191), RUNE_C(0x01F19A)},
+ {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)},
+ {RUNE_C(0x01F201), RUNE_C(0x01F202)},
+ {RUNE_C(0x01F21A), RUNE_C(0x01F21A)},
+ {RUNE_C(0x01F22F), RUNE_C(0x01F22F)},
+ {RUNE_C(0x01F232), RUNE_C(0x01F23A)},
+ {RUNE_C(0x01F250), RUNE_C(0x01F251)},
+ {RUNE_C(0x01F300), RUNE_C(0x01F321)},
+ {RUNE_C(0x01F324), RUNE_C(0x01F393)},
+ {RUNE_C(0x01F396), RUNE_C(0x01F397)},
+ {RUNE_C(0x01F399), RUNE_C(0x01F39B)},
+ {RUNE_C(0x01F39E), RUNE_C(0x01F3F0)},
+ {RUNE_C(0x01F3F3), RUNE_C(0x01F3F5)},
+ {RUNE_C(0x01F3F7), RUNE_C(0x01F4FD)},
+ {RUNE_C(0x01F4FF), RUNE_C(0x01F53D)},
+ {RUNE_C(0x01F549), RUNE_C(0x01F54E)},
+ {RUNE_C(0x01F550), RUNE_C(0x01F567)},
+ {RUNE_C(0x01F56F), RUNE_C(0x01F570)},
+ {RUNE_C(0x01F573), RUNE_C(0x01F57A)},
+ {RUNE_C(0x01F587), RUNE_C(0x01F587)},
+ {RUNE_C(0x01F58A), RUNE_C(0x01F58D)},
+ {RUNE_C(0x01F590), RUNE_C(0x01F590)},
+ {RUNE_C(0x01F595), RUNE_C(0x01F596)},
+ {RUNE_C(0x01F5A4), RUNE_C(0x01F5A5)},
+ {RUNE_C(0x01F5A8), RUNE_C(0x01F5A8)},
+ {RUNE_C(0x01F5B1), RUNE_C(0x01F5B2)},
+ {RUNE_C(0x01F5BC), RUNE_C(0x01F5BC)},
+ {RUNE_C(0x01F5C2), RUNE_C(0x01F5C4)},
+ {RUNE_C(0x01F5D1), RUNE_C(0x01F5D3)},
+ {RUNE_C(0x01F5DC), RUNE_C(0x01F5DE)},
+ {RUNE_C(0x01F5E1), RUNE_C(0x01F5E1)},
+ {RUNE_C(0x01F5E3), RUNE_C(0x01F5E3)},
+ {RUNE_C(0x01F5E8), RUNE_C(0x01F5E8)},
+ {RUNE_C(0x01F5EF), RUNE_C(0x01F5EF)},
+ {RUNE_C(0x01F5F3), RUNE_C(0x01F5F3)},
+ {RUNE_C(0x01F5FA), RUNE_C(0x01F64F)},
+ {RUNE_C(0x01F680), RUNE_C(0x01F6C5)},
+ {RUNE_C(0x01F6CB), RUNE_C(0x01F6D2)},
+ {RUNE_C(0x01F6D5), RUNE_C(0x01F6D7)},
+ {RUNE_C(0x01F6DC), RUNE_C(0x01F6E5)},
+ {RUNE_C(0x01F6E9), RUNE_C(0x01F6E9)},
+ {RUNE_C(0x01F6EB), RUNE_C(0x01F6EC)},
+ {RUNE_C(0x01F6F0), RUNE_C(0x01F6F0)},
+ {RUNE_C(0x01F6F3), RUNE_C(0x01F6FC)},
+ {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)},
+ {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)},
+ {RUNE_C(0x01F90C), RUNE_C(0x01F93A)},
+ {RUNE_C(0x01F93C), RUNE_C(0x01F945)},
+ {RUNE_C(0x01F947), RUNE_C(0x01F9FF)},
+ {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)},
+ {RUNE_C(0x01FA80), RUNE_C(0x01FA88)},
+ {RUNE_C(0x01FA90), RUNE_C(0x01FABD)},
+ {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)},
+ {RUNE_C(0x01FACE), RUNE_C(0x01FADB)},
+ {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)},
+ {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_emoji(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_epres.c b/lib/unicode/prop/uprop_is_epres.c
new file mode 100644
index 0000000..45959db
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_epres.c
@@ -0,0 +1,102 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00231A), RUNE_C(0x00231B)},
+ {RUNE_C(0x0023E9), RUNE_C(0x0023EC)},
+ {RUNE_C(0x0023F0), RUNE_C(0x0023F0)},
+ {RUNE_C(0x0023F3), RUNE_C(0x0023F3)},
+ {RUNE_C(0x0025FD), RUNE_C(0x0025FE)},
+ {RUNE_C(0x002614), RUNE_C(0x002615)},
+ {RUNE_C(0x002648), RUNE_C(0x002653)},
+ {RUNE_C(0x00267F), RUNE_C(0x00267F)},
+ {RUNE_C(0x002693), RUNE_C(0x002693)},
+ {RUNE_C(0x0026A1), RUNE_C(0x0026A1)},
+ {RUNE_C(0x0026AA), RUNE_C(0x0026AB)},
+ {RUNE_C(0x0026BD), RUNE_C(0x0026BE)},
+ {RUNE_C(0x0026C4), RUNE_C(0x0026C5)},
+ {RUNE_C(0x0026CE), RUNE_C(0x0026CE)},
+ {RUNE_C(0x0026D4), RUNE_C(0x0026D4)},
+ {RUNE_C(0x0026EA), RUNE_C(0x0026EA)},
+ {RUNE_C(0x0026F2), RUNE_C(0x0026F3)},
+ {RUNE_C(0x0026F5), RUNE_C(0x0026F5)},
+ {RUNE_C(0x0026FA), RUNE_C(0x0026FA)},
+ {RUNE_C(0x0026FD), RUNE_C(0x0026FD)},
+ {RUNE_C(0x002705), RUNE_C(0x002705)},
+ {RUNE_C(0x00270A), RUNE_C(0x00270B)},
+ {RUNE_C(0x002728), RUNE_C(0x002728)},
+ {RUNE_C(0x00274C), RUNE_C(0x00274C)},
+ {RUNE_C(0x00274E), RUNE_C(0x00274E)},
+ {RUNE_C(0x002753), RUNE_C(0x002755)},
+ {RUNE_C(0x002757), RUNE_C(0x002757)},
+ {RUNE_C(0x002795), RUNE_C(0x002797)},
+ {RUNE_C(0x0027B0), RUNE_C(0x0027B0)},
+ {RUNE_C(0x0027BF), RUNE_C(0x0027BF)},
+ {RUNE_C(0x002B1B), RUNE_C(0x002B1C)},
+ {RUNE_C(0x002B50), RUNE_C(0x002B50)},
+ {RUNE_C(0x002B55), RUNE_C(0x002B55)},
+ {RUNE_C(0x01F004), RUNE_C(0x01F004)},
+ {RUNE_C(0x01F0CF), RUNE_C(0x01F0CF)},
+ {RUNE_C(0x01F18E), RUNE_C(0x01F18E)},
+ {RUNE_C(0x01F191), RUNE_C(0x01F19A)},
+ {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)},
+ {RUNE_C(0x01F201), RUNE_C(0x01F201)},
+ {RUNE_C(0x01F21A), RUNE_C(0x01F21A)},
+ {RUNE_C(0x01F22F), RUNE_C(0x01F22F)},
+ {RUNE_C(0x01F232), RUNE_C(0x01F236)},
+ {RUNE_C(0x01F238), RUNE_C(0x01F23A)},
+ {RUNE_C(0x01F250), RUNE_C(0x01F251)},
+ {RUNE_C(0x01F300), RUNE_C(0x01F320)},
+ {RUNE_C(0x01F32D), RUNE_C(0x01F335)},
+ {RUNE_C(0x01F337), RUNE_C(0x01F37C)},
+ {RUNE_C(0x01F37E), RUNE_C(0x01F393)},
+ {RUNE_C(0x01F3A0), RUNE_C(0x01F3CA)},
+ {RUNE_C(0x01F3CF), RUNE_C(0x01F3D3)},
+ {RUNE_C(0x01F3E0), RUNE_C(0x01F3F0)},
+ {RUNE_C(0x01F3F4), RUNE_C(0x01F3F4)},
+ {RUNE_C(0x01F3F8), RUNE_C(0x01F43E)},
+ {RUNE_C(0x01F440), RUNE_C(0x01F440)},
+ {RUNE_C(0x01F442), RUNE_C(0x01F4FC)},
+ {RUNE_C(0x01F4FF), RUNE_C(0x01F53D)},
+ {RUNE_C(0x01F54B), RUNE_C(0x01F54E)},
+ {RUNE_C(0x01F550), RUNE_C(0x01F567)},
+ {RUNE_C(0x01F57A), RUNE_C(0x01F57A)},
+ {RUNE_C(0x01F595), RUNE_C(0x01F596)},
+ {RUNE_C(0x01F5A4), RUNE_C(0x01F5A4)},
+ {RUNE_C(0x01F5FB), RUNE_C(0x01F64F)},
+ {RUNE_C(0x01F680), RUNE_C(0x01F6C5)},
+ {RUNE_C(0x01F6CC), RUNE_C(0x01F6CC)},
+ {RUNE_C(0x01F6D0), RUNE_C(0x01F6D2)},
+ {RUNE_C(0x01F6D5), RUNE_C(0x01F6D7)},
+ {RUNE_C(0x01F6DC), RUNE_C(0x01F6DF)},
+ {RUNE_C(0x01F6EB), RUNE_C(0x01F6EC)},
+ {RUNE_C(0x01F6F4), RUNE_C(0x01F6FC)},
+ {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)},
+ {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)},
+ {RUNE_C(0x01F90C), RUNE_C(0x01F93A)},
+ {RUNE_C(0x01F93C), RUNE_C(0x01F945)},
+ {RUNE_C(0x01F947), RUNE_C(0x01F9FF)},
+ {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)},
+ {RUNE_C(0x01FA80), RUNE_C(0x01FA88)},
+ {RUNE_C(0x01FA90), RUNE_C(0x01FABD)},
+ {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)},
+ {RUNE_C(0x01FACE), RUNE_C(0x01FADB)},
+ {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)},
+ {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_epres(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_ext.c b/lib/unicode/prop/uprop_is_ext.c
new file mode 100644
index 0000000..09d5366
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_ext.c
@@ -0,0 +1,60 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x0002D0), RUNE_C(0x0002D1)},
+ {RUNE_C(0x000640), RUNE_C(0x000640)},
+ {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
+ {RUNE_C(0x000B55), RUNE_C(0x000B55)},
+ {RUNE_C(0x000E46), RUNE_C(0x000E46)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x00180A), RUNE_C(0x00180A)},
+ {RUNE_C(0x001843), RUNE_C(0x001843)},
+ {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
+ {RUNE_C(0x001C36), RUNE_C(0x001C36)},
+ {RUNE_C(0x001C7B), RUNE_C(0x001C7B)},
+ {RUNE_C(0x003005), RUNE_C(0x003005)},
+ {RUNE_C(0x003031), RUNE_C(0x003035)},
+ {RUNE_C(0x00309D), RUNE_C(0x00309E)},
+ {RUNE_C(0x0030FC), RUNE_C(0x0030FE)},
+ {RUNE_C(0x00A015), RUNE_C(0x00A015)},
+ {RUNE_C(0x00A60C), RUNE_C(0x00A60C)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)},
+ {RUNE_C(0x00A9E6), RUNE_C(0x00A9E6)},
+ {RUNE_C(0x00AA70), RUNE_C(0x00AA70)},
+ {RUNE_C(0x00AADD), RUNE_C(0x00AADD)},
+ {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)},
+ {RUNE_C(0x00FF70), RUNE_C(0x00FF70)},
+ {RUNE_C(0x010781), RUNE_C(0x010782)},
+ {RUNE_C(0x01135D), RUNE_C(0x01135D)},
+ {RUNE_C(0x0115C6), RUNE_C(0x0115C8)},
+ {RUNE_C(0x011A98), RUNE_C(0x011A98)},
+ {RUNE_C(0x016B42), RUNE_C(0x016B43)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
+ {RUNE_C(0x016FE3), RUNE_C(0x016FE3)},
+ {RUNE_C(0x01E13C), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E944), RUNE_C(0x01E946)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_ext(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_extpic.c b/lib/unicode/prop/uprop_is_extpic.c
new file mode 100644
index 0000000..06075e7
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_extpic.c
@@ -0,0 +1,104 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00203C), RUNE_C(0x00203C)},
+ {RUNE_C(0x002049), RUNE_C(0x002049)},
+ {RUNE_C(0x002122), RUNE_C(0x002122)},
+ {RUNE_C(0x002139), RUNE_C(0x002139)},
+ {RUNE_C(0x002194), RUNE_C(0x002199)},
+ {RUNE_C(0x0021A9), RUNE_C(0x0021AA)},
+ {RUNE_C(0x00231A), RUNE_C(0x00231B)},
+ {RUNE_C(0x002328), RUNE_C(0x002328)},
+ {RUNE_C(0x002388), RUNE_C(0x002388)},
+ {RUNE_C(0x0023CF), RUNE_C(0x0023CF)},
+ {RUNE_C(0x0023E9), RUNE_C(0x0023F3)},
+ {RUNE_C(0x0023F8), RUNE_C(0x0023FA)},
+ {RUNE_C(0x0024C2), RUNE_C(0x0024C2)},
+ {RUNE_C(0x0025AA), RUNE_C(0x0025AB)},
+ {RUNE_C(0x0025B6), RUNE_C(0x0025B6)},
+ {RUNE_C(0x0025C0), RUNE_C(0x0025C0)},
+ {RUNE_C(0x0025FB), RUNE_C(0x0025FE)},
+ {RUNE_C(0x002600), RUNE_C(0x002605)},
+ {RUNE_C(0x002607), RUNE_C(0x002612)},
+ {RUNE_C(0x002614), RUNE_C(0x002685)},
+ {RUNE_C(0x002690), RUNE_C(0x002705)},
+ {RUNE_C(0x002708), RUNE_C(0x002712)},
+ {RUNE_C(0x002714), RUNE_C(0x002714)},
+ {RUNE_C(0x002716), RUNE_C(0x002716)},
+ {RUNE_C(0x00271D), RUNE_C(0x00271D)},
+ {RUNE_C(0x002721), RUNE_C(0x002721)},
+ {RUNE_C(0x002728), RUNE_C(0x002728)},
+ {RUNE_C(0x002733), RUNE_C(0x002734)},
+ {RUNE_C(0x002744), RUNE_C(0x002744)},
+ {RUNE_C(0x002747), RUNE_C(0x002747)},
+ {RUNE_C(0x00274C), RUNE_C(0x00274C)},
+ {RUNE_C(0x00274E), RUNE_C(0x00274E)},
+ {RUNE_C(0x002753), RUNE_C(0x002755)},
+ {RUNE_C(0x002757), RUNE_C(0x002757)},
+ {RUNE_C(0x002763), RUNE_C(0x002767)},
+ {RUNE_C(0x002795), RUNE_C(0x002797)},
+ {RUNE_C(0x0027A1), RUNE_C(0x0027A1)},
+ {RUNE_C(0x0027B0), RUNE_C(0x0027B0)},
+ {RUNE_C(0x0027BF), RUNE_C(0x0027BF)},
+ {RUNE_C(0x002934), RUNE_C(0x002935)},
+ {RUNE_C(0x002B05), RUNE_C(0x002B07)},
+ {RUNE_C(0x002B1B), RUNE_C(0x002B1C)},
+ {RUNE_C(0x002B50), RUNE_C(0x002B50)},
+ {RUNE_C(0x002B55), RUNE_C(0x002B55)},
+ {RUNE_C(0x003030), RUNE_C(0x003030)},
+ {RUNE_C(0x00303D), RUNE_C(0x00303D)},
+ {RUNE_C(0x003297), RUNE_C(0x003297)},
+ {RUNE_C(0x003299), RUNE_C(0x003299)},
+ {RUNE_C(0x01F000), RUNE_C(0x01F0FF)},
+ {RUNE_C(0x01F10D), RUNE_C(0x01F10F)},
+ {RUNE_C(0x01F12F), RUNE_C(0x01F12F)},
+ {RUNE_C(0x01F16C), RUNE_C(0x01F171)},
+ {RUNE_C(0x01F17E), RUNE_C(0x01F17F)},
+ {RUNE_C(0x01F18E), RUNE_C(0x01F18E)},
+ {RUNE_C(0x01F191), RUNE_C(0x01F19A)},
+ {RUNE_C(0x01F1AD), RUNE_C(0x01F1E5)},
+ {RUNE_C(0x01F201), RUNE_C(0x01F20F)},
+ {RUNE_C(0x01F21A), RUNE_C(0x01F21A)},
+ {RUNE_C(0x01F22F), RUNE_C(0x01F22F)},
+ {RUNE_C(0x01F232), RUNE_C(0x01F23A)},
+ {RUNE_C(0x01F23C), RUNE_C(0x01F23F)},
+ {RUNE_C(0x01F249), RUNE_C(0x01F3FA)},
+ {RUNE_C(0x01F400), RUNE_C(0x01F53D)},
+ {RUNE_C(0x01F546), RUNE_C(0x01F64F)},
+ {RUNE_C(0x01F680), RUNE_C(0x01F6FF)},
+ {RUNE_C(0x01F774), RUNE_C(0x01F77F)},
+ {RUNE_C(0x01F7D5), RUNE_C(0x01F7FF)},
+ {RUNE_C(0x01F80C), RUNE_C(0x01F80F)},
+ {RUNE_C(0x01F848), RUNE_C(0x01F84F)},
+ {RUNE_C(0x01F85A), RUNE_C(0x01F85F)},
+ {RUNE_C(0x01F888), RUNE_C(0x01F88F)},
+ {RUNE_C(0x01F8AE), RUNE_C(0x01F8FF)},
+ {RUNE_C(0x01F90C), RUNE_C(0x01F93A)},
+ {RUNE_C(0x01F93C), RUNE_C(0x01F945)},
+ {RUNE_C(0x01F947), RUNE_C(0x01FAFF)},
+ {RUNE_C(0x01FC00), RUNE_C(0x01FFFD)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_extpic(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_gr_base.c b/lib/unicode/prop/uprop_is_gr_base.c
new file mode 100644
index 0000000..e76ed48
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_gr_base.c
@@ -0,0 +1,901 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F,
+ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xDF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x0002FF)},
+ {RUNE_C(0x000370), RUNE_C(0x000377)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037F)},
+ {RUNE_C(0x000384), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x000482)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000559), RUNE_C(0x00058A)},
+ {RUNE_C(0x00058D), RUNE_C(0x00058F)},
+ {RUNE_C(0x0005BE), RUNE_C(0x0005BE)},
+ {RUNE_C(0x0005C0), RUNE_C(0x0005C0)},
+ {RUNE_C(0x0005C3), RUNE_C(0x0005C3)},
+ {RUNE_C(0x0005C6), RUNE_C(0x0005C6)},
+ {RUNE_C(0x0005D0), RUNE_C(0x0005EA)},
+ {RUNE_C(0x0005EF), RUNE_C(0x0005F4)},
+ {RUNE_C(0x000606), RUNE_C(0x00060F)},
+ {RUNE_C(0x00061B), RUNE_C(0x00061B)},
+ {RUNE_C(0x00061D), RUNE_C(0x00064A)},
+ {RUNE_C(0x000660), RUNE_C(0x00066F)},
+ {RUNE_C(0x000671), RUNE_C(0x0006D5)},
+ {RUNE_C(0x0006DE), RUNE_C(0x0006DE)},
+ {RUNE_C(0x0006E5), RUNE_C(0x0006E6)},
+ {RUNE_C(0x0006E9), RUNE_C(0x0006E9)},
+ {RUNE_C(0x0006EE), RUNE_C(0x00070D)},
+ {RUNE_C(0x000710), RUNE_C(0x000710)},
+ {RUNE_C(0x000712), RUNE_C(0x00072F)},
+ {RUNE_C(0x00074D), RUNE_C(0x0007A5)},
+ {RUNE_C(0x0007B1), RUNE_C(0x0007B1)},
+ {RUNE_C(0x0007C0), RUNE_C(0x0007EA)},
+ {RUNE_C(0x0007F4), RUNE_C(0x0007FA)},
+ {RUNE_C(0x0007FE), RUNE_C(0x000815)},
+ {RUNE_C(0x00081A), RUNE_C(0x00081A)},
+ {RUNE_C(0x000824), RUNE_C(0x000824)},
+ {RUNE_C(0x000828), RUNE_C(0x000828)},
+ {RUNE_C(0x000830), RUNE_C(0x00083E)},
+ {RUNE_C(0x000840), RUNE_C(0x000858)},
+ {RUNE_C(0x00085E), RUNE_C(0x00085E)},
+ {RUNE_C(0x000860), RUNE_C(0x00086A)},
+ {RUNE_C(0x000870), RUNE_C(0x00088E)},
+ {RUNE_C(0x0008A0), RUNE_C(0x0008C9)},
+ {RUNE_C(0x000903), RUNE_C(0x000939)},
+ {RUNE_C(0x00093B), RUNE_C(0x00093B)},
+ {RUNE_C(0x00093D), RUNE_C(0x000940)},
+ {RUNE_C(0x000949), RUNE_C(0x00094C)},
+ {RUNE_C(0x00094E), RUNE_C(0x000950)},
+ {RUNE_C(0x000958), RUNE_C(0x000961)},
+ {RUNE_C(0x000964), RUNE_C(0x000980)},
+ {RUNE_C(0x000982), RUNE_C(0x000983)},
+ {RUNE_C(0x000985), RUNE_C(0x00098C)},
+ {RUNE_C(0x00098F), RUNE_C(0x000990)},
+ {RUNE_C(0x000993), RUNE_C(0x0009A8)},
+ {RUNE_C(0x0009AA), RUNE_C(0x0009B0)},
+ {RUNE_C(0x0009B2), RUNE_C(0x0009B2)},
+ {RUNE_C(0x0009B6), RUNE_C(0x0009B9)},
+ {RUNE_C(0x0009BD), RUNE_C(0x0009BD)},
+ {RUNE_C(0x0009BF), RUNE_C(0x0009C0)},
+ {RUNE_C(0x0009C7), RUNE_C(0x0009C8)},
+ {RUNE_C(0x0009CB), RUNE_C(0x0009CC)},
+ {RUNE_C(0x0009CE), RUNE_C(0x0009CE)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009E1)},
+ {RUNE_C(0x0009E6), RUNE_C(0x0009FD)},
+ {RUNE_C(0x000A03), RUNE_C(0x000A03)},
+ {RUNE_C(0x000A05), RUNE_C(0x000A0A)},
+ {RUNE_C(0x000A0F), RUNE_C(0x000A10)},
+ {RUNE_C(0x000A13), RUNE_C(0x000A28)},
+ {RUNE_C(0x000A2A), RUNE_C(0x000A30)},
+ {RUNE_C(0x000A32), RUNE_C(0x000A33)},
+ {RUNE_C(0x000A35), RUNE_C(0x000A36)},
+ {RUNE_C(0x000A38), RUNE_C(0x000A39)},
+ {RUNE_C(0x000A3E), RUNE_C(0x000A40)},
+ {RUNE_C(0x000A59), RUNE_C(0x000A5C)},
+ {RUNE_C(0x000A5E), RUNE_C(0x000A5E)},
+ {RUNE_C(0x000A66), RUNE_C(0x000A6F)},
+ {RUNE_C(0x000A72), RUNE_C(0x000A74)},
+ {RUNE_C(0x000A76), RUNE_C(0x000A76)},
+ {RUNE_C(0x000A83), RUNE_C(0x000A83)},
+ {RUNE_C(0x000A85), RUNE_C(0x000A8D)},
+ {RUNE_C(0x000A8F), RUNE_C(0x000A91)},
+ {RUNE_C(0x000A93), RUNE_C(0x000AA8)},
+ {RUNE_C(0x000AAA), RUNE_C(0x000AB0)},
+ {RUNE_C(0x000AB2), RUNE_C(0x000AB3)},
+ {RUNE_C(0x000AB5), RUNE_C(0x000AB9)},
+ {RUNE_C(0x000ABD), RUNE_C(0x000AC0)},
+ {RUNE_C(0x000AC9), RUNE_C(0x000AC9)},
+ {RUNE_C(0x000ACB), RUNE_C(0x000ACC)},
+ {RUNE_C(0x000AD0), RUNE_C(0x000AD0)},
+ {RUNE_C(0x000AE0), RUNE_C(0x000AE1)},
+ {RUNE_C(0x000AE6), RUNE_C(0x000AF1)},
+ {RUNE_C(0x000AF9), RUNE_C(0x000AF9)},
+ {RUNE_C(0x000B02), RUNE_C(0x000B03)},
+ {RUNE_C(0x000B05), RUNE_C(0x000B0C)},
+ {RUNE_C(0x000B0F), RUNE_C(0x000B10)},
+ {RUNE_C(0x000B13), RUNE_C(0x000B28)},
+ {RUNE_C(0x000B2A), RUNE_C(0x000B30)},
+ {RUNE_C(0x000B32), RUNE_C(0x000B33)},
+ {RUNE_C(0x000B35), RUNE_C(0x000B39)},
+ {RUNE_C(0x000B3D), RUNE_C(0x000B3D)},
+ {RUNE_C(0x000B40), RUNE_C(0x000B40)},
+ {RUNE_C(0x000B47), RUNE_C(0x000B48)},
+ {RUNE_C(0x000B4B), RUNE_C(0x000B4C)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000B5F), RUNE_C(0x000B61)},
+ {RUNE_C(0x000B66), RUNE_C(0x000B77)},
+ {RUNE_C(0x000B83), RUNE_C(0x000B83)},
+ {RUNE_C(0x000B85), RUNE_C(0x000B8A)},
+ {RUNE_C(0x000B8E), RUNE_C(0x000B90)},
+ {RUNE_C(0x000B92), RUNE_C(0x000B95)},
+ {RUNE_C(0x000B99), RUNE_C(0x000B9A)},
+ {RUNE_C(0x000B9C), RUNE_C(0x000B9C)},
+ {RUNE_C(0x000B9E), RUNE_C(0x000B9F)},
+ {RUNE_C(0x000BA3), RUNE_C(0x000BA4)},
+ {RUNE_C(0x000BA8), RUNE_C(0x000BAA)},
+ {RUNE_C(0x000BAE), RUNE_C(0x000BB9)},
+ {RUNE_C(0x000BBF), RUNE_C(0x000BBF)},
+ {RUNE_C(0x000BC1), RUNE_C(0x000BC2)},
+ {RUNE_C(0x000BC6), RUNE_C(0x000BC8)},
+ {RUNE_C(0x000BCA), RUNE_C(0x000BCC)},
+ {RUNE_C(0x000BD0), RUNE_C(0x000BD0)},
+ {RUNE_C(0x000BE6), RUNE_C(0x000BFA)},
+ {RUNE_C(0x000C01), RUNE_C(0x000C03)},
+ {RUNE_C(0x000C05), RUNE_C(0x000C0C)},
+ {RUNE_C(0x000C0E), RUNE_C(0x000C10)},
+ {RUNE_C(0x000C12), RUNE_C(0x000C28)},
+ {RUNE_C(0x000C2A), RUNE_C(0x000C39)},
+ {RUNE_C(0x000C3D), RUNE_C(0x000C3D)},
+ {RUNE_C(0x000C41), RUNE_C(0x000C44)},
+ {RUNE_C(0x000C58), RUNE_C(0x000C5A)},
+ {RUNE_C(0x000C5D), RUNE_C(0x000C5D)},
+ {RUNE_C(0x000C60), RUNE_C(0x000C61)},
+ {RUNE_C(0x000C66), RUNE_C(0x000C6F)},
+ {RUNE_C(0x000C77), RUNE_C(0x000C80)},
+ {RUNE_C(0x000C82), RUNE_C(0x000C8C)},
+ {RUNE_C(0x000C8E), RUNE_C(0x000C90)},
+ {RUNE_C(0x000C92), RUNE_C(0x000CA8)},
+ {RUNE_C(0x000CAA), RUNE_C(0x000CB3)},
+ {RUNE_C(0x000CB5), RUNE_C(0x000CB9)},
+ {RUNE_C(0x000CBD), RUNE_C(0x000CBE)},
+ {RUNE_C(0x000CC0), RUNE_C(0x000CC1)},
+ {RUNE_C(0x000CC3), RUNE_C(0x000CC4)},
+ {RUNE_C(0x000CC7), RUNE_C(0x000CC8)},
+ {RUNE_C(0x000CCA), RUNE_C(0x000CCB)},
+ {RUNE_C(0x000CDD), RUNE_C(0x000CDE)},
+ {RUNE_C(0x000CE0), RUNE_C(0x000CE1)},
+ {RUNE_C(0x000CE6), RUNE_C(0x000CEF)},
+ {RUNE_C(0x000CF1), RUNE_C(0x000CF3)},
+ {RUNE_C(0x000D02), RUNE_C(0x000D0C)},
+ {RUNE_C(0x000D0E), RUNE_C(0x000D10)},
+ {RUNE_C(0x000D12), RUNE_C(0x000D3A)},
+ {RUNE_C(0x000D3D), RUNE_C(0x000D3D)},
+ {RUNE_C(0x000D3F), RUNE_C(0x000D40)},
+ {RUNE_C(0x000D46), RUNE_C(0x000D48)},
+ {RUNE_C(0x000D4A), RUNE_C(0x000D4C)},
+ {RUNE_C(0x000D4E), RUNE_C(0x000D4F)},
+ {RUNE_C(0x000D54), RUNE_C(0x000D56)},
+ {RUNE_C(0x000D58), RUNE_C(0x000D61)},
+ {RUNE_C(0x000D66), RUNE_C(0x000D7F)},
+ {RUNE_C(0x000D82), RUNE_C(0x000D83)},
+ {RUNE_C(0x000D85), RUNE_C(0x000D96)},
+ {RUNE_C(0x000D9A), RUNE_C(0x000DB1)},
+ {RUNE_C(0x000DB3), RUNE_C(0x000DBB)},
+ {RUNE_C(0x000DBD), RUNE_C(0x000DBD)},
+ {RUNE_C(0x000DC0), RUNE_C(0x000DC6)},
+ {RUNE_C(0x000DD0), RUNE_C(0x000DD1)},
+ {RUNE_C(0x000DD8), RUNE_C(0x000DDE)},
+ {RUNE_C(0x000DE6), RUNE_C(0x000DEF)},
+ {RUNE_C(0x000DF2), RUNE_C(0x000DF4)},
+ {RUNE_C(0x000E01), RUNE_C(0x000E30)},
+ {RUNE_C(0x000E32), RUNE_C(0x000E33)},
+ {RUNE_C(0x000E3F), RUNE_C(0x000E46)},
+ {RUNE_C(0x000E4F), RUNE_C(0x000E5B)},
+ {RUNE_C(0x000E81), RUNE_C(0x000E82)},
+ {RUNE_C(0x000E84), RUNE_C(0x000E84)},
+ {RUNE_C(0x000E86), RUNE_C(0x000E8A)},
+ {RUNE_C(0x000E8C), RUNE_C(0x000EA3)},
+ {RUNE_C(0x000EA5), RUNE_C(0x000EA5)},
+ {RUNE_C(0x000EA7), RUNE_C(0x000EB0)},
+ {RUNE_C(0x000EB2), RUNE_C(0x000EB3)},
+ {RUNE_C(0x000EBD), RUNE_C(0x000EBD)},
+ {RUNE_C(0x000EC0), RUNE_C(0x000EC4)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x000ED0), RUNE_C(0x000ED9)},
+ {RUNE_C(0x000EDC), RUNE_C(0x000EDF)},
+ {RUNE_C(0x000F00), RUNE_C(0x000F17)},
+ {RUNE_C(0x000F1A), RUNE_C(0x000F34)},
+ {RUNE_C(0x000F36), RUNE_C(0x000F36)},
+ {RUNE_C(0x000F38), RUNE_C(0x000F38)},
+ {RUNE_C(0x000F3A), RUNE_C(0x000F47)},
+ {RUNE_C(0x000F49), RUNE_C(0x000F6C)},
+ {RUNE_C(0x000F7F), RUNE_C(0x000F7F)},
+ {RUNE_C(0x000F85), RUNE_C(0x000F85)},
+ {RUNE_C(0x000F88), RUNE_C(0x000F8C)},
+ {RUNE_C(0x000FBE), RUNE_C(0x000FC5)},
+ {RUNE_C(0x000FC7), RUNE_C(0x000FCC)},
+ {RUNE_C(0x000FCE), RUNE_C(0x000FDA)},
+ {RUNE_C(0x001000), RUNE_C(0x00102C)},
+ {RUNE_C(0x001031), RUNE_C(0x001031)},
+ {RUNE_C(0x001038), RUNE_C(0x001038)},
+ {RUNE_C(0x00103B), RUNE_C(0x00103C)},
+ {RUNE_C(0x00103F), RUNE_C(0x001057)},
+ {RUNE_C(0x00105A), RUNE_C(0x00105D)},
+ {RUNE_C(0x001061), RUNE_C(0x001070)},
+ {RUNE_C(0x001075), RUNE_C(0x001081)},
+ {RUNE_C(0x001083), RUNE_C(0x001084)},
+ {RUNE_C(0x001087), RUNE_C(0x00108C)},
+ {RUNE_C(0x00108E), RUNE_C(0x00109C)},
+ {RUNE_C(0x00109E), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x001248)},
+ {RUNE_C(0x00124A), RUNE_C(0x00124D)},
+ {RUNE_C(0x001250), RUNE_C(0x001256)},
+ {RUNE_C(0x001258), RUNE_C(0x001258)},
+ {RUNE_C(0x00125A), RUNE_C(0x00125D)},
+ {RUNE_C(0x001260), RUNE_C(0x001288)},
+ {RUNE_C(0x00128A), RUNE_C(0x00128D)},
+ {RUNE_C(0x001290), RUNE_C(0x0012B0)},
+ {RUNE_C(0x0012B2), RUNE_C(0x0012B5)},
+ {RUNE_C(0x0012B8), RUNE_C(0x0012BE)},
+ {RUNE_C(0x0012C0), RUNE_C(0x0012C0)},
+ {RUNE_C(0x0012C2), RUNE_C(0x0012C5)},
+ {RUNE_C(0x0012C8), RUNE_C(0x0012D6)},
+ {RUNE_C(0x0012D8), RUNE_C(0x001310)},
+ {RUNE_C(0x001312), RUNE_C(0x001315)},
+ {RUNE_C(0x001318), RUNE_C(0x00135A)},
+ {RUNE_C(0x001360), RUNE_C(0x00137C)},
+ {RUNE_C(0x001380), RUNE_C(0x001399)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001400), RUNE_C(0x00169C)},
+ {RUNE_C(0x0016A0), RUNE_C(0x0016F8)},
+ {RUNE_C(0x001700), RUNE_C(0x001711)},
+ {RUNE_C(0x001715), RUNE_C(0x001715)},
+ {RUNE_C(0x00171F), RUNE_C(0x001731)},
+ {RUNE_C(0x001734), RUNE_C(0x001736)},
+ {RUNE_C(0x001740), RUNE_C(0x001751)},
+ {RUNE_C(0x001760), RUNE_C(0x00176C)},
+ {RUNE_C(0x00176E), RUNE_C(0x001770)},
+ {RUNE_C(0x001780), RUNE_C(0x0017B3)},
+ {RUNE_C(0x0017B6), RUNE_C(0x0017B6)},
+ {RUNE_C(0x0017BE), RUNE_C(0x0017C5)},
+ {RUNE_C(0x0017C7), RUNE_C(0x0017C8)},
+ {RUNE_C(0x0017D4), RUNE_C(0x0017DC)},
+ {RUNE_C(0x0017E0), RUNE_C(0x0017E9)},
+ {RUNE_C(0x0017F0), RUNE_C(0x0017F9)},
+ {RUNE_C(0x001800), RUNE_C(0x00180A)},
+ {RUNE_C(0x001810), RUNE_C(0x001819)},
+ {RUNE_C(0x001820), RUNE_C(0x001878)},
+ {RUNE_C(0x001880), RUNE_C(0x001884)},
+ {RUNE_C(0x001887), RUNE_C(0x0018A8)},
+ {RUNE_C(0x0018AA), RUNE_C(0x0018AA)},
+ {RUNE_C(0x0018B0), RUNE_C(0x0018F5)},
+ {RUNE_C(0x001900), RUNE_C(0x00191E)},
+ {RUNE_C(0x001923), RUNE_C(0x001926)},
+ {RUNE_C(0x001929), RUNE_C(0x00192B)},
+ {RUNE_C(0x001930), RUNE_C(0x001931)},
+ {RUNE_C(0x001933), RUNE_C(0x001938)},
+ {RUNE_C(0x001940), RUNE_C(0x001940)},
+ {RUNE_C(0x001944), RUNE_C(0x00196D)},
+ {RUNE_C(0x001970), RUNE_C(0x001974)},
+ {RUNE_C(0x001980), RUNE_C(0x0019AB)},
+ {RUNE_C(0x0019B0), RUNE_C(0x0019C9)},
+ {RUNE_C(0x0019D0), RUNE_C(0x0019DA)},
+ {RUNE_C(0x0019DE), RUNE_C(0x001A16)},
+ {RUNE_C(0x001A19), RUNE_C(0x001A1A)},
+ {RUNE_C(0x001A1E), RUNE_C(0x001A55)},
+ {RUNE_C(0x001A57), RUNE_C(0x001A57)},
+ {RUNE_C(0x001A61), RUNE_C(0x001A61)},
+ {RUNE_C(0x001A63), RUNE_C(0x001A64)},
+ {RUNE_C(0x001A6D), RUNE_C(0x001A72)},
+ {RUNE_C(0x001A80), RUNE_C(0x001A89)},
+ {RUNE_C(0x001A90), RUNE_C(0x001A99)},
+ {RUNE_C(0x001AA0), RUNE_C(0x001AAD)},
+ {RUNE_C(0x001B04), RUNE_C(0x001B33)},
+ {RUNE_C(0x001B3B), RUNE_C(0x001B3B)},
+ {RUNE_C(0x001B3D), RUNE_C(0x001B41)},
+ {RUNE_C(0x001B43), RUNE_C(0x001B4C)},
+ {RUNE_C(0x001B50), RUNE_C(0x001B6A)},
+ {RUNE_C(0x001B74), RUNE_C(0x001B7E)},
+ {RUNE_C(0x001B82), RUNE_C(0x001BA1)},
+ {RUNE_C(0x001BA6), RUNE_C(0x001BA7)},
+ {RUNE_C(0x001BAA), RUNE_C(0x001BAA)},
+ {RUNE_C(0x001BAE), RUNE_C(0x001BE5)},
+ {RUNE_C(0x001BE7), RUNE_C(0x001BE7)},
+ {RUNE_C(0x001BEA), RUNE_C(0x001BEC)},
+ {RUNE_C(0x001BEE), RUNE_C(0x001BEE)},
+ {RUNE_C(0x001BF2), RUNE_C(0x001BF3)},
+ {RUNE_C(0x001BFC), RUNE_C(0x001C2B)},
+ {RUNE_C(0x001C34), RUNE_C(0x001C35)},
+ {RUNE_C(0x001C3B), RUNE_C(0x001C49)},
+ {RUNE_C(0x001C4D), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CC7)},
+ {RUNE_C(0x001CD3), RUNE_C(0x001CD3)},
+ {RUNE_C(0x001CE1), RUNE_C(0x001CE1)},
+ {RUNE_C(0x001CE9), RUNE_C(0x001CEC)},
+ {RUNE_C(0x001CEE), RUNE_C(0x001CF3)},
+ {RUNE_C(0x001CF5), RUNE_C(0x001CF7)},
+ {RUNE_C(0x001CFA), RUNE_C(0x001CFA)},
+ {RUNE_C(0x001D00), RUNE_C(0x001DBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FDD), RUNE_C(0x001FEF)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFE)},
+ {RUNE_C(0x002000), RUNE_C(0x00200A)},
+ {RUNE_C(0x002010), RUNE_C(0x002027)},
+ {RUNE_C(0x00202F), RUNE_C(0x00205F)},
+ {RUNE_C(0x002070), RUNE_C(0x002071)},
+ {RUNE_C(0x002074), RUNE_C(0x00208E)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x0020A0), RUNE_C(0x0020C0)},
+ {RUNE_C(0x002100), RUNE_C(0x00218B)},
+ {RUNE_C(0x002190), RUNE_C(0x002426)},
+ {RUNE_C(0x002440), RUNE_C(0x00244A)},
+ {RUNE_C(0x002460), RUNE_C(0x002B73)},
+ {RUNE_C(0x002B76), RUNE_C(0x002B95)},
+ {RUNE_C(0x002B97), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002CF9), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x002D30), RUNE_C(0x002D67)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D70)},
+ {RUNE_C(0x002D80), RUNE_C(0x002D96)},
+ {RUNE_C(0x002DA0), RUNE_C(0x002DA6)},
+ {RUNE_C(0x002DA8), RUNE_C(0x002DAE)},
+ {RUNE_C(0x002DB0), RUNE_C(0x002DB6)},
+ {RUNE_C(0x002DB8), RUNE_C(0x002DBE)},
+ {RUNE_C(0x002DC0), RUNE_C(0x002DC6)},
+ {RUNE_C(0x002DC8), RUNE_C(0x002DCE)},
+ {RUNE_C(0x002DD0), RUNE_C(0x002DD6)},
+ {RUNE_C(0x002DD8), RUNE_C(0x002DDE)},
+ {RUNE_C(0x002E00), RUNE_C(0x002E5D)},
+ {RUNE_C(0x002E80), RUNE_C(0x002E99)},
+ {RUNE_C(0x002E9B), RUNE_C(0x002EF3)},
+ {RUNE_C(0x002F00), RUNE_C(0x002FD5)},
+ {RUNE_C(0x002FF0), RUNE_C(0x003029)},
+ {RUNE_C(0x003030), RUNE_C(0x00303F)},
+ {RUNE_C(0x003041), RUNE_C(0x003096)},
+ {RUNE_C(0x00309B), RUNE_C(0x0030FF)},
+ {RUNE_C(0x003105), RUNE_C(0x00312F)},
+ {RUNE_C(0x003131), RUNE_C(0x00318E)},
+ {RUNE_C(0x003190), RUNE_C(0x0031E3)},
+ {RUNE_C(0x0031EF), RUNE_C(0x00321E)},
+ {RUNE_C(0x003220), RUNE_C(0x00A48C)},
+ {RUNE_C(0x00A490), RUNE_C(0x00A4C6)},
+ {RUNE_C(0x00A4D0), RUNE_C(0x00A62B)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66E)},
+ {RUNE_C(0x00A673), RUNE_C(0x00A673)},
+ {RUNE_C(0x00A67E), RUNE_C(0x00A69D)},
+ {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)},
+ {RUNE_C(0x00A6F2), RUNE_C(0x00A6F7)},
+ {RUNE_C(0x00A700), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A801)},
+ {RUNE_C(0x00A803), RUNE_C(0x00A805)},
+ {RUNE_C(0x00A807), RUNE_C(0x00A80A)},
+ {RUNE_C(0x00A80C), RUNE_C(0x00A824)},
+ {RUNE_C(0x00A827), RUNE_C(0x00A82B)},
+ {RUNE_C(0x00A830), RUNE_C(0x00A839)},
+ {RUNE_C(0x00A840), RUNE_C(0x00A877)},
+ {RUNE_C(0x00A880), RUNE_C(0x00A8C3)},
+ {RUNE_C(0x00A8CE), RUNE_C(0x00A8D9)},
+ {RUNE_C(0x00A8F2), RUNE_C(0x00A8FE)},
+ {RUNE_C(0x00A900), RUNE_C(0x00A925)},
+ {RUNE_C(0x00A92E), RUNE_C(0x00A946)},
+ {RUNE_C(0x00A952), RUNE_C(0x00A953)},
+ {RUNE_C(0x00A95F), RUNE_C(0x00A97C)},
+ {RUNE_C(0x00A983), RUNE_C(0x00A9B2)},
+ {RUNE_C(0x00A9B4), RUNE_C(0x00A9B5)},
+ {RUNE_C(0x00A9BA), RUNE_C(0x00A9BB)},
+ {RUNE_C(0x00A9BE), RUNE_C(0x00A9CD)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)},
+ {RUNE_C(0x00A9DE), RUNE_C(0x00A9E4)},
+ {RUNE_C(0x00A9E6), RUNE_C(0x00A9FE)},
+ {RUNE_C(0x00AA00), RUNE_C(0x00AA28)},
+ {RUNE_C(0x00AA2F), RUNE_C(0x00AA30)},
+ {RUNE_C(0x00AA33), RUNE_C(0x00AA34)},
+ {RUNE_C(0x00AA40), RUNE_C(0x00AA42)},
+ {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)},
+ {RUNE_C(0x00AA4D), RUNE_C(0x00AA4D)},
+ {RUNE_C(0x00AA50), RUNE_C(0x00AA59)},
+ {RUNE_C(0x00AA5C), RUNE_C(0x00AA7B)},
+ {RUNE_C(0x00AA7D), RUNE_C(0x00AAAF)},
+ {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)},
+ {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)},
+ {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)},
+ {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)},
+ {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)},
+ {RUNE_C(0x00AADB), RUNE_C(0x00AAEB)},
+ {RUNE_C(0x00AAEE), RUNE_C(0x00AAF5)},
+ {RUNE_C(0x00AB01), RUNE_C(0x00AB06)},
+ {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)},
+ {RUNE_C(0x00AB11), RUNE_C(0x00AB16)},
+ {RUNE_C(0x00AB20), RUNE_C(0x00AB26)},
+ {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB6B)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABE4)},
+ {RUNE_C(0x00ABE6), RUNE_C(0x00ABE7)},
+ {RUNE_C(0x00ABE9), RUNE_C(0x00ABEC)},
+ {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)},
+ {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)},
+ {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)},
+ {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)},
+ {RUNE_C(0x00FB1F), RUNE_C(0x00FB36)},
+ {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)},
+ {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)},
+ {RUNE_C(0x00FB40), RUNE_C(0x00FB41)},
+ {RUNE_C(0x00FB43), RUNE_C(0x00FB44)},
+ {RUNE_C(0x00FB46), RUNE_C(0x00FBC2)},
+ {RUNE_C(0x00FBD3), RUNE_C(0x00FD8F)},
+ {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)},
+ {RUNE_C(0x00FDCF), RUNE_C(0x00FDCF)},
+ {RUNE_C(0x00FDF0), RUNE_C(0x00FDFF)},
+ {RUNE_C(0x00FE10), RUNE_C(0x00FE19)},
+ {RUNE_C(0x00FE30), RUNE_C(0x00FE52)},
+ {RUNE_C(0x00FE54), RUNE_C(0x00FE66)},
+ {RUNE_C(0x00FE68), RUNE_C(0x00FE6B)},
+ {RUNE_C(0x00FE70), RUNE_C(0x00FE74)},
+ {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)},
+ {RUNE_C(0x00FF01), RUNE_C(0x00FF9D)},
+ {RUNE_C(0x00FFA0), RUNE_C(0x00FFBE)},
+ {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)},
+ {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)},
+ {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)},
+ {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)},
+ {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6)},
+ {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE)},
+ {RUNE_C(0x00FFFC), RUNE_C(0x00FFFD)},
+ {RUNE_C(0x010000), RUNE_C(0x01000B)},
+ {RUNE_C(0x01000D), RUNE_C(0x010026)},
+ {RUNE_C(0x010028), RUNE_C(0x01003A)},
+ {RUNE_C(0x01003C), RUNE_C(0x01003D)},
+ {RUNE_C(0x01003F), RUNE_C(0x01004D)},
+ {RUNE_C(0x010050), RUNE_C(0x01005D)},
+ {RUNE_C(0x010080), RUNE_C(0x0100FA)},
+ {RUNE_C(0x010100), RUNE_C(0x010102)},
+ {RUNE_C(0x010107), RUNE_C(0x010133)},
+ {RUNE_C(0x010137), RUNE_C(0x01018E)},
+ {RUNE_C(0x010190), RUNE_C(0x01019C)},
+ {RUNE_C(0x0101A0), RUNE_C(0x0101A0)},
+ {RUNE_C(0x0101D0), RUNE_C(0x0101FC)},
+ {RUNE_C(0x010280), RUNE_C(0x01029C)},
+ {RUNE_C(0x0102A0), RUNE_C(0x0102D0)},
+ {RUNE_C(0x0102E1), RUNE_C(0x0102FB)},
+ {RUNE_C(0x010300), RUNE_C(0x010323)},
+ {RUNE_C(0x01032D), RUNE_C(0x01034A)},
+ {RUNE_C(0x010350), RUNE_C(0x010375)},
+ {RUNE_C(0x010380), RUNE_C(0x01039D)},
+ {RUNE_C(0x01039F), RUNE_C(0x0103C3)},
+ {RUNE_C(0x0103C8), RUNE_C(0x0103D5)},
+ {RUNE_C(0x010400), RUNE_C(0x01049D)},
+ {RUNE_C(0x0104A0), RUNE_C(0x0104A9)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010500), RUNE_C(0x010527)},
+ {RUNE_C(0x010530), RUNE_C(0x010563)},
+ {RUNE_C(0x01056F), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010600), RUNE_C(0x010736)},
+ {RUNE_C(0x010740), RUNE_C(0x010755)},
+ {RUNE_C(0x010760), RUNE_C(0x010767)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010800), RUNE_C(0x010805)},
+ {RUNE_C(0x010808), RUNE_C(0x010808)},
+ {RUNE_C(0x01080A), RUNE_C(0x010835)},
+ {RUNE_C(0x010837), RUNE_C(0x010838)},
+ {RUNE_C(0x01083C), RUNE_C(0x01083C)},
+ {RUNE_C(0x01083F), RUNE_C(0x010855)},
+ {RUNE_C(0x010857), RUNE_C(0x01089E)},
+ {RUNE_C(0x0108A7), RUNE_C(0x0108AF)},
+ {RUNE_C(0x0108E0), RUNE_C(0x0108F2)},
+ {RUNE_C(0x0108F4), RUNE_C(0x0108F5)},
+ {RUNE_C(0x0108FB), RUNE_C(0x01091B)},
+ {RUNE_C(0x01091F), RUNE_C(0x010939)},
+ {RUNE_C(0x01093F), RUNE_C(0x01093F)},
+ {RUNE_C(0x010980), RUNE_C(0x0109B7)},
+ {RUNE_C(0x0109BC), RUNE_C(0x0109CF)},
+ {RUNE_C(0x0109D2), RUNE_C(0x010A00)},
+ {RUNE_C(0x010A10), RUNE_C(0x010A13)},
+ {RUNE_C(0x010A15), RUNE_C(0x010A17)},
+ {RUNE_C(0x010A19), RUNE_C(0x010A35)},
+ {RUNE_C(0x010A40), RUNE_C(0x010A48)},
+ {RUNE_C(0x010A50), RUNE_C(0x010A58)},
+ {RUNE_C(0x010A60), RUNE_C(0x010A9F)},
+ {RUNE_C(0x010AC0), RUNE_C(0x010AE4)},
+ {RUNE_C(0x010AEB), RUNE_C(0x010AF6)},
+ {RUNE_C(0x010B00), RUNE_C(0x010B35)},
+ {RUNE_C(0x010B39), RUNE_C(0x010B55)},
+ {RUNE_C(0x010B58), RUNE_C(0x010B72)},
+ {RUNE_C(0x010B78), RUNE_C(0x010B91)},
+ {RUNE_C(0x010B99), RUNE_C(0x010B9C)},
+ {RUNE_C(0x010BA9), RUNE_C(0x010BAF)},
+ {RUNE_C(0x010C00), RUNE_C(0x010C48)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x010CFA), RUNE_C(0x010D23)},
+ {RUNE_C(0x010D30), RUNE_C(0x010D39)},
+ {RUNE_C(0x010E60), RUNE_C(0x010E7E)},
+ {RUNE_C(0x010E80), RUNE_C(0x010EA9)},
+ {RUNE_C(0x010EAD), RUNE_C(0x010EAD)},
+ {RUNE_C(0x010EB0), RUNE_C(0x010EB1)},
+ {RUNE_C(0x010F00), RUNE_C(0x010F27)},
+ {RUNE_C(0x010F30), RUNE_C(0x010F45)},
+ {RUNE_C(0x010F51), RUNE_C(0x010F59)},
+ {RUNE_C(0x010F70), RUNE_C(0x010F81)},
+ {RUNE_C(0x010F86), RUNE_C(0x010F89)},
+ {RUNE_C(0x010FB0), RUNE_C(0x010FCB)},
+ {RUNE_C(0x010FE0), RUNE_C(0x010FF6)},
+ {RUNE_C(0x011000), RUNE_C(0x011000)},
+ {RUNE_C(0x011002), RUNE_C(0x011037)},
+ {RUNE_C(0x011047), RUNE_C(0x01104D)},
+ {RUNE_C(0x011052), RUNE_C(0x01106F)},
+ {RUNE_C(0x011071), RUNE_C(0x011072)},
+ {RUNE_C(0x011075), RUNE_C(0x011075)},
+ {RUNE_C(0x011082), RUNE_C(0x0110B2)},
+ {RUNE_C(0x0110B7), RUNE_C(0x0110B8)},
+ {RUNE_C(0x0110BB), RUNE_C(0x0110BC)},
+ {RUNE_C(0x0110BE), RUNE_C(0x0110C1)},
+ {RUNE_C(0x0110D0), RUNE_C(0x0110E8)},
+ {RUNE_C(0x0110F0), RUNE_C(0x0110F9)},
+ {RUNE_C(0x011103), RUNE_C(0x011126)},
+ {RUNE_C(0x01112C), RUNE_C(0x01112C)},
+ {RUNE_C(0x011136), RUNE_C(0x011147)},
+ {RUNE_C(0x011150), RUNE_C(0x011172)},
+ {RUNE_C(0x011174), RUNE_C(0x011176)},
+ {RUNE_C(0x011182), RUNE_C(0x0111B5)},
+ {RUNE_C(0x0111BF), RUNE_C(0x0111C8)},
+ {RUNE_C(0x0111CD), RUNE_C(0x0111CE)},
+ {RUNE_C(0x0111D0), RUNE_C(0x0111DF)},
+ {RUNE_C(0x0111E1), RUNE_C(0x0111F4)},
+ {RUNE_C(0x011200), RUNE_C(0x011211)},
+ {RUNE_C(0x011213), RUNE_C(0x01122E)},
+ {RUNE_C(0x011232), RUNE_C(0x011233)},
+ {RUNE_C(0x011235), RUNE_C(0x011235)},
+ {RUNE_C(0x011238), RUNE_C(0x01123D)},
+ {RUNE_C(0x01123F), RUNE_C(0x011240)},
+ {RUNE_C(0x011280), RUNE_C(0x011286)},
+ {RUNE_C(0x011288), RUNE_C(0x011288)},
+ {RUNE_C(0x01128A), RUNE_C(0x01128D)},
+ {RUNE_C(0x01128F), RUNE_C(0x01129D)},
+ {RUNE_C(0x01129F), RUNE_C(0x0112A9)},
+ {RUNE_C(0x0112B0), RUNE_C(0x0112DE)},
+ {RUNE_C(0x0112E0), RUNE_C(0x0112E2)},
+ {RUNE_C(0x0112F0), RUNE_C(0x0112F9)},
+ {RUNE_C(0x011302), RUNE_C(0x011303)},
+ {RUNE_C(0x011305), RUNE_C(0x01130C)},
+ {RUNE_C(0x01130F), RUNE_C(0x011310)},
+ {RUNE_C(0x011313), RUNE_C(0x011328)},
+ {RUNE_C(0x01132A), RUNE_C(0x011330)},
+ {RUNE_C(0x011332), RUNE_C(0x011333)},
+ {RUNE_C(0x011335), RUNE_C(0x011339)},
+ {RUNE_C(0x01133D), RUNE_C(0x01133D)},
+ {RUNE_C(0x01133F), RUNE_C(0x01133F)},
+ {RUNE_C(0x011341), RUNE_C(0x011344)},
+ {RUNE_C(0x011347), RUNE_C(0x011348)},
+ {RUNE_C(0x01134B), RUNE_C(0x01134D)},
+ {RUNE_C(0x011350), RUNE_C(0x011350)},
+ {RUNE_C(0x01135D), RUNE_C(0x011363)},
+ {RUNE_C(0x011400), RUNE_C(0x011437)},
+ {RUNE_C(0x011440), RUNE_C(0x011441)},
+ {RUNE_C(0x011445), RUNE_C(0x011445)},
+ {RUNE_C(0x011447), RUNE_C(0x01145B)},
+ {RUNE_C(0x01145D), RUNE_C(0x01145D)},
+ {RUNE_C(0x01145F), RUNE_C(0x011461)},
+ {RUNE_C(0x011480), RUNE_C(0x0114AF)},
+ {RUNE_C(0x0114B1), RUNE_C(0x0114B2)},
+ {RUNE_C(0x0114B9), RUNE_C(0x0114B9)},
+ {RUNE_C(0x0114BB), RUNE_C(0x0114BC)},
+ {RUNE_C(0x0114BE), RUNE_C(0x0114BE)},
+ {RUNE_C(0x0114C1), RUNE_C(0x0114C1)},
+ {RUNE_C(0x0114C4), RUNE_C(0x0114C7)},
+ {RUNE_C(0x0114D0), RUNE_C(0x0114D9)},
+ {RUNE_C(0x011580), RUNE_C(0x0115AE)},
+ {RUNE_C(0x0115B0), RUNE_C(0x0115B1)},
+ {RUNE_C(0x0115B8), RUNE_C(0x0115BB)},
+ {RUNE_C(0x0115BE), RUNE_C(0x0115BE)},
+ {RUNE_C(0x0115C1), RUNE_C(0x0115DB)},
+ {RUNE_C(0x011600), RUNE_C(0x011632)},
+ {RUNE_C(0x01163B), RUNE_C(0x01163C)},
+ {RUNE_C(0x01163E), RUNE_C(0x01163E)},
+ {RUNE_C(0x011641), RUNE_C(0x011644)},
+ {RUNE_C(0x011650), RUNE_C(0x011659)},
+ {RUNE_C(0x011660), RUNE_C(0x01166C)},
+ {RUNE_C(0x011680), RUNE_C(0x0116AA)},
+ {RUNE_C(0x0116AC), RUNE_C(0x0116AC)},
+ {RUNE_C(0x0116AE), RUNE_C(0x0116AF)},
+ {RUNE_C(0x0116B6), RUNE_C(0x0116B6)},
+ {RUNE_C(0x0116B8), RUNE_C(0x0116B9)},
+ {RUNE_C(0x0116C0), RUNE_C(0x0116C9)},
+ {RUNE_C(0x011700), RUNE_C(0x01171A)},
+ {RUNE_C(0x011720), RUNE_C(0x011721)},
+ {RUNE_C(0x011726), RUNE_C(0x011726)},
+ {RUNE_C(0x011730), RUNE_C(0x011746)},
+ {RUNE_C(0x011800), RUNE_C(0x01182E)},
+ {RUNE_C(0x011838), RUNE_C(0x011838)},
+ {RUNE_C(0x01183B), RUNE_C(0x01183B)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118F2)},
+ {RUNE_C(0x0118FF), RUNE_C(0x011906)},
+ {RUNE_C(0x011909), RUNE_C(0x011909)},
+ {RUNE_C(0x01190C), RUNE_C(0x011913)},
+ {RUNE_C(0x011915), RUNE_C(0x011916)},
+ {RUNE_C(0x011918), RUNE_C(0x01192F)},
+ {RUNE_C(0x011931), RUNE_C(0x011935)},
+ {RUNE_C(0x011937), RUNE_C(0x011938)},
+ {RUNE_C(0x01193D), RUNE_C(0x01193D)},
+ {RUNE_C(0x01193F), RUNE_C(0x011942)},
+ {RUNE_C(0x011944), RUNE_C(0x011946)},
+ {RUNE_C(0x011950), RUNE_C(0x011959)},
+ {RUNE_C(0x0119A0), RUNE_C(0x0119A7)},
+ {RUNE_C(0x0119AA), RUNE_C(0x0119D3)},
+ {RUNE_C(0x0119DC), RUNE_C(0x0119DF)},
+ {RUNE_C(0x0119E1), RUNE_C(0x0119E4)},
+ {RUNE_C(0x011A00), RUNE_C(0x011A00)},
+ {RUNE_C(0x011A0B), RUNE_C(0x011A32)},
+ {RUNE_C(0x011A39), RUNE_C(0x011A3A)},
+ {RUNE_C(0x011A3F), RUNE_C(0x011A46)},
+ {RUNE_C(0x011A50), RUNE_C(0x011A50)},
+ {RUNE_C(0x011A57), RUNE_C(0x011A58)},
+ {RUNE_C(0x011A5C), RUNE_C(0x011A89)},
+ {RUNE_C(0x011A97), RUNE_C(0x011A97)},
+ {RUNE_C(0x011A9A), RUNE_C(0x011AA2)},
+ {RUNE_C(0x011AB0), RUNE_C(0x011AF8)},
+ {RUNE_C(0x011B00), RUNE_C(0x011B09)},
+ {RUNE_C(0x011C00), RUNE_C(0x011C08)},
+ {RUNE_C(0x011C0A), RUNE_C(0x011C2F)},
+ {RUNE_C(0x011C3E), RUNE_C(0x011C3E)},
+ {RUNE_C(0x011C40), RUNE_C(0x011C45)},
+ {RUNE_C(0x011C50), RUNE_C(0x011C6C)},
+ {RUNE_C(0x011C70), RUNE_C(0x011C8F)},
+ {RUNE_C(0x011CA9), RUNE_C(0x011CA9)},
+ {RUNE_C(0x011CB1), RUNE_C(0x011CB1)},
+ {RUNE_C(0x011CB4), RUNE_C(0x011CB4)},
+ {RUNE_C(0x011D00), RUNE_C(0x011D06)},
+ {RUNE_C(0x011D08), RUNE_C(0x011D09)},
+ {RUNE_C(0x011D0B), RUNE_C(0x011D30)},
+ {RUNE_C(0x011D46), RUNE_C(0x011D46)},
+ {RUNE_C(0x011D50), RUNE_C(0x011D59)},
+ {RUNE_C(0x011D60), RUNE_C(0x011D65)},
+ {RUNE_C(0x011D67), RUNE_C(0x011D68)},
+ {RUNE_C(0x011D6A), RUNE_C(0x011D8E)},
+ {RUNE_C(0x011D93), RUNE_C(0x011D94)},
+ {RUNE_C(0x011D96), RUNE_C(0x011D96)},
+ {RUNE_C(0x011D98), RUNE_C(0x011D98)},
+ {RUNE_C(0x011DA0), RUNE_C(0x011DA9)},
+ {RUNE_C(0x011EE0), RUNE_C(0x011EF2)},
+ {RUNE_C(0x011EF5), RUNE_C(0x011EF8)},
+ {RUNE_C(0x011F02), RUNE_C(0x011F10)},
+ {RUNE_C(0x011F12), RUNE_C(0x011F35)},
+ {RUNE_C(0x011F3E), RUNE_C(0x011F3F)},
+ {RUNE_C(0x011F41), RUNE_C(0x011F41)},
+ {RUNE_C(0x011F43), RUNE_C(0x011F59)},
+ {RUNE_C(0x011FB0), RUNE_C(0x011FB0)},
+ {RUNE_C(0x011FC0), RUNE_C(0x011FF1)},
+ {RUNE_C(0x011FFF), RUNE_C(0x012399)},
+ {RUNE_C(0x012400), RUNE_C(0x01246E)},
+ {RUNE_C(0x012470), RUNE_C(0x012474)},
+ {RUNE_C(0x012480), RUNE_C(0x012543)},
+ {RUNE_C(0x012F90), RUNE_C(0x012FF2)},
+ {RUNE_C(0x013000), RUNE_C(0x01342F)},
+ {RUNE_C(0x013441), RUNE_C(0x013446)},
+ {RUNE_C(0x014400), RUNE_C(0x014646)},
+ {RUNE_C(0x016800), RUNE_C(0x016A38)},
+ {RUNE_C(0x016A40), RUNE_C(0x016A5E)},
+ {RUNE_C(0x016A60), RUNE_C(0x016A69)},
+ {RUNE_C(0x016A6E), RUNE_C(0x016ABE)},
+ {RUNE_C(0x016AC0), RUNE_C(0x016AC9)},
+ {RUNE_C(0x016AD0), RUNE_C(0x016AED)},
+ {RUNE_C(0x016AF5), RUNE_C(0x016AF5)},
+ {RUNE_C(0x016B00), RUNE_C(0x016B2F)},
+ {RUNE_C(0x016B37), RUNE_C(0x016B45)},
+ {RUNE_C(0x016B50), RUNE_C(0x016B59)},
+ {RUNE_C(0x016B5B), RUNE_C(0x016B61)},
+ {RUNE_C(0x016B63), RUNE_C(0x016B77)},
+ {RUNE_C(0x016B7D), RUNE_C(0x016B8F)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E9A)},
+ {RUNE_C(0x016F00), RUNE_C(0x016F4A)},
+ {RUNE_C(0x016F50), RUNE_C(0x016F87)},
+ {RUNE_C(0x016F93), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE3)},
+ {RUNE_C(0x016FF0), RUNE_C(0x016FF1)},
+ {RUNE_C(0x017000), RUNE_C(0x0187F7)},
+ {RUNE_C(0x018800), RUNE_C(0x018CD5)},
+ {RUNE_C(0x018D00), RUNE_C(0x018D08)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01B000), RUNE_C(0x01B122)},
+ {RUNE_C(0x01B132), RUNE_C(0x01B132)},
+ {RUNE_C(0x01B150), RUNE_C(0x01B152)},
+ {RUNE_C(0x01B155), RUNE_C(0x01B155)},
+ {RUNE_C(0x01B164), RUNE_C(0x01B167)},
+ {RUNE_C(0x01B170), RUNE_C(0x01B2FB)},
+ {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)},
+ {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)},
+ {RUNE_C(0x01BC80), RUNE_C(0x01BC88)},
+ {RUNE_C(0x01BC90), RUNE_C(0x01BC99)},
+ {RUNE_C(0x01BC9C), RUNE_C(0x01BC9C)},
+ {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)},
+ {RUNE_C(0x01CF50), RUNE_C(0x01CFC3)},
+ {RUNE_C(0x01D000), RUNE_C(0x01D0F5)},
+ {RUNE_C(0x01D100), RUNE_C(0x01D126)},
+ {RUNE_C(0x01D129), RUNE_C(0x01D164)},
+ {RUNE_C(0x01D166), RUNE_C(0x01D166)},
+ {RUNE_C(0x01D16A), RUNE_C(0x01D16D)},
+ {RUNE_C(0x01D183), RUNE_C(0x01D184)},
+ {RUNE_C(0x01D18C), RUNE_C(0x01D1A9)},
+ {RUNE_C(0x01D1AE), RUNE_C(0x01D1EA)},
+ {RUNE_C(0x01D200), RUNE_C(0x01D241)},
+ {RUNE_C(0x01D245), RUNE_C(0x01D245)},
+ {RUNE_C(0x01D2C0), RUNE_C(0x01D2D3)},
+ {RUNE_C(0x01D2E0), RUNE_C(0x01D2F3)},
+ {RUNE_C(0x01D300), RUNE_C(0x01D356)},
+ {RUNE_C(0x01D360), RUNE_C(0x01D378)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01D7CE), RUNE_C(0x01D9FF)},
+ {RUNE_C(0x01DA37), RUNE_C(0x01DA3A)},
+ {RUNE_C(0x01DA6D), RUNE_C(0x01DA74)},
+ {RUNE_C(0x01DA76), RUNE_C(0x01DA83)},
+ {RUNE_C(0x01DA85), RUNE_C(0x01DA8B)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E100), RUNE_C(0x01E12C)},
+ {RUNE_C(0x01E137), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E140), RUNE_C(0x01E149)},
+ {RUNE_C(0x01E14E), RUNE_C(0x01E14F)},
+ {RUNE_C(0x01E290), RUNE_C(0x01E2AD)},
+ {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)},
+ {RUNE_C(0x01E2F0), RUNE_C(0x01E2F9)},
+ {RUNE_C(0x01E2FF), RUNE_C(0x01E2FF)},
+ {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)},
+ {RUNE_C(0x01E4F0), RUNE_C(0x01E4F9)},
+ {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)},
+ {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)},
+ {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)},
+ {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)},
+ {RUNE_C(0x01E800), RUNE_C(0x01E8C4)},
+ {RUNE_C(0x01E8C7), RUNE_C(0x01E8CF)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E943)},
+ {RUNE_C(0x01E94B), RUNE_C(0x01E94B)},
+ {RUNE_C(0x01E950), RUNE_C(0x01E959)},
+ {RUNE_C(0x01E95E), RUNE_C(0x01E95F)},
+ {RUNE_C(0x01EC71), RUNE_C(0x01ECB4)},
+ {RUNE_C(0x01ED01), RUNE_C(0x01ED3D)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1)},
+ {RUNE_C(0x01F000), RUNE_C(0x01F02B)},
+ {RUNE_C(0x01F030), RUNE_C(0x01F093)},
+ {RUNE_C(0x01F0A0), RUNE_C(0x01F0AE)},
+ {RUNE_C(0x01F0B1), RUNE_C(0x01F0BF)},
+ {RUNE_C(0x01F0C1), RUNE_C(0x01F0CF)},
+ {RUNE_C(0x01F0D1), RUNE_C(0x01F0F5)},
+ {RUNE_C(0x01F100), RUNE_C(0x01F1AD)},
+ {RUNE_C(0x01F1E6), RUNE_C(0x01F202)},
+ {RUNE_C(0x01F210), RUNE_C(0x01F23B)},
+ {RUNE_C(0x01F240), RUNE_C(0x01F248)},
+ {RUNE_C(0x01F250), RUNE_C(0x01F251)},
+ {RUNE_C(0x01F260), RUNE_C(0x01F265)},
+ {RUNE_C(0x01F300), RUNE_C(0x01F6D7)},
+ {RUNE_C(0x01F6DC), RUNE_C(0x01F6EC)},
+ {RUNE_C(0x01F6F0), RUNE_C(0x01F6FC)},
+ {RUNE_C(0x01F700), RUNE_C(0x01F776)},
+ {RUNE_C(0x01F77B), RUNE_C(0x01F7D9)},
+ {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)},
+ {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)},
+ {RUNE_C(0x01F800), RUNE_C(0x01F80B)},
+ {RUNE_C(0x01F810), RUNE_C(0x01F847)},
+ {RUNE_C(0x01F850), RUNE_C(0x01F859)},
+ {RUNE_C(0x01F860), RUNE_C(0x01F887)},
+ {RUNE_C(0x01F890), RUNE_C(0x01F8AD)},
+ {RUNE_C(0x01F8B0), RUNE_C(0x01F8B1)},
+ {RUNE_C(0x01F900), RUNE_C(0x01FA53)},
+ {RUNE_C(0x01FA60), RUNE_C(0x01FA6D)},
+ {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)},
+ {RUNE_C(0x01FA80), RUNE_C(0x01FA88)},
+ {RUNE_C(0x01FA90), RUNE_C(0x01FABD)},
+ {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)},
+ {RUNE_C(0x01FACE), RUNE_C(0x01FADB)},
+ {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)},
+ {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)},
+ {RUNE_C(0x01FB00), RUNE_C(0x01FB92)},
+ {RUNE_C(0x01FB94), RUNE_C(0x01FBCA)},
+ {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_gr_base(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_gr_ext.c b/lib/unicode/prop/uprop_is_gr_ext.c
new file mode 100644
index 0000000..d0b0d93
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_gr_ext.c
@@ -0,0 +1,384 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000300), RUNE_C(0x00036F)},
+ {RUNE_C(0x000483), RUNE_C(0x000489)},
+ {RUNE_C(0x000591), RUNE_C(0x0005BD)},
+ {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
+ {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
+ {RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
+ {RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
+ {RUNE_C(0x000610), RUNE_C(0x00061A)},
+ {RUNE_C(0x00064B), RUNE_C(0x00065F)},
+ {RUNE_C(0x000670), RUNE_C(0x000670)},
+ {RUNE_C(0x0006D6), RUNE_C(0x0006DC)},
+ {RUNE_C(0x0006DF), RUNE_C(0x0006E4)},
+ {RUNE_C(0x0006E7), RUNE_C(0x0006E8)},
+ {RUNE_C(0x0006EA), RUNE_C(0x0006ED)},
+ {RUNE_C(0x000711), RUNE_C(0x000711)},
+ {RUNE_C(0x000730), RUNE_C(0x00074A)},
+ {RUNE_C(0x0007A6), RUNE_C(0x0007B0)},
+ {RUNE_C(0x0007EB), RUNE_C(0x0007F3)},
+ {RUNE_C(0x0007FD), RUNE_C(0x0007FD)},
+ {RUNE_C(0x000816), RUNE_C(0x000819)},
+ {RUNE_C(0x00081B), RUNE_C(0x000823)},
+ {RUNE_C(0x000825), RUNE_C(0x000827)},
+ {RUNE_C(0x000829), RUNE_C(0x00082D)},
+ {RUNE_C(0x000859), RUNE_C(0x00085B)},
+ {RUNE_C(0x000898), RUNE_C(0x00089F)},
+ {RUNE_C(0x0008CA), RUNE_C(0x0008E1)},
+ {RUNE_C(0x0008E3), RUNE_C(0x000902)},
+ {RUNE_C(0x00093A), RUNE_C(0x00093A)},
+ {RUNE_C(0x00093C), RUNE_C(0x00093C)},
+ {RUNE_C(0x000941), RUNE_C(0x000948)},
+ {RUNE_C(0x00094D), RUNE_C(0x00094D)},
+ {RUNE_C(0x000951), RUNE_C(0x000957)},
+ {RUNE_C(0x000962), RUNE_C(0x000963)},
+ {RUNE_C(0x000981), RUNE_C(0x000981)},
+ {RUNE_C(0x0009BC), RUNE_C(0x0009BC)},
+ {RUNE_C(0x0009BE), RUNE_C(0x0009BE)},
+ {RUNE_C(0x0009C1), RUNE_C(0x0009C4)},
+ {RUNE_C(0x0009CD), RUNE_C(0x0009CD)},
+ {RUNE_C(0x0009D7), RUNE_C(0x0009D7)},
+ {RUNE_C(0x0009E2), RUNE_C(0x0009E3)},
+ {RUNE_C(0x0009FE), RUNE_C(0x0009FE)},
+ {RUNE_C(0x000A01), RUNE_C(0x000A02)},
+ {RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
+ {RUNE_C(0x000A41), RUNE_C(0x000A42)},
+ {RUNE_C(0x000A47), RUNE_C(0x000A48)},
+ {RUNE_C(0x000A4B), RUNE_C(0x000A4D)},
+ {RUNE_C(0x000A51), RUNE_C(0x000A51)},
+ {RUNE_C(0x000A70), RUNE_C(0x000A71)},
+ {RUNE_C(0x000A75), RUNE_C(0x000A75)},
+ {RUNE_C(0x000A81), RUNE_C(0x000A82)},
+ {RUNE_C(0x000ABC), RUNE_C(0x000ABC)},
+ {RUNE_C(0x000AC1), RUNE_C(0x000AC5)},
+ {RUNE_C(0x000AC7), RUNE_C(0x000AC8)},
+ {RUNE_C(0x000ACD), RUNE_C(0x000ACD)},
+ {RUNE_C(0x000AE2), RUNE_C(0x000AE3)},
+ {RUNE_C(0x000AFA), RUNE_C(0x000AFF)},
+ {RUNE_C(0x000B01), RUNE_C(0x000B01)},
+ {RUNE_C(0x000B3C), RUNE_C(0x000B3C)},
+ {RUNE_C(0x000B3E), RUNE_C(0x000B3F)},
+ {RUNE_C(0x000B41), RUNE_C(0x000B44)},
+ {RUNE_C(0x000B4D), RUNE_C(0x000B4D)},
+ {RUNE_C(0x000B55), RUNE_C(0x000B57)},
+ {RUNE_C(0x000B62), RUNE_C(0x000B63)},
+ {RUNE_C(0x000B82), RUNE_C(0x000B82)},
+ {RUNE_C(0x000BBE), RUNE_C(0x000BBE)},
+ {RUNE_C(0x000BC0), RUNE_C(0x000BC0)},
+ {RUNE_C(0x000BCD), RUNE_C(0x000BCD)},
+ {RUNE_C(0x000BD7), RUNE_C(0x000BD7)},
+ {RUNE_C(0x000C00), RUNE_C(0x000C00)},
+ {RUNE_C(0x000C04), RUNE_C(0x000C04)},
+ {RUNE_C(0x000C3C), RUNE_C(0x000C3C)},
+ {RUNE_C(0x000C3E), RUNE_C(0x000C40)},
+ {RUNE_C(0x000C46), RUNE_C(0x000C48)},
+ {RUNE_C(0x000C4A), RUNE_C(0x000C4D)},
+ {RUNE_C(0x000C55), RUNE_C(0x000C56)},
+ {RUNE_C(0x000C62), RUNE_C(0x000C63)},
+ {RUNE_C(0x000C81), RUNE_C(0x000C81)},
+ {RUNE_C(0x000CBC), RUNE_C(0x000CBC)},
+ {RUNE_C(0x000CBF), RUNE_C(0x000CBF)},
+ {RUNE_C(0x000CC2), RUNE_C(0x000CC2)},
+ {RUNE_C(0x000CC6), RUNE_C(0x000CC6)},
+ {RUNE_C(0x000CCC), RUNE_C(0x000CCD)},
+ {RUNE_C(0x000CD5), RUNE_C(0x000CD6)},
+ {RUNE_C(0x000CE2), RUNE_C(0x000CE3)},
+ {RUNE_C(0x000D00), RUNE_C(0x000D01)},
+ {RUNE_C(0x000D3B), RUNE_C(0x000D3C)},
+ {RUNE_C(0x000D3E), RUNE_C(0x000D3E)},
+ {RUNE_C(0x000D41), RUNE_C(0x000D44)},
+ {RUNE_C(0x000D4D), RUNE_C(0x000D4D)},
+ {RUNE_C(0x000D57), RUNE_C(0x000D57)},
+ {RUNE_C(0x000D62), RUNE_C(0x000D63)},
+ {RUNE_C(0x000D81), RUNE_C(0x000D81)},
+ {RUNE_C(0x000DCA), RUNE_C(0x000DCA)},
+ {RUNE_C(0x000DCF), RUNE_C(0x000DCF)},
+ {RUNE_C(0x000DD2), RUNE_C(0x000DD4)},
+ {RUNE_C(0x000DD6), RUNE_C(0x000DD6)},
+ {RUNE_C(0x000DDF), RUNE_C(0x000DDF)},
+ {RUNE_C(0x000E31), RUNE_C(0x000E31)},
+ {RUNE_C(0x000E34), RUNE_C(0x000E3A)},
+ {RUNE_C(0x000E47), RUNE_C(0x000E4E)},
+ {RUNE_C(0x000EB1), RUNE_C(0x000EB1)},
+ {RUNE_C(0x000EB4), RUNE_C(0x000EBC)},
+ {RUNE_C(0x000EC8), RUNE_C(0x000ECE)},
+ {RUNE_C(0x000F18), RUNE_C(0x000F19)},
+ {RUNE_C(0x000F35), RUNE_C(0x000F35)},
+ {RUNE_C(0x000F37), RUNE_C(0x000F37)},
+ {RUNE_C(0x000F39), RUNE_C(0x000F39)},
+ {RUNE_C(0x000F71), RUNE_C(0x000F7E)},
+ {RUNE_C(0x000F80), RUNE_C(0x000F84)},
+ {RUNE_C(0x000F86), RUNE_C(0x000F87)},
+ {RUNE_C(0x000F8D), RUNE_C(0x000F97)},
+ {RUNE_C(0x000F99), RUNE_C(0x000FBC)},
+ {RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
+ {RUNE_C(0x00102D), RUNE_C(0x001030)},
+ {RUNE_C(0x001032), RUNE_C(0x001037)},
+ {RUNE_C(0x001039), RUNE_C(0x00103A)},
+ {RUNE_C(0x00103D), RUNE_C(0x00103E)},
+ {RUNE_C(0x001058), RUNE_C(0x001059)},
+ {RUNE_C(0x00105E), RUNE_C(0x001060)},
+ {RUNE_C(0x001071), RUNE_C(0x001074)},
+ {RUNE_C(0x001082), RUNE_C(0x001082)},
+ {RUNE_C(0x001085), RUNE_C(0x001086)},
+ {RUNE_C(0x00108D), RUNE_C(0x00108D)},
+ {RUNE_C(0x00109D), RUNE_C(0x00109D)},
+ {RUNE_C(0x00135D), RUNE_C(0x00135F)},
+ {RUNE_C(0x001712), RUNE_C(0x001714)},
+ {RUNE_C(0x001732), RUNE_C(0x001733)},
+ {RUNE_C(0x001752), RUNE_C(0x001753)},
+ {RUNE_C(0x001772), RUNE_C(0x001773)},
+ {RUNE_C(0x0017B4), RUNE_C(0x0017B5)},
+ {RUNE_C(0x0017B7), RUNE_C(0x0017BD)},
+ {RUNE_C(0x0017C6), RUNE_C(0x0017C6)},
+ {RUNE_C(0x0017C9), RUNE_C(0x0017D3)},
+ {RUNE_C(0x0017DD), RUNE_C(0x0017DD)},
+ {RUNE_C(0x00180B), RUNE_C(0x00180D)},
+ {RUNE_C(0x00180F), RUNE_C(0x00180F)},
+ {RUNE_C(0x001885), RUNE_C(0x001886)},
+ {RUNE_C(0x0018A9), RUNE_C(0x0018A9)},
+ {RUNE_C(0x001920), RUNE_C(0x001922)},
+ {RUNE_C(0x001927), RUNE_C(0x001928)},
+ {RUNE_C(0x001932), RUNE_C(0x001932)},
+ {RUNE_C(0x001939), RUNE_C(0x00193B)},
+ {RUNE_C(0x001A17), RUNE_C(0x001A18)},
+ {RUNE_C(0x001A1B), RUNE_C(0x001A1B)},
+ {RUNE_C(0x001A56), RUNE_C(0x001A56)},
+ {RUNE_C(0x001A58), RUNE_C(0x001A5E)},
+ {RUNE_C(0x001A60), RUNE_C(0x001A60)},
+ {RUNE_C(0x001A62), RUNE_C(0x001A62)},
+ {RUNE_C(0x001A65), RUNE_C(0x001A6C)},
+ {RUNE_C(0x001A73), RUNE_C(0x001A7C)},
+ {RUNE_C(0x001A7F), RUNE_C(0x001A7F)},
+ {RUNE_C(0x001AB0), RUNE_C(0x001ACE)},
+ {RUNE_C(0x001B00), RUNE_C(0x001B03)},
+ {RUNE_C(0x001B34), RUNE_C(0x001B3A)},
+ {RUNE_C(0x001B3C), RUNE_C(0x001B3C)},
+ {RUNE_C(0x001B42), RUNE_C(0x001B42)},
+ {RUNE_C(0x001B6B), RUNE_C(0x001B73)},
+ {RUNE_C(0x001B80), RUNE_C(0x001B81)},
+ {RUNE_C(0x001BA2), RUNE_C(0x001BA5)},
+ {RUNE_C(0x001BA8), RUNE_C(0x001BA9)},
+ {RUNE_C(0x001BAB), RUNE_C(0x001BAD)},
+ {RUNE_C(0x001BE6), RUNE_C(0x001BE6)},
+ {RUNE_C(0x001BE8), RUNE_C(0x001BE9)},
+ {RUNE_C(0x001BED), RUNE_C(0x001BED)},
+ {RUNE_C(0x001BEF), RUNE_C(0x001BF1)},
+ {RUNE_C(0x001C2C), RUNE_C(0x001C33)},
+ {RUNE_C(0x001C36), RUNE_C(0x001C37)},
+ {RUNE_C(0x001CD0), RUNE_C(0x001CD2)},
+ {RUNE_C(0x001CD4), RUNE_C(0x001CE0)},
+ {RUNE_C(0x001CE2), RUNE_C(0x001CE8)},
+ {RUNE_C(0x001CED), RUNE_C(0x001CED)},
+ {RUNE_C(0x001CF4), RUNE_C(0x001CF4)},
+ {RUNE_C(0x001CF8), RUNE_C(0x001CF9)},
+ {RUNE_C(0x001DC0), RUNE_C(0x001DFF)},
+ {RUNE_C(0x00200C), RUNE_C(0x00200C)},
+ {RUNE_C(0x0020D0), RUNE_C(0x0020F0)},
+ {RUNE_C(0x002CEF), RUNE_C(0x002CF1)},
+ {RUNE_C(0x002D7F), RUNE_C(0x002D7F)},
+ {RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
+ {RUNE_C(0x00302A), RUNE_C(0x00302F)},
+ {RUNE_C(0x003099), RUNE_C(0x00309A)},
+ {RUNE_C(0x00A66F), RUNE_C(0x00A672)},
+ {RUNE_C(0x00A674), RUNE_C(0x00A67D)},
+ {RUNE_C(0x00A69E), RUNE_C(0x00A69F)},
+ {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)},
+ {RUNE_C(0x00A802), RUNE_C(0x00A802)},
+ {RUNE_C(0x00A806), RUNE_C(0x00A806)},
+ {RUNE_C(0x00A80B), RUNE_C(0x00A80B)},
+ {RUNE_C(0x00A825), RUNE_C(0x00A826)},
+ {RUNE_C(0x00A82C), RUNE_C(0x00A82C)},
+ {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)},
+ {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)},
+ {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)},
+ {RUNE_C(0x00A926), RUNE_C(0x00A92D)},
+ {RUNE_C(0x00A947), RUNE_C(0x00A951)},
+ {RUNE_C(0x00A980), RUNE_C(0x00A982)},
+ {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)},
+ {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)},
+ {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)},
+ {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5)},
+ {RUNE_C(0x00AA29), RUNE_C(0x00AA2E)},
+ {RUNE_C(0x00AA31), RUNE_C(0x00AA32)},
+ {RUNE_C(0x00AA35), RUNE_C(0x00AA36)},
+ {RUNE_C(0x00AA43), RUNE_C(0x00AA43)},
+ {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)},
+ {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)},
+ {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)},
+ {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)},
+ {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)},
+ {RUNE_C(0x00AABE), RUNE_C(0x00AABF)},
+ {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)},
+ {RUNE_C(0x00AAEC), RUNE_C(0x00AAED)},
+ {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)},
+ {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)},
+ {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)},
+ {RUNE_C(0x00ABED), RUNE_C(0x00ABED)},
+ {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)},
+ {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
+ {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
+ {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)},
+ {RUNE_C(0x0101FD), RUNE_C(0x0101FD)},
+ {RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
+ {RUNE_C(0x010376), RUNE_C(0x01037A)},
+ {RUNE_C(0x010A01), RUNE_C(0x010A03)},
+ {RUNE_C(0x010A05), RUNE_C(0x010A06)},
+ {RUNE_C(0x010A0C), RUNE_C(0x010A0F)},
+ {RUNE_C(0x010A38), RUNE_C(0x010A3A)},
+ {RUNE_C(0x010A3F), RUNE_C(0x010A3F)},
+ {RUNE_C(0x010AE5), RUNE_C(0x010AE6)},
+ {RUNE_C(0x010D24), RUNE_C(0x010D27)},
+ {RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
+ {RUNE_C(0x010EFD), RUNE_C(0x010EFF)},
+ {RUNE_C(0x010F46), RUNE_C(0x010F50)},
+ {RUNE_C(0x010F82), RUNE_C(0x010F85)},
+ {RUNE_C(0x011001), RUNE_C(0x011001)},
+ {RUNE_C(0x011038), RUNE_C(0x011046)},
+ {RUNE_C(0x011070), RUNE_C(0x011070)},
+ {RUNE_C(0x011073), RUNE_C(0x011074)},
+ {RUNE_C(0x01107F), RUNE_C(0x011081)},
+ {RUNE_C(0x0110B3), RUNE_C(0x0110B6)},
+ {RUNE_C(0x0110B9), RUNE_C(0x0110BA)},
+ {RUNE_C(0x0110C2), RUNE_C(0x0110C2)},
+ {RUNE_C(0x011100), RUNE_C(0x011102)},
+ {RUNE_C(0x011127), RUNE_C(0x01112B)},
+ {RUNE_C(0x01112D), RUNE_C(0x011134)},
+ {RUNE_C(0x011173), RUNE_C(0x011173)},
+ {RUNE_C(0x011180), RUNE_C(0x011181)},
+ {RUNE_C(0x0111B6), RUNE_C(0x0111BE)},
+ {RUNE_C(0x0111C9), RUNE_C(0x0111CC)},
+ {RUNE_C(0x0111CF), RUNE_C(0x0111CF)},
+ {RUNE_C(0x01122F), RUNE_C(0x011231)},
+ {RUNE_C(0x011234), RUNE_C(0x011234)},
+ {RUNE_C(0x011236), RUNE_C(0x011237)},
+ {RUNE_C(0x01123E), RUNE_C(0x01123E)},
+ {RUNE_C(0x011241), RUNE_C(0x011241)},
+ {RUNE_C(0x0112DF), RUNE_C(0x0112DF)},
+ {RUNE_C(0x0112E3), RUNE_C(0x0112EA)},
+ {RUNE_C(0x011300), RUNE_C(0x011301)},
+ {RUNE_C(0x01133B), RUNE_C(0x01133C)},
+ {RUNE_C(0x01133E), RUNE_C(0x01133E)},
+ {RUNE_C(0x011340), RUNE_C(0x011340)},
+ {RUNE_C(0x011357), RUNE_C(0x011357)},
+ {RUNE_C(0x011366), RUNE_C(0x01136C)},
+ {RUNE_C(0x011370), RUNE_C(0x011374)},
+ {RUNE_C(0x011438), RUNE_C(0x01143F)},
+ {RUNE_C(0x011442), RUNE_C(0x011444)},
+ {RUNE_C(0x011446), RUNE_C(0x011446)},
+ {RUNE_C(0x01145E), RUNE_C(0x01145E)},
+ {RUNE_C(0x0114B0), RUNE_C(0x0114B0)},
+ {RUNE_C(0x0114B3), RUNE_C(0x0114B8)},
+ {RUNE_C(0x0114BA), RUNE_C(0x0114BA)},
+ {RUNE_C(0x0114BD), RUNE_C(0x0114BD)},
+ {RUNE_C(0x0114BF), RUNE_C(0x0114C0)},
+ {RUNE_C(0x0114C2), RUNE_C(0x0114C3)},
+ {RUNE_C(0x0115AF), RUNE_C(0x0115AF)},
+ {RUNE_C(0x0115B2), RUNE_C(0x0115B5)},
+ {RUNE_C(0x0115BC), RUNE_C(0x0115BD)},
+ {RUNE_C(0x0115BF), RUNE_C(0x0115C0)},
+ {RUNE_C(0x0115DC), RUNE_C(0x0115DD)},
+ {RUNE_C(0x011633), RUNE_C(0x01163A)},
+ {RUNE_C(0x01163D), RUNE_C(0x01163D)},
+ {RUNE_C(0x01163F), RUNE_C(0x011640)},
+ {RUNE_C(0x0116AB), RUNE_C(0x0116AB)},
+ {RUNE_C(0x0116AD), RUNE_C(0x0116AD)},
+ {RUNE_C(0x0116B0), RUNE_C(0x0116B5)},
+ {RUNE_C(0x0116B7), RUNE_C(0x0116B7)},
+ {RUNE_C(0x01171D), RUNE_C(0x01171F)},
+ {RUNE_C(0x011722), RUNE_C(0x011725)},
+ {RUNE_C(0x011727), RUNE_C(0x01172B)},
+ {RUNE_C(0x01182F), RUNE_C(0x011837)},
+ {RUNE_C(0x011839), RUNE_C(0x01183A)},
+ {RUNE_C(0x011930), RUNE_C(0x011930)},
+ {RUNE_C(0x01193B), RUNE_C(0x01193C)},
+ {RUNE_C(0x01193E), RUNE_C(0x01193E)},
+ {RUNE_C(0x011943), RUNE_C(0x011943)},
+ {RUNE_C(0x0119D4), RUNE_C(0x0119D7)},
+ {RUNE_C(0x0119DA), RUNE_C(0x0119DB)},
+ {RUNE_C(0x0119E0), RUNE_C(0x0119E0)},
+ {RUNE_C(0x011A01), RUNE_C(0x011A0A)},
+ {RUNE_C(0x011A33), RUNE_C(0x011A38)},
+ {RUNE_C(0x011A3B), RUNE_C(0x011A3E)},
+ {RUNE_C(0x011A47), RUNE_C(0x011A47)},
+ {RUNE_C(0x011A51), RUNE_C(0x011A56)},
+ {RUNE_C(0x011A59), RUNE_C(0x011A5B)},
+ {RUNE_C(0x011A8A), RUNE_C(0x011A96)},
+ {RUNE_C(0x011A98), RUNE_C(0x011A99)},
+ {RUNE_C(0x011C30), RUNE_C(0x011C36)},
+ {RUNE_C(0x011C38), RUNE_C(0x011C3D)},
+ {RUNE_C(0x011C3F), RUNE_C(0x011C3F)},
+ {RUNE_C(0x011C92), RUNE_C(0x011CA7)},
+ {RUNE_C(0x011CAA), RUNE_C(0x011CB0)},
+ {RUNE_C(0x011CB2), RUNE_C(0x011CB3)},
+ {RUNE_C(0x011CB5), RUNE_C(0x011CB6)},
+ {RUNE_C(0x011D31), RUNE_C(0x011D36)},
+ {RUNE_C(0x011D3A), RUNE_C(0x011D3A)},
+ {RUNE_C(0x011D3C), RUNE_C(0x011D3D)},
+ {RUNE_C(0x011D3F), RUNE_C(0x011D45)},
+ {RUNE_C(0x011D47), RUNE_C(0x011D47)},
+ {RUNE_C(0x011D90), RUNE_C(0x011D91)},
+ {RUNE_C(0x011D95), RUNE_C(0x011D95)},
+ {RUNE_C(0x011D97), RUNE_C(0x011D97)},
+ {RUNE_C(0x011EF3), RUNE_C(0x011EF4)},
+ {RUNE_C(0x011F00), RUNE_C(0x011F01)},
+ {RUNE_C(0x011F36), RUNE_C(0x011F3A)},
+ {RUNE_C(0x011F40), RUNE_C(0x011F40)},
+ {RUNE_C(0x011F42), RUNE_C(0x011F42)},
+ {RUNE_C(0x013440), RUNE_C(0x013440)},
+ {RUNE_C(0x013447), RUNE_C(0x013455)},
+ {RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
+ {RUNE_C(0x016B30), RUNE_C(0x016B36)},
+ {RUNE_C(0x016F4F), RUNE_C(0x016F4F)},
+ {RUNE_C(0x016F8F), RUNE_C(0x016F92)},
+ {RUNE_C(0x016FE4), RUNE_C(0x016FE4)},
+ {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)},
+ {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)},
+ {RUNE_C(0x01CF30), RUNE_C(0x01CF46)},
+ {RUNE_C(0x01D165), RUNE_C(0x01D165)},
+ {RUNE_C(0x01D167), RUNE_C(0x01D169)},
+ {RUNE_C(0x01D16E), RUNE_C(0x01D172)},
+ {RUNE_C(0x01D17B), RUNE_C(0x01D182)},
+ {RUNE_C(0x01D185), RUNE_C(0x01D18B)},
+ {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
+ {RUNE_C(0x01D242), RUNE_C(0x01D244)},
+ {RUNE_C(0x01DA00), RUNE_C(0x01DA36)},
+ {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)},
+ {RUNE_C(0x01DA75), RUNE_C(0x01DA75)},
+ {RUNE_C(0x01DA84), RUNE_C(0x01DA84)},
+ {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)},
+ {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)},
+ {RUNE_C(0x01E000), RUNE_C(0x01E006)},
+ {RUNE_C(0x01E008), RUNE_C(0x01E018)},
+ {RUNE_C(0x01E01B), RUNE_C(0x01E021)},
+ {RUNE_C(0x01E023), RUNE_C(0x01E024)},
+ {RUNE_C(0x01E026), RUNE_C(0x01E02A)},
+ {RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
+ {RUNE_C(0x01E130), RUNE_C(0x01E136)},
+ {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)},
+ {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)},
+ {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF)},
+ {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
+ {RUNE_C(0x01E944), RUNE_C(0x01E94A)},
+ {RUNE_C(0x0E0020), RUNE_C(0x0E007F)},
+ {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_gr_ext(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_hex.c b/lib/unicode/prop/uprop_is_hex.c
new file mode 100644
index 0000000..c2e6793
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_hex.c
@@ -0,0 +1,31 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
+ 0x7E, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00FF10), RUNE_C(0x00FF19)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF26)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF46)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_hex(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_id_compat_math_continue.c b/lib/unicode/prop/uprop_is_id_compat_math_continue.c
new file mode 100644
index 0000000..2cde8a1
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_id_compat_math_continue.c
@@ -0,0 +1,44 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x002070), RUNE_C(0x002070)},
+ {RUNE_C(0x002074), RUNE_C(0x00207E)},
+ {RUNE_C(0x002080), RUNE_C(0x00208E)},
+ {RUNE_C(0x002202), RUNE_C(0x002202)},
+ {RUNE_C(0x002207), RUNE_C(0x002207)},
+ {RUNE_C(0x00221E), RUNE_C(0x00221E)},
+ {RUNE_C(0x01D6C1), RUNE_C(0x01D6C1)},
+ {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)},
+ {RUNE_C(0x01D6FB), RUNE_C(0x01D6FB)},
+ {RUNE_C(0x01D715), RUNE_C(0x01D715)},
+ {RUNE_C(0x01D735), RUNE_C(0x01D735)},
+ {RUNE_C(0x01D74F), RUNE_C(0x01D74F)},
+ {RUNE_C(0x01D76F), RUNE_C(0x01D76F)},
+ {RUNE_C(0x01D789), RUNE_C(0x01D789)},
+ {RUNE_C(0x01D7A9), RUNE_C(0x01D7A9)},
+ {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_id_compat_math_continue(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_id_compat_math_start.c b/lib/unicode/prop/uprop_is_id_compat_math_start.c
new file mode 100644
index 0000000..e89ef5d
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_id_compat_math_start.c
@@ -0,0 +1,34 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x002202), RUNE_C(0x002202)},
+ {RUNE_C(0x002207), RUNE_C(0x002207)},
+ {RUNE_C(0x00221E), RUNE_C(0x00221E)},
+ {RUNE_C(0x01D6C1), RUNE_C(0x01D6C1)},
+ {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)},
+ {RUNE_C(0x01D6FB), RUNE_C(0x01D6FB)},
+ {RUNE_C(0x01D715), RUNE_C(0x01D715)},
+ {RUNE_C(0x01D735), RUNE_C(0x01D735)},
+ {RUNE_C(0x01D74F), RUNE_C(0x01D74F)},
+ {RUNE_C(0x01D76F), RUNE_C(0x01D76F)},
+ {RUNE_C(0x01D789), RUNE_C(0x01D789)},
+ {RUNE_C(0x01D7A9), RUNE_C(0x01D7A9)},
+ {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_id_compat_math_start(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_idbo.c b/lib/unicode/prop/uprop_is_idbo.c
new file mode 100644
index 0000000..44f952e
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_idbo.c
@@ -0,0 +1,24 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x002FF0), RUNE_C(0x002FF1)},
+ {RUNE_C(0x002FF4), RUNE_C(0x002FFD)},
+ {RUNE_C(0x0031EF), RUNE_C(0x0031EF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_idbo(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_idc.c b/lib/unicode/prop/uprop_is_idc.c
new file mode 100644
index 0000000..f02ad69
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_idc.c
@@ -0,0 +1,787 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
+ 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xA0, 0x04,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x0002C1)},
+ {RUNE_C(0x0002C6), RUNE_C(0x0002D1)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x0002EC), RUNE_C(0x0002EC)},
+ {RUNE_C(0x0002EE), RUNE_C(0x0002EE)},
+ {RUNE_C(0x000300), RUNE_C(0x000374)},
+ {RUNE_C(0x000376), RUNE_C(0x000377)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037D)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x000481)},
+ {RUNE_C(0x000483), RUNE_C(0x000487)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000559), RUNE_C(0x000559)},
+ {RUNE_C(0x000560), RUNE_C(0x000588)},
+ {RUNE_C(0x000591), RUNE_C(0x0005BD)},
+ {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
+ {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
+ {RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
+ {RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
+ {RUNE_C(0x0005D0), RUNE_C(0x0005EA)},
+ {RUNE_C(0x0005EF), RUNE_C(0x0005F2)},
+ {RUNE_C(0x000610), RUNE_C(0x00061A)},
+ {RUNE_C(0x000620), RUNE_C(0x000669)},
+ {RUNE_C(0x00066E), RUNE_C(0x0006D3)},
+ {RUNE_C(0x0006D5), RUNE_C(0x0006DC)},
+ {RUNE_C(0x0006DF), RUNE_C(0x0006E8)},
+ {RUNE_C(0x0006EA), RUNE_C(0x0006FC)},
+ {RUNE_C(0x0006FF), RUNE_C(0x0006FF)},
+ {RUNE_C(0x000710), RUNE_C(0x00074A)},
+ {RUNE_C(0x00074D), RUNE_C(0x0007B1)},
+ {RUNE_C(0x0007C0), RUNE_C(0x0007F5)},
+ {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
+ {RUNE_C(0x0007FD), RUNE_C(0x0007FD)},
+ {RUNE_C(0x000800), RUNE_C(0x00082D)},
+ {RUNE_C(0x000840), RUNE_C(0x00085B)},
+ {RUNE_C(0x000860), RUNE_C(0x00086A)},
+ {RUNE_C(0x000870), RUNE_C(0x000887)},
+ {RUNE_C(0x000889), RUNE_C(0x00088E)},
+ {RUNE_C(0x000898), RUNE_C(0x0008E1)},
+ {RUNE_C(0x0008E3), RUNE_C(0x000963)},
+ {RUNE_C(0x000966), RUNE_C(0x00096F)},
+ {RUNE_C(0x000971), RUNE_C(0x000983)},
+ {RUNE_C(0x000985), RUNE_C(0x00098C)},
+ {RUNE_C(0x00098F), RUNE_C(0x000990)},
+ {RUNE_C(0x000993), RUNE_C(0x0009A8)},
+ {RUNE_C(0x0009AA), RUNE_C(0x0009B0)},
+ {RUNE_C(0x0009B2), RUNE_C(0x0009B2)},
+ {RUNE_C(0x0009B6), RUNE_C(0x0009B9)},
+ {RUNE_C(0x0009BC), RUNE_C(0x0009C4)},
+ {RUNE_C(0x0009C7), RUNE_C(0x0009C8)},
+ {RUNE_C(0x0009CB), RUNE_C(0x0009CE)},
+ {RUNE_C(0x0009D7), RUNE_C(0x0009D7)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009E3)},
+ {RUNE_C(0x0009E6), RUNE_C(0x0009F1)},
+ {RUNE_C(0x0009FC), RUNE_C(0x0009FC)},
+ {RUNE_C(0x0009FE), RUNE_C(0x0009FE)},
+ {RUNE_C(0x000A01), RUNE_C(0x000A03)},
+ {RUNE_C(0x000A05), RUNE_C(0x000A0A)},
+ {RUNE_C(0x000A0F), RUNE_C(0x000A10)},
+ {RUNE_C(0x000A13), RUNE_C(0x000A28)},
+ {RUNE_C(0x000A2A), RUNE_C(0x000A30)},
+ {RUNE_C(0x000A32), RUNE_C(0x000A33)},
+ {RUNE_C(0x000A35), RUNE_C(0x000A36)},
+ {RUNE_C(0x000A38), RUNE_C(0x000A39)},
+ {RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
+ {RUNE_C(0x000A3E), RUNE_C(0x000A42)},
+ {RUNE_C(0x000A47), RUNE_C(0x000A48)},
+ {RUNE_C(0x000A4B), RUNE_C(0x000A4D)},
+ {RUNE_C(0x000A51), RUNE_C(0x000A51)},
+ {RUNE_C(0x000A59), RUNE_C(0x000A5C)},
+ {RUNE_C(0x000A5E), RUNE_C(0x000A5E)},
+ {RUNE_C(0x000A66), RUNE_C(0x000A75)},
+ {RUNE_C(0x000A81), RUNE_C(0x000A83)},
+ {RUNE_C(0x000A85), RUNE_C(0x000A8D)},
+ {RUNE_C(0x000A8F), RUNE_C(0x000A91)},
+ {RUNE_C(0x000A93), RUNE_C(0x000AA8)},
+ {RUNE_C(0x000AAA), RUNE_C(0x000AB0)},
+ {RUNE_C(0x000AB2), RUNE_C(0x000AB3)},
+ {RUNE_C(0x000AB5), RUNE_C(0x000AB9)},
+ {RUNE_C(0x000ABC), RUNE_C(0x000AC5)},
+ {RUNE_C(0x000AC7), RUNE_C(0x000AC9)},
+ {RUNE_C(0x000ACB), RUNE_C(0x000ACD)},
+ {RUNE_C(0x000AD0), RUNE_C(0x000AD0)},
+ {RUNE_C(0x000AE0), RUNE_C(0x000AE3)},
+ {RUNE_C(0x000AE6), RUNE_C(0x000AEF)},
+ {RUNE_C(0x000AF9), RUNE_C(0x000AFF)},
+ {RUNE_C(0x000B01), RUNE_C(0x000B03)},
+ {RUNE_C(0x000B05), RUNE_C(0x000B0C)},
+ {RUNE_C(0x000B0F), RUNE_C(0x000B10)},
+ {RUNE_C(0x000B13), RUNE_C(0x000B28)},
+ {RUNE_C(0x000B2A), RUNE_C(0x000B30)},
+ {RUNE_C(0x000B32), RUNE_C(0x000B33)},
+ {RUNE_C(0x000B35), RUNE_C(0x000B39)},
+ {RUNE_C(0x000B3C), RUNE_C(0x000B44)},
+ {RUNE_C(0x000B47), RUNE_C(0x000B48)},
+ {RUNE_C(0x000B4B), RUNE_C(0x000B4D)},
+ {RUNE_C(0x000B55), RUNE_C(0x000B57)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000B5F), RUNE_C(0x000B63)},
+ {RUNE_C(0x000B66), RUNE_C(0x000B6F)},
+ {RUNE_C(0x000B71), RUNE_C(0x000B71)},
+ {RUNE_C(0x000B82), RUNE_C(0x000B83)},
+ {RUNE_C(0x000B85), RUNE_C(0x000B8A)},
+ {RUNE_C(0x000B8E), RUNE_C(0x000B90)},
+ {RUNE_C(0x000B92), RUNE_C(0x000B95)},
+ {RUNE_C(0x000B99), RUNE_C(0x000B9A)},
+ {RUNE_C(0x000B9C), RUNE_C(0x000B9C)},
+ {RUNE_C(0x000B9E), RUNE_C(0x000B9F)},
+ {RUNE_C(0x000BA3), RUNE_C(0x000BA4)},
+ {RUNE_C(0x000BA8), RUNE_C(0x000BAA)},
+ {RUNE_C(0x000BAE), RUNE_C(0x000BB9)},
+ {RUNE_C(0x000BBE), RUNE_C(0x000BC2)},
+ {RUNE_C(0x000BC6), RUNE_C(0x000BC8)},
+ {RUNE_C(0x000BCA), RUNE_C(0x000BCD)},
+ {RUNE_C(0x000BD0), RUNE_C(0x000BD0)},
+ {RUNE_C(0x000BD7), RUNE_C(0x000BD7)},
+ {RUNE_C(0x000BE6), RUNE_C(0x000BEF)},
+ {RUNE_C(0x000C00), RUNE_C(0x000C0C)},
+ {RUNE_C(0x000C0E), RUNE_C(0x000C10)},
+ {RUNE_C(0x000C12), RUNE_C(0x000C28)},
+ {RUNE_C(0x000C2A), RUNE_C(0x000C39)},
+ {RUNE_C(0x000C3C), RUNE_C(0x000C44)},
+ {RUNE_C(0x000C46), RUNE_C(0x000C48)},
+ {RUNE_C(0x000C4A), RUNE_C(0x000C4D)},
+ {RUNE_C(0x000C55), RUNE_C(0x000C56)},
+ {RUNE_C(0x000C58), RUNE_C(0x000C5A)},
+ {RUNE_C(0x000C5D), RUNE_C(0x000C5D)},
+ {RUNE_C(0x000C60), RUNE_C(0x000C63)},
+ {RUNE_C(0x000C66), RUNE_C(0x000C6F)},
+ {RUNE_C(0x000C80), RUNE_C(0x000C83)},
+ {RUNE_C(0x000C85), RUNE_C(0x000C8C)},
+ {RUNE_C(0x000C8E), RUNE_C(0x000C90)},
+ {RUNE_C(0x000C92), RUNE_C(0x000CA8)},
+ {RUNE_C(0x000CAA), RUNE_C(0x000CB3)},
+ {RUNE_C(0x000CB5), RUNE_C(0x000CB9)},
+ {RUNE_C(0x000CBC), RUNE_C(0x000CC4)},
+ {RUNE_C(0x000CC6), RUNE_C(0x000CC8)},
+ {RUNE_C(0x000CCA), RUNE_C(0x000CCD)},
+ {RUNE_C(0x000CD5), RUNE_C(0x000CD6)},
+ {RUNE_C(0x000CDD), RUNE_C(0x000CDE)},
+ {RUNE_C(0x000CE0), RUNE_C(0x000CE3)},
+ {RUNE_C(0x000CE6), RUNE_C(0x000CEF)},
+ {RUNE_C(0x000CF1), RUNE_C(0x000CF3)},
+ {RUNE_C(0x000D00), RUNE_C(0x000D0C)},
+ {RUNE_C(0x000D0E), RUNE_C(0x000D10)},
+ {RUNE_C(0x000D12), RUNE_C(0x000D44)},
+ {RUNE_C(0x000D46), RUNE_C(0x000D48)},
+ {RUNE_C(0x000D4A), RUNE_C(0x000D4E)},
+ {RUNE_C(0x000D54), RUNE_C(0x000D57)},
+ {RUNE_C(0x000D5F), RUNE_C(0x000D63)},
+ {RUNE_C(0x000D66), RUNE_C(0x000D6F)},
+ {RUNE_C(0x000D7A), RUNE_C(0x000D7F)},
+ {RUNE_C(0x000D81), RUNE_C(0x000D83)},
+ {RUNE_C(0x000D85), RUNE_C(0x000D96)},
+ {RUNE_C(0x000D9A), RUNE_C(0x000DB1)},
+ {RUNE_C(0x000DB3), RUNE_C(0x000DBB)},
+ {RUNE_C(0x000DBD), RUNE_C(0x000DBD)},
+ {RUNE_C(0x000DC0), RUNE_C(0x000DC6)},
+ {RUNE_C(0x000DCA), RUNE_C(0x000DCA)},
+ {RUNE_C(0x000DCF), RUNE_C(0x000DD4)},
+ {RUNE_C(0x000DD6), RUNE_C(0x000DD6)},
+ {RUNE_C(0x000DD8), RUNE_C(0x000DDF)},
+ {RUNE_C(0x000DE6), RUNE_C(0x000DEF)},
+ {RUNE_C(0x000DF2), RUNE_C(0x000DF3)},
+ {RUNE_C(0x000E01), RUNE_C(0x000E3A)},
+ {RUNE_C(0x000E40), RUNE_C(0x000E4E)},
+ {RUNE_C(0x000E50), RUNE_C(0x000E59)},
+ {RUNE_C(0x000E81), RUNE_C(0x000E82)},
+ {RUNE_C(0x000E84), RUNE_C(0x000E84)},
+ {RUNE_C(0x000E86), RUNE_C(0x000E8A)},
+ {RUNE_C(0x000E8C), RUNE_C(0x000EA3)},
+ {RUNE_C(0x000EA5), RUNE_C(0x000EA5)},
+ {RUNE_C(0x000EA7), RUNE_C(0x000EBD)},
+ {RUNE_C(0x000EC0), RUNE_C(0x000EC4)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x000EC8), RUNE_C(0x000ECE)},
+ {RUNE_C(0x000ED0), RUNE_C(0x000ED9)},
+ {RUNE_C(0x000EDC), RUNE_C(0x000EDF)},
+ {RUNE_C(0x000F00), RUNE_C(0x000F00)},
+ {RUNE_C(0x000F18), RUNE_C(0x000F19)},
+ {RUNE_C(0x000F20), RUNE_C(0x000F29)},
+ {RUNE_C(0x000F35), RUNE_C(0x000F35)},
+ {RUNE_C(0x000F37), RUNE_C(0x000F37)},
+ {RUNE_C(0x000F39), RUNE_C(0x000F39)},
+ {RUNE_C(0x000F3E), RUNE_C(0x000F47)},
+ {RUNE_C(0x000F49), RUNE_C(0x000F6C)},
+ {RUNE_C(0x000F71), RUNE_C(0x000F84)},
+ {RUNE_C(0x000F86), RUNE_C(0x000F97)},
+ {RUNE_C(0x000F99), RUNE_C(0x000FBC)},
+ {RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
+ {RUNE_C(0x001000), RUNE_C(0x001049)},
+ {RUNE_C(0x001050), RUNE_C(0x00109D)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FC), RUNE_C(0x001248)},
+ {RUNE_C(0x00124A), RUNE_C(0x00124D)},
+ {RUNE_C(0x001250), RUNE_C(0x001256)},
+ {RUNE_C(0x001258), RUNE_C(0x001258)},
+ {RUNE_C(0x00125A), RUNE_C(0x00125D)},
+ {RUNE_C(0x001260), RUNE_C(0x001288)},
+ {RUNE_C(0x00128A), RUNE_C(0x00128D)},
+ {RUNE_C(0x001290), RUNE_C(0x0012B0)},
+ {RUNE_C(0x0012B2), RUNE_C(0x0012B5)},
+ {RUNE_C(0x0012B8), RUNE_C(0x0012BE)},
+ {RUNE_C(0x0012C0), RUNE_C(0x0012C0)},
+ {RUNE_C(0x0012C2), RUNE_C(0x0012C5)},
+ {RUNE_C(0x0012C8), RUNE_C(0x0012D6)},
+ {RUNE_C(0x0012D8), RUNE_C(0x001310)},
+ {RUNE_C(0x001312), RUNE_C(0x001315)},
+ {RUNE_C(0x001318), RUNE_C(0x00135A)},
+ {RUNE_C(0x00135D), RUNE_C(0x00135F)},
+ {RUNE_C(0x001369), RUNE_C(0x001371)},
+ {RUNE_C(0x001380), RUNE_C(0x00138F)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001401), RUNE_C(0x00166C)},
+ {RUNE_C(0x00166F), RUNE_C(0x00167F)},
+ {RUNE_C(0x001681), RUNE_C(0x00169A)},
+ {RUNE_C(0x0016A0), RUNE_C(0x0016EA)},
+ {RUNE_C(0x0016EE), RUNE_C(0x0016F8)},
+ {RUNE_C(0x001700), RUNE_C(0x001715)},
+ {RUNE_C(0x00171F), RUNE_C(0x001734)},
+ {RUNE_C(0x001740), RUNE_C(0x001753)},
+ {RUNE_C(0x001760), RUNE_C(0x00176C)},
+ {RUNE_C(0x00176E), RUNE_C(0x001770)},
+ {RUNE_C(0x001772), RUNE_C(0x001773)},
+ {RUNE_C(0x001780), RUNE_C(0x0017D3)},
+ {RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
+ {RUNE_C(0x0017DC), RUNE_C(0x0017DD)},
+ {RUNE_C(0x0017E0), RUNE_C(0x0017E9)},
+ {RUNE_C(0x00180B), RUNE_C(0x00180D)},
+ {RUNE_C(0x00180F), RUNE_C(0x001819)},
+ {RUNE_C(0x001820), RUNE_C(0x001878)},
+ {RUNE_C(0x001880), RUNE_C(0x0018AA)},
+ {RUNE_C(0x0018B0), RUNE_C(0x0018F5)},
+ {RUNE_C(0x001900), RUNE_C(0x00191E)},
+ {RUNE_C(0x001920), RUNE_C(0x00192B)},
+ {RUNE_C(0x001930), RUNE_C(0x00193B)},
+ {RUNE_C(0x001946), RUNE_C(0x00196D)},
+ {RUNE_C(0x001970), RUNE_C(0x001974)},
+ {RUNE_C(0x001980), RUNE_C(0x0019AB)},
+ {RUNE_C(0x0019B0), RUNE_C(0x0019C9)},
+ {RUNE_C(0x0019D0), RUNE_C(0x0019DA)},
+ {RUNE_C(0x001A00), RUNE_C(0x001A1B)},
+ {RUNE_C(0x001A20), RUNE_C(0x001A5E)},
+ {RUNE_C(0x001A60), RUNE_C(0x001A7C)},
+ {RUNE_C(0x001A7F), RUNE_C(0x001A89)},
+ {RUNE_C(0x001A90), RUNE_C(0x001A99)},
+ {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
+ {RUNE_C(0x001AB0), RUNE_C(0x001ABD)},
+ {RUNE_C(0x001ABF), RUNE_C(0x001ACE)},
+ {RUNE_C(0x001B00), RUNE_C(0x001B4C)},
+ {RUNE_C(0x001B50), RUNE_C(0x001B59)},
+ {RUNE_C(0x001B6B), RUNE_C(0x001B73)},
+ {RUNE_C(0x001B80), RUNE_C(0x001BF3)},
+ {RUNE_C(0x001C00), RUNE_C(0x001C37)},
+ {RUNE_C(0x001C40), RUNE_C(0x001C49)},
+ {RUNE_C(0x001C4D), RUNE_C(0x001C7D)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001CD0), RUNE_C(0x001CD2)},
+ {RUNE_C(0x001CD4), RUNE_C(0x001CFA)},
+ {RUNE_C(0x001D00), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFC)},
+ {RUNE_C(0x00200C), RUNE_C(0x00200D)},
+ {RUNE_C(0x00203F), RUNE_C(0x002040)},
+ {RUNE_C(0x002054), RUNE_C(0x002054)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x0020D0), RUNE_C(0x0020DC)},
+ {RUNE_C(0x0020E1), RUNE_C(0x0020E1)},
+ {RUNE_C(0x0020E5), RUNE_C(0x0020F0)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210A), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002118), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x002139)},
+ {RUNE_C(0x00213C), RUNE_C(0x00213F)},
+ {RUNE_C(0x002145), RUNE_C(0x002149)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002160), RUNE_C(0x002188)},
+ {RUNE_C(0x002C00), RUNE_C(0x002CE4)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x002D30), RUNE_C(0x002D67)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
+ {RUNE_C(0x002D7F), RUNE_C(0x002D96)},
+ {RUNE_C(0x002DA0), RUNE_C(0x002DA6)},
+ {RUNE_C(0x002DA8), RUNE_C(0x002DAE)},
+ {RUNE_C(0x002DB0), RUNE_C(0x002DB6)},
+ {RUNE_C(0x002DB8), RUNE_C(0x002DBE)},
+ {RUNE_C(0x002DC0), RUNE_C(0x002DC6)},
+ {RUNE_C(0x002DC8), RUNE_C(0x002DCE)},
+ {RUNE_C(0x002DD0), RUNE_C(0x002DD6)},
+ {RUNE_C(0x002DD8), RUNE_C(0x002DDE)},
+ {RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
+ {RUNE_C(0x003005), RUNE_C(0x003007)},
+ {RUNE_C(0x003021), RUNE_C(0x00302F)},
+ {RUNE_C(0x003031), RUNE_C(0x003035)},
+ {RUNE_C(0x003038), RUNE_C(0x00303C)},
+ {RUNE_C(0x003041), RUNE_C(0x003096)},
+ {RUNE_C(0x003099), RUNE_C(0x00309F)},
+ {RUNE_C(0x0030A1), RUNE_C(0x0030FF)},
+ {RUNE_C(0x003105), RUNE_C(0x00312F)},
+ {RUNE_C(0x003131), RUNE_C(0x00318E)},
+ {RUNE_C(0x0031A0), RUNE_C(0x0031BF)},
+ {RUNE_C(0x0031F0), RUNE_C(0x0031FF)},
+ {RUNE_C(0x003400), RUNE_C(0x004DBF)},
+ {RUNE_C(0x004E00), RUNE_C(0x00A48C)},
+ {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)},
+ {RUNE_C(0x00A500), RUNE_C(0x00A60C)},
+ {RUNE_C(0x00A610), RUNE_C(0x00A62B)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66F)},
+ {RUNE_C(0x00A674), RUNE_C(0x00A67D)},
+ {RUNE_C(0x00A67F), RUNE_C(0x00A6F1)},
+ {RUNE_C(0x00A717), RUNE_C(0x00A71F)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A788)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A827)},
+ {RUNE_C(0x00A82C), RUNE_C(0x00A82C)},
+ {RUNE_C(0x00A840), RUNE_C(0x00A873)},
+ {RUNE_C(0x00A880), RUNE_C(0x00A8C5)},
+ {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9)},
+ {RUNE_C(0x00A8E0), RUNE_C(0x00A8F7)},
+ {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)},
+ {RUNE_C(0x00A8FD), RUNE_C(0x00A92D)},
+ {RUNE_C(0x00A930), RUNE_C(0x00A953)},
+ {RUNE_C(0x00A960), RUNE_C(0x00A97C)},
+ {RUNE_C(0x00A980), RUNE_C(0x00A9C0)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)},
+ {RUNE_C(0x00A9E0), RUNE_C(0x00A9FE)},
+ {RUNE_C(0x00AA00), RUNE_C(0x00AA36)},
+ {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)},
+ {RUNE_C(0x00AA50), RUNE_C(0x00AA59)},
+ {RUNE_C(0x00AA60), RUNE_C(0x00AA76)},
+ {RUNE_C(0x00AA7A), RUNE_C(0x00AAC2)},
+ {RUNE_C(0x00AADB), RUNE_C(0x00AADD)},
+ {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)},
+ {RUNE_C(0x00AAF2), RUNE_C(0x00AAF6)},
+ {RUNE_C(0x00AB01), RUNE_C(0x00AB06)},
+ {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)},
+ {RUNE_C(0x00AB11), RUNE_C(0x00AB16)},
+ {RUNE_C(0x00AB20), RUNE_C(0x00AB26)},
+ {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)},
+ {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)},
+ {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)},
+ {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)},
+ {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)},
+ {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)},
+ {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)},
+ {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)},
+ {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)},
+ {RUNE_C(0x00FB40), RUNE_C(0x00FB41)},
+ {RUNE_C(0x00FB43), RUNE_C(0x00FB44)},
+ {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)},
+ {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)},
+ {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)},
+ {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)},
+ {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)},
+ {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
+ {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
+ {RUNE_C(0x00FE33), RUNE_C(0x00FE34)},
+ {RUNE_C(0x00FE4D), RUNE_C(0x00FE4F)},
+ {RUNE_C(0x00FE70), RUNE_C(0x00FE74)},
+ {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)},
+ {RUNE_C(0x00FF10), RUNE_C(0x00FF19)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x00FF65), RUNE_C(0x00FFBE)},
+ {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)},
+ {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)},
+ {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)},
+ {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)},
+ {RUNE_C(0x010000), RUNE_C(0x01000B)},
+ {RUNE_C(0x01000D), RUNE_C(0x010026)},
+ {RUNE_C(0x010028), RUNE_C(0x01003A)},
+ {RUNE_C(0x01003C), RUNE_C(0x01003D)},
+ {RUNE_C(0x01003F), RUNE_C(0x01004D)},
+ {RUNE_C(0x010050), RUNE_C(0x01005D)},
+ {RUNE_C(0x010080), RUNE_C(0x0100FA)},
+ {RUNE_C(0x010140), RUNE_C(0x010174)},
+ {RUNE_C(0x0101FD), RUNE_C(0x0101FD)},
+ {RUNE_C(0x010280), RUNE_C(0x01029C)},
+ {RUNE_C(0x0102A0), RUNE_C(0x0102D0)},
+ {RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
+ {RUNE_C(0x010300), RUNE_C(0x01031F)},
+ {RUNE_C(0x01032D), RUNE_C(0x01034A)},
+ {RUNE_C(0x010350), RUNE_C(0x01037A)},
+ {RUNE_C(0x010380), RUNE_C(0x01039D)},
+ {RUNE_C(0x0103A0), RUNE_C(0x0103C3)},
+ {RUNE_C(0x0103C8), RUNE_C(0x0103CF)},
+ {RUNE_C(0x0103D1), RUNE_C(0x0103D5)},
+ {RUNE_C(0x010400), RUNE_C(0x01049D)},
+ {RUNE_C(0x0104A0), RUNE_C(0x0104A9)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010500), RUNE_C(0x010527)},
+ {RUNE_C(0x010530), RUNE_C(0x010563)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010600), RUNE_C(0x010736)},
+ {RUNE_C(0x010740), RUNE_C(0x010755)},
+ {RUNE_C(0x010760), RUNE_C(0x010767)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010800), RUNE_C(0x010805)},
+ {RUNE_C(0x010808), RUNE_C(0x010808)},
+ {RUNE_C(0x01080A), RUNE_C(0x010835)},
+ {RUNE_C(0x010837), RUNE_C(0x010838)},
+ {RUNE_C(0x01083C), RUNE_C(0x01083C)},
+ {RUNE_C(0x01083F), RUNE_C(0x010855)},
+ {RUNE_C(0x010860), RUNE_C(0x010876)},
+ {RUNE_C(0x010880), RUNE_C(0x01089E)},
+ {RUNE_C(0x0108E0), RUNE_C(0x0108F2)},
+ {RUNE_C(0x0108F4), RUNE_C(0x0108F5)},
+ {RUNE_C(0x010900), RUNE_C(0x010915)},
+ {RUNE_C(0x010920), RUNE_C(0x010939)},
+ {RUNE_C(0x010980), RUNE_C(0x0109B7)},
+ {RUNE_C(0x0109BE), RUNE_C(0x0109BF)},
+ {RUNE_C(0x010A00), RUNE_C(0x010A03)},
+ {RUNE_C(0x010A05), RUNE_C(0x010A06)},
+ {RUNE_C(0x010A0C), RUNE_C(0x010A13)},
+ {RUNE_C(0x010A15), RUNE_C(0x010A17)},
+ {RUNE_C(0x010A19), RUNE_C(0x010A35)},
+ {RUNE_C(0x010A38), RUNE_C(0x010A3A)},
+ {RUNE_C(0x010A3F), RUNE_C(0x010A3F)},
+ {RUNE_C(0x010A60), RUNE_C(0x010A7C)},
+ {RUNE_C(0x010A80), RUNE_C(0x010A9C)},
+ {RUNE_C(0x010AC0), RUNE_C(0x010AC7)},
+ {RUNE_C(0x010AC9), RUNE_C(0x010AE6)},
+ {RUNE_C(0x010B00), RUNE_C(0x010B35)},
+ {RUNE_C(0x010B40), RUNE_C(0x010B55)},
+ {RUNE_C(0x010B60), RUNE_C(0x010B72)},
+ {RUNE_C(0x010B80), RUNE_C(0x010B91)},
+ {RUNE_C(0x010C00), RUNE_C(0x010C48)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x010D00), RUNE_C(0x010D27)},
+ {RUNE_C(0x010D30), RUNE_C(0x010D39)},
+ {RUNE_C(0x010E80), RUNE_C(0x010EA9)},
+ {RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
+ {RUNE_C(0x010EB0), RUNE_C(0x010EB1)},
+ {RUNE_C(0x010EFD), RUNE_C(0x010F1C)},
+ {RUNE_C(0x010F27), RUNE_C(0x010F27)},
+ {RUNE_C(0x010F30), RUNE_C(0x010F50)},
+ {RUNE_C(0x010F70), RUNE_C(0x010F85)},
+ {RUNE_C(0x010FB0), RUNE_C(0x010FC4)},
+ {RUNE_C(0x010FE0), RUNE_C(0x010FF6)},
+ {RUNE_C(0x011000), RUNE_C(0x011046)},
+ {RUNE_C(0x011066), RUNE_C(0x011075)},
+ {RUNE_C(0x01107F), RUNE_C(0x0110BA)},
+ {RUNE_C(0x0110C2), RUNE_C(0x0110C2)},
+ {RUNE_C(0x0110D0), RUNE_C(0x0110E8)},
+ {RUNE_C(0x0110F0), RUNE_C(0x0110F9)},
+ {RUNE_C(0x011100), RUNE_C(0x011134)},
+ {RUNE_C(0x011136), RUNE_C(0x01113F)},
+ {RUNE_C(0x011144), RUNE_C(0x011147)},
+ {RUNE_C(0x011150), RUNE_C(0x011173)},
+ {RUNE_C(0x011176), RUNE_C(0x011176)},
+ {RUNE_C(0x011180), RUNE_C(0x0111C4)},
+ {RUNE_C(0x0111C9), RUNE_C(0x0111CC)},
+ {RUNE_C(0x0111CE), RUNE_C(0x0111DA)},
+ {RUNE_C(0x0111DC), RUNE_C(0x0111DC)},
+ {RUNE_C(0x011200), RUNE_C(0x011211)},
+ {RUNE_C(0x011213), RUNE_C(0x011237)},
+ {RUNE_C(0x01123E), RUNE_C(0x011241)},
+ {RUNE_C(0x011280), RUNE_C(0x011286)},
+ {RUNE_C(0x011288), RUNE_C(0x011288)},
+ {RUNE_C(0x01128A), RUNE_C(0x01128D)},
+ {RUNE_C(0x01128F), RUNE_C(0x01129D)},
+ {RUNE_C(0x01129F), RUNE_C(0x0112A8)},
+ {RUNE_C(0x0112B0), RUNE_C(0x0112EA)},
+ {RUNE_C(0x0112F0), RUNE_C(0x0112F9)},
+ {RUNE_C(0x011300), RUNE_C(0x011303)},
+ {RUNE_C(0x011305), RUNE_C(0x01130C)},
+ {RUNE_C(0x01130F), RUNE_C(0x011310)},
+ {RUNE_C(0x011313), RUNE_C(0x011328)},
+ {RUNE_C(0x01132A), RUNE_C(0x011330)},
+ {RUNE_C(0x011332), RUNE_C(0x011333)},
+ {RUNE_C(0x011335), RUNE_C(0x011339)},
+ {RUNE_C(0x01133B), RUNE_C(0x011344)},
+ {RUNE_C(0x011347), RUNE_C(0x011348)},
+ {RUNE_C(0x01134B), RUNE_C(0x01134D)},
+ {RUNE_C(0x011350), RUNE_C(0x011350)},
+ {RUNE_C(0x011357), RUNE_C(0x011357)},
+ {RUNE_C(0x01135D), RUNE_C(0x011363)},
+ {RUNE_C(0x011366), RUNE_C(0x01136C)},
+ {RUNE_C(0x011370), RUNE_C(0x011374)},
+ {RUNE_C(0x011400), RUNE_C(0x01144A)},
+ {RUNE_C(0x011450), RUNE_C(0x011459)},
+ {RUNE_C(0x01145E), RUNE_C(0x011461)},
+ {RUNE_C(0x011480), RUNE_C(0x0114C5)},
+ {RUNE_C(0x0114C7), RUNE_C(0x0114C7)},
+ {RUNE_C(0x0114D0), RUNE_C(0x0114D9)},
+ {RUNE_C(0x011580), RUNE_C(0x0115B5)},
+ {RUNE_C(0x0115B8), RUNE_C(0x0115C0)},
+ {RUNE_C(0x0115D8), RUNE_C(0x0115DD)},
+ {RUNE_C(0x011600), RUNE_C(0x011640)},
+ {RUNE_C(0x011644), RUNE_C(0x011644)},
+ {RUNE_C(0x011650), RUNE_C(0x011659)},
+ {RUNE_C(0x011680), RUNE_C(0x0116B8)},
+ {RUNE_C(0x0116C0), RUNE_C(0x0116C9)},
+ {RUNE_C(0x011700), RUNE_C(0x01171A)},
+ {RUNE_C(0x01171D), RUNE_C(0x01172B)},
+ {RUNE_C(0x011730), RUNE_C(0x011739)},
+ {RUNE_C(0x011740), RUNE_C(0x011746)},
+ {RUNE_C(0x011800), RUNE_C(0x01183A)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118E9)},
+ {RUNE_C(0x0118FF), RUNE_C(0x011906)},
+ {RUNE_C(0x011909), RUNE_C(0x011909)},
+ {RUNE_C(0x01190C), RUNE_C(0x011913)},
+ {RUNE_C(0x011915), RUNE_C(0x011916)},
+ {RUNE_C(0x011918), RUNE_C(0x011935)},
+ {RUNE_C(0x011937), RUNE_C(0x011938)},
+ {RUNE_C(0x01193B), RUNE_C(0x011943)},
+ {RUNE_C(0x011950), RUNE_C(0x011959)},
+ {RUNE_C(0x0119A0), RUNE_C(0x0119A7)},
+ {RUNE_C(0x0119AA), RUNE_C(0x0119D7)},
+ {RUNE_C(0x0119DA), RUNE_C(0x0119E1)},
+ {RUNE_C(0x0119E3), RUNE_C(0x0119E4)},
+ {RUNE_C(0x011A00), RUNE_C(0x011A3E)},
+ {RUNE_C(0x011A47), RUNE_C(0x011A47)},
+ {RUNE_C(0x011A50), RUNE_C(0x011A99)},
+ {RUNE_C(0x011A9D), RUNE_C(0x011A9D)},
+ {RUNE_C(0x011AB0), RUNE_C(0x011AF8)},
+ {RUNE_C(0x011C00), RUNE_C(0x011C08)},
+ {RUNE_C(0x011C0A), RUNE_C(0x011C36)},
+ {RUNE_C(0x011C38), RUNE_C(0x011C40)},
+ {RUNE_C(0x011C50), RUNE_C(0x011C59)},
+ {RUNE_C(0x011C72), RUNE_C(0x011C8F)},
+ {RUNE_C(0x011C92), RUNE_C(0x011CA7)},
+ {RUNE_C(0x011CA9), RUNE_C(0x011CB6)},
+ {RUNE_C(0x011D00), RUNE_C(0x011D06)},
+ {RUNE_C(0x011D08), RUNE_C(0x011D09)},
+ {RUNE_C(0x011D0B), RUNE_C(0x011D36)},
+ {RUNE_C(0x011D3A), RUNE_C(0x011D3A)},
+ {RUNE_C(0x011D3C), RUNE_C(0x011D3D)},
+ {RUNE_C(0x011D3F), RUNE_C(0x011D47)},
+ {RUNE_C(0x011D50), RUNE_C(0x011D59)},
+ {RUNE_C(0x011D60), RUNE_C(0x011D65)},
+ {RUNE_C(0x011D67), RUNE_C(0x011D68)},
+ {RUNE_C(0x011D6A), RUNE_C(0x011D8E)},
+ {RUNE_C(0x011D90), RUNE_C(0x011D91)},
+ {RUNE_C(0x011D93), RUNE_C(0x011D98)},
+ {RUNE_C(0x011DA0), RUNE_C(0x011DA9)},
+ {RUNE_C(0x011EE0), RUNE_C(0x011EF6)},
+ {RUNE_C(0x011F00), RUNE_C(0x011F10)},
+ {RUNE_C(0x011F12), RUNE_C(0x011F3A)},
+ {RUNE_C(0x011F3E), RUNE_C(0x011F42)},
+ {RUNE_C(0x011F50), RUNE_C(0x011F59)},
+ {RUNE_C(0x011FB0), RUNE_C(0x011FB0)},
+ {RUNE_C(0x012000), RUNE_C(0x012399)},
+ {RUNE_C(0x012400), RUNE_C(0x01246E)},
+ {RUNE_C(0x012480), RUNE_C(0x012543)},
+ {RUNE_C(0x012F90), RUNE_C(0x012FF0)},
+ {RUNE_C(0x013000), RUNE_C(0x01342F)},
+ {RUNE_C(0x013440), RUNE_C(0x013455)},
+ {RUNE_C(0x014400), RUNE_C(0x014646)},
+ {RUNE_C(0x016800), RUNE_C(0x016A38)},
+ {RUNE_C(0x016A40), RUNE_C(0x016A5E)},
+ {RUNE_C(0x016A60), RUNE_C(0x016A69)},
+ {RUNE_C(0x016A70), RUNE_C(0x016ABE)},
+ {RUNE_C(0x016AC0), RUNE_C(0x016AC9)},
+ {RUNE_C(0x016AD0), RUNE_C(0x016AED)},
+ {RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
+ {RUNE_C(0x016B00), RUNE_C(0x016B36)},
+ {RUNE_C(0x016B40), RUNE_C(0x016B43)},
+ {RUNE_C(0x016B50), RUNE_C(0x016B59)},
+ {RUNE_C(0x016B63), RUNE_C(0x016B77)},
+ {RUNE_C(0x016B7D), RUNE_C(0x016B8F)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E7F)},
+ {RUNE_C(0x016F00), RUNE_C(0x016F4A)},
+ {RUNE_C(0x016F4F), RUNE_C(0x016F87)},
+ {RUNE_C(0x016F8F), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
+ {RUNE_C(0x016FE3), RUNE_C(0x016FE4)},
+ {RUNE_C(0x016FF0), RUNE_C(0x016FF1)},
+ {RUNE_C(0x017000), RUNE_C(0x0187F7)},
+ {RUNE_C(0x018800), RUNE_C(0x018CD5)},
+ {RUNE_C(0x018D00), RUNE_C(0x018D08)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01B000), RUNE_C(0x01B122)},
+ {RUNE_C(0x01B132), RUNE_C(0x01B132)},
+ {RUNE_C(0x01B150), RUNE_C(0x01B152)},
+ {RUNE_C(0x01B155), RUNE_C(0x01B155)},
+ {RUNE_C(0x01B164), RUNE_C(0x01B167)},
+ {RUNE_C(0x01B170), RUNE_C(0x01B2FB)},
+ {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)},
+ {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)},
+ {RUNE_C(0x01BC80), RUNE_C(0x01BC88)},
+ {RUNE_C(0x01BC90), RUNE_C(0x01BC99)},
+ {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)},
+ {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)},
+ {RUNE_C(0x01CF30), RUNE_C(0x01CF46)},
+ {RUNE_C(0x01D165), RUNE_C(0x01D169)},
+ {RUNE_C(0x01D16D), RUNE_C(0x01D172)},
+ {RUNE_C(0x01D17B), RUNE_C(0x01D182)},
+ {RUNE_C(0x01D185), RUNE_C(0x01D18B)},
+ {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
+ {RUNE_C(0x01D242), RUNE_C(0x01D244)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)},
+ {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)},
+ {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)},
+ {RUNE_C(0x01D6FC), RUNE_C(0x01D714)},
+ {RUNE_C(0x01D716), RUNE_C(0x01D734)},
+ {RUNE_C(0x01D736), RUNE_C(0x01D74E)},
+ {RUNE_C(0x01D750), RUNE_C(0x01D76E)},
+ {RUNE_C(0x01D770), RUNE_C(0x01D788)},
+ {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)},
+ {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)},
+ {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)},
+ {RUNE_C(0x01DA00), RUNE_C(0x01DA36)},
+ {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)},
+ {RUNE_C(0x01DA75), RUNE_C(0x01DA75)},
+ {RUNE_C(0x01DA84), RUNE_C(0x01DA84)},
+ {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)},
+ {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E000), RUNE_C(0x01E006)},
+ {RUNE_C(0x01E008), RUNE_C(0x01E018)},
+ {RUNE_C(0x01E01B), RUNE_C(0x01E021)},
+ {RUNE_C(0x01E023), RUNE_C(0x01E024)},
+ {RUNE_C(0x01E026), RUNE_C(0x01E02A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
+ {RUNE_C(0x01E100), RUNE_C(0x01E12C)},
+ {RUNE_C(0x01E130), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E140), RUNE_C(0x01E149)},
+ {RUNE_C(0x01E14E), RUNE_C(0x01E14E)},
+ {RUNE_C(0x01E290), RUNE_C(0x01E2AE)},
+ {RUNE_C(0x01E2C0), RUNE_C(0x01E2F9)},
+ {RUNE_C(0x01E4D0), RUNE_C(0x01E4F9)},
+ {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)},
+ {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)},
+ {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)},
+ {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)},
+ {RUNE_C(0x01E800), RUNE_C(0x01E8C4)},
+ {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E94B)},
+ {RUNE_C(0x01E950), RUNE_C(0x01E959)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+ {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_idc(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_ideo.c b/lib/unicode/prop/uprop_is_ideo.c
new file mode 100644
index 0000000..54b535c
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_ideo.c
@@ -0,0 +1,42 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x003006), RUNE_C(0x003007)},
+ {RUNE_C(0x003021), RUNE_C(0x003029)},
+ {RUNE_C(0x003038), RUNE_C(0x00303A)},
+ {RUNE_C(0x003400), RUNE_C(0x004DBF)},
+ {RUNE_C(0x004E00), RUNE_C(0x009FFF)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x016FE4), RUNE_C(0x016FE4)},
+ {RUNE_C(0x017000), RUNE_C(0x0187F7)},
+ {RUNE_C(0x018800), RUNE_C(0x018CD5)},
+ {RUNE_C(0x018D00), RUNE_C(0x018D08)},
+ {RUNE_C(0x01B170), RUNE_C(0x01B2FB)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_ideo(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_ids.c b/lib/unicode/prop/uprop_is_ids.c
new file mode 100644
index 0000000..0730213
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_ids.c
@@ -0,0 +1,681 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x0002C1)},
+ {RUNE_C(0x0002C6), RUNE_C(0x0002D1)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x0002EC), RUNE_C(0x0002EC)},
+ {RUNE_C(0x0002EE), RUNE_C(0x0002EE)},
+ {RUNE_C(0x000370), RUNE_C(0x000374)},
+ {RUNE_C(0x000376), RUNE_C(0x000377)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037D)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x000481)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000559), RUNE_C(0x000559)},
+ {RUNE_C(0x000560), RUNE_C(0x000588)},
+ {RUNE_C(0x0005D0), RUNE_C(0x0005EA)},
+ {RUNE_C(0x0005EF), RUNE_C(0x0005F2)},
+ {RUNE_C(0x000620), RUNE_C(0x00064A)},
+ {RUNE_C(0x00066E), RUNE_C(0x00066F)},
+ {RUNE_C(0x000671), RUNE_C(0x0006D3)},
+ {RUNE_C(0x0006D5), RUNE_C(0x0006D5)},
+ {RUNE_C(0x0006E5), RUNE_C(0x0006E6)},
+ {RUNE_C(0x0006EE), RUNE_C(0x0006EF)},
+ {RUNE_C(0x0006FA), RUNE_C(0x0006FC)},
+ {RUNE_C(0x0006FF), RUNE_C(0x0006FF)},
+ {RUNE_C(0x000710), RUNE_C(0x000710)},
+ {RUNE_C(0x000712), RUNE_C(0x00072F)},
+ {RUNE_C(0x00074D), RUNE_C(0x0007A5)},
+ {RUNE_C(0x0007B1), RUNE_C(0x0007B1)},
+ {RUNE_C(0x0007CA), RUNE_C(0x0007EA)},
+ {RUNE_C(0x0007F4), RUNE_C(0x0007F5)},
+ {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
+ {RUNE_C(0x000800), RUNE_C(0x000815)},
+ {RUNE_C(0x00081A), RUNE_C(0x00081A)},
+ {RUNE_C(0x000824), RUNE_C(0x000824)},
+ {RUNE_C(0x000828), RUNE_C(0x000828)},
+ {RUNE_C(0x000840), RUNE_C(0x000858)},
+ {RUNE_C(0x000860), RUNE_C(0x00086A)},
+ {RUNE_C(0x000870), RUNE_C(0x000887)},
+ {RUNE_C(0x000889), RUNE_C(0x00088E)},
+ {RUNE_C(0x0008A0), RUNE_C(0x0008C9)},
+ {RUNE_C(0x000904), RUNE_C(0x000939)},
+ {RUNE_C(0x00093D), RUNE_C(0x00093D)},
+ {RUNE_C(0x000950), RUNE_C(0x000950)},
+ {RUNE_C(0x000958), RUNE_C(0x000961)},
+ {RUNE_C(0x000971), RUNE_C(0x000980)},
+ {RUNE_C(0x000985), RUNE_C(0x00098C)},
+ {RUNE_C(0x00098F), RUNE_C(0x000990)},
+ {RUNE_C(0x000993), RUNE_C(0x0009A8)},
+ {RUNE_C(0x0009AA), RUNE_C(0x0009B0)},
+ {RUNE_C(0x0009B2), RUNE_C(0x0009B2)},
+ {RUNE_C(0x0009B6), RUNE_C(0x0009B9)},
+ {RUNE_C(0x0009BD), RUNE_C(0x0009BD)},
+ {RUNE_C(0x0009CE), RUNE_C(0x0009CE)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009E1)},
+ {RUNE_C(0x0009F0), RUNE_C(0x0009F1)},
+ {RUNE_C(0x0009FC), RUNE_C(0x0009FC)},
+ {RUNE_C(0x000A05), RUNE_C(0x000A0A)},
+ {RUNE_C(0x000A0F), RUNE_C(0x000A10)},
+ {RUNE_C(0x000A13), RUNE_C(0x000A28)},
+ {RUNE_C(0x000A2A), RUNE_C(0x000A30)},
+ {RUNE_C(0x000A32), RUNE_C(0x000A33)},
+ {RUNE_C(0x000A35), RUNE_C(0x000A36)},
+ {RUNE_C(0x000A38), RUNE_C(0x000A39)},
+ {RUNE_C(0x000A59), RUNE_C(0x000A5C)},
+ {RUNE_C(0x000A5E), RUNE_C(0x000A5E)},
+ {RUNE_C(0x000A72), RUNE_C(0x000A74)},
+ {RUNE_C(0x000A85), RUNE_C(0x000A8D)},
+ {RUNE_C(0x000A8F), RUNE_C(0x000A91)},
+ {RUNE_C(0x000A93), RUNE_C(0x000AA8)},
+ {RUNE_C(0x000AAA), RUNE_C(0x000AB0)},
+ {RUNE_C(0x000AB2), RUNE_C(0x000AB3)},
+ {RUNE_C(0x000AB5), RUNE_C(0x000AB9)},
+ {RUNE_C(0x000ABD), RUNE_C(0x000ABD)},
+ {RUNE_C(0x000AD0), RUNE_C(0x000AD0)},
+ {RUNE_C(0x000AE0), RUNE_C(0x000AE1)},
+ {RUNE_C(0x000AF9), RUNE_C(0x000AF9)},
+ {RUNE_C(0x000B05), RUNE_C(0x000B0C)},
+ {RUNE_C(0x000B0F), RUNE_C(0x000B10)},
+ {RUNE_C(0x000B13), RUNE_C(0x000B28)},
+ {RUNE_C(0x000B2A), RUNE_C(0x000B30)},
+ {RUNE_C(0x000B32), RUNE_C(0x000B33)},
+ {RUNE_C(0x000B35), RUNE_C(0x000B39)},
+ {RUNE_C(0x000B3D), RUNE_C(0x000B3D)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000B5F), RUNE_C(0x000B61)},
+ {RUNE_C(0x000B71), RUNE_C(0x000B71)},
+ {RUNE_C(0x000B83), RUNE_C(0x000B83)},
+ {RUNE_C(0x000B85), RUNE_C(0x000B8A)},
+ {RUNE_C(0x000B8E), RUNE_C(0x000B90)},
+ {RUNE_C(0x000B92), RUNE_C(0x000B95)},
+ {RUNE_C(0x000B99), RUNE_C(0x000B9A)},
+ {RUNE_C(0x000B9C), RUNE_C(0x000B9C)},
+ {RUNE_C(0x000B9E), RUNE_C(0x000B9F)},
+ {RUNE_C(0x000BA3), RUNE_C(0x000BA4)},
+ {RUNE_C(0x000BA8), RUNE_C(0x000BAA)},
+ {RUNE_C(0x000BAE), RUNE_C(0x000BB9)},
+ {RUNE_C(0x000BD0), RUNE_C(0x000BD0)},
+ {RUNE_C(0x000C05), RUNE_C(0x000C0C)},
+ {RUNE_C(0x000C0E), RUNE_C(0x000C10)},
+ {RUNE_C(0x000C12), RUNE_C(0x000C28)},
+ {RUNE_C(0x000C2A), RUNE_C(0x000C39)},
+ {RUNE_C(0x000C3D), RUNE_C(0x000C3D)},
+ {RUNE_C(0x000C58), RUNE_C(0x000C5A)},
+ {RUNE_C(0x000C5D), RUNE_C(0x000C5D)},
+ {RUNE_C(0x000C60), RUNE_C(0x000C61)},
+ {RUNE_C(0x000C80), RUNE_C(0x000C80)},
+ {RUNE_C(0x000C85), RUNE_C(0x000C8C)},
+ {RUNE_C(0x000C8E), RUNE_C(0x000C90)},
+ {RUNE_C(0x000C92), RUNE_C(0x000CA8)},
+ {RUNE_C(0x000CAA), RUNE_C(0x000CB3)},
+ {RUNE_C(0x000CB5), RUNE_C(0x000CB9)},
+ {RUNE_C(0x000CBD), RUNE_C(0x000CBD)},
+ {RUNE_C(0x000CDD), RUNE_C(0x000CDE)},
+ {RUNE_C(0x000CE0), RUNE_C(0x000CE1)},
+ {RUNE_C(0x000CF1), RUNE_C(0x000CF2)},
+ {RUNE_C(0x000D04), RUNE_C(0x000D0C)},
+ {RUNE_C(0x000D0E), RUNE_C(0x000D10)},
+ {RUNE_C(0x000D12), RUNE_C(0x000D3A)},
+ {RUNE_C(0x000D3D), RUNE_C(0x000D3D)},
+ {RUNE_C(0x000D4E), RUNE_C(0x000D4E)},
+ {RUNE_C(0x000D54), RUNE_C(0x000D56)},
+ {RUNE_C(0x000D5F), RUNE_C(0x000D61)},
+ {RUNE_C(0x000D7A), RUNE_C(0x000D7F)},
+ {RUNE_C(0x000D85), RUNE_C(0x000D96)},
+ {RUNE_C(0x000D9A), RUNE_C(0x000DB1)},
+ {RUNE_C(0x000DB3), RUNE_C(0x000DBB)},
+ {RUNE_C(0x000DBD), RUNE_C(0x000DBD)},
+ {RUNE_C(0x000DC0), RUNE_C(0x000DC6)},
+ {RUNE_C(0x000E01), RUNE_C(0x000E30)},
+ {RUNE_C(0x000E32), RUNE_C(0x000E33)},
+ {RUNE_C(0x000E40), RUNE_C(0x000E46)},
+ {RUNE_C(0x000E81), RUNE_C(0x000E82)},
+ {RUNE_C(0x000E84), RUNE_C(0x000E84)},
+ {RUNE_C(0x000E86), RUNE_C(0x000E8A)},
+ {RUNE_C(0x000E8C), RUNE_C(0x000EA3)},
+ {RUNE_C(0x000EA5), RUNE_C(0x000EA5)},
+ {RUNE_C(0x000EA7), RUNE_C(0x000EB0)},
+ {RUNE_C(0x000EB2), RUNE_C(0x000EB3)},
+ {RUNE_C(0x000EBD), RUNE_C(0x000EBD)},
+ {RUNE_C(0x000EC0), RUNE_C(0x000EC4)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x000EDC), RUNE_C(0x000EDF)},
+ {RUNE_C(0x000F00), RUNE_C(0x000F00)},
+ {RUNE_C(0x000F40), RUNE_C(0x000F47)},
+ {RUNE_C(0x000F49), RUNE_C(0x000F6C)},
+ {RUNE_C(0x000F88), RUNE_C(0x000F8C)},
+ {RUNE_C(0x001000), RUNE_C(0x00102A)},
+ {RUNE_C(0x00103F), RUNE_C(0x00103F)},
+ {RUNE_C(0x001050), RUNE_C(0x001055)},
+ {RUNE_C(0x00105A), RUNE_C(0x00105D)},
+ {RUNE_C(0x001061), RUNE_C(0x001061)},
+ {RUNE_C(0x001065), RUNE_C(0x001066)},
+ {RUNE_C(0x00106E), RUNE_C(0x001070)},
+ {RUNE_C(0x001075), RUNE_C(0x001081)},
+ {RUNE_C(0x00108E), RUNE_C(0x00108E)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FC), RUNE_C(0x001248)},
+ {RUNE_C(0x00124A), RUNE_C(0x00124D)},
+ {RUNE_C(0x001250), RUNE_C(0x001256)},
+ {RUNE_C(0x001258), RUNE_C(0x001258)},
+ {RUNE_C(0x00125A), RUNE_C(0x00125D)},
+ {RUNE_C(0x001260), RUNE_C(0x001288)},
+ {RUNE_C(0x00128A), RUNE_C(0x00128D)},
+ {RUNE_C(0x001290), RUNE_C(0x0012B0)},
+ {RUNE_C(0x0012B2), RUNE_C(0x0012B5)},
+ {RUNE_C(0x0012B8), RUNE_C(0x0012BE)},
+ {RUNE_C(0x0012C0), RUNE_C(0x0012C0)},
+ {RUNE_C(0x0012C2), RUNE_C(0x0012C5)},
+ {RUNE_C(0x0012C8), RUNE_C(0x0012D6)},
+ {RUNE_C(0x0012D8), RUNE_C(0x001310)},
+ {RUNE_C(0x001312), RUNE_C(0x001315)},
+ {RUNE_C(0x001318), RUNE_C(0x00135A)},
+ {RUNE_C(0x001380), RUNE_C(0x00138F)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001401), RUNE_C(0x00166C)},
+ {RUNE_C(0x00166F), RUNE_C(0x00167F)},
+ {RUNE_C(0x001681), RUNE_C(0x00169A)},
+ {RUNE_C(0x0016A0), RUNE_C(0x0016EA)},
+ {RUNE_C(0x0016EE), RUNE_C(0x0016F8)},
+ {RUNE_C(0x001700), RUNE_C(0x001711)},
+ {RUNE_C(0x00171F), RUNE_C(0x001731)},
+ {RUNE_C(0x001740), RUNE_C(0x001751)},
+ {RUNE_C(0x001760), RUNE_C(0x00176C)},
+ {RUNE_C(0x00176E), RUNE_C(0x001770)},
+ {RUNE_C(0x001780), RUNE_C(0x0017B3)},
+ {RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
+ {RUNE_C(0x0017DC), RUNE_C(0x0017DC)},
+ {RUNE_C(0x001820), RUNE_C(0x001878)},
+ {RUNE_C(0x001880), RUNE_C(0x0018A8)},
+ {RUNE_C(0x0018AA), RUNE_C(0x0018AA)},
+ {RUNE_C(0x0018B0), RUNE_C(0x0018F5)},
+ {RUNE_C(0x001900), RUNE_C(0x00191E)},
+ {RUNE_C(0x001950), RUNE_C(0x00196D)},
+ {RUNE_C(0x001970), RUNE_C(0x001974)},
+ {RUNE_C(0x001980), RUNE_C(0x0019AB)},
+ {RUNE_C(0x0019B0), RUNE_C(0x0019C9)},
+ {RUNE_C(0x001A00), RUNE_C(0x001A16)},
+ {RUNE_C(0x001A20), RUNE_C(0x001A54)},
+ {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
+ {RUNE_C(0x001B05), RUNE_C(0x001B33)},
+ {RUNE_C(0x001B45), RUNE_C(0x001B4C)},
+ {RUNE_C(0x001B83), RUNE_C(0x001BA0)},
+ {RUNE_C(0x001BAE), RUNE_C(0x001BAF)},
+ {RUNE_C(0x001BBA), RUNE_C(0x001BE5)},
+ {RUNE_C(0x001C00), RUNE_C(0x001C23)},
+ {RUNE_C(0x001C4D), RUNE_C(0x001C4F)},
+ {RUNE_C(0x001C5A), RUNE_C(0x001C7D)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001CE9), RUNE_C(0x001CEC)},
+ {RUNE_C(0x001CEE), RUNE_C(0x001CF3)},
+ {RUNE_C(0x001CF5), RUNE_C(0x001CF6)},
+ {RUNE_C(0x001CFA), RUNE_C(0x001CFA)},
+ {RUNE_C(0x001D00), RUNE_C(0x001DBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFC)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210A), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002118), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x002139)},
+ {RUNE_C(0x00213C), RUNE_C(0x00213F)},
+ {RUNE_C(0x002145), RUNE_C(0x002149)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002160), RUNE_C(0x002188)},
+ {RUNE_C(0x002C00), RUNE_C(0x002CE4)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x002D30), RUNE_C(0x002D67)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
+ {RUNE_C(0x002D80), RUNE_C(0x002D96)},
+ {RUNE_C(0x002DA0), RUNE_C(0x002DA6)},
+ {RUNE_C(0x002DA8), RUNE_C(0x002DAE)},
+ {RUNE_C(0x002DB0), RUNE_C(0x002DB6)},
+ {RUNE_C(0x002DB8), RUNE_C(0x002DBE)},
+ {RUNE_C(0x002DC0), RUNE_C(0x002DC6)},
+ {RUNE_C(0x002DC8), RUNE_C(0x002DCE)},
+ {RUNE_C(0x002DD0), RUNE_C(0x002DD6)},
+ {RUNE_C(0x002DD8), RUNE_C(0x002DDE)},
+ {RUNE_C(0x003005), RUNE_C(0x003007)},
+ {RUNE_C(0x003021), RUNE_C(0x003029)},
+ {RUNE_C(0x003031), RUNE_C(0x003035)},
+ {RUNE_C(0x003038), RUNE_C(0x00303C)},
+ {RUNE_C(0x003041), RUNE_C(0x003096)},
+ {RUNE_C(0x00309B), RUNE_C(0x00309F)},
+ {RUNE_C(0x0030A1), RUNE_C(0x0030FA)},
+ {RUNE_C(0x0030FC), RUNE_C(0x0030FF)},
+ {RUNE_C(0x003105), RUNE_C(0x00312F)},
+ {RUNE_C(0x003131), RUNE_C(0x00318E)},
+ {RUNE_C(0x0031A0), RUNE_C(0x0031BF)},
+ {RUNE_C(0x0031F0), RUNE_C(0x0031FF)},
+ {RUNE_C(0x003400), RUNE_C(0x004DBF)},
+ {RUNE_C(0x004E00), RUNE_C(0x00A48C)},
+ {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)},
+ {RUNE_C(0x00A500), RUNE_C(0x00A60C)},
+ {RUNE_C(0x00A610), RUNE_C(0x00A61F)},
+ {RUNE_C(0x00A62A), RUNE_C(0x00A62B)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66E)},
+ {RUNE_C(0x00A67F), RUNE_C(0x00A69D)},
+ {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)},
+ {RUNE_C(0x00A717), RUNE_C(0x00A71F)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A788)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A801)},
+ {RUNE_C(0x00A803), RUNE_C(0x00A805)},
+ {RUNE_C(0x00A807), RUNE_C(0x00A80A)},
+ {RUNE_C(0x00A80C), RUNE_C(0x00A822)},
+ {RUNE_C(0x00A840), RUNE_C(0x00A873)},
+ {RUNE_C(0x00A882), RUNE_C(0x00A8B3)},
+ {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)},
+ {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)},
+ {RUNE_C(0x00A8FD), RUNE_C(0x00A8FE)},
+ {RUNE_C(0x00A90A), RUNE_C(0x00A925)},
+ {RUNE_C(0x00A930), RUNE_C(0x00A946)},
+ {RUNE_C(0x00A960), RUNE_C(0x00A97C)},
+ {RUNE_C(0x00A984), RUNE_C(0x00A9B2)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)},
+ {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4)},
+ {RUNE_C(0x00A9E6), RUNE_C(0x00A9EF)},
+ {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)},
+ {RUNE_C(0x00AA00), RUNE_C(0x00AA28)},
+ {RUNE_C(0x00AA40), RUNE_C(0x00AA42)},
+ {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)},
+ {RUNE_C(0x00AA60), RUNE_C(0x00AA76)},
+ {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A)},
+ {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF)},
+ {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)},
+ {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)},
+ {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)},
+ {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)},
+ {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)},
+ {RUNE_C(0x00AADB), RUNE_C(0x00AADD)},
+ {RUNE_C(0x00AAE0), RUNE_C(0x00AAEA)},
+ {RUNE_C(0x00AAF2), RUNE_C(0x00AAF4)},
+ {RUNE_C(0x00AB01), RUNE_C(0x00AB06)},
+ {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)},
+ {RUNE_C(0x00AB11), RUNE_C(0x00AB16)},
+ {RUNE_C(0x00AB20), RUNE_C(0x00AB26)},
+ {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABE2)},
+ {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)},
+ {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)},
+ {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)},
+ {RUNE_C(0x00FB1F), RUNE_C(0x00FB28)},
+ {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)},
+ {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)},
+ {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)},
+ {RUNE_C(0x00FB40), RUNE_C(0x00FB41)},
+ {RUNE_C(0x00FB43), RUNE_C(0x00FB44)},
+ {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)},
+ {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)},
+ {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)},
+ {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)},
+ {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)},
+ {RUNE_C(0x00FE70), RUNE_C(0x00FE74)},
+ {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x00FF66), RUNE_C(0x00FFBE)},
+ {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)},
+ {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)},
+ {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)},
+ {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)},
+ {RUNE_C(0x010000), RUNE_C(0x01000B)},
+ {RUNE_C(0x01000D), RUNE_C(0x010026)},
+ {RUNE_C(0x010028), RUNE_C(0x01003A)},
+ {RUNE_C(0x01003C), RUNE_C(0x01003D)},
+ {RUNE_C(0x01003F), RUNE_C(0x01004D)},
+ {RUNE_C(0x010050), RUNE_C(0x01005D)},
+ {RUNE_C(0x010080), RUNE_C(0x0100FA)},
+ {RUNE_C(0x010140), RUNE_C(0x010174)},
+ {RUNE_C(0x010280), RUNE_C(0x01029C)},
+ {RUNE_C(0x0102A0), RUNE_C(0x0102D0)},
+ {RUNE_C(0x010300), RUNE_C(0x01031F)},
+ {RUNE_C(0x01032D), RUNE_C(0x01034A)},
+ {RUNE_C(0x010350), RUNE_C(0x010375)},
+ {RUNE_C(0x010380), RUNE_C(0x01039D)},
+ {RUNE_C(0x0103A0), RUNE_C(0x0103C3)},
+ {RUNE_C(0x0103C8), RUNE_C(0x0103CF)},
+ {RUNE_C(0x0103D1), RUNE_C(0x0103D5)},
+ {RUNE_C(0x010400), RUNE_C(0x01049D)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010500), RUNE_C(0x010527)},
+ {RUNE_C(0x010530), RUNE_C(0x010563)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010600), RUNE_C(0x010736)},
+ {RUNE_C(0x010740), RUNE_C(0x010755)},
+ {RUNE_C(0x010760), RUNE_C(0x010767)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010800), RUNE_C(0x010805)},
+ {RUNE_C(0x010808), RUNE_C(0x010808)},
+ {RUNE_C(0x01080A), RUNE_C(0x010835)},
+ {RUNE_C(0x010837), RUNE_C(0x010838)},
+ {RUNE_C(0x01083C), RUNE_C(0x01083C)},
+ {RUNE_C(0x01083F), RUNE_C(0x010855)},
+ {RUNE_C(0x010860), RUNE_C(0x010876)},
+ {RUNE_C(0x010880), RUNE_C(0x01089E)},
+ {RUNE_C(0x0108E0), RUNE_C(0x0108F2)},
+ {RUNE_C(0x0108F4), RUNE_C(0x0108F5)},
+ {RUNE_C(0x010900), RUNE_C(0x010915)},
+ {RUNE_C(0x010920), RUNE_C(0x010939)},
+ {RUNE_C(0x010980), RUNE_C(0x0109B7)},
+ {RUNE_C(0x0109BE), RUNE_C(0x0109BF)},
+ {RUNE_C(0x010A00), RUNE_C(0x010A00)},
+ {RUNE_C(0x010A10), RUNE_C(0x010A13)},
+ {RUNE_C(0x010A15), RUNE_C(0x010A17)},
+ {RUNE_C(0x010A19), RUNE_C(0x010A35)},
+ {RUNE_C(0x010A60), RUNE_C(0x010A7C)},
+ {RUNE_C(0x010A80), RUNE_C(0x010A9C)},
+ {RUNE_C(0x010AC0), RUNE_C(0x010AC7)},
+ {RUNE_C(0x010AC9), RUNE_C(0x010AE4)},
+ {RUNE_C(0x010B00), RUNE_C(0x010B35)},
+ {RUNE_C(0x010B40), RUNE_C(0x010B55)},
+ {RUNE_C(0x010B60), RUNE_C(0x010B72)},
+ {RUNE_C(0x010B80), RUNE_C(0x010B91)},
+ {RUNE_C(0x010C00), RUNE_C(0x010C48)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x010D00), RUNE_C(0x010D23)},
+ {RUNE_C(0x010E80), RUNE_C(0x010EA9)},
+ {RUNE_C(0x010EB0), RUNE_C(0x010EB1)},
+ {RUNE_C(0x010F00), RUNE_C(0x010F1C)},
+ {RUNE_C(0x010F27), RUNE_C(0x010F27)},
+ {RUNE_C(0x010F30), RUNE_C(0x010F45)},
+ {RUNE_C(0x010F70), RUNE_C(0x010F81)},
+ {RUNE_C(0x010FB0), RUNE_C(0x010FC4)},
+ {RUNE_C(0x010FE0), RUNE_C(0x010FF6)},
+ {RUNE_C(0x011003), RUNE_C(0x011037)},
+ {RUNE_C(0x011071), RUNE_C(0x011072)},
+ {RUNE_C(0x011075), RUNE_C(0x011075)},
+ {RUNE_C(0x011083), RUNE_C(0x0110AF)},
+ {RUNE_C(0x0110D0), RUNE_C(0x0110E8)},
+ {RUNE_C(0x011103), RUNE_C(0x011126)},
+ {RUNE_C(0x011144), RUNE_C(0x011144)},
+ {RUNE_C(0x011147), RUNE_C(0x011147)},
+ {RUNE_C(0x011150), RUNE_C(0x011172)},
+ {RUNE_C(0x011176), RUNE_C(0x011176)},
+ {RUNE_C(0x011183), RUNE_C(0x0111B2)},
+ {RUNE_C(0x0111C1), RUNE_C(0x0111C4)},
+ {RUNE_C(0x0111DA), RUNE_C(0x0111DA)},
+ {RUNE_C(0x0111DC), RUNE_C(0x0111DC)},
+ {RUNE_C(0x011200), RUNE_C(0x011211)},
+ {RUNE_C(0x011213), RUNE_C(0x01122B)},
+ {RUNE_C(0x01123F), RUNE_C(0x011240)},
+ {RUNE_C(0x011280), RUNE_C(0x011286)},
+ {RUNE_C(0x011288), RUNE_C(0x011288)},
+ {RUNE_C(0x01128A), RUNE_C(0x01128D)},
+ {RUNE_C(0x01128F), RUNE_C(0x01129D)},
+ {RUNE_C(0x01129F), RUNE_C(0x0112A8)},
+ {RUNE_C(0x0112B0), RUNE_C(0x0112DE)},
+ {RUNE_C(0x011305), RUNE_C(0x01130C)},
+ {RUNE_C(0x01130F), RUNE_C(0x011310)},
+ {RUNE_C(0x011313), RUNE_C(0x011328)},
+ {RUNE_C(0x01132A), RUNE_C(0x011330)},
+ {RUNE_C(0x011332), RUNE_C(0x011333)},
+ {RUNE_C(0x011335), RUNE_C(0x011339)},
+ {RUNE_C(0x01133D), RUNE_C(0x01133D)},
+ {RUNE_C(0x011350), RUNE_C(0x011350)},
+ {RUNE_C(0x01135D), RUNE_C(0x011361)},
+ {RUNE_C(0x011400), RUNE_C(0x011434)},
+ {RUNE_C(0x011447), RUNE_C(0x01144A)},
+ {RUNE_C(0x01145F), RUNE_C(0x011461)},
+ {RUNE_C(0x011480), RUNE_C(0x0114AF)},
+ {RUNE_C(0x0114C4), RUNE_C(0x0114C5)},
+ {RUNE_C(0x0114C7), RUNE_C(0x0114C7)},
+ {RUNE_C(0x011580), RUNE_C(0x0115AE)},
+ {RUNE_C(0x0115D8), RUNE_C(0x0115DB)},
+ {RUNE_C(0x011600), RUNE_C(0x01162F)},
+ {RUNE_C(0x011644), RUNE_C(0x011644)},
+ {RUNE_C(0x011680), RUNE_C(0x0116AA)},
+ {RUNE_C(0x0116B8), RUNE_C(0x0116B8)},
+ {RUNE_C(0x011700), RUNE_C(0x01171A)},
+ {RUNE_C(0x011740), RUNE_C(0x011746)},
+ {RUNE_C(0x011800), RUNE_C(0x01182B)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x0118FF), RUNE_C(0x011906)},
+ {RUNE_C(0x011909), RUNE_C(0x011909)},
+ {RUNE_C(0x01190C), RUNE_C(0x011913)},
+ {RUNE_C(0x011915), RUNE_C(0x011916)},
+ {RUNE_C(0x011918), RUNE_C(0x01192F)},
+ {RUNE_C(0x01193F), RUNE_C(0x01193F)},
+ {RUNE_C(0x011941), RUNE_C(0x011941)},
+ {RUNE_C(0x0119A0), RUNE_C(0x0119A7)},
+ {RUNE_C(0x0119AA), RUNE_C(0x0119D0)},
+ {RUNE_C(0x0119E1), RUNE_C(0x0119E1)},
+ {RUNE_C(0x0119E3), RUNE_C(0x0119E3)},
+ {RUNE_C(0x011A00), RUNE_C(0x011A00)},
+ {RUNE_C(0x011A0B), RUNE_C(0x011A32)},
+ {RUNE_C(0x011A3A), RUNE_C(0x011A3A)},
+ {RUNE_C(0x011A50), RUNE_C(0x011A50)},
+ {RUNE_C(0x011A5C), RUNE_C(0x011A89)},
+ {RUNE_C(0x011A9D), RUNE_C(0x011A9D)},
+ {RUNE_C(0x011AB0), RUNE_C(0x011AF8)},
+ {RUNE_C(0x011C00), RUNE_C(0x011C08)},
+ {RUNE_C(0x011C0A), RUNE_C(0x011C2E)},
+ {RUNE_C(0x011C40), RUNE_C(0x011C40)},
+ {RUNE_C(0x011C72), RUNE_C(0x011C8F)},
+ {RUNE_C(0x011D00), RUNE_C(0x011D06)},
+ {RUNE_C(0x011D08), RUNE_C(0x011D09)},
+ {RUNE_C(0x011D0B), RUNE_C(0x011D30)},
+ {RUNE_C(0x011D46), RUNE_C(0x011D46)},
+ {RUNE_C(0x011D60), RUNE_C(0x011D65)},
+ {RUNE_C(0x011D67), RUNE_C(0x011D68)},
+ {RUNE_C(0x011D6A), RUNE_C(0x011D89)},
+ {RUNE_C(0x011D98), RUNE_C(0x011D98)},
+ {RUNE_C(0x011EE0), RUNE_C(0x011EF2)},
+ {RUNE_C(0x011F02), RUNE_C(0x011F02)},
+ {RUNE_C(0x011F04), RUNE_C(0x011F10)},
+ {RUNE_C(0x011F12), RUNE_C(0x011F33)},
+ {RUNE_C(0x011FB0), RUNE_C(0x011FB0)},
+ {RUNE_C(0x012000), RUNE_C(0x012399)},
+ {RUNE_C(0x012400), RUNE_C(0x01246E)},
+ {RUNE_C(0x012480), RUNE_C(0x012543)},
+ {RUNE_C(0x012F90), RUNE_C(0x012FF0)},
+ {RUNE_C(0x013000), RUNE_C(0x01342F)},
+ {RUNE_C(0x013441), RUNE_C(0x013446)},
+ {RUNE_C(0x014400), RUNE_C(0x014646)},
+ {RUNE_C(0x016800), RUNE_C(0x016A38)},
+ {RUNE_C(0x016A40), RUNE_C(0x016A5E)},
+ {RUNE_C(0x016A70), RUNE_C(0x016ABE)},
+ {RUNE_C(0x016AD0), RUNE_C(0x016AED)},
+ {RUNE_C(0x016B00), RUNE_C(0x016B2F)},
+ {RUNE_C(0x016B40), RUNE_C(0x016B43)},
+ {RUNE_C(0x016B63), RUNE_C(0x016B77)},
+ {RUNE_C(0x016B7D), RUNE_C(0x016B8F)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E7F)},
+ {RUNE_C(0x016F00), RUNE_C(0x016F4A)},
+ {RUNE_C(0x016F50), RUNE_C(0x016F50)},
+ {RUNE_C(0x016F93), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
+ {RUNE_C(0x016FE3), RUNE_C(0x016FE3)},
+ {RUNE_C(0x017000), RUNE_C(0x0187F7)},
+ {RUNE_C(0x018800), RUNE_C(0x018CD5)},
+ {RUNE_C(0x018D00), RUNE_C(0x018D08)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01B000), RUNE_C(0x01B122)},
+ {RUNE_C(0x01B132), RUNE_C(0x01B132)},
+ {RUNE_C(0x01B150), RUNE_C(0x01B152)},
+ {RUNE_C(0x01B155), RUNE_C(0x01B155)},
+ {RUNE_C(0x01B164), RUNE_C(0x01B167)},
+ {RUNE_C(0x01B170), RUNE_C(0x01B2FB)},
+ {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)},
+ {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)},
+ {RUNE_C(0x01BC80), RUNE_C(0x01BC88)},
+ {RUNE_C(0x01BC90), RUNE_C(0x01BC99)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)},
+ {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)},
+ {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)},
+ {RUNE_C(0x01D6FC), RUNE_C(0x01D714)},
+ {RUNE_C(0x01D716), RUNE_C(0x01D734)},
+ {RUNE_C(0x01D736), RUNE_C(0x01D74E)},
+ {RUNE_C(0x01D750), RUNE_C(0x01D76E)},
+ {RUNE_C(0x01D770), RUNE_C(0x01D788)},
+ {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)},
+ {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)},
+ {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E100), RUNE_C(0x01E12C)},
+ {RUNE_C(0x01E137), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E14E), RUNE_C(0x01E14E)},
+ {RUNE_C(0x01E290), RUNE_C(0x01E2AD)},
+ {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)},
+ {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)},
+ {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)},
+ {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)},
+ {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)},
+ {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)},
+ {RUNE_C(0x01E800), RUNE_C(0x01E8C4)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E943)},
+ {RUNE_C(0x01E94B), RUNE_C(0x01E94B)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_ids(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_incb.c b/lib/unicode/prop/uprop_is_incb.c
new file mode 100644
index 0000000..622b9ac
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_incb.c
@@ -0,0 +1,221 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000300), RUNE_C(0x00034E)},
+ {RUNE_C(0x000350), RUNE_C(0x00036F)},
+ {RUNE_C(0x000483), RUNE_C(0x000487)},
+ {RUNE_C(0x000591), RUNE_C(0x0005BD)},
+ {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
+ {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
+ {RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
+ {RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
+ {RUNE_C(0x000610), RUNE_C(0x00061A)},
+ {RUNE_C(0x00064B), RUNE_C(0x00065F)},
+ {RUNE_C(0x000670), RUNE_C(0x000670)},
+ {RUNE_C(0x0006D6), RUNE_C(0x0006DC)},
+ {RUNE_C(0x0006DF), RUNE_C(0x0006E4)},
+ {RUNE_C(0x0006E7), RUNE_C(0x0006E8)},
+ {RUNE_C(0x0006EA), RUNE_C(0x0006ED)},
+ {RUNE_C(0x000711), RUNE_C(0x000711)},
+ {RUNE_C(0x000730), RUNE_C(0x00074A)},
+ {RUNE_C(0x0007EB), RUNE_C(0x0007F3)},
+ {RUNE_C(0x0007FD), RUNE_C(0x0007FD)},
+ {RUNE_C(0x000816), RUNE_C(0x000819)},
+ {RUNE_C(0x00081B), RUNE_C(0x000823)},
+ {RUNE_C(0x000825), RUNE_C(0x000827)},
+ {RUNE_C(0x000829), RUNE_C(0x00082D)},
+ {RUNE_C(0x000859), RUNE_C(0x00085B)},
+ {RUNE_C(0x000898), RUNE_C(0x00089F)},
+ {RUNE_C(0x0008CA), RUNE_C(0x0008E1)},
+ {RUNE_C(0x0008E3), RUNE_C(0x0008FF)},
+ {RUNE_C(0x000915), RUNE_C(0x000939)},
+ {RUNE_C(0x00093C), RUNE_C(0x00093C)},
+ {RUNE_C(0x00094D), RUNE_C(0x00094D)},
+ {RUNE_C(0x000951), RUNE_C(0x000954)},
+ {RUNE_C(0x000958), RUNE_C(0x00095F)},
+ {RUNE_C(0x000978), RUNE_C(0x00097F)},
+ {RUNE_C(0x000995), RUNE_C(0x0009A8)},
+ {RUNE_C(0x0009AA), RUNE_C(0x0009B0)},
+ {RUNE_C(0x0009B2), RUNE_C(0x0009B2)},
+ {RUNE_C(0x0009B6), RUNE_C(0x0009B9)},
+ {RUNE_C(0x0009BC), RUNE_C(0x0009BC)},
+ {RUNE_C(0x0009CD), RUNE_C(0x0009CD)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009DF)},
+ {RUNE_C(0x0009F0), RUNE_C(0x0009F1)},
+ {RUNE_C(0x0009FE), RUNE_C(0x0009FE)},
+ {RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
+ {RUNE_C(0x000A95), RUNE_C(0x000AA8)},
+ {RUNE_C(0x000AAA), RUNE_C(0x000AB0)},
+ {RUNE_C(0x000AB2), RUNE_C(0x000AB3)},
+ {RUNE_C(0x000AB5), RUNE_C(0x000AB9)},
+ {RUNE_C(0x000ABC), RUNE_C(0x000ABC)},
+ {RUNE_C(0x000ACD), RUNE_C(0x000ACD)},
+ {RUNE_C(0x000AF9), RUNE_C(0x000AF9)},
+ {RUNE_C(0x000B15), RUNE_C(0x000B28)},
+ {RUNE_C(0x000B2A), RUNE_C(0x000B30)},
+ {RUNE_C(0x000B32), RUNE_C(0x000B33)},
+ {RUNE_C(0x000B35), RUNE_C(0x000B39)},
+ {RUNE_C(0x000B3C), RUNE_C(0x000B3C)},
+ {RUNE_C(0x000B4D), RUNE_C(0x000B4D)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000B5F), RUNE_C(0x000B5F)},
+ {RUNE_C(0x000B71), RUNE_C(0x000B71)},
+ {RUNE_C(0x000C15), RUNE_C(0x000C28)},
+ {RUNE_C(0x000C2A), RUNE_C(0x000C39)},
+ {RUNE_C(0x000C3C), RUNE_C(0x000C3C)},
+ {RUNE_C(0x000C4D), RUNE_C(0x000C4D)},
+ {RUNE_C(0x000C55), RUNE_C(0x000C56)},
+ {RUNE_C(0x000C58), RUNE_C(0x000C5A)},
+ {RUNE_C(0x000CBC), RUNE_C(0x000CBC)},
+ {RUNE_C(0x000D15), RUNE_C(0x000D3C)},
+ {RUNE_C(0x000D4D), RUNE_C(0x000D4D)},
+ {RUNE_C(0x000E38), RUNE_C(0x000E3A)},
+ {RUNE_C(0x000E48), RUNE_C(0x000E4B)},
+ {RUNE_C(0x000EB8), RUNE_C(0x000EBA)},
+ {RUNE_C(0x000EC8), RUNE_C(0x000ECB)},
+ {RUNE_C(0x000F18), RUNE_C(0x000F19)},
+ {RUNE_C(0x000F35), RUNE_C(0x000F35)},
+ {RUNE_C(0x000F37), RUNE_C(0x000F37)},
+ {RUNE_C(0x000F39), RUNE_C(0x000F39)},
+ {RUNE_C(0x000F71), RUNE_C(0x000F72)},
+ {RUNE_C(0x000F74), RUNE_C(0x000F74)},
+ {RUNE_C(0x000F7A), RUNE_C(0x000F7D)},
+ {RUNE_C(0x000F80), RUNE_C(0x000F80)},
+ {RUNE_C(0x000F82), RUNE_C(0x000F84)},
+ {RUNE_C(0x000F86), RUNE_C(0x000F87)},
+ {RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
+ {RUNE_C(0x001037), RUNE_C(0x001037)},
+ {RUNE_C(0x001039), RUNE_C(0x00103A)},
+ {RUNE_C(0x00108D), RUNE_C(0x00108D)},
+ {RUNE_C(0x00135D), RUNE_C(0x00135F)},
+ {RUNE_C(0x001714), RUNE_C(0x001714)},
+ {RUNE_C(0x0017D2), RUNE_C(0x0017D2)},
+ {RUNE_C(0x0017DD), RUNE_C(0x0017DD)},
+ {RUNE_C(0x0018A9), RUNE_C(0x0018A9)},
+ {RUNE_C(0x001939), RUNE_C(0x00193B)},
+ {RUNE_C(0x001A17), RUNE_C(0x001A18)},
+ {RUNE_C(0x001A60), RUNE_C(0x001A60)},
+ {RUNE_C(0x001A75), RUNE_C(0x001A7C)},
+ {RUNE_C(0x001A7F), RUNE_C(0x001A7F)},
+ {RUNE_C(0x001AB0), RUNE_C(0x001ABD)},
+ {RUNE_C(0x001ABF), RUNE_C(0x001ACE)},
+ {RUNE_C(0x001B34), RUNE_C(0x001B34)},
+ {RUNE_C(0x001B6B), RUNE_C(0x001B73)},
+ {RUNE_C(0x001BAB), RUNE_C(0x001BAB)},
+ {RUNE_C(0x001BE6), RUNE_C(0x001BE6)},
+ {RUNE_C(0x001C37), RUNE_C(0x001C37)},
+ {RUNE_C(0x001CD0), RUNE_C(0x001CD2)},
+ {RUNE_C(0x001CD4), RUNE_C(0x001CE0)},
+ {RUNE_C(0x001CE2), RUNE_C(0x001CE8)},
+ {RUNE_C(0x001CED), RUNE_C(0x001CED)},
+ {RUNE_C(0x001CF4), RUNE_C(0x001CF4)},
+ {RUNE_C(0x001CF8), RUNE_C(0x001CF9)},
+ {RUNE_C(0x001DC0), RUNE_C(0x001DFF)},
+ {RUNE_C(0x00200D), RUNE_C(0x00200D)},
+ {RUNE_C(0x0020D0), RUNE_C(0x0020DC)},
+ {RUNE_C(0x0020E1), RUNE_C(0x0020E1)},
+ {RUNE_C(0x0020E5), RUNE_C(0x0020F0)},
+ {RUNE_C(0x002CEF), RUNE_C(0x002CF1)},
+ {RUNE_C(0x002D7F), RUNE_C(0x002D7F)},
+ {RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
+ {RUNE_C(0x00302A), RUNE_C(0x00302F)},
+ {RUNE_C(0x003099), RUNE_C(0x00309A)},
+ {RUNE_C(0x00A66F), RUNE_C(0x00A66F)},
+ {RUNE_C(0x00A674), RUNE_C(0x00A67D)},
+ {RUNE_C(0x00A69E), RUNE_C(0x00A69F)},
+ {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)},
+ {RUNE_C(0x00A82C), RUNE_C(0x00A82C)},
+ {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)},
+ {RUNE_C(0x00A92B), RUNE_C(0x00A92D)},
+ {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)},
+ {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)},
+ {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)},
+ {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)},
+ {RUNE_C(0x00AABE), RUNE_C(0x00AABF)},
+ {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)},
+ {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)},
+ {RUNE_C(0x00ABED), RUNE_C(0x00ABED)},
+ {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)},
+ {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
+ {RUNE_C(0x0101FD), RUNE_C(0x0101FD)},
+ {RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
+ {RUNE_C(0x010376), RUNE_C(0x01037A)},
+ {RUNE_C(0x010A0D), RUNE_C(0x010A0D)},
+ {RUNE_C(0x010A0F), RUNE_C(0x010A0F)},
+ {RUNE_C(0x010A38), RUNE_C(0x010A3A)},
+ {RUNE_C(0x010A3F), RUNE_C(0x010A3F)},
+ {RUNE_C(0x010AE5), RUNE_C(0x010AE6)},
+ {RUNE_C(0x010D24), RUNE_C(0x010D27)},
+ {RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
+ {RUNE_C(0x010EFD), RUNE_C(0x010EFF)},
+ {RUNE_C(0x010F46), RUNE_C(0x010F50)},
+ {RUNE_C(0x010F82), RUNE_C(0x010F85)},
+ {RUNE_C(0x011070), RUNE_C(0x011070)},
+ {RUNE_C(0x01107F), RUNE_C(0x01107F)},
+ {RUNE_C(0x0110BA), RUNE_C(0x0110BA)},
+ {RUNE_C(0x011100), RUNE_C(0x011102)},
+ {RUNE_C(0x011133), RUNE_C(0x011134)},
+ {RUNE_C(0x011173), RUNE_C(0x011173)},
+ {RUNE_C(0x0111CA), RUNE_C(0x0111CA)},
+ {RUNE_C(0x011236), RUNE_C(0x011236)},
+ {RUNE_C(0x0112E9), RUNE_C(0x0112EA)},
+ {RUNE_C(0x01133B), RUNE_C(0x01133C)},
+ {RUNE_C(0x011366), RUNE_C(0x01136C)},
+ {RUNE_C(0x011370), RUNE_C(0x011374)},
+ {RUNE_C(0x011446), RUNE_C(0x011446)},
+ {RUNE_C(0x01145E), RUNE_C(0x01145E)},
+ {RUNE_C(0x0114C3), RUNE_C(0x0114C3)},
+ {RUNE_C(0x0115C0), RUNE_C(0x0115C0)},
+ {RUNE_C(0x0116B7), RUNE_C(0x0116B7)},
+ {RUNE_C(0x01172B), RUNE_C(0x01172B)},
+ {RUNE_C(0x01183A), RUNE_C(0x01183A)},
+ {RUNE_C(0x01193E), RUNE_C(0x01193E)},
+ {RUNE_C(0x011943), RUNE_C(0x011943)},
+ {RUNE_C(0x011A34), RUNE_C(0x011A34)},
+ {RUNE_C(0x011A47), RUNE_C(0x011A47)},
+ {RUNE_C(0x011A99), RUNE_C(0x011A99)},
+ {RUNE_C(0x011D42), RUNE_C(0x011D42)},
+ {RUNE_C(0x011D44), RUNE_C(0x011D45)},
+ {RUNE_C(0x011D97), RUNE_C(0x011D97)},
+ {RUNE_C(0x011F42), RUNE_C(0x011F42)},
+ {RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
+ {RUNE_C(0x016B30), RUNE_C(0x016B36)},
+ {RUNE_C(0x01BC9E), RUNE_C(0x01BC9E)},
+ {RUNE_C(0x01D165), RUNE_C(0x01D165)},
+ {RUNE_C(0x01D167), RUNE_C(0x01D169)},
+ {RUNE_C(0x01D16E), RUNE_C(0x01D172)},
+ {RUNE_C(0x01D17B), RUNE_C(0x01D182)},
+ {RUNE_C(0x01D185), RUNE_C(0x01D18B)},
+ {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
+ {RUNE_C(0x01D242), RUNE_C(0x01D244)},
+ {RUNE_C(0x01E000), RUNE_C(0x01E006)},
+ {RUNE_C(0x01E008), RUNE_C(0x01E018)},
+ {RUNE_C(0x01E01B), RUNE_C(0x01E021)},
+ {RUNE_C(0x01E023), RUNE_C(0x01E024)},
+ {RUNE_C(0x01E026), RUNE_C(0x01E02A)},
+ {RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
+ {RUNE_C(0x01E130), RUNE_C(0x01E136)},
+ {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)},
+ {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)},
+ {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF)},
+ {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
+ {RUNE_C(0x01E944), RUNE_C(0x01E94A)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_incb(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_loe.c b/lib/unicode/prop/uprop_is_loe.c
new file mode 100644
index 0000000..699b100
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_loe.c
@@ -0,0 +1,28 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000E40), RUNE_C(0x000E44)},
+ {RUNE_C(0x000EC0), RUNE_C(0x000EC4)},
+ {RUNE_C(0x0019B5), RUNE_C(0x0019B7)},
+ {RUNE_C(0x0019BA), RUNE_C(0x0019BA)},
+ {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)},
+ {RUNE_C(0x00AAB9), RUNE_C(0x00AAB9)},
+ {RUNE_C(0x00AABB), RUNE_C(0x00AABC)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_loe(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_lower.c b/lib/unicode/prop/uprop_is_lower.c
new file mode 100644
index 0000000..3d3f6a9
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_lower.c
@@ -0,0 +1,693 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04,
+ 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000101), RUNE_C(0x000101)},
+ {RUNE_C(0x000103), RUNE_C(0x000103)},
+ {RUNE_C(0x000105), RUNE_C(0x000105)},
+ {RUNE_C(0x000107), RUNE_C(0x000107)},
+ {RUNE_C(0x000109), RUNE_C(0x000109)},
+ {RUNE_C(0x00010B), RUNE_C(0x00010B)},
+ {RUNE_C(0x00010D), RUNE_C(0x00010D)},
+ {RUNE_C(0x00010F), RUNE_C(0x00010F)},
+ {RUNE_C(0x000111), RUNE_C(0x000111)},
+ {RUNE_C(0x000113), RUNE_C(0x000113)},
+ {RUNE_C(0x000115), RUNE_C(0x000115)},
+ {RUNE_C(0x000117), RUNE_C(0x000117)},
+ {RUNE_C(0x000119), RUNE_C(0x000119)},
+ {RUNE_C(0x00011B), RUNE_C(0x00011B)},
+ {RUNE_C(0x00011D), RUNE_C(0x00011D)},
+ {RUNE_C(0x00011F), RUNE_C(0x00011F)},
+ {RUNE_C(0x000121), RUNE_C(0x000121)},
+ {RUNE_C(0x000123), RUNE_C(0x000123)},
+ {RUNE_C(0x000125), RUNE_C(0x000125)},
+ {RUNE_C(0x000127), RUNE_C(0x000127)},
+ {RUNE_C(0x000129), RUNE_C(0x000129)},
+ {RUNE_C(0x00012B), RUNE_C(0x00012B)},
+ {RUNE_C(0x00012D), RUNE_C(0x00012D)},
+ {RUNE_C(0x00012F), RUNE_C(0x00012F)},
+ {RUNE_C(0x000131), RUNE_C(0x000131)},
+ {RUNE_C(0x000133), RUNE_C(0x000133)},
+ {RUNE_C(0x000135), RUNE_C(0x000135)},
+ {RUNE_C(0x000137), RUNE_C(0x000138)},
+ {RUNE_C(0x00013A), RUNE_C(0x00013A)},
+ {RUNE_C(0x00013C), RUNE_C(0x00013C)},
+ {RUNE_C(0x00013E), RUNE_C(0x00013E)},
+ {RUNE_C(0x000140), RUNE_C(0x000140)},
+ {RUNE_C(0x000142), RUNE_C(0x000142)},
+ {RUNE_C(0x000144), RUNE_C(0x000144)},
+ {RUNE_C(0x000146), RUNE_C(0x000146)},
+ {RUNE_C(0x000148), RUNE_C(0x000149)},
+ {RUNE_C(0x00014B), RUNE_C(0x00014B)},
+ {RUNE_C(0x00014D), RUNE_C(0x00014D)},
+ {RUNE_C(0x00014F), RUNE_C(0x00014F)},
+ {RUNE_C(0x000151), RUNE_C(0x000151)},
+ {RUNE_C(0x000153), RUNE_C(0x000153)},
+ {RUNE_C(0x000155), RUNE_C(0x000155)},
+ {RUNE_C(0x000157), RUNE_C(0x000157)},
+ {RUNE_C(0x000159), RUNE_C(0x000159)},
+ {RUNE_C(0x00015B), RUNE_C(0x00015B)},
+ {RUNE_C(0x00015D), RUNE_C(0x00015D)},
+ {RUNE_C(0x00015F), RUNE_C(0x00015F)},
+ {RUNE_C(0x000161), RUNE_C(0x000161)},
+ {RUNE_C(0x000163), RUNE_C(0x000163)},
+ {RUNE_C(0x000165), RUNE_C(0x000165)},
+ {RUNE_C(0x000167), RUNE_C(0x000167)},
+ {RUNE_C(0x000169), RUNE_C(0x000169)},
+ {RUNE_C(0x00016B), RUNE_C(0x00016B)},
+ {RUNE_C(0x00016D), RUNE_C(0x00016D)},
+ {RUNE_C(0x00016F), RUNE_C(0x00016F)},
+ {RUNE_C(0x000171), RUNE_C(0x000171)},
+ {RUNE_C(0x000173), RUNE_C(0x000173)},
+ {RUNE_C(0x000175), RUNE_C(0x000175)},
+ {RUNE_C(0x000177), RUNE_C(0x000177)},
+ {RUNE_C(0x00017A), RUNE_C(0x00017A)},
+ {RUNE_C(0x00017C), RUNE_C(0x00017C)},
+ {RUNE_C(0x00017E), RUNE_C(0x000180)},
+ {RUNE_C(0x000183), RUNE_C(0x000183)},
+ {RUNE_C(0x000185), RUNE_C(0x000185)},
+ {RUNE_C(0x000188), RUNE_C(0x000188)},
+ {RUNE_C(0x00018C), RUNE_C(0x00018D)},
+ {RUNE_C(0x000192), RUNE_C(0x000192)},
+ {RUNE_C(0x000195), RUNE_C(0x000195)},
+ {RUNE_C(0x000199), RUNE_C(0x00019B)},
+ {RUNE_C(0x00019E), RUNE_C(0x00019E)},
+ {RUNE_C(0x0001A1), RUNE_C(0x0001A1)},
+ {RUNE_C(0x0001A3), RUNE_C(0x0001A3)},
+ {RUNE_C(0x0001A5), RUNE_C(0x0001A5)},
+ {RUNE_C(0x0001A8), RUNE_C(0x0001A8)},
+ {RUNE_C(0x0001AA), RUNE_C(0x0001AB)},
+ {RUNE_C(0x0001AD), RUNE_C(0x0001AD)},
+ {RUNE_C(0x0001B0), RUNE_C(0x0001B0)},
+ {RUNE_C(0x0001B4), RUNE_C(0x0001B4)},
+ {RUNE_C(0x0001B6), RUNE_C(0x0001B6)},
+ {RUNE_C(0x0001B9), RUNE_C(0x0001BA)},
+ {RUNE_C(0x0001BD), RUNE_C(0x0001BF)},
+ {RUNE_C(0x0001C6), RUNE_C(0x0001C6)},
+ {RUNE_C(0x0001C9), RUNE_C(0x0001C9)},
+ {RUNE_C(0x0001CC), RUNE_C(0x0001CC)},
+ {RUNE_C(0x0001CE), RUNE_C(0x0001CE)},
+ {RUNE_C(0x0001D0), RUNE_C(0x0001D0)},
+ {RUNE_C(0x0001D2), RUNE_C(0x0001D2)},
+ {RUNE_C(0x0001D4), RUNE_C(0x0001D4)},
+ {RUNE_C(0x0001D6), RUNE_C(0x0001D6)},
+ {RUNE_C(0x0001D8), RUNE_C(0x0001D8)},
+ {RUNE_C(0x0001DA), RUNE_C(0x0001DA)},
+ {RUNE_C(0x0001DC), RUNE_C(0x0001DD)},
+ {RUNE_C(0x0001DF), RUNE_C(0x0001DF)},
+ {RUNE_C(0x0001E1), RUNE_C(0x0001E1)},
+ {RUNE_C(0x0001E3), RUNE_C(0x0001E3)},
+ {RUNE_C(0x0001E5), RUNE_C(0x0001E5)},
+ {RUNE_C(0x0001E7), RUNE_C(0x0001E7)},
+ {RUNE_C(0x0001E9), RUNE_C(0x0001E9)},
+ {RUNE_C(0x0001EB), RUNE_C(0x0001EB)},
+ {RUNE_C(0x0001ED), RUNE_C(0x0001ED)},
+ {RUNE_C(0x0001EF), RUNE_C(0x0001F0)},
+ {RUNE_C(0x0001F3), RUNE_C(0x0001F3)},
+ {RUNE_C(0x0001F5), RUNE_C(0x0001F5)},
+ {RUNE_C(0x0001F9), RUNE_C(0x0001F9)},
+ {RUNE_C(0x0001FB), RUNE_C(0x0001FB)},
+ {RUNE_C(0x0001FD), RUNE_C(0x0001FD)},
+ {RUNE_C(0x0001FF), RUNE_C(0x0001FF)},
+ {RUNE_C(0x000201), RUNE_C(0x000201)},
+ {RUNE_C(0x000203), RUNE_C(0x000203)},
+ {RUNE_C(0x000205), RUNE_C(0x000205)},
+ {RUNE_C(0x000207), RUNE_C(0x000207)},
+ {RUNE_C(0x000209), RUNE_C(0x000209)},
+ {RUNE_C(0x00020B), RUNE_C(0x00020B)},
+ {RUNE_C(0x00020D), RUNE_C(0x00020D)},
+ {RUNE_C(0x00020F), RUNE_C(0x00020F)},
+ {RUNE_C(0x000211), RUNE_C(0x000211)},
+ {RUNE_C(0x000213), RUNE_C(0x000213)},
+ {RUNE_C(0x000215), RUNE_C(0x000215)},
+ {RUNE_C(0x000217), RUNE_C(0x000217)},
+ {RUNE_C(0x000219), RUNE_C(0x000219)},
+ {RUNE_C(0x00021B), RUNE_C(0x00021B)},
+ {RUNE_C(0x00021D), RUNE_C(0x00021D)},
+ {RUNE_C(0x00021F), RUNE_C(0x00021F)},
+ {RUNE_C(0x000221), RUNE_C(0x000221)},
+ {RUNE_C(0x000223), RUNE_C(0x000223)},
+ {RUNE_C(0x000225), RUNE_C(0x000225)},
+ {RUNE_C(0x000227), RUNE_C(0x000227)},
+ {RUNE_C(0x000229), RUNE_C(0x000229)},
+ {RUNE_C(0x00022B), RUNE_C(0x00022B)},
+ {RUNE_C(0x00022D), RUNE_C(0x00022D)},
+ {RUNE_C(0x00022F), RUNE_C(0x00022F)},
+ {RUNE_C(0x000231), RUNE_C(0x000231)},
+ {RUNE_C(0x000233), RUNE_C(0x000239)},
+ {RUNE_C(0x00023C), RUNE_C(0x00023C)},
+ {RUNE_C(0x00023F), RUNE_C(0x000240)},
+ {RUNE_C(0x000242), RUNE_C(0x000242)},
+ {RUNE_C(0x000247), RUNE_C(0x000247)},
+ {RUNE_C(0x000249), RUNE_C(0x000249)},
+ {RUNE_C(0x00024B), RUNE_C(0x00024B)},
+ {RUNE_C(0x00024D), RUNE_C(0x00024D)},
+ {RUNE_C(0x00024F), RUNE_C(0x000293)},
+ {RUNE_C(0x000295), RUNE_C(0x0002B8)},
+ {RUNE_C(0x0002C0), RUNE_C(0x0002C1)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x000345), RUNE_C(0x000345)},
+ {RUNE_C(0x000371), RUNE_C(0x000371)},
+ {RUNE_C(0x000373), RUNE_C(0x000373)},
+ {RUNE_C(0x000377), RUNE_C(0x000377)},
+ {RUNE_C(0x00037A), RUNE_C(0x00037D)},
+ {RUNE_C(0x000390), RUNE_C(0x000390)},
+ {RUNE_C(0x0003AC), RUNE_C(0x0003CE)},
+ {RUNE_C(0x0003D0), RUNE_C(0x0003D1)},
+ {RUNE_C(0x0003D5), RUNE_C(0x0003D7)},
+ {RUNE_C(0x0003D9), RUNE_C(0x0003D9)},
+ {RUNE_C(0x0003DB), RUNE_C(0x0003DB)},
+ {RUNE_C(0x0003DD), RUNE_C(0x0003DD)},
+ {RUNE_C(0x0003DF), RUNE_C(0x0003DF)},
+ {RUNE_C(0x0003E1), RUNE_C(0x0003E1)},
+ {RUNE_C(0x0003E3), RUNE_C(0x0003E3)},
+ {RUNE_C(0x0003E5), RUNE_C(0x0003E5)},
+ {RUNE_C(0x0003E7), RUNE_C(0x0003E7)},
+ {RUNE_C(0x0003E9), RUNE_C(0x0003E9)},
+ {RUNE_C(0x0003EB), RUNE_C(0x0003EB)},
+ {RUNE_C(0x0003ED), RUNE_C(0x0003ED)},
+ {RUNE_C(0x0003EF), RUNE_C(0x0003F3)},
+ {RUNE_C(0x0003F5), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F8), RUNE_C(0x0003F8)},
+ {RUNE_C(0x0003FB), RUNE_C(0x0003FC)},
+ {RUNE_C(0x000430), RUNE_C(0x00045F)},
+ {RUNE_C(0x000461), RUNE_C(0x000461)},
+ {RUNE_C(0x000463), RUNE_C(0x000463)},
+ {RUNE_C(0x000465), RUNE_C(0x000465)},
+ {RUNE_C(0x000467), RUNE_C(0x000467)},
+ {RUNE_C(0x000469), RUNE_C(0x000469)},
+ {RUNE_C(0x00046B), RUNE_C(0x00046B)},
+ {RUNE_C(0x00046D), RUNE_C(0x00046D)},
+ {RUNE_C(0x00046F), RUNE_C(0x00046F)},
+ {RUNE_C(0x000471), RUNE_C(0x000471)},
+ {RUNE_C(0x000473), RUNE_C(0x000473)},
+ {RUNE_C(0x000475), RUNE_C(0x000475)},
+ {RUNE_C(0x000477), RUNE_C(0x000477)},
+ {RUNE_C(0x000479), RUNE_C(0x000479)},
+ {RUNE_C(0x00047B), RUNE_C(0x00047B)},
+ {RUNE_C(0x00047D), RUNE_C(0x00047D)},
+ {RUNE_C(0x00047F), RUNE_C(0x00047F)},
+ {RUNE_C(0x000481), RUNE_C(0x000481)},
+ {RUNE_C(0x00048B), RUNE_C(0x00048B)},
+ {RUNE_C(0x00048D), RUNE_C(0x00048D)},
+ {RUNE_C(0x00048F), RUNE_C(0x00048F)},
+ {RUNE_C(0x000491), RUNE_C(0x000491)},
+ {RUNE_C(0x000493), RUNE_C(0x000493)},
+ {RUNE_C(0x000495), RUNE_C(0x000495)},
+ {RUNE_C(0x000497), RUNE_C(0x000497)},
+ {RUNE_C(0x000499), RUNE_C(0x000499)},
+ {RUNE_C(0x00049B), RUNE_C(0x00049B)},
+ {RUNE_C(0x00049D), RUNE_C(0x00049D)},
+ {RUNE_C(0x00049F), RUNE_C(0x00049F)},
+ {RUNE_C(0x0004A1), RUNE_C(0x0004A1)},
+ {RUNE_C(0x0004A3), RUNE_C(0x0004A3)},
+ {RUNE_C(0x0004A5), RUNE_C(0x0004A5)},
+ {RUNE_C(0x0004A7), RUNE_C(0x0004A7)},
+ {RUNE_C(0x0004A9), RUNE_C(0x0004A9)},
+ {RUNE_C(0x0004AB), RUNE_C(0x0004AB)},
+ {RUNE_C(0x0004AD), RUNE_C(0x0004AD)},
+ {RUNE_C(0x0004AF), RUNE_C(0x0004AF)},
+ {RUNE_C(0x0004B1), RUNE_C(0x0004B1)},
+ {RUNE_C(0x0004B3), RUNE_C(0x0004B3)},
+ {RUNE_C(0x0004B5), RUNE_C(0x0004B5)},
+ {RUNE_C(0x0004B7), RUNE_C(0x0004B7)},
+ {RUNE_C(0x0004B9), RUNE_C(0x0004B9)},
+ {RUNE_C(0x0004BB), RUNE_C(0x0004BB)},
+ {RUNE_C(0x0004BD), RUNE_C(0x0004BD)},
+ {RUNE_C(0x0004BF), RUNE_C(0x0004BF)},
+ {RUNE_C(0x0004C2), RUNE_C(0x0004C2)},
+ {RUNE_C(0x0004C4), RUNE_C(0x0004C4)},
+ {RUNE_C(0x0004C6), RUNE_C(0x0004C6)},
+ {RUNE_C(0x0004C8), RUNE_C(0x0004C8)},
+ {RUNE_C(0x0004CA), RUNE_C(0x0004CA)},
+ {RUNE_C(0x0004CC), RUNE_C(0x0004CC)},
+ {RUNE_C(0x0004CE), RUNE_C(0x0004CF)},
+ {RUNE_C(0x0004D1), RUNE_C(0x0004D1)},
+ {RUNE_C(0x0004D3), RUNE_C(0x0004D3)},
+ {RUNE_C(0x0004D5), RUNE_C(0x0004D5)},
+ {RUNE_C(0x0004D7), RUNE_C(0x0004D7)},
+ {RUNE_C(0x0004D9), RUNE_C(0x0004D9)},
+ {RUNE_C(0x0004DB), RUNE_C(0x0004DB)},
+ {RUNE_C(0x0004DD), RUNE_C(0x0004DD)},
+ {RUNE_C(0x0004DF), RUNE_C(0x0004DF)},
+ {RUNE_C(0x0004E1), RUNE_C(0x0004E1)},
+ {RUNE_C(0x0004E3), RUNE_C(0x0004E3)},
+ {RUNE_C(0x0004E5), RUNE_C(0x0004E5)},
+ {RUNE_C(0x0004E7), RUNE_C(0x0004E7)},
+ {RUNE_C(0x0004E9), RUNE_C(0x0004E9)},
+ {RUNE_C(0x0004EB), RUNE_C(0x0004EB)},
+ {RUNE_C(0x0004ED), RUNE_C(0x0004ED)},
+ {RUNE_C(0x0004EF), RUNE_C(0x0004EF)},
+ {RUNE_C(0x0004F1), RUNE_C(0x0004F1)},
+ {RUNE_C(0x0004F3), RUNE_C(0x0004F3)},
+ {RUNE_C(0x0004F5), RUNE_C(0x0004F5)},
+ {RUNE_C(0x0004F7), RUNE_C(0x0004F7)},
+ {RUNE_C(0x0004F9), RUNE_C(0x0004F9)},
+ {RUNE_C(0x0004FB), RUNE_C(0x0004FB)},
+ {RUNE_C(0x0004FD), RUNE_C(0x0004FD)},
+ {RUNE_C(0x0004FF), RUNE_C(0x0004FF)},
+ {RUNE_C(0x000501), RUNE_C(0x000501)},
+ {RUNE_C(0x000503), RUNE_C(0x000503)},
+ {RUNE_C(0x000505), RUNE_C(0x000505)},
+ {RUNE_C(0x000507), RUNE_C(0x000507)},
+ {RUNE_C(0x000509), RUNE_C(0x000509)},
+ {RUNE_C(0x00050B), RUNE_C(0x00050B)},
+ {RUNE_C(0x00050D), RUNE_C(0x00050D)},
+ {RUNE_C(0x00050F), RUNE_C(0x00050F)},
+ {RUNE_C(0x000511), RUNE_C(0x000511)},
+ {RUNE_C(0x000513), RUNE_C(0x000513)},
+ {RUNE_C(0x000515), RUNE_C(0x000515)},
+ {RUNE_C(0x000517), RUNE_C(0x000517)},
+ {RUNE_C(0x000519), RUNE_C(0x000519)},
+ {RUNE_C(0x00051B), RUNE_C(0x00051B)},
+ {RUNE_C(0x00051D), RUNE_C(0x00051D)},
+ {RUNE_C(0x00051F), RUNE_C(0x00051F)},
+ {RUNE_C(0x000521), RUNE_C(0x000521)},
+ {RUNE_C(0x000523), RUNE_C(0x000523)},
+ {RUNE_C(0x000525), RUNE_C(0x000525)},
+ {RUNE_C(0x000527), RUNE_C(0x000527)},
+ {RUNE_C(0x000529), RUNE_C(0x000529)},
+ {RUNE_C(0x00052B), RUNE_C(0x00052B)},
+ {RUNE_C(0x00052D), RUNE_C(0x00052D)},
+ {RUNE_C(0x00052F), RUNE_C(0x00052F)},
+ {RUNE_C(0x000560), RUNE_C(0x000588)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FC), RUNE_C(0x0010FF)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001D00), RUNE_C(0x001DBF)},
+ {RUNE_C(0x001E01), RUNE_C(0x001E01)},
+ {RUNE_C(0x001E03), RUNE_C(0x001E03)},
+ {RUNE_C(0x001E05), RUNE_C(0x001E05)},
+ {RUNE_C(0x001E07), RUNE_C(0x001E07)},
+ {RUNE_C(0x001E09), RUNE_C(0x001E09)},
+ {RUNE_C(0x001E0B), RUNE_C(0x001E0B)},
+ {RUNE_C(0x001E0D), RUNE_C(0x001E0D)},
+ {RUNE_C(0x001E0F), RUNE_C(0x001E0F)},
+ {RUNE_C(0x001E11), RUNE_C(0x001E11)},
+ {RUNE_C(0x001E13), RUNE_C(0x001E13)},
+ {RUNE_C(0x001E15), RUNE_C(0x001E15)},
+ {RUNE_C(0x001E17), RUNE_C(0x001E17)},
+ {RUNE_C(0x001E19), RUNE_C(0x001E19)},
+ {RUNE_C(0x001E1B), RUNE_C(0x001E1B)},
+ {RUNE_C(0x001E1D), RUNE_C(0x001E1D)},
+ {RUNE_C(0x001E1F), RUNE_C(0x001E1F)},
+ {RUNE_C(0x001E21), RUNE_C(0x001E21)},
+ {RUNE_C(0x001E23), RUNE_C(0x001E23)},
+ {RUNE_C(0x001E25), RUNE_C(0x001E25)},
+ {RUNE_C(0x001E27), RUNE_C(0x001E27)},
+ {RUNE_C(0x001E29), RUNE_C(0x001E29)},
+ {RUNE_C(0x001E2B), RUNE_C(0x001E2B)},
+ {RUNE_C(0x001E2D), RUNE_C(0x001E2D)},
+ {RUNE_C(0x001E2F), RUNE_C(0x001E2F)},
+ {RUNE_C(0x001E31), RUNE_C(0x001E31)},
+ {RUNE_C(0x001E33), RUNE_C(0x001E33)},
+ {RUNE_C(0x001E35), RUNE_C(0x001E35)},
+ {RUNE_C(0x001E37), RUNE_C(0x001E37)},
+ {RUNE_C(0x001E39), RUNE_C(0x001E39)},
+ {RUNE_C(0x001E3B), RUNE_C(0x001E3B)},
+ {RUNE_C(0x001E3D), RUNE_C(0x001E3D)},
+ {RUNE_C(0x001E3F), RUNE_C(0x001E3F)},
+ {RUNE_C(0x001E41), RUNE_C(0x001E41)},
+ {RUNE_C(0x001E43), RUNE_C(0x001E43)},
+ {RUNE_C(0x001E45), RUNE_C(0x001E45)},
+ {RUNE_C(0x001E47), RUNE_C(0x001E47)},
+ {RUNE_C(0x001E49), RUNE_C(0x001E49)},
+ {RUNE_C(0x001E4B), RUNE_C(0x001E4B)},
+ {RUNE_C(0x001E4D), RUNE_C(0x001E4D)},
+ {RUNE_C(0x001E4F), RUNE_C(0x001E4F)},
+ {RUNE_C(0x001E51), RUNE_C(0x001E51)},
+ {RUNE_C(0x001E53), RUNE_C(0x001E53)},
+ {RUNE_C(0x001E55), RUNE_C(0x001E55)},
+ {RUNE_C(0x001E57), RUNE_C(0x001E57)},
+ {RUNE_C(0x001E59), RUNE_C(0x001E59)},
+ {RUNE_C(0x001E5B), RUNE_C(0x001E5B)},
+ {RUNE_C(0x001E5D), RUNE_C(0x001E5D)},
+ {RUNE_C(0x001E5F), RUNE_C(0x001E5F)},
+ {RUNE_C(0x001E61), RUNE_C(0x001E61)},
+ {RUNE_C(0x001E63), RUNE_C(0x001E63)},
+ {RUNE_C(0x001E65), RUNE_C(0x001E65)},
+ {RUNE_C(0x001E67), RUNE_C(0x001E67)},
+ {RUNE_C(0x001E69), RUNE_C(0x001E69)},
+ {RUNE_C(0x001E6B), RUNE_C(0x001E6B)},
+ {RUNE_C(0x001E6D), RUNE_C(0x001E6D)},
+ {RUNE_C(0x001E6F), RUNE_C(0x001E6F)},
+ {RUNE_C(0x001E71), RUNE_C(0x001E71)},
+ {RUNE_C(0x001E73), RUNE_C(0x001E73)},
+ {RUNE_C(0x001E75), RUNE_C(0x001E75)},
+ {RUNE_C(0x001E77), RUNE_C(0x001E77)},
+ {RUNE_C(0x001E79), RUNE_C(0x001E79)},
+ {RUNE_C(0x001E7B), RUNE_C(0x001E7B)},
+ {RUNE_C(0x001E7D), RUNE_C(0x001E7D)},
+ {RUNE_C(0x001E7F), RUNE_C(0x001E7F)},
+ {RUNE_C(0x001E81), RUNE_C(0x001E81)},
+ {RUNE_C(0x001E83), RUNE_C(0x001E83)},
+ {RUNE_C(0x001E85), RUNE_C(0x001E85)},
+ {RUNE_C(0x001E87), RUNE_C(0x001E87)},
+ {RUNE_C(0x001E89), RUNE_C(0x001E89)},
+ {RUNE_C(0x001E8B), RUNE_C(0x001E8B)},
+ {RUNE_C(0x001E8D), RUNE_C(0x001E8D)},
+ {RUNE_C(0x001E8F), RUNE_C(0x001E8F)},
+ {RUNE_C(0x001E91), RUNE_C(0x001E91)},
+ {RUNE_C(0x001E93), RUNE_C(0x001E93)},
+ {RUNE_C(0x001E95), RUNE_C(0x001E9D)},
+ {RUNE_C(0x001E9F), RUNE_C(0x001E9F)},
+ {RUNE_C(0x001EA1), RUNE_C(0x001EA1)},
+ {RUNE_C(0x001EA3), RUNE_C(0x001EA3)},
+ {RUNE_C(0x001EA5), RUNE_C(0x001EA5)},
+ {RUNE_C(0x001EA7), RUNE_C(0x001EA7)},
+ {RUNE_C(0x001EA9), RUNE_C(0x001EA9)},
+ {RUNE_C(0x001EAB), RUNE_C(0x001EAB)},
+ {RUNE_C(0x001EAD), RUNE_C(0x001EAD)},
+ {RUNE_C(0x001EAF), RUNE_C(0x001EAF)},
+ {RUNE_C(0x001EB1), RUNE_C(0x001EB1)},
+ {RUNE_C(0x001EB3), RUNE_C(0x001EB3)},
+ {RUNE_C(0x001EB5), RUNE_C(0x001EB5)},
+ {RUNE_C(0x001EB7), RUNE_C(0x001EB7)},
+ {RUNE_C(0x001EB9), RUNE_C(0x001EB9)},
+ {RUNE_C(0x001EBB), RUNE_C(0x001EBB)},
+ {RUNE_C(0x001EBD), RUNE_C(0x001EBD)},
+ {RUNE_C(0x001EBF), RUNE_C(0x001EBF)},
+ {RUNE_C(0x001EC1), RUNE_C(0x001EC1)},
+ {RUNE_C(0x001EC3), RUNE_C(0x001EC3)},
+ {RUNE_C(0x001EC5), RUNE_C(0x001EC5)},
+ {RUNE_C(0x001EC7), RUNE_C(0x001EC7)},
+ {RUNE_C(0x001EC9), RUNE_C(0x001EC9)},
+ {RUNE_C(0x001ECB), RUNE_C(0x001ECB)},
+ {RUNE_C(0x001ECD), RUNE_C(0x001ECD)},
+ {RUNE_C(0x001ECF), RUNE_C(0x001ECF)},
+ {RUNE_C(0x001ED1), RUNE_C(0x001ED1)},
+ {RUNE_C(0x001ED3), RUNE_C(0x001ED3)},
+ {RUNE_C(0x001ED5), RUNE_C(0x001ED5)},
+ {RUNE_C(0x001ED7), RUNE_C(0x001ED7)},
+ {RUNE_C(0x001ED9), RUNE_C(0x001ED9)},
+ {RUNE_C(0x001EDB), RUNE_C(0x001EDB)},
+ {RUNE_C(0x001EDD), RUNE_C(0x001EDD)},
+ {RUNE_C(0x001EDF), RUNE_C(0x001EDF)},
+ {RUNE_C(0x001EE1), RUNE_C(0x001EE1)},
+ {RUNE_C(0x001EE3), RUNE_C(0x001EE3)},
+ {RUNE_C(0x001EE5), RUNE_C(0x001EE5)},
+ {RUNE_C(0x001EE7), RUNE_C(0x001EE7)},
+ {RUNE_C(0x001EE9), RUNE_C(0x001EE9)},
+ {RUNE_C(0x001EEB), RUNE_C(0x001EEB)},
+ {RUNE_C(0x001EED), RUNE_C(0x001EED)},
+ {RUNE_C(0x001EEF), RUNE_C(0x001EEF)},
+ {RUNE_C(0x001EF1), RUNE_C(0x001EF1)},
+ {RUNE_C(0x001EF3), RUNE_C(0x001EF3)},
+ {RUNE_C(0x001EF5), RUNE_C(0x001EF5)},
+ {RUNE_C(0x001EF7), RUNE_C(0x001EF7)},
+ {RUNE_C(0x001EF9), RUNE_C(0x001EF9)},
+ {RUNE_C(0x001EFB), RUNE_C(0x001EFB)},
+ {RUNE_C(0x001EFD), RUNE_C(0x001EFD)},
+ {RUNE_C(0x001EFF), RUNE_C(0x001F07)},
+ {RUNE_C(0x001F10), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F27)},
+ {RUNE_C(0x001F30), RUNE_C(0x001F37)},
+ {RUNE_C(0x001F40), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F60), RUNE_C(0x001F67)},
+ {RUNE_C(0x001F70), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001F87)},
+ {RUNE_C(0x001F90), RUNE_C(0x001F97)},
+ {RUNE_C(0x001FA0), RUNE_C(0x001FA7)},
+ {RUNE_C(0x001FB0), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FB7)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FC7)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FD7)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FE7)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FF7)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x00210A), RUNE_C(0x00210A)},
+ {RUNE_C(0x00210E), RUNE_C(0x00210F)},
+ {RUNE_C(0x002113), RUNE_C(0x002113)},
+ {RUNE_C(0x00212F), RUNE_C(0x00212F)},
+ {RUNE_C(0x002134), RUNE_C(0x002134)},
+ {RUNE_C(0x002139), RUNE_C(0x002139)},
+ {RUNE_C(0x00213C), RUNE_C(0x00213D)},
+ {RUNE_C(0x002146), RUNE_C(0x002149)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002170), RUNE_C(0x00217F)},
+ {RUNE_C(0x002184), RUNE_C(0x002184)},
+ {RUNE_C(0x0024D0), RUNE_C(0x0024E9)},
+ {RUNE_C(0x002C30), RUNE_C(0x002C5F)},
+ {RUNE_C(0x002C61), RUNE_C(0x002C61)},
+ {RUNE_C(0x002C65), RUNE_C(0x002C66)},
+ {RUNE_C(0x002C68), RUNE_C(0x002C68)},
+ {RUNE_C(0x002C6A), RUNE_C(0x002C6A)},
+ {RUNE_C(0x002C6C), RUNE_C(0x002C6C)},
+ {RUNE_C(0x002C71), RUNE_C(0x002C71)},
+ {RUNE_C(0x002C73), RUNE_C(0x002C74)},
+ {RUNE_C(0x002C76), RUNE_C(0x002C7D)},
+ {RUNE_C(0x002C81), RUNE_C(0x002C81)},
+ {RUNE_C(0x002C83), RUNE_C(0x002C83)},
+ {RUNE_C(0x002C85), RUNE_C(0x002C85)},
+ {RUNE_C(0x002C87), RUNE_C(0x002C87)},
+ {RUNE_C(0x002C89), RUNE_C(0x002C89)},
+ {RUNE_C(0x002C8B), RUNE_C(0x002C8B)},
+ {RUNE_C(0x002C8D), RUNE_C(0x002C8D)},
+ {RUNE_C(0x002C8F), RUNE_C(0x002C8F)},
+ {RUNE_C(0x002C91), RUNE_C(0x002C91)},
+ {RUNE_C(0x002C93), RUNE_C(0x002C93)},
+ {RUNE_C(0x002C95), RUNE_C(0x002C95)},
+ {RUNE_C(0x002C97), RUNE_C(0x002C97)},
+ {RUNE_C(0x002C99), RUNE_C(0x002C99)},
+ {RUNE_C(0x002C9B), RUNE_C(0x002C9B)},
+ {RUNE_C(0x002C9D), RUNE_C(0x002C9D)},
+ {RUNE_C(0x002C9F), RUNE_C(0x002C9F)},
+ {RUNE_C(0x002CA1), RUNE_C(0x002CA1)},
+ {RUNE_C(0x002CA3), RUNE_C(0x002CA3)},
+ {RUNE_C(0x002CA5), RUNE_C(0x002CA5)},
+ {RUNE_C(0x002CA7), RUNE_C(0x002CA7)},
+ {RUNE_C(0x002CA9), RUNE_C(0x002CA9)},
+ {RUNE_C(0x002CAB), RUNE_C(0x002CAB)},
+ {RUNE_C(0x002CAD), RUNE_C(0x002CAD)},
+ {RUNE_C(0x002CAF), RUNE_C(0x002CAF)},
+ {RUNE_C(0x002CB1), RUNE_C(0x002CB1)},
+ {RUNE_C(0x002CB3), RUNE_C(0x002CB3)},
+ {RUNE_C(0x002CB5), RUNE_C(0x002CB5)},
+ {RUNE_C(0x002CB7), RUNE_C(0x002CB7)},
+ {RUNE_C(0x002CB9), RUNE_C(0x002CB9)},
+ {RUNE_C(0x002CBB), RUNE_C(0x002CBB)},
+ {RUNE_C(0x002CBD), RUNE_C(0x002CBD)},
+ {RUNE_C(0x002CBF), RUNE_C(0x002CBF)},
+ {RUNE_C(0x002CC1), RUNE_C(0x002CC1)},
+ {RUNE_C(0x002CC3), RUNE_C(0x002CC3)},
+ {RUNE_C(0x002CC5), RUNE_C(0x002CC5)},
+ {RUNE_C(0x002CC7), RUNE_C(0x002CC7)},
+ {RUNE_C(0x002CC9), RUNE_C(0x002CC9)},
+ {RUNE_C(0x002CCB), RUNE_C(0x002CCB)},
+ {RUNE_C(0x002CCD), RUNE_C(0x002CCD)},
+ {RUNE_C(0x002CCF), RUNE_C(0x002CCF)},
+ {RUNE_C(0x002CD1), RUNE_C(0x002CD1)},
+ {RUNE_C(0x002CD3), RUNE_C(0x002CD3)},
+ {RUNE_C(0x002CD5), RUNE_C(0x002CD5)},
+ {RUNE_C(0x002CD7), RUNE_C(0x002CD7)},
+ {RUNE_C(0x002CD9), RUNE_C(0x002CD9)},
+ {RUNE_C(0x002CDB), RUNE_C(0x002CDB)},
+ {RUNE_C(0x002CDD), RUNE_C(0x002CDD)},
+ {RUNE_C(0x002CDF), RUNE_C(0x002CDF)},
+ {RUNE_C(0x002CE1), RUNE_C(0x002CE1)},
+ {RUNE_C(0x002CE3), RUNE_C(0x002CE4)},
+ {RUNE_C(0x002CEC), RUNE_C(0x002CEC)},
+ {RUNE_C(0x002CEE), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF3), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x00A641), RUNE_C(0x00A641)},
+ {RUNE_C(0x00A643), RUNE_C(0x00A643)},
+ {RUNE_C(0x00A645), RUNE_C(0x00A645)},
+ {RUNE_C(0x00A647), RUNE_C(0x00A647)},
+ {RUNE_C(0x00A649), RUNE_C(0x00A649)},
+ {RUNE_C(0x00A64B), RUNE_C(0x00A64B)},
+ {RUNE_C(0x00A64D), RUNE_C(0x00A64D)},
+ {RUNE_C(0x00A64F), RUNE_C(0x00A64F)},
+ {RUNE_C(0x00A651), RUNE_C(0x00A651)},
+ {RUNE_C(0x00A653), RUNE_C(0x00A653)},
+ {RUNE_C(0x00A655), RUNE_C(0x00A655)},
+ {RUNE_C(0x00A657), RUNE_C(0x00A657)},
+ {RUNE_C(0x00A659), RUNE_C(0x00A659)},
+ {RUNE_C(0x00A65B), RUNE_C(0x00A65B)},
+ {RUNE_C(0x00A65D), RUNE_C(0x00A65D)},
+ {RUNE_C(0x00A65F), RUNE_C(0x00A65F)},
+ {RUNE_C(0x00A661), RUNE_C(0x00A661)},
+ {RUNE_C(0x00A663), RUNE_C(0x00A663)},
+ {RUNE_C(0x00A665), RUNE_C(0x00A665)},
+ {RUNE_C(0x00A667), RUNE_C(0x00A667)},
+ {RUNE_C(0x00A669), RUNE_C(0x00A669)},
+ {RUNE_C(0x00A66B), RUNE_C(0x00A66B)},
+ {RUNE_C(0x00A66D), RUNE_C(0x00A66D)},
+ {RUNE_C(0x00A681), RUNE_C(0x00A681)},
+ {RUNE_C(0x00A683), RUNE_C(0x00A683)},
+ {RUNE_C(0x00A685), RUNE_C(0x00A685)},
+ {RUNE_C(0x00A687), RUNE_C(0x00A687)},
+ {RUNE_C(0x00A689), RUNE_C(0x00A689)},
+ {RUNE_C(0x00A68B), RUNE_C(0x00A68B)},
+ {RUNE_C(0x00A68D), RUNE_C(0x00A68D)},
+ {RUNE_C(0x00A68F), RUNE_C(0x00A68F)},
+ {RUNE_C(0x00A691), RUNE_C(0x00A691)},
+ {RUNE_C(0x00A693), RUNE_C(0x00A693)},
+ {RUNE_C(0x00A695), RUNE_C(0x00A695)},
+ {RUNE_C(0x00A697), RUNE_C(0x00A697)},
+ {RUNE_C(0x00A699), RUNE_C(0x00A699)},
+ {RUNE_C(0x00A69B), RUNE_C(0x00A69D)},
+ {RUNE_C(0x00A723), RUNE_C(0x00A723)},
+ {RUNE_C(0x00A725), RUNE_C(0x00A725)},
+ {RUNE_C(0x00A727), RUNE_C(0x00A727)},
+ {RUNE_C(0x00A729), RUNE_C(0x00A729)},
+ {RUNE_C(0x00A72B), RUNE_C(0x00A72B)},
+ {RUNE_C(0x00A72D), RUNE_C(0x00A72D)},
+ {RUNE_C(0x00A72F), RUNE_C(0x00A731)},
+ {RUNE_C(0x00A733), RUNE_C(0x00A733)},
+ {RUNE_C(0x00A735), RUNE_C(0x00A735)},
+ {RUNE_C(0x00A737), RUNE_C(0x00A737)},
+ {RUNE_C(0x00A739), RUNE_C(0x00A739)},
+ {RUNE_C(0x00A73B), RUNE_C(0x00A73B)},
+ {RUNE_C(0x00A73D), RUNE_C(0x00A73D)},
+ {RUNE_C(0x00A73F), RUNE_C(0x00A73F)},
+ {RUNE_C(0x00A741), RUNE_C(0x00A741)},
+ {RUNE_C(0x00A743), RUNE_C(0x00A743)},
+ {RUNE_C(0x00A745), RUNE_C(0x00A745)},
+ {RUNE_C(0x00A747), RUNE_C(0x00A747)},
+ {RUNE_C(0x00A749), RUNE_C(0x00A749)},
+ {RUNE_C(0x00A74B), RUNE_C(0x00A74B)},
+ {RUNE_C(0x00A74D), RUNE_C(0x00A74D)},
+ {RUNE_C(0x00A74F), RUNE_C(0x00A74F)},
+ {RUNE_C(0x00A751), RUNE_C(0x00A751)},
+ {RUNE_C(0x00A753), RUNE_C(0x00A753)},
+ {RUNE_C(0x00A755), RUNE_C(0x00A755)},
+ {RUNE_C(0x00A757), RUNE_C(0x00A757)},
+ {RUNE_C(0x00A759), RUNE_C(0x00A759)},
+ {RUNE_C(0x00A75B), RUNE_C(0x00A75B)},
+ {RUNE_C(0x00A75D), RUNE_C(0x00A75D)},
+ {RUNE_C(0x00A75F), RUNE_C(0x00A75F)},
+ {RUNE_C(0x00A761), RUNE_C(0x00A761)},
+ {RUNE_C(0x00A763), RUNE_C(0x00A763)},
+ {RUNE_C(0x00A765), RUNE_C(0x00A765)},
+ {RUNE_C(0x00A767), RUNE_C(0x00A767)},
+ {RUNE_C(0x00A769), RUNE_C(0x00A769)},
+ {RUNE_C(0x00A76B), RUNE_C(0x00A76B)},
+ {RUNE_C(0x00A76D), RUNE_C(0x00A76D)},
+ {RUNE_C(0x00A76F), RUNE_C(0x00A778)},
+ {RUNE_C(0x00A77A), RUNE_C(0x00A77A)},
+ {RUNE_C(0x00A77C), RUNE_C(0x00A77C)},
+ {RUNE_C(0x00A77F), RUNE_C(0x00A77F)},
+ {RUNE_C(0x00A781), RUNE_C(0x00A781)},
+ {RUNE_C(0x00A783), RUNE_C(0x00A783)},
+ {RUNE_C(0x00A785), RUNE_C(0x00A785)},
+ {RUNE_C(0x00A787), RUNE_C(0x00A787)},
+ {RUNE_C(0x00A78C), RUNE_C(0x00A78C)},
+ {RUNE_C(0x00A78E), RUNE_C(0x00A78E)},
+ {RUNE_C(0x00A791), RUNE_C(0x00A791)},
+ {RUNE_C(0x00A793), RUNE_C(0x00A795)},
+ {RUNE_C(0x00A797), RUNE_C(0x00A797)},
+ {RUNE_C(0x00A799), RUNE_C(0x00A799)},
+ {RUNE_C(0x00A79B), RUNE_C(0x00A79B)},
+ {RUNE_C(0x00A79D), RUNE_C(0x00A79D)},
+ {RUNE_C(0x00A79F), RUNE_C(0x00A79F)},
+ {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)},
+ {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)},
+ {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)},
+ {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)},
+ {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)},
+ {RUNE_C(0x00A7AF), RUNE_C(0x00A7AF)},
+ {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)},
+ {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)},
+ {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)},
+ {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)},
+ {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)},
+ {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)},
+ {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)},
+ {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)},
+ {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)},
+ {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D5)},
+ {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)},
+ {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)},
+ {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)},
+ {RUNE_C(0x00A7F8), RUNE_C(0x00A7FA)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x010428), RUNE_C(0x01044F)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010780), RUNE_C(0x010780)},
+ {RUNE_C(0x010783), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x0118C0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x016E60), RUNE_C(0x016E7F)},
+ {RUNE_C(0x01D41A), RUNE_C(0x01D433)},
+ {RUNE_C(0x01D44E), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D467)},
+ {RUNE_C(0x01D482), RUNE_C(0x01D49B)},
+ {RUNE_C(0x01D4B6), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D4CF)},
+ {RUNE_C(0x01D4EA), RUNE_C(0x01D503)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D537)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D56B)},
+ {RUNE_C(0x01D586), RUNE_C(0x01D59F)},
+ {RUNE_C(0x01D5BA), RUNE_C(0x01D5D3)},
+ {RUNE_C(0x01D5EE), RUNE_C(0x01D607)},
+ {RUNE_C(0x01D622), RUNE_C(0x01D63B)},
+ {RUNE_C(0x01D656), RUNE_C(0x01D66F)},
+ {RUNE_C(0x01D68A), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)},
+ {RUNE_C(0x01D6DC), RUNE_C(0x01D6E1)},
+ {RUNE_C(0x01D6FC), RUNE_C(0x01D714)},
+ {RUNE_C(0x01D716), RUNE_C(0x01D71B)},
+ {RUNE_C(0x01D736), RUNE_C(0x01D74E)},
+ {RUNE_C(0x01D750), RUNE_C(0x01D755)},
+ {RUNE_C(0x01D770), RUNE_C(0x01D788)},
+ {RUNE_C(0x01D78A), RUNE_C(0x01D78F)},
+ {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)},
+ {RUNE_C(0x01D7C4), RUNE_C(0x01D7C9)},
+ {RUNE_C(0x01D7CB), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF09)},
+ {RUNE_C(0x01DF0B), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E922), RUNE_C(0x01E943)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_lower(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_math.c b/lib/unicode/prop/uprop_is_math.c
new file mode 100644
index 0000000..d53d487
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_math.c
@@ -0,0 +1,157 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x70,
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x50,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0x00,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x0003D0), RUNE_C(0x0003D2)},
+ {RUNE_C(0x0003D5), RUNE_C(0x0003D5)},
+ {RUNE_C(0x0003F0), RUNE_C(0x0003F1)},
+ {RUNE_C(0x0003F4), RUNE_C(0x0003F6)},
+ {RUNE_C(0x000606), RUNE_C(0x000608)},
+ {RUNE_C(0x002016), RUNE_C(0x002016)},
+ {RUNE_C(0x002032), RUNE_C(0x002034)},
+ {RUNE_C(0x002040), RUNE_C(0x002040)},
+ {RUNE_C(0x002044), RUNE_C(0x002044)},
+ {RUNE_C(0x002052), RUNE_C(0x002052)},
+ {RUNE_C(0x002061), RUNE_C(0x002064)},
+ {RUNE_C(0x00207A), RUNE_C(0x00207E)},
+ {RUNE_C(0x00208A), RUNE_C(0x00208E)},
+ {RUNE_C(0x0020D0), RUNE_C(0x0020DC)},
+ {RUNE_C(0x0020E1), RUNE_C(0x0020E1)},
+ {RUNE_C(0x0020E5), RUNE_C(0x0020E6)},
+ {RUNE_C(0x0020EB), RUNE_C(0x0020EF)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210A), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002118), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002128), RUNE_C(0x002129)},
+ {RUNE_C(0x00212C), RUNE_C(0x00212D)},
+ {RUNE_C(0x00212F), RUNE_C(0x002131)},
+ {RUNE_C(0x002133), RUNE_C(0x002138)},
+ {RUNE_C(0x00213C), RUNE_C(0x002149)},
+ {RUNE_C(0x00214B), RUNE_C(0x00214B)},
+ {RUNE_C(0x002190), RUNE_C(0x0021A7)},
+ {RUNE_C(0x0021A9), RUNE_C(0x0021AE)},
+ {RUNE_C(0x0021B0), RUNE_C(0x0021B1)},
+ {RUNE_C(0x0021B6), RUNE_C(0x0021B7)},
+ {RUNE_C(0x0021BC), RUNE_C(0x0021DB)},
+ {RUNE_C(0x0021DD), RUNE_C(0x0021DD)},
+ {RUNE_C(0x0021E4), RUNE_C(0x0021E5)},
+ {RUNE_C(0x0021F4), RUNE_C(0x0022FF)},
+ {RUNE_C(0x002308), RUNE_C(0x00230B)},
+ {RUNE_C(0x002320), RUNE_C(0x002321)},
+ {RUNE_C(0x00237C), RUNE_C(0x00237C)},
+ {RUNE_C(0x00239B), RUNE_C(0x0023B5)},
+ {RUNE_C(0x0023B7), RUNE_C(0x0023B7)},
+ {RUNE_C(0x0023D0), RUNE_C(0x0023D0)},
+ {RUNE_C(0x0023DC), RUNE_C(0x0023E2)},
+ {RUNE_C(0x0025A0), RUNE_C(0x0025A1)},
+ {RUNE_C(0x0025AE), RUNE_C(0x0025B7)},
+ {RUNE_C(0x0025BC), RUNE_C(0x0025C1)},
+ {RUNE_C(0x0025C6), RUNE_C(0x0025C7)},
+ {RUNE_C(0x0025CA), RUNE_C(0x0025CB)},
+ {RUNE_C(0x0025CF), RUNE_C(0x0025D3)},
+ {RUNE_C(0x0025E2), RUNE_C(0x0025E2)},
+ {RUNE_C(0x0025E4), RUNE_C(0x0025E4)},
+ {RUNE_C(0x0025E7), RUNE_C(0x0025EC)},
+ {RUNE_C(0x0025F8), RUNE_C(0x0025FF)},
+ {RUNE_C(0x002605), RUNE_C(0x002606)},
+ {RUNE_C(0x002640), RUNE_C(0x002640)},
+ {RUNE_C(0x002642), RUNE_C(0x002642)},
+ {RUNE_C(0x002660), RUNE_C(0x002663)},
+ {RUNE_C(0x00266D), RUNE_C(0x00266F)},
+ {RUNE_C(0x0027C0), RUNE_C(0x0027FF)},
+ {RUNE_C(0x002900), RUNE_C(0x002AFF)},
+ {RUNE_C(0x002B30), RUNE_C(0x002B44)},
+ {RUNE_C(0x002B47), RUNE_C(0x002B4C)},
+ {RUNE_C(0x00FB29), RUNE_C(0x00FB29)},
+ {RUNE_C(0x00FE61), RUNE_C(0x00FE66)},
+ {RUNE_C(0x00FE68), RUNE_C(0x00FE68)},
+ {RUNE_C(0x00FF0B), RUNE_C(0x00FF0B)},
+ {RUNE_C(0x00FF1C), RUNE_C(0x00FF1E)},
+ {RUNE_C(0x00FF3C), RUNE_C(0x00FF3C)},
+ {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)},
+ {RUNE_C(0x00FF5C), RUNE_C(0x00FF5C)},
+ {RUNE_C(0x00FF5E), RUNE_C(0x00FF5E)},
+ {RUNE_C(0x00FFE2), RUNE_C(0x00FFE2)},
+ {RUNE_C(0x00FFE9), RUNE_C(0x00FFEC)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_math(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_pat_syn.c b/lib/unicode/prop/uprop_is_pat_syn.c
new file mode 100644
index 0000000..cab14e8
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_pat_syn.c
@@ -0,0 +1,41 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0xFC,
+ 0x01, 0x00, 0x00, 0x78, 0x01, 0x00, 0x00, 0x78,
+ 0x00, 0x00, 0x00, 0x00, 0xFE, 0x5A, 0x43, 0x88,
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x002010), RUNE_C(0x002027)},
+ {RUNE_C(0x002030), RUNE_C(0x00203E)},
+ {RUNE_C(0x002041), RUNE_C(0x002053)},
+ {RUNE_C(0x002055), RUNE_C(0x00205E)},
+ {RUNE_C(0x002190), RUNE_C(0x00245F)},
+ {RUNE_C(0x002500), RUNE_C(0x002775)},
+ {RUNE_C(0x002794), RUNE_C(0x002BFF)},
+ {RUNE_C(0x002E00), RUNE_C(0x002E7F)},
+ {RUNE_C(0x003001), RUNE_C(0x003003)},
+ {RUNE_C(0x003008), RUNE_C(0x003020)},
+ {RUNE_C(0x003030), RUNE_C(0x003030)},
+ {RUNE_C(0x00FD3E), RUNE_C(0x00FD3F)},
+ {RUNE_C(0x00FE45), RUNE_C(0x00FE46)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_pat_syn(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_pcm.c b/lib/unicode/prop/uprop_is_pcm.c
new file mode 100644
index 0000000..eb28cbb
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_pcm.c
@@ -0,0 +1,28 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000600), RUNE_C(0x000605)},
+ {RUNE_C(0x0006DD), RUNE_C(0x0006DD)},
+ {RUNE_C(0x00070F), RUNE_C(0x00070F)},
+ {RUNE_C(0x000890), RUNE_C(0x000891)},
+ {RUNE_C(0x0008E2), RUNE_C(0x0008E2)},
+ {RUNE_C(0x0110BD), RUNE_C(0x0110BD)},
+ {RUNE_C(0x0110CD), RUNE_C(0x0110CD)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_pcm(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_qmark.c b/lib/unicode/prop/uprop_is_qmark.c
new file mode 100644
index 0000000..44925e5
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_qmark.c
@@ -0,0 +1,37 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x002018), RUNE_C(0x00201F)},
+ {RUNE_C(0x002039), RUNE_C(0x00203A)},
+ {RUNE_C(0x002E42), RUNE_C(0x002E42)},
+ {RUNE_C(0x00300C), RUNE_C(0x00300F)},
+ {RUNE_C(0x00301D), RUNE_C(0x00301F)},
+ {RUNE_C(0x00FE41), RUNE_C(0x00FE44)},
+ {RUNE_C(0x00FF02), RUNE_C(0x00FF02)},
+ {RUNE_C(0x00FF07), RUNE_C(0x00FF07)},
+ {RUNE_C(0x00FF62), RUNE_C(0x00FF63)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_qmark(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_radical.c b/lib/unicode/prop/uprop_is_radical.c
new file mode 100644
index 0000000..ff4a376
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_radical.c
@@ -0,0 +1,24 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x002E80), RUNE_C(0x002E99)},
+ {RUNE_C(0x002E9B), RUNE_C(0x002EF3)},
+ {RUNE_C(0x002F00), RUNE_C(0x002FD5)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_radical(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_sd.c b/lib/unicode/prop/uprop_is_sd.c
new file mode 100644
index 0000000..e547820
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_sd.c
@@ -0,0 +1,61 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00012F), RUNE_C(0x00012F)},
+ {RUNE_C(0x000249), RUNE_C(0x000249)},
+ {RUNE_C(0x000268), RUNE_C(0x000268)},
+ {RUNE_C(0x00029D), RUNE_C(0x00029D)},
+ {RUNE_C(0x0002B2), RUNE_C(0x0002B2)},
+ {RUNE_C(0x0003F3), RUNE_C(0x0003F3)},
+ {RUNE_C(0x000456), RUNE_C(0x000456)},
+ {RUNE_C(0x000458), RUNE_C(0x000458)},
+ {RUNE_C(0x001D62), RUNE_C(0x001D62)},
+ {RUNE_C(0x001D96), RUNE_C(0x001D96)},
+ {RUNE_C(0x001DA4), RUNE_C(0x001DA4)},
+ {RUNE_C(0x001DA8), RUNE_C(0x001DA8)},
+ {RUNE_C(0x001E2D), RUNE_C(0x001E2D)},
+ {RUNE_C(0x001ECB), RUNE_C(0x001ECB)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x002148), RUNE_C(0x002149)},
+ {RUNE_C(0x002C7C), RUNE_C(0x002C7C)},
+ {RUNE_C(0x01D422), RUNE_C(0x01D423)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D457)},
+ {RUNE_C(0x01D48A), RUNE_C(0x01D48B)},
+ {RUNE_C(0x01D4BE), RUNE_C(0x01D4BF)},
+ {RUNE_C(0x01D4F2), RUNE_C(0x01D4F3)},
+ {RUNE_C(0x01D526), RUNE_C(0x01D527)},
+ {RUNE_C(0x01D55A), RUNE_C(0x01D55B)},
+ {RUNE_C(0x01D58E), RUNE_C(0x01D58F)},
+ {RUNE_C(0x01D5C2), RUNE_C(0x01D5C3)},
+ {RUNE_C(0x01D5F6), RUNE_C(0x01D5F7)},
+ {RUNE_C(0x01D62A), RUNE_C(0x01D62B)},
+ {RUNE_C(0x01D65E), RUNE_C(0x01D65F)},
+ {RUNE_C(0x01D692), RUNE_C(0x01D693)},
+ {RUNE_C(0x01DF1A), RUNE_C(0x01DF1A)},
+ {RUNE_C(0x01E04C), RUNE_C(0x01E04D)},
+ {RUNE_C(0x01E068), RUNE_C(0x01E068)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_sd(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_sterm.c b/lib/unicode/prop/uprop_is_sterm.c
new file mode 100644
index 0000000..a375061
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_sterm.c
@@ -0,0 +1,106 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x00, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000589), RUNE_C(0x000589)},
+ {RUNE_C(0x00061D), RUNE_C(0x00061F)},
+ {RUNE_C(0x0006D4), RUNE_C(0x0006D4)},
+ {RUNE_C(0x000700), RUNE_C(0x000702)},
+ {RUNE_C(0x0007F9), RUNE_C(0x0007F9)},
+ {RUNE_C(0x000837), RUNE_C(0x000837)},
+ {RUNE_C(0x000839), RUNE_C(0x000839)},
+ {RUNE_C(0x00083D), RUNE_C(0x00083E)},
+ {RUNE_C(0x000964), RUNE_C(0x000965)},
+ {RUNE_C(0x00104A), RUNE_C(0x00104B)},
+ {RUNE_C(0x001362), RUNE_C(0x001362)},
+ {RUNE_C(0x001367), RUNE_C(0x001368)},
+ {RUNE_C(0x00166E), RUNE_C(0x00166E)},
+ {RUNE_C(0x001735), RUNE_C(0x001736)},
+ {RUNE_C(0x0017D4), RUNE_C(0x0017D5)},
+ {RUNE_C(0x001803), RUNE_C(0x001803)},
+ {RUNE_C(0x001809), RUNE_C(0x001809)},
+ {RUNE_C(0x001944), RUNE_C(0x001945)},
+ {RUNE_C(0x001AA8), RUNE_C(0x001AAB)},
+ {RUNE_C(0x001B5A), RUNE_C(0x001B5B)},
+ {RUNE_C(0x001B5E), RUNE_C(0x001B5F)},
+ {RUNE_C(0x001B7D), RUNE_C(0x001B7E)},
+ {RUNE_C(0x001C3B), RUNE_C(0x001C3C)},
+ {RUNE_C(0x001C7E), RUNE_C(0x001C7F)},
+ {RUNE_C(0x00203C), RUNE_C(0x00203D)},
+ {RUNE_C(0x002047), RUNE_C(0x002049)},
+ {RUNE_C(0x002E2E), RUNE_C(0x002E2E)},
+ {RUNE_C(0x002E3C), RUNE_C(0x002E3C)},
+ {RUNE_C(0x002E53), RUNE_C(0x002E54)},
+ {RUNE_C(0x003002), RUNE_C(0x003002)},
+ {RUNE_C(0x00A4FF), RUNE_C(0x00A4FF)},
+ {RUNE_C(0x00A60E), RUNE_C(0x00A60F)},
+ {RUNE_C(0x00A6F3), RUNE_C(0x00A6F3)},
+ {RUNE_C(0x00A6F7), RUNE_C(0x00A6F7)},
+ {RUNE_C(0x00A876), RUNE_C(0x00A877)},
+ {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)},
+ {RUNE_C(0x00A92F), RUNE_C(0x00A92F)},
+ {RUNE_C(0x00A9C8), RUNE_C(0x00A9C9)},
+ {RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)},
+ {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)},
+ {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)},
+ {RUNE_C(0x00FE52), RUNE_C(0x00FE52)},
+ {RUNE_C(0x00FE56), RUNE_C(0x00FE57)},
+ {RUNE_C(0x00FF01), RUNE_C(0x00FF01)},
+ {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)},
+ {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)},
+ {RUNE_C(0x00FF61), RUNE_C(0x00FF61)},
+ {RUNE_C(0x010A56), RUNE_C(0x010A57)},
+ {RUNE_C(0x010F55), RUNE_C(0x010F59)},
+ {RUNE_C(0x010F86), RUNE_C(0x010F89)},
+ {RUNE_C(0x011047), RUNE_C(0x011048)},
+ {RUNE_C(0x0110BE), RUNE_C(0x0110C1)},
+ {RUNE_C(0x011141), RUNE_C(0x011143)},
+ {RUNE_C(0x0111C5), RUNE_C(0x0111C6)},
+ {RUNE_C(0x0111CD), RUNE_C(0x0111CD)},
+ {RUNE_C(0x0111DE), RUNE_C(0x0111DF)},
+ {RUNE_C(0x011238), RUNE_C(0x011239)},
+ {RUNE_C(0x01123B), RUNE_C(0x01123C)},
+ {RUNE_C(0x0112A9), RUNE_C(0x0112A9)},
+ {RUNE_C(0x01144B), RUNE_C(0x01144C)},
+ {RUNE_C(0x0115C2), RUNE_C(0x0115C3)},
+ {RUNE_C(0x0115C9), RUNE_C(0x0115D7)},
+ {RUNE_C(0x011641), RUNE_C(0x011642)},
+ {RUNE_C(0x01173C), RUNE_C(0x01173E)},
+ {RUNE_C(0x011944), RUNE_C(0x011944)},
+ {RUNE_C(0x011946), RUNE_C(0x011946)},
+ {RUNE_C(0x011A42), RUNE_C(0x011A43)},
+ {RUNE_C(0x011A9B), RUNE_C(0x011A9C)},
+ {RUNE_C(0x011C41), RUNE_C(0x011C42)},
+ {RUNE_C(0x011EF7), RUNE_C(0x011EF8)},
+ {RUNE_C(0x011F43), RUNE_C(0x011F44)},
+ {RUNE_C(0x016A6E), RUNE_C(0x016A6F)},
+ {RUNE_C(0x016AF5), RUNE_C(0x016AF5)},
+ {RUNE_C(0x016B37), RUNE_C(0x016B38)},
+ {RUNE_C(0x016B44), RUNE_C(0x016B44)},
+ {RUNE_C(0x016E98), RUNE_C(0x016E98)},
+ {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)},
+ {RUNE_C(0x01DA88), RUNE_C(0x01DA88)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_sterm(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_term.c b/lib/unicode/prop/uprop_is_term.c
new file mode 100644
index 0000000..4789e1a
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_term.c
@@ -0,0 +1,131 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x50, 0x00, 0x8C,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00037E), RUNE_C(0x00037E)},
+ {RUNE_C(0x000387), RUNE_C(0x000387)},
+ {RUNE_C(0x000589), RUNE_C(0x000589)},
+ {RUNE_C(0x0005C3), RUNE_C(0x0005C3)},
+ {RUNE_C(0x00060C), RUNE_C(0x00060C)},
+ {RUNE_C(0x00061B), RUNE_C(0x00061B)},
+ {RUNE_C(0x00061D), RUNE_C(0x00061F)},
+ {RUNE_C(0x0006D4), RUNE_C(0x0006D4)},
+ {RUNE_C(0x000700), RUNE_C(0x00070A)},
+ {RUNE_C(0x00070C), RUNE_C(0x00070C)},
+ {RUNE_C(0x0007F8), RUNE_C(0x0007F9)},
+ {RUNE_C(0x000830), RUNE_C(0x00083E)},
+ {RUNE_C(0x00085E), RUNE_C(0x00085E)},
+ {RUNE_C(0x000964), RUNE_C(0x000965)},
+ {RUNE_C(0x000E5A), RUNE_C(0x000E5B)},
+ {RUNE_C(0x000F08), RUNE_C(0x000F08)},
+ {RUNE_C(0x000F0D), RUNE_C(0x000F12)},
+ {RUNE_C(0x00104A), RUNE_C(0x00104B)},
+ {RUNE_C(0x001361), RUNE_C(0x001368)},
+ {RUNE_C(0x00166E), RUNE_C(0x00166E)},
+ {RUNE_C(0x0016EB), RUNE_C(0x0016ED)},
+ {RUNE_C(0x001735), RUNE_C(0x001736)},
+ {RUNE_C(0x0017D4), RUNE_C(0x0017D6)},
+ {RUNE_C(0x0017DA), RUNE_C(0x0017DA)},
+ {RUNE_C(0x001802), RUNE_C(0x001805)},
+ {RUNE_C(0x001808), RUNE_C(0x001809)},
+ {RUNE_C(0x001944), RUNE_C(0x001945)},
+ {RUNE_C(0x001AA8), RUNE_C(0x001AAB)},
+ {RUNE_C(0x001B5A), RUNE_C(0x001B5B)},
+ {RUNE_C(0x001B5D), RUNE_C(0x001B5F)},
+ {RUNE_C(0x001B7D), RUNE_C(0x001B7E)},
+ {RUNE_C(0x001C3B), RUNE_C(0x001C3F)},
+ {RUNE_C(0x001C7E), RUNE_C(0x001C7F)},
+ {RUNE_C(0x00203C), RUNE_C(0x00203D)},
+ {RUNE_C(0x002047), RUNE_C(0x002049)},
+ {RUNE_C(0x002E2E), RUNE_C(0x002E2E)},
+ {RUNE_C(0x002E3C), RUNE_C(0x002E3C)},
+ {RUNE_C(0x002E41), RUNE_C(0x002E41)},
+ {RUNE_C(0x002E4C), RUNE_C(0x002E4C)},
+ {RUNE_C(0x002E4E), RUNE_C(0x002E4F)},
+ {RUNE_C(0x002E53), RUNE_C(0x002E54)},
+ {RUNE_C(0x003001), RUNE_C(0x003002)},
+ {RUNE_C(0x00A4FE), RUNE_C(0x00A4FF)},
+ {RUNE_C(0x00A60D), RUNE_C(0x00A60F)},
+ {RUNE_C(0x00A6F3), RUNE_C(0x00A6F7)},
+ {RUNE_C(0x00A876), RUNE_C(0x00A877)},
+ {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)},
+ {RUNE_C(0x00A92F), RUNE_C(0x00A92F)},
+ {RUNE_C(0x00A9C7), RUNE_C(0x00A9C9)},
+ {RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)},
+ {RUNE_C(0x00AADF), RUNE_C(0x00AADF)},
+ {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)},
+ {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)},
+ {RUNE_C(0x00FE50), RUNE_C(0x00FE52)},
+ {RUNE_C(0x00FE54), RUNE_C(0x00FE57)},
+ {RUNE_C(0x00FF01), RUNE_C(0x00FF01)},
+ {RUNE_C(0x00FF0C), RUNE_C(0x00FF0C)},
+ {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)},
+ {RUNE_C(0x00FF1A), RUNE_C(0x00FF1B)},
+ {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)},
+ {RUNE_C(0x00FF61), RUNE_C(0x00FF61)},
+ {RUNE_C(0x00FF64), RUNE_C(0x00FF64)},
+ {RUNE_C(0x01039F), RUNE_C(0x01039F)},
+ {RUNE_C(0x0103D0), RUNE_C(0x0103D0)},
+ {RUNE_C(0x010857), RUNE_C(0x010857)},
+ {RUNE_C(0x01091F), RUNE_C(0x01091F)},
+ {RUNE_C(0x010A56), RUNE_C(0x010A57)},
+ {RUNE_C(0x010AF0), RUNE_C(0x010AF5)},
+ {RUNE_C(0x010B3A), RUNE_C(0x010B3F)},
+ {RUNE_C(0x010B99), RUNE_C(0x010B9C)},
+ {RUNE_C(0x010F55), RUNE_C(0x010F59)},
+ {RUNE_C(0x010F86), RUNE_C(0x010F89)},
+ {RUNE_C(0x011047), RUNE_C(0x01104D)},
+ {RUNE_C(0x0110BE), RUNE_C(0x0110C1)},
+ {RUNE_C(0x011141), RUNE_C(0x011143)},
+ {RUNE_C(0x0111C5), RUNE_C(0x0111C6)},
+ {RUNE_C(0x0111CD), RUNE_C(0x0111CD)},
+ {RUNE_C(0x0111DE), RUNE_C(0x0111DF)},
+ {RUNE_C(0x011238), RUNE_C(0x01123C)},
+ {RUNE_C(0x0112A9), RUNE_C(0x0112A9)},
+ {RUNE_C(0x01144B), RUNE_C(0x01144D)},
+ {RUNE_C(0x01145A), RUNE_C(0x01145B)},
+ {RUNE_C(0x0115C2), RUNE_C(0x0115C5)},
+ {RUNE_C(0x0115C9), RUNE_C(0x0115D7)},
+ {RUNE_C(0x011641), RUNE_C(0x011642)},
+ {RUNE_C(0x01173C), RUNE_C(0x01173E)},
+ {RUNE_C(0x011944), RUNE_C(0x011944)},
+ {RUNE_C(0x011946), RUNE_C(0x011946)},
+ {RUNE_C(0x011A42), RUNE_C(0x011A43)},
+ {RUNE_C(0x011A9B), RUNE_C(0x011A9C)},
+ {RUNE_C(0x011AA1), RUNE_C(0x011AA2)},
+ {RUNE_C(0x011C41), RUNE_C(0x011C43)},
+ {RUNE_C(0x011C71), RUNE_C(0x011C71)},
+ {RUNE_C(0x011EF7), RUNE_C(0x011EF8)},
+ {RUNE_C(0x011F43), RUNE_C(0x011F44)},
+ {RUNE_C(0x012470), RUNE_C(0x012474)},
+ {RUNE_C(0x016A6E), RUNE_C(0x016A6F)},
+ {RUNE_C(0x016AF5), RUNE_C(0x016AF5)},
+ {RUNE_C(0x016B37), RUNE_C(0x016B39)},
+ {RUNE_C(0x016B44), RUNE_C(0x016B44)},
+ {RUNE_C(0x016E97), RUNE_C(0x016E98)},
+ {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)},
+ {RUNE_C(0x01DA87), RUNE_C(0x01DA8A)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_term(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_uideo.c b/lib/unicode/prop/uprop_is_uideo.c
new file mode 100644
index 0000000..d90cfea
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_uideo.c
@@ -0,0 +1,38 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x003400), RUNE_C(0x004DBF)},
+ {RUNE_C(0x004E00), RUNE_C(0x009FFF)},
+ {RUNE_C(0x00FA0E), RUNE_C(0x00FA0F)},
+ {RUNE_C(0x00FA11), RUNE_C(0x00FA11)},
+ {RUNE_C(0x00FA13), RUNE_C(0x00FA14)},
+ {RUNE_C(0x00FA1F), RUNE_C(0x00FA1F)},
+ {RUNE_C(0x00FA21), RUNE_C(0x00FA21)},
+ {RUNE_C(0x00FA23), RUNE_C(0x00FA24)},
+ {RUNE_C(0x00FA27), RUNE_C(0x00FA29)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_uideo(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_upper.c b/lib/unicode/prop/uprop_is_upper.c
new file mode 100644
index 0000000..a5ceee0
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_upper.c
@@ -0,0 +1,676 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x000100)},
+ {RUNE_C(0x000102), RUNE_C(0x000102)},
+ {RUNE_C(0x000104), RUNE_C(0x000104)},
+ {RUNE_C(0x000106), RUNE_C(0x000106)},
+ {RUNE_C(0x000108), RUNE_C(0x000108)},
+ {RUNE_C(0x00010A), RUNE_C(0x00010A)},
+ {RUNE_C(0x00010C), RUNE_C(0x00010C)},
+ {RUNE_C(0x00010E), RUNE_C(0x00010E)},
+ {RUNE_C(0x000110), RUNE_C(0x000110)},
+ {RUNE_C(0x000112), RUNE_C(0x000112)},
+ {RUNE_C(0x000114), RUNE_C(0x000114)},
+ {RUNE_C(0x000116), RUNE_C(0x000116)},
+ {RUNE_C(0x000118), RUNE_C(0x000118)},
+ {RUNE_C(0x00011A), RUNE_C(0x00011A)},
+ {RUNE_C(0x00011C), RUNE_C(0x00011C)},
+ {RUNE_C(0x00011E), RUNE_C(0x00011E)},
+ {RUNE_C(0x000120), RUNE_C(0x000120)},
+ {RUNE_C(0x000122), RUNE_C(0x000122)},
+ {RUNE_C(0x000124), RUNE_C(0x000124)},
+ {RUNE_C(0x000126), RUNE_C(0x000126)},
+ {RUNE_C(0x000128), RUNE_C(0x000128)},
+ {RUNE_C(0x00012A), RUNE_C(0x00012A)},
+ {RUNE_C(0x00012C), RUNE_C(0x00012C)},
+ {RUNE_C(0x00012E), RUNE_C(0x00012E)},
+ {RUNE_C(0x000130), RUNE_C(0x000130)},
+ {RUNE_C(0x000132), RUNE_C(0x000132)},
+ {RUNE_C(0x000134), RUNE_C(0x000134)},
+ {RUNE_C(0x000136), RUNE_C(0x000136)},
+ {RUNE_C(0x000139), RUNE_C(0x000139)},
+ {RUNE_C(0x00013B), RUNE_C(0x00013B)},
+ {RUNE_C(0x00013D), RUNE_C(0x00013D)},
+ {RUNE_C(0x00013F), RUNE_C(0x00013F)},
+ {RUNE_C(0x000141), RUNE_C(0x000141)},
+ {RUNE_C(0x000143), RUNE_C(0x000143)},
+ {RUNE_C(0x000145), RUNE_C(0x000145)},
+ {RUNE_C(0x000147), RUNE_C(0x000147)},
+ {RUNE_C(0x00014A), RUNE_C(0x00014A)},
+ {RUNE_C(0x00014C), RUNE_C(0x00014C)},
+ {RUNE_C(0x00014E), RUNE_C(0x00014E)},
+ {RUNE_C(0x000150), RUNE_C(0x000150)},
+ {RUNE_C(0x000152), RUNE_C(0x000152)},
+ {RUNE_C(0x000154), RUNE_C(0x000154)},
+ {RUNE_C(0x000156), RUNE_C(0x000156)},
+ {RUNE_C(0x000158), RUNE_C(0x000158)},
+ {RUNE_C(0x00015A), RUNE_C(0x00015A)},
+ {RUNE_C(0x00015C), RUNE_C(0x00015C)},
+ {RUNE_C(0x00015E), RUNE_C(0x00015E)},
+ {RUNE_C(0x000160), RUNE_C(0x000160)},
+ {RUNE_C(0x000162), RUNE_C(0x000162)},
+ {RUNE_C(0x000164), RUNE_C(0x000164)},
+ {RUNE_C(0x000166), RUNE_C(0x000166)},
+ {RUNE_C(0x000168), RUNE_C(0x000168)},
+ {RUNE_C(0x00016A), RUNE_C(0x00016A)},
+ {RUNE_C(0x00016C), RUNE_C(0x00016C)},
+ {RUNE_C(0x00016E), RUNE_C(0x00016E)},
+ {RUNE_C(0x000170), RUNE_C(0x000170)},
+ {RUNE_C(0x000172), RUNE_C(0x000172)},
+ {RUNE_C(0x000174), RUNE_C(0x000174)},
+ {RUNE_C(0x000176), RUNE_C(0x000176)},
+ {RUNE_C(0x000178), RUNE_C(0x000179)},
+ {RUNE_C(0x00017B), RUNE_C(0x00017B)},
+ {RUNE_C(0x00017D), RUNE_C(0x00017D)},
+ {RUNE_C(0x000181), RUNE_C(0x000182)},
+ {RUNE_C(0x000184), RUNE_C(0x000184)},
+ {RUNE_C(0x000186), RUNE_C(0x000187)},
+ {RUNE_C(0x000189), RUNE_C(0x00018B)},
+ {RUNE_C(0x00018E), RUNE_C(0x000191)},
+ {RUNE_C(0x000193), RUNE_C(0x000194)},
+ {RUNE_C(0x000196), RUNE_C(0x000198)},
+ {RUNE_C(0x00019C), RUNE_C(0x00019D)},
+ {RUNE_C(0x00019F), RUNE_C(0x0001A0)},
+ {RUNE_C(0x0001A2), RUNE_C(0x0001A2)},
+ {RUNE_C(0x0001A4), RUNE_C(0x0001A4)},
+ {RUNE_C(0x0001A6), RUNE_C(0x0001A7)},
+ {RUNE_C(0x0001A9), RUNE_C(0x0001A9)},
+ {RUNE_C(0x0001AC), RUNE_C(0x0001AC)},
+ {RUNE_C(0x0001AE), RUNE_C(0x0001AF)},
+ {RUNE_C(0x0001B1), RUNE_C(0x0001B3)},
+ {RUNE_C(0x0001B5), RUNE_C(0x0001B5)},
+ {RUNE_C(0x0001B7), RUNE_C(0x0001B8)},
+ {RUNE_C(0x0001BC), RUNE_C(0x0001BC)},
+ {RUNE_C(0x0001C4), RUNE_C(0x0001C4)},
+ {RUNE_C(0x0001C7), RUNE_C(0x0001C7)},
+ {RUNE_C(0x0001CA), RUNE_C(0x0001CA)},
+ {RUNE_C(0x0001CD), RUNE_C(0x0001CD)},
+ {RUNE_C(0x0001CF), RUNE_C(0x0001CF)},
+ {RUNE_C(0x0001D1), RUNE_C(0x0001D1)},
+ {RUNE_C(0x0001D3), RUNE_C(0x0001D3)},
+ {RUNE_C(0x0001D5), RUNE_C(0x0001D5)},
+ {RUNE_C(0x0001D7), RUNE_C(0x0001D7)},
+ {RUNE_C(0x0001D9), RUNE_C(0x0001D9)},
+ {RUNE_C(0x0001DB), RUNE_C(0x0001DB)},
+ {RUNE_C(0x0001DE), RUNE_C(0x0001DE)},
+ {RUNE_C(0x0001E0), RUNE_C(0x0001E0)},
+ {RUNE_C(0x0001E2), RUNE_C(0x0001E2)},
+ {RUNE_C(0x0001E4), RUNE_C(0x0001E4)},
+ {RUNE_C(0x0001E6), RUNE_C(0x0001E6)},
+ {RUNE_C(0x0001E8), RUNE_C(0x0001E8)},
+ {RUNE_C(0x0001EA), RUNE_C(0x0001EA)},
+ {RUNE_C(0x0001EC), RUNE_C(0x0001EC)},
+ {RUNE_C(0x0001EE), RUNE_C(0x0001EE)},
+ {RUNE_C(0x0001F1), RUNE_C(0x0001F1)},
+ {RUNE_C(0x0001F4), RUNE_C(0x0001F4)},
+ {RUNE_C(0x0001F6), RUNE_C(0x0001F8)},
+ {RUNE_C(0x0001FA), RUNE_C(0x0001FA)},
+ {RUNE_C(0x0001FC), RUNE_C(0x0001FC)},
+ {RUNE_C(0x0001FE), RUNE_C(0x0001FE)},
+ {RUNE_C(0x000200), RUNE_C(0x000200)},
+ {RUNE_C(0x000202), RUNE_C(0x000202)},
+ {RUNE_C(0x000204), RUNE_C(0x000204)},
+ {RUNE_C(0x000206), RUNE_C(0x000206)},
+ {RUNE_C(0x000208), RUNE_C(0x000208)},
+ {RUNE_C(0x00020A), RUNE_C(0x00020A)},
+ {RUNE_C(0x00020C), RUNE_C(0x00020C)},
+ {RUNE_C(0x00020E), RUNE_C(0x00020E)},
+ {RUNE_C(0x000210), RUNE_C(0x000210)},
+ {RUNE_C(0x000212), RUNE_C(0x000212)},
+ {RUNE_C(0x000214), RUNE_C(0x000214)},
+ {RUNE_C(0x000216), RUNE_C(0x000216)},
+ {RUNE_C(0x000218), RUNE_C(0x000218)},
+ {RUNE_C(0x00021A), RUNE_C(0x00021A)},
+ {RUNE_C(0x00021C), RUNE_C(0x00021C)},
+ {RUNE_C(0x00021E), RUNE_C(0x00021E)},
+ {RUNE_C(0x000220), RUNE_C(0x000220)},
+ {RUNE_C(0x000222), RUNE_C(0x000222)},
+ {RUNE_C(0x000224), RUNE_C(0x000224)},
+ {RUNE_C(0x000226), RUNE_C(0x000226)},
+ {RUNE_C(0x000228), RUNE_C(0x000228)},
+ {RUNE_C(0x00022A), RUNE_C(0x00022A)},
+ {RUNE_C(0x00022C), RUNE_C(0x00022C)},
+ {RUNE_C(0x00022E), RUNE_C(0x00022E)},
+ {RUNE_C(0x000230), RUNE_C(0x000230)},
+ {RUNE_C(0x000232), RUNE_C(0x000232)},
+ {RUNE_C(0x00023A), RUNE_C(0x00023B)},
+ {RUNE_C(0x00023D), RUNE_C(0x00023E)},
+ {RUNE_C(0x000241), RUNE_C(0x000241)},
+ {RUNE_C(0x000243), RUNE_C(0x000246)},
+ {RUNE_C(0x000248), RUNE_C(0x000248)},
+ {RUNE_C(0x00024A), RUNE_C(0x00024A)},
+ {RUNE_C(0x00024C), RUNE_C(0x00024C)},
+ {RUNE_C(0x00024E), RUNE_C(0x00024E)},
+ {RUNE_C(0x000370), RUNE_C(0x000370)},
+ {RUNE_C(0x000372), RUNE_C(0x000372)},
+ {RUNE_C(0x000376), RUNE_C(0x000376)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x00038F)},
+ {RUNE_C(0x000391), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003AB)},
+ {RUNE_C(0x0003CF), RUNE_C(0x0003CF)},
+ {RUNE_C(0x0003D2), RUNE_C(0x0003D4)},
+ {RUNE_C(0x0003D8), RUNE_C(0x0003D8)},
+ {RUNE_C(0x0003DA), RUNE_C(0x0003DA)},
+ {RUNE_C(0x0003DC), RUNE_C(0x0003DC)},
+ {RUNE_C(0x0003DE), RUNE_C(0x0003DE)},
+ {RUNE_C(0x0003E0), RUNE_C(0x0003E0)},
+ {RUNE_C(0x0003E2), RUNE_C(0x0003E2)},
+ {RUNE_C(0x0003E4), RUNE_C(0x0003E4)},
+ {RUNE_C(0x0003E6), RUNE_C(0x0003E6)},
+ {RUNE_C(0x0003E8), RUNE_C(0x0003E8)},
+ {RUNE_C(0x0003EA), RUNE_C(0x0003EA)},
+ {RUNE_C(0x0003EC), RUNE_C(0x0003EC)},
+ {RUNE_C(0x0003EE), RUNE_C(0x0003EE)},
+ {RUNE_C(0x0003F4), RUNE_C(0x0003F4)},
+ {RUNE_C(0x0003F7), RUNE_C(0x0003F7)},
+ {RUNE_C(0x0003F9), RUNE_C(0x0003FA)},
+ {RUNE_C(0x0003FD), RUNE_C(0x00042F)},
+ {RUNE_C(0x000460), RUNE_C(0x000460)},
+ {RUNE_C(0x000462), RUNE_C(0x000462)},
+ {RUNE_C(0x000464), RUNE_C(0x000464)},
+ {RUNE_C(0x000466), RUNE_C(0x000466)},
+ {RUNE_C(0x000468), RUNE_C(0x000468)},
+ {RUNE_C(0x00046A), RUNE_C(0x00046A)},
+ {RUNE_C(0x00046C), RUNE_C(0x00046C)},
+ {RUNE_C(0x00046E), RUNE_C(0x00046E)},
+ {RUNE_C(0x000470), RUNE_C(0x000470)},
+ {RUNE_C(0x000472), RUNE_C(0x000472)},
+ {RUNE_C(0x000474), RUNE_C(0x000474)},
+ {RUNE_C(0x000476), RUNE_C(0x000476)},
+ {RUNE_C(0x000478), RUNE_C(0x000478)},
+ {RUNE_C(0x00047A), RUNE_C(0x00047A)},
+ {RUNE_C(0x00047C), RUNE_C(0x00047C)},
+ {RUNE_C(0x00047E), RUNE_C(0x00047E)},
+ {RUNE_C(0x000480), RUNE_C(0x000480)},
+ {RUNE_C(0x00048A), RUNE_C(0x00048A)},
+ {RUNE_C(0x00048C), RUNE_C(0x00048C)},
+ {RUNE_C(0x00048E), RUNE_C(0x00048E)},
+ {RUNE_C(0x000490), RUNE_C(0x000490)},
+ {RUNE_C(0x000492), RUNE_C(0x000492)},
+ {RUNE_C(0x000494), RUNE_C(0x000494)},
+ {RUNE_C(0x000496), RUNE_C(0x000496)},
+ {RUNE_C(0x000498), RUNE_C(0x000498)},
+ {RUNE_C(0x00049A), RUNE_C(0x00049A)},
+ {RUNE_C(0x00049C), RUNE_C(0x00049C)},
+ {RUNE_C(0x00049E), RUNE_C(0x00049E)},
+ {RUNE_C(0x0004A0), RUNE_C(0x0004A0)},
+ {RUNE_C(0x0004A2), RUNE_C(0x0004A2)},
+ {RUNE_C(0x0004A4), RUNE_C(0x0004A4)},
+ {RUNE_C(0x0004A6), RUNE_C(0x0004A6)},
+ {RUNE_C(0x0004A8), RUNE_C(0x0004A8)},
+ {RUNE_C(0x0004AA), RUNE_C(0x0004AA)},
+ {RUNE_C(0x0004AC), RUNE_C(0x0004AC)},
+ {RUNE_C(0x0004AE), RUNE_C(0x0004AE)},
+ {RUNE_C(0x0004B0), RUNE_C(0x0004B0)},
+ {RUNE_C(0x0004B2), RUNE_C(0x0004B2)},
+ {RUNE_C(0x0004B4), RUNE_C(0x0004B4)},
+ {RUNE_C(0x0004B6), RUNE_C(0x0004B6)},
+ {RUNE_C(0x0004B8), RUNE_C(0x0004B8)},
+ {RUNE_C(0x0004BA), RUNE_C(0x0004BA)},
+ {RUNE_C(0x0004BC), RUNE_C(0x0004BC)},
+ {RUNE_C(0x0004BE), RUNE_C(0x0004BE)},
+ {RUNE_C(0x0004C0), RUNE_C(0x0004C1)},
+ {RUNE_C(0x0004C3), RUNE_C(0x0004C3)},
+ {RUNE_C(0x0004C5), RUNE_C(0x0004C5)},
+ {RUNE_C(0x0004C7), RUNE_C(0x0004C7)},
+ {RUNE_C(0x0004C9), RUNE_C(0x0004C9)},
+ {RUNE_C(0x0004CB), RUNE_C(0x0004CB)},
+ {RUNE_C(0x0004CD), RUNE_C(0x0004CD)},
+ {RUNE_C(0x0004D0), RUNE_C(0x0004D0)},
+ {RUNE_C(0x0004D2), RUNE_C(0x0004D2)},
+ {RUNE_C(0x0004D4), RUNE_C(0x0004D4)},
+ {RUNE_C(0x0004D6), RUNE_C(0x0004D6)},
+ {RUNE_C(0x0004D8), RUNE_C(0x0004D8)},
+ {RUNE_C(0x0004DA), RUNE_C(0x0004DA)},
+ {RUNE_C(0x0004DC), RUNE_C(0x0004DC)},
+ {RUNE_C(0x0004DE), RUNE_C(0x0004DE)},
+ {RUNE_C(0x0004E0), RUNE_C(0x0004E0)},
+ {RUNE_C(0x0004E2), RUNE_C(0x0004E2)},
+ {RUNE_C(0x0004E4), RUNE_C(0x0004E4)},
+ {RUNE_C(0x0004E6), RUNE_C(0x0004E6)},
+ {RUNE_C(0x0004E8), RUNE_C(0x0004E8)},
+ {RUNE_C(0x0004EA), RUNE_C(0x0004EA)},
+ {RUNE_C(0x0004EC), RUNE_C(0x0004EC)},
+ {RUNE_C(0x0004EE), RUNE_C(0x0004EE)},
+ {RUNE_C(0x0004F0), RUNE_C(0x0004F0)},
+ {RUNE_C(0x0004F2), RUNE_C(0x0004F2)},
+ {RUNE_C(0x0004F4), RUNE_C(0x0004F4)},
+ {RUNE_C(0x0004F6), RUNE_C(0x0004F6)},
+ {RUNE_C(0x0004F8), RUNE_C(0x0004F8)},
+ {RUNE_C(0x0004FA), RUNE_C(0x0004FA)},
+ {RUNE_C(0x0004FC), RUNE_C(0x0004FC)},
+ {RUNE_C(0x0004FE), RUNE_C(0x0004FE)},
+ {RUNE_C(0x000500), RUNE_C(0x000500)},
+ {RUNE_C(0x000502), RUNE_C(0x000502)},
+ {RUNE_C(0x000504), RUNE_C(0x000504)},
+ {RUNE_C(0x000506), RUNE_C(0x000506)},
+ {RUNE_C(0x000508), RUNE_C(0x000508)},
+ {RUNE_C(0x00050A), RUNE_C(0x00050A)},
+ {RUNE_C(0x00050C), RUNE_C(0x00050C)},
+ {RUNE_C(0x00050E), RUNE_C(0x00050E)},
+ {RUNE_C(0x000510), RUNE_C(0x000510)},
+ {RUNE_C(0x000512), RUNE_C(0x000512)},
+ {RUNE_C(0x000514), RUNE_C(0x000514)},
+ {RUNE_C(0x000516), RUNE_C(0x000516)},
+ {RUNE_C(0x000518), RUNE_C(0x000518)},
+ {RUNE_C(0x00051A), RUNE_C(0x00051A)},
+ {RUNE_C(0x00051C), RUNE_C(0x00051C)},
+ {RUNE_C(0x00051E), RUNE_C(0x00051E)},
+ {RUNE_C(0x000520), RUNE_C(0x000520)},
+ {RUNE_C(0x000522), RUNE_C(0x000522)},
+ {RUNE_C(0x000524), RUNE_C(0x000524)},
+ {RUNE_C(0x000526), RUNE_C(0x000526)},
+ {RUNE_C(0x000528), RUNE_C(0x000528)},
+ {RUNE_C(0x00052A), RUNE_C(0x00052A)},
+ {RUNE_C(0x00052C), RUNE_C(0x00052C)},
+ {RUNE_C(0x00052E), RUNE_C(0x00052E)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001E00)},
+ {RUNE_C(0x001E02), RUNE_C(0x001E02)},
+ {RUNE_C(0x001E04), RUNE_C(0x001E04)},
+ {RUNE_C(0x001E06), RUNE_C(0x001E06)},
+ {RUNE_C(0x001E08), RUNE_C(0x001E08)},
+ {RUNE_C(0x001E0A), RUNE_C(0x001E0A)},
+ {RUNE_C(0x001E0C), RUNE_C(0x001E0C)},
+ {RUNE_C(0x001E0E), RUNE_C(0x001E0E)},
+ {RUNE_C(0x001E10), RUNE_C(0x001E10)},
+ {RUNE_C(0x001E12), RUNE_C(0x001E12)},
+ {RUNE_C(0x001E14), RUNE_C(0x001E14)},
+ {RUNE_C(0x001E16), RUNE_C(0x001E16)},
+ {RUNE_C(0x001E18), RUNE_C(0x001E18)},
+ {RUNE_C(0x001E1A), RUNE_C(0x001E1A)},
+ {RUNE_C(0x001E1C), RUNE_C(0x001E1C)},
+ {RUNE_C(0x001E1E), RUNE_C(0x001E1E)},
+ {RUNE_C(0x001E20), RUNE_C(0x001E20)},
+ {RUNE_C(0x001E22), RUNE_C(0x001E22)},
+ {RUNE_C(0x001E24), RUNE_C(0x001E24)},
+ {RUNE_C(0x001E26), RUNE_C(0x001E26)},
+ {RUNE_C(0x001E28), RUNE_C(0x001E28)},
+ {RUNE_C(0x001E2A), RUNE_C(0x001E2A)},
+ {RUNE_C(0x001E2C), RUNE_C(0x001E2C)},
+ {RUNE_C(0x001E2E), RUNE_C(0x001E2E)},
+ {RUNE_C(0x001E30), RUNE_C(0x001E30)},
+ {RUNE_C(0x001E32), RUNE_C(0x001E32)},
+ {RUNE_C(0x001E34), RUNE_C(0x001E34)},
+ {RUNE_C(0x001E36), RUNE_C(0x001E36)},
+ {RUNE_C(0x001E38), RUNE_C(0x001E38)},
+ {RUNE_C(0x001E3A), RUNE_C(0x001E3A)},
+ {RUNE_C(0x001E3C), RUNE_C(0x001E3C)},
+ {RUNE_C(0x001E3E), RUNE_C(0x001E3E)},
+ {RUNE_C(0x001E40), RUNE_C(0x001E40)},
+ {RUNE_C(0x001E42), RUNE_C(0x001E42)},
+ {RUNE_C(0x001E44), RUNE_C(0x001E44)},
+ {RUNE_C(0x001E46), RUNE_C(0x001E46)},
+ {RUNE_C(0x001E48), RUNE_C(0x001E48)},
+ {RUNE_C(0x001E4A), RUNE_C(0x001E4A)},
+ {RUNE_C(0x001E4C), RUNE_C(0x001E4C)},
+ {RUNE_C(0x001E4E), RUNE_C(0x001E4E)},
+ {RUNE_C(0x001E50), RUNE_C(0x001E50)},
+ {RUNE_C(0x001E52), RUNE_C(0x001E52)},
+ {RUNE_C(0x001E54), RUNE_C(0x001E54)},
+ {RUNE_C(0x001E56), RUNE_C(0x001E56)},
+ {RUNE_C(0x001E58), RUNE_C(0x001E58)},
+ {RUNE_C(0x001E5A), RUNE_C(0x001E5A)},
+ {RUNE_C(0x001E5C), RUNE_C(0x001E5C)},
+ {RUNE_C(0x001E5E), RUNE_C(0x001E5E)},
+ {RUNE_C(0x001E60), RUNE_C(0x001E60)},
+ {RUNE_C(0x001E62), RUNE_C(0x001E62)},
+ {RUNE_C(0x001E64), RUNE_C(0x001E64)},
+ {RUNE_C(0x001E66), RUNE_C(0x001E66)},
+ {RUNE_C(0x001E68), RUNE_C(0x001E68)},
+ {RUNE_C(0x001E6A), RUNE_C(0x001E6A)},
+ {RUNE_C(0x001E6C), RUNE_C(0x001E6C)},
+ {RUNE_C(0x001E6E), RUNE_C(0x001E6E)},
+ {RUNE_C(0x001E70), RUNE_C(0x001E70)},
+ {RUNE_C(0x001E72), RUNE_C(0x001E72)},
+ {RUNE_C(0x001E74), RUNE_C(0x001E74)},
+ {RUNE_C(0x001E76), RUNE_C(0x001E76)},
+ {RUNE_C(0x001E78), RUNE_C(0x001E78)},
+ {RUNE_C(0x001E7A), RUNE_C(0x001E7A)},
+ {RUNE_C(0x001E7C), RUNE_C(0x001E7C)},
+ {RUNE_C(0x001E7E), RUNE_C(0x001E7E)},
+ {RUNE_C(0x001E80), RUNE_C(0x001E80)},
+ {RUNE_C(0x001E82), RUNE_C(0x001E82)},
+ {RUNE_C(0x001E84), RUNE_C(0x001E84)},
+ {RUNE_C(0x001E86), RUNE_C(0x001E86)},
+ {RUNE_C(0x001E88), RUNE_C(0x001E88)},
+ {RUNE_C(0x001E8A), RUNE_C(0x001E8A)},
+ {RUNE_C(0x001E8C), RUNE_C(0x001E8C)},
+ {RUNE_C(0x001E8E), RUNE_C(0x001E8E)},
+ {RUNE_C(0x001E90), RUNE_C(0x001E90)},
+ {RUNE_C(0x001E92), RUNE_C(0x001E92)},
+ {RUNE_C(0x001E94), RUNE_C(0x001E94)},
+ {RUNE_C(0x001E9E), RUNE_C(0x001E9E)},
+ {RUNE_C(0x001EA0), RUNE_C(0x001EA0)},
+ {RUNE_C(0x001EA2), RUNE_C(0x001EA2)},
+ {RUNE_C(0x001EA4), RUNE_C(0x001EA4)},
+ {RUNE_C(0x001EA6), RUNE_C(0x001EA6)},
+ {RUNE_C(0x001EA8), RUNE_C(0x001EA8)},
+ {RUNE_C(0x001EAA), RUNE_C(0x001EAA)},
+ {RUNE_C(0x001EAC), RUNE_C(0x001EAC)},
+ {RUNE_C(0x001EAE), RUNE_C(0x001EAE)},
+ {RUNE_C(0x001EB0), RUNE_C(0x001EB0)},
+ {RUNE_C(0x001EB2), RUNE_C(0x001EB2)},
+ {RUNE_C(0x001EB4), RUNE_C(0x001EB4)},
+ {RUNE_C(0x001EB6), RUNE_C(0x001EB6)},
+ {RUNE_C(0x001EB8), RUNE_C(0x001EB8)},
+ {RUNE_C(0x001EBA), RUNE_C(0x001EBA)},
+ {RUNE_C(0x001EBC), RUNE_C(0x001EBC)},
+ {RUNE_C(0x001EBE), RUNE_C(0x001EBE)},
+ {RUNE_C(0x001EC0), RUNE_C(0x001EC0)},
+ {RUNE_C(0x001EC2), RUNE_C(0x001EC2)},
+ {RUNE_C(0x001EC4), RUNE_C(0x001EC4)},
+ {RUNE_C(0x001EC6), RUNE_C(0x001EC6)},
+ {RUNE_C(0x001EC8), RUNE_C(0x001EC8)},
+ {RUNE_C(0x001ECA), RUNE_C(0x001ECA)},
+ {RUNE_C(0x001ECC), RUNE_C(0x001ECC)},
+ {RUNE_C(0x001ECE), RUNE_C(0x001ECE)},
+ {RUNE_C(0x001ED0), RUNE_C(0x001ED0)},
+ {RUNE_C(0x001ED2), RUNE_C(0x001ED2)},
+ {RUNE_C(0x001ED4), RUNE_C(0x001ED4)},
+ {RUNE_C(0x001ED6), RUNE_C(0x001ED6)},
+ {RUNE_C(0x001ED8), RUNE_C(0x001ED8)},
+ {RUNE_C(0x001EDA), RUNE_C(0x001EDA)},
+ {RUNE_C(0x001EDC), RUNE_C(0x001EDC)},
+ {RUNE_C(0x001EDE), RUNE_C(0x001EDE)},
+ {RUNE_C(0x001EE0), RUNE_C(0x001EE0)},
+ {RUNE_C(0x001EE2), RUNE_C(0x001EE2)},
+ {RUNE_C(0x001EE4), RUNE_C(0x001EE4)},
+ {RUNE_C(0x001EE6), RUNE_C(0x001EE6)},
+ {RUNE_C(0x001EE8), RUNE_C(0x001EE8)},
+ {RUNE_C(0x001EEA), RUNE_C(0x001EEA)},
+ {RUNE_C(0x001EEC), RUNE_C(0x001EEC)},
+ {RUNE_C(0x001EEE), RUNE_C(0x001EEE)},
+ {RUNE_C(0x001EF0), RUNE_C(0x001EF0)},
+ {RUNE_C(0x001EF2), RUNE_C(0x001EF2)},
+ {RUNE_C(0x001EF4), RUNE_C(0x001EF4)},
+ {RUNE_C(0x001EF6), RUNE_C(0x001EF6)},
+ {RUNE_C(0x001EF8), RUNE_C(0x001EF8)},
+ {RUNE_C(0x001EFA), RUNE_C(0x001EFA)},
+ {RUNE_C(0x001EFC), RUNE_C(0x001EFC)},
+ {RUNE_C(0x001EFE), RUNE_C(0x001EFE)},
+ {RUNE_C(0x001F08), RUNE_C(0x001F0F)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F28), RUNE_C(0x001F2F)},
+ {RUNE_C(0x001F38), RUNE_C(0x001F3F)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F5F)},
+ {RUNE_C(0x001F68), RUNE_C(0x001F6F)},
+ {RUNE_C(0x001FB8), RUNE_C(0x001FBB)},
+ {RUNE_C(0x001FC8), RUNE_C(0x001FCB)},
+ {RUNE_C(0x001FD8), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE8), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF8), RUNE_C(0x001FFB)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210B), RUNE_C(0x00210D)},
+ {RUNE_C(0x002110), RUNE_C(0x002112)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002119), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x00212D)},
+ {RUNE_C(0x002130), RUNE_C(0x002133)},
+ {RUNE_C(0x00213E), RUNE_C(0x00213F)},
+ {RUNE_C(0x002145), RUNE_C(0x002145)},
+ {RUNE_C(0x002160), RUNE_C(0x00216F)},
+ {RUNE_C(0x002183), RUNE_C(0x002183)},
+ {RUNE_C(0x0024B6), RUNE_C(0x0024CF)},
+ {RUNE_C(0x002C00), RUNE_C(0x002C2F)},
+ {RUNE_C(0x002C60), RUNE_C(0x002C60)},
+ {RUNE_C(0x002C62), RUNE_C(0x002C64)},
+ {RUNE_C(0x002C67), RUNE_C(0x002C67)},
+ {RUNE_C(0x002C69), RUNE_C(0x002C69)},
+ {RUNE_C(0x002C6B), RUNE_C(0x002C6B)},
+ {RUNE_C(0x002C6D), RUNE_C(0x002C70)},
+ {RUNE_C(0x002C72), RUNE_C(0x002C72)},
+ {RUNE_C(0x002C75), RUNE_C(0x002C75)},
+ {RUNE_C(0x002C7E), RUNE_C(0x002C80)},
+ {RUNE_C(0x002C82), RUNE_C(0x002C82)},
+ {RUNE_C(0x002C84), RUNE_C(0x002C84)},
+ {RUNE_C(0x002C86), RUNE_C(0x002C86)},
+ {RUNE_C(0x002C88), RUNE_C(0x002C88)},
+ {RUNE_C(0x002C8A), RUNE_C(0x002C8A)},
+ {RUNE_C(0x002C8C), RUNE_C(0x002C8C)},
+ {RUNE_C(0x002C8E), RUNE_C(0x002C8E)},
+ {RUNE_C(0x002C90), RUNE_C(0x002C90)},
+ {RUNE_C(0x002C92), RUNE_C(0x002C92)},
+ {RUNE_C(0x002C94), RUNE_C(0x002C94)},
+ {RUNE_C(0x002C96), RUNE_C(0x002C96)},
+ {RUNE_C(0x002C98), RUNE_C(0x002C98)},
+ {RUNE_C(0x002C9A), RUNE_C(0x002C9A)},
+ {RUNE_C(0x002C9C), RUNE_C(0x002C9C)},
+ {RUNE_C(0x002C9E), RUNE_C(0x002C9E)},
+ {RUNE_C(0x002CA0), RUNE_C(0x002CA0)},
+ {RUNE_C(0x002CA2), RUNE_C(0x002CA2)},
+ {RUNE_C(0x002CA4), RUNE_C(0x002CA4)},
+ {RUNE_C(0x002CA6), RUNE_C(0x002CA6)},
+ {RUNE_C(0x002CA8), RUNE_C(0x002CA8)},
+ {RUNE_C(0x002CAA), RUNE_C(0x002CAA)},
+ {RUNE_C(0x002CAC), RUNE_C(0x002CAC)},
+ {RUNE_C(0x002CAE), RUNE_C(0x002CAE)},
+ {RUNE_C(0x002CB0), RUNE_C(0x002CB0)},
+ {RUNE_C(0x002CB2), RUNE_C(0x002CB2)},
+ {RUNE_C(0x002CB4), RUNE_C(0x002CB4)},
+ {RUNE_C(0x002CB6), RUNE_C(0x002CB6)},
+ {RUNE_C(0x002CB8), RUNE_C(0x002CB8)},
+ {RUNE_C(0x002CBA), RUNE_C(0x002CBA)},
+ {RUNE_C(0x002CBC), RUNE_C(0x002CBC)},
+ {RUNE_C(0x002CBE), RUNE_C(0x002CBE)},
+ {RUNE_C(0x002CC0), RUNE_C(0x002CC0)},
+ {RUNE_C(0x002CC2), RUNE_C(0x002CC2)},
+ {RUNE_C(0x002CC4), RUNE_C(0x002CC4)},
+ {RUNE_C(0x002CC6), RUNE_C(0x002CC6)},
+ {RUNE_C(0x002CC8), RUNE_C(0x002CC8)},
+ {RUNE_C(0x002CCA), RUNE_C(0x002CCA)},
+ {RUNE_C(0x002CCC), RUNE_C(0x002CCC)},
+ {RUNE_C(0x002CCE), RUNE_C(0x002CCE)},
+ {RUNE_C(0x002CD0), RUNE_C(0x002CD0)},
+ {RUNE_C(0x002CD2), RUNE_C(0x002CD2)},
+ {RUNE_C(0x002CD4), RUNE_C(0x002CD4)},
+ {RUNE_C(0x002CD6), RUNE_C(0x002CD6)},
+ {RUNE_C(0x002CD8), RUNE_C(0x002CD8)},
+ {RUNE_C(0x002CDA), RUNE_C(0x002CDA)},
+ {RUNE_C(0x002CDC), RUNE_C(0x002CDC)},
+ {RUNE_C(0x002CDE), RUNE_C(0x002CDE)},
+ {RUNE_C(0x002CE0), RUNE_C(0x002CE0)},
+ {RUNE_C(0x002CE2), RUNE_C(0x002CE2)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEB)},
+ {RUNE_C(0x002CED), RUNE_C(0x002CED)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF2)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A640)},
+ {RUNE_C(0x00A642), RUNE_C(0x00A642)},
+ {RUNE_C(0x00A644), RUNE_C(0x00A644)},
+ {RUNE_C(0x00A646), RUNE_C(0x00A646)},
+ {RUNE_C(0x00A648), RUNE_C(0x00A648)},
+ {RUNE_C(0x00A64A), RUNE_C(0x00A64A)},
+ {RUNE_C(0x00A64C), RUNE_C(0x00A64C)},
+ {RUNE_C(0x00A64E), RUNE_C(0x00A64E)},
+ {RUNE_C(0x00A650), RUNE_C(0x00A650)},
+ {RUNE_C(0x00A652), RUNE_C(0x00A652)},
+ {RUNE_C(0x00A654), RUNE_C(0x00A654)},
+ {RUNE_C(0x00A656), RUNE_C(0x00A656)},
+ {RUNE_C(0x00A658), RUNE_C(0x00A658)},
+ {RUNE_C(0x00A65A), RUNE_C(0x00A65A)},
+ {RUNE_C(0x00A65C), RUNE_C(0x00A65C)},
+ {RUNE_C(0x00A65E), RUNE_C(0x00A65E)},
+ {RUNE_C(0x00A660), RUNE_C(0x00A660)},
+ {RUNE_C(0x00A662), RUNE_C(0x00A662)},
+ {RUNE_C(0x00A664), RUNE_C(0x00A664)},
+ {RUNE_C(0x00A666), RUNE_C(0x00A666)},
+ {RUNE_C(0x00A668), RUNE_C(0x00A668)},
+ {RUNE_C(0x00A66A), RUNE_C(0x00A66A)},
+ {RUNE_C(0x00A66C), RUNE_C(0x00A66C)},
+ {RUNE_C(0x00A680), RUNE_C(0x00A680)},
+ {RUNE_C(0x00A682), RUNE_C(0x00A682)},
+ {RUNE_C(0x00A684), RUNE_C(0x00A684)},
+ {RUNE_C(0x00A686), RUNE_C(0x00A686)},
+ {RUNE_C(0x00A688), RUNE_C(0x00A688)},
+ {RUNE_C(0x00A68A), RUNE_C(0x00A68A)},
+ {RUNE_C(0x00A68C), RUNE_C(0x00A68C)},
+ {RUNE_C(0x00A68E), RUNE_C(0x00A68E)},
+ {RUNE_C(0x00A690), RUNE_C(0x00A690)},
+ {RUNE_C(0x00A692), RUNE_C(0x00A692)},
+ {RUNE_C(0x00A694), RUNE_C(0x00A694)},
+ {RUNE_C(0x00A696), RUNE_C(0x00A696)},
+ {RUNE_C(0x00A698), RUNE_C(0x00A698)},
+ {RUNE_C(0x00A69A), RUNE_C(0x00A69A)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A722)},
+ {RUNE_C(0x00A724), RUNE_C(0x00A724)},
+ {RUNE_C(0x00A726), RUNE_C(0x00A726)},
+ {RUNE_C(0x00A728), RUNE_C(0x00A728)},
+ {RUNE_C(0x00A72A), RUNE_C(0x00A72A)},
+ {RUNE_C(0x00A72C), RUNE_C(0x00A72C)},
+ {RUNE_C(0x00A72E), RUNE_C(0x00A72E)},
+ {RUNE_C(0x00A732), RUNE_C(0x00A732)},
+ {RUNE_C(0x00A734), RUNE_C(0x00A734)},
+ {RUNE_C(0x00A736), RUNE_C(0x00A736)},
+ {RUNE_C(0x00A738), RUNE_C(0x00A738)},
+ {RUNE_C(0x00A73A), RUNE_C(0x00A73A)},
+ {RUNE_C(0x00A73C), RUNE_C(0x00A73C)},
+ {RUNE_C(0x00A73E), RUNE_C(0x00A73E)},
+ {RUNE_C(0x00A740), RUNE_C(0x00A740)},
+ {RUNE_C(0x00A742), RUNE_C(0x00A742)},
+ {RUNE_C(0x00A744), RUNE_C(0x00A744)},
+ {RUNE_C(0x00A746), RUNE_C(0x00A746)},
+ {RUNE_C(0x00A748), RUNE_C(0x00A748)},
+ {RUNE_C(0x00A74A), RUNE_C(0x00A74A)},
+ {RUNE_C(0x00A74C), RUNE_C(0x00A74C)},
+ {RUNE_C(0x00A74E), RUNE_C(0x00A74E)},
+ {RUNE_C(0x00A750), RUNE_C(0x00A750)},
+ {RUNE_C(0x00A752), RUNE_C(0x00A752)},
+ {RUNE_C(0x00A754), RUNE_C(0x00A754)},
+ {RUNE_C(0x00A756), RUNE_C(0x00A756)},
+ {RUNE_C(0x00A758), RUNE_C(0x00A758)},
+ {RUNE_C(0x00A75A), RUNE_C(0x00A75A)},
+ {RUNE_C(0x00A75C), RUNE_C(0x00A75C)},
+ {RUNE_C(0x00A75E), RUNE_C(0x00A75E)},
+ {RUNE_C(0x00A760), RUNE_C(0x00A760)},
+ {RUNE_C(0x00A762), RUNE_C(0x00A762)},
+ {RUNE_C(0x00A764), RUNE_C(0x00A764)},
+ {RUNE_C(0x00A766), RUNE_C(0x00A766)},
+ {RUNE_C(0x00A768), RUNE_C(0x00A768)},
+ {RUNE_C(0x00A76A), RUNE_C(0x00A76A)},
+ {RUNE_C(0x00A76C), RUNE_C(0x00A76C)},
+ {RUNE_C(0x00A76E), RUNE_C(0x00A76E)},
+ {RUNE_C(0x00A779), RUNE_C(0x00A779)},
+ {RUNE_C(0x00A77B), RUNE_C(0x00A77B)},
+ {RUNE_C(0x00A77D), RUNE_C(0x00A77E)},
+ {RUNE_C(0x00A780), RUNE_C(0x00A780)},
+ {RUNE_C(0x00A782), RUNE_C(0x00A782)},
+ {RUNE_C(0x00A784), RUNE_C(0x00A784)},
+ {RUNE_C(0x00A786), RUNE_C(0x00A786)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A78B)},
+ {RUNE_C(0x00A78D), RUNE_C(0x00A78D)},
+ {RUNE_C(0x00A790), RUNE_C(0x00A790)},
+ {RUNE_C(0x00A792), RUNE_C(0x00A792)},
+ {RUNE_C(0x00A796), RUNE_C(0x00A796)},
+ {RUNE_C(0x00A798), RUNE_C(0x00A798)},
+ {RUNE_C(0x00A79A), RUNE_C(0x00A79A)},
+ {RUNE_C(0x00A79C), RUNE_C(0x00A79C)},
+ {RUNE_C(0x00A79E), RUNE_C(0x00A79E)},
+ {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)},
+ {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)},
+ {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)},
+ {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)},
+ {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)},
+ {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)},
+ {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)},
+ {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)},
+ {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)},
+ {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)},
+ {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)},
+ {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)},
+ {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)},
+ {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)},
+ {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)},
+ {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)},
+ {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)},
+ {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)},
+ {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x010400), RUNE_C(0x010427)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118BF)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E5F)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D419)},
+ {RUNE_C(0x01D434), RUNE_C(0x01D44D)},
+ {RUNE_C(0x01D468), RUNE_C(0x01D481)},
+ {RUNE_C(0x01D49C), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B5)},
+ {RUNE_C(0x01D4D0), RUNE_C(0x01D4E9)},
+ {RUNE_C(0x01D504), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D538), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D56C), RUNE_C(0x01D585)},
+ {RUNE_C(0x01D5A0), RUNE_C(0x01D5B9)},
+ {RUNE_C(0x01D5D4), RUNE_C(0x01D5ED)},
+ {RUNE_C(0x01D608), RUNE_C(0x01D621)},
+ {RUNE_C(0x01D63C), RUNE_C(0x01D655)},
+ {RUNE_C(0x01D670), RUNE_C(0x01D689)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)},
+ {RUNE_C(0x01D6E2), RUNE_C(0x01D6FA)},
+ {RUNE_C(0x01D71C), RUNE_C(0x01D734)},
+ {RUNE_C(0x01D756), RUNE_C(0x01D76E)},
+ {RUNE_C(0x01D790), RUNE_C(0x01D7A8)},
+ {RUNE_C(0x01D7CA), RUNE_C(0x01D7CA)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E921)},
+ {RUNE_C(0x01F130), RUNE_C(0x01F149)},
+ {RUNE_C(0x01F150), RUNE_C(0x01F169)},
+ {RUNE_C(0x01F170), RUNE_C(0x01F189)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_upper(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_vs.c b/lib/unicode/prop/uprop_is_vs.c
new file mode 100644
index 0000000..25751aa
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_vs.c
@@ -0,0 +1,25 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x00180B), RUNE_C(0x00180D)},
+ {RUNE_C(0x00180F), RUNE_C(0x00180F)},
+ {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
+ {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_vs(rune ch)
+{
+ return mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_wspace.c b/lib/unicode/prop/uprop_is_wspace.c
new file mode 100644
index 0000000..3306eec
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_wspace.c
@@ -0,0 +1,34 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x3E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x001680), RUNE_C(0x001680)},
+ {RUNE_C(0x002000), RUNE_C(0x00200A)},
+ {RUNE_C(0x002028), RUNE_C(0x002029)},
+ {RUNE_C(0x00202F), RUNE_C(0x00202F)},
+ {RUNE_C(0x00205F), RUNE_C(0x00205F)},
+ {RUNE_C(0x003000), RUNE_C(0x003000)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_wspace(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_xidc.c b/lib/unicode/prop/uprop_is_xidc.c
new file mode 100644
index 0000000..2aa4033
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_xidc.c
@@ -0,0 +1,794 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03,
+ 0xFE, 0xFF, 0xFF, 0x87, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xA0, 0x04,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x0002C1)},
+ {RUNE_C(0x0002C6), RUNE_C(0x0002D1)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x0002EC), RUNE_C(0x0002EC)},
+ {RUNE_C(0x0002EE), RUNE_C(0x0002EE)},
+ {RUNE_C(0x000300), RUNE_C(0x000374)},
+ {RUNE_C(0x000376), RUNE_C(0x000377)},
+ {RUNE_C(0x00037B), RUNE_C(0x00037D)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x000481)},
+ {RUNE_C(0x000483), RUNE_C(0x000487)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000559), RUNE_C(0x000559)},
+ {RUNE_C(0x000560), RUNE_C(0x000588)},
+ {RUNE_C(0x000591), RUNE_C(0x0005BD)},
+ {RUNE_C(0x0005BF), RUNE_C(0x0005BF)},
+ {RUNE_C(0x0005C1), RUNE_C(0x0005C2)},
+ {RUNE_C(0x0005C4), RUNE_C(0x0005C5)},
+ {RUNE_C(0x0005C7), RUNE_C(0x0005C7)},
+ {RUNE_C(0x0005D0), RUNE_C(0x0005EA)},
+ {RUNE_C(0x0005EF), RUNE_C(0x0005F2)},
+ {RUNE_C(0x000610), RUNE_C(0x00061A)},
+ {RUNE_C(0x000620), RUNE_C(0x000669)},
+ {RUNE_C(0x00066E), RUNE_C(0x0006D3)},
+ {RUNE_C(0x0006D5), RUNE_C(0x0006DC)},
+ {RUNE_C(0x0006DF), RUNE_C(0x0006E8)},
+ {RUNE_C(0x0006EA), RUNE_C(0x0006FC)},
+ {RUNE_C(0x0006FF), RUNE_C(0x0006FF)},
+ {RUNE_C(0x000710), RUNE_C(0x00074A)},
+ {RUNE_C(0x00074D), RUNE_C(0x0007B1)},
+ {RUNE_C(0x0007C0), RUNE_C(0x0007F5)},
+ {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
+ {RUNE_C(0x0007FD), RUNE_C(0x0007FD)},
+ {RUNE_C(0x000800), RUNE_C(0x00082D)},
+ {RUNE_C(0x000840), RUNE_C(0x00085B)},
+ {RUNE_C(0x000860), RUNE_C(0x00086A)},
+ {RUNE_C(0x000870), RUNE_C(0x000887)},
+ {RUNE_C(0x000889), RUNE_C(0x00088E)},
+ {RUNE_C(0x000898), RUNE_C(0x0008E1)},
+ {RUNE_C(0x0008E3), RUNE_C(0x000963)},
+ {RUNE_C(0x000966), RUNE_C(0x00096F)},
+ {RUNE_C(0x000971), RUNE_C(0x000983)},
+ {RUNE_C(0x000985), RUNE_C(0x00098C)},
+ {RUNE_C(0x00098F), RUNE_C(0x000990)},
+ {RUNE_C(0x000993), RUNE_C(0x0009A8)},
+ {RUNE_C(0x0009AA), RUNE_C(0x0009B0)},
+ {RUNE_C(0x0009B2), RUNE_C(0x0009B2)},
+ {RUNE_C(0x0009B6), RUNE_C(0x0009B9)},
+ {RUNE_C(0x0009BC), RUNE_C(0x0009C4)},
+ {RUNE_C(0x0009C7), RUNE_C(0x0009C8)},
+ {RUNE_C(0x0009CB), RUNE_C(0x0009CE)},
+ {RUNE_C(0x0009D7), RUNE_C(0x0009D7)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009E3)},
+ {RUNE_C(0x0009E6), RUNE_C(0x0009F1)},
+ {RUNE_C(0x0009FC), RUNE_C(0x0009FC)},
+ {RUNE_C(0x0009FE), RUNE_C(0x0009FE)},
+ {RUNE_C(0x000A01), RUNE_C(0x000A03)},
+ {RUNE_C(0x000A05), RUNE_C(0x000A0A)},
+ {RUNE_C(0x000A0F), RUNE_C(0x000A10)},
+ {RUNE_C(0x000A13), RUNE_C(0x000A28)},
+ {RUNE_C(0x000A2A), RUNE_C(0x000A30)},
+ {RUNE_C(0x000A32), RUNE_C(0x000A33)},
+ {RUNE_C(0x000A35), RUNE_C(0x000A36)},
+ {RUNE_C(0x000A38), RUNE_C(0x000A39)},
+ {RUNE_C(0x000A3C), RUNE_C(0x000A3C)},
+ {RUNE_C(0x000A3E), RUNE_C(0x000A42)},
+ {RUNE_C(0x000A47), RUNE_C(0x000A48)},
+ {RUNE_C(0x000A4B), RUNE_C(0x000A4D)},
+ {RUNE_C(0x000A51), RUNE_C(0x000A51)},
+ {RUNE_C(0x000A59), RUNE_C(0x000A5C)},
+ {RUNE_C(0x000A5E), RUNE_C(0x000A5E)},
+ {RUNE_C(0x000A66), RUNE_C(0x000A75)},
+ {RUNE_C(0x000A81), RUNE_C(0x000A83)},
+ {RUNE_C(0x000A85), RUNE_C(0x000A8D)},
+ {RUNE_C(0x000A8F), RUNE_C(0x000A91)},
+ {RUNE_C(0x000A93), RUNE_C(0x000AA8)},
+ {RUNE_C(0x000AAA), RUNE_C(0x000AB0)},
+ {RUNE_C(0x000AB2), RUNE_C(0x000AB3)},
+ {RUNE_C(0x000AB5), RUNE_C(0x000AB9)},
+ {RUNE_C(0x000ABC), RUNE_C(0x000AC5)},
+ {RUNE_C(0x000AC7), RUNE_C(0x000AC9)},
+ {RUNE_C(0x000ACB), RUNE_C(0x000ACD)},
+ {RUNE_C(0x000AD0), RUNE_C(0x000AD0)},
+ {RUNE_C(0x000AE0), RUNE_C(0x000AE3)},
+ {RUNE_C(0x000AE6), RUNE_C(0x000AEF)},
+ {RUNE_C(0x000AF9), RUNE_C(0x000AFF)},
+ {RUNE_C(0x000B01), RUNE_C(0x000B03)},
+ {RUNE_C(0x000B05), RUNE_C(0x000B0C)},
+ {RUNE_C(0x000B0F), RUNE_C(0x000B10)},
+ {RUNE_C(0x000B13), RUNE_C(0x000B28)},
+ {RUNE_C(0x000B2A), RUNE_C(0x000B30)},
+ {RUNE_C(0x000B32), RUNE_C(0x000B33)},
+ {RUNE_C(0x000B35), RUNE_C(0x000B39)},
+ {RUNE_C(0x000B3C), RUNE_C(0x000B44)},
+ {RUNE_C(0x000B47), RUNE_C(0x000B48)},
+ {RUNE_C(0x000B4B), RUNE_C(0x000B4D)},
+ {RUNE_C(0x000B55), RUNE_C(0x000B57)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000B5F), RUNE_C(0x000B63)},
+ {RUNE_C(0x000B66), RUNE_C(0x000B6F)},
+ {RUNE_C(0x000B71), RUNE_C(0x000B71)},
+ {RUNE_C(0x000B82), RUNE_C(0x000B83)},
+ {RUNE_C(0x000B85), RUNE_C(0x000B8A)},
+ {RUNE_C(0x000B8E), RUNE_C(0x000B90)},
+ {RUNE_C(0x000B92), RUNE_C(0x000B95)},
+ {RUNE_C(0x000B99), RUNE_C(0x000B9A)},
+ {RUNE_C(0x000B9C), RUNE_C(0x000B9C)},
+ {RUNE_C(0x000B9E), RUNE_C(0x000B9F)},
+ {RUNE_C(0x000BA3), RUNE_C(0x000BA4)},
+ {RUNE_C(0x000BA8), RUNE_C(0x000BAA)},
+ {RUNE_C(0x000BAE), RUNE_C(0x000BB9)},
+ {RUNE_C(0x000BBE), RUNE_C(0x000BC2)},
+ {RUNE_C(0x000BC6), RUNE_C(0x000BC8)},
+ {RUNE_C(0x000BCA), RUNE_C(0x000BCD)},
+ {RUNE_C(0x000BD0), RUNE_C(0x000BD0)},
+ {RUNE_C(0x000BD7), RUNE_C(0x000BD7)},
+ {RUNE_C(0x000BE6), RUNE_C(0x000BEF)},
+ {RUNE_C(0x000C00), RUNE_C(0x000C0C)},
+ {RUNE_C(0x000C0E), RUNE_C(0x000C10)},
+ {RUNE_C(0x000C12), RUNE_C(0x000C28)},
+ {RUNE_C(0x000C2A), RUNE_C(0x000C39)},
+ {RUNE_C(0x000C3C), RUNE_C(0x000C44)},
+ {RUNE_C(0x000C46), RUNE_C(0x000C48)},
+ {RUNE_C(0x000C4A), RUNE_C(0x000C4D)},
+ {RUNE_C(0x000C55), RUNE_C(0x000C56)},
+ {RUNE_C(0x000C58), RUNE_C(0x000C5A)},
+ {RUNE_C(0x000C5D), RUNE_C(0x000C5D)},
+ {RUNE_C(0x000C60), RUNE_C(0x000C63)},
+ {RUNE_C(0x000C66), RUNE_C(0x000C6F)},
+ {RUNE_C(0x000C80), RUNE_C(0x000C83)},
+ {RUNE_C(0x000C85), RUNE_C(0x000C8C)},
+ {RUNE_C(0x000C8E), RUNE_C(0x000C90)},
+ {RUNE_C(0x000C92), RUNE_C(0x000CA8)},
+ {RUNE_C(0x000CAA), RUNE_C(0x000CB3)},
+ {RUNE_C(0x000CB5), RUNE_C(0x000CB9)},
+ {RUNE_C(0x000CBC), RUNE_C(0x000CC4)},
+ {RUNE_C(0x000CC6), RUNE_C(0x000CC8)},
+ {RUNE_C(0x000CCA), RUNE_C(0x000CCD)},
+ {RUNE_C(0x000CD5), RUNE_C(0x000CD6)},
+ {RUNE_C(0x000CDD), RUNE_C(0x000CDE)},
+ {RUNE_C(0x000CE0), RUNE_C(0x000CE3)},
+ {RUNE_C(0x000CE6), RUNE_C(0x000CEF)},
+ {RUNE_C(0x000CF1), RUNE_C(0x000CF3)},
+ {RUNE_C(0x000D00), RUNE_C(0x000D0C)},
+ {RUNE_C(0x000D0E), RUNE_C(0x000D10)},
+ {RUNE_C(0x000D12), RUNE_C(0x000D44)},
+ {RUNE_C(0x000D46), RUNE_C(0x000D48)},
+ {RUNE_C(0x000D4A), RUNE_C(0x000D4E)},
+ {RUNE_C(0x000D54), RUNE_C(0x000D57)},
+ {RUNE_C(0x000D5F), RUNE_C(0x000D63)},
+ {RUNE_C(0x000D66), RUNE_C(0x000D6F)},
+ {RUNE_C(0x000D7A), RUNE_C(0x000D7F)},
+ {RUNE_C(0x000D81), RUNE_C(0x000D83)},
+ {RUNE_C(0x000D85), RUNE_C(0x000D96)},
+ {RUNE_C(0x000D9A), RUNE_C(0x000DB1)},
+ {RUNE_C(0x000DB3), RUNE_C(0x000DBB)},
+ {RUNE_C(0x000DBD), RUNE_C(0x000DBD)},
+ {RUNE_C(0x000DC0), RUNE_C(0x000DC6)},
+ {RUNE_C(0x000DCA), RUNE_C(0x000DCA)},
+ {RUNE_C(0x000DCF), RUNE_C(0x000DD4)},
+ {RUNE_C(0x000DD6), RUNE_C(0x000DD6)},
+ {RUNE_C(0x000DD8), RUNE_C(0x000DDF)},
+ {RUNE_C(0x000DE6), RUNE_C(0x000DEF)},
+ {RUNE_C(0x000DF2), RUNE_C(0x000DF3)},
+ {RUNE_C(0x000E01), RUNE_C(0x000E3A)},
+ {RUNE_C(0x000E40), RUNE_C(0x000E4E)},
+ {RUNE_C(0x000E50), RUNE_C(0x000E59)},
+ {RUNE_C(0x000E81), RUNE_C(0x000E82)},
+ {RUNE_C(0x000E84), RUNE_C(0x000E84)},
+ {RUNE_C(0x000E86), RUNE_C(0x000E8A)},
+ {RUNE_C(0x000E8C), RUNE_C(0x000EA3)},
+ {RUNE_C(0x000EA5), RUNE_C(0x000EA5)},
+ {RUNE_C(0x000EA7), RUNE_C(0x000EBD)},
+ {RUNE_C(0x000EC0), RUNE_C(0x000EC4)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x000EC8), RUNE_C(0x000ECE)},
+ {RUNE_C(0x000ED0), RUNE_C(0x000ED9)},
+ {RUNE_C(0x000EDC), RUNE_C(0x000EDF)},
+ {RUNE_C(0x000F00), RUNE_C(0x000F00)},
+ {RUNE_C(0x000F18), RUNE_C(0x000F19)},
+ {RUNE_C(0x000F20), RUNE_C(0x000F29)},
+ {RUNE_C(0x000F35), RUNE_C(0x000F35)},
+ {RUNE_C(0x000F37), RUNE_C(0x000F37)},
+ {RUNE_C(0x000F39), RUNE_C(0x000F39)},
+ {RUNE_C(0x000F3E), RUNE_C(0x000F47)},
+ {RUNE_C(0x000F49), RUNE_C(0x000F6C)},
+ {RUNE_C(0x000F71), RUNE_C(0x000F84)},
+ {RUNE_C(0x000F86), RUNE_C(0x000F97)},
+ {RUNE_C(0x000F99), RUNE_C(0x000FBC)},
+ {RUNE_C(0x000FC6), RUNE_C(0x000FC6)},
+ {RUNE_C(0x001000), RUNE_C(0x001049)},
+ {RUNE_C(0x001050), RUNE_C(0x00109D)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FC), RUNE_C(0x001248)},
+ {RUNE_C(0x00124A), RUNE_C(0x00124D)},
+ {RUNE_C(0x001250), RUNE_C(0x001256)},
+ {RUNE_C(0x001258), RUNE_C(0x001258)},
+ {RUNE_C(0x00125A), RUNE_C(0x00125D)},
+ {RUNE_C(0x001260), RUNE_C(0x001288)},
+ {RUNE_C(0x00128A), RUNE_C(0x00128D)},
+ {RUNE_C(0x001290), RUNE_C(0x0012B0)},
+ {RUNE_C(0x0012B2), RUNE_C(0x0012B5)},
+ {RUNE_C(0x0012B8), RUNE_C(0x0012BE)},
+ {RUNE_C(0x0012C0), RUNE_C(0x0012C0)},
+ {RUNE_C(0x0012C2), RUNE_C(0x0012C5)},
+ {RUNE_C(0x0012C8), RUNE_C(0x0012D6)},
+ {RUNE_C(0x0012D8), RUNE_C(0x001310)},
+ {RUNE_C(0x001312), RUNE_C(0x001315)},
+ {RUNE_C(0x001318), RUNE_C(0x00135A)},
+ {RUNE_C(0x00135D), RUNE_C(0x00135F)},
+ {RUNE_C(0x001369), RUNE_C(0x001371)},
+ {RUNE_C(0x001380), RUNE_C(0x00138F)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001401), RUNE_C(0x00166C)},
+ {RUNE_C(0x00166F), RUNE_C(0x00167F)},
+ {RUNE_C(0x001681), RUNE_C(0x00169A)},
+ {RUNE_C(0x0016A0), RUNE_C(0x0016EA)},
+ {RUNE_C(0x0016EE), RUNE_C(0x0016F8)},
+ {RUNE_C(0x001700), RUNE_C(0x001715)},
+ {RUNE_C(0x00171F), RUNE_C(0x001734)},
+ {RUNE_C(0x001740), RUNE_C(0x001753)},
+ {RUNE_C(0x001760), RUNE_C(0x00176C)},
+ {RUNE_C(0x00176E), RUNE_C(0x001770)},
+ {RUNE_C(0x001772), RUNE_C(0x001773)},
+ {RUNE_C(0x001780), RUNE_C(0x0017D3)},
+ {RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
+ {RUNE_C(0x0017DC), RUNE_C(0x0017DD)},
+ {RUNE_C(0x0017E0), RUNE_C(0x0017E9)},
+ {RUNE_C(0x00180B), RUNE_C(0x00180D)},
+ {RUNE_C(0x00180F), RUNE_C(0x001819)},
+ {RUNE_C(0x001820), RUNE_C(0x001878)},
+ {RUNE_C(0x001880), RUNE_C(0x0018AA)},
+ {RUNE_C(0x0018B0), RUNE_C(0x0018F5)},
+ {RUNE_C(0x001900), RUNE_C(0x00191E)},
+ {RUNE_C(0x001920), RUNE_C(0x00192B)},
+ {RUNE_C(0x001930), RUNE_C(0x00193B)},
+ {RUNE_C(0x001946), RUNE_C(0x00196D)},
+ {RUNE_C(0x001970), RUNE_C(0x001974)},
+ {RUNE_C(0x001980), RUNE_C(0x0019AB)},
+ {RUNE_C(0x0019B0), RUNE_C(0x0019C9)},
+ {RUNE_C(0x0019D0), RUNE_C(0x0019DA)},
+ {RUNE_C(0x001A00), RUNE_C(0x001A1B)},
+ {RUNE_C(0x001A20), RUNE_C(0x001A5E)},
+ {RUNE_C(0x001A60), RUNE_C(0x001A7C)},
+ {RUNE_C(0x001A7F), RUNE_C(0x001A89)},
+ {RUNE_C(0x001A90), RUNE_C(0x001A99)},
+ {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
+ {RUNE_C(0x001AB0), RUNE_C(0x001ABD)},
+ {RUNE_C(0x001ABF), RUNE_C(0x001ACE)},
+ {RUNE_C(0x001B00), RUNE_C(0x001B4C)},
+ {RUNE_C(0x001B50), RUNE_C(0x001B59)},
+ {RUNE_C(0x001B6B), RUNE_C(0x001B73)},
+ {RUNE_C(0x001B80), RUNE_C(0x001BF3)},
+ {RUNE_C(0x001C00), RUNE_C(0x001C37)},
+ {RUNE_C(0x001C40), RUNE_C(0x001C49)},
+ {RUNE_C(0x001C4D), RUNE_C(0x001C7D)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001CD0), RUNE_C(0x001CD2)},
+ {RUNE_C(0x001CD4), RUNE_C(0x001CFA)},
+ {RUNE_C(0x001D00), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFC)},
+ {RUNE_C(0x00200C), RUNE_C(0x00200D)},
+ {RUNE_C(0x00203F), RUNE_C(0x002040)},
+ {RUNE_C(0x002054), RUNE_C(0x002054)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x0020D0), RUNE_C(0x0020DC)},
+ {RUNE_C(0x0020E1), RUNE_C(0x0020E1)},
+ {RUNE_C(0x0020E5), RUNE_C(0x0020F0)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210A), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002118), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x002139)},
+ {RUNE_C(0x00213C), RUNE_C(0x00213F)},
+ {RUNE_C(0x002145), RUNE_C(0x002149)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002160), RUNE_C(0x002188)},
+ {RUNE_C(0x002C00), RUNE_C(0x002CE4)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x002D30), RUNE_C(0x002D67)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
+ {RUNE_C(0x002D7F), RUNE_C(0x002D96)},
+ {RUNE_C(0x002DA0), RUNE_C(0x002DA6)},
+ {RUNE_C(0x002DA8), RUNE_C(0x002DAE)},
+ {RUNE_C(0x002DB0), RUNE_C(0x002DB6)},
+ {RUNE_C(0x002DB8), RUNE_C(0x002DBE)},
+ {RUNE_C(0x002DC0), RUNE_C(0x002DC6)},
+ {RUNE_C(0x002DC8), RUNE_C(0x002DCE)},
+ {RUNE_C(0x002DD0), RUNE_C(0x002DD6)},
+ {RUNE_C(0x002DD8), RUNE_C(0x002DDE)},
+ {RUNE_C(0x002DE0), RUNE_C(0x002DFF)},
+ {RUNE_C(0x003005), RUNE_C(0x003007)},
+ {RUNE_C(0x003021), RUNE_C(0x00302F)},
+ {RUNE_C(0x003031), RUNE_C(0x003035)},
+ {RUNE_C(0x003038), RUNE_C(0x00303C)},
+ {RUNE_C(0x003041), RUNE_C(0x003096)},
+ {RUNE_C(0x003099), RUNE_C(0x00309A)},
+ {RUNE_C(0x00309D), RUNE_C(0x00309F)},
+ {RUNE_C(0x0030A1), RUNE_C(0x0030FF)},
+ {RUNE_C(0x003105), RUNE_C(0x00312F)},
+ {RUNE_C(0x003131), RUNE_C(0x00318E)},
+ {RUNE_C(0x0031A0), RUNE_C(0x0031BF)},
+ {RUNE_C(0x0031F0), RUNE_C(0x0031FF)},
+ {RUNE_C(0x003400), RUNE_C(0x004DBF)},
+ {RUNE_C(0x004E00), RUNE_C(0x00A48C)},
+ {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)},
+ {RUNE_C(0x00A500), RUNE_C(0x00A60C)},
+ {RUNE_C(0x00A610), RUNE_C(0x00A62B)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66F)},
+ {RUNE_C(0x00A674), RUNE_C(0x00A67D)},
+ {RUNE_C(0x00A67F), RUNE_C(0x00A6F1)},
+ {RUNE_C(0x00A717), RUNE_C(0x00A71F)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A788)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A827)},
+ {RUNE_C(0x00A82C), RUNE_C(0x00A82C)},
+ {RUNE_C(0x00A840), RUNE_C(0x00A873)},
+ {RUNE_C(0x00A880), RUNE_C(0x00A8C5)},
+ {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9)},
+ {RUNE_C(0x00A8E0), RUNE_C(0x00A8F7)},
+ {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)},
+ {RUNE_C(0x00A8FD), RUNE_C(0x00A92D)},
+ {RUNE_C(0x00A930), RUNE_C(0x00A953)},
+ {RUNE_C(0x00A960), RUNE_C(0x00A97C)},
+ {RUNE_C(0x00A980), RUNE_C(0x00A9C0)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)},
+ {RUNE_C(0x00A9E0), RUNE_C(0x00A9FE)},
+ {RUNE_C(0x00AA00), RUNE_C(0x00AA36)},
+ {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)},
+ {RUNE_C(0x00AA50), RUNE_C(0x00AA59)},
+ {RUNE_C(0x00AA60), RUNE_C(0x00AA76)},
+ {RUNE_C(0x00AA7A), RUNE_C(0x00AAC2)},
+ {RUNE_C(0x00AADB), RUNE_C(0x00AADD)},
+ {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)},
+ {RUNE_C(0x00AAF2), RUNE_C(0x00AAF6)},
+ {RUNE_C(0x00AB01), RUNE_C(0x00AB06)},
+ {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)},
+ {RUNE_C(0x00AB11), RUNE_C(0x00AB16)},
+ {RUNE_C(0x00AB20), RUNE_C(0x00AB26)},
+ {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)},
+ {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)},
+ {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)},
+ {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)},
+ {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)},
+ {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)},
+ {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)},
+ {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)},
+ {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)},
+ {RUNE_C(0x00FB40), RUNE_C(0x00FB41)},
+ {RUNE_C(0x00FB43), RUNE_C(0x00FB44)},
+ {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)},
+ {RUNE_C(0x00FBD3), RUNE_C(0x00FC5D)},
+ {RUNE_C(0x00FC64), RUNE_C(0x00FD3D)},
+ {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)},
+ {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)},
+ {RUNE_C(0x00FDF0), RUNE_C(0x00FDF9)},
+ {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)},
+ {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)},
+ {RUNE_C(0x00FE33), RUNE_C(0x00FE34)},
+ {RUNE_C(0x00FE4D), RUNE_C(0x00FE4F)},
+ {RUNE_C(0x00FE71), RUNE_C(0x00FE71)},
+ {RUNE_C(0x00FE73), RUNE_C(0x00FE73)},
+ {RUNE_C(0x00FE77), RUNE_C(0x00FE77)},
+ {RUNE_C(0x00FE79), RUNE_C(0x00FE79)},
+ {RUNE_C(0x00FE7B), RUNE_C(0x00FE7B)},
+ {RUNE_C(0x00FE7D), RUNE_C(0x00FE7D)},
+ {RUNE_C(0x00FE7F), RUNE_C(0x00FEFC)},
+ {RUNE_C(0x00FF10), RUNE_C(0x00FF19)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x00FF65), RUNE_C(0x00FFBE)},
+ {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)},
+ {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)},
+ {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)},
+ {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)},
+ {RUNE_C(0x010000), RUNE_C(0x01000B)},
+ {RUNE_C(0x01000D), RUNE_C(0x010026)},
+ {RUNE_C(0x010028), RUNE_C(0x01003A)},
+ {RUNE_C(0x01003C), RUNE_C(0x01003D)},
+ {RUNE_C(0x01003F), RUNE_C(0x01004D)},
+ {RUNE_C(0x010050), RUNE_C(0x01005D)},
+ {RUNE_C(0x010080), RUNE_C(0x0100FA)},
+ {RUNE_C(0x010140), RUNE_C(0x010174)},
+ {RUNE_C(0x0101FD), RUNE_C(0x0101FD)},
+ {RUNE_C(0x010280), RUNE_C(0x01029C)},
+ {RUNE_C(0x0102A0), RUNE_C(0x0102D0)},
+ {RUNE_C(0x0102E0), RUNE_C(0x0102E0)},
+ {RUNE_C(0x010300), RUNE_C(0x01031F)},
+ {RUNE_C(0x01032D), RUNE_C(0x01034A)},
+ {RUNE_C(0x010350), RUNE_C(0x01037A)},
+ {RUNE_C(0x010380), RUNE_C(0x01039D)},
+ {RUNE_C(0x0103A0), RUNE_C(0x0103C3)},
+ {RUNE_C(0x0103C8), RUNE_C(0x0103CF)},
+ {RUNE_C(0x0103D1), RUNE_C(0x0103D5)},
+ {RUNE_C(0x010400), RUNE_C(0x01049D)},
+ {RUNE_C(0x0104A0), RUNE_C(0x0104A9)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010500), RUNE_C(0x010527)},
+ {RUNE_C(0x010530), RUNE_C(0x010563)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010600), RUNE_C(0x010736)},
+ {RUNE_C(0x010740), RUNE_C(0x010755)},
+ {RUNE_C(0x010760), RUNE_C(0x010767)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010800), RUNE_C(0x010805)},
+ {RUNE_C(0x010808), RUNE_C(0x010808)},
+ {RUNE_C(0x01080A), RUNE_C(0x010835)},
+ {RUNE_C(0x010837), RUNE_C(0x010838)},
+ {RUNE_C(0x01083C), RUNE_C(0x01083C)},
+ {RUNE_C(0x01083F), RUNE_C(0x010855)},
+ {RUNE_C(0x010860), RUNE_C(0x010876)},
+ {RUNE_C(0x010880), RUNE_C(0x01089E)},
+ {RUNE_C(0x0108E0), RUNE_C(0x0108F2)},
+ {RUNE_C(0x0108F4), RUNE_C(0x0108F5)},
+ {RUNE_C(0x010900), RUNE_C(0x010915)},
+ {RUNE_C(0x010920), RUNE_C(0x010939)},
+ {RUNE_C(0x010980), RUNE_C(0x0109B7)},
+ {RUNE_C(0x0109BE), RUNE_C(0x0109BF)},
+ {RUNE_C(0x010A00), RUNE_C(0x010A03)},
+ {RUNE_C(0x010A05), RUNE_C(0x010A06)},
+ {RUNE_C(0x010A0C), RUNE_C(0x010A13)},
+ {RUNE_C(0x010A15), RUNE_C(0x010A17)},
+ {RUNE_C(0x010A19), RUNE_C(0x010A35)},
+ {RUNE_C(0x010A38), RUNE_C(0x010A3A)},
+ {RUNE_C(0x010A3F), RUNE_C(0x010A3F)},
+ {RUNE_C(0x010A60), RUNE_C(0x010A7C)},
+ {RUNE_C(0x010A80), RUNE_C(0x010A9C)},
+ {RUNE_C(0x010AC0), RUNE_C(0x010AC7)},
+ {RUNE_C(0x010AC9), RUNE_C(0x010AE6)},
+ {RUNE_C(0x010B00), RUNE_C(0x010B35)},
+ {RUNE_C(0x010B40), RUNE_C(0x010B55)},
+ {RUNE_C(0x010B60), RUNE_C(0x010B72)},
+ {RUNE_C(0x010B80), RUNE_C(0x010B91)},
+ {RUNE_C(0x010C00), RUNE_C(0x010C48)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x010D00), RUNE_C(0x010D27)},
+ {RUNE_C(0x010D30), RUNE_C(0x010D39)},
+ {RUNE_C(0x010E80), RUNE_C(0x010EA9)},
+ {RUNE_C(0x010EAB), RUNE_C(0x010EAC)},
+ {RUNE_C(0x010EB0), RUNE_C(0x010EB1)},
+ {RUNE_C(0x010EFD), RUNE_C(0x010F1C)},
+ {RUNE_C(0x010F27), RUNE_C(0x010F27)},
+ {RUNE_C(0x010F30), RUNE_C(0x010F50)},
+ {RUNE_C(0x010F70), RUNE_C(0x010F85)},
+ {RUNE_C(0x010FB0), RUNE_C(0x010FC4)},
+ {RUNE_C(0x010FE0), RUNE_C(0x010FF6)},
+ {RUNE_C(0x011000), RUNE_C(0x011046)},
+ {RUNE_C(0x011066), RUNE_C(0x011075)},
+ {RUNE_C(0x01107F), RUNE_C(0x0110BA)},
+ {RUNE_C(0x0110C2), RUNE_C(0x0110C2)},
+ {RUNE_C(0x0110D0), RUNE_C(0x0110E8)},
+ {RUNE_C(0x0110F0), RUNE_C(0x0110F9)},
+ {RUNE_C(0x011100), RUNE_C(0x011134)},
+ {RUNE_C(0x011136), RUNE_C(0x01113F)},
+ {RUNE_C(0x011144), RUNE_C(0x011147)},
+ {RUNE_C(0x011150), RUNE_C(0x011173)},
+ {RUNE_C(0x011176), RUNE_C(0x011176)},
+ {RUNE_C(0x011180), RUNE_C(0x0111C4)},
+ {RUNE_C(0x0111C9), RUNE_C(0x0111CC)},
+ {RUNE_C(0x0111CE), RUNE_C(0x0111DA)},
+ {RUNE_C(0x0111DC), RUNE_C(0x0111DC)},
+ {RUNE_C(0x011200), RUNE_C(0x011211)},
+ {RUNE_C(0x011213), RUNE_C(0x011237)},
+ {RUNE_C(0x01123E), RUNE_C(0x011241)},
+ {RUNE_C(0x011280), RUNE_C(0x011286)},
+ {RUNE_C(0x011288), RUNE_C(0x011288)},
+ {RUNE_C(0x01128A), RUNE_C(0x01128D)},
+ {RUNE_C(0x01128F), RUNE_C(0x01129D)},
+ {RUNE_C(0x01129F), RUNE_C(0x0112A8)},
+ {RUNE_C(0x0112B0), RUNE_C(0x0112EA)},
+ {RUNE_C(0x0112F0), RUNE_C(0x0112F9)},
+ {RUNE_C(0x011300), RUNE_C(0x011303)},
+ {RUNE_C(0x011305), RUNE_C(0x01130C)},
+ {RUNE_C(0x01130F), RUNE_C(0x011310)},
+ {RUNE_C(0x011313), RUNE_C(0x011328)},
+ {RUNE_C(0x01132A), RUNE_C(0x011330)},
+ {RUNE_C(0x011332), RUNE_C(0x011333)},
+ {RUNE_C(0x011335), RUNE_C(0x011339)},
+ {RUNE_C(0x01133B), RUNE_C(0x011344)},
+ {RUNE_C(0x011347), RUNE_C(0x011348)},
+ {RUNE_C(0x01134B), RUNE_C(0x01134D)},
+ {RUNE_C(0x011350), RUNE_C(0x011350)},
+ {RUNE_C(0x011357), RUNE_C(0x011357)},
+ {RUNE_C(0x01135D), RUNE_C(0x011363)},
+ {RUNE_C(0x011366), RUNE_C(0x01136C)},
+ {RUNE_C(0x011370), RUNE_C(0x011374)},
+ {RUNE_C(0x011400), RUNE_C(0x01144A)},
+ {RUNE_C(0x011450), RUNE_C(0x011459)},
+ {RUNE_C(0x01145E), RUNE_C(0x011461)},
+ {RUNE_C(0x011480), RUNE_C(0x0114C5)},
+ {RUNE_C(0x0114C7), RUNE_C(0x0114C7)},
+ {RUNE_C(0x0114D0), RUNE_C(0x0114D9)},
+ {RUNE_C(0x011580), RUNE_C(0x0115B5)},
+ {RUNE_C(0x0115B8), RUNE_C(0x0115C0)},
+ {RUNE_C(0x0115D8), RUNE_C(0x0115DD)},
+ {RUNE_C(0x011600), RUNE_C(0x011640)},
+ {RUNE_C(0x011644), RUNE_C(0x011644)},
+ {RUNE_C(0x011650), RUNE_C(0x011659)},
+ {RUNE_C(0x011680), RUNE_C(0x0116B8)},
+ {RUNE_C(0x0116C0), RUNE_C(0x0116C9)},
+ {RUNE_C(0x011700), RUNE_C(0x01171A)},
+ {RUNE_C(0x01171D), RUNE_C(0x01172B)},
+ {RUNE_C(0x011730), RUNE_C(0x011739)},
+ {RUNE_C(0x011740), RUNE_C(0x011746)},
+ {RUNE_C(0x011800), RUNE_C(0x01183A)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118E9)},
+ {RUNE_C(0x0118FF), RUNE_C(0x011906)},
+ {RUNE_C(0x011909), RUNE_C(0x011909)},
+ {RUNE_C(0x01190C), RUNE_C(0x011913)},
+ {RUNE_C(0x011915), RUNE_C(0x011916)},
+ {RUNE_C(0x011918), RUNE_C(0x011935)},
+ {RUNE_C(0x011937), RUNE_C(0x011938)},
+ {RUNE_C(0x01193B), RUNE_C(0x011943)},
+ {RUNE_C(0x011950), RUNE_C(0x011959)},
+ {RUNE_C(0x0119A0), RUNE_C(0x0119A7)},
+ {RUNE_C(0x0119AA), RUNE_C(0x0119D7)},
+ {RUNE_C(0x0119DA), RUNE_C(0x0119E1)},
+ {RUNE_C(0x0119E3), RUNE_C(0x0119E4)},
+ {RUNE_C(0x011A00), RUNE_C(0x011A3E)},
+ {RUNE_C(0x011A47), RUNE_C(0x011A47)},
+ {RUNE_C(0x011A50), RUNE_C(0x011A99)},
+ {RUNE_C(0x011A9D), RUNE_C(0x011A9D)},
+ {RUNE_C(0x011AB0), RUNE_C(0x011AF8)},
+ {RUNE_C(0x011C00), RUNE_C(0x011C08)},
+ {RUNE_C(0x011C0A), RUNE_C(0x011C36)},
+ {RUNE_C(0x011C38), RUNE_C(0x011C40)},
+ {RUNE_C(0x011C50), RUNE_C(0x011C59)},
+ {RUNE_C(0x011C72), RUNE_C(0x011C8F)},
+ {RUNE_C(0x011C92), RUNE_C(0x011CA7)},
+ {RUNE_C(0x011CA9), RUNE_C(0x011CB6)},
+ {RUNE_C(0x011D00), RUNE_C(0x011D06)},
+ {RUNE_C(0x011D08), RUNE_C(0x011D09)},
+ {RUNE_C(0x011D0B), RUNE_C(0x011D36)},
+ {RUNE_C(0x011D3A), RUNE_C(0x011D3A)},
+ {RUNE_C(0x011D3C), RUNE_C(0x011D3D)},
+ {RUNE_C(0x011D3F), RUNE_C(0x011D47)},
+ {RUNE_C(0x011D50), RUNE_C(0x011D59)},
+ {RUNE_C(0x011D60), RUNE_C(0x011D65)},
+ {RUNE_C(0x011D67), RUNE_C(0x011D68)},
+ {RUNE_C(0x011D6A), RUNE_C(0x011D8E)},
+ {RUNE_C(0x011D90), RUNE_C(0x011D91)},
+ {RUNE_C(0x011D93), RUNE_C(0x011D98)},
+ {RUNE_C(0x011DA0), RUNE_C(0x011DA9)},
+ {RUNE_C(0x011EE0), RUNE_C(0x011EF6)},
+ {RUNE_C(0x011F00), RUNE_C(0x011F10)},
+ {RUNE_C(0x011F12), RUNE_C(0x011F3A)},
+ {RUNE_C(0x011F3E), RUNE_C(0x011F42)},
+ {RUNE_C(0x011F50), RUNE_C(0x011F59)},
+ {RUNE_C(0x011FB0), RUNE_C(0x011FB0)},
+ {RUNE_C(0x012000), RUNE_C(0x012399)},
+ {RUNE_C(0x012400), RUNE_C(0x01246E)},
+ {RUNE_C(0x012480), RUNE_C(0x012543)},
+ {RUNE_C(0x012F90), RUNE_C(0x012FF0)},
+ {RUNE_C(0x013000), RUNE_C(0x01342F)},
+ {RUNE_C(0x013440), RUNE_C(0x013455)},
+ {RUNE_C(0x014400), RUNE_C(0x014646)},
+ {RUNE_C(0x016800), RUNE_C(0x016A38)},
+ {RUNE_C(0x016A40), RUNE_C(0x016A5E)},
+ {RUNE_C(0x016A60), RUNE_C(0x016A69)},
+ {RUNE_C(0x016A70), RUNE_C(0x016ABE)},
+ {RUNE_C(0x016AC0), RUNE_C(0x016AC9)},
+ {RUNE_C(0x016AD0), RUNE_C(0x016AED)},
+ {RUNE_C(0x016AF0), RUNE_C(0x016AF4)},
+ {RUNE_C(0x016B00), RUNE_C(0x016B36)},
+ {RUNE_C(0x016B40), RUNE_C(0x016B43)},
+ {RUNE_C(0x016B50), RUNE_C(0x016B59)},
+ {RUNE_C(0x016B63), RUNE_C(0x016B77)},
+ {RUNE_C(0x016B7D), RUNE_C(0x016B8F)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E7F)},
+ {RUNE_C(0x016F00), RUNE_C(0x016F4A)},
+ {RUNE_C(0x016F4F), RUNE_C(0x016F87)},
+ {RUNE_C(0x016F8F), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
+ {RUNE_C(0x016FE3), RUNE_C(0x016FE4)},
+ {RUNE_C(0x016FF0), RUNE_C(0x016FF1)},
+ {RUNE_C(0x017000), RUNE_C(0x0187F7)},
+ {RUNE_C(0x018800), RUNE_C(0x018CD5)},
+ {RUNE_C(0x018D00), RUNE_C(0x018D08)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01B000), RUNE_C(0x01B122)},
+ {RUNE_C(0x01B132), RUNE_C(0x01B132)},
+ {RUNE_C(0x01B150), RUNE_C(0x01B152)},
+ {RUNE_C(0x01B155), RUNE_C(0x01B155)},
+ {RUNE_C(0x01B164), RUNE_C(0x01B167)},
+ {RUNE_C(0x01B170), RUNE_C(0x01B2FB)},
+ {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)},
+ {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)},
+ {RUNE_C(0x01BC80), RUNE_C(0x01BC88)},
+ {RUNE_C(0x01BC90), RUNE_C(0x01BC99)},
+ {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)},
+ {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)},
+ {RUNE_C(0x01CF30), RUNE_C(0x01CF46)},
+ {RUNE_C(0x01D165), RUNE_C(0x01D169)},
+ {RUNE_C(0x01D16D), RUNE_C(0x01D172)},
+ {RUNE_C(0x01D17B), RUNE_C(0x01D182)},
+ {RUNE_C(0x01D185), RUNE_C(0x01D18B)},
+ {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)},
+ {RUNE_C(0x01D242), RUNE_C(0x01D244)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)},
+ {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)},
+ {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)},
+ {RUNE_C(0x01D6FC), RUNE_C(0x01D714)},
+ {RUNE_C(0x01D716), RUNE_C(0x01D734)},
+ {RUNE_C(0x01D736), RUNE_C(0x01D74E)},
+ {RUNE_C(0x01D750), RUNE_C(0x01D76E)},
+ {RUNE_C(0x01D770), RUNE_C(0x01D788)},
+ {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)},
+ {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)},
+ {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)},
+ {RUNE_C(0x01DA00), RUNE_C(0x01DA36)},
+ {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)},
+ {RUNE_C(0x01DA75), RUNE_C(0x01DA75)},
+ {RUNE_C(0x01DA84), RUNE_C(0x01DA84)},
+ {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)},
+ {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E000), RUNE_C(0x01E006)},
+ {RUNE_C(0x01E008), RUNE_C(0x01E018)},
+ {RUNE_C(0x01E01B), RUNE_C(0x01E021)},
+ {RUNE_C(0x01E023), RUNE_C(0x01E024)},
+ {RUNE_C(0x01E026), RUNE_C(0x01E02A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E08F), RUNE_C(0x01E08F)},
+ {RUNE_C(0x01E100), RUNE_C(0x01E12C)},
+ {RUNE_C(0x01E130), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E140), RUNE_C(0x01E149)},
+ {RUNE_C(0x01E14E), RUNE_C(0x01E14E)},
+ {RUNE_C(0x01E290), RUNE_C(0x01E2AE)},
+ {RUNE_C(0x01E2C0), RUNE_C(0x01E2F9)},
+ {RUNE_C(0x01E4D0), RUNE_C(0x01E4F9)},
+ {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)},
+ {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)},
+ {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)},
+ {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)},
+ {RUNE_C(0x01E800), RUNE_C(0x01E8C4)},
+ {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E94B)},
+ {RUNE_C(0x01E950), RUNE_C(0x01E959)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+ {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_xidc(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}
diff --git a/lib/unicode/prop/uprop_is_xids.c b/lib/unicode/prop/uprop_is_xids.c
new file mode 100644
index 0000000..4ee559e
--- /dev/null
+++ b/lib/unicode/prop/uprop_is_xids.c
@@ -0,0 +1,688 @@
+/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */
+
+#include "__bsearch.h"
+#include "bitset.h"
+#include "rune.h"
+#include "unicode/prop.h"
+
+/* clang-format off */
+
+static constexpr bitset(bs, LATIN1_MAX) = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xFE, 0xFF, 0xFF, 0x07, 0xFE, 0xFF, 0xFF, 0x07,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04,
+ 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF,
+};
+
+static const struct {
+ rune lo, hi;
+} lookup[] = {
+ {RUNE_C(0x000100), RUNE_C(0x0002C1)},
+ {RUNE_C(0x0002C6), RUNE_C(0x0002D1)},
+ {RUNE_C(0x0002E0), RUNE_C(0x0002E4)},
+ {RUNE_C(0x0002EC), RUNE_C(0x0002EC)},
+ {RUNE_C(0x0002EE), RUNE_C(0x0002EE)},
+ {RUNE_C(0x000370), RUNE_C(0x000374)},
+ {RUNE_C(0x000376), RUNE_C(0x000377)},
+ {RUNE_C(0x00037B), RUNE_C(0x00037D)},
+ {RUNE_C(0x00037F), RUNE_C(0x00037F)},
+ {RUNE_C(0x000386), RUNE_C(0x000386)},
+ {RUNE_C(0x000388), RUNE_C(0x00038A)},
+ {RUNE_C(0x00038C), RUNE_C(0x00038C)},
+ {RUNE_C(0x00038E), RUNE_C(0x0003A1)},
+ {RUNE_C(0x0003A3), RUNE_C(0x0003F5)},
+ {RUNE_C(0x0003F7), RUNE_C(0x000481)},
+ {RUNE_C(0x00048A), RUNE_C(0x00052F)},
+ {RUNE_C(0x000531), RUNE_C(0x000556)},
+ {RUNE_C(0x000559), RUNE_C(0x000559)},
+ {RUNE_C(0x000560), RUNE_C(0x000588)},
+ {RUNE_C(0x0005D0), RUNE_C(0x0005EA)},
+ {RUNE_C(0x0005EF), RUNE_C(0x0005F2)},
+ {RUNE_C(0x000620), RUNE_C(0x00064A)},
+ {RUNE_C(0x00066E), RUNE_C(0x00066F)},
+ {RUNE_C(0x000671), RUNE_C(0x0006D3)},
+ {RUNE_C(0x0006D5), RUNE_C(0x0006D5)},
+ {RUNE_C(0x0006E5), RUNE_C(0x0006E6)},
+ {RUNE_C(0x0006EE), RUNE_C(0x0006EF)},
+ {RUNE_C(0x0006FA), RUNE_C(0x0006FC)},
+ {RUNE_C(0x0006FF), RUNE_C(0x0006FF)},
+ {RUNE_C(0x000710), RUNE_C(0x000710)},
+ {RUNE_C(0x000712), RUNE_C(0x00072F)},
+ {RUNE_C(0x00074D), RUNE_C(0x0007A5)},
+ {RUNE_C(0x0007B1), RUNE_C(0x0007B1)},
+ {RUNE_C(0x0007CA), RUNE_C(0x0007EA)},
+ {RUNE_C(0x0007F4), RUNE_C(0x0007F5)},
+ {RUNE_C(0x0007FA), RUNE_C(0x0007FA)},
+ {RUNE_C(0x000800), RUNE_C(0x000815)},
+ {RUNE_C(0x00081A), RUNE_C(0x00081A)},
+ {RUNE_C(0x000824), RUNE_C(0x000824)},
+ {RUNE_C(0x000828), RUNE_C(0x000828)},
+ {RUNE_C(0x000840), RUNE_C(0x000858)},
+ {RUNE_C(0x000860), RUNE_C(0x00086A)},
+ {RUNE_C(0x000870), RUNE_C(0x000887)},
+ {RUNE_C(0x000889), RUNE_C(0x00088E)},
+ {RUNE_C(0x0008A0), RUNE_C(0x0008C9)},
+ {RUNE_C(0x000904), RUNE_C(0x000939)},
+ {RUNE_C(0x00093D), RUNE_C(0x00093D)},
+ {RUNE_C(0x000950), RUNE_C(0x000950)},
+ {RUNE_C(0x000958), RUNE_C(0x000961)},
+ {RUNE_C(0x000971), RUNE_C(0x000980)},
+ {RUNE_C(0x000985), RUNE_C(0x00098C)},
+ {RUNE_C(0x00098F), RUNE_C(0x000990)},
+ {RUNE_C(0x000993), RUNE_C(0x0009A8)},
+ {RUNE_C(0x0009AA), RUNE_C(0x0009B0)},
+ {RUNE_C(0x0009B2), RUNE_C(0x0009B2)},
+ {RUNE_C(0x0009B6), RUNE_C(0x0009B9)},
+ {RUNE_C(0x0009BD), RUNE_C(0x0009BD)},
+ {RUNE_C(0x0009CE), RUNE_C(0x0009CE)},
+ {RUNE_C(0x0009DC), RUNE_C(0x0009DD)},
+ {RUNE_C(0x0009DF), RUNE_C(0x0009E1)},
+ {RUNE_C(0x0009F0), RUNE_C(0x0009F1)},
+ {RUNE_C(0x0009FC), RUNE_C(0x0009FC)},
+ {RUNE_C(0x000A05), RUNE_C(0x000A0A)},
+ {RUNE_C(0x000A0F), RUNE_C(0x000A10)},
+ {RUNE_C(0x000A13), RUNE_C(0x000A28)},
+ {RUNE_C(0x000A2A), RUNE_C(0x000A30)},
+ {RUNE_C(0x000A32), RUNE_C(0x000A33)},
+ {RUNE_C(0x000A35), RUNE_C(0x000A36)},
+ {RUNE_C(0x000A38), RUNE_C(0x000A39)},
+ {RUNE_C(0x000A59), RUNE_C(0x000A5C)},
+ {RUNE_C(0x000A5E), RUNE_C(0x000A5E)},
+ {RUNE_C(0x000A72), RUNE_C(0x000A74)},
+ {RUNE_C(0x000A85), RUNE_C(0x000A8D)},
+ {RUNE_C(0x000A8F), RUNE_C(0x000A91)},
+ {RUNE_C(0x000A93), RUNE_C(0x000AA8)},
+ {RUNE_C(0x000AAA), RUNE_C(0x000AB0)},
+ {RUNE_C(0x000AB2), RUNE_C(0x000AB3)},
+ {RUNE_C(0x000AB5), RUNE_C(0x000AB9)},
+ {RUNE_C(0x000ABD), RUNE_C(0x000ABD)},
+ {RUNE_C(0x000AD0), RUNE_C(0x000AD0)},
+ {RUNE_C(0x000AE0), RUNE_C(0x000AE1)},
+ {RUNE_C(0x000AF9), RUNE_C(0x000AF9)},
+ {RUNE_C(0x000B05), RUNE_C(0x000B0C)},
+ {RUNE_C(0x000B0F), RUNE_C(0x000B10)},
+ {RUNE_C(0x000B13), RUNE_C(0x000B28)},
+ {RUNE_C(0x000B2A), RUNE_C(0x000B30)},
+ {RUNE_C(0x000B32), RUNE_C(0x000B33)},
+ {RUNE_C(0x000B35), RUNE_C(0x000B39)},
+ {RUNE_C(0x000B3D), RUNE_C(0x000B3D)},
+ {RUNE_C(0x000B5C), RUNE_C(0x000B5D)},
+ {RUNE_C(0x000B5F), RUNE_C(0x000B61)},
+ {RUNE_C(0x000B71), RUNE_C(0x000B71)},
+ {RUNE_C(0x000B83), RUNE_C(0x000B83)},
+ {RUNE_C(0x000B85), RUNE_C(0x000B8A)},
+ {RUNE_C(0x000B8E), RUNE_C(0x000B90)},
+ {RUNE_C(0x000B92), RUNE_C(0x000B95)},
+ {RUNE_C(0x000B99), RUNE_C(0x000B9A)},
+ {RUNE_C(0x000B9C), RUNE_C(0x000B9C)},
+ {RUNE_C(0x000B9E), RUNE_C(0x000B9F)},
+ {RUNE_C(0x000BA3), RUNE_C(0x000BA4)},
+ {RUNE_C(0x000BA8), RUNE_C(0x000BAA)},
+ {RUNE_C(0x000BAE), RUNE_C(0x000BB9)},
+ {RUNE_C(0x000BD0), RUNE_C(0x000BD0)},
+ {RUNE_C(0x000C05), RUNE_C(0x000C0C)},
+ {RUNE_C(0x000C0E), RUNE_C(0x000C10)},
+ {RUNE_C(0x000C12), RUNE_C(0x000C28)},
+ {RUNE_C(0x000C2A), RUNE_C(0x000C39)},
+ {RUNE_C(0x000C3D), RUNE_C(0x000C3D)},
+ {RUNE_C(0x000C58), RUNE_C(0x000C5A)},
+ {RUNE_C(0x000C5D), RUNE_C(0x000C5D)},
+ {RUNE_C(0x000C60), RUNE_C(0x000C61)},
+ {RUNE_C(0x000C80), RUNE_C(0x000C80)},
+ {RUNE_C(0x000C85), RUNE_C(0x000C8C)},
+ {RUNE_C(0x000C8E), RUNE_C(0x000C90)},
+ {RUNE_C(0x000C92), RUNE_C(0x000CA8)},
+ {RUNE_C(0x000CAA), RUNE_C(0x000CB3)},
+ {RUNE_C(0x000CB5), RUNE_C(0x000CB9)},
+ {RUNE_C(0x000CBD), RUNE_C(0x000CBD)},
+ {RUNE_C(0x000CDD), RUNE_C(0x000CDE)},
+ {RUNE_C(0x000CE0), RUNE_C(0x000CE1)},
+ {RUNE_C(0x000CF1), RUNE_C(0x000CF2)},
+ {RUNE_C(0x000D04), RUNE_C(0x000D0C)},
+ {RUNE_C(0x000D0E), RUNE_C(0x000D10)},
+ {RUNE_C(0x000D12), RUNE_C(0x000D3A)},
+ {RUNE_C(0x000D3D), RUNE_C(0x000D3D)},
+ {RUNE_C(0x000D4E), RUNE_C(0x000D4E)},
+ {RUNE_C(0x000D54), RUNE_C(0x000D56)},
+ {RUNE_C(0x000D5F), RUNE_C(0x000D61)},
+ {RUNE_C(0x000D7A), RUNE_C(0x000D7F)},
+ {RUNE_C(0x000D85), RUNE_C(0x000D96)},
+ {RUNE_C(0x000D9A), RUNE_C(0x000DB1)},
+ {RUNE_C(0x000DB3), RUNE_C(0x000DBB)},
+ {RUNE_C(0x000DBD), RUNE_C(0x000DBD)},
+ {RUNE_C(0x000DC0), RUNE_C(0x000DC6)},
+ {RUNE_C(0x000E01), RUNE_C(0x000E30)},
+ {RUNE_C(0x000E32), RUNE_C(0x000E32)},
+ {RUNE_C(0x000E40), RUNE_C(0x000E46)},
+ {RUNE_C(0x000E81), RUNE_C(0x000E82)},
+ {RUNE_C(0x000E84), RUNE_C(0x000E84)},
+ {RUNE_C(0x000E86), RUNE_C(0x000E8A)},
+ {RUNE_C(0x000E8C), RUNE_C(0x000EA3)},
+ {RUNE_C(0x000EA5), RUNE_C(0x000EA5)},
+ {RUNE_C(0x000EA7), RUNE_C(0x000EB0)},
+ {RUNE_C(0x000EB2), RUNE_C(0x000EB2)},
+ {RUNE_C(0x000EBD), RUNE_C(0x000EBD)},
+ {RUNE_C(0x000EC0), RUNE_C(0x000EC4)},
+ {RUNE_C(0x000EC6), RUNE_C(0x000EC6)},
+ {RUNE_C(0x000EDC), RUNE_C(0x000EDF)},
+ {RUNE_C(0x000F00), RUNE_C(0x000F00)},
+ {RUNE_C(0x000F40), RUNE_C(0x000F47)},
+ {RUNE_C(0x000F49), RUNE_C(0x000F6C)},
+ {RUNE_C(0x000F88), RUNE_C(0x000F8C)},
+ {RUNE_C(0x001000), RUNE_C(0x00102A)},
+ {RUNE_C(0x00103F), RUNE_C(0x00103F)},
+ {RUNE_C(0x001050), RUNE_C(0x001055)},
+ {RUNE_C(0x00105A), RUNE_C(0x00105D)},
+ {RUNE_C(0x001061), RUNE_C(0x001061)},
+ {RUNE_C(0x001065), RUNE_C(0x001066)},
+ {RUNE_C(0x00106E), RUNE_C(0x001070)},
+ {RUNE_C(0x001075), RUNE_C(0x001081)},
+ {RUNE_C(0x00108E), RUNE_C(0x00108E)},
+ {RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
+ {RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
+ {RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
+ {RUNE_C(0x0010D0), RUNE_C(0x0010FA)},
+ {RUNE_C(0x0010FC), RUNE_C(0x001248)},
+ {RUNE_C(0x00124A), RUNE_C(0x00124D)},
+ {RUNE_C(0x001250), RUNE_C(0x001256)},
+ {RUNE_C(0x001258), RUNE_C(0x001258)},
+ {RUNE_C(0x00125A), RUNE_C(0x00125D)},
+ {RUNE_C(0x001260), RUNE_C(0x001288)},
+ {RUNE_C(0x00128A), RUNE_C(0x00128D)},
+ {RUNE_C(0x001290), RUNE_C(0x0012B0)},
+ {RUNE_C(0x0012B2), RUNE_C(0x0012B5)},
+ {RUNE_C(0x0012B8), RUNE_C(0x0012BE)},
+ {RUNE_C(0x0012C0), RUNE_C(0x0012C0)},
+ {RUNE_C(0x0012C2), RUNE_C(0x0012C5)},
+ {RUNE_C(0x0012C8), RUNE_C(0x0012D6)},
+ {RUNE_C(0x0012D8), RUNE_C(0x001310)},
+ {RUNE_C(0x001312), RUNE_C(0x001315)},
+ {RUNE_C(0x001318), RUNE_C(0x00135A)},
+ {RUNE_C(0x001380), RUNE_C(0x00138F)},
+ {RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
+ {RUNE_C(0x0013F8), RUNE_C(0x0013FD)},
+ {RUNE_C(0x001401), RUNE_C(0x00166C)},
+ {RUNE_C(0x00166F), RUNE_C(0x00167F)},
+ {RUNE_C(0x001681), RUNE_C(0x00169A)},
+ {RUNE_C(0x0016A0), RUNE_C(0x0016EA)},
+ {RUNE_C(0x0016EE), RUNE_C(0x0016F8)},
+ {RUNE_C(0x001700), RUNE_C(0x001711)},
+ {RUNE_C(0x00171F), RUNE_C(0x001731)},
+ {RUNE_C(0x001740), RUNE_C(0x001751)},
+ {RUNE_C(0x001760), RUNE_C(0x00176C)},
+ {RUNE_C(0x00176E), RUNE_C(0x001770)},
+ {RUNE_C(0x001780), RUNE_C(0x0017B3)},
+ {RUNE_C(0x0017D7), RUNE_C(0x0017D7)},
+ {RUNE_C(0x0017DC), RUNE_C(0x0017DC)},
+ {RUNE_C(0x001820), RUNE_C(0x001878)},
+ {RUNE_C(0x001880), RUNE_C(0x0018A8)},
+ {RUNE_C(0x0018AA), RUNE_C(0x0018AA)},
+ {RUNE_C(0x0018B0), RUNE_C(0x0018F5)},
+ {RUNE_C(0x001900), RUNE_C(0x00191E)},
+ {RUNE_C(0x001950), RUNE_C(0x00196D)},
+ {RUNE_C(0x001970), RUNE_C(0x001974)},
+ {RUNE_C(0x001980), RUNE_C(0x0019AB)},
+ {RUNE_C(0x0019B0), RUNE_C(0x0019C9)},
+ {RUNE_C(0x001A00), RUNE_C(0x001A16)},
+ {RUNE_C(0x001A20), RUNE_C(0x001A54)},
+ {RUNE_C(0x001AA7), RUNE_C(0x001AA7)},
+ {RUNE_C(0x001B05), RUNE_C(0x001B33)},
+ {RUNE_C(0x001B45), RUNE_C(0x001B4C)},
+ {RUNE_C(0x001B83), RUNE_C(0x001BA0)},
+ {RUNE_C(0x001BAE), RUNE_C(0x001BAF)},
+ {RUNE_C(0x001BBA), RUNE_C(0x001BE5)},
+ {RUNE_C(0x001C00), RUNE_C(0x001C23)},
+ {RUNE_C(0x001C4D), RUNE_C(0x001C4F)},
+ {RUNE_C(0x001C5A), RUNE_C(0x001C7D)},
+ {RUNE_C(0x001C80), RUNE_C(0x001C88)},
+ {RUNE_C(0x001C90), RUNE_C(0x001CBA)},
+ {RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
+ {RUNE_C(0x001CE9), RUNE_C(0x001CEC)},
+ {RUNE_C(0x001CEE), RUNE_C(0x001CF3)},
+ {RUNE_C(0x001CF5), RUNE_C(0x001CF6)},
+ {RUNE_C(0x001CFA), RUNE_C(0x001CFA)},
+ {RUNE_C(0x001D00), RUNE_C(0x001DBF)},
+ {RUNE_C(0x001E00), RUNE_C(0x001F15)},
+ {RUNE_C(0x001F18), RUNE_C(0x001F1D)},
+ {RUNE_C(0x001F20), RUNE_C(0x001F45)},
+ {RUNE_C(0x001F48), RUNE_C(0x001F4D)},
+ {RUNE_C(0x001F50), RUNE_C(0x001F57)},
+ {RUNE_C(0x001F59), RUNE_C(0x001F59)},
+ {RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
+ {RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
+ {RUNE_C(0x001F5F), RUNE_C(0x001F7D)},
+ {RUNE_C(0x001F80), RUNE_C(0x001FB4)},
+ {RUNE_C(0x001FB6), RUNE_C(0x001FBC)},
+ {RUNE_C(0x001FBE), RUNE_C(0x001FBE)},
+ {RUNE_C(0x001FC2), RUNE_C(0x001FC4)},
+ {RUNE_C(0x001FC6), RUNE_C(0x001FCC)},
+ {RUNE_C(0x001FD0), RUNE_C(0x001FD3)},
+ {RUNE_C(0x001FD6), RUNE_C(0x001FDB)},
+ {RUNE_C(0x001FE0), RUNE_C(0x001FEC)},
+ {RUNE_C(0x001FF2), RUNE_C(0x001FF4)},
+ {RUNE_C(0x001FF6), RUNE_C(0x001FFC)},
+ {RUNE_C(0x002071), RUNE_C(0x002071)},
+ {RUNE_C(0x00207F), RUNE_C(0x00207F)},
+ {RUNE_C(0x002090), RUNE_C(0x00209C)},
+ {RUNE_C(0x002102), RUNE_C(0x002102)},
+ {RUNE_C(0x002107), RUNE_C(0x002107)},
+ {RUNE_C(0x00210A), RUNE_C(0x002113)},
+ {RUNE_C(0x002115), RUNE_C(0x002115)},
+ {RUNE_C(0x002118), RUNE_C(0x00211D)},
+ {RUNE_C(0x002124), RUNE_C(0x002124)},
+ {RUNE_C(0x002126), RUNE_C(0x002126)},
+ {RUNE_C(0x002128), RUNE_C(0x002128)},
+ {RUNE_C(0x00212A), RUNE_C(0x002139)},
+ {RUNE_C(0x00213C), RUNE_C(0x00213F)},
+ {RUNE_C(0x002145), RUNE_C(0x002149)},
+ {RUNE_C(0x00214E), RUNE_C(0x00214E)},
+ {RUNE_C(0x002160), RUNE_C(0x002188)},
+ {RUNE_C(0x002C00), RUNE_C(0x002CE4)},
+ {RUNE_C(0x002CEB), RUNE_C(0x002CEE)},
+ {RUNE_C(0x002CF2), RUNE_C(0x002CF3)},
+ {RUNE_C(0x002D00), RUNE_C(0x002D25)},
+ {RUNE_C(0x002D27), RUNE_C(0x002D27)},
+ {RUNE_C(0x002D2D), RUNE_C(0x002D2D)},
+ {RUNE_C(0x002D30), RUNE_C(0x002D67)},
+ {RUNE_C(0x002D6F), RUNE_C(0x002D6F)},
+ {RUNE_C(0x002D80), RUNE_C(0x002D96)},
+ {RUNE_C(0x002DA0), RUNE_C(0x002DA6)},
+ {RUNE_C(0x002DA8), RUNE_C(0x002DAE)},
+ {RUNE_C(0x002DB0), RUNE_C(0x002DB6)},
+ {RUNE_C(0x002DB8), RUNE_C(0x002DBE)},
+ {RUNE_C(0x002DC0), RUNE_C(0x002DC6)},
+ {RUNE_C(0x002DC8), RUNE_C(0x002DCE)},
+ {RUNE_C(0x002DD0), RUNE_C(0x002DD6)},
+ {RUNE_C(0x002DD8), RUNE_C(0x002DDE)},
+ {RUNE_C(0x003005), RUNE_C(0x003007)},
+ {RUNE_C(0x003021), RUNE_C(0x003029)},
+ {RUNE_C(0x003031), RUNE_C(0x003035)},
+ {RUNE_C(0x003038), RUNE_C(0x00303C)},
+ {RUNE_C(0x003041), RUNE_C(0x003096)},
+ {RUNE_C(0x00309D), RUNE_C(0x00309F)},
+ {RUNE_C(0x0030A1), RUNE_C(0x0030FA)},
+ {RUNE_C(0x0030FC), RUNE_C(0x0030FF)},
+ {RUNE_C(0x003105), RUNE_C(0x00312F)},
+ {RUNE_C(0x003131), RUNE_C(0x00318E)},
+ {RUNE_C(0x0031A0), RUNE_C(0x0031BF)},
+ {RUNE_C(0x0031F0), RUNE_C(0x0031FF)},
+ {RUNE_C(0x003400), RUNE_C(0x004DBF)},
+ {RUNE_C(0x004E00), RUNE_C(0x00A48C)},
+ {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)},
+ {RUNE_C(0x00A500), RUNE_C(0x00A60C)},
+ {RUNE_C(0x00A610), RUNE_C(0x00A61F)},
+ {RUNE_C(0x00A62A), RUNE_C(0x00A62B)},
+ {RUNE_C(0x00A640), RUNE_C(0x00A66E)},
+ {RUNE_C(0x00A67F), RUNE_C(0x00A69D)},
+ {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)},
+ {RUNE_C(0x00A717), RUNE_C(0x00A71F)},
+ {RUNE_C(0x00A722), RUNE_C(0x00A788)},
+ {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)},
+ {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)},
+ {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)},
+ {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)},
+ {RUNE_C(0x00A7F2), RUNE_C(0x00A801)},
+ {RUNE_C(0x00A803), RUNE_C(0x00A805)},
+ {RUNE_C(0x00A807), RUNE_C(0x00A80A)},
+ {RUNE_C(0x00A80C), RUNE_C(0x00A822)},
+ {RUNE_C(0x00A840), RUNE_C(0x00A873)},
+ {RUNE_C(0x00A882), RUNE_C(0x00A8B3)},
+ {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)},
+ {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)},
+ {RUNE_C(0x00A8FD), RUNE_C(0x00A8FE)},
+ {RUNE_C(0x00A90A), RUNE_C(0x00A925)},
+ {RUNE_C(0x00A930), RUNE_C(0x00A946)},
+ {RUNE_C(0x00A960), RUNE_C(0x00A97C)},
+ {RUNE_C(0x00A984), RUNE_C(0x00A9B2)},
+ {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)},
+ {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4)},
+ {RUNE_C(0x00A9E6), RUNE_C(0x00A9EF)},
+ {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)},
+ {RUNE_C(0x00AA00), RUNE_C(0x00AA28)},
+ {RUNE_C(0x00AA40), RUNE_C(0x00AA42)},
+ {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)},
+ {RUNE_C(0x00AA60), RUNE_C(0x00AA76)},
+ {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A)},
+ {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF)},
+ {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)},
+ {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)},
+ {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)},
+ {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)},
+ {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)},
+ {RUNE_C(0x00AADB), RUNE_C(0x00AADD)},
+ {RUNE_C(0x00AAE0), RUNE_C(0x00AAEA)},
+ {RUNE_C(0x00AAF2), RUNE_C(0x00AAF4)},
+ {RUNE_C(0x00AB01), RUNE_C(0x00AB06)},
+ {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)},
+ {RUNE_C(0x00AB11), RUNE_C(0x00AB16)},
+ {RUNE_C(0x00AB20), RUNE_C(0x00AB26)},
+ {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)},
+ {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)},
+ {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)},
+ {RUNE_C(0x00AB70), RUNE_C(0x00ABE2)},
+ {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)},
+ {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)},
+ {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)},
+ {RUNE_C(0x00F900), RUNE_C(0x00FA6D)},
+ {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)},
+ {RUNE_C(0x00FB00), RUNE_C(0x00FB06)},
+ {RUNE_C(0x00FB13), RUNE_C(0x00FB17)},
+ {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)},
+ {RUNE_C(0x00FB1F), RUNE_C(0x00FB28)},
+ {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)},
+ {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)},
+ {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)},
+ {RUNE_C(0x00FB40), RUNE_C(0x00FB41)},
+ {RUNE_C(0x00FB43), RUNE_C(0x00FB44)},
+ {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)},
+ {RUNE_C(0x00FBD3), RUNE_C(0x00FC5D)},
+ {RUNE_C(0x00FC64), RUNE_C(0x00FD3D)},
+ {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)},
+ {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)},
+ {RUNE_C(0x00FDF0), RUNE_C(0x00FDF9)},
+ {RUNE_C(0x00FE71), RUNE_C(0x00FE71)},
+ {RUNE_C(0x00FE73), RUNE_C(0x00FE73)},
+ {RUNE_C(0x00FE77), RUNE_C(0x00FE77)},
+ {RUNE_C(0x00FE79), RUNE_C(0x00FE79)},
+ {RUNE_C(0x00FE7B), RUNE_C(0x00FE7B)},
+ {RUNE_C(0x00FE7D), RUNE_C(0x00FE7D)},
+ {RUNE_C(0x00FE7F), RUNE_C(0x00FEFC)},
+ {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
+ {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)},
+ {RUNE_C(0x00FF66), RUNE_C(0x00FF9D)},
+ {RUNE_C(0x00FFA0), RUNE_C(0x00FFBE)},
+ {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)},
+ {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)},
+ {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)},
+ {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)},
+ {RUNE_C(0x010000), RUNE_C(0x01000B)},
+ {RUNE_C(0x01000D), RUNE_C(0x010026)},
+ {RUNE_C(0x010028), RUNE_C(0x01003A)},
+ {RUNE_C(0x01003C), RUNE_C(0x01003D)},
+ {RUNE_C(0x01003F), RUNE_C(0x01004D)},
+ {RUNE_C(0x010050), RUNE_C(0x01005D)},
+ {RUNE_C(0x010080), RUNE_C(0x0100FA)},
+ {RUNE_C(0x010140), RUNE_C(0x010174)},
+ {RUNE_C(0x010280), RUNE_C(0x01029C)},
+ {RUNE_C(0x0102A0), RUNE_C(0x0102D0)},
+ {RUNE_C(0x010300), RUNE_C(0x01031F)},
+ {RUNE_C(0x01032D), RUNE_C(0x01034A)},
+ {RUNE_C(0x010350), RUNE_C(0x010375)},
+ {RUNE_C(0x010380), RUNE_C(0x01039D)},
+ {RUNE_C(0x0103A0), RUNE_C(0x0103C3)},
+ {RUNE_C(0x0103C8), RUNE_C(0x0103CF)},
+ {RUNE_C(0x0103D1), RUNE_C(0x0103D5)},
+ {RUNE_C(0x010400), RUNE_C(0x01049D)},
+ {RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
+ {RUNE_C(0x0104D8), RUNE_C(0x0104FB)},
+ {RUNE_C(0x010500), RUNE_C(0x010527)},
+ {RUNE_C(0x010530), RUNE_C(0x010563)},
+ {RUNE_C(0x010570), RUNE_C(0x01057A)},
+ {RUNE_C(0x01057C), RUNE_C(0x01058A)},
+ {RUNE_C(0x01058C), RUNE_C(0x010592)},
+ {RUNE_C(0x010594), RUNE_C(0x010595)},
+ {RUNE_C(0x010597), RUNE_C(0x0105A1)},
+ {RUNE_C(0x0105A3), RUNE_C(0x0105B1)},
+ {RUNE_C(0x0105B3), RUNE_C(0x0105B9)},
+ {RUNE_C(0x0105BB), RUNE_C(0x0105BC)},
+ {RUNE_C(0x010600), RUNE_C(0x010736)},
+ {RUNE_C(0x010740), RUNE_C(0x010755)},
+ {RUNE_C(0x010760), RUNE_C(0x010767)},
+ {RUNE_C(0x010780), RUNE_C(0x010785)},
+ {RUNE_C(0x010787), RUNE_C(0x0107B0)},
+ {RUNE_C(0x0107B2), RUNE_C(0x0107BA)},
+ {RUNE_C(0x010800), RUNE_C(0x010805)},
+ {RUNE_C(0x010808), RUNE_C(0x010808)},
+ {RUNE_C(0x01080A), RUNE_C(0x010835)},
+ {RUNE_C(0x010837), RUNE_C(0x010838)},
+ {RUNE_C(0x01083C), RUNE_C(0x01083C)},
+ {RUNE_C(0x01083F), RUNE_C(0x010855)},
+ {RUNE_C(0x010860), RUNE_C(0x010876)},
+ {RUNE_C(0x010880), RUNE_C(0x01089E)},
+ {RUNE_C(0x0108E0), RUNE_C(0x0108F2)},
+ {RUNE_C(0x0108F4), RUNE_C(0x0108F5)},
+ {RUNE_C(0x010900), RUNE_C(0x010915)},
+ {RUNE_C(0x010920), RUNE_C(0x010939)},
+ {RUNE_C(0x010980), RUNE_C(0x0109B7)},
+ {RUNE_C(0x0109BE), RUNE_C(0x0109BF)},
+ {RUNE_C(0x010A00), RUNE_C(0x010A00)},
+ {RUNE_C(0x010A10), RUNE_C(0x010A13)},
+ {RUNE_C(0x010A15), RUNE_C(0x010A17)},
+ {RUNE_C(0x010A19), RUNE_C(0x010A35)},
+ {RUNE_C(0x010A60), RUNE_C(0x010A7C)},
+ {RUNE_C(0x010A80), RUNE_C(0x010A9C)},
+ {RUNE_C(0x010AC0), RUNE_C(0x010AC7)},
+ {RUNE_C(0x010AC9), RUNE_C(0x010AE4)},
+ {RUNE_C(0x010B00), RUNE_C(0x010B35)},
+ {RUNE_C(0x010B40), RUNE_C(0x010B55)},
+ {RUNE_C(0x010B60), RUNE_C(0x010B72)},
+ {RUNE_C(0x010B80), RUNE_C(0x010B91)},
+ {RUNE_C(0x010C00), RUNE_C(0x010C48)},
+ {RUNE_C(0x010C80), RUNE_C(0x010CB2)},
+ {RUNE_C(0x010CC0), RUNE_C(0x010CF2)},
+ {RUNE_C(0x010D00), RUNE_C(0x010D23)},
+ {RUNE_C(0x010E80), RUNE_C(0x010EA9)},
+ {RUNE_C(0x010EB0), RUNE_C(0x010EB1)},
+ {RUNE_C(0x010F00), RUNE_C(0x010F1C)},
+ {RUNE_C(0x010F27), RUNE_C(0x010F27)},
+ {RUNE_C(0x010F30), RUNE_C(0x010F45)},
+ {RUNE_C(0x010F70), RUNE_C(0x010F81)},
+ {RUNE_C(0x010FB0), RUNE_C(0x010FC4)},
+ {RUNE_C(0x010FE0), RUNE_C(0x010FF6)},
+ {RUNE_C(0x011003), RUNE_C(0x011037)},
+ {RUNE_C(0x011071), RUNE_C(0x011072)},
+ {RUNE_C(0x011075), RUNE_C(0x011075)},
+ {RUNE_C(0x011083), RUNE_C(0x0110AF)},
+ {RUNE_C(0x0110D0), RUNE_C(0x0110E8)},
+ {RUNE_C(0x011103), RUNE_C(0x011126)},
+ {RUNE_C(0x011144), RUNE_C(0x011144)},
+ {RUNE_C(0x011147), RUNE_C(0x011147)},
+ {RUNE_C(0x011150), RUNE_C(0x011172)},
+ {RUNE_C(0x011176), RUNE_C(0x011176)},
+ {RUNE_C(0x011183), RUNE_C(0x0111B2)},
+ {RUNE_C(0x0111C1), RUNE_C(0x0111C4)},
+ {RUNE_C(0x0111DA), RUNE_C(0x0111DA)},
+ {RUNE_C(0x0111DC), RUNE_C(0x0111DC)},
+ {RUNE_C(0x011200), RUNE_C(0x011211)},
+ {RUNE_C(0x011213), RUNE_C(0x01122B)},
+ {RUNE_C(0x01123F), RUNE_C(0x011240)},
+ {RUNE_C(0x011280), RUNE_C(0x011286)},
+ {RUNE_C(0x011288), RUNE_C(0x011288)},
+ {RUNE_C(0x01128A), RUNE_C(0x01128D)},
+ {RUNE_C(0x01128F), RUNE_C(0x01129D)},
+ {RUNE_C(0x01129F), RUNE_C(0x0112A8)},
+ {RUNE_C(0x0112B0), RUNE_C(0x0112DE)},
+ {RUNE_C(0x011305), RUNE_C(0x01130C)},
+ {RUNE_C(0x01130F), RUNE_C(0x011310)},
+ {RUNE_C(0x011313), RUNE_C(0x011328)},
+ {RUNE_C(0x01132A), RUNE_C(0x011330)},
+ {RUNE_C(0x011332), RUNE_C(0x011333)},
+ {RUNE_C(0x011335), RUNE_C(0x011339)},
+ {RUNE_C(0x01133D), RUNE_C(0x01133D)},
+ {RUNE_C(0x011350), RUNE_C(0x011350)},
+ {RUNE_C(0x01135D), RUNE_C(0x011361)},
+ {RUNE_C(0x011400), RUNE_C(0x011434)},
+ {RUNE_C(0x011447), RUNE_C(0x01144A)},
+ {RUNE_C(0x01145F), RUNE_C(0x011461)},
+ {RUNE_C(0x011480), RUNE_C(0x0114AF)},
+ {RUNE_C(0x0114C4), RUNE_C(0x0114C5)},
+ {RUNE_C(0x0114C7), RUNE_C(0x0114C7)},
+ {RUNE_C(0x011580), RUNE_C(0x0115AE)},
+ {RUNE_C(0x0115D8), RUNE_C(0x0115DB)},
+ {RUNE_C(0x011600), RUNE_C(0x01162F)},
+ {RUNE_C(0x011644), RUNE_C(0x011644)},
+ {RUNE_C(0x011680), RUNE_C(0x0116AA)},
+ {RUNE_C(0x0116B8), RUNE_C(0x0116B8)},
+ {RUNE_C(0x011700), RUNE_C(0x01171A)},
+ {RUNE_C(0x011740), RUNE_C(0x011746)},
+ {RUNE_C(0x011800), RUNE_C(0x01182B)},
+ {RUNE_C(0x0118A0), RUNE_C(0x0118DF)},
+ {RUNE_C(0x0118FF), RUNE_C(0x011906)},
+ {RUNE_C(0x011909), RUNE_C(0x011909)},
+ {RUNE_C(0x01190C), RUNE_C(0x011913)},
+ {RUNE_C(0x011915), RUNE_C(0x011916)},
+ {RUNE_C(0x011918), RUNE_C(0x01192F)},
+ {RUNE_C(0x01193F), RUNE_C(0x01193F)},
+ {RUNE_C(0x011941), RUNE_C(0x011941)},
+ {RUNE_C(0x0119A0), RUNE_C(0x0119A7)},
+ {RUNE_C(0x0119AA), RUNE_C(0x0119D0)},
+ {RUNE_C(0x0119E1), RUNE_C(0x0119E1)},
+ {RUNE_C(0x0119E3), RUNE_C(0x0119E3)},
+ {RUNE_C(0x011A00), RUNE_C(0x011A00)},
+ {RUNE_C(0x011A0B), RUNE_C(0x011A32)},
+ {RUNE_C(0x011A3A), RUNE_C(0x011A3A)},
+ {RUNE_C(0x011A50), RUNE_C(0x011A50)},
+ {RUNE_C(0x011A5C), RUNE_C(0x011A89)},
+ {RUNE_C(0x011A9D), RUNE_C(0x011A9D)},
+ {RUNE_C(0x011AB0), RUNE_C(0x011AF8)},
+ {RUNE_C(0x011C00), RUNE_C(0x011C08)},
+ {RUNE_C(0x011C0A), RUNE_C(0x011C2E)},
+ {RUNE_C(0x011C40), RUNE_C(0x011C40)},
+ {RUNE_C(0x011C72), RUNE_C(0x011C8F)},
+ {RUNE_C(0x011D00), RUNE_C(0x011D06)},
+ {RUNE_C(0x011D08), RUNE_C(0x011D09)},
+ {RUNE_C(0x011D0B), RUNE_C(0x011D30)},
+ {RUNE_C(0x011D46), RUNE_C(0x011D46)},
+ {RUNE_C(0x011D60), RUNE_C(0x011D65)},
+ {RUNE_C(0x011D67), RUNE_C(0x011D68)},
+ {RUNE_C(0x011D6A), RUNE_C(0x011D89)},
+ {RUNE_C(0x011D98), RUNE_C(0x011D98)},
+ {RUNE_C(0x011EE0), RUNE_C(0x011EF2)},
+ {RUNE_C(0x011F02), RUNE_C(0x011F02)},
+ {RUNE_C(0x011F04), RUNE_C(0x011F10)},
+ {RUNE_C(0x011F12), RUNE_C(0x011F33)},
+ {RUNE_C(0x011FB0), RUNE_C(0x011FB0)},
+ {RUNE_C(0x012000), RUNE_C(0x012399)},
+ {RUNE_C(0x012400), RUNE_C(0x01246E)},
+ {RUNE_C(0x012480), RUNE_C(0x012543)},
+ {RUNE_C(0x012F90), RUNE_C(0x012FF0)},
+ {RUNE_C(0x013000), RUNE_C(0x01342F)},
+ {RUNE_C(0x013441), RUNE_C(0x013446)},
+ {RUNE_C(0x014400), RUNE_C(0x014646)},
+ {RUNE_C(0x016800), RUNE_C(0x016A38)},
+ {RUNE_C(0x016A40), RUNE_C(0x016A5E)},
+ {RUNE_C(0x016A70), RUNE_C(0x016ABE)},
+ {RUNE_C(0x016AD0), RUNE_C(0x016AED)},
+ {RUNE_C(0x016B00), RUNE_C(0x016B2F)},
+ {RUNE_C(0x016B40), RUNE_C(0x016B43)},
+ {RUNE_C(0x016B63), RUNE_C(0x016B77)},
+ {RUNE_C(0x016B7D), RUNE_C(0x016B8F)},
+ {RUNE_C(0x016E40), RUNE_C(0x016E7F)},
+ {RUNE_C(0x016F00), RUNE_C(0x016F4A)},
+ {RUNE_C(0x016F50), RUNE_C(0x016F50)},
+ {RUNE_C(0x016F93), RUNE_C(0x016F9F)},
+ {RUNE_C(0x016FE0), RUNE_C(0x016FE1)},
+ {RUNE_C(0x016FE3), RUNE_C(0x016FE3)},
+ {RUNE_C(0x017000), RUNE_C(0x0187F7)},
+ {RUNE_C(0x018800), RUNE_C(0x018CD5)},
+ {RUNE_C(0x018D00), RUNE_C(0x018D08)},
+ {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)},
+ {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)},
+ {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)},
+ {RUNE_C(0x01B000), RUNE_C(0x01B122)},
+ {RUNE_C(0x01B132), RUNE_C(0x01B132)},
+ {RUNE_C(0x01B150), RUNE_C(0x01B152)},
+ {RUNE_C(0x01B155), RUNE_C(0x01B155)},
+ {RUNE_C(0x01B164), RUNE_C(0x01B167)},
+ {RUNE_C(0x01B170), RUNE_C(0x01B2FB)},
+ {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)},
+ {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)},
+ {RUNE_C(0x01BC80), RUNE_C(0x01BC88)},
+ {RUNE_C(0x01BC90), RUNE_C(0x01BC99)},
+ {RUNE_C(0x01D400), RUNE_C(0x01D454)},
+ {RUNE_C(0x01D456), RUNE_C(0x01D49C)},
+ {RUNE_C(0x01D49E), RUNE_C(0x01D49F)},
+ {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)},
+ {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)},
+ {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)},
+ {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)},
+ {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)},
+ {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)},
+ {RUNE_C(0x01D4C5), RUNE_C(0x01D505)},
+ {RUNE_C(0x01D507), RUNE_C(0x01D50A)},
+ {RUNE_C(0x01D50D), RUNE_C(0x01D514)},
+ {RUNE_C(0x01D516), RUNE_C(0x01D51C)},
+ {RUNE_C(0x01D51E), RUNE_C(0x01D539)},
+ {RUNE_C(0x01D53B), RUNE_C(0x01D53E)},
+ {RUNE_C(0x01D540), RUNE_C(0x01D544)},
+ {RUNE_C(0x01D546), RUNE_C(0x01D546)},
+ {RUNE_C(0x01D54A), RUNE_C(0x01D550)},
+ {RUNE_C(0x01D552), RUNE_C(0x01D6A5)},
+ {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)},
+ {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)},
+ {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)},
+ {RUNE_C(0x01D6FC), RUNE_C(0x01D714)},
+ {RUNE_C(0x01D716), RUNE_C(0x01D734)},
+ {RUNE_C(0x01D736), RUNE_C(0x01D74E)},
+ {RUNE_C(0x01D750), RUNE_C(0x01D76E)},
+ {RUNE_C(0x01D770), RUNE_C(0x01D788)},
+ {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)},
+ {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)},
+ {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)},
+ {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)},
+ {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)},
+ {RUNE_C(0x01E030), RUNE_C(0x01E06D)},
+ {RUNE_C(0x01E100), RUNE_C(0x01E12C)},
+ {RUNE_C(0x01E137), RUNE_C(0x01E13D)},
+ {RUNE_C(0x01E14E), RUNE_C(0x01E14E)},
+ {RUNE_C(0x01E290), RUNE_C(0x01E2AD)},
+ {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)},
+ {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)},
+ {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)},
+ {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)},
+ {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)},
+ {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)},
+ {RUNE_C(0x01E800), RUNE_C(0x01E8C4)},
+ {RUNE_C(0x01E900), RUNE_C(0x01E943)},
+ {RUNE_C(0x01E94B), RUNE_C(0x01E94B)},
+ {RUNE_C(0x01EE00), RUNE_C(0x01EE03)},
+ {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)},
+ {RUNE_C(0x01EE21), RUNE_C(0x01EE22)},
+ {RUNE_C(0x01EE24), RUNE_C(0x01EE24)},
+ {RUNE_C(0x01EE27), RUNE_C(0x01EE27)},
+ {RUNE_C(0x01EE29), RUNE_C(0x01EE32)},
+ {RUNE_C(0x01EE34), RUNE_C(0x01EE37)},
+ {RUNE_C(0x01EE39), RUNE_C(0x01EE39)},
+ {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)},
+ {RUNE_C(0x01EE42), RUNE_C(0x01EE42)},
+ {RUNE_C(0x01EE47), RUNE_C(0x01EE47)},
+ {RUNE_C(0x01EE49), RUNE_C(0x01EE49)},
+ {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)},
+ {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)},
+ {RUNE_C(0x01EE51), RUNE_C(0x01EE52)},
+ {RUNE_C(0x01EE54), RUNE_C(0x01EE54)},
+ {RUNE_C(0x01EE57), RUNE_C(0x01EE57)},
+ {RUNE_C(0x01EE59), RUNE_C(0x01EE59)},
+ {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)},
+ {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)},
+ {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)},
+ {RUNE_C(0x01EE61), RUNE_C(0x01EE62)},
+ {RUNE_C(0x01EE64), RUNE_C(0x01EE64)},
+ {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)},
+ {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)},
+ {RUNE_C(0x01EE74), RUNE_C(0x01EE77)},
+ {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)},
+ {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)},
+ {RUNE_C(0x01EE80), RUNE_C(0x01EE89)},
+ {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)},
+ {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)},
+ {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)},
+ {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)},
+ {RUNE_C(0x020000), RUNE_C(0x02A6DF)},
+ {RUNE_C(0x02A700), RUNE_C(0x02B739)},
+ {RUNE_C(0x02B740), RUNE_C(0x02B81D)},
+ {RUNE_C(0x02B820), RUNE_C(0x02CEA1)},
+ {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)},
+ {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)},
+ {RUNE_C(0x02F800), RUNE_C(0x02FA1D)},
+ {RUNE_C(0x030000), RUNE_C(0x03134A)},
+ {RUNE_C(0x031350), RUNE_C(0x0323AF)},
+};
+
+__MLIB_DEFINE_BSEARCH_CONTAINS(lookup)
+
+bool
+uprop_is_xids(rune ch)
+{
+ return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
+}