diff options
Diffstat (limited to 'src/urubu/ucd.go')
-rw-r--r-- | src/urubu/ucd.go | 7199 |
1 files changed, 7199 insertions, 0 deletions
diff --git a/src/urubu/ucd.go b/src/urubu/ucd.go new file mode 100644 index 0000000..3c3da17 --- /dev/null +++ b/src/urubu/ucd.go @@ -0,0 +1,7199 @@ +//go:generate go run ../cmd/ucdgen/main.go +//go:generate go fmt codepoint.go + +package ucd + +import ( + "bufio" + "encoding/binary" + "encoding/hex" + "fmt" + "io" + "regexp" + "strings" +) + +const ( + // https://www.unicode.org/versions/Unicode13.0.0/ch03.pdf + // 3.4 Characters and Encoding + // > D9 Unicode codespace: A range of integers from 0 to 10FFFF16. + codePointMin = 0x0 + codePointMax = 0x10FFFF +) + +func NormalizeCharacterProperty(propName, propVal string) (string, error) { + if propName == "" { + propName = "gc" + } + + name, ok := propertyNameAbbs[normalizeSymbolicValue(propName)] + if !ok { + return "", fmt.Errorf("unsupported character property name: %v", propName) + } + props, ok := derivedCoreProperties[name] + if !ok { + return "", nil + } + var b strings.Builder + yes, ok := binaryValues[normalizeSymbolicValue(propVal)] + if !ok { + return "", fmt.Errorf("unsupported character property value: %v", propVal) + } + if yes { + fmt.Fprint(&b, "[") + } else { + fmt.Fprint(&b, "[^") + } + for _, prop := range props { + fmt.Fprint(&b, prop) + } + fmt.Fprint(&b, "]") + + return b.String(), nil +} + +func IsContributoryProperty(propName string) bool { + if propName == "" { + return false + } + + for _, p := range contributoryProperties { + if propName == p { + return true + } + } + return false +} + +func FindCodePointRanges(propName, propVal string) ([]*CodePointRange, bool, error) { + if propName == "" { + propName = "gc" + } + + name, ok := propertyNameAbbs[normalizeSymbolicValue(propName)] + if !ok { + return nil, false, fmt.Errorf("unsupported character property name: %v", propName) + } + switch name { + case "gc": + val, ok := generalCategoryValueAbbs[normalizeSymbolicValue(propVal)] + if !ok { + return nil, false, fmt.Errorf("unsupported character property value: %v", propVal) + } + if val == generalCategoryValueAbbs[normalizeSymbolicValue(generalCategoryDefaultValue)] { + var allCPs []*CodePointRange + if generalCategoryDefaultRange.From > codePointMin { + allCPs = append(allCPs, &CodePointRange{ + From: codePointMin, + To: generalCategoryDefaultRange.From - 1, + }) + } + if generalCategoryDefaultRange.To < codePointMax { + allCPs = append(allCPs, &CodePointRange{ + From: generalCategoryDefaultRange.To + 1, + To: codePointMax, + }) + } + for _, cp := range generalCategoryCodePoints { + allCPs = append(allCPs, cp...) + } + return allCPs, true, nil + } + vals, ok := compositGeneralCategories[val] + if !ok { + vals = []string{val} + } + var ranges []*CodePointRange + for _, v := range vals { + rs, ok := generalCategoryCodePoints[v] + if !ok { + return nil, false, fmt.Errorf("invalid value of the General_Category property: %v", v) + } + ranges = append(ranges, rs...) + } + return ranges, false, nil + case "sc": + val, ok := scriptValueAbbs[normalizeSymbolicValue(propVal)] + if !ok { + return nil, false, fmt.Errorf("unsupported character property value: %v", propVal) + } + if val == scriptValueAbbs[normalizeSymbolicValue(scriptDefaultValue)] { + var allCPs []*CodePointRange + if scriptDefaultRange.From > codePointMin { + allCPs = append(allCPs, &CodePointRange{ + From: codePointMin, + To: scriptDefaultRange.From - 1, + }) + } + if scriptDefaultRange.To < codePointMax { + allCPs = append(allCPs, &CodePointRange{ + From: scriptDefaultRange.To + 1, + To: codePointMax, + }) + } + for _, cp := range scriptCodepoints { + allCPs = append(allCPs, cp...) + } + return allCPs, true, nil + } + return scriptCodepoints[val], false, nil + case "oalpha": + yes, ok := binaryValues[normalizeSymbolicValue(propVal)] + if !ok { + return nil, false, fmt.Errorf("unsupported character property value: %v", propVal) + } + if yes { + return otherAlphabeticCodePoints, false, nil + } else { + return otherAlphabeticCodePoints, true, nil + } + case "olower": + yes, ok := binaryValues[normalizeSymbolicValue(propVal)] + if !ok { + return nil, false, fmt.Errorf("unsupported character property value: %v", propVal) + } + if yes { + return otherLowercaseCodePoints, false, nil + } else { + return otherLowercaseCodePoints, true, nil + } + case "oupper": + yes, ok := binaryValues[normalizeSymbolicValue(propVal)] + if !ok { + return nil, false, fmt.Errorf("unsupported character property value: %v", propVal) + } + if yes { + return otherUppercaseCodePoints, false, nil + } else { + return otherUppercaseCodePoints, true, nil + } + case "wspace": + yes, ok := binaryValues[normalizeSymbolicValue(propVal)] + if !ok { + return nil, false, fmt.Errorf("unsupported character property value: %v", propVal) + } + if yes { + return whiteSpaceCodePoints, false, nil + } else { + return whiteSpaceCodePoints, true, nil + } + } + + // If the process reaches this code, it's a bug. We must handle all of the properties registered with + // the `propertyNameAbbs`. + return nil, false, fmt.Errorf("character property '%v' is unavailable", propName) +} +// Code generated by generator/main.go; DO NOT EDIT. + +// https://www.unicode.org/Public/13.0.0/ucd/PropertyValueAliases.txt +var generalCategoryValueAbbs = map[string]string{ + "c": "c", + "casedletter": "lc", + "cc": "cc", + "cf": "cf", + "closepunctuation": "pe", + "cn": "cn", + "cntrl": "cc", + "co": "co", + "combiningmark": "m", + "connectorpunctuation": "pc", + "control": "cc", + "cs": "cs", + "currencysymbol": "sc", + "dashpunctuation": "pd", + "decimalnumber": "nd", + "digit": "nd", + "enclosingmark": "me", + "finalpunctuation": "pf", + "format": "cf", + "initialpunctuation": "pi", + "l": "l", + "lc": "lc", + "letter": "l", + "letternumber": "nl", + "lineseparator": "zl", + "ll": "ll", + "lm": "lm", + "lo": "lo", + "lowercaseletter": "ll", + "lt": "lt", + "lu": "lu", + "m": "m", + "mark": "m", + "mathsymbol": "sm", + "mc": "mc", + "me": "me", + "mn": "mn", + "modifierletter": "lm", + "modifiersymbol": "sk", + "n": "n", + "nd": "nd", + "nl": "nl", + "no": "no", + "nonspacingmark": "mn", + "number": "n", + "openpunctuation": "ps", + "other": "c", + "otherletter": "lo", + "othernumber": "no", + "otherpunctuation": "po", + "othersymbol": "so", + "p": "p", + "paragraphseparator": "zp", + "pc": "pc", + "pd": "pd", + "pe": "pe", + "pf": "pf", + "pi": "pi", + "po": "po", + "privateuse": "co", + "ps": "ps", + "punct": "p", + "punctuation": "p", + "s": "s", + "sc": "sc", + "separator": "z", + "sk": "sk", + "sm": "sm", + "so": "so", + "spaceseparator": "zs", + "spacingmark": "mc", + "surrogate": "cs", + "symbol": "s", + "titlecaseletter": "lt", + "unassigned": "cn", + "uppercaseletter": "lu", + "z": "z", + "zl": "zl", + "zp": "zp", + "zs": "zs", +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropertyValueAliases.txt +var scriptValueAbbs = map[string]string{ + "adlam": "adlm", + "adlm": "adlm", + "aghb": "aghb", + "ahom": "ahom", + "anatolianhieroglyphs": "hluw", + "arab": "arab", + "arabic": "arab", + "armenian": "armn", + "armi": "armi", + "armn": "armn", + "avestan": "avst", + "avst": "avst", + "bali": "bali", + "balinese": "bali", + "bamu": "bamu", + "bamum": "bamu", + "bass": "bass", + "bassavah": "bass", + "batak": "batk", + "batk": "batk", + "beng": "beng", + "bengali": "beng", + "bhaiksuki": "bhks", + "bhks": "bhks", + "bopo": "bopo", + "bopomofo": "bopo", + "brah": "brah", + "brahmi": "brah", + "brai": "brai", + "braille": "brai", + "bugi": "bugi", + "buginese": "bugi", + "buhd": "buhd", + "buhid": "buhd", + "cakm": "cakm", + "canadianaboriginal": "cans", + "cans": "cans", + "cari": "cari", + "carian": "cari", + "caucasianalbanian": "aghb", + "chakma": "cakm", + "cham": "cham", + "cher": "cher", + "cherokee": "cher", + "chorasmian": "chrs", + "chrs": "chrs", + "common": "zyyy", + "copt": "copt", + "coptic": "copt", + "cprt": "cprt", + "cuneiform": "xsux", + "cypriot": "cprt", + "cyrillic": "cyrl", + "cyrl": "cyrl", + "deseret": "dsrt", + "deva": "deva", + "devanagari": "deva", + "diak": "diak", + "divesakuru": "diak", + "dogr": "dogr", + "dogra": "dogr", + "dsrt": "dsrt", + "dupl": "dupl", + "duployan": "dupl", + "egyp": "egyp", + "egyptianhieroglyphs": "egyp", + "elba": "elba", + "elbasan": "elba", + "elym": "elym", + "elymaic": "elym", + "ethi": "ethi", + "ethiopic": "ethi", + "geor": "geor", + "georgian": "geor", + "glag": "glag", + "glagolitic": "glag", + "gong": "gong", + "gonm": "gonm", + "goth": "goth", + "gothic": "goth", + "gran": "gran", + "grantha": "gran", + "greek": "grek", + "grek": "grek", + "gujarati": "gujr", + "gujr": "gujr", + "gunjalagondi": "gong", + "gurmukhi": "guru", + "guru": "guru", + "han": "hani", + "hang": "hang", + "hangul": "hang", + "hani": "hani", + "hanifirohingya": "rohg", + "hano": "hano", + "hanunoo": "hano", + "hatr": "hatr", + "hatran": "hatr", + "hebr": "hebr", + "hebrew": "hebr", + "hira": "hira", + "hiragana": "hira", + "hluw": "hluw", + "hmng": "hmng", + "hmnp": "hmnp", + "hrkt": "hrkt", + "hung": "hung", + "imperialaramaic": "armi", + "inherited": "zinh", + "inscriptionalpahlavi": "phli", + "inscriptionalparthian": "prti", + "ital": "ital", + "java": "java", + "javanese": "java", + "kaithi": "kthi", + "kali": "kali", + "kana": "kana", + "kannada": "knda", + "katakana": "kana", + "katakanaorhiragana": "hrkt", + "kayahli": "kali", + "khar": "khar", + "kharoshthi": "khar", + "khitansmallscript": "kits", + "khmer": "khmr", + "khmr": "khmr", + "khoj": "khoj", + "khojki": "khoj", + "khudawadi": "sind", + "kits": "kits", + "knda": "knda", + "kthi": "kthi", + "lana": "lana", + "lao": "laoo", + "laoo": "laoo", + "latin": "latn", + "latn": "latn", + "lepc": "lepc", + "lepcha": "lepc", + "limb": "limb", + "limbu": "limb", + "lina": "lina", + "linb": "linb", + "lineara": "lina", + "linearb": "linb", + "lisu": "lisu", + "lyci": "lyci", + "lycian": "lyci", + "lydi": "lydi", + "lydian": "lydi", + "mahajani": "mahj", + "mahj": "mahj", + "maka": "maka", + "makasar": "maka", + "malayalam": "mlym", + "mand": "mand", + "mandaic": "mand", + "mani": "mani", + "manichaean": "mani", + "marc": "marc", + "marchen": "marc", + "masaramgondi": "gonm", + "medefaidrin": "medf", + "medf": "medf", + "meeteimayek": "mtei", + "mend": "mend", + "mendekikakui": "mend", + "merc": "merc", + "mero": "mero", + "meroiticcursive": "merc", + "meroitichieroglyphs": "mero", + "miao": "plrd", + "mlym": "mlym", + "modi": "modi", + "mong": "mong", + "mongolian": "mong", + "mro": "mroo", + "mroo": "mroo", + "mtei": "mtei", + "mult": "mult", + "multani": "mult", + "myanmar": "mymr", + "mymr": "mymr", + "nabataean": "nbat", + "nand": "nand", + "nandinagari": "nand", + "narb": "narb", + "nbat": "nbat", + "newa": "newa", + "newtailue": "talu", + "nko": "nkoo", + "nkoo": "nkoo", + "nshu": "nshu", + "nushu": "nshu", + "nyiakengpuachuehmong": "hmnp", + "ogam": "ogam", + "ogham": "ogam", + "olchiki": "olck", + "olck": "olck", + "oldhungarian": "hung", + "olditalic": "ital", + "oldnortharabian": "narb", + "oldpermic": "perm", + "oldpersian": "xpeo", + "oldsogdian": "sogo", + "oldsoutharabian": "sarb", + "oldturkic": "orkh", + "oriya": "orya", + "orkh": "orkh", + "orya": "orya", + "osage": "osge", + "osge": "osge", + "osma": "osma", + "osmanya": "osma", + "pahawhhmong": "hmng", + "palm": "palm", + "palmyrene": "palm", + "pauc": "pauc", + "paucinhau": "pauc", + "perm": "perm", + "phag": "phag", + "phagspa": "phag", + "phli": "phli", + "phlp": "phlp", + "phnx": "phnx", + "phoenician": "phnx", + "plrd": "plrd", + "prti": "prti", + "psalterpahlavi": "phlp", + "qaac": "copt", + "qaai": "zinh", + "rejang": "rjng", + "rjng": "rjng", + "rohg": "rohg", + "runic": "runr", + "runr": "runr", + "samaritan": "samr", + "samr": "samr", + "sarb": "sarb", + "saur": "saur", + "saurashtra": "saur", + "sgnw": "sgnw", + "sharada": "shrd", + "shavian": "shaw", + "shaw": "shaw", + "shrd": "shrd", + "sidd": "sidd", + "siddham": "sidd", + "signwriting": "sgnw", + "sind": "sind", + "sinh": "sinh", + "sinhala": "sinh", + "sogd": "sogd", + "sogdian": "sogd", + "sogo": "sogo", + "sora": "sora", + "sorasompeng": "sora", + "soyo": "soyo", + "soyombo": "soyo", + "sund": "sund", + "sundanese": "sund", + "sylo": "sylo", + "sylotinagri": "sylo", + "syrc": "syrc", + "syriac": "syrc", + "tagalog": "tglg", + "tagb": "tagb", + "tagbanwa": "tagb", + "taile": "tale", + "taitham": "lana", + "taiviet": "tavt", + "takr": "takr", + "takri": "takr", + "tale": "tale", + "talu": "talu", + "tamil": "taml", + "taml": "taml", + "tang": "tang", + "tangut": "tang", + "tavt": "tavt", + "telu": "telu", + "telugu": "telu", + "tfng": "tfng", + "tglg": "tglg", + "thaa": "thaa", + "thaana": "thaa", + "thai": "thai", + "tibetan": "tibt", + "tibt": "tibt", + "tifinagh": "tfng", + "tirh": "tirh", + "tirhuta": "tirh", + "ugar": "ugar", + "ugaritic": "ugar", + "unknown": "zzzz", + "vai": "vaii", + "vaii": "vaii", + "wancho": "wcho", + "wara": "wara", + "warangciti": "wara", + "wcho": "wcho", + "xpeo": "xpeo", + "xsux": "xsux", + "yezi": "yezi", + "yezidi": "yezi", + "yi": "yiii", + "yiii": "yiii", + "zanabazarsquare": "zanb", + "zanb": "zanb", + "zinh": "zinh", + "zyyy": "zyyy", + "zzzz": "zzzz", +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropertyValueAliases.txt +var ( + generalCategoryDefaultRange = &CodePointRange{ + From: rune(0), + To: rune(1114111), + } + generalCategoryDefaultValue = "unassigned" +) + +// https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt +var generalCategoryCodePoints = map[string][]*CodePointRange{ + "cc": { + &CodePointRange{From: rune(0), To: rune(31)}, + &CodePointRange{From: rune(127), To: rune(159)}, + }, + "cf": { + &CodePointRange{From: rune(173), To: rune(173)}, + &CodePointRange{From: rune(1536), To: rune(1541)}, + &CodePointRange{From: rune(1564), To: rune(1564)}, + &CodePointRange{From: rune(1757), To: rune(1757)}, + &CodePointRange{From: rune(1807), To: rune(1807)}, + &CodePointRange{From: rune(2274), To: rune(2274)}, + &CodePointRange{From: rune(6158), To: rune(6158)}, + &CodePointRange{From: rune(8203), To: rune(8207)}, + &CodePointRange{From: rune(8234), To: rune(8238)}, + &CodePointRange{From: rune(8288), To: rune(8292)}, + &CodePointRange{From: rune(8294), To: rune(8303)}, + &CodePointRange{From: rune(65279), To: rune(65279)}, + &CodePointRange{From: rune(65529), To: rune(65531)}, + &CodePointRange{From: rune(69821), To: rune(69821)}, + &CodePointRange{From: rune(69837), To: rune(69837)}, + &CodePointRange{From: rune(78896), To: rune(78904)}, + &CodePointRange{From: rune(113824), To: rune(113827)}, + &CodePointRange{From: rune(119155), To: rune(119162)}, + &CodePointRange{From: rune(917505), To: rune(917505)}, + &CodePointRange{From: rune(917536), To: rune(917631)}, + }, + "co": { + &CodePointRange{From: rune(57344), To: rune(57344)}, + &CodePointRange{From: rune(63743), To: rune(63743)}, + &CodePointRange{From: rune(983040), To: rune(983040)}, + &CodePointRange{From: rune(1048573), To: rune(1048573)}, + &CodePointRange{From: rune(1048576), To: rune(1048576)}, + &CodePointRange{From: rune(1114109), To: rune(1114109)}, + }, + "cs": { + &CodePointRange{From: rune(55296), To: rune(55296)}, + &CodePointRange{From: rune(56191), To: rune(56192)}, + &CodePointRange{From: rune(56319), To: rune(56320)}, + &CodePointRange{From: rune(57343), To: rune(57343)}, + }, + "ll": { + &CodePointRange{From: rune(97), To: rune(122)}, + &CodePointRange{From: rune(181), To: rune(181)}, + &CodePointRange{From: rune(223), To: rune(246)}, + &CodePointRange{From: rune(248), To: rune(255)}, + &CodePointRange{From: rune(257), To: rune(257)}, + &CodePointRange{From: rune(259), To: rune(259)}, + &CodePointRange{From: rune(261), To: rune(261)}, + &CodePointRange{From: rune(263), To: rune(263)}, + &CodePointRange{From: rune(265), To: rune(265)}, + &CodePointRange{From: rune(267), To: rune(267)}, + &CodePointRange{From: rune(269), To: rune(269)}, + &CodePointRange{From: rune(271), To: rune(271)}, + &CodePointRange{From: rune(273), To: rune(273)}, + &CodePointRange{From: rune(275), To: rune(275)}, + &CodePointRange{From: rune(277), To: rune(277)}, + &CodePointRange{From: rune(279), To: rune(279)}, + &CodePointRange{From: rune(281), To: rune(281)}, + &CodePointRange{From: rune(283), To: rune(283)}, + &CodePointRange{From: rune(285), To: rune(285)}, + &CodePointRange{From: rune(287), To: rune(287)}, + &CodePointRange{From: rune(289), To: rune(289)}, + &CodePointRange{From: rune(291), To: rune(291)}, + &CodePointRange{From: rune(293), To: rune(293)}, + &CodePointRange{From: rune(295), To: rune(295)}, + &CodePointRange{From: rune(297), To: rune(297)}, + &CodePointRange{From: rune(299), To: rune(299)}, + &CodePointRange{From: rune(301), To: rune(301)}, + &CodePointRange{From: rune(303), To: rune(303)}, + &CodePointRange{From: rune(305), To: rune(305)}, + &CodePointRange{From: rune(307), To: rune(307)}, + &CodePointRange{From: rune(309), To: rune(309)}, + &CodePointRange{From: rune(311), To: rune(312)}, + &CodePointRange{From: rune(314), To: rune(314)}, + &CodePointRange{From: rune(316), To: rune(316)}, + &CodePointRange{From: rune(318), To: rune(318)}, + &CodePointRange{From: rune(320), To: rune(320)}, + &CodePointRange{From: rune(322), To: rune(322)}, + &CodePointRange{From: rune(324), To: rune(324)}, + &CodePointRange{From: rune(326), To: rune(326)}, + &CodePointRange{From: rune(328), To: rune(329)}, + &CodePointRange{From: rune(331), To: rune(331)}, + &CodePointRange{From: rune(333), To: rune(333)}, + &CodePointRange{From: rune(335), To: rune(335)}, + &CodePointRange{From: rune(337), To: rune(337)}, + &CodePointRange{From: rune(339), To: rune(339)}, + &CodePointRange{From: rune(341), To: rune(341)}, + &CodePointRange{From: rune(343), To: rune(343)}, + &CodePointRange{From: rune(345), To: rune(345)}, + &CodePointRange{From: rune(347), To: rune(347)}, + &CodePointRange{From: rune(349), To: rune(349)}, + &CodePointRange{From: rune(351), To: rune(351)}, + &CodePointRange{From: rune(353), To: rune(353)}, + &CodePointRange{From: rune(355), To: rune(355)}, + &CodePointRange{From: rune(357), To: rune(357)}, + &CodePointRange{From: rune(359), To: rune(359)}, + &CodePointRange{From: rune(361), To: rune(361)}, + &CodePointRange{From: rune(363), To: rune(363)}, + &CodePointRange{From: rune(365), To: rune(365)}, + &CodePointRange{From: rune(367), To: rune(367)}, + &CodePointRange{From: rune(369), To: rune(369)}, + &CodePointRange{From: rune(371), To: rune(371)}, + &CodePointRange{From: rune(373), To: rune(373)}, + &CodePointRange{From: rune(375), To: rune(375)}, + &CodePointRange{From: rune(378), To: rune(378)}, + &CodePointRange{From: rune(380), To: rune(380)}, + &CodePointRange{From: rune(382), To: rune(384)}, + &CodePointRange{From: rune(387), To: rune(387)}, + &CodePointRange{From: rune(389), To: rune(389)}, + &CodePointRange{From: rune(392), To: rune(392)}, + &CodePointRange{From: rune(396), To: rune(397)}, + &CodePointRange{From: rune(402), To: rune(402)}, + &CodePointRange{From: rune(405), To: rune(405)}, + &CodePointRange{From: rune(409), To: rune(411)}, + &CodePointRange{From: rune(414), To: rune(414)}, + &CodePointRange{From: rune(417), To: rune(417)}, + &CodePointRange{From: rune(419), To: rune(419)}, + &CodePointRange{From: rune(421), To: rune(421)}, + &CodePointRange{From: rune(424), To: rune(424)}, + &CodePointRange{From: rune(426), To: rune(427)}, + &CodePointRange{From: rune(429), To: rune(429)}, + &CodePointRange{From: rune(432), To: rune(432)}, + &CodePointRange{From: rune(436), To: rune(436)}, + &CodePointRange{From: rune(438), To: rune(438)}, + &CodePointRange{From: rune(441), To: rune(442)}, + &CodePointRange{From: rune(445), To: rune(447)}, + &CodePointRange{From: rune(454), To: rune(454)}, + &CodePointRange{From: rune(457), To: rune(457)}, + &CodePointRange{From: rune(460), To: rune(460)}, + &CodePointRange{From: rune(462), To: rune(462)}, + &CodePointRange{From: rune(464), To: rune(464)}, + &CodePointRange{From: rune(466), To: rune(466)}, + &CodePointRange{From: rune(468), To: rune(468)}, + &CodePointRange{From: rune(470), To: rune(470)}, + &CodePointRange{From: rune(472), To: rune(472)}, + &CodePointRange{From: rune(474), To: rune(474)}, + &CodePointRange{From: rune(476), To: rune(477)}, + &CodePointRange{From: rune(479), To: rune(479)}, + &CodePointRange{From: rune(481), To: rune(481)}, + &CodePointRange{From: rune(483), To: rune(483)}, + &CodePointRange{From: rune(485), To: rune(485)}, + &CodePointRange{From: rune(487), To: rune(487)}, + &CodePointRange{From: rune(489), To: rune(489)}, + &CodePointRange{From: rune(491), To: rune(491)}, + &CodePointRange{From: rune(493), To: rune(493)}, + &CodePointRange{From: rune(495), To: rune(496)}, + &CodePointRange{From: rune(499), To: rune(499)}, + &CodePointRange{From: rune(501), To: rune(501)}, + &CodePointRange{From: rune(505), To: rune(505)}, + &CodePointRange{From: rune(507), To: rune(507)}, + &CodePointRange{From: rune(509), To: rune(509)}, + &CodePointRange{From: rune(511), To: rune(511)}, + &CodePointRange{From: rune(513), To: rune(513)}, + &CodePointRange{From: rune(515), To: rune(515)}, + &CodePointRange{From: rune(517), To: rune(517)}, + &CodePointRange{From: rune(519), To: rune(519)}, + &CodePointRange{From: rune(521), To: rune(521)}, + &CodePointRange{From: rune(523), To: rune(523)}, + &CodePointRange{From: rune(525), To: rune(525)}, + &CodePointRange{From: rune(527), To: rune(527)}, + &CodePointRange{From: rune(529), To: rune(529)}, + &CodePointRange{From: rune(531), To: rune(531)}, + &CodePointRange{From: rune(533), To: rune(533)}, + &CodePointRange{From: rune(535), To: rune(535)}, + &CodePointRange{From: rune(537), To: rune(537)}, + &CodePointRange{From: rune(539), To: rune(539)}, + &CodePointRange{From: rune(541), To: rune(541)}, + &CodePointRange{From: rune(543), To: rune(543)}, + &CodePointRange{From: rune(545), To: rune(545)}, + &CodePointRange{From: rune(547), To: rune(547)}, + &CodePointRange{From: rune(549), To: rune(549)}, + &CodePointRange{From: rune(551), To: rune(551)}, + &CodePointRange{From: rune(553), To: rune(553)}, + &CodePointRange{From: rune(555), To: rune(555)}, + &CodePointRange{From: rune(557), To: rune(557)}, + &CodePointRange{From: rune(559), To: rune(559)}, + &CodePointRange{From: rune(561), To: rune(561)}, + &CodePointRange{From: rune(563), To: rune(569)}, + &CodePointRange{From: rune(572), To: rune(572)}, + &CodePointRange{From: rune(575), To: rune(576)}, + &CodePointRange{From: rune(578), To: rune(578)}, + &CodePointRange{From: rune(583), To: rune(583)}, + &CodePointRange{From: rune(585), To: rune(585)}, + &CodePointRange{From: rune(587), To: rune(587)}, + &CodePointRange{From: rune(589), To: rune(589)}, + &CodePointRange{From: rune(591), To: rune(659)}, + &CodePointRange{From: rune(661), To: rune(687)}, + &CodePointRange{From: rune(881), To: rune(881)}, + &CodePointRange{From: rune(883), To: rune(883)}, + &CodePointRange{From: rune(887), To: rune(887)}, + &CodePointRange{From: rune(891), To: rune(893)}, + &CodePointRange{From: rune(912), To: rune(912)}, + &CodePointRange{From: rune(940), To: rune(974)}, + &CodePointRange{From: rune(976), To: rune(977)}, + &CodePointRange{From: rune(981), To: rune(983)}, + &CodePointRange{From: rune(985), To: rune(985)}, + &CodePointRange{From: rune(987), To: rune(987)}, + &CodePointRange{From: rune(989), To: rune(989)}, + &CodePointRange{From: rune(991), To: rune(991)}, + &CodePointRange{From: rune(993), To: rune(993)}, + &CodePointRange{From: rune(995), To: rune(995)}, + &CodePointRange{From: rune(997), To: rune(997)}, + &CodePointRange{From: rune(999), To: rune(999)}, + &CodePointRange{From: rune(1001), To: rune(1001)}, + &CodePointRange{From: rune(1003), To: rune(1003)}, + &CodePointRange{From: rune(1005), To: rune(1005)}, + &CodePointRange{From: rune(1007), To: rune(1011)}, + &CodePointRange{From: rune(1013), To: rune(1013)}, + &CodePointRange{From: rune(1016), To: rune(1016)}, + &CodePointRange{From: rune(1019), To: rune(1020)}, + &CodePointRange{From: rune(1072), To: rune(1119)}, + &CodePointRange{From: rune(1121), To: rune(1121)}, + &CodePointRange{From: rune(1123), To: rune(1123)}, + &CodePointRange{From: rune(1125), To: rune(1125)}, + &CodePointRange{From: rune(1127), To: rune(1127)}, + &CodePointRange{From: rune(1129), To: rune(1129)}, + &CodePointRange{From: rune(1131), To: rune(1131)}, + &CodePointRange{From: rune(1133), To: rune(1133)}, + &CodePointRange{From: rune(1135), To: rune(1135)}, + &CodePointRange{From: rune(1137), To: rune(1137)}, + &CodePointRange{From: rune(1139), To: rune(1139)}, + &CodePointRange{From: rune(1141), To: rune(1141)}, + &CodePointRange{From: rune(1143), To: rune(1143)}, + &CodePointRange{From: rune(1145), To: rune(1145)}, + &CodePointRange{From: rune(1147), To: rune(1147)}, + &CodePointRange{From: rune(1149), To: rune(1149)}, + &CodePointRange{From: rune(1151), To: rune(1151)}, + &CodePointRange{From: rune(1153), To: rune(1153)}, + &CodePointRange{From: rune(1163), To: rune(1163)}, + &CodePointRange{From: rune(1165), To: rune(1165)}, + &CodePointRange{From: rune(1167), To: rune(1167)}, + &CodePointRange{From: rune(1169), To: rune(1169)}, + &CodePointRange{From: rune(1171), To: rune(1171)}, + &CodePointRange{From: rune(1173), To: rune(1173)}, + &CodePointRange{From: rune(1175), To: rune(1175)}, + &CodePointRange{From: rune(1177), To: rune(1177)}, + &CodePointRange{From: rune(1179), To: rune(1179)}, + &CodePointRange{From: rune(1181), To: rune(1181)}, + &CodePointRange{From: rune(1183), To: rune(1183)}, + &CodePointRange{From: rune(1185), To: rune(1185)}, + &CodePointRange{From: rune(1187), To: rune(1187)}, + &CodePointRange{From: rune(1189), To: rune(1189)}, + &CodePointRange{From: rune(1191), To: rune(1191)}, + &CodePointRange{From: rune(1193), To: rune(1193)}, + &CodePointRange{From: rune(1195), To: rune(1195)}, + &CodePointRange{From: rune(1197), To: rune(1197)}, + &CodePointRange{From: rune(1199), To: rune(1199)}, + &CodePointRange{From: rune(1201), To: rune(1201)}, + &CodePointRange{From: rune(1203), To: rune(1203)}, + &CodePointRange{From: rune(1205), To: rune(1205)}, + &CodePointRange{From: rune(1207), To: rune(1207)}, + &CodePointRange{From: rune(1209), To: rune(1209)}, + &CodePointRange{From: rune(1211), To: rune(1211)}, + &CodePointRange{From: rune(1213), To: rune(1213)}, + &CodePointRange{From: rune(1215), To: rune(1215)}, + &CodePointRange{From: rune(1218), To: rune(1218)}, + &CodePointRange{From: rune(1220), To: rune(1220)}, + &CodePointRange{From: rune(1222), To: rune(1222)}, + &CodePointRange{From: rune(1224), To: rune(1224)}, + &CodePointRange{From: rune(1226), To: rune(1226)}, + &CodePointRange{From: rune(1228), To: rune(1228)}, + &CodePointRange{From: rune(1230), To: rune(1231)}, + &CodePointRange{From: rune(1233), To: rune(1233)}, + &CodePointRange{From: rune(1235), To: rune(1235)}, + &CodePointRange{From: rune(1237), To: rune(1237)}, + &CodePointRange{From: rune(1239), To: rune(1239)}, + &CodePointRange{From: rune(1241), To: rune(1241)}, + &CodePointRange{From: rune(1243), To: rune(1243)}, + &CodePointRange{From: rune(1245), To: rune(1245)}, + &CodePointRange{From: rune(1247), To: rune(1247)}, + &CodePointRange{From: rune(1249), To: rune(1249)}, + &CodePointRange{From: rune(1251), To: rune(1251)}, + &CodePointRange{From: rune(1253), To: rune(1253)}, + &CodePointRange{From: rune(1255), To: rune(1255)}, + &CodePointRange{From: rune(1257), To: rune(1257)}, + &CodePointRange{From: rune(1259), To: rune(1259)}, + &CodePointRange{From: rune(1261), To: rune(1261)}, + &CodePointRange{From: rune(1263), To: rune(1263)}, + &CodePointRange{From: rune(1265), To: rune(1265)}, + &CodePointRange{From: rune(1267), To: rune(1267)}, + &CodePointRange{From: rune(1269), To: rune(1269)}, + &CodePointRange{From: rune(1271), To: rune(1271)}, + &CodePointRange{From: rune(1273), To: rune(1273)}, + &CodePointRange{From: rune(1275), To: rune(1275)}, + &CodePointRange{From: rune(1277), To: rune(1277)}, + &CodePointRange{From: rune(1279), To: rune(1279)}, + &CodePointRange{From: rune(1281), To: rune(1281)}, + &CodePointRange{From: rune(1283), To: rune(1283)}, + &CodePointRange{From: rune(1285), To: rune(1285)}, + &CodePointRange{From: rune(1287), To: rune(1287)}, + &CodePointRange{From: rune(1289), To: rune(1289)}, + &CodePointRange{From: rune(1291), To: rune(1291)}, + &CodePointRange{From: rune(1293), To: rune(1293)}, + &CodePointRange{From: rune(1295), To: rune(1295)}, + &CodePointRange{From: rune(1297), To: rune(1297)}, + &CodePointRange{From: rune(1299), To: rune(1299)}, + &CodePointRange{From: rune(1301), To: rune(1301)}, + &CodePointRange{From: rune(1303), To: rune(1303)}, + &CodePointRange{From: rune(1305), To: rune(1305)}, + &CodePointRange{From: rune(1307), To: rune(1307)}, + &CodePointRange{From: rune(1309), To: rune(1309)}, + &CodePointRange{From: rune(1311), To: rune(1311)}, + &CodePointRange{From: rune(1313), To: rune(1313)}, + &CodePointRange{From: rune(1315), To: rune(1315)}, + &CodePointRange{From: rune(1317), To: rune(1317)}, + &CodePointRange{From: rune(1319), To: rune(1319)}, + &CodePointRange{From: rune(1321), To: rune(1321)}, + &CodePointRange{From: rune(1323), To: rune(1323)}, + &CodePointRange{From: rune(1325), To: rune(1325)}, + &CodePointRange{From: rune(1327), To: rune(1327)}, + &CodePointRange{From: rune(1376), To: rune(1416)}, + &CodePointRange{From: rune(4304), To: rune(4346)}, + &CodePointRange{From: rune(4349), To: rune(4351)}, + &CodePointRange{From: rune(5112), To: rune(5117)}, + &CodePointRange{From: rune(7296), To: rune(7304)}, + &CodePointRange{From: rune(7424), To: rune(7467)}, + &CodePointRange{From: rune(7531), To: rune(7543)}, + &CodePointRange{From: rune(7545), To: rune(7578)}, + &CodePointRange{From: rune(7681), To: rune(7681)}, + &CodePointRange{From: rune(7683), To: rune(7683)}, + &CodePointRange{From: rune(7685), To: rune(7685)}, + &CodePointRange{From: rune(7687), To: rune(7687)}, + &CodePointRange{From: rune(7689), To: rune(7689)}, + &CodePointRange{From: rune(7691), To: rune(7691)}, + &CodePointRange{From: rune(7693), To: rune(7693)}, + &CodePointRange{From: rune(7695), To: rune(7695)}, + &CodePointRange{From: rune(7697), To: rune(7697)}, + &CodePointRange{From: rune(7699), To: rune(7699)}, + &CodePointRange{From: rune(7701), To: rune(7701)}, + &CodePointRange{From: rune(7703), To: rune(7703)}, + &CodePointRange{From: rune(7705), To: rune(7705)}, + &CodePointRange{From: rune(7707), To: rune(7707)}, + &CodePointRange{From: rune(7709), To: rune(7709)}, + &CodePointRange{From: rune(7711), To: rune(7711)}, + &CodePointRange{From: rune(7713), To: rune(7713)}, + &CodePointRange{From: rune(7715), To: rune(7715)}, + &CodePointRange{From: rune(7717), To: rune(7717)}, + &CodePointRange{From: rune(7719), To: rune(7719)}, + &CodePointRange{From: rune(7721), To: rune(7721)}, + &CodePointRange{From: rune(7723), To: rune(7723)}, + &CodePointRange{From: rune(7725), To: rune(7725)}, + &CodePointRange{From: rune(7727), To: rune(7727)}, + &CodePointRange{From: rune(7729), To: rune(7729)}, + &CodePointRange{From: rune(7731), To: rune(7731)}, + &CodePointRange{From: rune(7733), To: rune(7733)}, + &CodePointRange{From: rune(7735), To: rune(7735)}, + &CodePointRange{From: rune(7737), To: rune(7737)}, + &CodePointRange{From: rune(7739), To: rune(7739)}, + &CodePointRange{From: rune(7741), To: rune(7741)}, + &CodePointRange{From: rune(7743), To: rune(7743)}, + &CodePointRange{From: rune(7745), To: rune(7745)}, + &CodePointRange{From: rune(7747), To: rune(7747)}, + &CodePointRange{From: rune(7749), To: rune(7749)}, + &CodePointRange{From: rune(7751), To: rune(7751)}, + &CodePointRange{From: rune(7753), To: rune(7753)}, + &CodePointRange{From: rune(7755), To: rune(7755)}, + &CodePointRange{From: rune(7757), To: rune(7757)}, + &CodePointRange{From: rune(7759), To: rune(7759)}, + &CodePointRange{From: rune(7761), To: rune(7761)}, + &CodePointRange{From: rune(7763), To: rune(7763)}, + &CodePointRange{From: rune(7765), To: rune(7765)}, + &CodePointRange{From: rune(7767), To: rune(7767)}, + &CodePointRange{From: rune(7769), To: rune(7769)}, + &CodePointRange{From: rune(7771), To: rune(7771)}, + &CodePointRange{From: rune(7773), To: rune(7773)}, + &CodePointRange{From: rune(7775), To: rune(7775)}, + &CodePointRange{From: rune(7777), To: rune(7777)}, + &CodePointRange{From: rune(7779), To: rune(7779)}, + &CodePointRange{From: rune(7781), To: rune(7781)}, + &CodePointRange{From: rune(7783), To: rune(7783)}, + &CodePointRange{From: rune(7785), To: rune(7785)}, + &CodePointRange{From: rune(7787), To: rune(7787)}, + &CodePointRange{From: rune(7789), To: rune(7789)}, + &CodePointRange{From: rune(7791), To: rune(7791)}, + &CodePointRange{From: rune(7793), To: rune(7793)}, + &CodePointRange{From: rune(7795), To: rune(7795)}, + &CodePointRange{From: rune(7797), To: rune(7797)}, + &CodePointRange{From: rune(7799), To: rune(7799)}, + &CodePointRange{From: rune(7801), To: rune(7801)}, + &CodePointRange{From: rune(7803), To: rune(7803)}, + &CodePointRange{From: rune(7805), To: rune(7805)}, + &CodePointRange{From: rune(7807), To: rune(7807)}, + &CodePointRange{From: rune(7809), To: rune(7809)}, + &CodePointRange{From: rune(7811), To: rune(7811)}, + &CodePointRange{From: rune(7813), To: rune(7813)}, + &CodePointRange{From: rune(7815), To: rune(7815)}, + &CodePointRange{From: rune(7817), To: rune(7817)}, + &CodePointRange{From: rune(7819), To: rune(7819)}, + &CodePointRange{From: rune(7821), To: rune(7821)}, + &CodePointRange{From: rune(7823), To: rune(7823)}, + &CodePointRange{From: rune(7825), To: rune(7825)}, + &CodePointRange{From: rune(7827), To: rune(7827)}, + &CodePointRange{From: rune(7829), To: rune(7837)}, + &CodePointRange{From: rune(7839), To: rune(7839)}, + &CodePointRange{From: rune(7841), To: rune(7841)}, + &CodePointRange{From: rune(7843), To: rune(7843)}, + &CodePointRange{From: rune(7845), To: rune(7845)}, + &CodePointRange{From: rune(7847), To: rune(7847)}, + &CodePointRange{From: rune(7849), To: rune(7849)}, + &CodePointRange{From: rune(7851), To: rune(7851)}, + &CodePointRange{From: rune(7853), To: rune(7853)}, + &CodePointRange{From: rune(7855), To: rune(7855)}, + &CodePointRange{From: rune(7857), To: rune(7857)}, + &CodePointRange{From: rune(7859), To: rune(7859)}, + &CodePointRange{From: rune(7861), To: rune(7861)}, + &CodePointRange{From: rune(7863), To: rune(7863)}, + &CodePointRange{From: rune(7865), To: rune(7865)}, + &CodePointRange{From: rune(7867), To: rune(7867)}, + &CodePointRange{From: rune(7869), To: rune(7869)}, + &CodePointRange{From: rune(7871), To: rune(7871)}, + &CodePointRange{From: rune(7873), To: rune(7873)}, + &CodePointRange{From: rune(7875), To: rune(7875)}, + &CodePointRange{From: rune(7877), To: rune(7877)}, + &CodePointRange{From: rune(7879), To: rune(7879)}, + &CodePointRange{From: rune(7881), To: rune(7881)}, + &CodePointRange{From: rune(7883), To: rune(7883)}, + &CodePointRange{From: rune(7885), To: rune(7885)}, + &CodePointRange{From: rune(7887), To: rune(7887)}, + &CodePointRange{From: rune(7889), To: rune(7889)}, + &CodePointRange{From: rune(7891), To: rune(7891)}, + &CodePointRange{From: rune(7893), To: rune(7893)}, + &CodePointRange{From: rune(7895), To: rune(7895)}, + &CodePointRange{From: rune(7897), To: rune(7897)}, + &CodePointRange{From: rune(7899), To: rune(7899)}, + &CodePointRange{From: rune(7901), To: rune(7901)}, + &CodePointRange{From: rune(7903), To: rune(7903)}, + &CodePointRange{From: rune(7905), To: rune(7905)}, + &CodePointRange{From: rune(7907), To: rune(7907)}, + &CodePointRange{From: rune(7909), To: rune(7909)}, + &CodePointRange{From: rune(7911), To: rune(7911)}, + &CodePointRange{From: rune(7913), To: rune(7913)}, + &CodePointRange{From: rune(7915), To: rune(7915)}, + &CodePointRange{From: rune(7917), To: rune(7917)}, + &CodePointRange{From: rune(7919), To: rune(7919)}, + &CodePointRange{From: rune(7921), To: rune(7921)}, + &CodePointRange{From: rune(7923), To: rune(7923)}, + &CodePointRange{From: rune(7925), To: rune(7925)}, + &CodePointRange{From: rune(7927), To: rune(7927)}, + &CodePointRange{From: rune(7929), To: rune(7929)}, + &CodePointRange{From: rune(7931), To: rune(7931)}, + &CodePointRange{From: rune(7933), To: rune(7933)}, + &CodePointRange{From: rune(7935), To: rune(7943)}, + &CodePointRange{From: rune(7952), To: rune(7957)}, + &CodePointRange{From: rune(7968), To: rune(7975)}, + &CodePointRange{From: rune(7984), To: rune(7991)}, + &CodePointRange{From: rune(8000), To: rune(8005)}, + &CodePointRange{From: rune(8016), To: rune(8023)}, + &CodePointRange{From: rune(8032), To: rune(8039)}, + &CodePointRange{From: rune(8048), To: rune(8061)}, + &CodePointRange{From: rune(8064), To: rune(8071)}, + &CodePointRange{From: rune(8080), To: rune(8087)}, + &CodePointRange{From: rune(8096), To: rune(8103)}, + &CodePointRange{From: rune(8112), To: rune(8116)}, + &CodePointRange{From: rune(8118), To: rune(8119)}, + &CodePointRange{From: rune(8126), To: rune(8126)}, + &CodePointRange{From: rune(8130), To: rune(8132)}, + &CodePointRange{From: rune(8134), To: rune(8135)}, + &CodePointRange{From: rune(8144), To: rune(8147)}, + &CodePointRange{From: rune(8150), To: rune(8151)}, + &CodePointRange{From: rune(8160), To: rune(8167)}, + &CodePointRange{From: rune(8178), To: rune(8180)}, + &CodePointRange{From: rune(8182), To: rune(8183)}, + &CodePointRange{From: rune(8458), To: rune(8458)}, + &CodePointRange{From: rune(8462), To: rune(8463)}, + &CodePointRange{From: rune(8467), To: rune(8467)}, + &CodePointRange{From: rune(8495), To: rune(8495)}, + &CodePointRange{From: rune(8500), To: rune(8500)}, + &CodePointRange{From: rune(8505), To: rune(8505)}, + &CodePointRange{From: rune(8508), To: rune(8509)}, + &CodePointRange{From: rune(8518), To: rune(8521)}, + &CodePointRange{From: rune(8526), To: rune(8526)}, + &CodePointRange{From: rune(8580), To: rune(8580)}, + &CodePointRange{From: rune(11312), To: rune(11358)}, + &CodePointRange{From: rune(11361), To: rune(11361)}, + &CodePointRange{From: rune(11365), To: rune(11366)}, + &CodePointRange{From: rune(11368), To: rune(11368)}, + &CodePointRange{From: rune(11370), To: rune(11370)}, + &CodePointRange{From: rune(11372), To: rune(11372)}, + &CodePointRange{From: rune(11377), To: rune(11377)}, + &CodePointRange{From: rune(11379), To: rune(11380)}, + &CodePointRange{From: rune(11382), To: rune(11387)}, + &CodePointRange{From: rune(11393), To: rune(11393)}, + &CodePointRange{From: rune(11395), To: rune(11395)}, + &CodePointRange{From: rune(11397), To: rune(11397)}, + &CodePointRange{From: rune(11399), To: rune(11399)}, + &CodePointRange{From: rune(11401), To: rune(11401)}, + &CodePointRange{From: rune(11403), To: rune(11403)}, + &CodePointRange{From: rune(11405), To: rune(11405)}, + &CodePointRange{From: rune(11407), To: rune(11407)}, + &CodePointRange{From: rune(11409), To: rune(11409)}, + &CodePointRange{From: rune(11411), To: rune(11411)}, + &CodePointRange{From: rune(11413), To: rune(11413)}, + &CodePointRange{From: rune(11415), To: rune(11415)}, + &CodePointRange{From: rune(11417), To: rune(11417)}, + &CodePointRange{From: rune(11419), To: rune(11419)}, + &CodePointRange{From: rune(11421), To: rune(11421)}, + &CodePointRange{From: rune(11423), To: rune(11423)}, + &CodePointRange{From: rune(11425), To: rune(11425)}, + &CodePointRange{From: rune(11427), To: rune(11427)}, + &CodePointRange{From: rune(11429), To: rune(11429)}, + &CodePointRange{From: rune(11431), To: rune(11431)}, + &CodePointRange{From: rune(11433), To: rune(11433)}, + &CodePointRange{From: rune(11435), To: rune(11435)}, + &CodePointRange{From: rune(11437), To: rune(11437)}, + &CodePointRange{From: rune(11439), To: rune(11439)}, + &CodePointRange{From: rune(11441), To: rune(11441)}, + &CodePointRange{From: rune(11443), To: rune(11443)}, + &CodePointRange{From: rune(11445), To: rune(11445)}, + &CodePointRange{From: rune(11447), To: rune(11447)}, + &CodePointRange{From: rune(11449), To: rune(11449)}, + &CodePointRange{From: rune(11451), To: rune(11451)}, + &CodePointRange{From: rune(11453), To: rune(11453)}, + &CodePointRange{From: rune(11455), To: rune(11455)}, + &CodePointRange{From: rune(11457), To: rune(11457)}, + &CodePointRange{From: rune(11459), To: rune(11459)}, + &CodePointRange{From: rune(11461), To: rune(11461)}, + &CodePointRange{From: rune(11463), To: rune(11463)}, + &CodePointRange{From: rune(11465), To: rune(11465)}, + &CodePointRange{From: rune(11467), To: rune(11467)}, + &CodePointRange{From: rune(11469), To: rune(11469)}, + &CodePointRange{From: rune(11471), To: rune(11471)}, + &CodePointRange{From: rune(11473), To: rune(11473)}, + &CodePointRange{From: rune(11475), To: rune(11475)}, + &CodePointRange{From: rune(11477), To: rune(11477)}, + &CodePointRange{From: rune(11479), To: rune(11479)}, + &CodePointRange{From: rune(11481), To: rune(11481)}, + &CodePointRange{From: rune(11483), To: rune(11483)}, + &CodePointRange{From: rune(11485), To: rune(11485)}, + &CodePointRange{From: rune(11487), To: rune(11487)}, + &CodePointRange{From: rune(11489), To: rune(11489)}, + &CodePointRange{From: rune(11491), To: rune(11492)}, + &CodePointRange{From: rune(11500), To: rune(11500)}, + &CodePointRange{From: rune(11502), To: rune(11502)}, + &CodePointRange{From: rune(11507), To: rune(11507)}, + &CodePointRange{From: rune(11520), To: rune(11557)}, + &CodePointRange{From: rune(11559), To: rune(11559)}, + &CodePointRange{From: rune(11565), To: rune(11565)}, + &CodePointRange{From: rune(42561), To: rune(42561)}, + &CodePointRange{From: rune(42563), To: rune(42563)}, + &CodePointRange{From: rune(42565), To: rune(42565)}, + &CodePointRange{From: rune(42567), To: rune(42567)}, + &CodePointRange{From: rune(42569), To: rune(42569)}, + &CodePointRange{From: rune(42571), To: rune(42571)}, + &CodePointRange{From: rune(42573), To: rune(42573)}, + &CodePointRange{From: rune(42575), To: rune(42575)}, + &CodePointRange{From: rune(42577), To: rune(42577)}, + &CodePointRange{From: rune(42579), To: rune(42579)}, + &CodePointRange{From: rune(42581), To: rune(42581)}, + &CodePointRange{From: rune(42583), To: rune(42583)}, + &CodePointRange{From: rune(42585), To: rune(42585)}, + &CodePointRange{From: rune(42587), To: rune(42587)}, + &CodePointRange{From: rune(42589), To: rune(42589)}, + &CodePointRange{From: rune(42591), To: rune(42591)}, + &CodePointRange{From: rune(42593), To: rune(42593)}, + &CodePointRange{From: rune(42595), To: rune(42595)}, + &CodePointRange{From: rune(42597), To: rune(42597)}, + &CodePointRange{From: rune(42599), To: rune(42599)}, + &CodePointRange{From: rune(42601), To: rune(42601)}, + &CodePointRange{From: rune(42603), To: rune(42603)}, + &CodePointRange{From: rune(42605), To: rune(42605)}, + &CodePointRange{From: rune(42625), To: rune(42625)}, + &CodePointRange{From: rune(42627), To: rune(42627)}, + &CodePointRange{From: rune(42629), To: rune(42629)}, + &CodePointRange{From: rune(42631), To: rune(42631)}, + &CodePointRange{From: rune(42633), To: rune(42633)}, + &CodePointRange{From: rune(42635), To: rune(42635)}, + &CodePointRange{From: rune(42637), To: rune(42637)}, + &CodePointRange{From: rune(42639), To: rune(42639)}, + &CodePointRange{From: rune(42641), To: rune(42641)}, + &CodePointRange{From: rune(42643), To: rune(42643)}, + &CodePointRange{From: rune(42645), To: rune(42645)}, + &CodePointRange{From: rune(42647), To: rune(42647)}, + &CodePointRange{From: rune(42649), To: rune(42649)}, + &CodePointRange{From: rune(42651), To: rune(42651)}, + &CodePointRange{From: rune(42787), To: rune(42787)}, + &CodePointRange{From: rune(42789), To: rune(42789)}, + &CodePointRange{From: rune(42791), To: rune(42791)}, + &CodePointRange{From: rune(42793), To: rune(42793)}, + &CodePointRange{From: rune(42795), To: rune(42795)}, + &CodePointRange{From: rune(42797), To: rune(42797)}, + &CodePointRange{From: rune(42799), To: rune(42801)}, + &CodePointRange{From: rune(42803), To: rune(42803)}, + &CodePointRange{From: rune(42805), To: rune(42805)}, + &CodePointRange{From: rune(42807), To: rune(42807)}, + &CodePointRange{From: rune(42809), To: rune(42809)}, + &CodePointRange{From: rune(42811), To: rune(42811)}, + &CodePointRange{From: rune(42813), To: rune(42813)}, + &CodePointRange{From: rune(42815), To: rune(42815)}, + &CodePointRange{From: rune(42817), To: rune(42817)}, + &CodePointRange{From: rune(42819), To: rune(42819)}, + &CodePointRange{From: rune(42821), To: rune(42821)}, + &CodePointRange{From: rune(42823), To: rune(42823)}, + &CodePointRange{From: rune(42825), To: rune(42825)}, + &CodePointRange{From: rune(42827), To: rune(42827)}, + &CodePointRange{From: rune(42829), To: rune(42829)}, + &CodePointRange{From: rune(42831), To: rune(42831)}, + &CodePointRange{From: rune(42833), To: rune(42833)}, + &CodePointRange{From: rune(42835), To: rune(42835)}, + &CodePointRange{From: rune(42837), To: rune(42837)}, + &CodePointRange{From: rune(42839), To: rune(42839)}, + &CodePointRange{From: rune(42841), To: rune(42841)}, + &CodePointRange{From: rune(42843), To: rune(42843)}, + &CodePointRange{From: rune(42845), To: rune(42845)}, + &CodePointRange{From: rune(42847), To: rune(42847)}, + &CodePointRange{From: rune(42849), To: rune(42849)}, + &CodePointRange{From: rune(42851), To: rune(42851)}, + &CodePointRange{From: rune(42853), To: rune(42853)}, + &CodePointRange{From: rune(42855), To: rune(42855)}, + &CodePointRange{From: rune(42857), To: rune(42857)}, + &CodePointRange{From: rune(42859), To: rune(42859)}, + &CodePointRange{From: rune(42861), To: rune(42861)}, + &CodePointRange{From: rune(42863), To: rune(42863)}, + &CodePointRange{From: rune(42865), To: rune(42872)}, + &CodePointRange{From: rune(42874), To: rune(42874)}, + &CodePointRange{From: rune(42876), To: rune(42876)}, + &CodePointRange{From: rune(42879), To: rune(42879)}, + &CodePointRange{From: rune(42881), To: rune(42881)}, + &CodePointRange{From: rune(42883), To: rune(42883)}, + &CodePointRange{From: rune(42885), To: rune(42885)}, + &CodePointRange{From: rune(42887), To: rune(42887)}, + &CodePointRange{From: rune(42892), To: rune(42892)}, + &CodePointRange{From: rune(42894), To: rune(42894)}, + &CodePointRange{From: rune(42897), To: rune(42897)}, + &CodePointRange{From: rune(42899), To: rune(42901)}, + &CodePointRange{From: rune(42903), To: rune(42903)}, + &CodePointRange{From: rune(42905), To: rune(42905)}, + &CodePointRange{From: rune(42907), To: rune(42907)}, + &CodePointRange{From: rune(42909), To: rune(42909)}, + &CodePointRange{From: rune(42911), To: rune(42911)}, + &CodePointRange{From: rune(42913), To: rune(42913)}, + &CodePointRange{From: rune(42915), To: rune(42915)}, + &CodePointRange{From: rune(42917), To: rune(42917)}, + &CodePointRange{From: rune(42919), To: rune(42919)}, + &CodePointRange{From: rune(42921), To: rune(42921)}, + &CodePointRange{From: rune(42927), To: rune(42927)}, + &CodePointRange{From: rune(42933), To: rune(42933)}, + &CodePointRange{From: rune(42935), To: rune(42935)}, + &CodePointRange{From: rune(42937), To: rune(42937)}, + &CodePointRange{From: rune(42939), To: rune(42939)}, + &CodePointRange{From: rune(42941), To: rune(42941)}, + &CodePointRange{From: rune(42943), To: rune(42943)}, + &CodePointRange{From: rune(42947), To: rune(42947)}, + &CodePointRange{From: rune(42952), To: rune(42952)}, + &CodePointRange{From: rune(42954), To: rune(42954)}, + &CodePointRange{From: rune(42998), To: rune(42998)}, + &CodePointRange{From: rune(43002), To: rune(43002)}, + &CodePointRange{From: rune(43824), To: rune(43866)}, + &CodePointRange{From: rune(43872), To: rune(43880)}, + &CodePointRange{From: rune(43888), To: rune(43967)}, + &CodePointRange{From: rune(64256), To: rune(64262)}, + &CodePointRange{From: rune(64275), To: rune(64279)}, + &CodePointRange{From: rune(65345), To: rune(65370)}, + &CodePointRange{From: rune(66600), To: rune(66639)}, + &CodePointRange{From: rune(66776), To: rune(66811)}, + &CodePointRange{From: rune(68800), To: rune(68850)}, + &CodePointRange{From: rune(71872), To: rune(71903)}, + &CodePointRange{From: rune(93792), To: rune(93823)}, + &CodePointRange{From: rune(119834), To: rune(119859)}, + &CodePointRange{From: rune(119886), To: rune(119892)}, + &CodePointRange{From: rune(119894), To: rune(119911)}, + &CodePointRange{From: rune(119938), To: rune(119963)}, + &CodePointRange{From: rune(119990), To: rune(119993)}, + &CodePointRange{From: rune(119995), To: rune(119995)}, + &CodePointRange{From: rune(119997), To: rune(120003)}, + &CodePointRange{From: rune(120005), To: rune(120015)}, + &CodePointRange{From: rune(120042), To: rune(120067)}, + &CodePointRange{From: rune(120094), To: rune(120119)}, + &CodePointRange{From: rune(120146), To: rune(120171)}, + &CodePointRange{From: rune(120198), To: rune(120223)}, + &CodePointRange{From: rune(120250), To: rune(120275)}, + &CodePointRange{From: rune(120302), To: rune(120327)}, + &CodePointRange{From: rune(120354), To: rune(120379)}, + &CodePointRange{From: rune(120406), To: rune(120431)}, + &CodePointRange{From: rune(120458), To: rune(120485)}, + &CodePointRange{From: rune(120514), To: rune(120538)}, + &CodePointRange{From: rune(120540), To: rune(120545)}, + &CodePointRange{From: rune(120572), To: rune(120596)}, + &CodePointRange{From: rune(120598), To: rune(120603)}, + &CodePointRange{From: rune(120630), To: rune(120654)}, + &CodePointRange{From: rune(120656), To: rune(120661)}, + &CodePointRange{From: rune(120688), To: rune(120712)}, + &CodePointRange{From: rune(120714), To: rune(120719)}, + &CodePointRange{From: rune(120746), To: rune(120770)}, + &CodePointRange{From: rune(120772), To: rune(120777)}, + &CodePointRange{From: rune(120779), To: rune(120779)}, + &CodePointRange{From: rune(125218), To: rune(125251)}, + }, + "lm": { + &CodePointRange{From: rune(688), To: rune(705)}, + &CodePointRange{From: rune(710), To: rune(721)}, + &CodePointRange{From: rune(736), To: rune(740)}, + &CodePointRange{From: rune(748), To: rune(748)}, + &CodePointRange{From: rune(750), To: rune(750)}, + &CodePointRange{From: rune(884), To: rune(884)}, + &CodePointRange{From: rune(890), To: rune(890)}, + &CodePointRange{From: rune(1369), To: rune(1369)}, + &CodePointRange{From: rune(1600), To: rune(1600)}, + &CodePointRange{From: rune(1765), To: rune(1766)}, + &CodePointRange{From: rune(2036), To: rune(2037)}, + &CodePointRange{From: rune(2042), To: rune(2042)}, + &CodePointRange{From: rune(2074), To: rune(2074)}, + &CodePointRange{From: rune(2084), To: rune(2084)}, + &CodePointRange{From: rune(2088), To: rune(2088)}, + &CodePointRange{From: rune(2417), To: rune(2417)}, + &CodePointRange{From: rune(3654), To: rune(3654)}, + &CodePointRange{From: rune(3782), To: rune(3782)}, + &CodePointRange{From: rune(4348), To: rune(4348)}, + &CodePointRange{From: rune(6103), To: rune(6103)}, + &CodePointRange{From: rune(6211), To: rune(6211)}, + &CodePointRange{From: rune(6823), To: rune(6823)}, + &CodePointRange{From: rune(7288), To: rune(7293)}, + &CodePointRange{From: rune(7468), To: rune(7530)}, + &CodePointRange{From: rune(7544), To: rune(7544)}, + &CodePointRange{From: rune(7579), To: rune(7615)}, + &CodePointRange{From: rune(8305), To: rune(8305)}, + &CodePointRange{From: rune(8319), To: rune(8319)}, + &CodePointRange{From: rune(8336), To: rune(8348)}, + &CodePointRange{From: rune(11388), To: rune(11389)}, + &CodePointRange{From: rune(11631), To: rune(11631)}, + &CodePointRange{From: rune(11823), To: rune(11823)}, + &CodePointRange{From: rune(12293), To: rune(12293)}, + &CodePointRange{From: rune(12337), To: rune(12341)}, + &CodePointRange{From: rune(12347), To: rune(12347)}, + &CodePointRange{From: rune(12445), To: rune(12446)}, + &CodePointRange{From: rune(12540), To: rune(12542)}, + &CodePointRange{From: rune(40981), To: rune(40981)}, + &CodePointRange{From: rune(42232), To: rune(42237)}, + &CodePointRange{From: rune(42508), To: rune(42508)}, + &CodePointRange{From: rune(42623), To: rune(42623)}, + &CodePointRange{From: rune(42652), To: rune(42653)}, + &CodePointRange{From: rune(42775), To: rune(42783)}, + &CodePointRange{From: rune(42864), To: rune(42864)}, + &CodePointRange{From: rune(42888), To: rune(42888)}, + &CodePointRange{From: rune(43000), To: rune(43001)}, + &CodePointRange{From: rune(43471), To: rune(43471)}, + &CodePointRange{From: rune(43494), To: rune(43494)}, + &CodePointRange{From: rune(43632), To: rune(43632)}, + &CodePointRange{From: rune(43741), To: rune(43741)}, + &CodePointRange{From: rune(43763), To: rune(43764)}, + &CodePointRange{From: rune(43868), To: rune(43871)}, + &CodePointRange{From: rune(43881), To: rune(43881)}, + &CodePointRange{From: rune(65392), To: rune(65392)}, + &CodePointRange{From: rune(65438), To: rune(65439)}, + &CodePointRange{From: rune(92992), To: rune(92995)}, + &CodePointRange{From: rune(94099), To: rune(94111)}, + &CodePointRange{From: rune(94176), To: rune(94177)}, + &CodePointRange{From: rune(94179), To: rune(94179)}, + &CodePointRange{From: rune(123191), To: rune(123197)}, + &CodePointRange{From: rune(125259), To: rune(125259)}, + }, + "lo": { + &CodePointRange{From: rune(170), To: rune(170)}, + &CodePointRange{From: rune(186), To: rune(186)}, + &CodePointRange{From: rune(443), To: rune(443)}, + &CodePointRange{From: rune(448), To: rune(451)}, + &CodePointRange{From: rune(660), To: rune(660)}, + &CodePointRange{From: rune(1488), To: rune(1514)}, + &CodePointRange{From: rune(1519), To: rune(1522)}, + &CodePointRange{From: rune(1568), To: rune(1599)}, + &CodePointRange{From: rune(1601), To: rune(1610)}, + &CodePointRange{From: rune(1646), To: rune(1647)}, + &CodePointRange{From: rune(1649), To: rune(1747)}, + &CodePointRange{From: rune(1749), To: rune(1749)}, + &CodePointRange{From: rune(1774), To: rune(1775)}, + &CodePointRange{From: rune(1786), To: rune(1788)}, + &CodePointRange{From: rune(1791), To: rune(1791)}, + &CodePointRange{From: rune(1808), To: rune(1808)}, + &CodePointRange{From: rune(1810), To: rune(1839)}, + &CodePointRange{From: rune(1869), To: rune(1957)}, + &CodePointRange{From: rune(1969), To: rune(1969)}, + &CodePointRange{From: rune(1994), To: rune(2026)}, + &CodePointRange{From: rune(2048), To: rune(2069)}, + &CodePointRange{From: rune(2112), To: rune(2136)}, + &CodePointRange{From: rune(2144), To: rune(2154)}, + &CodePointRange{From: rune(2208), To: rune(2228)}, + &CodePointRange{From: rune(2230), To: rune(2247)}, + &CodePointRange{From: rune(2308), To: rune(2361)}, + &CodePointRange{From: rune(2365), To: rune(2365)}, + &CodePointRange{From: rune(2384), To: rune(2384)}, + &CodePointRange{From: rune(2392), To: rune(2401)}, + &CodePointRange{From: rune(2418), To: rune(2432)}, + &CodePointRange{From: rune(2437), To: rune(2444)}, + &CodePointRange{From: rune(2447), To: rune(2448)}, + &CodePointRange{From: rune(2451), To: rune(2472)}, + &CodePointRange{From: rune(2474), To: rune(2480)}, + &CodePointRange{From: rune(2482), To: rune(2482)}, + &CodePointRange{From: rune(2486), To: rune(2489)}, + &CodePointRange{From: rune(2493), To: rune(2493)}, + &CodePointRange{From: rune(2510), To: rune(2510)}, + &CodePointRange{From: rune(2524), To: rune(2525)}, + &CodePointRange{From: rune(2527), To: rune(2529)}, + &CodePointRange{From: rune(2544), To: rune(2545)}, + &CodePointRange{From: rune(2556), To: rune(2556)}, + &CodePointRange{From: rune(2565), To: rune(2570)}, + &CodePointRange{From: rune(2575), To: rune(2576)}, + &CodePointRange{From: rune(2579), To: rune(2600)}, + &CodePointRange{From: rune(2602), To: rune(2608)}, + &CodePointRange{From: rune(2610), To: rune(2611)}, + &CodePointRange{From: rune(2613), To: rune(2614)}, + &CodePointRange{From: rune(2616), To: rune(2617)}, + &CodePointRange{From: rune(2649), To: rune(2652)}, + &CodePointRange{From: rune(2654), To: rune(2654)}, + &CodePointRange{From: rune(2674), To: rune(2676)}, + &CodePointRange{From: rune(2693), To: rune(2701)}, + &CodePointRange{From: rune(2703), To: rune(2705)}, + &CodePointRange{From: rune(2707), To: rune(2728)}, + &CodePointRange{From: rune(2730), To: rune(2736)}, + &CodePointRange{From: rune(2738), To: rune(2739)}, + &CodePointRange{From: rune(2741), To: rune(2745)}, + &CodePointRange{From: rune(2749), To: rune(2749)}, + &CodePointRange{From: rune(2768), To: rune(2768)}, + &CodePointRange{From: rune(2784), To: rune(2785)}, + &CodePointRange{From: rune(2809), To: rune(2809)}, + &CodePointRange{From: rune(2821), To: rune(2828)}, + &CodePointRange{From: rune(2831), To: rune(2832)}, + &CodePointRange{From: rune(2835), To: rune(2856)}, + &CodePointRange{From: rune(2858), To: rune(2864)}, + &CodePointRange{From: rune(2866), To: rune(2867)}, + &CodePointRange{From: rune(2869), To: rune(2873)}, + &CodePointRange{From: rune(2877), To: rune(2877)}, + &CodePointRange{From: rune(2908), To: rune(2909)}, + &CodePointRange{From: rune(2911), To: rune(2913)}, + &CodePointRange{From: rune(2929), To: rune(2929)}, + &CodePointRange{From: rune(2947), To: rune(2947)}, + &CodePointRange{From: rune(2949), To: rune(2954)}, + &CodePointRange{From: rune(2958), To: rune(2960)}, + &CodePointRange{From: rune(2962), To: rune(2965)}, + &CodePointRange{From: rune(2969), To: rune(2970)}, + &CodePointRange{From: rune(2972), To: rune(2972)}, + &CodePointRange{From: rune(2974), To: rune(2975)}, + &CodePointRange{From: rune(2979), To: rune(2980)}, + &CodePointRange{From: rune(2984), To: rune(2986)}, + &CodePointRange{From: rune(2990), To: rune(3001)}, + &CodePointRange{From: rune(3024), To: rune(3024)}, + &CodePointRange{From: rune(3077), To: rune(3084)}, + &CodePointRange{From: rune(3086), To: rune(3088)}, + &CodePointRange{From: rune(3090), To: rune(3112)}, + &CodePointRange{From: rune(3114), To: rune(3129)}, + &CodePointRange{From: rune(3133), To: rune(3133)}, + &CodePointRange{From: rune(3160), To: rune(3162)}, + &CodePointRange{From: rune(3168), To: rune(3169)}, + &CodePointRange{From: rune(3200), To: rune(3200)}, + &CodePointRange{From: rune(3205), To: rune(3212)}, + &CodePointRange{From: rune(3214), To: rune(3216)}, + &CodePointRange{From: rune(3218), To: rune(3240)}, + &CodePointRange{From: rune(3242), To: rune(3251)}, + &CodePointRange{From: rune(3253), To: rune(3257)}, + &CodePointRange{From: rune(3261), To: rune(3261)}, + &CodePointRange{From: rune(3294), To: rune(3294)}, + &CodePointRange{From: rune(3296), To: rune(3297)}, + &CodePointRange{From: rune(3313), To: rune(3314)}, + &CodePointRange{From: rune(3332), To: rune(3340)}, + &CodePointRange{From: rune(3342), To: rune(3344)}, + &CodePointRange{From: rune(3346), To: rune(3386)}, + &CodePointRange{From: rune(3389), To: rune(3389)}, + &CodePointRange{From: rune(3406), To: rune(3406)}, + &CodePointRange{From: rune(3412), To: rune(3414)}, + &CodePointRange{From: rune(3423), To: rune(3425)}, + &CodePointRange{From: rune(3450), To: rune(3455)}, + &CodePointRange{From: rune(3461), To: rune(3478)}, + &CodePointRange{From: rune(3482), To: rune(3505)}, + &CodePointRange{From: rune(3507), To: rune(3515)}, + &CodePointRange{From: rune(3517), To: rune(3517)}, + &CodePointRange{From: rune(3520), To: rune(3526)}, + &CodePointRange{From: rune(3585), To: rune(3632)}, + &CodePointRange{From: rune(3634), To: rune(3635)}, + &CodePointRange{From: rune(3648), To: rune(3653)}, + &CodePointRange{From: rune(3713), To: rune(3714)}, + &CodePointRange{From: rune(3716), To: rune(3716)}, + &CodePointRange{From: rune(3718), To: rune(3722)}, + &CodePointRange{From: rune(3724), To: rune(3747)}, + &CodePointRange{From: rune(3749), To: rune(3749)}, + &CodePointRange{From: rune(3751), To: rune(3760)}, + &CodePointRange{From: rune(3762), To: rune(3763)}, + &CodePointRange{From: rune(3773), To: rune(3773)}, + &CodePointRange{From: rune(3776), To: rune(3780)}, + &CodePointRange{From: rune(3804), To: rune(3807)}, + &CodePointRange{From: rune(3840), To: rune(3840)}, + &CodePointRange{From: rune(3904), To: rune(3911)}, + &CodePointRange{From: rune(3913), To: rune(3948)}, + &CodePointRange{From: rune(3976), To: rune(3980)}, + &CodePointRange{From: rune(4096), To: rune(4138)}, + &CodePointRange{From: rune(4159), To: rune(4159)}, + &CodePointRange{From: rune(4176), To: rune(4181)}, + &CodePointRange{From: rune(4186), To: rune(4189)}, + &CodePointRange{From: rune(4193), To: rune(4193)}, + &CodePointRange{From: rune(4197), To: rune(4198)}, + &CodePointRange{From: rune(4206), To: rune(4208)}, + &CodePointRange{From: rune(4213), To: rune(4225)}, + &CodePointRange{From: rune(4238), To: rune(4238)}, + &CodePointRange{From: rune(4352), To: rune(4680)}, + &CodePointRange{From: rune(4682), To: rune(4685)}, + &CodePointRange{From: rune(4688), To: rune(4694)}, + &CodePointRange{From: rune(4696), To: rune(4696)}, + &CodePointRange{From: rune(4698), To: rune(4701)}, + &CodePointRange{From: rune(4704), To: rune(4744)}, + &CodePointRange{From: rune(4746), To: rune(4749)}, + &CodePointRange{From: rune(4752), To: rune(4784)}, + &CodePointRange{From: rune(4786), To: rune(4789)}, + &CodePointRange{From: rune(4792), To: rune(4798)}, + &CodePointRange{From: rune(4800), To: rune(4800)}, + &CodePointRange{From: rune(4802), To: rune(4805)}, + &CodePointRange{From: rune(4808), To: rune(4822)}, + &CodePointRange{From: rune(4824), To: rune(4880)}, + &CodePointRange{From: rune(4882), To: rune(4885)}, + &CodePointRange{From: rune(4888), To: rune(4954)}, + &CodePointRange{From: rune(4992), To: rune(5007)}, + &CodePointRange{From: rune(5121), To: rune(5740)}, + &CodePointRange{From: rune(5743), To: rune(5759)}, + &CodePointRange{From: rune(5761), To: rune(5786)}, + &CodePointRange{From: rune(5792), To: rune(5866)}, + &CodePointRange{From: rune(5873), To: rune(5880)}, + &CodePointRange{From: rune(5888), To: rune(5900)}, + &CodePointRange{From: rune(5902), To: rune(5905)}, + &CodePointRange{From: rune(5920), To: rune(5937)}, + &CodePointRange{From: rune(5952), To: rune(5969)}, + &CodePointRange{From: rune(5984), To: rune(5996)}, + &CodePointRange{From: rune(5998), To: rune(6000)}, + &CodePointRange{From: rune(6016), To: rune(6067)}, + &CodePointRange{From: rune(6108), To: rune(6108)}, + &CodePointRange{From: rune(6176), To: rune(6210)}, + &CodePointRange{From: rune(6212), To: rune(6264)}, + &CodePointRange{From: rune(6272), To: rune(6276)}, + &CodePointRange{From: rune(6279), To: rune(6312)}, + &CodePointRange{From: rune(6314), To: rune(6314)}, + &CodePointRange{From: rune(6320), To: rune(6389)}, + &CodePointRange{From: rune(6400), To: rune(6430)}, + &CodePointRange{From: rune(6480), To: rune(6509)}, + &CodePointRange{From: rune(6512), To: rune(6516)}, + &CodePointRange{From: rune(6528), To: rune(6571)}, + &CodePointRange{From: rune(6576), To: rune(6601)}, + &CodePointRange{From: rune(6656), To: rune(6678)}, + &CodePointRange{From: rune(6688), To: rune(6740)}, + &CodePointRange{From: rune(6917), To: rune(6963)}, + &CodePointRange{From: rune(6981), To: rune(6987)}, + &CodePointRange{From: rune(7043), To: rune(7072)}, + &CodePointRange{From: rune(7086), To: rune(7087)}, + &CodePointRange{From: rune(7098), To: rune(7141)}, + &CodePointRange{From: rune(7168), To: rune(7203)}, + &CodePointRange{From: rune(7245), To: rune(7247)}, + &CodePointRange{From: rune(7258), To: rune(7287)}, + &CodePointRange{From: rune(7401), To: rune(7404)}, + &CodePointRange{From: rune(7406), To: rune(7411)}, + &CodePointRange{From: rune(7413), To: rune(7414)}, + &CodePointRange{From: rune(7418), To: rune(7418)}, + &CodePointRange{From: rune(8501), To: rune(8504)}, + &CodePointRange{From: rune(11568), To: rune(11623)}, + &CodePointRange{From: rune(11648), To: rune(11670)}, + &CodePointRange{From: rune(11680), To: rune(11686)}, + &CodePointRange{From: rune(11688), To: rune(11694)}, + &CodePointRange{From: rune(11696), To: rune(11702)}, + &CodePointRange{From: rune(11704), To: rune(11710)}, + &CodePointRange{From: rune(11712), To: rune(11718)}, + &CodePointRange{From: rune(11720), To: rune(11726)}, + &CodePointRange{From: rune(11728), To: rune(11734)}, + &CodePointRange{From: rune(11736), To: rune(11742)}, + &CodePointRange{From: rune(12294), To: rune(12294)}, + &CodePointRange{From: rune(12348), To: rune(12348)}, + &CodePointRange{From: rune(12353), To: rune(12438)}, + &CodePointRange{From: rune(12447), To: rune(12447)}, + &CodePointRange{From: rune(12449), To: rune(12538)}, + &CodePointRange{From: rune(12543), To: rune(12543)}, + &CodePointRange{From: rune(12549), To: rune(12591)}, + &CodePointRange{From: rune(12593), To: rune(12686)}, + &CodePointRange{From: rune(12704), To: rune(12735)}, + &CodePointRange{From: rune(12784), To: rune(12799)}, + &CodePointRange{From: rune(13312), To: rune(13312)}, + &CodePointRange{From: rune(19903), To: rune(19903)}, + &CodePointRange{From: rune(19968), To: rune(19968)}, + &CodePointRange{From: rune(40956), To: rune(40956)}, + &CodePointRange{From: rune(40960), To: rune(40980)}, + &CodePointRange{From: rune(40982), To: rune(42124)}, + &CodePointRange{From: rune(42192), To: rune(42231)}, + &CodePointRange{From: rune(42240), To: rune(42507)}, + &CodePointRange{From: rune(42512), To: rune(42527)}, + &CodePointRange{From: rune(42538), To: rune(42539)}, + &CodePointRange{From: rune(42606), To: rune(42606)}, + &CodePointRange{From: rune(42656), To: rune(42725)}, + &CodePointRange{From: rune(42895), To: rune(42895)}, + &CodePointRange{From: rune(42999), To: rune(42999)}, + &CodePointRange{From: rune(43003), To: rune(43009)}, + &CodePointRange{From: rune(43011), To: rune(43013)}, + &CodePointRange{From: rune(43015), To: rune(43018)}, + &CodePointRange{From: rune(43020), To: rune(43042)}, + &CodePointRange{From: rune(43072), To: rune(43123)}, + &CodePointRange{From: rune(43138), To: rune(43187)}, + &CodePointRange{From: rune(43250), To: rune(43255)}, + &CodePointRange{From: rune(43259), To: rune(43259)}, + &CodePointRange{From: rune(43261), To: rune(43262)}, + &CodePointRange{From: rune(43274), To: rune(43301)}, + &CodePointRange{From: rune(43312), To: rune(43334)}, + &CodePointRange{From: rune(43360), To: rune(43388)}, + &CodePointRange{From: rune(43396), To: rune(43442)}, + &CodePointRange{From: rune(43488), To: rune(43492)}, + &CodePointRange{From: rune(43495), To: rune(43503)}, + &CodePointRange{From: rune(43514), To: rune(43518)}, + &CodePointRange{From: rune(43520), To: rune(43560)}, + &CodePointRange{From: rune(43584), To: rune(43586)}, + &CodePointRange{From: rune(43588), To: rune(43595)}, + &CodePointRange{From: rune(43616), To: rune(43631)}, + &CodePointRange{From: rune(43633), To: rune(43638)}, + &CodePointRange{From: rune(43642), To: rune(43642)}, + &CodePointRange{From: rune(43646), To: rune(43695)}, + &CodePointRange{From: rune(43697), To: rune(43697)}, + &CodePointRange{From: rune(43701), To: rune(43702)}, + &CodePointRange{From: rune(43705), To: rune(43709)}, + &CodePointRange{From: rune(43712), To: rune(43712)}, + &CodePointRange{From: rune(43714), To: rune(43714)}, + &CodePointRange{From: rune(43739), To: rune(43740)}, + &CodePointRange{From: rune(43744), To: rune(43754)}, + &CodePointRange{From: rune(43762), To: rune(43762)}, + &CodePointRange{From: rune(43777), To: rune(43782)}, + &CodePointRange{From: rune(43785), To: rune(43790)}, + &CodePointRange{From: rune(43793), To: rune(43798)}, + &CodePointRange{From: rune(43808), To: rune(43814)}, + &CodePointRange{From: rune(43816), To: rune(43822)}, + &CodePointRange{From: rune(43968), To: rune(44002)}, + &CodePointRange{From: rune(44032), To: rune(44032)}, + &CodePointRange{From: rune(55203), To: rune(55203)}, + &CodePointRange{From: rune(55216), To: rune(55238)}, + &CodePointRange{From: rune(55243), To: rune(55291)}, + &CodePointRange{From: rune(63744), To: rune(64109)}, + &CodePointRange{From: rune(64112), To: rune(64217)}, + &CodePointRange{From: rune(64285), To: rune(64285)}, + &CodePointRange{From: rune(64287), To: rune(64296)}, + &CodePointRange{From: rune(64298), To: rune(64310)}, + &CodePointRange{From: rune(64312), To: rune(64316)}, + &CodePointRange{From: rune(64318), To: rune(64318)}, + &CodePointRange{From: rune(64320), To: rune(64321)}, + &CodePointRange{From: rune(64323), To: rune(64324)}, + &CodePointRange{From: rune(64326), To: rune(64433)}, + &CodePointRange{From: rune(64467), To: rune(64829)}, + &CodePointRange{From: rune(64848), To: rune(64911)}, + &CodePointRange{From: rune(64914), To: rune(64967)}, + &CodePointRange{From: rune(65008), To: rune(65019)}, + &CodePointRange{From: rune(65136), To: rune(65140)}, + &CodePointRange{From: rune(65142), To: rune(65276)}, + &CodePointRange{From: rune(65382), To: rune(65391)}, + &CodePointRange{From: rune(65393), To: rune(65437)}, + &CodePointRange{From: rune(65440), To: rune(65470)}, + &CodePointRange{From: rune(65474), To: rune(65479)}, + &CodePointRange{From: rune(65482), To: rune(65487)}, + &CodePointRange{From: rune(65490), To: rune(65495)}, + &CodePointRange{From: rune(65498), To: rune(65500)}, + &CodePointRange{From: rune(65536), To: rune(65547)}, + &CodePointRange{From: rune(65549), To: rune(65574)}, + &CodePointRange{From: rune(65576), To: rune(65594)}, + &CodePointRange{From: rune(65596), To: rune(65597)}, + &CodePointRange{From: rune(65599), To: rune(65613)}, + &CodePointRange{From: rune(65616), To: rune(65629)}, + &CodePointRange{From: rune(65664), To: rune(65786)}, + &CodePointRange{From: rune(66176), To: rune(66204)}, + &CodePointRange{From: rune(66208), To: rune(66256)}, + &CodePointRange{From: rune(66304), To: rune(66335)}, + &CodePointRange{From: rune(66349), To: rune(66368)}, + &CodePointRange{From: rune(66370), To: rune(66377)}, + &CodePointRange{From: rune(66384), To: rune(66421)}, + &CodePointRange{From: rune(66432), To: rune(66461)}, + &CodePointRange{From: rune(66464), To: rune(66499)}, + &CodePointRange{From: rune(66504), To: rune(66511)}, + &CodePointRange{From: rune(66640), To: rune(66717)}, + &CodePointRange{From: rune(66816), To: rune(66855)}, + &CodePointRange{From: rune(66864), To: rune(66915)}, + &CodePointRange{From: rune(67072), To: rune(67382)}, + &CodePointRange{From: rune(67392), To: rune(67413)}, + &CodePointRange{From: rune(67424), To: rune(67431)}, + &CodePointRange{From: rune(67584), To: rune(67589)}, + &CodePointRange{From: rune(67592), To: rune(67592)}, + &CodePointRange{From: rune(67594), To: rune(67637)}, + &CodePointRange{From: rune(67639), To: rune(67640)}, + &CodePointRange{From: rune(67644), To: rune(67644)}, + &CodePointRange{From: rune(67647), To: rune(67669)}, + &CodePointRange{From: rune(67680), To: rune(67702)}, + &CodePointRange{From: rune(67712), To: rune(67742)}, + &CodePointRange{From: rune(67808), To: rune(67826)}, + &CodePointRange{From: rune(67828), To: rune(67829)}, + &CodePointRange{From: rune(67840), To: rune(67861)}, + &CodePointRange{From: rune(67872), To: rune(67897)}, + &CodePointRange{From: rune(67968), To: rune(68023)}, + &CodePointRange{From: rune(68030), To: rune(68031)}, + &CodePointRange{From: rune(68096), To: rune(68096)}, + &CodePointRange{From: rune(68112), To: rune(68115)}, + &CodePointRange{From: rune(68117), To: rune(68119)}, + &CodePointRange{From: rune(68121), To: rune(68149)}, + &CodePointRange{From: rune(68192), To: rune(68220)}, + &CodePointRange{From: rune(68224), To: rune(68252)}, + &CodePointRange{From: rune(68288), To: rune(68295)}, + &CodePointRange{From: rune(68297), To: rune(68324)}, + &CodePointRange{From: rune(68352), To: rune(68405)}, + &CodePointRange{From: rune(68416), To: rune(68437)}, + &CodePointRange{From: rune(68448), To: rune(68466)}, + &CodePointRange{From: rune(68480), To: rune(68497)}, + &CodePointRange{From: rune(68608), To: rune(68680)}, + &CodePointRange{From: rune(68864), To: rune(68899)}, + &CodePointRange{From: rune(69248), To: rune(69289)}, + &CodePointRange{From: rune(69296), To: rune(69297)}, + &CodePointRange{From: rune(69376), To: rune(69404)}, + &CodePointRange{From: rune(69415), To: rune(69415)}, + &CodePointRange{From: rune(69424), To: rune(69445)}, + &CodePointRange{From: rune(69552), To: rune(69572)}, + &CodePointRange{From: rune(69600), To: rune(69622)}, + &CodePointRange{From: rune(69635), To: rune(69687)}, + &CodePointRange{From: rune(69763), To: rune(69807)}, + &CodePointRange{From: rune(69840), To: rune(69864)}, + &CodePointRange{From: rune(69891), To: rune(69926)}, + &CodePointRange{From: rune(69956), To: rune(69956)}, + &CodePointRange{From: rune(69959), To: rune(69959)}, + &CodePointRange{From: rune(69968), To: rune(70002)}, + &CodePointRange{From: rune(70006), To: rune(70006)}, + &CodePointRange{From: rune(70019), To: rune(70066)}, + &CodePointRange{From: rune(70081), To: rune(70084)}, + &CodePointRange{From: rune(70106), To: rune(70106)}, + &CodePointRange{From: rune(70108), To: rune(70108)}, + &CodePointRange{From: rune(70144), To: rune(70161)}, + &CodePointRange{From: rune(70163), To: rune(70187)}, + &CodePointRange{From: rune(70272), To: rune(70278)}, + &CodePointRange{From: rune(70280), To: rune(70280)}, + &CodePointRange{From: rune(70282), To: rune(70285)}, + &CodePointRange{From: rune(70287), To: rune(70301)}, + &CodePointRange{From: rune(70303), To: rune(70312)}, + &CodePointRange{From: rune(70320), To: rune(70366)}, + &CodePointRange{From: rune(70405), To: rune(70412)}, + &CodePointRange{From: rune(70415), To: rune(70416)}, + &CodePointRange{From: rune(70419), To: rune(70440)}, + &CodePointRange{From: rune(70442), To: rune(70448)}, + &CodePointRange{From: rune(70450), To: rune(70451)}, + &CodePointRange{From: rune(70453), To: rune(70457)}, + &CodePointRange{From: rune(70461), To: rune(70461)}, + &CodePointRange{From: rune(70480), To: rune(70480)}, + &CodePointRange{From: rune(70493), To: rune(70497)}, + &CodePointRange{From: rune(70656), To: rune(70708)}, + &CodePointRange{From: rune(70727), To: rune(70730)}, + &CodePointRange{From: rune(70751), To: rune(70753)}, + &CodePointRange{From: rune(70784), To: rune(70831)}, + &CodePointRange{From: rune(70852), To: rune(70853)}, + &CodePointRange{From: rune(70855), To: rune(70855)}, + &CodePointRange{From: rune(71040), To: rune(71086)}, + &CodePointRange{From: rune(71128), To: rune(71131)}, + &CodePointRange{From: rune(71168), To: rune(71215)}, + &CodePointRange{From: rune(71236), To: rune(71236)}, + &CodePointRange{From: rune(71296), To: rune(71338)}, + &CodePointRange{From: rune(71352), To: rune(71352)}, + &CodePointRange{From: rune(71424), To: rune(71450)}, + &CodePointRange{From: rune(71680), To: rune(71723)}, + &CodePointRange{From: rune(71935), To: rune(71942)}, + &CodePointRange{From: rune(71945), To: rune(71945)}, + &CodePointRange{From: rune(71948), To: rune(71955)}, + &CodePointRange{From: rune(71957), To: rune(71958)}, + &CodePointRange{From: rune(71960), To: rune(71983)}, + &CodePointRange{From: rune(71999), To: rune(71999)}, + &CodePointRange{From: rune(72001), To: rune(72001)}, + &CodePointRange{From: rune(72096), To: rune(72103)}, + &CodePointRange{From: rune(72106), To: rune(72144)}, + &CodePointRange{From: rune(72161), To: rune(72161)}, + &CodePointRange{From: rune(72163), To: rune(72163)}, + &CodePointRange{From: rune(72192), To: rune(72192)}, + &CodePointRange{From: rune(72203), To: rune(72242)}, + &CodePointRange{From: rune(72250), To: rune(72250)}, + &CodePointRange{From: rune(72272), To: rune(72272)}, + &CodePointRange{From: rune(72284), To: rune(72329)}, + &CodePointRange{From: rune(72349), To: rune(72349)}, + &CodePointRange{From: rune(72384), To: rune(72440)}, + &CodePointRange{From: rune(72704), To: rune(72712)}, + &CodePointRange{From: rune(72714), To: rune(72750)}, + &CodePointRange{From: rune(72768), To: rune(72768)}, + &CodePointRange{From: rune(72818), To: rune(72847)}, + &CodePointRange{From: rune(72960), To: rune(72966)}, + &CodePointRange{From: rune(72968), To: rune(72969)}, + &CodePointRange{From: rune(72971), To: rune(73008)}, + &CodePointRange{From: rune(73030), To: rune(73030)}, + &CodePointRange{From: rune(73056), To: rune(73061)}, + &CodePointRange{From: rune(73063), To: rune(73064)}, + &CodePointRange{From: rune(73066), To: rune(73097)}, + &CodePointRange{From: rune(73112), To: rune(73112)}, + &CodePointRange{From: rune(73440), To: rune(73458)}, + &CodePointRange{From: rune(73648), To: rune(73648)}, + &CodePointRange{From: rune(73728), To: rune(74649)}, + &CodePointRange{From: rune(74880), To: rune(75075)}, + &CodePointRange{From: rune(77824), To: rune(78894)}, + &CodePointRange{From: rune(82944), To: rune(83526)}, + &CodePointRange{From: rune(92160), To: rune(92728)}, + &CodePointRange{From: rune(92736), To: rune(92766)}, + &CodePointRange{From: rune(92880), To: rune(92909)}, + &CodePointRange{From: rune(92928), To: rune(92975)}, + &CodePointRange{From: rune(93027), To: rune(93047)}, + &CodePointRange{From: rune(93053), To: rune(93071)}, + &CodePointRange{From: rune(93952), To: rune(94026)}, + &CodePointRange{From: rune(94032), To: rune(94032)}, + &CodePointRange{From: rune(94208), To: rune(94208)}, + &CodePointRange{From: rune(100343), To: rune(100343)}, + &CodePointRange{From: rune(100352), To: rune(101589)}, + &CodePointRange{From: rune(101632), To: rune(101632)}, + &CodePointRange{From: rune(101640), To: rune(101640)}, + &CodePointRange{From: rune(110592), To: rune(110878)}, + &CodePointRange{From: rune(110928), To: rune(110930)}, + &CodePointRange{From: rune(110948), To: rune(110951)}, + &CodePointRange{From: rune(110960), To: rune(111355)}, + &CodePointRange{From: rune(113664), To: rune(113770)}, + &CodePointRange{From: rune(113776), To: rune(113788)}, + &CodePointRange{From: rune(113792), To: rune(113800)}, + &CodePointRange{From: rune(113808), To: rune(113817)}, + &CodePointRange{From: rune(123136), To: rune(123180)}, + &CodePointRange{From: rune(123214), To: rune(123214)}, + &CodePointRange{From: rune(123584), To: rune(123627)}, + &CodePointRange{From: rune(124928), To: rune(125124)}, + &CodePointRange{From: rune(126464), To: rune(126467)}, + &CodePointRange{From: rune(126469), To: rune(126495)}, + &CodePointRange{From: rune(126497), To: rune(126498)}, + &CodePointRange{From: rune(126500), To: rune(126500)}, + &CodePointRange{From: rune(126503), To: rune(126503)}, + &CodePointRange{From: rune(126505), To: rune(126514)}, + &CodePointRange{From: rune(126516), To: rune(126519)}, + &CodePointRange{From: rune(126521), To: rune(126521)}, + &CodePointRange{From: rune(126523), To: rune(126523)}, + &CodePointRange{From: rune(126530), To: rune(126530)}, + &CodePointRange{From: rune(126535), To: rune(126535)}, + &CodePointRange{From: rune(126537), To: rune(126537)}, + &CodePointRange{From: rune(126539), To: rune(126539)}, + &CodePointRange{From: rune(126541), To: rune(126543)}, + &CodePointRange{From: rune(126545), To: rune(126546)}, + &CodePointRange{From: rune(126548), To: rune(126548)}, + &CodePointRange{From: rune(126551), To: rune(126551)}, + &CodePointRange{From: rune(126553), To: rune(126553)}, + &CodePointRange{From: rune(126555), To: rune(126555)}, + &CodePointRange{From: rune(126557), To: rune(126557)}, + &CodePointRange{From: rune(126559), To: rune(126559)}, + &CodePointRange{From: rune(126561), To: rune(126562)}, + &CodePointRange{From: rune(126564), To: rune(126564)}, + &CodePointRange{From: rune(126567), To: rune(126570)}, + &CodePointRange{From: rune(126572), To: rune(126578)}, + &CodePointRange{From: rune(126580), To: rune(126583)}, + &CodePointRange{From: rune(126585), To: rune(126588)}, + &CodePointRange{From: rune(126590), To: rune(126590)}, + &CodePointRange{From: rune(126592), To: rune(126601)}, + &CodePointRange{From: rune(126603), To: rune(126619)}, + &CodePointRange{From: rune(126625), To: rune(126627)}, + &CodePointRange{From: rune(126629), To: rune(126633)}, + &CodePointRange{From: rune(126635), To: rune(126651)}, + &CodePointRange{From: rune(131072), To: rune(131072)}, + &CodePointRange{From: rune(173789), To: rune(173789)}, + &CodePointRange{From: rune(173824), To: rune(173824)}, + &CodePointRange{From: rune(177972), To: rune(177972)}, + &CodePointRange{From: rune(177984), To: rune(177984)}, + &CodePointRange{From: rune(178205), To: rune(178205)}, + &CodePointRange{From: rune(178208), To: rune(178208)}, + &CodePointRange{From: rune(183969), To: rune(183969)}, + &CodePointRange{From: rune(183984), To: rune(183984)}, + &CodePointRange{From: rune(191456), To: rune(191456)}, + &CodePointRange{From: rune(194560), To: rune(195101)}, + &CodePointRange{From: rune(196608), To: rune(196608)}, + &CodePointRange{From: rune(201546), To: rune(201546)}, + }, + "lt": { + &CodePointRange{From: rune(453), To: rune(453)}, + &CodePointRange{From: rune(456), To: rune(456)}, + &CodePointRange{From: rune(459), To: rune(459)}, + &CodePointRange{From: rune(498), To: rune(498)}, + &CodePointRange{From: rune(8072), To: rune(8079)}, + &CodePointRange{From: rune(8088), To: rune(8095)}, + &CodePointRange{From: rune(8104), To: rune(8111)}, + &CodePointRange{From: rune(8124), To: rune(8124)}, + &CodePointRange{From: rune(8140), To: rune(8140)}, + &CodePointRange{From: rune(8188), To: rune(8188)}, + }, + "lu": { + &CodePointRange{From: rune(65), To: rune(90)}, + &CodePointRange{From: rune(192), To: rune(214)}, + &CodePointRange{From: rune(216), To: rune(222)}, + &CodePointRange{From: rune(256), To: rune(256)}, + &CodePointRange{From: rune(258), To: rune(258)}, + &CodePointRange{From: rune(260), To: rune(260)}, + &CodePointRange{From: rune(262), To: rune(262)}, + &CodePointRange{From: rune(264), To: rune(264)}, + &CodePointRange{From: rune(266), To: rune(266)}, + &CodePointRange{From: rune(268), To: rune(268)}, + &CodePointRange{From: rune(270), To: rune(270)}, + &CodePointRange{From: rune(272), To: rune(272)}, + &CodePointRange{From: rune(274), To: rune(274)}, + &CodePointRange{From: rune(276), To: rune(276)}, + &CodePointRange{From: rune(278), To: rune(278)}, + &CodePointRange{From: rune(280), To: rune(280)}, + &CodePointRange{From: rune(282), To: rune(282)}, + &CodePointRange{From: rune(284), To: rune(284)}, + &CodePointRange{From: rune(286), To: rune(286)}, + &CodePointRange{From: rune(288), To: rune(288)}, + &CodePointRange{From: rune(290), To: rune(290)}, + &CodePointRange{From: rune(292), To: rune(292)}, + &CodePointRange{From: rune(294), To: rune(294)}, + &CodePointRange{From: rune(296), To: rune(296)}, + &CodePointRange{From: rune(298), To: rune(298)}, + &CodePointRange{From: rune(300), To: rune(300)}, + &CodePointRange{From: rune(302), To: rune(302)}, + &CodePointRange{From: rune(304), To: rune(304)}, + &CodePointRange{From: rune(306), To: rune(306)}, + &CodePointRange{From: rune(308), To: rune(308)}, + &CodePointRange{From: rune(310), To: rune(310)}, + &CodePointRange{From: rune(313), To: rune(313)}, + &CodePointRange{From: rune(315), To: rune(315)}, + &CodePointRange{From: rune(317), To: rune(317)}, + &CodePointRange{From: rune(319), To: rune(319)}, + &CodePointRange{From: rune(321), To: rune(321)}, + &CodePointRange{From: rune(323), To: rune(323)}, + &CodePointRange{From: rune(325), To: rune(325)}, + &CodePointRange{From: rune(327), To: rune(327)}, + &CodePointRange{From: rune(330), To: rune(330)}, + &CodePointRange{From: rune(332), To: rune(332)}, + &CodePointRange{From: rune(334), To: rune(334)}, + &CodePointRange{From: rune(336), To: rune(336)}, + &CodePointRange{From: rune(338), To: rune(338)}, + &CodePointRange{From: rune(340), To: rune(340)}, + &CodePointRange{From: rune(342), To: rune(342)}, + &CodePointRange{From: rune(344), To: rune(344)}, + &CodePointRange{From: rune(346), To: rune(346)}, + &CodePointRange{From: rune(348), To: rune(348)}, + &CodePointRange{From: rune(350), To: rune(350)}, + &CodePointRange{From: rune(352), To: rune(352)}, + &CodePointRange{From: rune(354), To: rune(354)}, + &CodePointRange{From: rune(356), To: rune(356)}, + &CodePointRange{From: rune(358), To: rune(358)}, + &CodePointRange{From: rune(360), To: rune(360)}, + &CodePointRange{From: rune(362), To: rune(362)}, + &CodePointRange{From: rune(364), To: rune(364)}, + &CodePointRange{From: rune(366), To: rune(366)}, + &CodePointRange{From: rune(368), To: rune(368)}, + &CodePointRange{From: rune(370), To: rune(370)}, + &CodePointRange{From: rune(372), To: rune(372)}, + &CodePointRange{From: rune(374), To: rune(374)}, + &CodePointRange{From: rune(376), To: rune(377)}, + &CodePointRange{From: rune(379), To: rune(379)}, + &CodePointRange{From: rune(381), To: rune(381)}, + &CodePointRange{From: rune(385), To: rune(386)}, + &CodePointRange{From: rune(388), To: rune(388)}, + &CodePointRange{From: rune(390), To: rune(391)}, + &CodePointRange{From: rune(393), To: rune(395)}, + &CodePointRange{From: rune(398), To: rune(401)}, + &CodePointRange{From: rune(403), To: rune(404)}, + &CodePointRange{From: rune(406), To: rune(408)}, + &CodePointRange{From: rune(412), To: rune(413)}, + &CodePointRange{From: rune(415), To: rune(416)}, + &CodePointRange{From: rune(418), To: rune(418)}, + &CodePointRange{From: rune(420), To: rune(420)}, + &CodePointRange{From: rune(422), To: rune(423)}, + &CodePointRange{From: rune(425), To: rune(425)}, + &CodePointRange{From: rune(428), To: rune(428)}, + &CodePointRange{From: rune(430), To: rune(431)}, + &CodePointRange{From: rune(433), To: rune(435)}, + &CodePointRange{From: rune(437), To: rune(437)}, + &CodePointRange{From: rune(439), To: rune(440)}, + &CodePointRange{From: rune(444), To: rune(444)}, + &CodePointRange{From: rune(452), To: rune(452)}, + &CodePointRange{From: rune(455), To: rune(455)}, + &CodePointRange{From: rune(458), To: rune(458)}, + &CodePointRange{From: rune(461), To: rune(461)}, + &CodePointRange{From: rune(463), To: rune(463)}, + &CodePointRange{From: rune(465), To: rune(465)}, + &CodePointRange{From: rune(467), To: rune(467)}, + &CodePointRange{From: rune(469), To: rune(469)}, + &CodePointRange{From: rune(471), To: rune(471)}, + &CodePointRange{From: rune(473), To: rune(473)}, + &CodePointRange{From: rune(475), To: rune(475)}, + &CodePointRange{From: rune(478), To: rune(478)}, + &CodePointRange{From: rune(480), To: rune(480)}, + &CodePointRange{From: rune(482), To: rune(482)}, + &CodePointRange{From: rune(484), To: rune(484)}, + &CodePointRange{From: rune(486), To: rune(486)}, + &CodePointRange{From: rune(488), To: rune(488)}, + &CodePointRange{From: rune(490), To: rune(490)}, + &CodePointRange{From: rune(492), To: rune(492)}, + &CodePointRange{From: rune(494), To: rune(494)}, + &CodePointRange{From: rune(497), To: rune(497)}, + &CodePointRange{From: rune(500), To: rune(500)}, + &CodePointRange{From: rune(502), To: rune(504)}, + &CodePointRange{From: rune(506), To: rune(506)}, + &CodePointRange{From: rune(508), To: rune(508)}, + &CodePointRange{From: rune(510), To: rune(510)}, + &CodePointRange{From: rune(512), To: rune(512)}, + &CodePointRange{From: rune(514), To: rune(514)}, + &CodePointRange{From: rune(516), To: rune(516)}, + &CodePointRange{From: rune(518), To: rune(518)}, + &CodePointRange{From: rune(520), To: rune(520)}, + &CodePointRange{From: rune(522), To: rune(522)}, + &CodePointRange{From: rune(524), To: rune(524)}, + &CodePointRange{From: rune(526), To: rune(526)}, + &CodePointRange{From: rune(528), To: rune(528)}, + &CodePointRange{From: rune(530), To: rune(530)}, + &CodePointRange{From: rune(532), To: rune(532)}, + &CodePointRange{From: rune(534), To: rune(534)}, + &CodePointRange{From: rune(536), To: rune(536)}, + &CodePointRange{From: rune(538), To: rune(538)}, + &CodePointRange{From: rune(540), To: rune(540)}, + &CodePointRange{From: rune(542), To: rune(542)}, + &CodePointRange{From: rune(544), To: rune(544)}, + &CodePointRange{From: rune(546), To: rune(546)}, + &CodePointRange{From: rune(548), To: rune(548)}, + &CodePointRange{From: rune(550), To: rune(550)}, + &CodePointRange{From: rune(552), To: rune(552)}, + &CodePointRange{From: rune(554), To: rune(554)}, + &CodePointRange{From: rune(556), To: rune(556)}, + &CodePointRange{From: rune(558), To: rune(558)}, + &CodePointRange{From: rune(560), To: rune(560)}, + &CodePointRange{From: rune(562), To: rune(562)}, + &CodePointRange{From: rune(570), To: rune(571)}, + &CodePointRange{From: rune(573), To: rune(574)}, + &CodePointRange{From: rune(577), To: rune(577)}, + &CodePointRange{From: rune(579), To: rune(582)}, + &CodePointRange{From: rune(584), To: rune(584)}, + &CodePointRange{From: rune(586), To: rune(586)}, + &CodePointRange{From: rune(588), To: rune(588)}, + &CodePointRange{From: rune(590), To: rune(590)}, + &CodePointRange{From: rune(880), To: rune(880)}, + &CodePointRange{From: rune(882), To: rune(882)}, + &CodePointRange{From: rune(886), To: rune(886)}, + &CodePointRange{From: rune(895), To: rune(895)}, + &CodePointRange{From: rune(902), To: rune(902)}, + &CodePointRange{From: rune(904), To: rune(906)}, + &CodePointRange{From: rune(908), To: rune(908)}, + &CodePointRange{From: rune(910), To: rune(911)}, + &CodePointRange{From: rune(913), To: rune(929)}, + &CodePointRange{From: rune(931), To: rune(939)}, + &CodePointRange{From: rune(975), To: rune(975)}, + &CodePointRange{From: rune(978), To: rune(980)}, + &CodePointRange{From: rune(984), To: rune(984)}, + &CodePointRange{From: rune(986), To: rune(986)}, + &CodePointRange{From: rune(988), To: rune(988)}, + &CodePointRange{From: rune(990), To: rune(990)}, + &CodePointRange{From: rune(992), To: rune(992)}, + &CodePointRange{From: rune(994), To: rune(994)}, + &CodePointRange{From: rune(996), To: rune(996)}, + &CodePointRange{From: rune(998), To: rune(998)}, + &CodePointRange{From: rune(1000), To: rune(1000)}, + &CodePointRange{From: rune(1002), To: rune(1002)}, + &CodePointRange{From: rune(1004), To: rune(1004)}, + &CodePointRange{From: rune(1006), To: rune(1006)}, + &CodePointRange{From: rune(1012), To: rune(1012)}, + &CodePointRange{From: rune(1015), To: rune(1015)}, + &CodePointRange{From: rune(1017), To: rune(1018)}, + &CodePointRange{From: rune(1021), To: rune(1071)}, + &CodePointRange{From: rune(1120), To: rune(1120)}, + &CodePointRange{From: rune(1122), To: rune(1122)}, + &CodePointRange{From: rune(1124), To: rune(1124)}, + &CodePointRange{From: rune(1126), To: rune(1126)}, + &CodePointRange{From: rune(1128), To: rune(1128)}, + &CodePointRange{From: rune(1130), To: rune(1130)}, + &CodePointRange{From: rune(1132), To: rune(1132)}, + &CodePointRange{From: rune(1134), To: rune(1134)}, + &CodePointRange{From: rune(1136), To: rune(1136)}, + &CodePointRange{From: rune(1138), To: rune(1138)}, + &CodePointRange{From: rune(1140), To: rune(1140)}, + &CodePointRange{From: rune(1142), To: rune(1142)}, + &CodePointRange{From: rune(1144), To: rune(1144)}, + &CodePointRange{From: rune(1146), To: rune(1146)}, + &CodePointRange{From: rune(1148), To: rune(1148)}, + &CodePointRange{From: rune(1150), To: rune(1150)}, + &CodePointRange{From: rune(1152), To: rune(1152)}, + &CodePointRange{From: rune(1162), To: rune(1162)}, + &CodePointRange{From: rune(1164), To: rune(1164)}, + &CodePointRange{From: rune(1166), To: rune(1166)}, + &CodePointRange{From: rune(1168), To: rune(1168)}, + &CodePointRange{From: rune(1170), To: rune(1170)}, + &CodePointRange{From: rune(1172), To: rune(1172)}, + &CodePointRange{From: rune(1174), To: rune(1174)}, + &CodePointRange{From: rune(1176), To: rune(1176)}, + &CodePointRange{From: rune(1178), To: rune(1178)}, + &CodePointRange{From: rune(1180), To: rune(1180)}, + &CodePointRange{From: rune(1182), To: rune(1182)}, + &CodePointRange{From: rune(1184), To: rune(1184)}, + &CodePointRange{From: rune(1186), To: rune(1186)}, + &CodePointRange{From: rune(1188), To: rune(1188)}, + &CodePointRange{From: rune(1190), To: rune(1190)}, + &CodePointRange{From: rune(1192), To: rune(1192)}, + &CodePointRange{From: rune(1194), To: rune(1194)}, + &CodePointRange{From: rune(1196), To: rune(1196)}, + &CodePointRange{From: rune(1198), To: rune(1198)}, + &CodePointRange{From: rune(1200), To: rune(1200)}, + &CodePointRange{From: rune(1202), To: rune(1202)}, + &CodePointRange{From: rune(1204), To: rune(1204)}, + &CodePointRange{From: rune(1206), To: rune(1206)}, + &CodePointRange{From: rune(1208), To: rune(1208)}, + &CodePointRange{From: rune(1210), To: rune(1210)}, + &CodePointRange{From: rune(1212), To: rune(1212)}, + &CodePointRange{From: rune(1214), To: rune(1214)}, + &CodePointRange{From: rune(1216), To: rune(1217)}, + &CodePointRange{From: rune(1219), To: rune(1219)}, + &CodePointRange{From: rune(1221), To: rune(1221)}, + &CodePointRange{From: rune(1223), To: rune(1223)}, + &CodePointRange{From: rune(1225), To: rune(1225)}, + &CodePointRange{From: rune(1227), To: rune(1227)}, + &CodePointRange{From: rune(1229), To: rune(1229)}, + &CodePointRange{From: rune(1232), To: rune(1232)}, + &CodePointRange{From: rune(1234), To: rune(1234)}, + &CodePointRange{From: rune(1236), To: rune(1236)}, + &CodePointRange{From: rune(1238), To: rune(1238)}, + &CodePointRange{From: rune(1240), To: rune(1240)}, + &CodePointRange{From: rune(1242), To: rune(1242)}, + &CodePointRange{From: rune(1244), To: rune(1244)}, + &CodePointRange{From: rune(1246), To: rune(1246)}, + &CodePointRange{From: rune(1248), To: rune(1248)}, + &CodePointRange{From: rune(1250), To: rune(1250)}, + &CodePointRange{From: rune(1252), To: rune(1252)}, + &CodePointRange{From: rune(1254), To: rune(1254)}, + &CodePointRange{From: rune(1256), To: rune(1256)}, + &CodePointRange{From: rune(1258), To: rune(1258)}, + &CodePointRange{From: rune(1260), To: rune(1260)}, + &CodePointRange{From: rune(1262), To: rune(1262)}, + &CodePointRange{From: rune(1264), To: rune(1264)}, + &CodePointRange{From: rune(1266), To: rune(1266)}, + &CodePointRange{From: rune(1268), To: rune(1268)}, + &CodePointRange{From: rune(1270), To: rune(1270)}, + &CodePointRange{From: rune(1272), To: rune(1272)}, + &CodePointRange{From: rune(1274), To: rune(1274)}, + &CodePointRange{From: rune(1276), To: rune(1276)}, + &CodePointRange{From: rune(1278), To: rune(1278)}, + &CodePointRange{From: rune(1280), To: rune(1280)}, + &CodePointRange{From: rune(1282), To: rune(1282)}, + &CodePointRange{From: rune(1284), To: rune(1284)}, + &CodePointRange{From: rune(1286), To: rune(1286)}, + &CodePointRange{From: rune(1288), To: rune(1288)}, + &CodePointRange{From: rune(1290), To: rune(1290)}, + &CodePointRange{From: rune(1292), To: rune(1292)}, + &CodePointRange{From: rune(1294), To: rune(1294)}, + &CodePointRange{From: rune(1296), To: rune(1296)}, + &CodePointRange{From: rune(1298), To: rune(1298)}, + &CodePointRange{From: rune(1300), To: rune(1300)}, + &CodePointRange{From: rune(1302), To: rune(1302)}, + &CodePointRange{From: rune(1304), To: rune(1304)}, + &CodePointRange{From: rune(1306), To: rune(1306)}, + &CodePointRange{From: rune(1308), To: rune(1308)}, + &CodePointRange{From: rune(1310), To: rune(1310)}, + &CodePointRange{From: rune(1312), To: rune(1312)}, + &CodePointRange{From: rune(1314), To: rune(1314)}, + &CodePointRange{From: rune(1316), To: rune(1316)}, + &CodePointRange{From: rune(1318), To: rune(1318)}, + &CodePointRange{From: rune(1320), To: rune(1320)}, + &CodePointRange{From: rune(1322), To: rune(1322)}, + &CodePointRange{From: rune(1324), To: rune(1324)}, + &CodePointRange{From: rune(1326), To: rune(1326)}, + &CodePointRange{From: rune(1329), To: rune(1366)}, + &CodePointRange{From: rune(4256), To: rune(4293)}, + &CodePointRange{From: rune(4295), To: rune(4295)}, + &CodePointRange{From: rune(4301), To: rune(4301)}, + &CodePointRange{From: rune(5024), To: rune(5109)}, + &CodePointRange{From: rune(7312), To: rune(7354)}, + &CodePointRange{From: rune(7357), To: rune(7359)}, + &CodePointRange{From: rune(7680), To: rune(7680)}, + &CodePointRange{From: rune(7682), To: rune(7682)}, + &CodePointRange{From: rune(7684), To: rune(7684)}, + &CodePointRange{From: rune(7686), To: rune(7686)}, + &CodePointRange{From: rune(7688), To: rune(7688)}, + &CodePointRange{From: rune(7690), To: rune(7690)}, + &CodePointRange{From: rune(7692), To: rune(7692)}, + &CodePointRange{From: rune(7694), To: rune(7694)}, + &CodePointRange{From: rune(7696), To: rune(7696)}, + &CodePointRange{From: rune(7698), To: rune(7698)}, + &CodePointRange{From: rune(7700), To: rune(7700)}, + &CodePointRange{From: rune(7702), To: rune(7702)}, + &CodePointRange{From: rune(7704), To: rune(7704)}, + &CodePointRange{From: rune(7706), To: rune(7706)}, + &CodePointRange{From: rune(7708), To: rune(7708)}, + &CodePointRange{From: rune(7710), To: rune(7710)}, + &CodePointRange{From: rune(7712), To: rune(7712)}, + &CodePointRange{From: rune(7714), To: rune(7714)}, + &CodePointRange{From: rune(7716), To: rune(7716)}, + &CodePointRange{From: rune(7718), To: rune(7718)}, + &CodePointRange{From: rune(7720), To: rune(7720)}, + &CodePointRange{From: rune(7722), To: rune(7722)}, + &CodePointRange{From: rune(7724), To: rune(7724)}, + &CodePointRange{From: rune(7726), To: rune(7726)}, + &CodePointRange{From: rune(7728), To: rune(7728)}, + &CodePointRange{From: rune(7730), To: rune(7730)}, + &CodePointRange{From: rune(7732), To: rune(7732)}, + &CodePointRange{From: rune(7734), To: rune(7734)}, + &CodePointRange{From: rune(7736), To: rune(7736)}, + &CodePointRange{From: rune(7738), To: rune(7738)}, + &CodePointRange{From: rune(7740), To: rune(7740)}, + &CodePointRange{From: rune(7742), To: rune(7742)}, + &CodePointRange{From: rune(7744), To: rune(7744)}, + &CodePointRange{From: rune(7746), To: rune(7746)}, + &CodePointRange{From: rune(7748), To: rune(7748)}, + &CodePointRange{From: rune(7750), To: rune(7750)}, + &CodePointRange{From: rune(7752), To: rune(7752)}, + &CodePointRange{From: rune(7754), To: rune(7754)}, + &CodePointRange{From: rune(7756), To: rune(7756)}, + &CodePointRange{From: rune(7758), To: rune(7758)}, + &CodePointRange{From: rune(7760), To: rune(7760)}, + &CodePointRange{From: rune(7762), To: rune(7762)}, + &CodePointRange{From: rune(7764), To: rune(7764)}, + &CodePointRange{From: rune(7766), To: rune(7766)}, + &CodePointRange{From: rune(7768), To: rune(7768)}, + &CodePointRange{From: rune(7770), To: rune(7770)}, + &CodePointRange{From: rune(7772), To: rune(7772)}, + &CodePointRange{From: rune(7774), To: rune(7774)}, + &CodePointRange{From: rune(7776), To: rune(7776)}, + &CodePointRange{From: rune(7778), To: rune(7778)}, + &CodePointRange{From: rune(7780), To: rune(7780)}, + &CodePointRange{From: rune(7782), To: rune(7782)}, + &CodePointRange{From: rune(7784), To: rune(7784)}, + &CodePointRange{From: rune(7786), To: rune(7786)}, + &CodePointRange{From: rune(7788), To: rune(7788)}, + &CodePointRange{From: rune(7790), To: rune(7790)}, + &CodePointRange{From: rune(7792), To: rune(7792)}, + &CodePointRange{From: rune(7794), To: rune(7794)}, + &CodePointRange{From: rune(7796), To: rune(7796)}, + &CodePointRange{From: rune(7798), To: rune(7798)}, + &CodePointRange{From: rune(7800), To: rune(7800)}, + &CodePointRange{From: rune(7802), To: rune(7802)}, + &CodePointRange{From: rune(7804), To: rune(7804)}, + &CodePointRange{From: rune(7806), To: rune(7806)}, + &CodePointRange{From: rune(7808), To: rune(7808)}, + &CodePointRange{From: rune(7810), To: rune(7810)}, + &CodePointRange{From: rune(7812), To: rune(7812)}, + &CodePointRange{From: rune(7814), To: rune(7814)}, + &CodePointRange{From: rune(7816), To: rune(7816)}, + &CodePointRange{From: rune(7818), To: rune(7818)}, + &CodePointRange{From: rune(7820), To: rune(7820)}, + &CodePointRange{From: rune(7822), To: rune(7822)}, + &CodePointRange{From: rune(7824), To: rune(7824)}, + &CodePointRange{From: rune(7826), To: rune(7826)}, + &CodePointRange{From: rune(7828), To: rune(7828)}, + &CodePointRange{From: rune(7838), To: rune(7838)}, + &CodePointRange{From: rune(7840), To: rune(7840)}, + &CodePointRange{From: rune(7842), To: rune(7842)}, + &CodePointRange{From: rune(7844), To: rune(7844)}, + &CodePointRange{From: rune(7846), To: rune(7846)}, + &CodePointRange{From: rune(7848), To: rune(7848)}, + &CodePointRange{From: rune(7850), To: rune(7850)}, + &CodePointRange{From: rune(7852), To: rune(7852)}, + &CodePointRange{From: rune(7854), To: rune(7854)}, + &CodePointRange{From: rune(7856), To: rune(7856)}, + &CodePointRange{From: rune(7858), To: rune(7858)}, + &CodePointRange{From: rune(7860), To: rune(7860)}, + &CodePointRange{From: rune(7862), To: rune(7862)}, + &CodePointRange{From: rune(7864), To: rune(7864)}, + &CodePointRange{From: rune(7866), To: rune(7866)}, + &CodePointRange{From: rune(7868), To: rune(7868)}, + &CodePointRange{From: rune(7870), To: rune(7870)}, + &CodePointRange{From: rune(7872), To: rune(7872)}, + &CodePointRange{From: rune(7874), To: rune(7874)}, + &CodePointRange{From: rune(7876), To: rune(7876)}, + &CodePointRange{From: rune(7878), To: rune(7878)}, + &CodePointRange{From: rune(7880), To: rune(7880)}, + &CodePointRange{From: rune(7882), To: rune(7882)}, + &CodePointRange{From: rune(7884), To: rune(7884)}, + &CodePointRange{From: rune(7886), To: rune(7886)}, + &CodePointRange{From: rune(7888), To: rune(7888)}, + &CodePointRange{From: rune(7890), To: rune(7890)}, + &CodePointRange{From: rune(7892), To: rune(7892)}, + &CodePointRange{From: rune(7894), To: rune(7894)}, + &CodePointRange{From: rune(7896), To: rune(7896)}, + &CodePointRange{From: rune(7898), To: rune(7898)}, + &CodePointRange{From: rune(7900), To: rune(7900)}, + &CodePointRange{From: rune(7902), To: rune(7902)}, + &CodePointRange{From: rune(7904), To: rune(7904)}, + &CodePointRange{From: rune(7906), To: rune(7906)}, + &CodePointRange{From: rune(7908), To: rune(7908)}, + &CodePointRange{From: rune(7910), To: rune(7910)}, + &CodePointRange{From: rune(7912), To: rune(7912)}, + &CodePointRange{From: rune(7914), To: rune(7914)}, + &CodePointRange{From: rune(7916), To: rune(7916)}, + &CodePointRange{From: rune(7918), To: rune(7918)}, + &CodePointRange{From: rune(7920), To: rune(7920)}, + &CodePointRange{From: rune(7922), To: rune(7922)}, + &CodePointRange{From: rune(7924), To: rune(7924)}, + &CodePointRange{From: rune(7926), To: rune(7926)}, + &CodePointRange{From: rune(7928), To: rune(7928)}, + &CodePointRange{From: rune(7930), To: rune(7930)}, + &CodePointRange{From: rune(7932), To: rune(7932)}, + &CodePointRange{From: rune(7934), To: rune(7934)}, + &CodePointRange{From: rune(7944), To: rune(7951)}, + &CodePointRange{From: rune(7960), To: rune(7965)}, + &CodePointRange{From: rune(7976), To: rune(7983)}, + &CodePointRange{From: rune(7992), To: rune(7999)}, + &CodePointRange{From: rune(8008), To: rune(8013)}, + &CodePointRange{From: rune(8025), To: rune(8025)}, + &CodePointRange{From: rune(8027), To: rune(8027)}, + &CodePointRange{From: rune(8029), To: rune(8029)}, + &CodePointRange{From: rune(8031), To: rune(8031)}, + &CodePointRange{From: rune(8040), To: rune(8047)}, + &CodePointRange{From: rune(8120), To: rune(8123)}, + &CodePointRange{From: rune(8136), To: rune(8139)}, + &CodePointRange{From: rune(8152), To: rune(8155)}, + &CodePointRange{From: rune(8168), To: rune(8172)}, + &CodePointRange{From: rune(8184), To: rune(8187)}, + &CodePointRange{From: rune(8450), To: rune(8450)}, + &CodePointRange{From: rune(8455), To: rune(8455)}, + &CodePointRange{From: rune(8459), To: rune(8461)}, + &CodePointRange{From: rune(8464), To: rune(8466)}, + &CodePointRange{From: rune(8469), To: rune(8469)}, + &CodePointRange{From: rune(8473), To: rune(8477)}, + &CodePointRange{From: rune(8484), To: rune(8484)}, + &CodePointRange{From: rune(8486), To: rune(8486)}, + &CodePointRange{From: rune(8488), To: rune(8488)}, + &CodePointRange{From: rune(8490), To: rune(8493)}, + &CodePointRange{From: rune(8496), To: rune(8499)}, + &CodePointRange{From: rune(8510), To: rune(8511)}, + &CodePointRange{From: rune(8517), To: rune(8517)}, + &CodePointRange{From: rune(8579), To: rune(8579)}, + &CodePointRange{From: rune(11264), To: rune(11310)}, + &CodePointRange{From: rune(11360), To: rune(11360)}, + &CodePointRange{From: rune(11362), To: rune(11364)}, + &CodePointRange{From: rune(11367), To: rune(11367)}, + &CodePointRange{From: rune(11369), To: rune(11369)}, + &CodePointRange{From: rune(11371), To: rune(11371)}, + &CodePointRange{From: rune(11373), To: rune(11376)}, + &CodePointRange{From: rune(11378), To: rune(11378)}, + &CodePointRange{From: rune(11381), To: rune(11381)}, + &CodePointRange{From: rune(11390), To: rune(11392)}, + &CodePointRange{From: rune(11394), To: rune(11394)}, + &CodePointRange{From: rune(11396), To: rune(11396)}, + &CodePointRange{From: rune(11398), To: rune(11398)}, + &CodePointRange{From: rune(11400), To: rune(11400)}, + &CodePointRange{From: rune(11402), To: rune(11402)}, + &CodePointRange{From: rune(11404), To: rune(11404)}, + &CodePointRange{From: rune(11406), To: rune(11406)}, + &CodePointRange{From: rune(11408), To: rune(11408)}, + &CodePointRange{From: rune(11410), To: rune(11410)}, + &CodePointRange{From: rune(11412), To: rune(11412)}, + &CodePointRange{From: rune(11414), To: rune(11414)}, + &CodePointRange{From: rune(11416), To: rune(11416)}, + &CodePointRange{From: rune(11418), To: rune(11418)}, + &CodePointRange{From: rune(11420), To: rune(11420)}, + &CodePointRange{From: rune(11422), To: rune(11422)}, + &CodePointRange{From: rune(11424), To: rune(11424)}, + &CodePointRange{From: rune(11426), To: rune(11426)}, + &CodePointRange{From: rune(11428), To: rune(11428)}, + &CodePointRange{From: rune(11430), To: rune(11430)}, + &CodePointRange{From: rune(11432), To: rune(11432)}, + &CodePointRange{From: rune(11434), To: rune(11434)}, + &CodePointRange{From: rune(11436), To: rune(11436)}, + &CodePointRange{From: rune(11438), To: rune(11438)}, + &CodePointRange{From: rune(11440), To: rune(11440)}, + &CodePointRange{From: rune(11442), To: rune(11442)}, + &CodePointRange{From: rune(11444), To: rune(11444)}, + &CodePointRange{From: rune(11446), To: rune(11446)}, + &CodePointRange{From: rune(11448), To: rune(11448)}, + &CodePointRange{From: rune(11450), To: rune(11450)}, + &CodePointRange{From: rune(11452), To: rune(11452)}, + &CodePointRange{From: rune(11454), To: rune(11454)}, + &CodePointRange{From: rune(11456), To: rune(11456)}, + &CodePointRange{From: rune(11458), To: rune(11458)}, + &CodePointRange{From: rune(11460), To: rune(11460)}, + &CodePointRange{From: rune(11462), To: rune(11462)}, + &CodePointRange{From: rune(11464), To: rune(11464)}, + &CodePointRange{From: rune(11466), To: rune(11466)}, + &CodePointRange{From: rune(11468), To: rune(11468)}, + &CodePointRange{From: rune(11470), To: rune(11470)}, + &CodePointRange{From: rune(11472), To: rune(11472)}, + &CodePointRange{From: rune(11474), To: rune(11474)}, + &CodePointRange{From: rune(11476), To: rune(11476)}, + &CodePointRange{From: rune(11478), To: rune(11478)}, + &CodePointRange{From: rune(11480), To: rune(11480)}, + &CodePointRange{From: rune(11482), To: rune(11482)}, + &CodePointRange{From: rune(11484), To: rune(11484)}, + &CodePointRange{From: rune(11486), To: rune(11486)}, + &CodePointRange{From: rune(11488), To: rune(11488)}, + &CodePointRange{From: rune(11490), To: rune(11490)}, + &CodePointRange{From: rune(11499), To: rune(11499)}, + &CodePointRange{From: rune(11501), To: rune(11501)}, + &CodePointRange{From: rune(11506), To: rune(11506)}, + &CodePointRange{From: rune(42560), To: rune(42560)}, + &CodePointRange{From: rune(42562), To: rune(42562)}, + &CodePointRange{From: rune(42564), To: rune(42564)}, + &CodePointRange{From: rune(42566), To: rune(42566)}, + &CodePointRange{From: rune(42568), To: rune(42568)}, + &CodePointRange{From: rune(42570), To: rune(42570)}, + &CodePointRange{From: rune(42572), To: rune(42572)}, + &CodePointRange{From: rune(42574), To: rune(42574)}, + &CodePointRange{From: rune(42576), To: rune(42576)}, + &CodePointRange{From: rune(42578), To: rune(42578)}, + &CodePointRange{From: rune(42580), To: rune(42580)}, + &CodePointRange{From: rune(42582), To: rune(42582)}, + &CodePointRange{From: rune(42584), To: rune(42584)}, + &CodePointRange{From: rune(42586), To: rune(42586)}, + &CodePointRange{From: rune(42588), To: rune(42588)}, + &CodePointRange{From: rune(42590), To: rune(42590)}, + &CodePointRange{From: rune(42592), To: rune(42592)}, + &CodePointRange{From: rune(42594), To: rune(42594)}, + &CodePointRange{From: rune(42596), To: rune(42596)}, + &CodePointRange{From: rune(42598), To: rune(42598)}, + &CodePointRange{From: rune(42600), To: rune(42600)}, + &CodePointRange{From: rune(42602), To: rune(42602)}, + &CodePointRange{From: rune(42604), To: rune(42604)}, + &CodePointRange{From: rune(42624), To: rune(42624)}, + &CodePointRange{From: rune(42626), To: rune(42626)}, + &CodePointRange{From: rune(42628), To: rune(42628)}, + &CodePointRange{From: rune(42630), To: rune(42630)}, + &CodePointRange{From: rune(42632), To: rune(42632)}, + &CodePointRange{From: rune(42634), To: rune(42634)}, + &CodePointRange{From: rune(42636), To: rune(42636)}, + &CodePointRange{From: rune(42638), To: rune(42638)}, + &CodePointRange{From: rune(42640), To: rune(42640)}, + &CodePointRange{From: rune(42642), To: rune(42642)}, + &CodePointRange{From: rune(42644), To: rune(42644)}, + &CodePointRange{From: rune(42646), To: rune(42646)}, + &CodePointRange{From: rune(42648), To: rune(42648)}, + &CodePointRange{From: rune(42650), To: rune(42650)}, + &CodePointRange{From: rune(42786), To: rune(42786)}, + &CodePointRange{From: rune(42788), To: rune(42788)}, + &CodePointRange{From: rune(42790), To: rune(42790)}, + &CodePointRange{From: rune(42792), To: rune(42792)}, + &CodePointRange{From: rune(42794), To: rune(42794)}, + &CodePointRange{From: rune(42796), To: rune(42796)}, + &CodePointRange{From: rune(42798), To: rune(42798)}, + &CodePointRange{From: rune(42802), To: rune(42802)}, + &CodePointRange{From: rune(42804), To: rune(42804)}, + &CodePointRange{From: rune(42806), To: rune(42806)}, + &CodePointRange{From: rune(42808), To: rune(42808)}, + &CodePointRange{From: rune(42810), To: rune(42810)}, + &CodePointRange{From: rune(42812), To: rune(42812)}, + &CodePointRange{From: rune(42814), To: rune(42814)}, + &CodePointRange{From: rune(42816), To: rune(42816)}, + &CodePointRange{From: rune(42818), To: rune(42818)}, + &CodePointRange{From: rune(42820), To: rune(42820)}, + &CodePointRange{From: rune(42822), To: rune(42822)}, + &CodePointRange{From: rune(42824), To: rune(42824)}, + &CodePointRange{From: rune(42826), To: rune(42826)}, + &CodePointRange{From: rune(42828), To: rune(42828)}, + &CodePointRange{From: rune(42830), To: rune(42830)}, + &CodePointRange{From: rune(42832), To: rune(42832)}, + &CodePointRange{From: rune(42834), To: rune(42834)}, + &CodePointRange{From: rune(42836), To: rune(42836)}, + &CodePointRange{From: rune(42838), To: rune(42838)}, + &CodePointRange{From: rune(42840), To: rune(42840)}, + &CodePointRange{From: rune(42842), To: rune(42842)}, + &CodePointRange{From: rune(42844), To: rune(42844)}, + &CodePointRange{From: rune(42846), To: rune(42846)}, + &CodePointRange{From: rune(42848), To: rune(42848)}, + &CodePointRange{From: rune(42850), To: rune(42850)}, + &CodePointRange{From: rune(42852), To: rune(42852)}, + &CodePointRange{From: rune(42854), To: rune(42854)}, + &CodePointRange{From: rune(42856), To: rune(42856)}, + &CodePointRange{From: rune(42858), To: rune(42858)}, + &CodePointRange{From: rune(42860), To: rune(42860)}, + &CodePointRange{From: rune(42862), To: rune(42862)}, + &CodePointRange{From: rune(42873), To: rune(42873)}, + &CodePointRange{From: rune(42875), To: rune(42875)}, + &CodePointRange{From: rune(42877), To: rune(42878)}, + &CodePointRange{From: rune(42880), To: rune(42880)}, + &CodePointRange{From: rune(42882), To: rune(42882)}, + &CodePointRange{From: rune(42884), To: rune(42884)}, + &CodePointRange{From: rune(42886), To: rune(42886)}, + &CodePointRange{From: rune(42891), To: rune(42891)}, + &CodePointRange{From: rune(42893), To: rune(42893)}, + &CodePointRange{From: rune(42896), To: rune(42896)}, + &CodePointRange{From: rune(42898), To: rune(42898)}, + &CodePointRange{From: rune(42902), To: rune(42902)}, + &CodePointRange{From: rune(42904), To: rune(42904)}, + &CodePointRange{From: rune(42906), To: rune(42906)}, + &CodePointRange{From: rune(42908), To: rune(42908)}, + &CodePointRange{From: rune(42910), To: rune(42910)}, + &CodePointRange{From: rune(42912), To: rune(42912)}, + &CodePointRange{From: rune(42914), To: rune(42914)}, + &CodePointRange{From: rune(42916), To: rune(42916)}, + &CodePointRange{From: rune(42918), To: rune(42918)}, + &CodePointRange{From: rune(42920), To: rune(42920)}, + &CodePointRange{From: rune(42922), To: rune(42926)}, + &CodePointRange{From: rune(42928), To: rune(42932)}, + &CodePointRange{From: rune(42934), To: rune(42934)}, + &CodePointRange{From: rune(42936), To: rune(42936)}, + &CodePointRange{From: rune(42938), To: rune(42938)}, + &CodePointRange{From: rune(42940), To: rune(42940)}, + &CodePointRange{From: rune(42942), To: rune(42942)}, + &CodePointRange{From: rune(42946), To: rune(42946)}, + &CodePointRange{From: rune(42948), To: rune(42951)}, + &CodePointRange{From: rune(42953), To: rune(42953)}, + &CodePointRange{From: rune(42997), To: rune(42997)}, + &CodePointRange{From: rune(65313), To: rune(65338)}, + &CodePointRange{From: rune(66560), To: rune(66599)}, + &CodePointRange{From: rune(66736), To: rune(66771)}, + &CodePointRange{From: rune(68736), To: rune(68786)}, + &CodePointRange{From: rune(71840), To: rune(71871)}, + &CodePointRange{From: rune(93760), To: rune(93791)}, + &CodePointRange{From: rune(119808), To: rune(119833)}, + &CodePointRange{From: rune(119860), To: rune(119885)}, + &CodePointRange{From: rune(119912), To: rune(119937)}, + &CodePointRange{From: rune(119964), To: rune(119964)}, + &CodePointRange{From: rune(119966), To: rune(119967)}, + &CodePointRange{From: rune(119970), To: rune(119970)}, + &CodePointRange{From: rune(119973), To: rune(119974)}, + &CodePointRange{From: rune(119977), To: rune(119980)}, + &CodePointRange{From: rune(119982), To: rune(119989)}, + &CodePointRange{From: rune(120016), To: rune(120041)}, + &CodePointRange{From: rune(120068), To: rune(120069)}, + &CodePointRange{From: rune(120071), To: rune(120074)}, + &CodePointRange{From: rune(120077), To: rune(120084)}, + &CodePointRange{From: rune(120086), To: rune(120092)}, + &CodePointRange{From: rune(120120), To: rune(120121)}, + &CodePointRange{From: rune(120123), To: rune(120126)}, + &CodePointRange{From: rune(120128), To: rune(120132)}, + &CodePointRange{From: rune(120134), To: rune(120134)}, + &CodePointRange{From: rune(120138), To: rune(120144)}, + &CodePointRange{From: rune(120172), To: rune(120197)}, + &CodePointRange{From: rune(120224), To: rune(120249)}, + &CodePointRange{From: rune(120276), To: rune(120301)}, + &CodePointRange{From: rune(120328), To: rune(120353)}, + &CodePointRange{From: rune(120380), To: rune(120405)}, + &CodePointRange{From: rune(120432), To: rune(120457)}, + &CodePointRange{From: rune(120488), To: rune(120512)}, + &CodePointRange{From: rune(120546), To: rune(120570)}, + &CodePointRange{From: rune(120604), To: rune(120628)}, + &CodePointRange{From: rune(120662), To: rune(120686)}, + &CodePointRange{From: rune(120720), To: rune(120744)}, + &CodePointRange{From: rune(120778), To: rune(120778)}, + &CodePointRange{From: rune(125184), To: rune(125217)}, + }, + "mc": { + &CodePointRange{From: rune(2307), To: rune(2307)}, + &CodePointRange{From: rune(2363), To: rune(2363)}, + &CodePointRange{From: rune(2366), To: rune(2368)}, + &CodePointRange{From: rune(2377), To: rune(2380)}, + &CodePointRange{From: rune(2382), To: rune(2383)}, + &CodePointRange{From: rune(2434), To: rune(2435)}, + &CodePointRange{From: rune(2494), To: rune(2496)}, + &CodePointRange{From: rune(2503), To: rune(2504)}, + &CodePointRange{From: rune(2507), To: rune(2508)}, + &CodePointRange{From: rune(2519), To: rune(2519)}, + &CodePointRange{From: rune(2563), To: rune(2563)}, + &CodePointRange{From: rune(2622), To: rune(2624)}, + &CodePointRange{From: rune(2691), To: rune(2691)}, + &CodePointRange{From: rune(2750), To: rune(2752)}, + &CodePointRange{From: rune(2761), To: rune(2761)}, + &CodePointRange{From: rune(2763), To: rune(2764)}, + &CodePointRange{From: rune(2818), To: rune(2819)}, + &CodePointRange{From: rune(2878), To: rune(2878)}, + &CodePointRange{From: rune(2880), To: rune(2880)}, + &CodePointRange{From: rune(2887), To: rune(2888)}, + &CodePointRange{From: rune(2891), To: rune(2892)}, + &CodePointRange{From: rune(2903), To: rune(2903)}, + &CodePointRange{From: rune(3006), To: rune(3007)}, + &CodePointRange{From: rune(3009), To: rune(3010)}, + &CodePointRange{From: rune(3014), To: rune(3016)}, + &CodePointRange{From: rune(3018), To: rune(3020)}, + &CodePointRange{From: rune(3031), To: rune(3031)}, + &CodePointRange{From: rune(3073), To: rune(3075)}, + &CodePointRange{From: rune(3137), To: rune(3140)}, + &CodePointRange{From: rune(3202), To: rune(3203)}, + &CodePointRange{From: rune(3262), To: rune(3262)}, + &CodePointRange{From: rune(3264), To: rune(3268)}, + &CodePointRange{From: rune(3271), To: rune(3272)}, + &CodePointRange{From: rune(3274), To: rune(3275)}, + &CodePointRange{From: rune(3285), To: rune(3286)}, + &CodePointRange{From: rune(3330), To: rune(3331)}, + &CodePointRange{From: rune(3390), To: rune(3392)}, + &CodePointRange{From: rune(3398), To: rune(3400)}, + &CodePointRange{From: rune(3402), To: rune(3404)}, + &CodePointRange{From: rune(3415), To: rune(3415)}, + &CodePointRange{From: rune(3458), To: rune(3459)}, + &CodePointRange{From: rune(3535), To: rune(3537)}, + &CodePointRange{From: rune(3544), To: rune(3551)}, + &CodePointRange{From: rune(3570), To: rune(3571)}, + &CodePointRange{From: rune(3902), To: rune(3903)}, + &CodePointRange{From: rune(3967), To: rune(3967)}, + &CodePointRange{From: rune(4139), To: rune(4140)}, + &CodePointRange{From: rune(4145), To: rune(4145)}, + &CodePointRange{From: rune(4152), To: rune(4152)}, + &CodePointRange{From: rune(4155), To: rune(4156)}, + &CodePointRange{From: rune(4182), To: rune(4183)}, + &CodePointRange{From: rune(4194), To: rune(4196)}, + &CodePointRange{From: rune(4199), To: rune(4205)}, + &CodePointRange{From: rune(4227), To: rune(4228)}, + &CodePointRange{From: rune(4231), To: rune(4236)}, + &CodePointRange{From: rune(4239), To: rune(4239)}, + &CodePointRange{From: rune(4250), To: rune(4252)}, + &CodePointRange{From: rune(6070), To: rune(6070)}, + &CodePointRange{From: rune(6078), To: rune(6085)}, + &CodePointRange{From: rune(6087), To: rune(6088)}, + &CodePointRange{From: rune(6435), To: rune(6438)}, + &CodePointRange{From: rune(6441), To: rune(6443)}, + &CodePointRange{From: rune(6448), To: rune(6449)}, + &CodePointRange{From: rune(6451), To: rune(6456)}, + &CodePointRange{From: rune(6681), To: rune(6682)}, + &CodePointRange{From: rune(6741), To: rune(6741)}, + &CodePointRange{From: rune(6743), To: rune(6743)}, + &CodePointRange{From: rune(6753), To: rune(6753)}, + &CodePointRange{From: rune(6755), To: rune(6756)}, + &CodePointRange{From: rune(6765), To: rune(6770)}, + &CodePointRange{From: rune(6916), To: rune(6916)}, + &CodePointRange{From: rune(6965), To: rune(6965)}, + &CodePointRange{From: rune(6971), To: rune(6971)}, + &CodePointRange{From: rune(6973), To: rune(6977)}, + &CodePointRange{From: rune(6979), To: rune(6980)}, + &CodePointRange{From: rune(7042), To: rune(7042)}, + &CodePointRange{From: rune(7073), To: rune(7073)}, + &CodePointRange{From: rune(7078), To: rune(7079)}, + &CodePointRange{From: rune(7082), To: rune(7082)}, + &CodePointRange{From: rune(7143), To: rune(7143)}, + &CodePointRange{From: rune(7146), To: rune(7148)}, + &CodePointRange{From: rune(7150), To: rune(7150)}, + &CodePointRange{From: rune(7154), To: rune(7155)}, + &CodePointRange{From: rune(7204), To: rune(7211)}, + &CodePointRange{From: rune(7220), To: rune(7221)}, + &CodePointRange{From: rune(7393), To: rune(7393)}, + &CodePointRange{From: rune(7415), To: rune(7415)}, + &CodePointRange{From: rune(12334), To: rune(12335)}, + &CodePointRange{From: rune(43043), To: rune(43044)}, + &CodePointRange{From: rune(43047), To: rune(43047)}, + &CodePointRange{From: rune(43136), To: rune(43137)}, + &CodePointRange{From: rune(43188), To: rune(43203)}, + &CodePointRange{From: rune(43346), To: rune(43347)}, + &CodePointRange{From: rune(43395), To: rune(43395)}, + &CodePointRange{From: rune(43444), To: rune(43445)}, + &CodePointRange{From: rune(43450), To: rune(43451)}, + &CodePointRange{From: rune(43454), To: rune(43456)}, + &CodePointRange{From: rune(43567), To: rune(43568)}, + &CodePointRange{From: rune(43571), To: rune(43572)}, + &CodePointRange{From: rune(43597), To: rune(43597)}, + &CodePointRange{From: rune(43643), To: rune(43643)}, + &CodePointRange{From: rune(43645), To: rune(43645)}, + &CodePointRange{From: rune(43755), To: rune(43755)}, + &CodePointRange{From: rune(43758), To: rune(43759)}, + &CodePointRange{From: rune(43765), To: rune(43765)}, + &CodePointRange{From: rune(44003), To: rune(44004)}, + &CodePointRange{From: rune(44006), To: rune(44007)}, + &CodePointRange{From: rune(44009), To: rune(44010)}, + &CodePointRange{From: rune(44012), To: rune(44012)}, + &CodePointRange{From: rune(69632), To: rune(69632)}, + &CodePointRange{From: rune(69634), To: rune(69634)}, + &CodePointRange{From: rune(69762), To: rune(69762)}, + &CodePointRange{From: rune(69808), To: rune(69810)}, + &CodePointRange{From: rune(69815), To: rune(69816)}, + &CodePointRange{From: rune(69932), To: rune(69932)}, + &CodePointRange{From: rune(69957), To: rune(69958)}, + &CodePointRange{From: rune(70018), To: rune(70018)}, + &CodePointRange{From: rune(70067), To: rune(70069)}, + &CodePointRange{From: rune(70079), To: rune(70080)}, + &CodePointRange{From: rune(70094), To: rune(70094)}, + &CodePointRange{From: rune(70188), To: rune(70190)}, + &CodePointRange{From: rune(70194), To: rune(70195)}, + &CodePointRange{From: rune(70197), To: rune(70197)}, + &CodePointRange{From: rune(70368), To: rune(70370)}, + &CodePointRange{From: rune(70402), To: rune(70403)}, + &CodePointRange{From: rune(70462), To: rune(70463)}, + &CodePointRange{From: rune(70465), To: rune(70468)}, + &CodePointRange{From: rune(70471), To: rune(70472)}, + &CodePointRange{From: rune(70475), To: rune(70477)}, + &CodePointRange{From: rune(70487), To: rune(70487)}, + &CodePointRange{From: rune(70498), To: rune(70499)}, + &CodePointRange{From: rune(70709), To: rune(70711)}, + &CodePointRange{From: rune(70720), To: rune(70721)}, + &CodePointRange{From: rune(70725), To: rune(70725)}, + &CodePointRange{From: rune(70832), To: rune(70834)}, + &CodePointRange{From: rune(70841), To: rune(70841)}, + &CodePointRange{From: rune(70843), To: rune(70846)}, + &CodePointRange{From: rune(70849), To: rune(70849)}, + &CodePointRange{From: rune(71087), To: rune(71089)}, + &CodePointRange{From: rune(71096), To: rune(71099)}, + &CodePointRange{From: rune(71102), To: rune(71102)}, + &CodePointRange{From: rune(71216), To: rune(71218)}, + &CodePointRange{From: rune(71227), To: rune(71228)}, + &CodePointRange{From: rune(71230), To: rune(71230)}, + &CodePointRange{From: rune(71340), To: rune(71340)}, + &CodePointRange{From: rune(71342), To: rune(71343)}, + &CodePointRange{From: rune(71350), To: rune(71350)}, + &CodePointRange{From: rune(71456), To: rune(71457)}, + &CodePointRange{From: rune(71462), To: rune(71462)}, + &CodePointRange{From: rune(71724), To: rune(71726)}, + &CodePointRange{From: rune(71736), To: rune(71736)}, + &CodePointRange{From: rune(71984), To: rune(71989)}, + &CodePointRange{From: rune(71991), To: rune(71992)}, + &CodePointRange{From: rune(71997), To: rune(71997)}, + &CodePointRange{From: rune(72000), To: rune(72000)}, + &CodePointRange{From: rune(72002), To: rune(72002)}, + &CodePointRange{From: rune(72145), To: rune(72147)}, + &CodePointRange{From: rune(72156), To: rune(72159)}, + &CodePointRange{From: rune(72164), To: rune(72164)}, + &CodePointRange{From: rune(72249), To: rune(72249)}, + &CodePointRange{From: rune(72279), To: rune(72280)}, + &CodePointRange{From: rune(72343), To: rune(72343)}, + &CodePointRange{From: rune(72751), To: rune(72751)}, + &CodePointRange{From: rune(72766), To: rune(72766)}, + &CodePointRange{From: rune(72873), To: rune(72873)}, + &CodePointRange{From: rune(72881), To: rune(72881)}, + &CodePointRange{From: rune(72884), To: rune(72884)}, + &CodePointRange{From: rune(73098), To: rune(73102)}, + &CodePointRange{From: rune(73107), To: rune(73108)}, + &CodePointRange{From: rune(73110), To: rune(73110)}, + &CodePointRange{From: rune(73461), To: rune(73462)}, + &CodePointRange{From: rune(94033), To: rune(94087)}, + &CodePointRange{From: rune(94192), To: rune(94193)}, + &CodePointRange{From: rune(119141), To: rune(119142)}, + &CodePointRange{From: rune(119149), To: rune(119154)}, + }, + "me": { + &CodePointRange{From: rune(1160), To: rune(1161)}, + &CodePointRange{From: rune(6846), To: rune(6846)}, + &CodePointRange{From: rune(8413), To: rune(8416)}, + &CodePointRange{From: rune(8418), To: rune(8420)}, + &CodePointRange{From: rune(42608), To: rune(42610)}, + }, + "mn": { + &CodePointRange{From: rune(768), To: rune(879)}, + &CodePointRange{From: rune(1155), To: rune(1159)}, + &CodePointRange{From: rune(1425), To: rune(1469)}, + &CodePointRange{From: rune(1471), To: rune(1471)}, + &CodePointRange{From: rune(1473), To: rune(1474)}, + &CodePointRange{From: rune(1476), To: rune(1477)}, + &CodePointRange{From: rune(1479), To: rune(1479)}, + &CodePointRange{From: rune(1552), To: rune(1562)}, + &CodePointRange{From: rune(1611), To: rune(1631)}, + &CodePointRange{From: rune(1648), To: rune(1648)}, + &CodePointRange{From: rune(1750), To: rune(1756)}, + &CodePointRange{From: rune(1759), To: rune(1764)}, + &CodePointRange{From: rune(1767), To: rune(1768)}, + &CodePointRange{From: rune(1770), To: rune(1773)}, + &CodePointRange{From: rune(1809), To: rune(1809)}, + &CodePointRange{From: rune(1840), To: rune(1866)}, + &CodePointRange{From: rune(1958), To: rune(1968)}, + &CodePointRange{From: rune(2027), To: rune(2035)}, + &CodePointRange{From: rune(2045), To: rune(2045)}, + &CodePointRange{From: rune(2070), To: rune(2073)}, + &CodePointRange{From: rune(2075), To: rune(2083)}, + &CodePointRange{From: rune(2085), To: rune(2087)}, + &CodePointRange{From: rune(2089), To: rune(2093)}, + &CodePointRange{From: rune(2137), To: rune(2139)}, + &CodePointRange{From: rune(2259), To: rune(2273)}, + &CodePointRange{From: rune(2275), To: rune(2306)}, + &CodePointRange{From: rune(2362), To: rune(2362)}, + &CodePointRange{From: rune(2364), To: rune(2364)}, + &CodePointRange{From: rune(2369), To: rune(2376)}, + &CodePointRange{From: rune(2381), To: rune(2381)}, + &CodePointRange{From: rune(2385), To: rune(2391)}, + &CodePointRange{From: rune(2402), To: rune(2403)}, + &CodePointRange{From: rune(2433), To: rune(2433)}, + &CodePointRange{From: rune(2492), To: rune(2492)}, + &CodePointRange{From: rune(2497), To: rune(2500)}, + &CodePointRange{From: rune(2509), To: rune(2509)}, + &CodePointRange{From: rune(2530), To: rune(2531)}, + &CodePointRange{From: rune(2558), To: rune(2558)}, + &CodePointRange{From: rune(2561), To: rune(2562)}, + &CodePointRange{From: rune(2620), To: rune(2620)}, + &CodePointRange{From: rune(2625), To: rune(2626)}, + &CodePointRange{From: rune(2631), To: rune(2632)}, + &CodePointRange{From: rune(2635), To: rune(2637)}, + &CodePointRange{From: rune(2641), To: rune(2641)}, + &CodePointRange{From: rune(2672), To: rune(2673)}, + &CodePointRange{From: rune(2677), To: rune(2677)}, + &CodePointRange{From: rune(2689), To: rune(2690)}, + &CodePointRange{From: rune(2748), To: rune(2748)}, + &CodePointRange{From: rune(2753), To: rune(2757)}, + &CodePointRange{From: rune(2759), To: rune(2760)}, + &CodePointRange{From: rune(2765), To: rune(2765)}, + &CodePointRange{From: rune(2786), To: rune(2787)}, + &CodePointRange{From: rune(2810), To: rune(2815)}, + &CodePointRange{From: rune(2817), To: rune(2817)}, + &CodePointRange{From: rune(2876), To: rune(2876)}, + &CodePointRange{From: rune(2879), To: rune(2879)}, + &CodePointRange{From: rune(2881), To: rune(2884)}, + &CodePointRange{From: rune(2893), To: rune(2893)}, + &CodePointRange{From: rune(2901), To: rune(2902)}, + &CodePointRange{From: rune(2914), To: rune(2915)}, + &CodePointRange{From: rune(2946), To: rune(2946)}, + &CodePointRange{From: rune(3008), To: rune(3008)}, + &CodePointRange{From: rune(3021), To: rune(3021)}, + &CodePointRange{From: rune(3072), To: rune(3072)}, + &CodePointRange{From: rune(3076), To: rune(3076)}, + &CodePointRange{From: rune(3134), To: rune(3136)}, + &CodePointRange{From: rune(3142), To: rune(3144)}, + &CodePointRange{From: rune(3146), To: rune(3149)}, + &CodePointRange{From: rune(3157), To: rune(3158)}, + &CodePointRange{From: rune(3170), To: rune(3171)}, + &CodePointRange{From: rune(3201), To: rune(3201)}, + &CodePointRange{From: rune(3260), To: rune(3260)}, + &CodePointRange{From: rune(3263), To: rune(3263)}, + &CodePointRange{From: rune(3270), To: rune(3270)}, + &CodePointRange{From: rune(3276), To: rune(3277)}, + &CodePointRange{From: rune(3298), To: rune(3299)}, + &CodePointRange{From: rune(3328), To: rune(3329)}, + &CodePointRange{From: rune(3387), To: rune(3388)}, + &CodePointRange{From: rune(3393), To: rune(3396)}, + &CodePointRange{From: rune(3405), To: rune(3405)}, + &CodePointRange{From: rune(3426), To: rune(3427)}, + &CodePointRange{From: rune(3457), To: rune(3457)}, + &CodePointRange{From: rune(3530), To: rune(3530)}, + &CodePointRange{From: rune(3538), To: rune(3540)}, + &CodePointRange{From: rune(3542), To: rune(3542)}, + &CodePointRange{From: rune(3633), To: rune(3633)}, + &CodePointRange{From: rune(3636), To: rune(3642)}, + &CodePointRange{From: rune(3655), To: rune(3662)}, + &CodePointRange{From: rune(3761), To: rune(3761)}, + &CodePointRange{From: rune(3764), To: rune(3772)}, + &CodePointRange{From: rune(3784), To: rune(3789)}, + &CodePointRange{From: rune(3864), To: rune(3865)}, + &CodePointRange{From: rune(3893), To: rune(3893)}, + &CodePointRange{From: rune(3895), To: rune(3895)}, + &CodePointRange{From: rune(3897), To: rune(3897)}, + &CodePointRange{From: rune(3953), To: rune(3966)}, + &CodePointRange{From: rune(3968), To: rune(3972)}, + &CodePointRange{From: rune(3974), To: rune(3975)}, + &CodePointRange{From: rune(3981), To: rune(3991)}, + &CodePointRange{From: rune(3993), To: rune(4028)}, + &CodePointRange{From: rune(4038), To: rune(4038)}, + &CodePointRange{From: rune(4141), To: rune(4144)}, + &CodePointRange{From: rune(4146), To: rune(4151)}, + &CodePointRange{From: rune(4153), To: rune(4154)}, + &CodePointRange{From: rune(4157), To: rune(4158)}, + &CodePointRange{From: rune(4184), To: rune(4185)}, + &CodePointRange{From: rune(4190), To: rune(4192)}, + &CodePointRange{From: rune(4209), To: rune(4212)}, + &CodePointRange{From: rune(4226), To: rune(4226)}, + &CodePointRange{From: rune(4229), To: rune(4230)}, + &CodePointRange{From: rune(4237), To: rune(4237)}, + &CodePointRange{From: rune(4253), To: rune(4253)}, + &CodePointRange{From: rune(4957), To: rune(4959)}, + &CodePointRange{From: rune(5906), To: rune(5908)}, + &CodePointRange{From: rune(5938), To: rune(5940)}, + &CodePointRange{From: rune(5970), To: rune(5971)}, + &CodePointRange{From: rune(6002), To: rune(6003)}, + &CodePointRange{From: rune(6068), To: rune(6069)}, + &CodePointRange{From: rune(6071), To: rune(6077)}, + &CodePointRange{From: rune(6086), To: rune(6086)}, + &CodePointRange{From: rune(6089), To: rune(6099)}, + &CodePointRange{From: rune(6109), To: rune(6109)}, + &CodePointRange{From: rune(6155), To: rune(6157)}, + &CodePointRange{From: rune(6277), To: rune(6278)}, + &CodePointRange{From: rune(6313), To: rune(6313)}, + &CodePointRange{From: rune(6432), To: rune(6434)}, + &CodePointRange{From: rune(6439), To: rune(6440)}, + &CodePointRange{From: rune(6450), To: rune(6450)}, + &CodePointRange{From: rune(6457), To: rune(6459)}, + &CodePointRange{From: rune(6679), To: rune(6680)}, + &CodePointRange{From: rune(6683), To: rune(6683)}, + &CodePointRange{From: rune(6742), To: rune(6742)}, + &CodePointRange{From: rune(6744), To: rune(6750)}, + &CodePointRange{From: rune(6752), To: rune(6752)}, + &CodePointRange{From: rune(6754), To: rune(6754)}, + &CodePointRange{From: rune(6757), To: rune(6764)}, + &CodePointRange{From: rune(6771), To: rune(6780)}, + &CodePointRange{From: rune(6783), To: rune(6783)}, + &CodePointRange{From: rune(6832), To: rune(6845)}, + &CodePointRange{From: rune(6847), To: rune(6848)}, + &CodePointRange{From: rune(6912), To: rune(6915)}, + &CodePointRange{From: rune(6964), To: rune(6964)}, + &CodePointRange{From: rune(6966), To: rune(6970)}, + &CodePointRange{From: rune(6972), To: rune(6972)}, + &CodePointRange{From: rune(6978), To: rune(6978)}, + &CodePointRange{From: rune(7019), To: rune(7027)}, + &CodePointRange{From: rune(7040), To: rune(7041)}, + &CodePointRange{From: rune(7074), To: rune(7077)}, + &CodePointRange{From: rune(7080), To: rune(7081)}, + &CodePointRange{From: rune(7083), To: rune(7085)}, + &CodePointRange{From: rune(7142), To: rune(7142)}, + &CodePointRange{From: rune(7144), To: rune(7145)}, + &CodePointRange{From: rune(7149), To: rune(7149)}, + &CodePointRange{From: rune(7151), To: rune(7153)}, + &CodePointRange{From: rune(7212), To: rune(7219)}, + &CodePointRange{From: rune(7222), To: rune(7223)}, + &CodePointRange{From: rune(7376), To: rune(7378)}, + &CodePointRange{From: rune(7380), To: rune(7392)}, + &CodePointRange{From: rune(7394), To: rune(7400)}, + &CodePointRange{From: rune(7405), To: rune(7405)}, + &CodePointRange{From: rune(7412), To: rune(7412)}, + &CodePointRange{From: rune(7416), To: rune(7417)}, + &CodePointRange{From: rune(7616), To: rune(7673)}, + &CodePointRange{From: rune(7675), To: rune(7679)}, + &CodePointRange{From: rune(8400), To: rune(8412)}, + &CodePointRange{From: rune(8417), To: rune(8417)}, + &CodePointRange{From: rune(8421), To: rune(8432)}, + &CodePointRange{From: rune(11503), To: rune(11505)}, + &CodePointRange{From: rune(11647), To: rune(11647)}, + &CodePointRange{From: rune(11744), To: rune(11775)}, + &CodePointRange{From: rune(12330), To: rune(12333)}, + &CodePointRange{From: rune(12441), To: rune(12442)}, + &CodePointRange{From: rune(42607), To: rune(42607)}, + &CodePointRange{From: rune(42612), To: rune(42621)}, + &CodePointRange{From: rune(42654), To: rune(42655)}, + &CodePointRange{From: rune(42736), To: rune(42737)}, + &CodePointRange{From: rune(43010), To: rune(43010)}, + &CodePointRange{From: rune(43014), To: rune(43014)}, + &CodePointRange{From: rune(43019), To: rune(43019)}, + &CodePointRange{From: rune(43045), To: rune(43046)}, + &CodePointRange{From: rune(43052), To: rune(43052)}, + &CodePointRange{From: rune(43204), To: rune(43205)}, + &CodePointRange{From: rune(43232), To: rune(43249)}, + &CodePointRange{From: rune(43263), To: rune(43263)}, + &CodePointRange{From: rune(43302), To: rune(43309)}, + &CodePointRange{From: rune(43335), To: rune(43345)}, + &CodePointRange{From: rune(43392), To: rune(43394)}, + &CodePointRange{From: rune(43443), To: rune(43443)}, + &CodePointRange{From: rune(43446), To: rune(43449)}, + &CodePointRange{From: rune(43452), To: rune(43453)}, + &CodePointRange{From: rune(43493), To: rune(43493)}, + &CodePointRange{From: rune(43561), To: rune(43566)}, + &CodePointRange{From: rune(43569), To: rune(43570)}, + &CodePointRange{From: rune(43573), To: rune(43574)}, + &CodePointRange{From: rune(43587), To: rune(43587)}, + &CodePointRange{From: rune(43596), To: rune(43596)}, + &CodePointRange{From: rune(43644), To: rune(43644)}, + &CodePointRange{From: rune(43696), To: rune(43696)}, + &CodePointRange{From: rune(43698), To: rune(43700)}, + &CodePointRange{From: rune(43703), To: rune(43704)}, + &CodePointRange{From: rune(43710), To: rune(43711)}, + &CodePointRange{From: rune(43713), To: rune(43713)}, + &CodePointRange{From: rune(43756), To: rune(43757)}, + &CodePointRange{From: rune(43766), To: rune(43766)}, + &CodePointRange{From: rune(44005), To: rune(44005)}, + &CodePointRange{From: rune(44008), To: rune(44008)}, + &CodePointRange{From: rune(44013), To: rune(44013)}, + &CodePointRange{From: rune(64286), To: rune(64286)}, + &CodePointRange{From: rune(65024), To: rune(65039)}, + &CodePointRange{From: rune(65056), To: rune(65071)}, + &CodePointRange{From: rune(66045), To: rune(66045)}, + &CodePointRange{From: rune(66272), To: rune(66272)}, + &CodePointRange{From: rune(66422), To: rune(66426)}, + &CodePointRange{From: rune(68097), To: rune(68099)}, + &CodePointRange{From: rune(68101), To: rune(68102)}, + &CodePointRange{From: rune(68108), To: rune(68111)}, + &CodePointRange{From: rune(68152), To: rune(68154)}, + &CodePointRange{From: rune(68159), To: rune(68159)}, + &CodePointRange{From: rune(68325), To: rune(68326)}, + &CodePointRange{From: rune(68900), To: rune(68903)}, + &CodePointRange{From: rune(69291), To: rune(69292)}, + &CodePointRange{From: rune(69446), To: rune(69456)}, + &CodePointRange{From: rune(69633), To: rune(69633)}, + &CodePointRange{From: rune(69688), To: rune(69702)}, + &CodePointRange{From: rune(69759), To: rune(69761)}, + &CodePointRange{From: rune(69811), To: rune(69814)}, + &CodePointRange{From: rune(69817), To: rune(69818)}, + &CodePointRange{From: rune(69888), To: rune(69890)}, + &CodePointRange{From: rune(69927), To: rune(69931)}, + &CodePointRange{From: rune(69933), To: rune(69940)}, + &CodePointRange{From: rune(70003), To: rune(70003)}, + &CodePointRange{From: rune(70016), To: rune(70017)}, + &CodePointRange{From: rune(70070), To: rune(70078)}, + &CodePointRange{From: rune(70089), To: rune(70092)}, + &CodePointRange{From: rune(70095), To: rune(70095)}, + &CodePointRange{From: rune(70191), To: rune(70193)}, + &CodePointRange{From: rune(70196), To: rune(70196)}, + &CodePointRange{From: rune(70198), To: rune(70199)}, + &CodePointRange{From: rune(70206), To: rune(70206)}, + &CodePointRange{From: rune(70367), To: rune(70367)}, + &CodePointRange{From: rune(70371), To: rune(70378)}, + &CodePointRange{From: rune(70400), To: rune(70401)}, + &CodePointRange{From: rune(70459), To: rune(70460)}, + &CodePointRange{From: rune(70464), To: rune(70464)}, + &CodePointRange{From: rune(70502), To: rune(70508)}, + &CodePointRange{From: rune(70512), To: rune(70516)}, + &CodePointRange{From: rune(70712), To: rune(70719)}, + &CodePointRange{From: rune(70722), To: rune(70724)}, + &CodePointRange{From: rune(70726), To: rune(70726)}, + &CodePointRange{From: rune(70750), To: rune(70750)}, + &CodePointRange{From: rune(70835), To: rune(70840)}, + &CodePointRange{From: rune(70842), To: rune(70842)}, + &CodePointRange{From: rune(70847), To: rune(70848)}, + &CodePointRange{From: rune(70850), To: rune(70851)}, + &CodePointRange{From: rune(71090), To: rune(71093)}, + &CodePointRange{From: rune(71100), To: rune(71101)}, + &CodePointRange{From: rune(71103), To: rune(71104)}, + &CodePointRange{From: rune(71132), To: rune(71133)}, + &CodePointRange{From: rune(71219), To: rune(71226)}, + &CodePointRange{From: rune(71229), To: rune(71229)}, + &CodePointRange{From: rune(71231), To: rune(71232)}, + &CodePointRange{From: rune(71339), To: rune(71339)}, + &CodePointRange{From: rune(71341), To: rune(71341)}, + &CodePointRange{From: rune(71344), To: rune(71349)}, + &CodePointRange{From: rune(71351), To: rune(71351)}, + &CodePointRange{From: rune(71453), To: rune(71455)}, + &CodePointRange{From: rune(71458), To: rune(71461)}, + &CodePointRange{From: rune(71463), To: rune(71467)}, + &CodePointRange{From: rune(71727), To: rune(71735)}, + &CodePointRange{From: rune(71737), To: rune(71738)}, + &CodePointRange{From: rune(71995), To: rune(71996)}, + &CodePointRange{From: rune(71998), To: rune(71998)}, + &CodePointRange{From: rune(72003), To: rune(72003)}, + &CodePointRange{From: rune(72148), To: rune(72151)}, + &CodePointRange{From: rune(72154), To: rune(72155)}, + &CodePointRange{From: rune(72160), To: rune(72160)}, + &CodePointRange{From: rune(72193), To: rune(72202)}, + &CodePointRange{From: rune(72243), To: rune(72248)}, + &CodePointRange{From: rune(72251), To: rune(72254)}, + &CodePointRange{From: rune(72263), To: rune(72263)}, + &CodePointRange{From: rune(72273), To: rune(72278)}, + &CodePointRange{From: rune(72281), To: rune(72283)}, + &CodePointRange{From: rune(72330), To: rune(72342)}, + &CodePointRange{From: rune(72344), To: rune(72345)}, + &CodePointRange{From: rune(72752), To: rune(72758)}, + &CodePointRange{From: rune(72760), To: rune(72765)}, + &CodePointRange{From: rune(72767), To: rune(72767)}, + &CodePointRange{From: rune(72850), To: rune(72871)}, + &CodePointRange{From: rune(72874), To: rune(72880)}, + &CodePointRange{From: rune(72882), To: rune(72883)}, + &CodePointRange{From: rune(72885), To: rune(72886)}, + &CodePointRange{From: rune(73009), To: rune(73014)}, + &CodePointRange{From: rune(73018), To: rune(73018)}, + &CodePointRange{From: rune(73020), To: rune(73021)}, + &CodePointRange{From: rune(73023), To: rune(73029)}, + &CodePointRange{From: rune(73031), To: rune(73031)}, + &CodePointRange{From: rune(73104), To: rune(73105)}, + &CodePointRange{From: rune(73109), To: rune(73109)}, + &CodePointRange{From: rune(73111), To: rune(73111)}, + &CodePointRange{From: rune(73459), To: rune(73460)}, + &CodePointRange{From: rune(92912), To: rune(92916)}, + &CodePointRange{From: rune(92976), To: rune(92982)}, + &CodePointRange{From: rune(94031), To: rune(94031)}, + &CodePointRange{From: rune(94095), To: rune(94098)}, + &CodePointRange{From: rune(94180), To: rune(94180)}, + &CodePointRange{From: rune(113821), To: rune(113822)}, + &CodePointRange{From: rune(119143), To: rune(119145)}, + &CodePointRange{From: rune(119163), To: rune(119170)}, + &CodePointRange{From: rune(119173), To: rune(119179)}, + &CodePointRange{From: rune(119210), To: rune(119213)}, + &CodePointRange{From: rune(119362), To: rune(119364)}, + &CodePointRange{From: rune(121344), To: rune(121398)}, + &CodePointRange{From: rune(121403), To: rune(121452)}, + &CodePointRange{From: rune(121461), To: rune(121461)}, + &CodePointRange{From: rune(121476), To: rune(121476)}, + &CodePointRange{From: rune(121499), To: rune(121503)}, + &CodePointRange{From: rune(121505), To: rune(121519)}, + &CodePointRange{From: rune(122880), To: rune(122886)}, + &CodePointRange{From: rune(122888), To: rune(122904)}, + &CodePointRange{From: rune(122907), To: rune(122913)}, + &CodePointRange{From: rune(122915), To: rune(122916)}, + &CodePointRange{From: rune(122918), To: rune(122922)}, + &CodePointRange{From: rune(123184), To: rune(123190)}, + &CodePointRange{From: rune(123628), To: rune(123631)}, + &CodePointRange{From: rune(125136), To: rune(125142)}, + &CodePointRange{From: rune(125252), To: rune(125258)}, + &CodePointRange{From: rune(917760), To: rune(917999)}, + }, + "nd": { + &CodePointRange{From: rune(48), To: rune(57)}, + &CodePointRange{From: rune(1632), To: rune(1641)}, + &CodePointRange{From: rune(1776), To: rune(1785)}, + &CodePointRange{From: rune(1984), To: rune(1993)}, + &CodePointRange{From: rune(2406), To: rune(2415)}, + &CodePointRange{From: rune(2534), To: rune(2543)}, + &CodePointRange{From: rune(2662), To: rune(2671)}, + &CodePointRange{From: rune(2790), To: rune(2799)}, + &CodePointRange{From: rune(2918), To: rune(2927)}, + &CodePointRange{From: rune(3046), To: rune(3055)}, + &CodePointRange{From: rune(3174), To: rune(3183)}, + &CodePointRange{From: rune(3302), To: rune(3311)}, + &CodePointRange{From: rune(3430), To: rune(3439)}, + &CodePointRange{From: rune(3558), To: rune(3567)}, + &CodePointRange{From: rune(3664), To: rune(3673)}, + &CodePointRange{From: rune(3792), To: rune(3801)}, + &CodePointRange{From: rune(3872), To: rune(3881)}, + &CodePointRange{From: rune(4160), To: rune(4169)}, + &CodePointRange{From: rune(4240), To: rune(4249)}, + &CodePointRange{From: rune(6112), To: rune(6121)}, + &CodePointRange{From: rune(6160), To: rune(6169)}, + &CodePointRange{From: rune(6470), To: rune(6479)}, + &CodePointRange{From: rune(6608), To: rune(6617)}, + &CodePointRange{From: rune(6784), To: rune(6793)}, + &CodePointRange{From: rune(6800), To: rune(6809)}, + &CodePointRange{From: rune(6992), To: rune(7001)}, + &CodePointRange{From: rune(7088), To: rune(7097)}, + &CodePointRange{From: rune(7232), To: rune(7241)}, + &CodePointRange{From: rune(7248), To: rune(7257)}, + &CodePointRange{From: rune(42528), To: rune(42537)}, + &CodePointRange{From: rune(43216), To: rune(43225)}, + &CodePointRange{From: rune(43264), To: rune(43273)}, + &CodePointRange{From: rune(43472), To: rune(43481)}, + &CodePointRange{From: rune(43504), To: rune(43513)}, + &CodePointRange{From: rune(43600), To: rune(43609)}, + &CodePointRange{From: rune(44016), To: rune(44025)}, + &CodePointRange{From: rune(65296), To: rune(65305)}, + &CodePointRange{From: rune(66720), To: rune(66729)}, + &CodePointRange{From: rune(68912), To: rune(68921)}, + &CodePointRange{From: rune(69734), To: rune(69743)}, + &CodePointRange{From: rune(69872), To: rune(69881)}, + &CodePointRange{From: rune(69942), To: rune(69951)}, + &CodePointRange{From: rune(70096), To: rune(70105)}, + &CodePointRange{From: rune(70384), To: rune(70393)}, + &CodePointRange{From: rune(70736), To: rune(70745)}, + &CodePointRange{From: rune(70864), To: rune(70873)}, + &CodePointRange{From: rune(71248), To: rune(71257)}, + &CodePointRange{From: rune(71360), To: rune(71369)}, + &CodePointRange{From: rune(71472), To: rune(71481)}, + &CodePointRange{From: rune(71904), To: rune(71913)}, + &CodePointRange{From: rune(72016), To: rune(72025)}, + &CodePointRange{From: rune(72784), To: rune(72793)}, + &CodePointRange{From: rune(73040), To: rune(73049)}, + &CodePointRange{From: rune(73120), To: rune(73129)}, + &CodePointRange{From: rune(92768), To: rune(92777)}, + &CodePointRange{From: rune(93008), To: rune(93017)}, + &CodePointRange{From: rune(120782), To: rune(120831)}, + &CodePointRange{From: rune(123200), To: rune(123209)}, + &CodePointRange{From: rune(123632), To: rune(123641)}, + &CodePointRange{From: rune(125264), To: rune(125273)}, + &CodePointRange{From: rune(130032), To: rune(130041)}, + }, + "nl": { + &CodePointRange{From: rune(5870), To: rune(5872)}, + &CodePointRange{From: rune(8544), To: rune(8578)}, + &CodePointRange{From: rune(8581), To: rune(8584)}, + &CodePointRange{From: rune(12295), To: rune(12295)}, + &CodePointRange{From: rune(12321), To: rune(12329)}, + &CodePointRange{From: rune(12344), To: rune(12346)}, + &CodePointRange{From: rune(42726), To: rune(42735)}, + &CodePointRange{From: rune(65856), To: rune(65908)}, + &CodePointRange{From: rune(66369), To: rune(66369)}, + &CodePointRange{From: rune(66378), To: rune(66378)}, + &CodePointRange{From: rune(66513), To: rune(66517)}, + &CodePointRange{From: rune(74752), To: rune(74862)}, + }, + "no": { + &CodePointRange{From: rune(178), To: rune(179)}, + &CodePointRange{From: rune(185), To: rune(185)}, + &CodePointRange{From: rune(188), To: rune(190)}, + &CodePointRange{From: rune(2548), To: rune(2553)}, + &CodePointRange{From: rune(2930), To: rune(2935)}, + &CodePointRange{From: rune(3056), To: rune(3058)}, + &CodePointRange{From: rune(3192), To: rune(3198)}, + &CodePointRange{From: rune(3416), To: rune(3422)}, + &CodePointRange{From: rune(3440), To: rune(3448)}, + &CodePointRange{From: rune(3882), To: rune(3891)}, + &CodePointRange{From: rune(4969), To: rune(4988)}, + &CodePointRange{From: rune(6128), To: rune(6137)}, + &CodePointRange{From: rune(6618), To: rune(6618)}, + &CodePointRange{From: rune(8304), To: rune(8304)}, + &CodePointRange{From: rune(8308), To: rune(8313)}, + &CodePointRange{From: rune(8320), To: rune(8329)}, + &CodePointRange{From: rune(8528), To: rune(8543)}, + &CodePointRange{From: rune(8585), To: rune(8585)}, + &CodePointRange{From: rune(9312), To: rune(9371)}, + &CodePointRange{From: rune(9450), To: rune(9471)}, + &CodePointRange{From: rune(10102), To: rune(10131)}, + &CodePointRange{From: rune(11517), To: rune(11517)}, + &CodePointRange{From: rune(12690), To: rune(12693)}, + &CodePointRange{From: rune(12832), To: rune(12841)}, + &CodePointRange{From: rune(12872), To: rune(12879)}, + &CodePointRange{From: rune(12881), To: rune(12895)}, + &CodePointRange{From: rune(12928), To: rune(12937)}, + &CodePointRange{From: rune(12977), To: rune(12991)}, + &CodePointRange{From: rune(43056), To: rune(43061)}, + &CodePointRange{From: rune(65799), To: rune(65843)}, + &CodePointRange{From: rune(65909), To: rune(65912)}, + &CodePointRange{From: rune(65930), To: rune(65931)}, + &CodePointRange{From: rune(66273), To: rune(66299)}, + &CodePointRange{From: rune(66336), To: rune(66339)}, + &CodePointRange{From: rune(67672), To: rune(67679)}, + &CodePointRange{From: rune(67705), To: rune(67711)}, + &CodePointRange{From: rune(67751), To: rune(67759)}, + &CodePointRange{From: rune(67835), To: rune(67839)}, + &CodePointRange{From: rune(67862), To: rune(67867)}, + &CodePointRange{From: rune(68028), To: rune(68029)}, + &CodePointRange{From: rune(68032), To: rune(68047)}, + &CodePointRange{From: rune(68050), To: rune(68095)}, + &CodePointRange{From: rune(68160), To: rune(68168)}, + &CodePointRange{From: rune(68221), To: rune(68222)}, + &CodePointRange{From: rune(68253), To: rune(68255)}, + &CodePointRange{From: rune(68331), To: rune(68335)}, + &CodePointRange{From: rune(68440), To: rune(68447)}, + &CodePointRange{From: rune(68472), To: rune(68479)}, + &CodePointRange{From: rune(68521), To: rune(68527)}, + &CodePointRange{From: rune(68858), To: rune(68863)}, + &CodePointRange{From: rune(69216), To: rune(69246)}, + &CodePointRange{From: rune(69405), To: rune(69414)}, + &CodePointRange{From: rune(69457), To: rune(69460)}, + &CodePointRange{From: rune(69573), To: rune(69579)}, + &CodePointRange{From: rune(69714), To: rune(69733)}, + &CodePointRange{From: rune(70113), To: rune(70132)}, + &CodePointRange{From: rune(71482), To: rune(71483)}, + &CodePointRange{From: rune(71914), To: rune(71922)}, + &CodePointRange{From: rune(72794), To: rune(72812)}, + &CodePointRange{From: rune(73664), To: rune(73684)}, + &CodePointRange{From: rune(93019), To: rune(93025)}, + &CodePointRange{From: rune(93824), To: rune(93846)}, + &CodePointRange{From: rune(119520), To: rune(119539)}, + &CodePointRange{From: rune(119648), To: rune(119672)}, + &CodePointRange{From: rune(125127), To: rune(125135)}, + &CodePointRange{From: rune(126065), To: rune(126123)}, + &CodePointRange{From: rune(126125), To: rune(126127)}, + &CodePointRange{From: rune(126129), To: rune(126132)}, + &CodePointRange{From: rune(126209), To: rune(126253)}, + &CodePointRange{From: rune(126255), To: rune(126269)}, + &CodePointRange{From: rune(127232), To: rune(127244)}, + }, + "pc": { + &CodePointRange{From: rune(95), To: rune(95)}, + &CodePointRange{From: rune(8255), To: rune(8256)}, + &CodePointRange{From: rune(8276), To: rune(8276)}, + &CodePointRange{From: rune(65075), To: rune(65076)}, + &CodePointRange{From: rune(65101), To: rune(65103)}, + &CodePointRange{From: rune(65343), To: rune(65343)}, + }, + "pd": { + &CodePointRange{From: rune(45), To: rune(45)}, + &CodePointRange{From: rune(1418), To: rune(1418)}, + &CodePointRange{From: rune(1470), To: rune(1470)}, + &CodePointRange{From: rune(5120), To: rune(5120)}, + &CodePointRange{From: rune(6150), To: rune(6150)}, + &CodePointRange{From: rune(8208), To: rune(8213)}, + &CodePointRange{From: rune(11799), To: rune(11799)}, + &CodePointRange{From: rune(11802), To: rune(11802)}, + &CodePointRange{From: rune(11834), To: rune(11835)}, + &CodePointRange{From: rune(11840), To: rune(11840)}, + &CodePointRange{From: rune(12316), To: rune(12316)}, + &CodePointRange{From: rune(12336), To: rune(12336)}, + &CodePointRange{From: rune(12448), To: rune(12448)}, + &CodePointRange{From: rune(65073), To: rune(65074)}, + &CodePointRange{From: rune(65112), To: rune(65112)}, + &CodePointRange{From: rune(65123), To: rune(65123)}, + &CodePointRange{From: rune(65293), To: rune(65293)}, + &CodePointRange{From: rune(69293), To: rune(69293)}, + }, + "pe": { + &CodePointRange{From: rune(41), To: rune(41)}, + &CodePointRange{From: rune(93), To: rune(93)}, + &CodePointRange{From: rune(125), To: rune(125)}, + &CodePointRange{From: rune(3899), To: rune(3899)}, + &CodePointRange{From: rune(3901), To: rune(3901)}, + &CodePointRange{From: rune(5788), To: rune(5788)}, + &CodePointRange{From: rune(8262), To: rune(8262)}, + &CodePointRange{From: rune(8318), To: rune(8318)}, + &CodePointRange{From: rune(8334), To: rune(8334)}, + &CodePointRange{From: rune(8969), To: rune(8969)}, + &CodePointRange{From: rune(8971), To: rune(8971)}, + &CodePointRange{From: rune(9002), To: rune(9002)}, + &CodePointRange{From: rune(10089), To: rune(10089)}, + &CodePointRange{From: rune(10091), To: rune(10091)}, + &CodePointRange{From: rune(10093), To: rune(10093)}, + &CodePointRange{From: rune(10095), To: rune(10095)}, + &CodePointRange{From: rune(10097), To: rune(10097)}, + &CodePointRange{From: rune(10099), To: rune(10099)}, + &CodePointRange{From: rune(10101), To: rune(10101)}, + &CodePointRange{From: rune(10182), To: rune(10182)}, + &CodePointRange{From: rune(10215), To: rune(10215)}, + &CodePointRange{From: rune(10217), To: rune(10217)}, + &CodePointRange{From: rune(10219), To: rune(10219)}, + &CodePointRange{From: rune(10221), To: rune(10221)}, + &CodePointRange{From: rune(10223), To: rune(10223)}, + &CodePointRange{From: rune(10628), To: rune(10628)}, + &CodePointRange{From: rune(10630), To: rune(10630)}, + &CodePointRange{From: rune(10632), To: rune(10632)}, + &CodePointRange{From: rune(10634), To: rune(10634)}, + &CodePointRange{From: rune(10636), To: rune(10636)}, + &CodePointRange{From: rune(10638), To: rune(10638)}, + &CodePointRange{From: rune(10640), To: rune(10640)}, + &CodePointRange{From: rune(10642), To: rune(10642)}, + &CodePointRange{From: rune(10644), To: rune(10644)}, + &CodePointRange{From: rune(10646), To: rune(10646)}, + &CodePointRange{From: rune(10648), To: rune(10648)}, + &CodePointRange{From: rune(10713), To: rune(10713)}, + &CodePointRange{From: rune(10715), To: rune(10715)}, + &CodePointRange{From: rune(10749), To: rune(10749)}, + &CodePointRange{From: rune(11811), To: rune(11811)}, + &CodePointRange{From: rune(11813), To: rune(11813)}, + &CodePointRange{From: rune(11815), To: rune(11815)}, + &CodePointRange{From: rune(11817), To: rune(11817)}, + &CodePointRange{From: rune(12297), To: rune(12297)}, + &CodePointRange{From: rune(12299), To: rune(12299)}, + &CodePointRange{From: rune(12301), To: rune(12301)}, + &CodePointRange{From: rune(12303), To: rune(12303)}, + &CodePointRange{From: rune(12305), To: rune(12305)}, + &CodePointRange{From: rune(12309), To: rune(12309)}, + &CodePointRange{From: rune(12311), To: rune(12311)}, + &CodePointRange{From: rune(12313), To: rune(12313)}, + &CodePointRange{From: rune(12315), To: rune(12315)}, + &CodePointRange{From: rune(12318), To: rune(12319)}, + &CodePointRange{From: rune(64830), To: rune(64830)}, + &CodePointRange{From: rune(65048), To: rune(65048)}, + &CodePointRange{From: rune(65078), To: rune(65078)}, + &CodePointRange{From: rune(65080), To: rune(65080)}, + &CodePointRange{From: rune(65082), To: rune(65082)}, + &CodePointRange{From: rune(65084), To: rune(65084)}, + &CodePointRange{From: rune(65086), To: rune(65086)}, + &CodePointRange{From: rune(65088), To: rune(65088)}, + &CodePointRange{From: rune(65090), To: rune(65090)}, + &CodePointRange{From: rune(65092), To: rune(65092)}, + &CodePointRange{From: rune(65096), To: rune(65096)}, + &CodePointRange{From: rune(65114), To: rune(65114)}, + &CodePointRange{From: rune(65116), To: rune(65116)}, + &CodePointRange{From: rune(65118), To: rune(65118)}, + &CodePointRange{From: rune(65289), To: rune(65289)}, + &CodePointRange{From: rune(65341), To: rune(65341)}, + &CodePointRange{From: rune(65373), To: rune(65373)}, + &CodePointRange{From: rune(65376), To: rune(65376)}, + &CodePointRange{From: rune(65379), To: rune(65379)}, + }, + "pf": { + &CodePointRange{From: rune(187), To: rune(187)}, + &CodePointRange{From: rune(8217), To: rune(8217)}, + &CodePointRange{From: rune(8221), To: rune(8221)}, + &CodePointRange{From: rune(8250), To: rune(8250)}, + &CodePointRange{From: rune(11779), To: rune(11779)}, + &CodePointRange{From: rune(11781), To: rune(11781)}, + &CodePointRange{From: rune(11786), To: rune(11786)}, + &CodePointRange{From: rune(11789), To: rune(11789)}, + &CodePointRange{From: rune(11805), To: rune(11805)}, + &CodePointRange{From: rune(11809), To: rune(11809)}, + }, + "pi": { + &CodePointRange{From: rune(171), To: rune(171)}, + &CodePointRange{From: rune(8216), To: rune(8216)}, + &CodePointRange{From: rune(8219), To: rune(8220)}, + &CodePointRange{From: rune(8223), To: rune(8223)}, + &CodePointRange{From: rune(8249), To: rune(8249)}, + &CodePointRange{From: rune(11778), To: rune(11778)}, + &CodePointRange{From: rune(11780), To: rune(11780)}, + &CodePointRange{From: rune(11785), To: rune(11785)}, + &CodePointRange{From: rune(11788), To: rune(11788)}, + &CodePointRange{From: rune(11804), To: rune(11804)}, + &CodePointRange{From: rune(11808), To: rune(11808)}, + }, + "po": { + &CodePointRange{From: rune(33), To: rune(35)}, + &CodePointRange{From: rune(37), To: rune(39)}, + &CodePointRange{From: rune(42), To: rune(42)}, + &CodePointRange{From: rune(44), To: rune(44)}, + &CodePointRange{From: rune(46), To: rune(47)}, + &CodePointRange{From: rune(58), To: rune(59)}, + &CodePointRange{From: rune(63), To: rune(64)}, + &CodePointRange{From: rune(92), To: rune(92)}, + &CodePointRange{From: rune(161), To: rune(161)}, + &CodePointRange{From: rune(167), To: rune(167)}, + &CodePointRange{From: rune(182), To: rune(183)}, + &CodePointRange{From: rune(191), To: rune(191)}, + &CodePointRange{From: rune(894), To: rune(894)}, + &CodePointRange{From: rune(903), To: rune(903)}, + &CodePointRange{From: rune(1370), To: rune(1375)}, + &CodePointRange{From: rune(1417), To: rune(1417)}, + &CodePointRange{From: rune(1472), To: rune(1472)}, + &CodePointRange{From: rune(1475), To: rune(1475)}, + &CodePointRange{From: rune(1478), To: rune(1478)}, + &CodePointRange{From: rune(1523), To: rune(1524)}, + &CodePointRange{From: rune(1545), To: rune(1546)}, + &CodePointRange{From: rune(1548), To: rune(1549)}, + &CodePointRange{From: rune(1563), To: rune(1563)}, + &CodePointRange{From: rune(1566), To: rune(1567)}, + &CodePointRange{From: rune(1642), To: rune(1645)}, + &CodePointRange{From: rune(1748), To: rune(1748)}, + &CodePointRange{From: rune(1792), To: rune(1805)}, + &CodePointRange{From: rune(2039), To: rune(2041)}, + &CodePointRange{From: rune(2096), To: rune(2110)}, + &CodePointRange{From: rune(2142), To: rune(2142)}, + &CodePointRange{From: rune(2404), To: rune(2405)}, + &CodePointRange{From: rune(2416), To: rune(2416)}, + &CodePointRange{From: rune(2557), To: rune(2557)}, + &CodePointRange{From: rune(2678), To: rune(2678)}, + &CodePointRange{From: rune(2800), To: rune(2800)}, + &CodePointRange{From: rune(3191), To: rune(3191)}, + &CodePointRange{From: rune(3204), To: rune(3204)}, + &CodePointRange{From: rune(3572), To: rune(3572)}, + &CodePointRange{From: rune(3663), To: rune(3663)}, + &CodePointRange{From: rune(3674), To: rune(3675)}, + &CodePointRange{From: rune(3844), To: rune(3858)}, + &CodePointRange{From: rune(3860), To: rune(3860)}, + &CodePointRange{From: rune(3973), To: rune(3973)}, + &CodePointRange{From: rune(4048), To: rune(4052)}, + &CodePointRange{From: rune(4057), To: rune(4058)}, + &CodePointRange{From: rune(4170), To: rune(4175)}, + &CodePointRange{From: rune(4347), To: rune(4347)}, + &CodePointRange{From: rune(4960), To: rune(4968)}, + &CodePointRange{From: rune(5742), To: rune(5742)}, + &CodePointRange{From: rune(5867), To: rune(5869)}, + &CodePointRange{From: rune(5941), To: rune(5942)}, + &CodePointRange{From: rune(6100), To: rune(6102)}, + &CodePointRange{From: rune(6104), To: rune(6106)}, + &CodePointRange{From: rune(6144), To: rune(6149)}, + &CodePointRange{From: rune(6151), To: rune(6154)}, + &CodePointRange{From: rune(6468), To: rune(6469)}, + &CodePointRange{From: rune(6686), To: rune(6687)}, + &CodePointRange{From: rune(6816), To: rune(6822)}, + &CodePointRange{From: rune(6824), To: rune(6829)}, + &CodePointRange{From: rune(7002), To: rune(7008)}, + &CodePointRange{From: rune(7164), To: rune(7167)}, + &CodePointRange{From: rune(7227), To: rune(7231)}, + &CodePointRange{From: rune(7294), To: rune(7295)}, + &CodePointRange{From: rune(7360), To: rune(7367)}, + &CodePointRange{From: rune(7379), To: rune(7379)}, + &CodePointRange{From: rune(8214), To: rune(8215)}, + &CodePointRange{From: rune(8224), To: rune(8231)}, + &CodePointRange{From: rune(8240), To: rune(8248)}, + &CodePointRange{From: rune(8251), To: rune(8254)}, + &CodePointRange{From: rune(8257), To: rune(8259)}, + &CodePointRange{From: rune(8263), To: rune(8273)}, + &CodePointRange{From: rune(8275), To: rune(8275)}, + &CodePointRange{From: rune(8277), To: rune(8286)}, + &CodePointRange{From: rune(11513), To: rune(11516)}, + &CodePointRange{From: rune(11518), To: rune(11519)}, + &CodePointRange{From: rune(11632), To: rune(11632)}, + &CodePointRange{From: rune(11776), To: rune(11777)}, + &CodePointRange{From: rune(11782), To: rune(11784)}, + &CodePointRange{From: rune(11787), To: rune(11787)}, + &CodePointRange{From: rune(11790), To: rune(11798)}, + &CodePointRange{From: rune(11800), To: rune(11801)}, + &CodePointRange{From: rune(11803), To: rune(11803)}, + &CodePointRange{From: rune(11806), To: rune(11807)}, + &CodePointRange{From: rune(11818), To: rune(11822)}, + &CodePointRange{From: rune(11824), To: rune(11833)}, + &CodePointRange{From: rune(11836), To: rune(11839)}, + &CodePointRange{From: rune(11841), To: rune(11841)}, + &CodePointRange{From: rune(11843), To: rune(11855)}, + &CodePointRange{From: rune(11858), To: rune(11858)}, + &CodePointRange{From: rune(12289), To: rune(12291)}, + &CodePointRange{From: rune(12349), To: rune(12349)}, + &CodePointRange{From: rune(12539), To: rune(12539)}, + &CodePointRange{From: rune(42238), To: rune(42239)}, + &CodePointRange{From: rune(42509), To: rune(42511)}, + &CodePointRange{From: rune(42611), To: rune(42611)}, + &CodePointRange{From: rune(42622), To: rune(42622)}, + &CodePointRange{From: rune(42738), To: rune(42743)}, + &CodePointRange{From: rune(43124), To: rune(43127)}, + &CodePointRange{From: rune(43214), To: rune(43215)}, + &CodePointRange{From: rune(43256), To: rune(43258)}, + &CodePointRange{From: rune(43260), To: rune(43260)}, + &CodePointRange{From: rune(43310), To: rune(43311)}, + &CodePointRange{From: rune(43359), To: rune(43359)}, + &CodePointRange{From: rune(43457), To: rune(43469)}, + &CodePointRange{From: rune(43486), To: rune(43487)}, + &CodePointRange{From: rune(43612), To: rune(43615)}, + &CodePointRange{From: rune(43742), To: rune(43743)}, + &CodePointRange{From: rune(43760), To: rune(43761)}, + &CodePointRange{From: rune(44011), To: rune(44011)}, + &CodePointRange{From: rune(65040), To: rune(65046)}, + &CodePointRange{From: rune(65049), To: rune(65049)}, + &CodePointRange{From: rune(65072), To: rune(65072)}, + &CodePointRange{From: rune(65093), To: rune(65094)}, + &CodePointRange{From: rune(65097), To: rune(65100)}, + &CodePointRange{From: rune(65104), To: rune(65106)}, + &CodePointRange{From: rune(65108), To: rune(65111)}, + &CodePointRange{From: rune(65119), To: rune(65121)}, + &CodePointRange{From: rune(65128), To: rune(65128)}, + &CodePointRange{From: rune(65130), To: rune(65131)}, + &CodePointRange{From: rune(65281), To: rune(65283)}, + &CodePointRange{From: rune(65285), To: rune(65287)}, + &CodePointRange{From: rune(65290), To: rune(65290)}, + &CodePointRange{From: rune(65292), To: rune(65292)}, + &CodePointRange{From: rune(65294), To: rune(65295)}, + &CodePointRange{From: rune(65306), To: rune(65307)}, + &CodePointRange{From: rune(65311), To: rune(65312)}, + &CodePointRange{From: rune(65340), To: rune(65340)}, + &CodePointRange{From: rune(65377), To: rune(65377)}, + &CodePointRange{From: rune(65380), To: rune(65381)}, + &CodePointRange{From: rune(65792), To: rune(65794)}, + &CodePointRange{From: rune(66463), To: rune(66463)}, + &CodePointRange{From: rune(66512), To: rune(66512)}, + &CodePointRange{From: rune(66927), To: rune(66927)}, + &CodePointRange{From: rune(67671), To: rune(67671)}, + &CodePointRange{From: rune(67871), To: rune(67871)}, + &CodePointRange{From: rune(67903), To: rune(67903)}, + &CodePointRange{From: rune(68176), To: rune(68184)}, + &CodePointRange{From: rune(68223), To: rune(68223)}, + &CodePointRange{From: rune(68336), To: rune(68342)}, + &CodePointRange{From: rune(68409), To: rune(68415)}, + &CodePointRange{From: rune(68505), To: rune(68508)}, + &CodePointRange{From: rune(69461), To: rune(69465)}, + &CodePointRange{From: rune(69703), To: rune(69709)}, + &CodePointRange{From: rune(69819), To: rune(69820)}, + &CodePointRange{From: rune(69822), To: rune(69825)}, + &CodePointRange{From: rune(69952), To: rune(69955)}, + &CodePointRange{From: rune(70004), To: rune(70005)}, + &CodePointRange{From: rune(70085), To: rune(70088)}, + &CodePointRange{From: rune(70093), To: rune(70093)}, + &CodePointRange{From: rune(70107), To: rune(70107)}, + &CodePointRange{From: rune(70109), To: rune(70111)}, + &CodePointRange{From: rune(70200), To: rune(70205)}, + &CodePointRange{From: rune(70313), To: rune(70313)}, + &CodePointRange{From: rune(70731), To: rune(70735)}, + &CodePointRange{From: rune(70746), To: rune(70747)}, + &CodePointRange{From: rune(70749), To: rune(70749)}, + &CodePointRange{From: rune(70854), To: rune(70854)}, + &CodePointRange{From: rune(71105), To: rune(71127)}, + &CodePointRange{From: rune(71233), To: rune(71235)}, + &CodePointRange{From: rune(71264), To: rune(71276)}, + &CodePointRange{From: rune(71484), To: rune(71486)}, + &CodePointRange{From: rune(71739), To: rune(71739)}, + &CodePointRange{From: rune(72004), To: rune(72006)}, + &CodePointRange{From: rune(72162), To: rune(72162)}, + &CodePointRange{From: rune(72255), To: rune(72262)}, + &CodePointRange{From: rune(72346), To: rune(72348)}, + &CodePointRange{From: rune(72350), To: rune(72354)}, + &CodePointRange{From: rune(72769), To: rune(72773)}, + &CodePointRange{From: rune(72816), To: rune(72817)}, + &CodePointRange{From: rune(73463), To: rune(73464)}, + &CodePointRange{From: rune(73727), To: rune(73727)}, + &CodePointRange{From: rune(74864), To: rune(74868)}, + &CodePointRange{From: rune(92782), To: rune(92783)}, + &CodePointRange{From: rune(92917), To: rune(92917)}, + &CodePointRange{From: rune(92983), To: rune(92987)}, + &CodePointRange{From: rune(92996), To: rune(92996)}, + &CodePointRange{From: rune(93847), To: rune(93850)}, + &CodePointRange{From: rune(94178), To: rune(94178)}, + &CodePointRange{From: rune(113823), To: rune(113823)}, + &CodePointRange{From: rune(121479), To: rune(121483)}, + &CodePointRange{From: rune(125278), To: rune(125279)}, + }, + "ps": { + &CodePointRange{From: rune(40), To: rune(40)}, + &CodePointRange{From: rune(91), To: rune(91)}, + &CodePointRange{From: rune(123), To: rune(123)}, + &CodePointRange{From: rune(3898), To: rune(3898)}, + &CodePointRange{From: rune(3900), To: rune(3900)}, + &CodePointRange{From: rune(5787), To: rune(5787)}, + &CodePointRange{From: rune(8218), To: rune(8218)}, + &CodePointRange{From: rune(8222), To: rune(8222)}, + &CodePointRange{From: rune(8261), To: rune(8261)}, + &CodePointRange{From: rune(8317), To: rune(8317)}, + &CodePointRange{From: rune(8333), To: rune(8333)}, + &CodePointRange{From: rune(8968), To: rune(8968)}, + &CodePointRange{From: rune(8970), To: rune(8970)}, + &CodePointRange{From: rune(9001), To: rune(9001)}, + &CodePointRange{From: rune(10088), To: rune(10088)}, + &CodePointRange{From: rune(10090), To: rune(10090)}, + &CodePointRange{From: rune(10092), To: rune(10092)}, + &CodePointRange{From: rune(10094), To: rune(10094)}, + &CodePointRange{From: rune(10096), To: rune(10096)}, + &CodePointRange{From: rune(10098), To: rune(10098)}, + &CodePointRange{From: rune(10100), To: rune(10100)}, + &CodePointRange{From: rune(10181), To: rune(10181)}, + &CodePointRange{From: rune(10214), To: rune(10214)}, + &CodePointRange{From: rune(10216), To: rune(10216)}, + &CodePointRange{From: rune(10218), To: rune(10218)}, + &CodePointRange{From: rune(10220), To: rune(10220)}, + &CodePointRange{From: rune(10222), To: rune(10222)}, + &CodePointRange{From: rune(10627), To: rune(10627)}, + &CodePointRange{From: rune(10629), To: rune(10629)}, + &CodePointRange{From: rune(10631), To: rune(10631)}, + &CodePointRange{From: rune(10633), To: rune(10633)}, + &CodePointRange{From: rune(10635), To: rune(10635)}, + &CodePointRange{From: rune(10637), To: rune(10637)}, + &CodePointRange{From: rune(10639), To: rune(10639)}, + &CodePointRange{From: rune(10641), To: rune(10641)}, + &CodePointRange{From: rune(10643), To: rune(10643)}, + &CodePointRange{From: rune(10645), To: rune(10645)}, + &CodePointRange{From: rune(10647), To: rune(10647)}, + &CodePointRange{From: rune(10712), To: rune(10712)}, + &CodePointRange{From: rune(10714), To: rune(10714)}, + &CodePointRange{From: rune(10748), To: rune(10748)}, + &CodePointRange{From: rune(11810), To: rune(11810)}, + &CodePointRange{From: rune(11812), To: rune(11812)}, + &CodePointRange{From: rune(11814), To: rune(11814)}, + &CodePointRange{From: rune(11816), To: rune(11816)}, + &CodePointRange{From: rune(11842), To: rune(11842)}, + &CodePointRange{From: rune(12296), To: rune(12296)}, + &CodePointRange{From: rune(12298), To: rune(12298)}, + &CodePointRange{From: rune(12300), To: rune(12300)}, + &CodePointRange{From: rune(12302), To: rune(12302)}, + &CodePointRange{From: rune(12304), To: rune(12304)}, + &CodePointRange{From: rune(12308), To: rune(12308)}, + &CodePointRange{From: rune(12310), To: rune(12310)}, + &CodePointRange{From: rune(12312), To: rune(12312)}, + &CodePointRange{From: rune(12314), To: rune(12314)}, + &CodePointRange{From: rune(12317), To: rune(12317)}, + &CodePointRange{From: rune(64831), To: rune(64831)}, + &CodePointRange{From: rune(65047), To: rune(65047)}, + &CodePointRange{From: rune(65077), To: rune(65077)}, + &CodePointRange{From: rune(65079), To: rune(65079)}, + &CodePointRange{From: rune(65081), To: rune(65081)}, + &CodePointRange{From: rune(65083), To: rune(65083)}, + &CodePointRange{From: rune(65085), To: rune(65085)}, + &CodePointRange{From: rune(65087), To: rune(65087)}, + &CodePointRange{From: rune(65089), To: rune(65089)}, + &CodePointRange{From: rune(65091), To: rune(65091)}, + &CodePointRange{From: rune(65095), To: rune(65095)}, + &CodePointRange{From: rune(65113), To: rune(65113)}, + &CodePointRange{From: rune(65115), To: rune(65115)}, + &CodePointRange{From: rune(65117), To: rune(65117)}, + &CodePointRange{From: rune(65288), To: rune(65288)}, + &CodePointRange{From: rune(65339), To: rune(65339)}, + &CodePointRange{From: rune(65371), To: rune(65371)}, + &CodePointRange{From: rune(65375), To: rune(65375)}, + &CodePointRange{From: rune(65378), To: rune(65378)}, + }, + "sc": { + &CodePointRange{From: rune(36), To: rune(36)}, + &CodePointRange{From: rune(162), To: rune(165)}, + &CodePointRange{From: rune(1423), To: rune(1423)}, + &CodePointRange{From: rune(1547), To: rune(1547)}, + &CodePointRange{From: rune(2046), To: rune(2047)}, + &CodePointRange{From: rune(2546), To: rune(2547)}, + &CodePointRange{From: rune(2555), To: rune(2555)}, + &CodePointRange{From: rune(2801), To: rune(2801)}, + &CodePointRange{From: rune(3065), To: rune(3065)}, + &CodePointRange{From: rune(3647), To: rune(3647)}, + &CodePointRange{From: rune(6107), To: rune(6107)}, + &CodePointRange{From: rune(8352), To: rune(8383)}, + &CodePointRange{From: rune(43064), To: rune(43064)}, + &CodePointRange{From: rune(65020), To: rune(65020)}, + &CodePointRange{From: rune(65129), To: rune(65129)}, + &CodePointRange{From: rune(65284), To: rune(65284)}, + &CodePointRange{From: rune(65504), To: rune(65505)}, + &CodePointRange{From: rune(65509), To: rune(65510)}, + &CodePointRange{From: rune(73693), To: rune(73696)}, + &CodePointRange{From: rune(123647), To: rune(123647)}, + &CodePointRange{From: rune(126128), To: rune(126128)}, + }, + "sk": { + &CodePointRange{From: rune(94), To: rune(94)}, + &CodePointRange{From: rune(96), To: rune(96)}, + &CodePointRange{From: rune(168), To: rune(168)}, + &CodePointRange{From: rune(175), To: rune(175)}, + &CodePointRange{From: rune(180), To: rune(180)}, + &CodePointRange{From: rune(184), To: rune(184)}, + &CodePointRange{From: rune(706), To: rune(709)}, + &CodePointRange{From: rune(722), To: rune(735)}, + &CodePointRange{From: rune(741), To: rune(747)}, + &CodePointRange{From: rune(749), To: rune(749)}, + &CodePointRange{From: rune(751), To: rune(767)}, + &CodePointRange{From: rune(885), To: rune(885)}, + &CodePointRange{From: rune(900), To: rune(901)}, + &CodePointRange{From: rune(8125), To: rune(8125)}, + &CodePointRange{From: rune(8127), To: rune(8129)}, + &CodePointRange{From: rune(8141), To: rune(8143)}, + &CodePointRange{From: rune(8157), To: rune(8159)}, + &CodePointRange{From: rune(8173), To: rune(8175)}, + &CodePointRange{From: rune(8189), To: rune(8190)}, + &CodePointRange{From: rune(12443), To: rune(12444)}, + &CodePointRange{From: rune(42752), To: rune(42774)}, + &CodePointRange{From: rune(42784), To: rune(42785)}, + &CodePointRange{From: rune(42889), To: rune(42890)}, + &CodePointRange{From: rune(43867), To: rune(43867)}, + &CodePointRange{From: rune(43882), To: rune(43883)}, + &CodePointRange{From: rune(64434), To: rune(64449)}, + &CodePointRange{From: rune(65342), To: rune(65342)}, + &CodePointRange{From: rune(65344), To: rune(65344)}, + &CodePointRange{From: rune(65507), To: rune(65507)}, + &CodePointRange{From: rune(127995), To: rune(127999)}, + }, + "sm": { + &CodePointRange{From: rune(43), To: rune(43)}, + &CodePointRange{From: rune(60), To: rune(62)}, + &CodePointRange{From: rune(124), To: rune(124)}, + &CodePointRange{From: rune(126), To: rune(126)}, + &CodePointRange{From: rune(172), To: rune(172)}, + &CodePointRange{From: rune(177), To: rune(177)}, + &CodePointRange{From: rune(215), To: rune(215)}, + &CodePointRange{From: rune(247), To: rune(247)}, + &CodePointRange{From: rune(1014), To: rune(1014)}, + &CodePointRange{From: rune(1542), To: rune(1544)}, + &CodePointRange{From: rune(8260), To: rune(8260)}, + &CodePointRange{From: rune(8274), To: rune(8274)}, + &CodePointRange{From: rune(8314), To: rune(8316)}, + &CodePointRange{From: rune(8330), To: rune(8332)}, + &CodePointRange{From: rune(8472), To: rune(8472)}, + &CodePointRange{From: rune(8512), To: rune(8516)}, + &CodePointRange{From: rune(8523), To: rune(8523)}, + &CodePointRange{From: rune(8592), To: rune(8596)}, + &CodePointRange{From: rune(8602), To: rune(8603)}, + &CodePointRange{From: rune(8608), To: rune(8608)}, + &CodePointRange{From: rune(8611), To: rune(8611)}, + &CodePointRange{From: rune(8614), To: rune(8614)}, + &CodePointRange{From: rune(8622), To: rune(8622)}, + &CodePointRange{From: rune(8654), To: rune(8655)}, + &CodePointRange{From: rune(8658), To: rune(8658)}, + &CodePointRange{From: rune(8660), To: rune(8660)}, + &CodePointRange{From: rune(8692), To: rune(8959)}, + &CodePointRange{From: rune(8992), To: rune(8993)}, + &CodePointRange{From: rune(9084), To: rune(9084)}, + &CodePointRange{From: rune(9115), To: rune(9139)}, + &CodePointRange{From: rune(9180), To: rune(9185)}, + &CodePointRange{From: rune(9655), To: rune(9655)}, + &CodePointRange{From: rune(9665), To: rune(9665)}, + &CodePointRange{From: rune(9720), To: rune(9727)}, + &CodePointRange{From: rune(9839), To: rune(9839)}, + &CodePointRange{From: rune(10176), To: rune(10180)}, + &CodePointRange{From: rune(10183), To: rune(10213)}, + &CodePointRange{From: rune(10224), To: rune(10239)}, + &CodePointRange{From: rune(10496), To: rune(10626)}, + &CodePointRange{From: rune(10649), To: rune(10711)}, + &CodePointRange{From: rune(10716), To: rune(10747)}, + &CodePointRange{From: rune(10750), To: rune(11007)}, + &CodePointRange{From: rune(11056), To: rune(11076)}, + &CodePointRange{From: rune(11079), To: rune(11084)}, + &CodePointRange{From: rune(64297), To: rune(64297)}, + &CodePointRange{From: rune(65122), To: rune(65122)}, + &CodePointRange{From: rune(65124), To: rune(65126)}, + &CodePointRange{From: rune(65291), To: rune(65291)}, + &CodePointRange{From: rune(65308), To: rune(65310)}, + &CodePointRange{From: rune(65372), To: rune(65372)}, + &CodePointRange{From: rune(65374), To: rune(65374)}, + &CodePointRange{From: rune(65506), To: rune(65506)}, + &CodePointRange{From: rune(65513), To: rune(65516)}, + &CodePointRange{From: rune(120513), To: rune(120513)}, + &CodePointRange{From: rune(120539), To: rune(120539)}, + &CodePointRange{From: rune(120571), To: rune(120571)}, + &CodePointRange{From: rune(120597), To: rune(120597)}, + &CodePointRange{From: rune(120629), To: rune(120629)}, + &CodePointRange{From: rune(120655), To: rune(120655)}, + &CodePointRange{From: rune(120687), To: rune(120687)}, + &CodePointRange{From: rune(120713), To: rune(120713)}, + &CodePointRange{From: rune(120745), To: rune(120745)}, + &CodePointRange{From: rune(120771), To: rune(120771)}, + &CodePointRange{From: rune(126704), To: rune(126705)}, + }, + "so": { + &CodePointRange{From: rune(166), To: rune(166)}, + &CodePointRange{From: rune(169), To: rune(169)}, + &CodePointRange{From: rune(174), To: rune(174)}, + &CodePointRange{From: rune(176), To: rune(176)}, + &CodePointRange{From: rune(1154), To: rune(1154)}, + &CodePointRange{From: rune(1421), To: rune(1422)}, + &CodePointRange{From: rune(1550), To: rune(1551)}, + &CodePointRange{From: rune(1758), To: rune(1758)}, + &CodePointRange{From: rune(1769), To: rune(1769)}, + &CodePointRange{From: rune(1789), To: rune(1790)}, + &CodePointRange{From: rune(2038), To: rune(2038)}, + &CodePointRange{From: rune(2554), To: rune(2554)}, + &CodePointRange{From: rune(2928), To: rune(2928)}, + &CodePointRange{From: rune(3059), To: rune(3064)}, + &CodePointRange{From: rune(3066), To: rune(3066)}, + &CodePointRange{From: rune(3199), To: rune(3199)}, + &CodePointRange{From: rune(3407), To: rune(3407)}, + &CodePointRange{From: rune(3449), To: rune(3449)}, + &CodePointRange{From: rune(3841), To: rune(3843)}, + &CodePointRange{From: rune(3859), To: rune(3859)}, + &CodePointRange{From: rune(3861), To: rune(3863)}, + &CodePointRange{From: rune(3866), To: rune(3871)}, + &CodePointRange{From: rune(3892), To: rune(3892)}, + &CodePointRange{From: rune(3894), To: rune(3894)}, + &CodePointRange{From: rune(3896), To: rune(3896)}, + &CodePointRange{From: rune(4030), To: rune(4037)}, + &CodePointRange{From: rune(4039), To: rune(4044)}, + &CodePointRange{From: rune(4046), To: rune(4047)}, + &CodePointRange{From: rune(4053), To: rune(4056)}, + &CodePointRange{From: rune(4254), To: rune(4255)}, + &CodePointRange{From: rune(5008), To: rune(5017)}, + &CodePointRange{From: rune(5741), To: rune(5741)}, + &CodePointRange{From: rune(6464), To: rune(6464)}, + &CodePointRange{From: rune(6622), To: rune(6655)}, + &CodePointRange{From: rune(7009), To: rune(7018)}, + &CodePointRange{From: rune(7028), To: rune(7036)}, + &CodePointRange{From: rune(8448), To: rune(8449)}, + &CodePointRange{From: rune(8451), To: rune(8454)}, + &CodePointRange{From: rune(8456), To: rune(8457)}, + &CodePointRange{From: rune(8468), To: rune(8468)}, + &CodePointRange{From: rune(8470), To: rune(8471)}, + &CodePointRange{From: rune(8478), To: rune(8483)}, + &CodePointRange{From: rune(8485), To: rune(8485)}, + &CodePointRange{From: rune(8487), To: rune(8487)}, + &CodePointRange{From: rune(8489), To: rune(8489)}, + &CodePointRange{From: rune(8494), To: rune(8494)}, + &CodePointRange{From: rune(8506), To: rune(8507)}, + &CodePointRange{From: rune(8522), To: rune(8522)}, + &CodePointRange{From: rune(8524), To: rune(8525)}, + &CodePointRange{From: rune(8527), To: rune(8527)}, + &CodePointRange{From: rune(8586), To: rune(8587)}, + &CodePointRange{From: rune(8597), To: rune(8601)}, + &CodePointRange{From: rune(8604), To: rune(8607)}, + &CodePointRange{From: rune(8609), To: rune(8610)}, + &CodePointRange{From: rune(8612), To: rune(8613)}, + &CodePointRange{From: rune(8615), To: rune(8621)}, + &CodePointRange{From: rune(8623), To: rune(8653)}, + &CodePointRange{From: rune(8656), To: rune(8657)}, + &CodePointRange{From: rune(8659), To: rune(8659)}, + &CodePointRange{From: rune(8661), To: rune(8691)}, + &CodePointRange{From: rune(8960), To: rune(8967)}, + &CodePointRange{From: rune(8972), To: rune(8991)}, + &CodePointRange{From: rune(8994), To: rune(9000)}, + &CodePointRange{From: rune(9003), To: rune(9083)}, + &CodePointRange{From: rune(9085), To: rune(9114)}, + &CodePointRange{From: rune(9140), To: rune(9179)}, + &CodePointRange{From: rune(9186), To: rune(9254)}, + &CodePointRange{From: rune(9280), To: rune(9290)}, + &CodePointRange{From: rune(9372), To: rune(9449)}, + &CodePointRange{From: rune(9472), To: rune(9654)}, + &CodePointRange{From: rune(9656), To: rune(9664)}, + &CodePointRange{From: rune(9666), To: rune(9719)}, + &CodePointRange{From: rune(9728), To: rune(9838)}, + &CodePointRange{From: rune(9840), To: rune(10087)}, + &CodePointRange{From: rune(10132), To: rune(10175)}, + &CodePointRange{From: rune(10240), To: rune(10495)}, + &CodePointRange{From: rune(11008), To: rune(11055)}, + &CodePointRange{From: rune(11077), To: rune(11078)}, + &CodePointRange{From: rune(11085), To: rune(11123)}, + &CodePointRange{From: rune(11126), To: rune(11157)}, + &CodePointRange{From: rune(11159), To: rune(11263)}, + &CodePointRange{From: rune(11493), To: rune(11498)}, + &CodePointRange{From: rune(11856), To: rune(11857)}, + &CodePointRange{From: rune(11904), To: rune(11929)}, + &CodePointRange{From: rune(11931), To: rune(12019)}, + &CodePointRange{From: rune(12032), To: rune(12245)}, + &CodePointRange{From: rune(12272), To: rune(12283)}, + &CodePointRange{From: rune(12292), To: rune(12292)}, + &CodePointRange{From: rune(12306), To: rune(12307)}, + &CodePointRange{From: rune(12320), To: rune(12320)}, + &CodePointRange{From: rune(12342), To: rune(12343)}, + &CodePointRange{From: rune(12350), To: rune(12351)}, + &CodePointRange{From: rune(12688), To: rune(12689)}, + &CodePointRange{From: rune(12694), To: rune(12703)}, + &CodePointRange{From: rune(12736), To: rune(12771)}, + &CodePointRange{From: rune(12800), To: rune(12830)}, + &CodePointRange{From: rune(12842), To: rune(12871)}, + &CodePointRange{From: rune(12880), To: rune(12880)}, + &CodePointRange{From: rune(12896), To: rune(12927)}, + &CodePointRange{From: rune(12938), To: rune(12976)}, + &CodePointRange{From: rune(12992), To: rune(13311)}, + &CodePointRange{From: rune(19904), To: rune(19967)}, + &CodePointRange{From: rune(42128), To: rune(42182)}, + &CodePointRange{From: rune(43048), To: rune(43051)}, + &CodePointRange{From: rune(43062), To: rune(43063)}, + &CodePointRange{From: rune(43065), To: rune(43065)}, + &CodePointRange{From: rune(43639), To: rune(43641)}, + &CodePointRange{From: rune(65021), To: rune(65021)}, + &CodePointRange{From: rune(65508), To: rune(65508)}, + &CodePointRange{From: rune(65512), To: rune(65512)}, + &CodePointRange{From: rune(65517), To: rune(65518)}, + &CodePointRange{From: rune(65532), To: rune(65533)}, + &CodePointRange{From: rune(65847), To: rune(65855)}, + &CodePointRange{From: rune(65913), To: rune(65929)}, + &CodePointRange{From: rune(65932), To: rune(65934)}, + &CodePointRange{From: rune(65936), To: rune(65948)}, + &CodePointRange{From: rune(65952), To: rune(65952)}, + &CodePointRange{From: rune(66000), To: rune(66044)}, + &CodePointRange{From: rune(67703), To: rune(67704)}, + &CodePointRange{From: rune(68296), To: rune(68296)}, + &CodePointRange{From: rune(71487), To: rune(71487)}, + &CodePointRange{From: rune(73685), To: rune(73692)}, + &CodePointRange{From: rune(73697), To: rune(73713)}, + &CodePointRange{From: rune(92988), To: rune(92991)}, + &CodePointRange{From: rune(92997), To: rune(92997)}, + &CodePointRange{From: rune(113820), To: rune(113820)}, + &CodePointRange{From: rune(118784), To: rune(119029)}, + &CodePointRange{From: rune(119040), To: rune(119078)}, + &CodePointRange{From: rune(119081), To: rune(119140)}, + &CodePointRange{From: rune(119146), To: rune(119148)}, + &CodePointRange{From: rune(119171), To: rune(119172)}, + &CodePointRange{From: rune(119180), To: rune(119209)}, + &CodePointRange{From: rune(119214), To: rune(119272)}, + &CodePointRange{From: rune(119296), To: rune(119361)}, + &CodePointRange{From: rune(119365), To: rune(119365)}, + &CodePointRange{From: rune(119552), To: rune(119638)}, + &CodePointRange{From: rune(120832), To: rune(121343)}, + &CodePointRange{From: rune(121399), To: rune(121402)}, + &CodePointRange{From: rune(121453), To: rune(121460)}, + &CodePointRange{From: rune(121462), To: rune(121475)}, + &CodePointRange{From: rune(121477), To: rune(121478)}, + &CodePointRange{From: rune(123215), To: rune(123215)}, + &CodePointRange{From: rune(126124), To: rune(126124)}, + &CodePointRange{From: rune(126254), To: rune(126254)}, + &CodePointRange{From: rune(126976), To: rune(127019)}, + &CodePointRange{From: rune(127024), To: rune(127123)}, + &CodePointRange{From: rune(127136), To: rune(127150)}, + &CodePointRange{From: rune(127153), To: rune(127167)}, + &CodePointRange{From: rune(127169), To: rune(127183)}, + &CodePointRange{From: rune(127185), To: rune(127221)}, + &CodePointRange{From: rune(127245), To: rune(127405)}, + &CodePointRange{From: rune(127462), To: rune(127490)}, + &CodePointRange{From: rune(127504), To: rune(127547)}, + &CodePointRange{From: rune(127552), To: rune(127560)}, + &CodePointRange{From: rune(127568), To: rune(127569)}, + &CodePointRange{From: rune(127584), To: rune(127589)}, + &CodePointRange{From: rune(127744), To: rune(127994)}, + &CodePointRange{From: rune(128000), To: rune(128727)}, + &CodePointRange{From: rune(128736), To: rune(128748)}, + &CodePointRange{From: rune(128752), To: rune(128764)}, + &CodePointRange{From: rune(128768), To: rune(128883)}, + &CodePointRange{From: rune(128896), To: rune(128984)}, + &CodePointRange{From: rune(128992), To: rune(129003)}, + &CodePointRange{From: rune(129024), To: rune(129035)}, + &CodePointRange{From: rune(129040), To: rune(129095)}, + &CodePointRange{From: rune(129104), To: rune(129113)}, + &CodePointRange{From: rune(129120), To: rune(129159)}, + &CodePointRange{From: rune(129168), To: rune(129197)}, + &CodePointRange{From: rune(129200), To: rune(129201)}, + &CodePointRange{From: rune(129280), To: rune(129400)}, + &CodePointRange{From: rune(129402), To: rune(129483)}, + &CodePointRange{From: rune(129485), To: rune(129619)}, + &CodePointRange{From: rune(129632), To: rune(129645)}, + &CodePointRange{From: rune(129648), To: rune(129652)}, + &CodePointRange{From: rune(129656), To: rune(129658)}, + &CodePointRange{From: rune(129664), To: rune(129670)}, + &CodePointRange{From: rune(129680), To: rune(129704)}, + &CodePointRange{From: rune(129712), To: rune(129718)}, + &CodePointRange{From: rune(129728), To: rune(129730)}, + &CodePointRange{From: rune(129744), To: rune(129750)}, + &CodePointRange{From: rune(129792), To: rune(129938)}, + &CodePointRange{From: rune(129940), To: rune(129994)}, + }, + "zl": { + &CodePointRange{From: rune(8232), To: rune(8232)}, + }, + "zp": { + &CodePointRange{From: rune(8233), To: rune(8233)}, + }, + "zs": { + &CodePointRange{From: rune(32), To: rune(32)}, + &CodePointRange{From: rune(160), To: rune(160)}, + &CodePointRange{From: rune(5760), To: rune(5760)}, + &CodePointRange{From: rune(8192), To: rune(8202)}, + &CodePointRange{From: rune(8239), To: rune(8239)}, + &CodePointRange{From: rune(8287), To: rune(8287)}, + &CodePointRange{From: rune(12288), To: rune(12288)}, + }, +} + +// https://www.unicode.org/Public/13.0.0/ucd/Scripts.txt +var ( + scriptDefaultRange = &CodePointRange{ + From: rune(0), + To: rune(1114111), + } + scriptDefaultValue = "unknown" +) + +// https://www.unicode.org/Public/13.0.0/ucd/Scripts.txt +var scriptCodepoints = map[string][]*CodePointRange{ + "adlm": { + &CodePointRange{From: rune(125184), To: rune(125251)}, + &CodePointRange{From: rune(125252), To: rune(125258)}, + &CodePointRange{From: rune(125259), To: rune(125259)}, + &CodePointRange{From: rune(125264), To: rune(125273)}, + &CodePointRange{From: rune(125278), To: rune(125279)}, + }, + "aghb": { + &CodePointRange{From: rune(66864), To: rune(66915)}, + &CodePointRange{From: rune(66927), To: rune(66927)}, + }, + "ahom": { + &CodePointRange{From: rune(71424), To: rune(71450)}, + &CodePointRange{From: rune(71453), To: rune(71455)}, + &CodePointRange{From: rune(71456), To: rune(71457)}, + &CodePointRange{From: rune(71458), To: rune(71461)}, + &CodePointRange{From: rune(71462), To: rune(71462)}, + &CodePointRange{From: rune(71463), To: rune(71467)}, + &CodePointRange{From: rune(71472), To: rune(71481)}, + &CodePointRange{From: rune(71482), To: rune(71483)}, + &CodePointRange{From: rune(71484), To: rune(71486)}, + &CodePointRange{From: rune(71487), To: rune(71487)}, + }, + "arab": { + &CodePointRange{From: rune(1536), To: rune(1540)}, + &CodePointRange{From: rune(1542), To: rune(1544)}, + &CodePointRange{From: rune(1545), To: rune(1546)}, + &CodePointRange{From: rune(1547), To: rune(1547)}, + &CodePointRange{From: rune(1549), To: rune(1549)}, + &CodePointRange{From: rune(1550), To: rune(1551)}, + &CodePointRange{From: rune(1552), To: rune(1562)}, + &CodePointRange{From: rune(1564), To: rune(1564)}, + &CodePointRange{From: rune(1566), To: rune(1566)}, + &CodePointRange{From: rune(1568), To: rune(1599)}, + &CodePointRange{From: rune(1601), To: rune(1610)}, + &CodePointRange{From: rune(1622), To: rune(1631)}, + &CodePointRange{From: rune(1632), To: rune(1641)}, + &CodePointRange{From: rune(1642), To: rune(1645)}, + &CodePointRange{From: rune(1646), To: rune(1647)}, + &CodePointRange{From: rune(1649), To: rune(1747)}, + &CodePointRange{From: rune(1748), To: rune(1748)}, + &CodePointRange{From: rune(1749), To: rune(1749)}, + &CodePointRange{From: rune(1750), To: rune(1756)}, + &CodePointRange{From: rune(1758), To: rune(1758)}, + &CodePointRange{From: rune(1759), To: rune(1764)}, + &CodePointRange{From: rune(1765), To: rune(1766)}, + &CodePointRange{From: rune(1767), To: rune(1768)}, + &CodePointRange{From: rune(1769), To: rune(1769)}, + &CodePointRange{From: rune(1770), To: rune(1773)}, + &CodePointRange{From: rune(1774), To: rune(1775)}, + &CodePointRange{From: rune(1776), To: rune(1785)}, + &CodePointRange{From: rune(1786), To: rune(1788)}, + &CodePointRange{From: rune(1789), To: rune(1790)}, + &CodePointRange{From: rune(1791), To: rune(1791)}, + &CodePointRange{From: rune(1872), To: rune(1919)}, + &CodePointRange{From: rune(2208), To: rune(2228)}, + &CodePointRange{From: rune(2230), To: rune(2247)}, + &CodePointRange{From: rune(2259), To: rune(2273)}, + &CodePointRange{From: rune(2275), To: rune(2303)}, + &CodePointRange{From: rune(64336), To: rune(64433)}, + &CodePointRange{From: rune(64434), To: rune(64449)}, + &CodePointRange{From: rune(64467), To: rune(64829)}, + &CodePointRange{From: rune(64848), To: rune(64911)}, + &CodePointRange{From: rune(64914), To: rune(64967)}, + &CodePointRange{From: rune(65008), To: rune(65019)}, + &CodePointRange{From: rune(65020), To: rune(65020)}, + &CodePointRange{From: rune(65021), To: rune(65021)}, + &CodePointRange{From: rune(65136), To: rune(65140)}, + &CodePointRange{From: rune(65142), To: rune(65276)}, + &CodePointRange{From: rune(69216), To: rune(69246)}, + &CodePointRange{From: rune(126464), To: rune(126467)}, + &CodePointRange{From: rune(126469), To: rune(126495)}, + &CodePointRange{From: rune(126497), To: rune(126498)}, + &CodePointRange{From: rune(126500), To: rune(126500)}, + &CodePointRange{From: rune(126503), To: rune(126503)}, + &CodePointRange{From: rune(126505), To: rune(126514)}, + &CodePointRange{From: rune(126516), To: rune(126519)}, + &CodePointRange{From: rune(126521), To: rune(126521)}, + &CodePointRange{From: rune(126523), To: rune(126523)}, + &CodePointRange{From: rune(126530), To: rune(126530)}, + &CodePointRange{From: rune(126535), To: rune(126535)}, + &CodePointRange{From: rune(126537), To: rune(126537)}, + &CodePointRange{From: rune(126539), To: rune(126539)}, + &CodePointRange{From: rune(126541), To: rune(126543)}, + &CodePointRange{From: rune(126545), To: rune(126546)}, + &CodePointRange{From: rune(126548), To: rune(126548)}, + &CodePointRange{From: rune(126551), To: rune(126551)}, + &CodePointRange{From: rune(126553), To: rune(126553)}, + &CodePointRange{From: rune(126555), To: rune(126555)}, + &CodePointRange{From: rune(126557), To: rune(126557)}, + &CodePointRange{From: rune(126559), To: rune(126559)}, + &CodePointRange{From: rune(126561), To: rune(126562)}, + &CodePointRange{From: rune(126564), To: rune(126564)}, + &CodePointRange{From: rune(126567), To: rune(126570)}, + &CodePointRange{From: rune(126572), To: rune(126578)}, + &CodePointRange{From: rune(126580), To: rune(126583)}, + &CodePointRange{From: rune(126585), To: rune(126588)}, + &CodePointRange{From: rune(126590), To: rune(126590)}, + &CodePointRange{From: rune(126592), To: rune(126601)}, + &CodePointRange{From: rune(126603), To: rune(126619)}, + &CodePointRange{From: rune(126625), To: rune(126627)}, + &CodePointRange{From: rune(126629), To: rune(126633)}, + &CodePointRange{From: rune(126635), To: rune(126651)}, + &CodePointRange{From: rune(126704), To: rune(126705)}, + }, + "armi": { + &CodePointRange{From: rune(67648), To: rune(67669)}, + &CodePointRange{From: rune(67671), To: rune(67671)}, + &CodePointRange{From: rune(67672), To: rune(67679)}, + }, + "armn": { + &CodePointRange{From: rune(1329), To: rune(1366)}, + &CodePointRange{From: rune(1369), To: rune(1369)}, + &CodePointRange{From: rune(1370), To: rune(1375)}, + &CodePointRange{From: rune(1376), To: rune(1416)}, + &CodePointRange{From: rune(1417), To: rune(1417)}, + &CodePointRange{From: rune(1418), To: rune(1418)}, + &CodePointRange{From: rune(1421), To: rune(1422)}, + &CodePointRange{From: rune(1423), To: rune(1423)}, + &CodePointRange{From: rune(64275), To: rune(64279)}, + }, + "avst": { + &CodePointRange{From: rune(68352), To: rune(68405)}, + &CodePointRange{From: rune(68409), To: rune(68415)}, + }, + "bali": { + &CodePointRange{From: rune(6912), To: rune(6915)}, + &CodePointRange{From: rune(6916), To: rune(6916)}, + &CodePointRange{From: rune(6917), To: rune(6963)}, + &CodePointRange{From: rune(6964), To: rune(6964)}, + &CodePointRange{From: rune(6965), To: rune(6965)}, + &CodePointRange{From: rune(6966), To: rune(6970)}, + &CodePointRange{From: rune(6971), To: rune(6971)}, + &CodePointRange{From: rune(6972), To: rune(6972)}, + &CodePointRange{From: rune(6973), To: rune(6977)}, + &CodePointRange{From: rune(6978), To: rune(6978)}, + &CodePointRange{From: rune(6979), To: rune(6980)}, + &CodePointRange{From: rune(6981), To: rune(6987)}, + &CodePointRange{From: rune(6992), To: rune(7001)}, + &CodePointRange{From: rune(7002), To: rune(7008)}, + &CodePointRange{From: rune(7009), To: rune(7018)}, + &CodePointRange{From: rune(7019), To: rune(7027)}, + &CodePointRange{From: rune(7028), To: rune(7036)}, + }, + "bamu": { + &CodePointRange{From: rune(42656), To: rune(42725)}, + &CodePointRange{From: rune(42726), To: rune(42735)}, + &CodePointRange{From: rune(42736), To: rune(42737)}, + &CodePointRange{From: rune(42738), To: rune(42743)}, + &CodePointRange{From: rune(92160), To: rune(92728)}, + }, + "bass": { + &CodePointRange{From: rune(92880), To: rune(92909)}, + &CodePointRange{From: rune(92912), To: rune(92916)}, + &CodePointRange{From: rune(92917), To: rune(92917)}, + }, + "batk": { + &CodePointRange{From: rune(7104), To: rune(7141)}, + &CodePointRange{From: rune(7142), To: rune(7142)}, + &CodePointRange{From: rune(7143), To: rune(7143)}, + &CodePointRange{From: rune(7144), To: rune(7145)}, + &CodePointRange{From: rune(7146), To: rune(7148)}, + &CodePointRange{From: rune(7149), To: rune(7149)}, + &CodePointRange{From: rune(7150), To: rune(7150)}, + &CodePointRange{From: rune(7151), To: rune(7153)}, + &CodePointRange{From: rune(7154), To: rune(7155)}, + &CodePointRange{From: rune(7164), To: rune(7167)}, + }, + "beng": { + &CodePointRange{From: rune(2432), To: rune(2432)}, + &CodePointRange{From: rune(2433), To: rune(2433)}, + &CodePointRange{From: rune(2434), To: rune(2435)}, + &CodePointRange{From: rune(2437), To: rune(2444)}, + &CodePointRange{From: rune(2447), To: rune(2448)}, + &CodePointRange{From: rune(2451), To: rune(2472)}, + &CodePointRange{From: rune(2474), To: rune(2480)}, + &CodePointRange{From: rune(2482), To: rune(2482)}, + &CodePointRange{From: rune(2486), To: rune(2489)}, + &CodePointRange{From: rune(2492), To: rune(2492)}, + &CodePointRange{From: rune(2493), To: rune(2493)}, + &CodePointRange{From: rune(2494), To: rune(2496)}, + &CodePointRange{From: rune(2497), To: rune(2500)}, + &CodePointRange{From: rune(2503), To: rune(2504)}, + &CodePointRange{From: rune(2507), To: rune(2508)}, + &CodePointRange{From: rune(2509), To: rune(2509)}, + &CodePointRange{From: rune(2510), To: rune(2510)}, + &CodePointRange{From: rune(2519), To: rune(2519)}, + &CodePointRange{From: rune(2524), To: rune(2525)}, + &CodePointRange{From: rune(2527), To: rune(2529)}, + &CodePointRange{From: rune(2530), To: rune(2531)}, + &CodePointRange{From: rune(2534), To: rune(2543)}, + &CodePointRange{From: rune(2544), To: rune(2545)}, + &CodePointRange{From: rune(2546), To: rune(2547)}, + &CodePointRange{From: rune(2548), To: rune(2553)}, + &CodePointRange{From: rune(2554), To: rune(2554)}, + &CodePointRange{From: rune(2555), To: rune(2555)}, + &CodePointRange{From: rune(2556), To: rune(2556)}, + &CodePointRange{From: rune(2557), To: rune(2557)}, + &CodePointRange{From: rune(2558), To: rune(2558)}, + }, + "bhks": { + &CodePointRange{From: rune(72704), To: rune(72712)}, + &CodePointRange{From: rune(72714), To: rune(72750)}, + &CodePointRange{From: rune(72751), To: rune(72751)}, + &CodePointRange{From: rune(72752), To: rune(72758)}, + &CodePointRange{From: rune(72760), To: rune(72765)}, + &CodePointRange{From: rune(72766), To: rune(72766)}, + &CodePointRange{From: rune(72767), To: rune(72767)}, + &CodePointRange{From: rune(72768), To: rune(72768)}, + &CodePointRange{From: rune(72769), To: rune(72773)}, + &CodePointRange{From: rune(72784), To: rune(72793)}, + &CodePointRange{From: rune(72794), To: rune(72812)}, + }, + "bopo": { + &CodePointRange{From: rune(746), To: rune(747)}, + &CodePointRange{From: rune(12549), To: rune(12591)}, + &CodePointRange{From: rune(12704), To: rune(12735)}, + }, + "brah": { + &CodePointRange{From: rune(69632), To: rune(69632)}, + &CodePointRange{From: rune(69633), To: rune(69633)}, + &CodePointRange{From: rune(69634), To: rune(69634)}, + &CodePointRange{From: rune(69635), To: rune(69687)}, + &CodePointRange{From: rune(69688), To: rune(69702)}, + &CodePointRange{From: rune(69703), To: rune(69709)}, + &CodePointRange{From: rune(69714), To: rune(69733)}, + &CodePointRange{From: rune(69734), To: rune(69743)}, + &CodePointRange{From: rune(69759), To: rune(69759)}, + }, + "brai": { + &CodePointRange{From: rune(10240), To: rune(10495)}, + }, + "bugi": { + &CodePointRange{From: rune(6656), To: rune(6678)}, + &CodePointRange{From: rune(6679), To: rune(6680)}, + &CodePointRange{From: rune(6681), To: rune(6682)}, + &CodePointRange{From: rune(6683), To: rune(6683)}, + &CodePointRange{From: rune(6686), To: rune(6687)}, + }, + "buhd": { + &CodePointRange{From: rune(5952), To: rune(5969)}, + &CodePointRange{From: rune(5970), To: rune(5971)}, + }, + "cakm": { + &CodePointRange{From: rune(69888), To: rune(69890)}, + &CodePointRange{From: rune(69891), To: rune(69926)}, + &CodePointRange{From: rune(69927), To: rune(69931)}, + &CodePointRange{From: rune(69932), To: rune(69932)}, + &CodePointRange{From: rune(69933), To: rune(69940)}, + &CodePointRange{From: rune(69942), To: rune(69951)}, + &CodePointRange{From: rune(69952), To: rune(69955)}, + &CodePointRange{From: rune(69956), To: rune(69956)}, + &CodePointRange{From: rune(69957), To: rune(69958)}, + &CodePointRange{From: rune(69959), To: rune(69959)}, + }, + "cans": { + &CodePointRange{From: rune(5120), To: rune(5120)}, + &CodePointRange{From: rune(5121), To: rune(5740)}, + &CodePointRange{From: rune(5741), To: rune(5741)}, + &CodePointRange{From: rune(5742), To: rune(5742)}, + &CodePointRange{From: rune(5743), To: rune(5759)}, + &CodePointRange{From: rune(6320), To: rune(6389)}, + }, + "cari": { + &CodePointRange{From: rune(66208), To: rune(66256)}, + }, + "cham": { + &CodePointRange{From: rune(43520), To: rune(43560)}, + &CodePointRange{From: rune(43561), To: rune(43566)}, + &CodePointRange{From: rune(43567), To: rune(43568)}, + &CodePointRange{From: rune(43569), To: rune(43570)}, + &CodePointRange{From: rune(43571), To: rune(43572)}, + &CodePointRange{From: rune(43573), To: rune(43574)}, + &CodePointRange{From: rune(43584), To: rune(43586)}, + &CodePointRange{From: rune(43587), To: rune(43587)}, + &CodePointRange{From: rune(43588), To: rune(43595)}, + &CodePointRange{From: rune(43596), To: rune(43596)}, + &CodePointRange{From: rune(43597), To: rune(43597)}, + &CodePointRange{From: rune(43600), To: rune(43609)}, + &CodePointRange{From: rune(43612), To: rune(43615)}, + }, + "cher": { + &CodePointRange{From: rune(5024), To: rune(5109)}, + &CodePointRange{From: rune(5112), To: rune(5117)}, + &CodePointRange{From: rune(43888), To: rune(43967)}, + }, + "chrs": { + &CodePointRange{From: rune(69552), To: rune(69572)}, + &CodePointRange{From: rune(69573), To: rune(69579)}, + }, + "copt": { + &CodePointRange{From: rune(994), To: rune(1007)}, + &CodePointRange{From: rune(11392), To: rune(11492)}, + &CodePointRange{From: rune(11493), To: rune(11498)}, + &CodePointRange{From: rune(11499), To: rune(11502)}, + &CodePointRange{From: rune(11503), To: rune(11505)}, + &CodePointRange{From: rune(11506), To: rune(11507)}, + &CodePointRange{From: rune(11513), To: rune(11516)}, + &CodePointRange{From: rune(11517), To: rune(11517)}, + &CodePointRange{From: rune(11518), To: rune(11519)}, + }, + "cprt": { + &CodePointRange{From: rune(67584), To: rune(67589)}, + &CodePointRange{From: rune(67592), To: rune(67592)}, + &CodePointRange{From: rune(67594), To: rune(67637)}, + &CodePointRange{From: rune(67639), To: rune(67640)}, + &CodePointRange{From: rune(67644), To: rune(67644)}, + &CodePointRange{From: rune(67647), To: rune(67647)}, + }, + "cyrl": { + &CodePointRange{From: rune(1024), To: rune(1153)}, + &CodePointRange{From: rune(1154), To: rune(1154)}, + &CodePointRange{From: rune(1155), To: rune(1156)}, + &CodePointRange{From: rune(1159), To: rune(1159)}, + &CodePointRange{From: rune(1160), To: rune(1161)}, + &CodePointRange{From: rune(1162), To: rune(1327)}, + &CodePointRange{From: rune(7296), To: rune(7304)}, + &CodePointRange{From: rune(7467), To: rune(7467)}, + &CodePointRange{From: rune(7544), To: rune(7544)}, + &CodePointRange{From: rune(11744), To: rune(11775)}, + &CodePointRange{From: rune(42560), To: rune(42605)}, + &CodePointRange{From: rune(42606), To: rune(42606)}, + &CodePointRange{From: rune(42607), To: rune(42607)}, + &CodePointRange{From: rune(42608), To: rune(42610)}, + &CodePointRange{From: rune(42611), To: rune(42611)}, + &CodePointRange{From: rune(42612), To: rune(42621)}, + &CodePointRange{From: rune(42622), To: rune(42622)}, + &CodePointRange{From: rune(42623), To: rune(42623)}, + &CodePointRange{From: rune(42624), To: rune(42651)}, + &CodePointRange{From: rune(42652), To: rune(42653)}, + &CodePointRange{From: rune(42654), To: rune(42655)}, + &CodePointRange{From: rune(65070), To: rune(65071)}, + }, + "deva": { + &CodePointRange{From: rune(2304), To: rune(2306)}, + &CodePointRange{From: rune(2307), To: rune(2307)}, + &CodePointRange{From: rune(2308), To: rune(2361)}, + &CodePointRange{From: rune(2362), To: rune(2362)}, + &CodePointRange{From: rune(2363), To: rune(2363)}, + &CodePointRange{From: rune(2364), To: rune(2364)}, + &CodePointRange{From: rune(2365), To: rune(2365)}, + &CodePointRange{From: rune(2366), To: rune(2368)}, + &CodePointRange{From: rune(2369), To: rune(2376)}, + &CodePointRange{From: rune(2377), To: rune(2380)}, + &CodePointRange{From: rune(2381), To: rune(2381)}, + &CodePointRange{From: rune(2382), To: rune(2383)}, + &CodePointRange{From: rune(2384), To: rune(2384)}, + &CodePointRange{From: rune(2389), To: rune(2391)}, + &CodePointRange{From: rune(2392), To: rune(2401)}, + &CodePointRange{From: rune(2402), To: rune(2403)}, + &CodePointRange{From: rune(2406), To: rune(2415)}, + &CodePointRange{From: rune(2416), To: rune(2416)}, + &CodePointRange{From: rune(2417), To: rune(2417)}, + &CodePointRange{From: rune(2418), To: rune(2431)}, + &CodePointRange{From: rune(43232), To: rune(43249)}, + &CodePointRange{From: rune(43250), To: rune(43255)}, + &CodePointRange{From: rune(43256), To: rune(43258)}, + &CodePointRange{From: rune(43259), To: rune(43259)}, + &CodePointRange{From: rune(43260), To: rune(43260)}, + &CodePointRange{From: rune(43261), To: rune(43262)}, + &CodePointRange{From: rune(43263), To: rune(43263)}, + }, + "diak": { + &CodePointRange{From: rune(71936), To: rune(71942)}, + &CodePointRange{From: rune(71945), To: rune(71945)}, + &CodePointRange{From: rune(71948), To: rune(71955)}, + &CodePointRange{From: rune(71957), To: rune(71958)}, + &CodePointRange{From: rune(71960), To: rune(71983)}, + &CodePointRange{From: rune(71984), To: rune(71989)}, + &CodePointRange{From: rune(71991), To: rune(71992)}, + &CodePointRange{From: rune(71995), To: rune(71996)}, + &CodePointRange{From: rune(71997), To: rune(71997)}, + &CodePointRange{From: rune(71998), To: rune(71998)}, + &CodePointRange{From: rune(71999), To: rune(71999)}, + &CodePointRange{From: rune(72000), To: rune(72000)}, + &CodePointRange{From: rune(72001), To: rune(72001)}, + &CodePointRange{From: rune(72002), To: rune(72002)}, + &CodePointRange{From: rune(72003), To: rune(72003)}, + &CodePointRange{From: rune(72004), To: rune(72006)}, + &CodePointRange{From: rune(72016), To: rune(72025)}, + }, + "dogr": { + &CodePointRange{From: rune(71680), To: rune(71723)}, + &CodePointRange{From: rune(71724), To: rune(71726)}, + &CodePointRange{From: rune(71727), To: rune(71735)}, + &CodePointRange{From: rune(71736), To: rune(71736)}, + &CodePointRange{From: rune(71737), To: rune(71738)}, + &CodePointRange{From: rune(71739), To: rune(71739)}, + }, + "dsrt": { + &CodePointRange{From: rune(66560), To: rune(66639)}, + }, + "dupl": { + &CodePointRange{From: rune(113664), To: rune(113770)}, + &CodePointRange{From: rune(113776), To: rune(113788)}, + &CodePointRange{From: rune(113792), To: rune(113800)}, + &CodePointRange{From: rune(113808), To: rune(113817)}, + &CodePointRange{From: rune(113820), To: rune(113820)}, + &CodePointRange{From: rune(113821), To: rune(113822)}, + &CodePointRange{From: rune(113823), To: rune(113823)}, + }, + "egyp": { + &CodePointRange{From: rune(77824), To: rune(78894)}, + &CodePointRange{From: rune(78896), To: rune(78904)}, + }, + "elba": { + &CodePointRange{From: rune(66816), To: rune(66855)}, + }, + "elym": { + &CodePointRange{From: rune(69600), To: rune(69622)}, + }, + "ethi": { + &CodePointRange{From: rune(4608), To: rune(4680)}, + &CodePointRange{From: rune(4682), To: rune(4685)}, + &CodePointRange{From: rune(4688), To: rune(4694)}, + &CodePointRange{From: rune(4696), To: rune(4696)}, + &CodePointRange{From: rune(4698), To: rune(4701)}, + &CodePointRange{From: rune(4704), To: rune(4744)}, + &CodePointRange{From: rune(4746), To: rune(4749)}, + &CodePointRange{From: rune(4752), To: rune(4784)}, + &CodePointRange{From: rune(4786), To: rune(4789)}, + &CodePointRange{From: rune(4792), To: rune(4798)}, + &CodePointRange{From: rune(4800), To: rune(4800)}, + &CodePointRange{From: rune(4802), To: rune(4805)}, + &CodePointRange{From: rune(4808), To: rune(4822)}, + &CodePointRange{From: rune(4824), To: rune(4880)}, + &CodePointRange{From: rune(4882), To: rune(4885)}, + &CodePointRange{From: rune(4888), To: rune(4954)}, + &CodePointRange{From: rune(4957), To: rune(4959)}, + &CodePointRange{From: rune(4960), To: rune(4968)}, + &CodePointRange{From: rune(4969), To: rune(4988)}, + &CodePointRange{From: rune(4992), To: rune(5007)}, + &CodePointRange{From: rune(5008), To: rune(5017)}, + &CodePointRange{From: rune(11648), To: rune(11670)}, + &CodePointRange{From: rune(11680), To: rune(11686)}, + &CodePointRange{From: rune(11688), To: rune(11694)}, + &CodePointRange{From: rune(11696), To: rune(11702)}, + &CodePointRange{From: rune(11704), To: rune(11710)}, + &CodePointRange{From: rune(11712), To: rune(11718)}, + &CodePointRange{From: rune(11720), To: rune(11726)}, + &CodePointRange{From: rune(11728), To: rune(11734)}, + &CodePointRange{From: rune(11736), To: rune(11742)}, + &CodePointRange{From: rune(43777), To: rune(43782)}, + &CodePointRange{From: rune(43785), To: rune(43790)}, + &CodePointRange{From: rune(43793), To: rune(43798)}, + &CodePointRange{From: rune(43808), To: rune(43814)}, + &CodePointRange{From: rune(43816), To: rune(43822)}, + }, + "geor": { + &CodePointRange{From: rune(4256), To: rune(4293)}, + &CodePointRange{From: rune(4295), To: rune(4295)}, + &CodePointRange{From: rune(4301), To: rune(4301)}, + &CodePointRange{From: rune(4304), To: rune(4346)}, + &CodePointRange{From: rune(4348), To: rune(4348)}, + &CodePointRange{From: rune(4349), To: rune(4351)}, + &CodePointRange{From: rune(7312), To: rune(7354)}, + &CodePointRange{From: rune(7357), To: rune(7359)}, + &CodePointRange{From: rune(11520), To: rune(11557)}, + &CodePointRange{From: rune(11559), To: rune(11559)}, + &CodePointRange{From: rune(11565), To: rune(11565)}, + }, + "glag": { + &CodePointRange{From: rune(11264), To: rune(11310)}, + &CodePointRange{From: rune(11312), To: rune(11358)}, + &CodePointRange{From: rune(122880), To: rune(122886)}, + &CodePointRange{From: rune(122888), To: rune(122904)}, + &CodePointRange{From: rune(122907), To: rune(122913)}, + &CodePointRange{From: rune(122915), To: rune(122916)}, + &CodePointRange{From: rune(122918), To: rune(122922)}, + }, + "gong": { + &CodePointRange{From: rune(73056), To: rune(73061)}, + &CodePointRange{From: rune(73063), To: rune(73064)}, + &CodePointRange{From: rune(73066), To: rune(73097)}, + &CodePointRange{From: rune(73098), To: rune(73102)}, + &CodePointRange{From: rune(73104), To: rune(73105)}, + &CodePointRange{From: rune(73107), To: rune(73108)}, + &CodePointRange{From: rune(73109), To: rune(73109)}, + &CodePointRange{From: rune(73110), To: rune(73110)}, + &CodePointRange{From: rune(73111), To: rune(73111)}, + &CodePointRange{From: rune(73112), To: rune(73112)}, + &CodePointRange{From: rune(73120), To: rune(73129)}, + }, + "gonm": { + &CodePointRange{From: rune(72960), To: rune(72966)}, + &CodePointRange{From: rune(72968), To: rune(72969)}, + &CodePointRange{From: rune(72971), To: rune(73008)}, + &CodePointRange{From: rune(73009), To: rune(73014)}, + &CodePointRange{From: rune(73018), To: rune(73018)}, + &CodePointRange{From: rune(73020), To: rune(73021)}, + &CodePointRange{From: rune(73023), To: rune(73029)}, + &CodePointRange{From: rune(73030), To: rune(73030)}, + &CodePointRange{From: rune(73031), To: rune(73031)}, + &CodePointRange{From: rune(73040), To: rune(73049)}, + }, + "goth": { + &CodePointRange{From: rune(66352), To: rune(66368)}, + &CodePointRange{From: rune(66369), To: rune(66369)}, + &CodePointRange{From: rune(66370), To: rune(66377)}, + &CodePointRange{From: rune(66378), To: rune(66378)}, + }, + "gran": { + &CodePointRange{From: rune(70400), To: rune(70401)}, + &CodePointRange{From: rune(70402), To: rune(70403)}, + &CodePointRange{From: rune(70405), To: rune(70412)}, + &CodePointRange{From: rune(70415), To: rune(70416)}, + &CodePointRange{From: rune(70419), To: rune(70440)}, + &CodePointRange{From: rune(70442), To: rune(70448)}, + &CodePointRange{From: rune(70450), To: rune(70451)}, + &CodePointRange{From: rune(70453), To: rune(70457)}, + &CodePointRange{From: rune(70460), To: rune(70460)}, + &CodePointRange{From: rune(70461), To: rune(70461)}, + &CodePointRange{From: rune(70462), To: rune(70463)}, + &CodePointRange{From: rune(70464), To: rune(70464)}, + &CodePointRange{From: rune(70465), To: rune(70468)}, + &CodePointRange{From: rune(70471), To: rune(70472)}, + &CodePointRange{From: rune(70475), To: rune(70477)}, + &CodePointRange{From: rune(70480), To: rune(70480)}, + &CodePointRange{From: rune(70487), To: rune(70487)}, + &CodePointRange{From: rune(70493), To: rune(70497)}, + &CodePointRange{From: rune(70498), To: rune(70499)}, + &CodePointRange{From: rune(70502), To: rune(70508)}, + &CodePointRange{From: rune(70512), To: rune(70516)}, + }, + "grek": { + &CodePointRange{From: rune(880), To: rune(883)}, + &CodePointRange{From: rune(885), To: rune(885)}, + &CodePointRange{From: rune(886), To: rune(887)}, + &CodePointRange{From: rune(890), To: rune(890)}, + &CodePointRange{From: rune(891), To: rune(893)}, + &CodePointRange{From: rune(895), To: rune(895)}, + &CodePointRange{From: rune(900), To: rune(900)}, + &CodePointRange{From: rune(902), To: rune(902)}, + &CodePointRange{From: rune(904), To: rune(906)}, + &CodePointRange{From: rune(908), To: rune(908)}, + &CodePointRange{From: rune(910), To: rune(929)}, + &CodePointRange{From: rune(931), To: rune(993)}, + &CodePointRange{From: rune(1008), To: rune(1013)}, + &CodePointRange{From: rune(1014), To: rune(1014)}, + &CodePointRange{From: rune(1015), To: rune(1023)}, + &CodePointRange{From: rune(7462), To: rune(7466)}, + &CodePointRange{From: rune(7517), To: rune(7521)}, + &CodePointRange{From: rune(7526), To: rune(7530)}, + &CodePointRange{From: rune(7615), To: rune(7615)}, + &CodePointRange{From: rune(7936), To: rune(7957)}, + &CodePointRange{From: rune(7960), To: rune(7965)}, + &CodePointRange{From: rune(7968), To: rune(8005)}, + &CodePointRange{From: rune(8008), To: rune(8013)}, + &CodePointRange{From: rune(8016), To: rune(8023)}, + &CodePointRange{From: rune(8025), To: rune(8025)}, + &CodePointRange{From: rune(8027), To: rune(8027)}, + &CodePointRange{From: rune(8029), To: rune(8029)}, + &CodePointRange{From: rune(8031), To: rune(8061)}, + &CodePointRange{From: rune(8064), To: rune(8116)}, + &CodePointRange{From: rune(8118), To: rune(8124)}, + &CodePointRange{From: rune(8125), To: rune(8125)}, + &CodePointRange{From: rune(8126), To: rune(8126)}, + &CodePointRange{From: rune(8127), To: rune(8129)}, + &CodePointRange{From: rune(8130), To: rune(8132)}, + &CodePointRange{From: rune(8134), To: rune(8140)}, + &CodePointRange{From: rune(8141), To: rune(8143)}, + &CodePointRange{From: rune(8144), To: rune(8147)}, + &CodePointRange{From: rune(8150), To: rune(8155)}, + &CodePointRange{From: rune(8157), To: rune(8159)}, + &CodePointRange{From: rune(8160), To: rune(8172)}, + &CodePointRange{From: rune(8173), To: rune(8175)}, + &CodePointRange{From: rune(8178), To: rune(8180)}, + &CodePointRange{From: rune(8182), To: rune(8188)}, + &CodePointRange{From: rune(8189), To: rune(8190)}, + &CodePointRange{From: rune(8486), To: rune(8486)}, + &CodePointRange{From: rune(43877), To: rune(43877)}, + &CodePointRange{From: rune(65856), To: rune(65908)}, + &CodePointRange{From: rune(65909), To: rune(65912)}, + &CodePointRange{From: rune(65913), To: rune(65929)}, + &CodePointRange{From: rune(65930), To: rune(65931)}, + &CodePointRange{From: rune(65932), To: rune(65934)}, + &CodePointRange{From: rune(65952), To: rune(65952)}, + &CodePointRange{From: rune(119296), To: rune(119361)}, + &CodePointRange{From: rune(119362), To: rune(119364)}, + &CodePointRange{From: rune(119365), To: rune(119365)}, + }, + "gujr": { + &CodePointRange{From: rune(2689), To: rune(2690)}, + &CodePointRange{From: rune(2691), To: rune(2691)}, + &CodePointRange{From: rune(2693), To: rune(2701)}, + &CodePointRange{From: rune(2703), To: rune(2705)}, + &CodePointRange{From: rune(2707), To: rune(2728)}, + &CodePointRange{From: rune(2730), To: rune(2736)}, + &CodePointRange{From: rune(2738), To: rune(2739)}, + &CodePointRange{From: rune(2741), To: rune(2745)}, + &CodePointRange{From: rune(2748), To: rune(2748)}, + &CodePointRange{From: rune(2749), To: rune(2749)}, + &CodePointRange{From: rune(2750), To: rune(2752)}, + &CodePointRange{From: rune(2753), To: rune(2757)}, + &CodePointRange{From: rune(2759), To: rune(2760)}, + &CodePointRange{From: rune(2761), To: rune(2761)}, + &CodePointRange{From: rune(2763), To: rune(2764)}, + &CodePointRange{From: rune(2765), To: rune(2765)}, + &CodePointRange{From: rune(2768), To: rune(2768)}, + &CodePointRange{From: rune(2784), To: rune(2785)}, + &CodePointRange{From: rune(2786), To: rune(2787)}, + &CodePointRange{From: rune(2790), To: rune(2799)}, + &CodePointRange{From: rune(2800), To: rune(2800)}, + &CodePointRange{From: rune(2801), To: rune(2801)}, + &CodePointRange{From: rune(2809), To: rune(2809)}, + &CodePointRange{From: rune(2810), To: rune(2815)}, + }, + "guru": { + &CodePointRange{From: rune(2561), To: rune(2562)}, + &CodePointRange{From: rune(2563), To: rune(2563)}, + &CodePointRange{From: rune(2565), To: rune(2570)}, + &CodePointRange{From: rune(2575), To: rune(2576)}, + &CodePointRange{From: rune(2579), To: rune(2600)}, + &CodePointRange{From: rune(2602), To: rune(2608)}, + &CodePointRange{From: rune(2610), To: rune(2611)}, + &CodePointRange{From: rune(2613), To: rune(2614)}, + &CodePointRange{From: rune(2616), To: rune(2617)}, + &CodePointRange{From: rune(2620), To: rune(2620)}, + &CodePointRange{From: rune(2622), To: rune(2624)}, + &CodePointRange{From: rune(2625), To: rune(2626)}, + &CodePointRange{From: rune(2631), To: rune(2632)}, + &CodePointRange{From: rune(2635), To: rune(2637)}, + &CodePointRange{From: rune(2641), To: rune(2641)}, + &CodePointRange{From: rune(2649), To: rune(2652)}, + &CodePointRange{From: rune(2654), To: rune(2654)}, + &CodePointRange{From: rune(2662), To: rune(2671)}, + &CodePointRange{From: rune(2672), To: rune(2673)}, + &CodePointRange{From: rune(2674), To: rune(2676)}, + &CodePointRange{From: rune(2677), To: rune(2677)}, + &CodePointRange{From: rune(2678), To: rune(2678)}, + }, + "hang": { + &CodePointRange{From: rune(4352), To: rune(4607)}, + &CodePointRange{From: rune(12334), To: rune(12335)}, + &CodePointRange{From: rune(12593), To: rune(12686)}, + &CodePointRange{From: rune(12800), To: rune(12830)}, + &CodePointRange{From: rune(12896), To: rune(12926)}, + &CodePointRange{From: rune(43360), To: rune(43388)}, + &CodePointRange{From: rune(44032), To: rune(55203)}, + &CodePointRange{From: rune(55216), To: rune(55238)}, + &CodePointRange{From: rune(55243), To: rune(55291)}, + &CodePointRange{From: rune(65440), To: rune(65470)}, + &CodePointRange{From: rune(65474), To: rune(65479)}, + &CodePointRange{From: rune(65482), To: rune(65487)}, + &CodePointRange{From: rune(65490), To: rune(65495)}, + &CodePointRange{From: rune(65498), To: rune(65500)}, + }, + "hani": { + &CodePointRange{From: rune(11904), To: rune(11929)}, + &CodePointRange{From: rune(11931), To: rune(12019)}, + &CodePointRange{From: rune(12032), To: rune(12245)}, + &CodePointRange{From: rune(12293), To: rune(12293)}, + &CodePointRange{From: rune(12295), To: rune(12295)}, + &CodePointRange{From: rune(12321), To: rune(12329)}, + &CodePointRange{From: rune(12344), To: rune(12346)}, + &CodePointRange{From: rune(12347), To: rune(12347)}, + &CodePointRange{From: rune(13312), To: rune(19903)}, + &CodePointRange{From: rune(19968), To: rune(40956)}, + &CodePointRange{From: rune(63744), To: rune(64109)}, + &CodePointRange{From: rune(64112), To: rune(64217)}, + &CodePointRange{From: rune(94192), To: rune(94193)}, + &CodePointRange{From: rune(131072), To: rune(173789)}, + &CodePointRange{From: rune(173824), To: rune(177972)}, + &CodePointRange{From: rune(177984), To: rune(178205)}, + &CodePointRange{From: rune(178208), To: rune(183969)}, + &CodePointRange{From: rune(183984), To: rune(191456)}, + &CodePointRange{From: rune(194560), To: rune(195101)}, + &CodePointRange{From: rune(196608), To: rune(201546)}, + }, + "hano": { + &CodePointRange{From: rune(5920), To: rune(5937)}, + &CodePointRange{From: rune(5938), To: rune(5940)}, + }, + "hatr": { + &CodePointRange{From: rune(67808), To: rune(67826)}, + &CodePointRange{From: rune(67828), To: rune(67829)}, + &CodePointRange{From: rune(67835), To: rune(67839)}, + }, + "hebr": { + &CodePointRange{From: rune(1425), To: rune(1469)}, + &CodePointRange{From: rune(1470), To: rune(1470)}, + &CodePointRange{From: rune(1471), To: rune(1471)}, + &CodePointRange{From: rune(1472), To: rune(1472)}, + &CodePointRange{From: rune(1473), To: rune(1474)}, + &CodePointRange{From: rune(1475), To: rune(1475)}, + &CodePointRange{From: rune(1476), To: rune(1477)}, + &CodePointRange{From: rune(1478), To: rune(1478)}, + &CodePointRange{From: rune(1479), To: rune(1479)}, + &CodePointRange{From: rune(1488), To: rune(1514)}, + &CodePointRange{From: rune(1519), To: rune(1522)}, + &CodePointRange{From: rune(1523), To: rune(1524)}, + &CodePointRange{From: rune(64285), To: rune(64285)}, + &CodePointRange{From: rune(64286), To: rune(64286)}, + &CodePointRange{From: rune(64287), To: rune(64296)}, + &CodePointRange{From: rune(64297), To: rune(64297)}, + &CodePointRange{From: rune(64298), To: rune(64310)}, + &CodePointRange{From: rune(64312), To: rune(64316)}, + &CodePointRange{From: rune(64318), To: rune(64318)}, + &CodePointRange{From: rune(64320), To: rune(64321)}, + &CodePointRange{From: rune(64323), To: rune(64324)}, + &CodePointRange{From: rune(64326), To: rune(64335)}, + }, + "hira": { + &CodePointRange{From: rune(12353), To: rune(12438)}, + &CodePointRange{From: rune(12445), To: rune(12446)}, + &CodePointRange{From: rune(12447), To: rune(12447)}, + &CodePointRange{From: rune(110593), To: rune(110878)}, + &CodePointRange{From: rune(110928), To: rune(110930)}, + &CodePointRange{From: rune(127488), To: rune(127488)}, + }, + "hluw": { + &CodePointRange{From: rune(82944), To: rune(83526)}, + }, + "hmng": { + &CodePointRange{From: rune(92928), To: rune(92975)}, + &CodePointRange{From: rune(92976), To: rune(92982)}, + &CodePointRange{From: rune(92983), To: rune(92987)}, + &CodePointRange{From: rune(92988), To: rune(92991)}, + &CodePointRange{From: rune(92992), To: rune(92995)}, + &CodePointRange{From: rune(92996), To: rune(92996)}, + &CodePointRange{From: rune(92997), To: rune(92997)}, + &CodePointRange{From: rune(93008), To: rune(93017)}, + &CodePointRange{From: rune(93019), To: rune(93025)}, + &CodePointRange{From: rune(93027), To: rune(93047)}, + &CodePointRange{From: rune(93053), To: rune(93071)}, + }, + "hmnp": { + &CodePointRange{From: rune(123136), To: rune(123180)}, + &CodePointRange{From: rune(123184), To: rune(123190)}, + &CodePointRange{From: rune(123191), To: rune(123197)}, + &CodePointRange{From: rune(123200), To: rune(123209)}, + &CodePointRange{From: rune(123214), To: rune(123214)}, + &CodePointRange{From: rune(123215), To: rune(123215)}, + }, + "hung": { + &CodePointRange{From: rune(68736), To: rune(68786)}, + &CodePointRange{From: rune(68800), To: rune(68850)}, + &CodePointRange{From: rune(68858), To: rune(68863)}, + }, + "ital": { + &CodePointRange{From: rune(66304), To: rune(66335)}, + &CodePointRange{From: rune(66336), To: rune(66339)}, + &CodePointRange{From: rune(66349), To: rune(66351)}, + }, + "java": { + &CodePointRange{From: rune(43392), To: rune(43394)}, + &CodePointRange{From: rune(43395), To: rune(43395)}, + &CodePointRange{From: rune(43396), To: rune(43442)}, + &CodePointRange{From: rune(43443), To: rune(43443)}, + &CodePointRange{From: rune(43444), To: rune(43445)}, + &CodePointRange{From: rune(43446), To: rune(43449)}, + &CodePointRange{From: rune(43450), To: rune(43451)}, + &CodePointRange{From: rune(43452), To: rune(43453)}, + &CodePointRange{From: rune(43454), To: rune(43456)}, + &CodePointRange{From: rune(43457), To: rune(43469)}, + &CodePointRange{From: rune(43472), To: rune(43481)}, + &CodePointRange{From: rune(43486), To: rune(43487)}, + }, + "kali": { + &CodePointRange{From: rune(43264), To: rune(43273)}, + &CodePointRange{From: rune(43274), To: rune(43301)}, + &CodePointRange{From: rune(43302), To: rune(43309)}, + &CodePointRange{From: rune(43311), To: rune(43311)}, + }, + "kana": { + &CodePointRange{From: rune(12449), To: rune(12538)}, + &CodePointRange{From: rune(12541), To: rune(12542)}, + &CodePointRange{From: rune(12543), To: rune(12543)}, + &CodePointRange{From: rune(12784), To: rune(12799)}, + &CodePointRange{From: rune(13008), To: rune(13054)}, + &CodePointRange{From: rune(13056), To: rune(13143)}, + &CodePointRange{From: rune(65382), To: rune(65391)}, + &CodePointRange{From: rune(65393), To: rune(65437)}, + &CodePointRange{From: rune(110592), To: rune(110592)}, + &CodePointRange{From: rune(110948), To: rune(110951)}, + }, + "khar": { + &CodePointRange{From: rune(68096), To: rune(68096)}, + &CodePointRange{From: rune(68097), To: rune(68099)}, + &CodePointRange{From: rune(68101), To: rune(68102)}, + &CodePointRange{From: rune(68108), To: rune(68111)}, + &CodePointRange{From: rune(68112), To: rune(68115)}, + &CodePointRange{From: rune(68117), To: rune(68119)}, + &CodePointRange{From: rune(68121), To: rune(68149)}, + &CodePointRange{From: rune(68152), To: rune(68154)}, + &CodePointRange{From: rune(68159), To: rune(68159)}, + &CodePointRange{From: rune(68160), To: rune(68168)}, + &CodePointRange{From: rune(68176), To: rune(68184)}, + }, + "khmr": { + &CodePointRange{From: rune(6016), To: rune(6067)}, + &CodePointRange{From: rune(6068), To: rune(6069)}, + &CodePointRange{From: rune(6070), To: rune(6070)}, + &CodePointRange{From: rune(6071), To: rune(6077)}, + &CodePointRange{From: rune(6078), To: rune(6085)}, + &CodePointRange{From: rune(6086), To: rune(6086)}, + &CodePointRange{From: rune(6087), To: rune(6088)}, + &CodePointRange{From: rune(6089), To: rune(6099)}, + &CodePointRange{From: rune(6100), To: rune(6102)}, + &CodePointRange{From: rune(6103), To: rune(6103)}, + &CodePointRange{From: rune(6104), To: rune(6106)}, + &CodePointRange{From: rune(6107), To: rune(6107)}, + &CodePointRange{From: rune(6108), To: rune(6108)}, + &CodePointRange{From: rune(6109), To: rune(6109)}, + &CodePointRange{From: rune(6112), To: rune(6121)}, + &CodePointRange{From: rune(6128), To: rune(6137)}, + &CodePointRange{From: rune(6624), To: rune(6655)}, + }, + "khoj": { + &CodePointRange{From: rune(70144), To: rune(70161)}, + &CodePointRange{From: rune(70163), To: rune(70187)}, + &CodePointRange{From: rune(70188), To: rune(70190)}, + &CodePointRange{From: rune(70191), To: rune(70193)}, + &CodePointRange{From: rune(70194), To: rune(70195)}, + &CodePointRange{From: rune(70196), To: rune(70196)}, + &CodePointRange{From: rune(70197), To: rune(70197)}, + &CodePointRange{From: rune(70198), To: rune(70199)}, + &CodePointRange{From: rune(70200), To: rune(70205)}, + &CodePointRange{From: rune(70206), To: rune(70206)}, + }, + "kits": { + &CodePointRange{From: rune(94180), To: rune(94180)}, + &CodePointRange{From: rune(101120), To: rune(101589)}, + }, + "knda": { + &CodePointRange{From: rune(3200), To: rune(3200)}, + &CodePointRange{From: rune(3201), To: rune(3201)}, + &CodePointRange{From: rune(3202), To: rune(3203)}, + &CodePointRange{From: rune(3204), To: rune(3204)}, + &CodePointRange{From: rune(3205), To: rune(3212)}, + &CodePointRange{From: rune(3214), To: rune(3216)}, + &CodePointRange{From: rune(3218), To: rune(3240)}, + &CodePointRange{From: rune(3242), To: rune(3251)}, + &CodePointRange{From: rune(3253), To: rune(3257)}, + &CodePointRange{From: rune(3260), To: rune(3260)}, + &CodePointRange{From: rune(3261), To: rune(3261)}, + &CodePointRange{From: rune(3262), To: rune(3262)}, + &CodePointRange{From: rune(3263), To: rune(3263)}, + &CodePointRange{From: rune(3264), To: rune(3268)}, + &CodePointRange{From: rune(3270), To: rune(3270)}, + &CodePointRange{From: rune(3271), To: rune(3272)}, + &CodePointRange{From: rune(3274), To: rune(3275)}, + &CodePointRange{From: rune(3276), To: rune(3277)}, + &CodePointRange{From: rune(3285), To: rune(3286)}, + &CodePointRange{From: rune(3294), To: rune(3294)}, + &CodePointRange{From: rune(3296), To: rune(3297)}, + &CodePointRange{From: rune(3298), To: rune(3299)}, + &CodePointRange{From: rune(3302), To: rune(3311)}, + &CodePointRange{From: rune(3313), To: rune(3314)}, + }, + "kthi": { + &CodePointRange{From: rune(69760), To: rune(69761)}, + &CodePointRange{From: rune(69762), To: rune(69762)}, + &CodePointRange{From: rune(69763), To: rune(69807)}, + &CodePointRange{From: rune(69808), To: rune(69810)}, + &CodePointRange{From: rune(69811), To: rune(69814)}, + &CodePointRange{From: rune(69815), To: rune(69816)}, + &CodePointRange{From: rune(69817), To: rune(69818)}, + &CodePointRange{From: rune(69819), To: rune(69820)}, + &CodePointRange{From: rune(69821), To: rune(69821)}, + &CodePointRange{From: rune(69822), To: rune(69825)}, + &CodePointRange{From: rune(69837), To: rune(69837)}, + }, + "lana": { + &CodePointRange{From: rune(6688), To: rune(6740)}, + &CodePointRange{From: rune(6741), To: rune(6741)}, + &CodePointRange{From: rune(6742), To: rune(6742)}, + &CodePointRange{From: rune(6743), To: rune(6743)}, + &CodePointRange{From: rune(6744), To: rune(6750)}, + &CodePointRange{From: rune(6752), To: rune(6752)}, + &CodePointRange{From: rune(6753), To: rune(6753)}, + &CodePointRange{From: rune(6754), To: rune(6754)}, + &CodePointRange{From: rune(6755), To: rune(6756)}, + &CodePointRange{From: rune(6757), To: rune(6764)}, + &CodePointRange{From: rune(6765), To: rune(6770)}, + &CodePointRange{From: rune(6771), To: rune(6780)}, + &CodePointRange{From: rune(6783), To: rune(6783)}, + &CodePointRange{From: rune(6784), To: rune(6793)}, + &CodePointRange{From: rune(6800), To: rune(6809)}, + &CodePointRange{From: rune(6816), To: rune(6822)}, + &CodePointRange{From: rune(6823), To: rune(6823)}, + &CodePointRange{From: rune(6824), To: rune(6829)}, + }, + "laoo": { + &CodePointRange{From: rune(3713), To: rune(3714)}, + &CodePointRange{From: rune(3716), To: rune(3716)}, + &CodePointRange{From: rune(3718), To: rune(3722)}, + &CodePointRange{From: rune(3724), To: rune(3747)}, + &CodePointRange{From: rune(3749), To: rune(3749)}, + &CodePointRange{From: rune(3751), To: rune(3760)}, + &CodePointRange{From: rune(3761), To: rune(3761)}, + &CodePointRange{From: rune(3762), To: rune(3763)}, + &CodePointRange{From: rune(3764), To: rune(3772)}, + &CodePointRange{From: rune(3773), To: rune(3773)}, + &CodePointRange{From: rune(3776), To: rune(3780)}, + &CodePointRange{From: rune(3782), To: rune(3782)}, + &CodePointRange{From: rune(3784), To: rune(3789)}, + &CodePointRange{From: rune(3792), To: rune(3801)}, + &CodePointRange{From: rune(3804), To: rune(3807)}, + }, + "latn": { + &CodePointRange{From: rune(65), To: rune(90)}, + &CodePointRange{From: rune(97), To: rune(122)}, + &CodePointRange{From: rune(170), To: rune(170)}, + &CodePointRange{From: rune(186), To: rune(186)}, + &CodePointRange{From: rune(192), To: rune(214)}, + &CodePointRange{From: rune(216), To: rune(246)}, + &CodePointRange{From: rune(248), To: rune(442)}, + &CodePointRange{From: rune(443), To: rune(443)}, + &CodePointRange{From: rune(444), To: rune(447)}, + &CodePointRange{From: rune(448), To: rune(451)}, + &CodePointRange{From: rune(452), To: rune(659)}, + &CodePointRange{From: rune(660), To: rune(660)}, + &CodePointRange{From: rune(661), To: rune(687)}, + &CodePointRange{From: rune(688), To: rune(696)}, + &CodePointRange{From: rune(736), To: rune(740)}, + &CodePointRange{From: rune(7424), To: rune(7461)}, + &CodePointRange{From: rune(7468), To: rune(7516)}, + &CodePointRange{From: rune(7522), To: rune(7525)}, + &CodePointRange{From: rune(7531), To: rune(7543)}, + &CodePointRange{From: rune(7545), To: rune(7578)}, + &CodePointRange{From: rune(7579), To: rune(7614)}, + &CodePointRange{From: rune(7680), To: rune(7935)}, + &CodePointRange{From: rune(8305), To: rune(8305)}, + &CodePointRange{From: rune(8319), To: rune(8319)}, + &CodePointRange{From: rune(8336), To: rune(8348)}, + &CodePointRange{From: rune(8490), To: rune(8491)}, + &CodePointRange{From: rune(8498), To: rune(8498)}, + &CodePointRange{From: rune(8526), To: rune(8526)}, + &CodePointRange{From: rune(8544), To: rune(8578)}, + &CodePointRange{From: rune(8579), To: rune(8580)}, + &CodePointRange{From: rune(8581), To: rune(8584)}, + &CodePointRange{From: rune(11360), To: rune(11387)}, + &CodePointRange{From: rune(11388), To: rune(11389)}, + &CodePointRange{From: rune(11390), To: rune(11391)}, + &CodePointRange{From: rune(42786), To: rune(42863)}, + &CodePointRange{From: rune(42864), To: rune(42864)}, + &CodePointRange{From: rune(42865), To: rune(42887)}, + &CodePointRange{From: rune(42891), To: rune(42894)}, + &CodePointRange{From: rune(42895), To: rune(42895)}, + &CodePointRange{From: rune(42896), To: rune(42943)}, + &CodePointRange{From: rune(42946), To: rune(42954)}, + &CodePointRange{From: rune(42997), To: rune(42998)}, + &CodePointRange{From: rune(42999), To: rune(42999)}, + &CodePointRange{From: rune(43000), To: rune(43001)}, + &CodePointRange{From: rune(43002), To: rune(43002)}, + &CodePointRange{From: rune(43003), To: rune(43007)}, + &CodePointRange{From: rune(43824), To: rune(43866)}, + &CodePointRange{From: rune(43868), To: rune(43871)}, + &CodePointRange{From: rune(43872), To: rune(43876)}, + &CodePointRange{From: rune(43878), To: rune(43880)}, + &CodePointRange{From: rune(43881), To: rune(43881)}, + &CodePointRange{From: rune(64256), To: rune(64262)}, + &CodePointRange{From: rune(65313), To: rune(65338)}, + &CodePointRange{From: rune(65345), To: rune(65370)}, + }, + "lepc": { + &CodePointRange{From: rune(7168), To: rune(7203)}, + &CodePointRange{From: rune(7204), To: rune(7211)}, + &CodePointRange{From: rune(7212), To: rune(7219)}, + &CodePointRange{From: rune(7220), To: rune(7221)}, + &CodePointRange{From: rune(7222), To: rune(7223)}, + &CodePointRange{From: rune(7227), To: rune(7231)}, + &CodePointRange{From: rune(7232), To: rune(7241)}, + &CodePointRange{From: rune(7245), To: rune(7247)}, + }, + "limb": { + &CodePointRange{From: rune(6400), To: rune(6430)}, + &CodePointRange{From: rune(6432), To: rune(6434)}, + &CodePointRange{From: rune(6435), To: rune(6438)}, + &CodePointRange{From: rune(6439), To: rune(6440)}, + &CodePointRange{From: rune(6441), To: rune(6443)}, + &CodePointRange{From: rune(6448), To: rune(6449)}, + &CodePointRange{From: rune(6450), To: rune(6450)}, + &CodePointRange{From: rune(6451), To: rune(6456)}, + &CodePointRange{From: rune(6457), To: rune(6459)}, + &CodePointRange{From: rune(6464), To: rune(6464)}, + &CodePointRange{From: rune(6468), To: rune(6469)}, + &CodePointRange{From: rune(6470), To: rune(6479)}, + }, + "lina": { + &CodePointRange{From: rune(67072), To: rune(67382)}, + &CodePointRange{From: rune(67392), To: rune(67413)}, + &CodePointRange{From: rune(67424), To: rune(67431)}, + }, + "linb": { + &CodePointRange{From: rune(65536), To: rune(65547)}, + &CodePointRange{From: rune(65549), To: rune(65574)}, + &CodePointRange{From: rune(65576), To: rune(65594)}, + &CodePointRange{From: rune(65596), To: rune(65597)}, + &CodePointRange{From: rune(65599), To: rune(65613)}, + &CodePointRange{From: rune(65616), To: rune(65629)}, + &CodePointRange{From: rune(65664), To: rune(65786)}, + }, + "lisu": { + &CodePointRange{From: rune(42192), To: rune(42231)}, + &CodePointRange{From: rune(42232), To: rune(42237)}, + &CodePointRange{From: rune(42238), To: rune(42239)}, + &CodePointRange{From: rune(73648), To: rune(73648)}, + }, + "lyci": { + &CodePointRange{From: rune(66176), To: rune(66204)}, + }, + "lydi": { + &CodePointRange{From: rune(67872), To: rune(67897)}, + &CodePointRange{From: rune(67903), To: rune(67903)}, + }, + "mahj": { + &CodePointRange{From: rune(69968), To: rune(70002)}, + &CodePointRange{From: rune(70003), To: rune(70003)}, + &CodePointRange{From: rune(70004), To: rune(70005)}, + &CodePointRange{From: rune(70006), To: rune(70006)}, + }, + "maka": { + &CodePointRange{From: rune(73440), To: rune(73458)}, + &CodePointRange{From: rune(73459), To: rune(73460)}, + &CodePointRange{From: rune(73461), To: rune(73462)}, + &CodePointRange{From: rune(73463), To: rune(73464)}, + }, + "mand": { + &CodePointRange{From: rune(2112), To: rune(2136)}, + &CodePointRange{From: rune(2137), To: rune(2139)}, + &CodePointRange{From: rune(2142), To: rune(2142)}, + }, + "mani": { + &CodePointRange{From: rune(68288), To: rune(68295)}, + &CodePointRange{From: rune(68296), To: rune(68296)}, + &CodePointRange{From: rune(68297), To: rune(68324)}, + &CodePointRange{From: rune(68325), To: rune(68326)}, + &CodePointRange{From: rune(68331), To: rune(68335)}, + &CodePointRange{From: rune(68336), To: rune(68342)}, + }, + "marc": { + &CodePointRange{From: rune(72816), To: rune(72817)}, + &CodePointRange{From: rune(72818), To: rune(72847)}, + &CodePointRange{From: rune(72850), To: rune(72871)}, + &CodePointRange{From: rune(72873), To: rune(72873)}, + &CodePointRange{From: rune(72874), To: rune(72880)}, + &CodePointRange{From: rune(72881), To: rune(72881)}, + &CodePointRange{From: rune(72882), To: rune(72883)}, + &CodePointRange{From: rune(72884), To: rune(72884)}, + &CodePointRange{From: rune(72885), To: rune(72886)}, + }, + "medf": { + &CodePointRange{From: rune(93760), To: rune(93823)}, + &CodePointRange{From: rune(93824), To: rune(93846)}, + &CodePointRange{From: rune(93847), To: rune(93850)}, + }, + "mend": { + &CodePointRange{From: rune(124928), To: rune(125124)}, + &CodePointRange{From: rune(125127), To: rune(125135)}, + &CodePointRange{From: rune(125136), To: rune(125142)}, + }, + "merc": { + &CodePointRange{From: rune(68000), To: rune(68023)}, + &CodePointRange{From: rune(68028), To: rune(68029)}, + &CodePointRange{From: rune(68030), To: rune(68031)}, + &CodePointRange{From: rune(68032), To: rune(68047)}, + &CodePointRange{From: rune(68050), To: rune(68095)}, + }, + "mero": { + &CodePointRange{From: rune(67968), To: rune(67999)}, + }, + "mlym": { + &CodePointRange{From: rune(3328), To: rune(3329)}, + &CodePointRange{From: rune(3330), To: rune(3331)}, + &CodePointRange{From: rune(3332), To: rune(3340)}, + &CodePointRange{From: rune(3342), To: rune(3344)}, + &CodePointRange{From: rune(3346), To: rune(3386)}, + &CodePointRange{From: rune(3387), To: rune(3388)}, + &CodePointRange{From: rune(3389), To: rune(3389)}, + &CodePointRange{From: rune(3390), To: rune(3392)}, + &CodePointRange{From: rune(3393), To: rune(3396)}, + &CodePointRange{From: rune(3398), To: rune(3400)}, + &CodePointRange{From: rune(3402), To: rune(3404)}, + &CodePointRange{From: rune(3405), To: rune(3405)}, + &CodePointRange{From: rune(3406), To: rune(3406)}, + &CodePointRange{From: rune(3407), To: rune(3407)}, + &CodePointRange{From: rune(3412), To: rune(3414)}, + &CodePointRange{From: rune(3415), To: rune(3415)}, + &CodePointRange{From: rune(3416), To: rune(3422)}, + &CodePointRange{From: rune(3423), To: rune(3425)}, + &CodePointRange{From: rune(3426), To: rune(3427)}, + &CodePointRange{From: rune(3430), To: rune(3439)}, + &CodePointRange{From: rune(3440), To: rune(3448)}, + &CodePointRange{From: rune(3449), To: rune(3449)}, + &CodePointRange{From: rune(3450), To: rune(3455)}, + }, + "modi": { + &CodePointRange{From: rune(71168), To: rune(71215)}, + &CodePointRange{From: rune(71216), To: rune(71218)}, + &CodePointRange{From: rune(71219), To: rune(71226)}, + &CodePointRange{From: rune(71227), To: rune(71228)}, + &CodePointRange{From: rune(71229), To: rune(71229)}, + &CodePointRange{From: rune(71230), To: rune(71230)}, + &CodePointRange{From: rune(71231), To: rune(71232)}, + &CodePointRange{From: rune(71233), To: rune(71235)}, + &CodePointRange{From: rune(71236), To: rune(71236)}, + &CodePointRange{From: rune(71248), To: rune(71257)}, + }, + "mong": { + &CodePointRange{From: rune(6144), To: rune(6145)}, + &CodePointRange{From: rune(6148), To: rune(6148)}, + &CodePointRange{From: rune(6150), To: rune(6150)}, + &CodePointRange{From: rune(6151), To: rune(6154)}, + &CodePointRange{From: rune(6155), To: rune(6157)}, + &CodePointRange{From: rune(6158), To: rune(6158)}, + &CodePointRange{From: rune(6160), To: rune(6169)}, + &CodePointRange{From: rune(6176), To: rune(6210)}, + &CodePointRange{From: rune(6211), To: rune(6211)}, + &CodePointRange{From: rune(6212), To: rune(6264)}, + &CodePointRange{From: rune(6272), To: rune(6276)}, + &CodePointRange{From: rune(6277), To: rune(6278)}, + &CodePointRange{From: rune(6279), To: rune(6312)}, + &CodePointRange{From: rune(6313), To: rune(6313)}, + &CodePointRange{From: rune(6314), To: rune(6314)}, + &CodePointRange{From: rune(71264), To: rune(71276)}, + }, + "mroo": { + &CodePointRange{From: rune(92736), To: rune(92766)}, + &CodePointRange{From: rune(92768), To: rune(92777)}, + &CodePointRange{From: rune(92782), To: rune(92783)}, + }, + "mtei": { + &CodePointRange{From: rune(43744), To: rune(43754)}, + &CodePointRange{From: rune(43755), To: rune(43755)}, + &CodePointRange{From: rune(43756), To: rune(43757)}, + &CodePointRange{From: rune(43758), To: rune(43759)}, + &CodePointRange{From: rune(43760), To: rune(43761)}, + &CodePointRange{From: rune(43762), To: rune(43762)}, + &CodePointRange{From: rune(43763), To: rune(43764)}, + &CodePointRange{From: rune(43765), To: rune(43765)}, + &CodePointRange{From: rune(43766), To: rune(43766)}, + &CodePointRange{From: rune(43968), To: rune(44002)}, + &CodePointRange{From: rune(44003), To: rune(44004)}, + &CodePointRange{From: rune(44005), To: rune(44005)}, + &CodePointRange{From: rune(44006), To: rune(44007)}, + &CodePointRange{From: rune(44008), To: rune(44008)}, + &CodePointRange{From: rune(44009), To: rune(44010)}, + &CodePointRange{From: rune(44011), To: rune(44011)}, + &CodePointRange{From: rune(44012), To: rune(44012)}, + &CodePointRange{From: rune(44013), To: rune(44013)}, + &CodePointRange{From: rune(44016), To: rune(44025)}, + }, + "mult": { + &CodePointRange{From: rune(70272), To: rune(70278)}, + &CodePointRange{From: rune(70280), To: rune(70280)}, + &CodePointRange{From: rune(70282), To: rune(70285)}, + &CodePointRange{From: rune(70287), To: rune(70301)}, + &CodePointRange{From: rune(70303), To: rune(70312)}, + &CodePointRange{From: rune(70313), To: rune(70313)}, + }, + "mymr": { + &CodePointRange{From: rune(4096), To: rune(4138)}, + &CodePointRange{From: rune(4139), To: rune(4140)}, + &CodePointRange{From: rune(4141), To: rune(4144)}, + &CodePointRange{From: rune(4145), To: rune(4145)}, + &CodePointRange{From: rune(4146), To: rune(4151)}, + &CodePointRange{From: rune(4152), To: rune(4152)}, + &CodePointRange{From: rune(4153), To: rune(4154)}, + &CodePointRange{From: rune(4155), To: rune(4156)}, + &CodePointRange{From: rune(4157), To: rune(4158)}, + &CodePointRange{From: rune(4159), To: rune(4159)}, + &CodePointRange{From: rune(4160), To: rune(4169)}, + &CodePointRange{From: rune(4170), To: rune(4175)}, + &CodePointRange{From: rune(4176), To: rune(4181)}, + &CodePointRange{From: rune(4182), To: rune(4183)}, + &CodePointRange{From: rune(4184), To: rune(4185)}, + &CodePointRange{From: rune(4186), To: rune(4189)}, + &CodePointRange{From: rune(4190), To: rune(4192)}, + &CodePointRange{From: rune(4193), To: rune(4193)}, + &CodePointRange{From: rune(4194), To: rune(4196)}, + &CodePointRange{From: rune(4197), To: rune(4198)}, + &CodePointRange{From: rune(4199), To: rune(4205)}, + &CodePointRange{From: rune(4206), To: rune(4208)}, + &CodePointRange{From: rune(4209), To: rune(4212)}, + &CodePointRange{From: rune(4213), To: rune(4225)}, + &CodePointRange{From: rune(4226), To: rune(4226)}, + &CodePointRange{From: rune(4227), To: rune(4228)}, + &CodePointRange{From: rune(4229), To: rune(4230)}, + &CodePointRange{From: rune(4231), To: rune(4236)}, + &CodePointRange{From: rune(4237), To: rune(4237)}, + &CodePointRange{From: rune(4238), To: rune(4238)}, + &CodePointRange{From: rune(4239), To: rune(4239)}, + &CodePointRange{From: rune(4240), To: rune(4249)}, + &CodePointRange{From: rune(4250), To: rune(4252)}, + &CodePointRange{From: rune(4253), To: rune(4253)}, + &CodePointRange{From: rune(4254), To: rune(4255)}, + &CodePointRange{From: rune(43488), To: rune(43492)}, + &CodePointRange{From: rune(43493), To: rune(43493)}, + &CodePointRange{From: rune(43494), To: rune(43494)}, + &CodePointRange{From: rune(43495), To: rune(43503)}, + &CodePointRange{From: rune(43504), To: rune(43513)}, + &CodePointRange{From: rune(43514), To: rune(43518)}, + &CodePointRange{From: rune(43616), To: rune(43631)}, + &CodePointRange{From: rune(43632), To: rune(43632)}, + &CodePointRange{From: rune(43633), To: rune(43638)}, + &CodePointRange{From: rune(43639), To: rune(43641)}, + &CodePointRange{From: rune(43642), To: rune(43642)}, + &CodePointRange{From: rune(43643), To: rune(43643)}, + &CodePointRange{From: rune(43644), To: rune(43644)}, + &CodePointRange{From: rune(43645), To: rune(43645)}, + &CodePointRange{From: rune(43646), To: rune(43647)}, + }, + "nand": { + &CodePointRange{From: rune(72096), To: rune(72103)}, + &CodePointRange{From: rune(72106), To: rune(72144)}, + &CodePointRange{From: rune(72145), To: rune(72147)}, + &CodePointRange{From: rune(72148), To: rune(72151)}, + &CodePointRange{From: rune(72154), To: rune(72155)}, + &CodePointRange{From: rune(72156), To: rune(72159)}, + &CodePointRange{From: rune(72160), To: rune(72160)}, + &CodePointRange{From: rune(72161), To: rune(72161)}, + &CodePointRange{From: rune(72162), To: rune(72162)}, + &CodePointRange{From: rune(72163), To: rune(72163)}, + &CodePointRange{From: rune(72164), To: rune(72164)}, + }, + "narb": { + &CodePointRange{From: rune(68224), To: rune(68252)}, + &CodePointRange{From: rune(68253), To: rune(68255)}, + }, + "nbat": { + &CodePointRange{From: rune(67712), To: rune(67742)}, + &CodePointRange{From: rune(67751), To: rune(67759)}, + }, + "newa": { + &CodePointRange{From: rune(70656), To: rune(70708)}, + &CodePointRange{From: rune(70709), To: rune(70711)}, + &CodePointRange{From: rune(70712), To: rune(70719)}, + &CodePointRange{From: rune(70720), To: rune(70721)}, + &CodePointRange{From: rune(70722), To: rune(70724)}, + &CodePointRange{From: rune(70725), To: rune(70725)}, + &CodePointRange{From: rune(70726), To: rune(70726)}, + &CodePointRange{From: rune(70727), To: rune(70730)}, + &CodePointRange{From: rune(70731), To: rune(70735)}, + &CodePointRange{From: rune(70736), To: rune(70745)}, + &CodePointRange{From: rune(70746), To: rune(70747)}, + &CodePointRange{From: rune(70749), To: rune(70749)}, + &CodePointRange{From: rune(70750), To: rune(70750)}, + &CodePointRange{From: rune(70751), To: rune(70753)}, + }, + "nkoo": { + &CodePointRange{From: rune(1984), To: rune(1993)}, + &CodePointRange{From: rune(1994), To: rune(2026)}, + &CodePointRange{From: rune(2027), To: rune(2035)}, + &CodePointRange{From: rune(2036), To: rune(2037)}, + &CodePointRange{From: rune(2038), To: rune(2038)}, + &CodePointRange{From: rune(2039), To: rune(2041)}, + &CodePointRange{From: rune(2042), To: rune(2042)}, + &CodePointRange{From: rune(2045), To: rune(2045)}, + &CodePointRange{From: rune(2046), To: rune(2047)}, + }, + "nshu": { + &CodePointRange{From: rune(94177), To: rune(94177)}, + &CodePointRange{From: rune(110960), To: rune(111355)}, + }, + "ogam": { + &CodePointRange{From: rune(5760), To: rune(5760)}, + &CodePointRange{From: rune(5761), To: rune(5786)}, + &CodePointRange{From: rune(5787), To: rune(5787)}, + &CodePointRange{From: rune(5788), To: rune(5788)}, + }, + "olck": { + &CodePointRange{From: rune(7248), To: rune(7257)}, + &CodePointRange{From: rune(7258), To: rune(7287)}, + &CodePointRange{From: rune(7288), To: rune(7293)}, + &CodePointRange{From: rune(7294), To: rune(7295)}, + }, + "orkh": { + &CodePointRange{From: rune(68608), To: rune(68680)}, + }, + "orya": { + &CodePointRange{From: rune(2817), To: rune(2817)}, + &CodePointRange{From: rune(2818), To: rune(2819)}, + &CodePointRange{From: rune(2821), To: rune(2828)}, + &CodePointRange{From: rune(2831), To: rune(2832)}, + &CodePointRange{From: rune(2835), To: rune(2856)}, + &CodePointRange{From: rune(2858), To: rune(2864)}, + &CodePointRange{From: rune(2866), To: rune(2867)}, + &CodePointRange{From: rune(2869), To: rune(2873)}, + &CodePointRange{From: rune(2876), To: rune(2876)}, + &CodePointRange{From: rune(2877), To: rune(2877)}, + &CodePointRange{From: rune(2878), To: rune(2878)}, + &CodePointRange{From: rune(2879), To: rune(2879)}, + &CodePointRange{From: rune(2880), To: rune(2880)}, + &CodePointRange{From: rune(2881), To: rune(2884)}, + &CodePointRange{From: rune(2887), To: rune(2888)}, + &CodePointRange{From: rune(2891), To: rune(2892)}, + &CodePointRange{From: rune(2893), To: rune(2893)}, + &CodePointRange{From: rune(2901), To: rune(2902)}, + &CodePointRange{From: rune(2903), To: rune(2903)}, + &CodePointRange{From: rune(2908), To: rune(2909)}, + &CodePointRange{From: rune(2911), To: rune(2913)}, + &CodePointRange{From: rune(2914), To: rune(2915)}, + &CodePointRange{From: rune(2918), To: rune(2927)}, + &CodePointRange{From: rune(2928), To: rune(2928)}, + &CodePointRange{From: rune(2929), To: rune(2929)}, + &CodePointRange{From: rune(2930), To: rune(2935)}, + }, + "osge": { + &CodePointRange{From: rune(66736), To: rune(66771)}, + &CodePointRange{From: rune(66776), To: rune(66811)}, + }, + "osma": { + &CodePointRange{From: rune(66688), To: rune(66717)}, + &CodePointRange{From: rune(66720), To: rune(66729)}, + }, + "palm": { + &CodePointRange{From: rune(67680), To: rune(67702)}, + &CodePointRange{From: rune(67703), To: rune(67704)}, + &CodePointRange{From: rune(67705), To: rune(67711)}, + }, + "pauc": { + &CodePointRange{From: rune(72384), To: rune(72440)}, + }, + "perm": { + &CodePointRange{From: rune(66384), To: rune(66421)}, + &CodePointRange{From: rune(66422), To: rune(66426)}, + }, + "phag": { + &CodePointRange{From: rune(43072), To: rune(43123)}, + &CodePointRange{From: rune(43124), To: rune(43127)}, + }, + "phli": { + &CodePointRange{From: rune(68448), To: rune(68466)}, + &CodePointRange{From: rune(68472), To: rune(68479)}, + }, + "phlp": { + &CodePointRange{From: rune(68480), To: rune(68497)}, + &CodePointRange{From: rune(68505), To: rune(68508)}, + &CodePointRange{From: rune(68521), To: rune(68527)}, + }, + "phnx": { + &CodePointRange{From: rune(67840), To: rune(67861)}, + &CodePointRange{From: rune(67862), To: rune(67867)}, + &CodePointRange{From: rune(67871), To: rune(67871)}, + }, + "plrd": { + &CodePointRange{From: rune(93952), To: rune(94026)}, + &CodePointRange{From: rune(94031), To: rune(94031)}, + &CodePointRange{From: rune(94032), To: rune(94032)}, + &CodePointRange{From: rune(94033), To: rune(94087)}, + &CodePointRange{From: rune(94095), To: rune(94098)}, + &CodePointRange{From: rune(94099), To: rune(94111)}, + }, + "prti": { + &CodePointRange{From: rune(68416), To: rune(68437)}, + &CodePointRange{From: rune(68440), To: rune(68447)}, + }, + "rjng": { + &CodePointRange{From: rune(43312), To: rune(43334)}, + &CodePointRange{From: rune(43335), To: rune(43345)}, + &CodePointRange{From: rune(43346), To: rune(43347)}, + &CodePointRange{From: rune(43359), To: rune(43359)}, + }, + "rohg": { + &CodePointRange{From: rune(68864), To: rune(68899)}, + &CodePointRange{From: rune(68900), To: rune(68903)}, + &CodePointRange{From: rune(68912), To: rune(68921)}, + }, + "runr": { + &CodePointRange{From: rune(5792), To: rune(5866)}, + &CodePointRange{From: rune(5870), To: rune(5872)}, + &CodePointRange{From: rune(5873), To: rune(5880)}, + }, + "samr": { + &CodePointRange{From: rune(2048), To: rune(2069)}, + &CodePointRange{From: rune(2070), To: rune(2073)}, + &CodePointRange{From: rune(2074), To: rune(2074)}, + &CodePointRange{From: rune(2075), To: rune(2083)}, + &CodePointRange{From: rune(2084), To: rune(2084)}, + &CodePointRange{From: rune(2085), To: rune(2087)}, + &CodePointRange{From: rune(2088), To: rune(2088)}, + &CodePointRange{From: rune(2089), To: rune(2093)}, + &CodePointRange{From: rune(2096), To: rune(2110)}, + }, + "sarb": { + &CodePointRange{From: rune(68192), To: rune(68220)}, + &CodePointRange{From: rune(68221), To: rune(68222)}, + &CodePointRange{From: rune(68223), To: rune(68223)}, + }, + "saur": { + &CodePointRange{From: rune(43136), To: rune(43137)}, + &CodePointRange{From: rune(43138), To: rune(43187)}, + &CodePointRange{From: rune(43188), To: rune(43203)}, + &CodePointRange{From: rune(43204), To: rune(43205)}, + &CodePointRange{From: rune(43214), To: rune(43215)}, + &CodePointRange{From: rune(43216), To: rune(43225)}, + }, + "sgnw": { + &CodePointRange{From: rune(120832), To: rune(121343)}, + &CodePointRange{From: rune(121344), To: rune(121398)}, + &CodePointRange{From: rune(121399), To: rune(121402)}, + &CodePointRange{From: rune(121403), To: rune(121452)}, + &CodePointRange{From: rune(121453), To: rune(121460)}, + &CodePointRange{From: rune(121461), To: rune(121461)}, + &CodePointRange{From: rune(121462), To: rune(121475)}, + &CodePointRange{From: rune(121476), To: rune(121476)}, + &CodePointRange{From: rune(121477), To: rune(121478)}, + &CodePointRange{From: rune(121479), To: rune(121483)}, + &CodePointRange{From: rune(121499), To: rune(121503)}, + &CodePointRange{From: rune(121505), To: rune(121519)}, + }, + "shaw": { + &CodePointRange{From: rune(66640), To: rune(66687)}, + }, + "shrd": { + &CodePointRange{From: rune(70016), To: rune(70017)}, + &CodePointRange{From: rune(70018), To: rune(70018)}, + &CodePointRange{From: rune(70019), To: rune(70066)}, + &CodePointRange{From: rune(70067), To: rune(70069)}, + &CodePointRange{From: rune(70070), To: rune(70078)}, + &CodePointRange{From: rune(70079), To: rune(70080)}, + &CodePointRange{From: rune(70081), To: rune(70084)}, + &CodePointRange{From: rune(70085), To: rune(70088)}, + &CodePointRange{From: rune(70089), To: rune(70092)}, + &CodePointRange{From: rune(70093), To: rune(70093)}, + &CodePointRange{From: rune(70094), To: rune(70094)}, + &CodePointRange{From: rune(70095), To: rune(70095)}, + &CodePointRange{From: rune(70096), To: rune(70105)}, + &CodePointRange{From: rune(70106), To: rune(70106)}, + &CodePointRange{From: rune(70107), To: rune(70107)}, + &CodePointRange{From: rune(70108), To: rune(70108)}, + &CodePointRange{From: rune(70109), To: rune(70111)}, + }, + "sidd": { + &CodePointRange{From: rune(71040), To: rune(71086)}, + &CodePointRange{From: rune(71087), To: rune(71089)}, + &CodePointRange{From: rune(71090), To: rune(71093)}, + &CodePointRange{From: rune(71096), To: rune(71099)}, + &CodePointRange{From: rune(71100), To: rune(71101)}, + &CodePointRange{From: rune(71102), To: rune(71102)}, + &CodePointRange{From: rune(71103), To: rune(71104)}, + &CodePointRange{From: rune(71105), To: rune(71127)}, + &CodePointRange{From: rune(71128), To: rune(71131)}, + &CodePointRange{From: rune(71132), To: rune(71133)}, + }, + "sind": { + &CodePointRange{From: rune(70320), To: rune(70366)}, + &CodePointRange{From: rune(70367), To: rune(70367)}, + &CodePointRange{From: rune(70368), To: rune(70370)}, + &CodePointRange{From: rune(70371), To: rune(70378)}, + &CodePointRange{From: rune(70384), To: rune(70393)}, + }, + "sinh": { + &CodePointRange{From: rune(3457), To: rune(3457)}, + &CodePointRange{From: rune(3458), To: rune(3459)}, + &CodePointRange{From: rune(3461), To: rune(3478)}, + &CodePointRange{From: rune(3482), To: rune(3505)}, + &CodePointRange{From: rune(3507), To: rune(3515)}, + &CodePointRange{From: rune(3517), To: rune(3517)}, + &CodePointRange{From: rune(3520), To: rune(3526)}, + &CodePointRange{From: rune(3530), To: rune(3530)}, + &CodePointRange{From: rune(3535), To: rune(3537)}, + &CodePointRange{From: rune(3538), To: rune(3540)}, + &CodePointRange{From: rune(3542), To: rune(3542)}, + &CodePointRange{From: rune(3544), To: rune(3551)}, + &CodePointRange{From: rune(3558), To: rune(3567)}, + &CodePointRange{From: rune(3570), To: rune(3571)}, + &CodePointRange{From: rune(3572), To: rune(3572)}, + &CodePointRange{From: rune(70113), To: rune(70132)}, + }, + "sogd": { + &CodePointRange{From: rune(69424), To: rune(69445)}, + &CodePointRange{From: rune(69446), To: rune(69456)}, + &CodePointRange{From: rune(69457), To: rune(69460)}, + &CodePointRange{From: rune(69461), To: rune(69465)}, + }, + "sogo": { + &CodePointRange{From: rune(69376), To: rune(69404)}, + &CodePointRange{From: rune(69405), To: rune(69414)}, + &CodePointRange{From: rune(69415), To: rune(69415)}, + }, + "sora": { + &CodePointRange{From: rune(69840), To: rune(69864)}, + &CodePointRange{From: rune(69872), To: rune(69881)}, + }, + "soyo": { + &CodePointRange{From: rune(72272), To: rune(72272)}, + &CodePointRange{From: rune(72273), To: rune(72278)}, + &CodePointRange{From: rune(72279), To: rune(72280)}, + &CodePointRange{From: rune(72281), To: rune(72283)}, + &CodePointRange{From: rune(72284), To: rune(72329)}, + &CodePointRange{From: rune(72330), To: rune(72342)}, + &CodePointRange{From: rune(72343), To: rune(72343)}, + &CodePointRange{From: rune(72344), To: rune(72345)}, + &CodePointRange{From: rune(72346), To: rune(72348)}, + &CodePointRange{From: rune(72349), To: rune(72349)}, + &CodePointRange{From: rune(72350), To: rune(72354)}, + }, + "sund": { + &CodePointRange{From: rune(7040), To: rune(7041)}, + &CodePointRange{From: rune(7042), To: rune(7042)}, + &CodePointRange{From: rune(7043), To: rune(7072)}, + &CodePointRange{From: rune(7073), To: rune(7073)}, + &CodePointRange{From: rune(7074), To: rune(7077)}, + &CodePointRange{From: rune(7078), To: rune(7079)}, + &CodePointRange{From: rune(7080), To: rune(7081)}, + &CodePointRange{From: rune(7082), To: rune(7082)}, + &CodePointRange{From: rune(7083), To: rune(7085)}, + &CodePointRange{From: rune(7086), To: rune(7087)}, + &CodePointRange{From: rune(7088), To: rune(7097)}, + &CodePointRange{From: rune(7098), To: rune(7103)}, + &CodePointRange{From: rune(7360), To: rune(7367)}, + }, + "sylo": { + &CodePointRange{From: rune(43008), To: rune(43009)}, + &CodePointRange{From: rune(43010), To: rune(43010)}, + &CodePointRange{From: rune(43011), To: rune(43013)}, + &CodePointRange{From: rune(43014), To: rune(43014)}, + &CodePointRange{From: rune(43015), To: rune(43018)}, + &CodePointRange{From: rune(43019), To: rune(43019)}, + &CodePointRange{From: rune(43020), To: rune(43042)}, + &CodePointRange{From: rune(43043), To: rune(43044)}, + &CodePointRange{From: rune(43045), To: rune(43046)}, + &CodePointRange{From: rune(43047), To: rune(43047)}, + &CodePointRange{From: rune(43048), To: rune(43051)}, + &CodePointRange{From: rune(43052), To: rune(43052)}, + }, + "syrc": { + &CodePointRange{From: rune(1792), To: rune(1805)}, + &CodePointRange{From: rune(1807), To: rune(1807)}, + &CodePointRange{From: rune(1808), To: rune(1808)}, + &CodePointRange{From: rune(1809), To: rune(1809)}, + &CodePointRange{From: rune(1810), To: rune(1839)}, + &CodePointRange{From: rune(1840), To: rune(1866)}, + &CodePointRange{From: rune(1869), To: rune(1871)}, + &CodePointRange{From: rune(2144), To: rune(2154)}, + }, + "tagb": { + &CodePointRange{From: rune(5984), To: rune(5996)}, + &CodePointRange{From: rune(5998), To: rune(6000)}, + &CodePointRange{From: rune(6002), To: rune(6003)}, + }, + "takr": { + &CodePointRange{From: rune(71296), To: rune(71338)}, + &CodePointRange{From: rune(71339), To: rune(71339)}, + &CodePointRange{From: rune(71340), To: rune(71340)}, + &CodePointRange{From: rune(71341), To: rune(71341)}, + &CodePointRange{From: rune(71342), To: rune(71343)}, + &CodePointRange{From: rune(71344), To: rune(71349)}, + &CodePointRange{From: rune(71350), To: rune(71350)}, + &CodePointRange{From: rune(71351), To: rune(71351)}, + &CodePointRange{From: rune(71352), To: rune(71352)}, + &CodePointRange{From: rune(71360), To: rune(71369)}, + }, + "tale": { + &CodePointRange{From: rune(6480), To: rune(6509)}, + &CodePointRange{From: rune(6512), To: rune(6516)}, + }, + "talu": { + &CodePointRange{From: rune(6528), To: rune(6571)}, + &CodePointRange{From: rune(6576), To: rune(6601)}, + &CodePointRange{From: rune(6608), To: rune(6617)}, + &CodePointRange{From: rune(6618), To: rune(6618)}, + &CodePointRange{From: rune(6622), To: rune(6623)}, + }, + "taml": { + &CodePointRange{From: rune(2946), To: rune(2946)}, + &CodePointRange{From: rune(2947), To: rune(2947)}, + &CodePointRange{From: rune(2949), To: rune(2954)}, + &CodePointRange{From: rune(2958), To: rune(2960)}, + &CodePointRange{From: rune(2962), To: rune(2965)}, + &CodePointRange{From: rune(2969), To: rune(2970)}, + &CodePointRange{From: rune(2972), To: rune(2972)}, + &CodePointRange{From: rune(2974), To: rune(2975)}, + &CodePointRange{From: rune(2979), To: rune(2980)}, + &CodePointRange{From: rune(2984), To: rune(2986)}, + &CodePointRange{From: rune(2990), To: rune(3001)}, + &CodePointRange{From: rune(3006), To: rune(3007)}, + &CodePointRange{From: rune(3008), To: rune(3008)}, + &CodePointRange{From: rune(3009), To: rune(3010)}, + &CodePointRange{From: rune(3014), To: rune(3016)}, + &CodePointRange{From: rune(3018), To: rune(3020)}, + &CodePointRange{From: rune(3021), To: rune(3021)}, + &CodePointRange{From: rune(3024), To: rune(3024)}, + &CodePointRange{From: rune(3031), To: rune(3031)}, + &CodePointRange{From: rune(3046), To: rune(3055)}, + &CodePointRange{From: rune(3056), To: rune(3058)}, + &CodePointRange{From: rune(3059), To: rune(3064)}, + &CodePointRange{From: rune(3065), To: rune(3065)}, + &CodePointRange{From: rune(3066), To: rune(3066)}, + &CodePointRange{From: rune(73664), To: rune(73684)}, + &CodePointRange{From: rune(73685), To: rune(73692)}, + &CodePointRange{From: rune(73693), To: rune(73696)}, + &CodePointRange{From: rune(73697), To: rune(73713)}, + &CodePointRange{From: rune(73727), To: rune(73727)}, + }, + "tang": { + &CodePointRange{From: rune(94176), To: rune(94176)}, + &CodePointRange{From: rune(94208), To: rune(100343)}, + &CodePointRange{From: rune(100352), To: rune(101119)}, + &CodePointRange{From: rune(101632), To: rune(101640)}, + }, + "tavt": { + &CodePointRange{From: rune(43648), To: rune(43695)}, + &CodePointRange{From: rune(43696), To: rune(43696)}, + &CodePointRange{From: rune(43697), To: rune(43697)}, + &CodePointRange{From: rune(43698), To: rune(43700)}, + &CodePointRange{From: rune(43701), To: rune(43702)}, + &CodePointRange{From: rune(43703), To: rune(43704)}, + &CodePointRange{From: rune(43705), To: rune(43709)}, + &CodePointRange{From: rune(43710), To: rune(43711)}, + &CodePointRange{From: rune(43712), To: rune(43712)}, + &CodePointRange{From: rune(43713), To: rune(43713)}, + &CodePointRange{From: rune(43714), To: rune(43714)}, + &CodePointRange{From: rune(43739), To: rune(43740)}, + &CodePointRange{From: rune(43741), To: rune(43741)}, + &CodePointRange{From: rune(43742), To: rune(43743)}, + }, + "telu": { + &CodePointRange{From: rune(3072), To: rune(3072)}, + &CodePointRange{From: rune(3073), To: rune(3075)}, + &CodePointRange{From: rune(3076), To: rune(3076)}, + &CodePointRange{From: rune(3077), To: rune(3084)}, + &CodePointRange{From: rune(3086), To: rune(3088)}, + &CodePointRange{From: rune(3090), To: rune(3112)}, + &CodePointRange{From: rune(3114), To: rune(3129)}, + &CodePointRange{From: rune(3133), To: rune(3133)}, + &CodePointRange{From: rune(3134), To: rune(3136)}, + &CodePointRange{From: rune(3137), To: rune(3140)}, + &CodePointRange{From: rune(3142), To: rune(3144)}, + &CodePointRange{From: rune(3146), To: rune(3149)}, + &CodePointRange{From: rune(3157), To: rune(3158)}, + &CodePointRange{From: rune(3160), To: rune(3162)}, + &CodePointRange{From: rune(3168), To: rune(3169)}, + &CodePointRange{From: rune(3170), To: rune(3171)}, + &CodePointRange{From: rune(3174), To: rune(3183)}, + &CodePointRange{From: rune(3191), To: rune(3191)}, + &CodePointRange{From: rune(3192), To: rune(3198)}, + &CodePointRange{From: rune(3199), To: rune(3199)}, + }, + "tfng": { + &CodePointRange{From: rune(11568), To: rune(11623)}, + &CodePointRange{From: rune(11631), To: rune(11631)}, + &CodePointRange{From: rune(11632), To: rune(11632)}, + &CodePointRange{From: rune(11647), To: rune(11647)}, + }, + "tglg": { + &CodePointRange{From: rune(5888), To: rune(5900)}, + &CodePointRange{From: rune(5902), To: rune(5905)}, + &CodePointRange{From: rune(5906), To: rune(5908)}, + }, + "thaa": { + &CodePointRange{From: rune(1920), To: rune(1957)}, + &CodePointRange{From: rune(1958), To: rune(1968)}, + &CodePointRange{From: rune(1969), To: rune(1969)}, + }, + "thai": { + &CodePointRange{From: rune(3585), To: rune(3632)}, + &CodePointRange{From: rune(3633), To: rune(3633)}, + &CodePointRange{From: rune(3634), To: rune(3635)}, + &CodePointRange{From: rune(3636), To: rune(3642)}, + &CodePointRange{From: rune(3648), To: rune(3653)}, + &CodePointRange{From: rune(3654), To: rune(3654)}, + &CodePointRange{From: rune(3655), To: rune(3662)}, + &CodePointRange{From: rune(3663), To: rune(3663)}, + &CodePointRange{From: rune(3664), To: rune(3673)}, + &CodePointRange{From: rune(3674), To: rune(3675)}, + }, + "tibt": { + &CodePointRange{From: rune(3840), To: rune(3840)}, + &CodePointRange{From: rune(3841), To: rune(3843)}, + &CodePointRange{From: rune(3844), To: rune(3858)}, + &CodePointRange{From: rune(3859), To: rune(3859)}, + &CodePointRange{From: rune(3860), To: rune(3860)}, + &CodePointRange{From: rune(3861), To: rune(3863)}, + &CodePointRange{From: rune(3864), To: rune(3865)}, + &CodePointRange{From: rune(3866), To: rune(3871)}, + &CodePointRange{From: rune(3872), To: rune(3881)}, + &CodePointRange{From: rune(3882), To: rune(3891)}, + &CodePointRange{From: rune(3892), To: rune(3892)}, + &CodePointRange{From: rune(3893), To: rune(3893)}, + &CodePointRange{From: rune(3894), To: rune(3894)}, + &CodePointRange{From: rune(3895), To: rune(3895)}, + &CodePointRange{From: rune(3896), To: rune(3896)}, + &CodePointRange{From: rune(3897), To: rune(3897)}, + &CodePointRange{From: rune(3898), To: rune(3898)}, + &CodePointRange{From: rune(3899), To: rune(3899)}, + &CodePointRange{From: rune(3900), To: rune(3900)}, + &CodePointRange{From: rune(3901), To: rune(3901)}, + &CodePointRange{From: rune(3902), To: rune(3903)}, + &CodePointRange{From: rune(3904), To: rune(3911)}, + &CodePointRange{From: rune(3913), To: rune(3948)}, + &CodePointRange{From: rune(3953), To: rune(3966)}, + &CodePointRange{From: rune(3967), To: rune(3967)}, + &CodePointRange{From: rune(3968), To: rune(3972)}, + &CodePointRange{From: rune(3973), To: rune(3973)}, + &CodePointRange{From: rune(3974), To: rune(3975)}, + &CodePointRange{From: rune(3976), To: rune(3980)}, + &CodePointRange{From: rune(3981), To: rune(3991)}, + &CodePointRange{From: rune(3993), To: rune(4028)}, + &CodePointRange{From: rune(4030), To: rune(4037)}, + &CodePointRange{From: rune(4038), To: rune(4038)}, + &CodePointRange{From: rune(4039), To: rune(4044)}, + &CodePointRange{From: rune(4046), To: rune(4047)}, + &CodePointRange{From: rune(4048), To: rune(4052)}, + &CodePointRange{From: rune(4057), To: rune(4058)}, + }, + "tirh": { + &CodePointRange{From: rune(70784), To: rune(70831)}, + &CodePointRange{From: rune(70832), To: rune(70834)}, + &CodePointRange{From: rune(70835), To: rune(70840)}, + &CodePointRange{From: rune(70841), To: rune(70841)}, + &CodePointRange{From: rune(70842), To: rune(70842)}, + &CodePointRange{From: rune(70843), To: rune(70846)}, + &CodePointRange{From: rune(70847), To: rune(70848)}, + &CodePointRange{From: rune(70849), To: rune(70849)}, + &CodePointRange{From: rune(70850), To: rune(70851)}, + &CodePointRange{From: rune(70852), To: rune(70853)}, + &CodePointRange{From: rune(70854), To: rune(70854)}, + &CodePointRange{From: rune(70855), To: rune(70855)}, + &CodePointRange{From: rune(70864), To: rune(70873)}, + }, + "ugar": { + &CodePointRange{From: rune(66432), To: rune(66461)}, + &CodePointRange{From: rune(66463), To: rune(66463)}, + }, + "vaii": { + &CodePointRange{From: rune(42240), To: rune(42507)}, + &CodePointRange{From: rune(42508), To: rune(42508)}, + &CodePointRange{From: rune(42509), To: rune(42511)}, + &CodePointRange{From: rune(42512), To: rune(42527)}, + &CodePointRange{From: rune(42528), To: rune(42537)}, + &CodePointRange{From: rune(42538), To: rune(42539)}, + }, + "wara": { + &CodePointRange{From: rune(71840), To: rune(71903)}, + &CodePointRange{From: rune(71904), To: rune(71913)}, + &CodePointRange{From: rune(71914), To: rune(71922)}, + &CodePointRange{From: rune(71935), To: rune(71935)}, + }, + "wcho": { + &CodePointRange{From: rune(123584), To: rune(123627)}, + &CodePointRange{From: rune(123628), To: rune(123631)}, + &CodePointRange{From: rune(123632), To: rune(123641)}, + &CodePointRange{From: rune(123647), To: rune(123647)}, + }, + "xpeo": { + &CodePointRange{From: rune(66464), To: rune(66499)}, + &CodePointRange{From: rune(66504), To: rune(66511)}, + &CodePointRange{From: rune(66512), To: rune(66512)}, + &CodePointRange{From: rune(66513), To: rune(66517)}, + }, + "xsux": { + &CodePointRange{From: rune(73728), To: rune(74649)}, + &CodePointRange{From: rune(74752), To: rune(74862)}, + &CodePointRange{From: rune(74864), To: rune(74868)}, + &CodePointRange{From: rune(74880), To: rune(75075)}, + }, + "yezi": { + &CodePointRange{From: rune(69248), To: rune(69289)}, + &CodePointRange{From: rune(69291), To: rune(69292)}, + &CodePointRange{From: rune(69293), To: rune(69293)}, + &CodePointRange{From: rune(69296), To: rune(69297)}, + }, + "yiii": { + &CodePointRange{From: rune(40960), To: rune(40980)}, + &CodePointRange{From: rune(40981), To: rune(40981)}, + &CodePointRange{From: rune(40982), To: rune(42124)}, + &CodePointRange{From: rune(42128), To: rune(42182)}, + }, + "zanb": { + &CodePointRange{From: rune(72192), To: rune(72192)}, + &CodePointRange{From: rune(72193), To: rune(72202)}, + &CodePointRange{From: rune(72203), To: rune(72242)}, + &CodePointRange{From: rune(72243), To: rune(72248)}, + &CodePointRange{From: rune(72249), To: rune(72249)}, + &CodePointRange{From: rune(72250), To: rune(72250)}, + &CodePointRange{From: rune(72251), To: rune(72254)}, + &CodePointRange{From: rune(72255), To: rune(72262)}, + &CodePointRange{From: rune(72263), To: rune(72263)}, + }, + "zinh": { + &CodePointRange{From: rune(768), To: rune(879)}, + &CodePointRange{From: rune(1157), To: rune(1158)}, + &CodePointRange{From: rune(1611), To: rune(1621)}, + &CodePointRange{From: rune(1648), To: rune(1648)}, + &CodePointRange{From: rune(2385), To: rune(2388)}, + &CodePointRange{From: rune(6832), To: rune(6845)}, + &CodePointRange{From: rune(6846), To: rune(6846)}, + &CodePointRange{From: rune(6847), To: rune(6848)}, + &CodePointRange{From: rune(7376), To: rune(7378)}, + &CodePointRange{From: rune(7380), To: rune(7392)}, + &CodePointRange{From: rune(7394), To: rune(7400)}, + &CodePointRange{From: rune(7405), To: rune(7405)}, + &CodePointRange{From: rune(7412), To: rune(7412)}, + &CodePointRange{From: rune(7416), To: rune(7417)}, + &CodePointRange{From: rune(7616), To: rune(7673)}, + &CodePointRange{From: rune(7675), To: rune(7679)}, + &CodePointRange{From: rune(8204), To: rune(8205)}, + &CodePointRange{From: rune(8400), To: rune(8412)}, + &CodePointRange{From: rune(8413), To: rune(8416)}, + &CodePointRange{From: rune(8417), To: rune(8417)}, + &CodePointRange{From: rune(8418), To: rune(8420)}, + &CodePointRange{From: rune(8421), To: rune(8432)}, + &CodePointRange{From: rune(12330), To: rune(12333)}, + &CodePointRange{From: rune(12441), To: rune(12442)}, + &CodePointRange{From: rune(65024), To: rune(65039)}, + &CodePointRange{From: rune(65056), To: rune(65069)}, + &CodePointRange{From: rune(66045), To: rune(66045)}, + &CodePointRange{From: rune(66272), To: rune(66272)}, + &CodePointRange{From: rune(70459), To: rune(70459)}, + &CodePointRange{From: rune(119143), To: rune(119145)}, + &CodePointRange{From: rune(119163), To: rune(119170)}, + &CodePointRange{From: rune(119173), To: rune(119179)}, + &CodePointRange{From: rune(119210), To: rune(119213)}, + &CodePointRange{From: rune(917760), To: rune(917999)}, + }, + "zyyy": { + &CodePointRange{From: rune(0), To: rune(31)}, + &CodePointRange{From: rune(32), To: rune(32)}, + &CodePointRange{From: rune(33), To: rune(35)}, + &CodePointRange{From: rune(36), To: rune(36)}, + &CodePointRange{From: rune(37), To: rune(39)}, + &CodePointRange{From: rune(40), To: rune(40)}, + &CodePointRange{From: rune(41), To: rune(41)}, + &CodePointRange{From: rune(42), To: rune(42)}, + &CodePointRange{From: rune(43), To: rune(43)}, + &CodePointRange{From: rune(44), To: rune(44)}, + &CodePointRange{From: rune(45), To: rune(45)}, + &CodePointRange{From: rune(46), To: rune(47)}, + &CodePointRange{From: rune(48), To: rune(57)}, + &CodePointRange{From: rune(58), To: rune(59)}, + &CodePointRange{From: rune(60), To: rune(62)}, + &CodePointRange{From: rune(63), To: rune(64)}, + &CodePointRange{From: rune(91), To: rune(91)}, + &CodePointRange{From: rune(92), To: rune(92)}, + &CodePointRange{From: rune(93), To: rune(93)}, + &CodePointRange{From: rune(94), To: rune(94)}, + &CodePointRange{From: rune(95), To: rune(95)}, + &CodePointRange{From: rune(96), To: rune(96)}, + &CodePointRange{From: rune(123), To: rune(123)}, + &CodePointRange{From: rune(124), To: rune(124)}, + &CodePointRange{From: rune(125), To: rune(125)}, + &CodePointRange{From: rune(126), To: rune(126)}, + &CodePointRange{From: rune(127), To: rune(159)}, + &CodePointRange{From: rune(160), To: rune(160)}, + &CodePointRange{From: rune(161), To: rune(161)}, + &CodePointRange{From: rune(162), To: rune(165)}, + &CodePointRange{From: rune(166), To: rune(166)}, + &CodePointRange{From: rune(167), To: rune(167)}, + &CodePointRange{From: rune(168), To: rune(168)}, + &CodePointRange{From: rune(169), To: rune(169)}, + &CodePointRange{From: rune(171), To: rune(171)}, + &CodePointRange{From: rune(172), To: rune(172)}, + &CodePointRange{From: rune(173), To: rune(173)}, + &CodePointRange{From: rune(174), To: rune(174)}, + &CodePointRange{From: rune(175), To: rune(175)}, + &CodePointRange{From: rune(176), To: rune(176)}, + &CodePointRange{From: rune(177), To: rune(177)}, + &CodePointRange{From: rune(178), To: rune(179)}, + &CodePointRange{From: rune(180), To: rune(180)}, + &CodePointRange{From: rune(181), To: rune(181)}, + &CodePointRange{From: rune(182), To: rune(183)}, + &CodePointRange{From: rune(184), To: rune(184)}, + &CodePointRange{From: rune(185), To: rune(185)}, + &CodePointRange{From: rune(187), To: rune(187)}, + &CodePointRange{From: rune(188), To: rune(190)}, + &CodePointRange{From: rune(191), To: rune(191)}, + &CodePointRange{From: rune(215), To: rune(215)}, + &CodePointRange{From: rune(247), To: rune(247)}, + &CodePointRange{From: rune(697), To: rune(705)}, + &CodePointRange{From: rune(706), To: rune(709)}, + &CodePointRange{From: rune(710), To: rune(721)}, + &CodePointRange{From: rune(722), To: rune(735)}, + &CodePointRange{From: rune(741), To: rune(745)}, + &CodePointRange{From: rune(748), To: rune(748)}, + &CodePointRange{From: rune(749), To: rune(749)}, + &CodePointRange{From: rune(750), To: rune(750)}, + &CodePointRange{From: rune(751), To: rune(767)}, + &CodePointRange{From: rune(884), To: rune(884)}, + &CodePointRange{From: rune(894), To: rune(894)}, + &CodePointRange{From: rune(901), To: rune(901)}, + &CodePointRange{From: rune(903), To: rune(903)}, + &CodePointRange{From: rune(1541), To: rune(1541)}, + &CodePointRange{From: rune(1548), To: rune(1548)}, + &CodePointRange{From: rune(1563), To: rune(1563)}, + &CodePointRange{From: rune(1567), To: rune(1567)}, + &CodePointRange{From: rune(1600), To: rune(1600)}, + &CodePointRange{From: rune(1757), To: rune(1757)}, + &CodePointRange{From: rune(2274), To: rune(2274)}, + &CodePointRange{From: rune(2404), To: rune(2405)}, + &CodePointRange{From: rune(3647), To: rune(3647)}, + &CodePointRange{From: rune(4053), To: rune(4056)}, + &CodePointRange{From: rune(4347), To: rune(4347)}, + &CodePointRange{From: rune(5867), To: rune(5869)}, + &CodePointRange{From: rune(5941), To: rune(5942)}, + &CodePointRange{From: rune(6146), To: rune(6147)}, + &CodePointRange{From: rune(6149), To: rune(6149)}, + &CodePointRange{From: rune(7379), To: rune(7379)}, + &CodePointRange{From: rune(7393), To: rune(7393)}, + &CodePointRange{From: rune(7401), To: rune(7404)}, + &CodePointRange{From: rune(7406), To: rune(7411)}, + &CodePointRange{From: rune(7413), To: rune(7414)}, + &CodePointRange{From: rune(7415), To: rune(7415)}, + &CodePointRange{From: rune(7418), To: rune(7418)}, + &CodePointRange{From: rune(8192), To: rune(8202)}, + &CodePointRange{From: rune(8203), To: rune(8203)}, + &CodePointRange{From: rune(8206), To: rune(8207)}, + &CodePointRange{From: rune(8208), To: rune(8213)}, + &CodePointRange{From: rune(8214), To: rune(8215)}, + &CodePointRange{From: rune(8216), To: rune(8216)}, + &CodePointRange{From: rune(8217), To: rune(8217)}, + &CodePointRange{From: rune(8218), To: rune(8218)}, + &CodePointRange{From: rune(8219), To: rune(8220)}, + &CodePointRange{From: rune(8221), To: rune(8221)}, + &CodePointRange{From: rune(8222), To: rune(8222)}, + &CodePointRange{From: rune(8223), To: rune(8223)}, + &CodePointRange{From: rune(8224), To: rune(8231)}, + &CodePointRange{From: rune(8232), To: rune(8232)}, + &CodePointRange{From: rune(8233), To: rune(8233)}, + &CodePointRange{From: rune(8234), To: rune(8238)}, + &CodePointRange{From: rune(8239), To: rune(8239)}, + &CodePointRange{From: rune(8240), To: rune(8248)}, + &CodePointRange{From: rune(8249), To: rune(8249)}, + &CodePointRange{From: rune(8250), To: rune(8250)}, + &CodePointRange{From: rune(8251), To: rune(8254)}, + &CodePointRange{From: rune(8255), To: rune(8256)}, + &CodePointRange{From: rune(8257), To: rune(8259)}, + &CodePointRange{From: rune(8260), To: rune(8260)}, + &CodePointRange{From: rune(8261), To: rune(8261)}, + &CodePointRange{From: rune(8262), To: rune(8262)}, + &CodePointRange{From: rune(8263), To: rune(8273)}, + &CodePointRange{From: rune(8274), To: rune(8274)}, + &CodePointRange{From: rune(8275), To: rune(8275)}, + &CodePointRange{From: rune(8276), To: rune(8276)}, + &CodePointRange{From: rune(8277), To: rune(8286)}, + &CodePointRange{From: rune(8287), To: rune(8287)}, + &CodePointRange{From: rune(8288), To: rune(8292)}, + &CodePointRange{From: rune(8294), To: rune(8303)}, + &CodePointRange{From: rune(8304), To: rune(8304)}, + &CodePointRange{From: rune(8308), To: rune(8313)}, + &CodePointRange{From: rune(8314), To: rune(8316)}, + &CodePointRange{From: rune(8317), To: rune(8317)}, + &CodePointRange{From: rune(8318), To: rune(8318)}, + &CodePointRange{From: rune(8320), To: rune(8329)}, + &CodePointRange{From: rune(8330), To: rune(8332)}, + &CodePointRange{From: rune(8333), To: rune(8333)}, + &CodePointRange{From: rune(8334), To: rune(8334)}, + &CodePointRange{From: rune(8352), To: rune(8383)}, + &CodePointRange{From: rune(8448), To: rune(8449)}, + &CodePointRange{From: rune(8450), To: rune(8450)}, + &CodePointRange{From: rune(8451), To: rune(8454)}, + &CodePointRange{From: rune(8455), To: rune(8455)}, + &CodePointRange{From: rune(8456), To: rune(8457)}, + &CodePointRange{From: rune(8458), To: rune(8467)}, + &CodePointRange{From: rune(8468), To: rune(8468)}, + &CodePointRange{From: rune(8469), To: rune(8469)}, + &CodePointRange{From: rune(8470), To: rune(8471)}, + &CodePointRange{From: rune(8472), To: rune(8472)}, + &CodePointRange{From: rune(8473), To: rune(8477)}, + &CodePointRange{From: rune(8478), To: rune(8483)}, + &CodePointRange{From: rune(8484), To: rune(8484)}, + &CodePointRange{From: rune(8485), To: rune(8485)}, + &CodePointRange{From: rune(8487), To: rune(8487)}, + &CodePointRange{From: rune(8488), To: rune(8488)}, + &CodePointRange{From: rune(8489), To: rune(8489)}, + &CodePointRange{From: rune(8492), To: rune(8493)}, + &CodePointRange{From: rune(8494), To: rune(8494)}, + &CodePointRange{From: rune(8495), To: rune(8497)}, + &CodePointRange{From: rune(8499), To: rune(8500)}, + &CodePointRange{From: rune(8501), To: rune(8504)}, + &CodePointRange{From: rune(8505), To: rune(8505)}, + &CodePointRange{From: rune(8506), To: rune(8507)}, + &CodePointRange{From: rune(8508), To: rune(8511)}, + &CodePointRange{From: rune(8512), To: rune(8516)}, + &CodePointRange{From: rune(8517), To: rune(8521)}, + &CodePointRange{From: rune(8522), To: rune(8522)}, + &CodePointRange{From: rune(8523), To: rune(8523)}, + &CodePointRange{From: rune(8524), To: rune(8525)}, + &CodePointRange{From: rune(8527), To: rune(8527)}, + &CodePointRange{From: rune(8528), To: rune(8543)}, + &CodePointRange{From: rune(8585), To: rune(8585)}, + &CodePointRange{From: rune(8586), To: rune(8587)}, + &CodePointRange{From: rune(8592), To: rune(8596)}, + &CodePointRange{From: rune(8597), To: rune(8601)}, + &CodePointRange{From: rune(8602), To: rune(8603)}, + &CodePointRange{From: rune(8604), To: rune(8607)}, + &CodePointRange{From: rune(8608), To: rune(8608)}, + &CodePointRange{From: rune(8609), To: rune(8610)}, + &CodePointRange{From: rune(8611), To: rune(8611)}, + &CodePointRange{From: rune(8612), To: rune(8613)}, + &CodePointRange{From: rune(8614), To: rune(8614)}, + &CodePointRange{From: rune(8615), To: rune(8621)}, + &CodePointRange{From: rune(8622), To: rune(8622)}, + &CodePointRange{From: rune(8623), To: rune(8653)}, + &CodePointRange{From: rune(8654), To: rune(8655)}, + &CodePointRange{From: rune(8656), To: rune(8657)}, + &CodePointRange{From: rune(8658), To: rune(8658)}, + &CodePointRange{From: rune(8659), To: rune(8659)}, + &CodePointRange{From: rune(8660), To: rune(8660)}, + &CodePointRange{From: rune(8661), To: rune(8691)}, + &CodePointRange{From: rune(8692), To: rune(8959)}, + &CodePointRange{From: rune(8960), To: rune(8967)}, + &CodePointRange{From: rune(8968), To: rune(8968)}, + &CodePointRange{From: rune(8969), To: rune(8969)}, + &CodePointRange{From: rune(8970), To: rune(8970)}, + &CodePointRange{From: rune(8971), To: rune(8971)}, + &CodePointRange{From: rune(8972), To: rune(8991)}, + &CodePointRange{From: rune(8992), To: rune(8993)}, + &CodePointRange{From: rune(8994), To: rune(9000)}, + &CodePointRange{From: rune(9001), To: rune(9001)}, + &CodePointRange{From: rune(9002), To: rune(9002)}, + &CodePointRange{From: rune(9003), To: rune(9083)}, + &CodePointRange{From: rune(9084), To: rune(9084)}, + &CodePointRange{From: rune(9085), To: rune(9114)}, + &CodePointRange{From: rune(9115), To: rune(9139)}, + &CodePointRange{From: rune(9140), To: rune(9179)}, + &CodePointRange{From: rune(9180), To: rune(9185)}, + &CodePointRange{From: rune(9186), To: rune(9254)}, + &CodePointRange{From: rune(9280), To: rune(9290)}, + &CodePointRange{From: rune(9312), To: rune(9371)}, + &CodePointRange{From: rune(9372), To: rune(9449)}, + &CodePointRange{From: rune(9450), To: rune(9471)}, + &CodePointRange{From: rune(9472), To: rune(9654)}, + &CodePointRange{From: rune(9655), To: rune(9655)}, + &CodePointRange{From: rune(9656), To: rune(9664)}, + &CodePointRange{From: rune(9665), To: rune(9665)}, + &CodePointRange{From: rune(9666), To: rune(9719)}, + &CodePointRange{From: rune(9720), To: rune(9727)}, + &CodePointRange{From: rune(9728), To: rune(9838)}, + &CodePointRange{From: rune(9839), To: rune(9839)}, + &CodePointRange{From: rune(9840), To: rune(10087)}, + &CodePointRange{From: rune(10088), To: rune(10088)}, + &CodePointRange{From: rune(10089), To: rune(10089)}, + &CodePointRange{From: rune(10090), To: rune(10090)}, + &CodePointRange{From: rune(10091), To: rune(10091)}, + &CodePointRange{From: rune(10092), To: rune(10092)}, + &CodePointRange{From: rune(10093), To: rune(10093)}, + &CodePointRange{From: rune(10094), To: rune(10094)}, + &CodePointRange{From: rune(10095), To: rune(10095)}, + &CodePointRange{From: rune(10096), To: rune(10096)}, + &CodePointRange{From: rune(10097), To: rune(10097)}, + &CodePointRange{From: rune(10098), To: rune(10098)}, + &CodePointRange{From: rune(10099), To: rune(10099)}, + &CodePointRange{From: rune(10100), To: rune(10100)}, + &CodePointRange{From: rune(10101), To: rune(10101)}, + &CodePointRange{From: rune(10102), To: rune(10131)}, + &CodePointRange{From: rune(10132), To: rune(10175)}, + &CodePointRange{From: rune(10176), To: rune(10180)}, + &CodePointRange{From: rune(10181), To: rune(10181)}, + &CodePointRange{From: rune(10182), To: rune(10182)}, + &CodePointRange{From: rune(10183), To: rune(10213)}, + &CodePointRange{From: rune(10214), To: rune(10214)}, + &CodePointRange{From: rune(10215), To: rune(10215)}, + &CodePointRange{From: rune(10216), To: rune(10216)}, + &CodePointRange{From: rune(10217), To: rune(10217)}, + &CodePointRange{From: rune(10218), To: rune(10218)}, + &CodePointRange{From: rune(10219), To: rune(10219)}, + &CodePointRange{From: rune(10220), To: rune(10220)}, + &CodePointRange{From: rune(10221), To: rune(10221)}, + &CodePointRange{From: rune(10222), To: rune(10222)}, + &CodePointRange{From: rune(10223), To: rune(10223)}, + &CodePointRange{From: rune(10224), To: rune(10239)}, + &CodePointRange{From: rune(10496), To: rune(10626)}, + &CodePointRange{From: rune(10627), To: rune(10627)}, + &CodePointRange{From: rune(10628), To: rune(10628)}, + &CodePointRange{From: rune(10629), To: rune(10629)}, + &CodePointRange{From: rune(10630), To: rune(10630)}, + &CodePointRange{From: rune(10631), To: rune(10631)}, + &CodePointRange{From: rune(10632), To: rune(10632)}, + &CodePointRange{From: rune(10633), To: rune(10633)}, + &CodePointRange{From: rune(10634), To: rune(10634)}, + &CodePointRange{From: rune(10635), To: rune(10635)}, + &CodePointRange{From: rune(10636), To: rune(10636)}, + &CodePointRange{From: rune(10637), To: rune(10637)}, + &CodePointRange{From: rune(10638), To: rune(10638)}, + &CodePointRange{From: rune(10639), To: rune(10639)}, + &CodePointRange{From: rune(10640), To: rune(10640)}, + &CodePointRange{From: rune(10641), To: rune(10641)}, + &CodePointRange{From: rune(10642), To: rune(10642)}, + &CodePointRange{From: rune(10643), To: rune(10643)}, + &CodePointRange{From: rune(10644), To: rune(10644)}, + &CodePointRange{From: rune(10645), To: rune(10645)}, + &CodePointRange{From: rune(10646), To: rune(10646)}, + &CodePointRange{From: rune(10647), To: rune(10647)}, + &CodePointRange{From: rune(10648), To: rune(10648)}, + &CodePointRange{From: rune(10649), To: rune(10711)}, + &CodePointRange{From: rune(10712), To: rune(10712)}, + &CodePointRange{From: rune(10713), To: rune(10713)}, + &CodePointRange{From: rune(10714), To: rune(10714)}, + &CodePointRange{From: rune(10715), To: rune(10715)}, + &CodePointRange{From: rune(10716), To: rune(10747)}, + &CodePointRange{From: rune(10748), To: rune(10748)}, + &CodePointRange{From: rune(10749), To: rune(10749)}, + &CodePointRange{From: rune(10750), To: rune(11007)}, + &CodePointRange{From: rune(11008), To: rune(11055)}, + &CodePointRange{From: rune(11056), To: rune(11076)}, + &CodePointRange{From: rune(11077), To: rune(11078)}, + &CodePointRange{From: rune(11079), To: rune(11084)}, + &CodePointRange{From: rune(11085), To: rune(11123)}, + &CodePointRange{From: rune(11126), To: rune(11157)}, + &CodePointRange{From: rune(11159), To: rune(11263)}, + &CodePointRange{From: rune(11776), To: rune(11777)}, + &CodePointRange{From: rune(11778), To: rune(11778)}, + &CodePointRange{From: rune(11779), To: rune(11779)}, + &CodePointRange{From: rune(11780), To: rune(11780)}, + &CodePointRange{From: rune(11781), To: rune(11781)}, + &CodePointRange{From: rune(11782), To: rune(11784)}, + &CodePointRange{From: rune(11785), To: rune(11785)}, + &CodePointRange{From: rune(11786), To: rune(11786)}, + &CodePointRange{From: rune(11787), To: rune(11787)}, + &CodePointRange{From: rune(11788), To: rune(11788)}, + &CodePointRange{From: rune(11789), To: rune(11789)}, + &CodePointRange{From: rune(11790), To: rune(11798)}, + &CodePointRange{From: rune(11799), To: rune(11799)}, + &CodePointRange{From: rune(11800), To: rune(11801)}, + &CodePointRange{From: rune(11802), To: rune(11802)}, + &CodePointRange{From: rune(11803), To: rune(11803)}, + &CodePointRange{From: rune(11804), To: rune(11804)}, + &CodePointRange{From: rune(11805), To: rune(11805)}, + &CodePointRange{From: rune(11806), To: rune(11807)}, + &CodePointRange{From: rune(11808), To: rune(11808)}, + &CodePointRange{From: rune(11809), To: rune(11809)}, + &CodePointRange{From: rune(11810), To: rune(11810)}, + &CodePointRange{From: rune(11811), To: rune(11811)}, + &CodePointRange{From: rune(11812), To: rune(11812)}, + &CodePointRange{From: rune(11813), To: rune(11813)}, + &CodePointRange{From: rune(11814), To: rune(11814)}, + &CodePointRange{From: rune(11815), To: rune(11815)}, + &CodePointRange{From: rune(11816), To: rune(11816)}, + &CodePointRange{From: rune(11817), To: rune(11817)}, + &CodePointRange{From: rune(11818), To: rune(11822)}, + &CodePointRange{From: rune(11823), To: rune(11823)}, + &CodePointRange{From: rune(11824), To: rune(11833)}, + &CodePointRange{From: rune(11834), To: rune(11835)}, + &CodePointRange{From: rune(11836), To: rune(11839)}, + &CodePointRange{From: rune(11840), To: rune(11840)}, + &CodePointRange{From: rune(11841), To: rune(11841)}, + &CodePointRange{From: rune(11842), To: rune(11842)}, + &CodePointRange{From: rune(11843), To: rune(11855)}, + &CodePointRange{From: rune(11856), To: rune(11857)}, + &CodePointRange{From: rune(11858), To: rune(11858)}, + &CodePointRange{From: rune(12272), To: rune(12283)}, + &CodePointRange{From: rune(12288), To: rune(12288)}, + &CodePointRange{From: rune(12289), To: rune(12291)}, + &CodePointRange{From: rune(12292), To: rune(12292)}, + &CodePointRange{From: rune(12294), To: rune(12294)}, + &CodePointRange{From: rune(12296), To: rune(12296)}, + &CodePointRange{From: rune(12297), To: rune(12297)}, + &CodePointRange{From: rune(12298), To: rune(12298)}, + &CodePointRange{From: rune(12299), To: rune(12299)}, + &CodePointRange{From: rune(12300), To: rune(12300)}, + &CodePointRange{From: rune(12301), To: rune(12301)}, + &CodePointRange{From: rune(12302), To: rune(12302)}, + &CodePointRange{From: rune(12303), To: rune(12303)}, + &CodePointRange{From: rune(12304), To: rune(12304)}, + &CodePointRange{From: rune(12305), To: rune(12305)}, + &CodePointRange{From: rune(12306), To: rune(12307)}, + &CodePointRange{From: rune(12308), To: rune(12308)}, + &CodePointRange{From: rune(12309), To: rune(12309)}, + &CodePointRange{From: rune(12310), To: rune(12310)}, + &CodePointRange{From: rune(12311), To: rune(12311)}, + &CodePointRange{From: rune(12312), To: rune(12312)}, + &CodePointRange{From: rune(12313), To: rune(12313)}, + &CodePointRange{From: rune(12314), To: rune(12314)}, + &CodePointRange{From: rune(12315), To: rune(12315)}, + &CodePointRange{From: rune(12316), To: rune(12316)}, + &CodePointRange{From: rune(12317), To: rune(12317)}, + &CodePointRange{From: rune(12318), To: rune(12319)}, + &CodePointRange{From: rune(12320), To: rune(12320)}, + &CodePointRange{From: rune(12336), To: rune(12336)}, + &CodePointRange{From: rune(12337), To: rune(12341)}, + &CodePointRange{From: rune(12342), To: rune(12343)}, + &CodePointRange{From: rune(12348), To: rune(12348)}, + &CodePointRange{From: rune(12349), To: rune(12349)}, + &CodePointRange{From: rune(12350), To: rune(12351)}, + &CodePointRange{From: rune(12443), To: rune(12444)}, + &CodePointRange{From: rune(12448), To: rune(12448)}, + &CodePointRange{From: rune(12539), To: rune(12539)}, + &CodePointRange{From: rune(12540), To: rune(12540)}, + &CodePointRange{From: rune(12688), To: rune(12689)}, + &CodePointRange{From: rune(12690), To: rune(12693)}, + &CodePointRange{From: rune(12694), To: rune(12703)}, + &CodePointRange{From: rune(12736), To: rune(12771)}, + &CodePointRange{From: rune(12832), To: rune(12841)}, + &CodePointRange{From: rune(12842), To: rune(12871)}, + &CodePointRange{From: rune(12872), To: rune(12879)}, + &CodePointRange{From: rune(12880), To: rune(12880)}, + &CodePointRange{From: rune(12881), To: rune(12895)}, + &CodePointRange{From: rune(12927), To: rune(12927)}, + &CodePointRange{From: rune(12928), To: rune(12937)}, + &CodePointRange{From: rune(12938), To: rune(12976)}, + &CodePointRange{From: rune(12977), To: rune(12991)}, + &CodePointRange{From: rune(12992), To: rune(13007)}, + &CodePointRange{From: rune(13055), To: rune(13055)}, + &CodePointRange{From: rune(13144), To: rune(13311)}, + &CodePointRange{From: rune(19904), To: rune(19967)}, + &CodePointRange{From: rune(42752), To: rune(42774)}, + &CodePointRange{From: rune(42775), To: rune(42783)}, + &CodePointRange{From: rune(42784), To: rune(42785)}, + &CodePointRange{From: rune(42888), To: rune(42888)}, + &CodePointRange{From: rune(42889), To: rune(42890)}, + &CodePointRange{From: rune(43056), To: rune(43061)}, + &CodePointRange{From: rune(43062), To: rune(43063)}, + &CodePointRange{From: rune(43064), To: rune(43064)}, + &CodePointRange{From: rune(43065), To: rune(43065)}, + &CodePointRange{From: rune(43310), To: rune(43310)}, + &CodePointRange{From: rune(43471), To: rune(43471)}, + &CodePointRange{From: rune(43867), To: rune(43867)}, + &CodePointRange{From: rune(43882), To: rune(43883)}, + &CodePointRange{From: rune(64830), To: rune(64830)}, + &CodePointRange{From: rune(64831), To: rune(64831)}, + &CodePointRange{From: rune(65040), To: rune(65046)}, + &CodePointRange{From: rune(65047), To: rune(65047)}, + &CodePointRange{From: rune(65048), To: rune(65048)}, + &CodePointRange{From: rune(65049), To: rune(65049)}, + &CodePointRange{From: rune(65072), To: rune(65072)}, + &CodePointRange{From: rune(65073), To: rune(65074)}, + &CodePointRange{From: rune(65075), To: rune(65076)}, + &CodePointRange{From: rune(65077), To: rune(65077)}, + &CodePointRange{From: rune(65078), To: rune(65078)}, + &CodePointRange{From: rune(65079), To: rune(65079)}, + &CodePointRange{From: rune(65080), To: rune(65080)}, + &CodePointRange{From: rune(65081), To: rune(65081)}, + &CodePointRange{From: rune(65082), To: rune(65082)}, + &CodePointRange{From: rune(65083), To: rune(65083)}, + &CodePointRange{From: rune(65084), To: rune(65084)}, + &CodePointRange{From: rune(65085), To: rune(65085)}, + &CodePointRange{From: rune(65086), To: rune(65086)}, + &CodePointRange{From: rune(65087), To: rune(65087)}, + &CodePointRange{From: rune(65088), To: rune(65088)}, + &CodePointRange{From: rune(65089), To: rune(65089)}, + &CodePointRange{From: rune(65090), To: rune(65090)}, + &CodePointRange{From: rune(65091), To: rune(65091)}, + &CodePointRange{From: rune(65092), To: rune(65092)}, + &CodePointRange{From: rune(65093), To: rune(65094)}, + &CodePointRange{From: rune(65095), To: rune(65095)}, + &CodePointRange{From: rune(65096), To: rune(65096)}, + &CodePointRange{From: rune(65097), To: rune(65100)}, + &CodePointRange{From: rune(65101), To: rune(65103)}, + &CodePointRange{From: rune(65104), To: rune(65106)}, + &CodePointRange{From: rune(65108), To: rune(65111)}, + &CodePointRange{From: rune(65112), To: rune(65112)}, + &CodePointRange{From: rune(65113), To: rune(65113)}, + &CodePointRange{From: rune(65114), To: rune(65114)}, + &CodePointRange{From: rune(65115), To: rune(65115)}, + &CodePointRange{From: rune(65116), To: rune(65116)}, + &CodePointRange{From: rune(65117), To: rune(65117)}, + &CodePointRange{From: rune(65118), To: rune(65118)}, + &CodePointRange{From: rune(65119), To: rune(65121)}, + &CodePointRange{From: rune(65122), To: rune(65122)}, + &CodePointRange{From: rune(65123), To: rune(65123)}, + &CodePointRange{From: rune(65124), To: rune(65126)}, + &CodePointRange{From: rune(65128), To: rune(65128)}, + &CodePointRange{From: rune(65129), To: rune(65129)}, + &CodePointRange{From: rune(65130), To: rune(65131)}, + &CodePointRange{From: rune(65279), To: rune(65279)}, + &CodePointRange{From: rune(65281), To: rune(65283)}, + &CodePointRange{From: rune(65284), To: rune(65284)}, + &CodePointRange{From: rune(65285), To: rune(65287)}, + &CodePointRange{From: rune(65288), To: rune(65288)}, + &CodePointRange{From: rune(65289), To: rune(65289)}, + &CodePointRange{From: rune(65290), To: rune(65290)}, + &CodePointRange{From: rune(65291), To: rune(65291)}, + &CodePointRange{From: rune(65292), To: rune(65292)}, + &CodePointRange{From: rune(65293), To: rune(65293)}, + &CodePointRange{From: rune(65294), To: rune(65295)}, + &CodePointRange{From: rune(65296), To: rune(65305)}, + &CodePointRange{From: rune(65306), To: rune(65307)}, + &CodePointRange{From: rune(65308), To: rune(65310)}, + &CodePointRange{From: rune(65311), To: rune(65312)}, + &CodePointRange{From: rune(65339), To: rune(65339)}, + &CodePointRange{From: rune(65340), To: rune(65340)}, + &CodePointRange{From: rune(65341), To: rune(65341)}, + &CodePointRange{From: rune(65342), To: rune(65342)}, + &CodePointRange{From: rune(65343), To: rune(65343)}, + &CodePointRange{From: rune(65344), To: rune(65344)}, + &CodePointRange{From: rune(65371), To: rune(65371)}, + &CodePointRange{From: rune(65372), To: rune(65372)}, + &CodePointRange{From: rune(65373), To: rune(65373)}, + &CodePointRange{From: rune(65374), To: rune(65374)}, + &CodePointRange{From: rune(65375), To: rune(65375)}, + &CodePointRange{From: rune(65376), To: rune(65376)}, + &CodePointRange{From: rune(65377), To: rune(65377)}, + &CodePointRange{From: rune(65378), To: rune(65378)}, + &CodePointRange{From: rune(65379), To: rune(65379)}, + &CodePointRange{From: rune(65380), To: rune(65381)}, + &CodePointRange{From: rune(65392), To: rune(65392)}, + &CodePointRange{From: rune(65438), To: rune(65439)}, + &CodePointRange{From: rune(65504), To: rune(65505)}, + &CodePointRange{From: rune(65506), To: rune(65506)}, + &CodePointRange{From: rune(65507), To: rune(65507)}, + &CodePointRange{From: rune(65508), To: rune(65508)}, + &CodePointRange{From: rune(65509), To: rune(65510)}, + &CodePointRange{From: rune(65512), To: rune(65512)}, + &CodePointRange{From: rune(65513), To: rune(65516)}, + &CodePointRange{From: rune(65517), To: rune(65518)}, + &CodePointRange{From: rune(65529), To: rune(65531)}, + &CodePointRange{From: rune(65532), To: rune(65533)}, + &CodePointRange{From: rune(65792), To: rune(65794)}, + &CodePointRange{From: rune(65799), To: rune(65843)}, + &CodePointRange{From: rune(65847), To: rune(65855)}, + &CodePointRange{From: rune(65936), To: rune(65948)}, + &CodePointRange{From: rune(66000), To: rune(66044)}, + &CodePointRange{From: rune(66273), To: rune(66299)}, + &CodePointRange{From: rune(94178), To: rune(94178)}, + &CodePointRange{From: rune(94179), To: rune(94179)}, + &CodePointRange{From: rune(113824), To: rune(113827)}, + &CodePointRange{From: rune(118784), To: rune(119029)}, + &CodePointRange{From: rune(119040), To: rune(119078)}, + &CodePointRange{From: rune(119081), To: rune(119140)}, + &CodePointRange{From: rune(119141), To: rune(119142)}, + &CodePointRange{From: rune(119146), To: rune(119148)}, + &CodePointRange{From: rune(119149), To: rune(119154)}, + &CodePointRange{From: rune(119155), To: rune(119162)}, + &CodePointRange{From: rune(119171), To: rune(119172)}, + &CodePointRange{From: rune(119180), To: rune(119209)}, + &CodePointRange{From: rune(119214), To: rune(119272)}, + &CodePointRange{From: rune(119520), To: rune(119539)}, + &CodePointRange{From: rune(119552), To: rune(119638)}, + &CodePointRange{From: rune(119648), To: rune(119672)}, + &CodePointRange{From: rune(119808), To: rune(119892)}, + &CodePointRange{From: rune(119894), To: rune(119964)}, + &CodePointRange{From: rune(119966), To: rune(119967)}, + &CodePointRange{From: rune(119970), To: rune(119970)}, + &CodePointRange{From: rune(119973), To: rune(119974)}, + &CodePointRange{From: rune(119977), To: rune(119980)}, + &CodePointRange{From: rune(119982), To: rune(119993)}, + &CodePointRange{From: rune(119995), To: rune(119995)}, + &CodePointRange{From: rune(119997), To: rune(120003)}, + &CodePointRange{From: rune(120005), To: rune(120069)}, + &CodePointRange{From: rune(120071), To: rune(120074)}, + &CodePointRange{From: rune(120077), To: rune(120084)}, + &CodePointRange{From: rune(120086), To: rune(120092)}, + &CodePointRange{From: rune(120094), To: rune(120121)}, + &CodePointRange{From: rune(120123), To: rune(120126)}, + &CodePointRange{From: rune(120128), To: rune(120132)}, + &CodePointRange{From: rune(120134), To: rune(120134)}, + &CodePointRange{From: rune(120138), To: rune(120144)}, + &CodePointRange{From: rune(120146), To: rune(120485)}, + &CodePointRange{From: rune(120488), To: rune(120512)}, + &CodePointRange{From: rune(120513), To: rune(120513)}, + &CodePointRange{From: rune(120514), To: rune(120538)}, + &CodePointRange{From: rune(120539), To: rune(120539)}, + &CodePointRange{From: rune(120540), To: rune(120570)}, + &CodePointRange{From: rune(120571), To: rune(120571)}, + &CodePointRange{From: rune(120572), To: rune(120596)}, + &CodePointRange{From: rune(120597), To: rune(120597)}, + &CodePointRange{From: rune(120598), To: rune(120628)}, + &CodePointRange{From: rune(120629), To: rune(120629)}, + &CodePointRange{From: rune(120630), To: rune(120654)}, + &CodePointRange{From: rune(120655), To: rune(120655)}, + &CodePointRange{From: rune(120656), To: rune(120686)}, + &CodePointRange{From: rune(120687), To: rune(120687)}, + &CodePointRange{From: rune(120688), To: rune(120712)}, + &CodePointRange{From: rune(120713), To: rune(120713)}, + &CodePointRange{From: rune(120714), To: rune(120744)}, + &CodePointRange{From: rune(120745), To: rune(120745)}, + &CodePointRange{From: rune(120746), To: rune(120770)}, + &CodePointRange{From: rune(120771), To: rune(120771)}, + &CodePointRange{From: rune(120772), To: rune(120779)}, + &CodePointRange{From: rune(120782), To: rune(120831)}, + &CodePointRange{From: rune(126065), To: rune(126123)}, + &CodePointRange{From: rune(126124), To: rune(126124)}, + &CodePointRange{From: rune(126125), To: rune(126127)}, + &CodePointRange{From: rune(126128), To: rune(126128)}, + &CodePointRange{From: rune(126129), To: rune(126132)}, + &CodePointRange{From: rune(126209), To: rune(126253)}, + &CodePointRange{From: rune(126254), To: rune(126254)}, + &CodePointRange{From: rune(126255), To: rune(126269)}, + &CodePointRange{From: rune(126976), To: rune(127019)}, + &CodePointRange{From: rune(127024), To: rune(127123)}, + &CodePointRange{From: rune(127136), To: rune(127150)}, + &CodePointRange{From: rune(127153), To: rune(127167)}, + &CodePointRange{From: rune(127169), To: rune(127183)}, + &CodePointRange{From: rune(127185), To: rune(127221)}, + &CodePointRange{From: rune(127232), To: rune(127244)}, + &CodePointRange{From: rune(127245), To: rune(127405)}, + &CodePointRange{From: rune(127462), To: rune(127487)}, + &CodePointRange{From: rune(127489), To: rune(127490)}, + &CodePointRange{From: rune(127504), To: rune(127547)}, + &CodePointRange{From: rune(127552), To: rune(127560)}, + &CodePointRange{From: rune(127568), To: rune(127569)}, + &CodePointRange{From: rune(127584), To: rune(127589)}, + &CodePointRange{From: rune(127744), To: rune(127994)}, + &CodePointRange{From: rune(127995), To: rune(127999)}, + &CodePointRange{From: rune(128000), To: rune(128727)}, + &CodePointRange{From: rune(128736), To: rune(128748)}, + &CodePointRange{From: rune(128752), To: rune(128764)}, + &CodePointRange{From: rune(128768), To: rune(128883)}, + &CodePointRange{From: rune(128896), To: rune(128984)}, + &CodePointRange{From: rune(128992), To: rune(129003)}, + &CodePointRange{From: rune(129024), To: rune(129035)}, + &CodePointRange{From: rune(129040), To: rune(129095)}, + &CodePointRange{From: rune(129104), To: rune(129113)}, + &CodePointRange{From: rune(129120), To: rune(129159)}, + &CodePointRange{From: rune(129168), To: rune(129197)}, + &CodePointRange{From: rune(129200), To: rune(129201)}, + &CodePointRange{From: rune(129280), To: rune(129400)}, + &CodePointRange{From: rune(129402), To: rune(129483)}, + &CodePointRange{From: rune(129485), To: rune(129619)}, + &CodePointRange{From: rune(129632), To: rune(129645)}, + &CodePointRange{From: rune(129648), To: rune(129652)}, + &CodePointRange{From: rune(129656), To: rune(129658)}, + &CodePointRange{From: rune(129664), To: rune(129670)}, + &CodePointRange{From: rune(129680), To: rune(129704)}, + &CodePointRange{From: rune(129712), To: rune(129718)}, + &CodePointRange{From: rune(129728), To: rune(129730)}, + &CodePointRange{From: rune(129744), To: rune(129750)}, + &CodePointRange{From: rune(129792), To: rune(129938)}, + &CodePointRange{From: rune(129940), To: rune(129994)}, + &CodePointRange{From: rune(130032), To: rune(130041)}, + &CodePointRange{From: rune(917505), To: rune(917505)}, + &CodePointRange{From: rune(917536), To: rune(917631)}, + }, +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropList.txt +var otherAlphabeticCodePoints = []*CodePointRange{ + &CodePointRange{From: rune(837), To: rune(837)}, + &CodePointRange{From: rune(1456), To: rune(1469)}, + &CodePointRange{From: rune(1471), To: rune(1471)}, + &CodePointRange{From: rune(1473), To: rune(1474)}, + &CodePointRange{From: rune(1476), To: rune(1477)}, + &CodePointRange{From: rune(1479), To: rune(1479)}, + &CodePointRange{From: rune(1552), To: rune(1562)}, + &CodePointRange{From: rune(1611), To: rune(1623)}, + &CodePointRange{From: rune(1625), To: rune(1631)}, + &CodePointRange{From: rune(1648), To: rune(1648)}, + &CodePointRange{From: rune(1750), To: rune(1756)}, + &CodePointRange{From: rune(1761), To: rune(1764)}, + &CodePointRange{From: rune(1767), To: rune(1768)}, + &CodePointRange{From: rune(1773), To: rune(1773)}, + &CodePointRange{From: rune(1809), To: rune(1809)}, + &CodePointRange{From: rune(1840), To: rune(1855)}, + &CodePointRange{From: rune(1958), To: rune(1968)}, + &CodePointRange{From: rune(2070), To: rune(2071)}, + &CodePointRange{From: rune(2075), To: rune(2083)}, + &CodePointRange{From: rune(2085), To: rune(2087)}, + &CodePointRange{From: rune(2089), To: rune(2092)}, + &CodePointRange{From: rune(2260), To: rune(2271)}, + &CodePointRange{From: rune(2275), To: rune(2281)}, + &CodePointRange{From: rune(2288), To: rune(2306)}, + &CodePointRange{From: rune(2307), To: rune(2307)}, + &CodePointRange{From: rune(2362), To: rune(2362)}, + &CodePointRange{From: rune(2363), To: rune(2363)}, + &CodePointRange{From: rune(2366), To: rune(2368)}, + &CodePointRange{From: rune(2369), To: rune(2376)}, + &CodePointRange{From: rune(2377), To: rune(2380)}, + &CodePointRange{From: rune(2382), To: rune(2383)}, + &CodePointRange{From: rune(2389), To: rune(2391)}, + &CodePointRange{From: rune(2402), To: rune(2403)}, + &CodePointRange{From: rune(2433), To: rune(2433)}, + &CodePointRange{From: rune(2434), To: rune(2435)}, + &CodePointRange{From: rune(2494), To: rune(2496)}, + &CodePointRange{From: rune(2497), To: rune(2500)}, + &CodePointRange{From: rune(2503), To: rune(2504)}, + &CodePointRange{From: rune(2507), To: rune(2508)}, + &CodePointRange{From: rune(2519), To: rune(2519)}, + &CodePointRange{From: rune(2530), To: rune(2531)}, + &CodePointRange{From: rune(2561), To: rune(2562)}, + &CodePointRange{From: rune(2563), To: rune(2563)}, + &CodePointRange{From: rune(2622), To: rune(2624)}, + &CodePointRange{From: rune(2625), To: rune(2626)}, + &CodePointRange{From: rune(2631), To: rune(2632)}, + &CodePointRange{From: rune(2635), To: rune(2636)}, + &CodePointRange{From: rune(2641), To: rune(2641)}, + &CodePointRange{From: rune(2672), To: rune(2673)}, + &CodePointRange{From: rune(2677), To: rune(2677)}, + &CodePointRange{From: rune(2689), To: rune(2690)}, + &CodePointRange{From: rune(2691), To: rune(2691)}, + &CodePointRange{From: rune(2750), To: rune(2752)}, + &CodePointRange{From: rune(2753), To: rune(2757)}, + &CodePointRange{From: rune(2759), To: rune(2760)}, + &CodePointRange{From: rune(2761), To: rune(2761)}, + &CodePointRange{From: rune(2763), To: rune(2764)}, + &CodePointRange{From: rune(2786), To: rune(2787)}, + &CodePointRange{From: rune(2810), To: rune(2812)}, + &CodePointRange{From: rune(2817), To: rune(2817)}, + &CodePointRange{From: rune(2818), To: rune(2819)}, + &CodePointRange{From: rune(2878), To: rune(2878)}, + &CodePointRange{From: rune(2879), To: rune(2879)}, + &CodePointRange{From: rune(2880), To: rune(2880)}, + &CodePointRange{From: rune(2881), To: rune(2884)}, + &CodePointRange{From: rune(2887), To: rune(2888)}, + &CodePointRange{From: rune(2891), To: rune(2892)}, + &CodePointRange{From: rune(2902), To: rune(2902)}, + &CodePointRange{From: rune(2903), To: rune(2903)}, + &CodePointRange{From: rune(2914), To: rune(2915)}, + &CodePointRange{From: rune(2946), To: rune(2946)}, + &CodePointRange{From: rune(3006), To: rune(3007)}, + &CodePointRange{From: rune(3008), To: rune(3008)}, + &CodePointRange{From: rune(3009), To: rune(3010)}, + &CodePointRange{From: rune(3014), To: rune(3016)}, + &CodePointRange{From: rune(3018), To: rune(3020)}, + &CodePointRange{From: rune(3031), To: rune(3031)}, + &CodePointRange{From: rune(3072), To: rune(3072)}, + &CodePointRange{From: rune(3073), To: rune(3075)}, + &CodePointRange{From: rune(3134), To: rune(3136)}, + &CodePointRange{From: rune(3137), To: rune(3140)}, + &CodePointRange{From: rune(3142), To: rune(3144)}, + &CodePointRange{From: rune(3146), To: rune(3148)}, + &CodePointRange{From: rune(3157), To: rune(3158)}, + &CodePointRange{From: rune(3170), To: rune(3171)}, + &CodePointRange{From: rune(3201), To: rune(3201)}, + &CodePointRange{From: rune(3202), To: rune(3203)}, + &CodePointRange{From: rune(3262), To: rune(3262)}, + &CodePointRange{From: rune(3263), To: rune(3263)}, + &CodePointRange{From: rune(3264), To: rune(3268)}, + &CodePointRange{From: rune(3270), To: rune(3270)}, + &CodePointRange{From: rune(3271), To: rune(3272)}, + &CodePointRange{From: rune(3274), To: rune(3275)}, + &CodePointRange{From: rune(3276), To: rune(3276)}, + &CodePointRange{From: rune(3285), To: rune(3286)}, + &CodePointRange{From: rune(3298), To: rune(3299)}, + &CodePointRange{From: rune(3328), To: rune(3329)}, + &CodePointRange{From: rune(3330), To: rune(3331)}, + &CodePointRange{From: rune(3390), To: rune(3392)}, + &CodePointRange{From: rune(3393), To: rune(3396)}, + &CodePointRange{From: rune(3398), To: rune(3400)}, + &CodePointRange{From: rune(3402), To: rune(3404)}, + &CodePointRange{From: rune(3415), To: rune(3415)}, + &CodePointRange{From: rune(3426), To: rune(3427)}, + &CodePointRange{From: rune(3457), To: rune(3457)}, + &CodePointRange{From: rune(3458), To: rune(3459)}, + &CodePointRange{From: rune(3535), To: rune(3537)}, + &CodePointRange{From: rune(3538), To: rune(3540)}, + &CodePointRange{From: rune(3542), To: rune(3542)}, + &CodePointRange{From: rune(3544), To: rune(3551)}, + &CodePointRange{From: rune(3570), To: rune(3571)}, + &CodePointRange{From: rune(3633), To: rune(3633)}, + &CodePointRange{From: rune(3636), To: rune(3642)}, + &CodePointRange{From: rune(3661), To: rune(3661)}, + &CodePointRange{From: rune(3761), To: rune(3761)}, + &CodePointRange{From: rune(3764), To: rune(3769)}, + &CodePointRange{From: rune(3771), To: rune(3772)}, + &CodePointRange{From: rune(3789), To: rune(3789)}, + &CodePointRange{From: rune(3953), To: rune(3966)}, + &CodePointRange{From: rune(3967), To: rune(3967)}, + &CodePointRange{From: rune(3968), To: rune(3969)}, + &CodePointRange{From: rune(3981), To: rune(3991)}, + &CodePointRange{From: rune(3993), To: rune(4028)}, + &CodePointRange{From: rune(4139), To: rune(4140)}, + &CodePointRange{From: rune(4141), To: rune(4144)}, + &CodePointRange{From: rune(4145), To: rune(4145)}, + &CodePointRange{From: rune(4146), To: rune(4150)}, + &CodePointRange{From: rune(4152), To: rune(4152)}, + &CodePointRange{From: rune(4155), To: rune(4156)}, + &CodePointRange{From: rune(4157), To: rune(4158)}, + &CodePointRange{From: rune(4182), To: rune(4183)}, + &CodePointRange{From: rune(4184), To: rune(4185)}, + &CodePointRange{From: rune(4190), To: rune(4192)}, + &CodePointRange{From: rune(4194), To: rune(4196)}, + &CodePointRange{From: rune(4199), To: rune(4205)}, + &CodePointRange{From: rune(4209), To: rune(4212)}, + &CodePointRange{From: rune(4226), To: rune(4226)}, + &CodePointRange{From: rune(4227), To: rune(4228)}, + &CodePointRange{From: rune(4229), To: rune(4230)}, + &CodePointRange{From: rune(4231), To: rune(4236)}, + &CodePointRange{From: rune(4237), To: rune(4237)}, + &CodePointRange{From: rune(4239), To: rune(4239)}, + &CodePointRange{From: rune(4250), To: rune(4252)}, + &CodePointRange{From: rune(4253), To: rune(4253)}, + &CodePointRange{From: rune(5906), To: rune(5907)}, + &CodePointRange{From: rune(5938), To: rune(5939)}, + &CodePointRange{From: rune(5970), To: rune(5971)}, + &CodePointRange{From: rune(6002), To: rune(6003)}, + &CodePointRange{From: rune(6070), To: rune(6070)}, + &CodePointRange{From: rune(6071), To: rune(6077)}, + &CodePointRange{From: rune(6078), To: rune(6085)}, + &CodePointRange{From: rune(6086), To: rune(6086)}, + &CodePointRange{From: rune(6087), To: rune(6088)}, + &CodePointRange{From: rune(6277), To: rune(6278)}, + &CodePointRange{From: rune(6313), To: rune(6313)}, + &CodePointRange{From: rune(6432), To: rune(6434)}, + &CodePointRange{From: rune(6435), To: rune(6438)}, + &CodePointRange{From: rune(6439), To: rune(6440)}, + &CodePointRange{From: rune(6441), To: rune(6443)}, + &CodePointRange{From: rune(6448), To: rune(6449)}, + &CodePointRange{From: rune(6450), To: rune(6450)}, + &CodePointRange{From: rune(6451), To: rune(6456)}, + &CodePointRange{From: rune(6679), To: rune(6680)}, + &CodePointRange{From: rune(6681), To: rune(6682)}, + &CodePointRange{From: rune(6683), To: rune(6683)}, + &CodePointRange{From: rune(6741), To: rune(6741)}, + &CodePointRange{From: rune(6742), To: rune(6742)}, + &CodePointRange{From: rune(6743), To: rune(6743)}, + &CodePointRange{From: rune(6744), To: rune(6750)}, + &CodePointRange{From: rune(6753), To: rune(6753)}, + &CodePointRange{From: rune(6754), To: rune(6754)}, + &CodePointRange{From: rune(6755), To: rune(6756)}, + &CodePointRange{From: rune(6757), To: rune(6764)}, + &CodePointRange{From: rune(6765), To: rune(6770)}, + &CodePointRange{From: rune(6771), To: rune(6772)}, + &CodePointRange{From: rune(6847), To: rune(6848)}, + &CodePointRange{From: rune(6912), To: rune(6915)}, + &CodePointRange{From: rune(6916), To: rune(6916)}, + &CodePointRange{From: rune(6965), To: rune(6965)}, + &CodePointRange{From: rune(6966), To: rune(6970)}, + &CodePointRange{From: rune(6971), To: rune(6971)}, + &CodePointRange{From: rune(6972), To: rune(6972)}, + &CodePointRange{From: rune(6973), To: rune(6977)}, + &CodePointRange{From: rune(6978), To: rune(6978)}, + &CodePointRange{From: rune(6979), To: rune(6979)}, + &CodePointRange{From: rune(7040), To: rune(7041)}, + &CodePointRange{From: rune(7042), To: rune(7042)}, + &CodePointRange{From: rune(7073), To: rune(7073)}, + &CodePointRange{From: rune(7074), To: rune(7077)}, + &CodePointRange{From: rune(7078), To: rune(7079)}, + &CodePointRange{From: rune(7080), To: rune(7081)}, + &CodePointRange{From: rune(7084), To: rune(7085)}, + &CodePointRange{From: rune(7143), To: rune(7143)}, + &CodePointRange{From: rune(7144), To: rune(7145)}, + &CodePointRange{From: rune(7146), To: rune(7148)}, + &CodePointRange{From: rune(7149), To: rune(7149)}, + &CodePointRange{From: rune(7150), To: rune(7150)}, + &CodePointRange{From: rune(7151), To: rune(7153)}, + &CodePointRange{From: rune(7204), To: rune(7211)}, + &CodePointRange{From: rune(7212), To: rune(7219)}, + &CodePointRange{From: rune(7220), To: rune(7221)}, + &CodePointRange{From: rune(7222), To: rune(7222)}, + &CodePointRange{From: rune(7655), To: rune(7668)}, + &CodePointRange{From: rune(9398), To: rune(9449)}, + &CodePointRange{From: rune(11744), To: rune(11775)}, + &CodePointRange{From: rune(42612), To: rune(42619)}, + &CodePointRange{From: rune(42654), To: rune(42655)}, + &CodePointRange{From: rune(43010), To: rune(43010)}, + &CodePointRange{From: rune(43019), To: rune(43019)}, + &CodePointRange{From: rune(43043), To: rune(43044)}, + &CodePointRange{From: rune(43045), To: rune(43046)}, + &CodePointRange{From: rune(43047), To: rune(43047)}, + &CodePointRange{From: rune(43136), To: rune(43137)}, + &CodePointRange{From: rune(43188), To: rune(43203)}, + &CodePointRange{From: rune(43205), To: rune(43205)}, + &CodePointRange{From: rune(43263), To: rune(43263)}, + &CodePointRange{From: rune(43302), To: rune(43306)}, + &CodePointRange{From: rune(43335), To: rune(43345)}, + &CodePointRange{From: rune(43346), To: rune(43346)}, + &CodePointRange{From: rune(43392), To: rune(43394)}, + &CodePointRange{From: rune(43395), To: rune(43395)}, + &CodePointRange{From: rune(43444), To: rune(43445)}, + &CodePointRange{From: rune(43446), To: rune(43449)}, + &CodePointRange{From: rune(43450), To: rune(43451)}, + &CodePointRange{From: rune(43452), To: rune(43453)}, + &CodePointRange{From: rune(43454), To: rune(43455)}, + &CodePointRange{From: rune(43493), To: rune(43493)}, + &CodePointRange{From: rune(43561), To: rune(43566)}, + &CodePointRange{From: rune(43567), To: rune(43568)}, + &CodePointRange{From: rune(43569), To: rune(43570)}, + &CodePointRange{From: rune(43571), To: rune(43572)}, + &CodePointRange{From: rune(43573), To: rune(43574)}, + &CodePointRange{From: rune(43587), To: rune(43587)}, + &CodePointRange{From: rune(43596), To: rune(43596)}, + &CodePointRange{From: rune(43597), To: rune(43597)}, + &CodePointRange{From: rune(43643), To: rune(43643)}, + &CodePointRange{From: rune(43644), To: rune(43644)}, + &CodePointRange{From: rune(43645), To: rune(43645)}, + &CodePointRange{From: rune(43696), To: rune(43696)}, + &CodePointRange{From: rune(43698), To: rune(43700)}, + &CodePointRange{From: rune(43703), To: rune(43704)}, + &CodePointRange{From: rune(43710), To: rune(43710)}, + &CodePointRange{From: rune(43755), To: rune(43755)}, + &CodePointRange{From: rune(43756), To: rune(43757)}, + &CodePointRange{From: rune(43758), To: rune(43759)}, + &CodePointRange{From: rune(43765), To: rune(43765)}, + &CodePointRange{From: rune(44003), To: rune(44004)}, + &CodePointRange{From: rune(44005), To: rune(44005)}, + &CodePointRange{From: rune(44006), To: rune(44007)}, + &CodePointRange{From: rune(44008), To: rune(44008)}, + &CodePointRange{From: rune(44009), To: rune(44010)}, + &CodePointRange{From: rune(64286), To: rune(64286)}, + &CodePointRange{From: rune(66422), To: rune(66426)}, + &CodePointRange{From: rune(68097), To: rune(68099)}, + &CodePointRange{From: rune(68101), To: rune(68102)}, + &CodePointRange{From: rune(68108), To: rune(68111)}, + &CodePointRange{From: rune(68900), To: rune(68903)}, + &CodePointRange{From: rune(69291), To: rune(69292)}, + &CodePointRange{From: rune(69632), To: rune(69632)}, + &CodePointRange{From: rune(69633), To: rune(69633)}, + &CodePointRange{From: rune(69634), To: rune(69634)}, + &CodePointRange{From: rune(69688), To: rune(69701)}, + &CodePointRange{From: rune(69762), To: rune(69762)}, + &CodePointRange{From: rune(69808), To: rune(69810)}, + &CodePointRange{From: rune(69811), To: rune(69814)}, + &CodePointRange{From: rune(69815), To: rune(69816)}, + &CodePointRange{From: rune(69888), To: rune(69890)}, + &CodePointRange{From: rune(69927), To: rune(69931)}, + &CodePointRange{From: rune(69932), To: rune(69932)}, + &CodePointRange{From: rune(69933), To: rune(69938)}, + &CodePointRange{From: rune(69957), To: rune(69958)}, + &CodePointRange{From: rune(70016), To: rune(70017)}, + &CodePointRange{From: rune(70018), To: rune(70018)}, + &CodePointRange{From: rune(70067), To: rune(70069)}, + &CodePointRange{From: rune(70070), To: rune(70078)}, + &CodePointRange{From: rune(70079), To: rune(70079)}, + &CodePointRange{From: rune(70094), To: rune(70094)}, + &CodePointRange{From: rune(70095), To: rune(70095)}, + &CodePointRange{From: rune(70188), To: rune(70190)}, + &CodePointRange{From: rune(70191), To: rune(70193)}, + &CodePointRange{From: rune(70194), To: rune(70195)}, + &CodePointRange{From: rune(70196), To: rune(70196)}, + &CodePointRange{From: rune(70199), To: rune(70199)}, + &CodePointRange{From: rune(70206), To: rune(70206)}, + &CodePointRange{From: rune(70367), To: rune(70367)}, + &CodePointRange{From: rune(70368), To: rune(70370)}, + &CodePointRange{From: rune(70371), To: rune(70376)}, + &CodePointRange{From: rune(70400), To: rune(70401)}, + &CodePointRange{From: rune(70402), To: rune(70403)}, + &CodePointRange{From: rune(70462), To: rune(70463)}, + &CodePointRange{From: rune(70464), To: rune(70464)}, + &CodePointRange{From: rune(70465), To: rune(70468)}, + &CodePointRange{From: rune(70471), To: rune(70472)}, + &CodePointRange{From: rune(70475), To: rune(70476)}, + &CodePointRange{From: rune(70487), To: rune(70487)}, + &CodePointRange{From: rune(70498), To: rune(70499)}, + &CodePointRange{From: rune(70709), To: rune(70711)}, + &CodePointRange{From: rune(70712), To: rune(70719)}, + &CodePointRange{From: rune(70720), To: rune(70721)}, + &CodePointRange{From: rune(70723), To: rune(70724)}, + &CodePointRange{From: rune(70725), To: rune(70725)}, + &CodePointRange{From: rune(70832), To: rune(70834)}, + &CodePointRange{From: rune(70835), To: rune(70840)}, + &CodePointRange{From: rune(70841), To: rune(70841)}, + &CodePointRange{From: rune(70842), To: rune(70842)}, + &CodePointRange{From: rune(70843), To: rune(70846)}, + &CodePointRange{From: rune(70847), To: rune(70848)}, + &CodePointRange{From: rune(70849), To: rune(70849)}, + &CodePointRange{From: rune(71087), To: rune(71089)}, + &CodePointRange{From: rune(71090), To: rune(71093)}, + &CodePointRange{From: rune(71096), To: rune(71099)}, + &CodePointRange{From: rune(71100), To: rune(71101)}, + &CodePointRange{From: rune(71102), To: rune(71102)}, + &CodePointRange{From: rune(71132), To: rune(71133)}, + &CodePointRange{From: rune(71216), To: rune(71218)}, + &CodePointRange{From: rune(71219), To: rune(71226)}, + &CodePointRange{From: rune(71227), To: rune(71228)}, + &CodePointRange{From: rune(71229), To: rune(71229)}, + &CodePointRange{From: rune(71230), To: rune(71230)}, + &CodePointRange{From: rune(71232), To: rune(71232)}, + &CodePointRange{From: rune(71339), To: rune(71339)}, + &CodePointRange{From: rune(71340), To: rune(71340)}, + &CodePointRange{From: rune(71341), To: rune(71341)}, + &CodePointRange{From: rune(71342), To: rune(71343)}, + &CodePointRange{From: rune(71344), To: rune(71349)}, + &CodePointRange{From: rune(71453), To: rune(71455)}, + &CodePointRange{From: rune(71456), To: rune(71457)}, + &CodePointRange{From: rune(71458), To: rune(71461)}, + &CodePointRange{From: rune(71462), To: rune(71462)}, + &CodePointRange{From: rune(71463), To: rune(71466)}, + &CodePointRange{From: rune(71724), To: rune(71726)}, + &CodePointRange{From: rune(71727), To: rune(71735)}, + &CodePointRange{From: rune(71736), To: rune(71736)}, + &CodePointRange{From: rune(71984), To: rune(71989)}, + &CodePointRange{From: rune(71991), To: rune(71992)}, + &CodePointRange{From: rune(71995), To: rune(71996)}, + &CodePointRange{From: rune(72000), To: rune(72000)}, + &CodePointRange{From: rune(72002), To: rune(72002)}, + &CodePointRange{From: rune(72145), To: rune(72147)}, + &CodePointRange{From: rune(72148), To: rune(72151)}, + &CodePointRange{From: rune(72154), To: rune(72155)}, + &CodePointRange{From: rune(72156), To: rune(72159)}, + &CodePointRange{From: rune(72164), To: rune(72164)}, + &CodePointRange{From: rune(72193), To: rune(72202)}, + &CodePointRange{From: rune(72245), To: rune(72248)}, + &CodePointRange{From: rune(72249), To: rune(72249)}, + &CodePointRange{From: rune(72251), To: rune(72254)}, + &CodePointRange{From: rune(72273), To: rune(72278)}, + &CodePointRange{From: rune(72279), To: rune(72280)}, + &CodePointRange{From: rune(72281), To: rune(72283)}, + &CodePointRange{From: rune(72330), To: rune(72342)}, + &CodePointRange{From: rune(72343), To: rune(72343)}, + &CodePointRange{From: rune(72751), To: rune(72751)}, + &CodePointRange{From: rune(72752), To: rune(72758)}, + &CodePointRange{From: rune(72760), To: rune(72765)}, + &CodePointRange{From: rune(72766), To: rune(72766)}, + &CodePointRange{From: rune(72850), To: rune(72871)}, + &CodePointRange{From: rune(72873), To: rune(72873)}, + &CodePointRange{From: rune(72874), To: rune(72880)}, + &CodePointRange{From: rune(72881), To: rune(72881)}, + &CodePointRange{From: rune(72882), To: rune(72883)}, + &CodePointRange{From: rune(72884), To: rune(72884)}, + &CodePointRange{From: rune(72885), To: rune(72886)}, + &CodePointRange{From: rune(73009), To: rune(73014)}, + &CodePointRange{From: rune(73018), To: rune(73018)}, + &CodePointRange{From: rune(73020), To: rune(73021)}, + &CodePointRange{From: rune(73023), To: rune(73025)}, + &CodePointRange{From: rune(73027), To: rune(73027)}, + &CodePointRange{From: rune(73031), To: rune(73031)}, + &CodePointRange{From: rune(73098), To: rune(73102)}, + &CodePointRange{From: rune(73104), To: rune(73105)}, + &CodePointRange{From: rune(73107), To: rune(73108)}, + &CodePointRange{From: rune(73109), To: rune(73109)}, + &CodePointRange{From: rune(73110), To: rune(73110)}, + &CodePointRange{From: rune(73459), To: rune(73460)}, + &CodePointRange{From: rune(73461), To: rune(73462)}, + &CodePointRange{From: rune(94031), To: rune(94031)}, + &CodePointRange{From: rune(94033), To: rune(94087)}, + &CodePointRange{From: rune(94095), To: rune(94098)}, + &CodePointRange{From: rune(94192), To: rune(94193)}, + &CodePointRange{From: rune(113822), To: rune(113822)}, + &CodePointRange{From: rune(122880), To: rune(122886)}, + &CodePointRange{From: rune(122888), To: rune(122904)}, + &CodePointRange{From: rune(122907), To: rune(122913)}, + &CodePointRange{From: rune(122915), To: rune(122916)}, + &CodePointRange{From: rune(122918), To: rune(122922)}, + &CodePointRange{From: rune(125255), To: rune(125255)}, + &CodePointRange{From: rune(127280), To: rune(127305)}, + &CodePointRange{From: rune(127312), To: rune(127337)}, + &CodePointRange{From: rune(127344), To: rune(127369)}, +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropList.txt +var otherLowercaseCodePoints = []*CodePointRange{ + &CodePointRange{From: rune(170), To: rune(170)}, + &CodePointRange{From: rune(186), To: rune(186)}, + &CodePointRange{From: rune(688), To: rune(696)}, + &CodePointRange{From: rune(704), To: rune(705)}, + &CodePointRange{From: rune(736), To: rune(740)}, + &CodePointRange{From: rune(837), To: rune(837)}, + &CodePointRange{From: rune(890), To: rune(890)}, + &CodePointRange{From: rune(7468), To: rune(7530)}, + &CodePointRange{From: rune(7544), To: rune(7544)}, + &CodePointRange{From: rune(7579), To: rune(7615)}, + &CodePointRange{From: rune(8305), To: rune(8305)}, + &CodePointRange{From: rune(8319), To: rune(8319)}, + &CodePointRange{From: rune(8336), To: rune(8348)}, + &CodePointRange{From: rune(8560), To: rune(8575)}, + &CodePointRange{From: rune(9424), To: rune(9449)}, + &CodePointRange{From: rune(11388), To: rune(11389)}, + &CodePointRange{From: rune(42652), To: rune(42653)}, + &CodePointRange{From: rune(42864), To: rune(42864)}, + &CodePointRange{From: rune(43000), To: rune(43001)}, + &CodePointRange{From: rune(43868), To: rune(43871)}, +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropList.txt +var otherUppercaseCodePoints = []*CodePointRange{ + &CodePointRange{From: rune(8544), To: rune(8559)}, + &CodePointRange{From: rune(9398), To: rune(9423)}, + &CodePointRange{From: rune(127280), To: rune(127305)}, + &CodePointRange{From: rune(127312), To: rune(127337)}, + &CodePointRange{From: rune(127344), To: rune(127369)}, +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropList.txt +var whiteSpaceCodePoints = []*CodePointRange{ + &CodePointRange{From: rune(9), To: rune(13)}, + &CodePointRange{From: rune(32), To: rune(32)}, + &CodePointRange{From: rune(133), To: rune(133)}, + &CodePointRange{From: rune(160), To: rune(160)}, + &CodePointRange{From: rune(5760), To: rune(5760)}, + &CodePointRange{From: rune(8192), To: rune(8202)}, + &CodePointRange{From: rune(8232), To: rune(8232)}, + &CodePointRange{From: rune(8233), To: rune(8233)}, + &CodePointRange{From: rune(8239), To: rune(8239)}, + &CodePointRange{From: rune(8287), To: rune(8287)}, + &CodePointRange{From: rune(12288), To: rune(12288)}, +} + +type CodePointRange struct { + From rune + To rune +} + +var codePointRangeNil = &CodePointRange{ + From: 0, + To: 0, +} + +type field string + +func (f field) codePointRange() (*CodePointRange, error) { + var from, to rune + var err error + cp := reCodePointRange.FindStringSubmatch(string(f)) + from, err = decodeHexToRune(cp[1]) + if err != nil { + return codePointRangeNil, err + } + if cp[2] != "" { + to, err = decodeHexToRune(cp[2]) + if err != nil { + return codePointRangeNil, err + } + } else { + to = from + } + return &CodePointRange{ + From: from, + To: to, + }, nil +} + +func decodeHexToRune(hexCodePoint string) (rune, error) { + h := hexCodePoint + if len(h)%2 != 0 { + h = "0" + h + } + b, err := hex.DecodeString(h) + if err != nil { + return 0, err + } + l := len(b) + for i := 0; i < 4-l; i++ { + b = append([]byte{0}, b...) + } + n := binary.BigEndian.Uint32(b) + return rune(n), nil +} + +func (f field) symbol() string { + return string(f) +} + +func (f field) normalizedSymbol() string { + return normalizeSymbolicValue(string(f)) +} + +var symValReplacer = strings.NewReplacer("_", "", "-", "", "\x20", "") + +// normalizeSymbolicValue normalizes a symbolic value. The normalized value meets UAX44-LM3. +// +// https://www.unicode.org/reports/tr44/#UAX44-LM3 +func normalizeSymbolicValue(s string) string { + v := strings.ToLower(symValReplacer.Replace(s)) + if strings.HasPrefix(v, "is") && v != "is" { + return v[2:] + } + return v +} + +var ( + reLine = regexp.MustCompile(`^\s*(.*?)\s*(#.*)?$`) + reCodePointRange = regexp.MustCompile(`^([[:xdigit:]]+)(?:..([[:xdigit:]]+))?$`) + + specialCommentPrefix = "# @missing:" +) + +// This parser can parse data files of Unicode Character Database (UCD). +// Specifically, it has the following two functions: +// - Converts each line of the data files into a slice of fields. +// - Recognizes specially-formatted comments starting `@missing` and generates a slice of fields. +// +// However, for practical purposes, each field needs to be analyzed more specifically. +// For instance, in UnicodeData.txt, the first field represents a range of code points, +// so it needs to be recognized as a hexadecimal string. +// You can perform more specific parsing for each file by implementing a dedicated parser that wraps this parser. +// +// https://www.unicode.org/reports/tr44/#Format_Conventions +type parser struct { + scanner *bufio.Scanner + fields []field + defaultFields []field + err error + + fieldBuf []field + defaultFieldBuf []field +} + +func newParser(r io.Reader) *parser { + return &parser{ + scanner: bufio.NewScanner(r), + fieldBuf: make([]field, 50), + defaultFieldBuf: make([]field, 50), + } +} + +func (p *parser) parse() bool { + for p.scanner.Scan() { + p.parseRecord(p.scanner.Text()) + if p.fields != nil || p.defaultFields != nil { + return true + } + } + p.err = p.scanner.Err() + return false +} + +func (p *parser) parseRecord(src string) { + ms := reLine.FindStringSubmatch(src) + mFields := ms[1] + mComment := ms[2] + if mFields != "" { + p.fields = parseFields(p.fieldBuf, mFields) + } else { + p.fields = nil + } + if strings.HasPrefix(mComment, specialCommentPrefix) { + p.defaultFields = parseFields(p.defaultFieldBuf, strings.Replace(mComment, specialCommentPrefix, "", -1)) + } else { + p.defaultFields = nil + } +} + +func parseFields(buf []field, src string) []field { + n := 0 + for _, f := range strings.Split(src, ";") { + buf[n] = field(strings.TrimSpace(f)) + n++ + } + + return buf[:n] +} + +// contributoryProperties is a set of contributory properties vartan uses internally. +// Property statuses are defined in the following table. +// +// https://unicode.org/reports/tr44/#Property_List_Table +var contributoryProperties = []string{ + "oalpha", + "olower", + "oupper", +} + +func ContributoryProperties() []string { + return contributoryProperties +} + +// https://www.unicode.org/reports/tr44/#GC_Values_Table +var compositGeneralCategories = map[string][]string{ + // Cased_Letter + "lc": {"lu", "ll", "lt"}, + // Letter + "l": {"lu", "ll", "lt", "lm", "lo"}, + // Mark + "m": {"mm", "mc", "me"}, + // Number + "n": {"nd", "nl", "no"}, + // Punctuation + "p": {"pc", "pd", "ps", "pi", "pe", "pf", "po"}, + // Symbol + "s": {"sm", "sc", "sk", "so"}, + // Separator + "z": {"zs", "zl", "zp"}, + // Other + "c": {"cc", "cf", "cs", "co", "cn"}, +} + +// https://www.unicode.org/Public/13.0.0/ucd/DerivedCoreProperties.txt +var derivedCoreProperties = map[string][]string{ + // Alphabetic + "alpha": { + `\p{Lowercase=yes}`, + `\p{Uppercase=yes}`, + `\p{Lt}`, + `\p{Lm}`, + `\p{Lo}`, + `\p{Nl}`, + `\p{Other_Alphabetic=yes}`, + }, + // Lowercase + "lower": { + `\p{Ll}`, + `\p{Other_Lowercase=yes}`, + }, + // Uppercase + "upper": { + `\p{Lu}`, + `\p{Other_Uppercase=yes}`, + }, +} + +// https://www.unicode.org/Public/13.0.0/ucd/PropertyAliases.txt +var propertyNameAbbs = map[string]string{ + "generalcategory": "gc", + "gc": "gc", + "script": "sc", + "sc": "sc", + "alphabetic": "alpha", + "alpha": "alpha", + "otheralphabetic": "oalpha", + "oalpha": "oalpha", + "lowercase": "lower", + "lower": "lower", + "uppercase": "upper", + "upper": "upper", + "otherlowercase": "olower", + "olower": "olower", + "otheruppercase": "oupper", + "oupper": "oupper", + "whitespace": "wspace", + "wspace": "wspace", + "space": "wspace", +} + +// https://www.unicode.org/reports/tr44/#Type_Key_Table +// https://www.unicode.org/reports/tr44/#Binary_Values_Table +var binaryValues = map[string]bool{ + "yes": true, + "y": true, + "true": true, + "t": true, + "no": false, + "n": false, + "false": false, + "f": false, +} + +type PropertyValueAliases struct { + GeneralCategory map[string]string + GeneralCategoryDefaultRange *CodePointRange + GeneralCategoryDefaultValue string + + Script map[string]string +} + +// ParsePropertyValueAliases parses the PropertyValueAliases.txt. +func ParsePropertyValueAliases(r io.Reader) (*PropertyValueAliases, error) { + gcAbbs := map[string]string{} + var defaultGCCPRange *CodePointRange + var defaultGCVal string + scAbbs := map[string]string{} + p := newParser(r) + for p.parse() { + // https://www.unicode.org/reports/tr44/#Property_Value_Aliases + // > In PropertyValueAliases.txt, the first field contains the abbreviated alias for a Unicode property, + // > the second field specifies an abbreviated symbolic name for a value of that property, and the third + // > field specifies the long symbolic name for that value of that property. These are the preferred + // > aliases. Additional aliases for some property values may be specified in the fourth or subsequent + // > fields. + if len(p.fields) > 0 { + switch p.fields[0].symbol() { + case "gc": + gcShort := p.fields[1].normalizedSymbol() + gcLong := p.fields[2].normalizedSymbol() + gcAbbs[gcShort] = gcShort + gcAbbs[gcLong] = gcShort + for _, f := range p.fields[3:] { + gcShortOther := f.normalizedSymbol() + gcAbbs[gcShortOther] = gcShort + } + case "sc": + scShort := p.fields[1].normalizedSymbol() + scLong := p.fields[2].normalizedSymbol() + scAbbs[scShort] = scShort + scAbbs[scLong] = scShort + for _, f := range p.fields[3:] { + scShortOther := f.normalizedSymbol() + scAbbs[scShortOther] = scShort + } + } + } + + // https://www.unicode.org/reports/tr44/#Missing_Conventions + // > @missing lines are also supplied for many properties in the file PropertyValueAliases.txt. + // > ... + // > there are currently two syntactic patterns used for @missing lines, as summarized schematically below: + // > 1. code_point_range; default_prop_val + // > 2. code_point_range; property_name; default_prop_val + // > ... + // > Pattern #2 is used in PropertyValueAliases.txt and in DerivedNormalizationProps.txt, both of which + // > contain values associated with many properties. For example: + // > # @missing: 0000..10FFFF; NFD_QC; Yes + if len(p.defaultFields) > 0 && p.defaultFields[1].symbol() == "General_Category" { + var err error + defaultGCCPRange, err = p.defaultFields[0].codePointRange() + if err != nil { + return nil, err + } + defaultGCVal = p.defaultFields[2].normalizedSymbol() + } + } + if p.err != nil { + return nil, p.err + } + return &PropertyValueAliases{ + GeneralCategory: gcAbbs, + GeneralCategoryDefaultRange: defaultGCCPRange, + GeneralCategoryDefaultValue: defaultGCVal, + Script: scAbbs, + }, nil +} + +func (a *PropertyValueAliases) gcAbb(gc string) string { + return a.GeneralCategory[gc] +} + +type PropList struct { + OtherAlphabetic []*CodePointRange + OtherLowercase []*CodePointRange + OtherUppercase []*CodePointRange + WhiteSpace []*CodePointRange +} + +// ParsePropList parses the PropList.txt. +func ParsePropList(r io.Reader) (*PropList, error) { + var oa []*CodePointRange + var ol []*CodePointRange + var ou []*CodePointRange + var ws []*CodePointRange + p := newParser(r) + for p.parse() { + if len(p.fields) == 0 { + continue + } + + cp, err := p.fields[0].codePointRange() + if err != nil { + return nil, err + } + + switch p.fields[1].symbol() { + case "Other_Alphabetic": + oa = append(oa, cp) + case "Other_Lowercase": + ol = append(ol, cp) + case "Other_Uppercase": + ou = append(ou, cp) + case "White_Space": + ws = append(ws, cp) + } + } + if p.err != nil { + return nil, p.err + } + + return &PropList{ + OtherAlphabetic: oa, + OtherLowercase: ol, + OtherUppercase: ou, + WhiteSpace: ws, + }, nil +} + +type Scripts struct { + Script map[string][]*CodePointRange + ScriptDefaultRange *CodePointRange + ScriptDefaultValue string +} + +// ParseScripts parses the Scripts.txt. +func ParseScripts(r io.Reader, propValAliases *PropertyValueAliases) (*Scripts, error) { + ss := map[string][]*CodePointRange{} + var defaultRange *CodePointRange + var defaultValue string + p := newParser(r) + for p.parse() { + if len(p.fields) > 0 { + cp, err := p.fields[0].codePointRange() + if err != nil { + return nil, err + } + + name, ok := propValAliases.Script[p.fields[1].normalizedSymbol()] + if !ok { + return nil, fmt.Errorf("unknown property: %v", p.fields[1].symbol()) + } + ss[name] = append(ss[name], cp) + } + + if len(p.defaultFields) > 0 { + var err error + defaultRange, err = p.defaultFields[0].codePointRange() + if err != nil { + return nil, err + } + defaultValue = p.defaultFields[1].normalizedSymbol() + } + } + if p.err != nil { + return nil, p.err + } + + return &Scripts{ + Script: ss, + ScriptDefaultRange: defaultRange, + ScriptDefaultValue: defaultValue, + }, nil +} + +type UnicodeData struct { + GeneralCategory map[string][]*CodePointRange + + propValAliases *PropertyValueAliases +} + +// ParseUnicodeData parses the UnicodeData.txt. +func ParseUnicodeData(r io.Reader, propValAliases *PropertyValueAliases) (*UnicodeData, error) { + unicodeData := &UnicodeData{ + GeneralCategory: map[string][]*CodePointRange{}, + propValAliases: propValAliases, + } + + p := newParser(r) + for p.parse() { + if len(p.fields) == 0 { + continue + } + cp, err := p.fields[0].codePointRange() + if err != nil { + return nil, err + } + gc := p.fields[2].normalizedSymbol() + unicodeData.addGC(gc, cp) + } + if p.err != nil { + return nil, p.err + } + + return unicodeData, nil +} + +func (u *UnicodeData) addGC(gc string, cp *CodePointRange) { + // https://www.unicode.org/reports/tr44/#Empty_Fields + // > The data file UnicodeData.txt defines many property values in each record. When a field in a data line + // > for a code point is empty, that indicates that the property takes the default value for that code point. + if gc == "" { + return + } + + cps, ok := u.GeneralCategory[u.propValAliases.gcAbb(gc)] + if ok { + c := cps[len(cps)-1] + if cp.From-c.To == 1 { + c.To = cp.To + } else { + u.GeneralCategory[u.propValAliases.gcAbb(gc)] = append(cps, cp) + } + } else { + u.GeneralCategory[u.propValAliases.gcAbb(gc)] = []*CodePointRange{cp} + } +} |