\defcharrange{1}{"0000-"007F} % Basic Latin
\defcharrange{2}{"0080-"00FF} % Latin-1 Supplement
\defcharrange{3}{"0100-"017F} % Latin Extended-A
\defcharrange{4}{"0180-"024F} % Latin Extended-B
\defcharrange{5}{"0250-"02AF} % IPA Extensions
\defcharrange{6}{"02B0-"02FF} % Spacing Modifier Letters
\defcharrange{7}{"0300-"036F} % Combining Diacritical Marks
\defcharrange{8}{"0370-"03FF} % Greek and Coptic
\defcharrange{9}{"0400-"04FF} % Cyrillic
\defcharrange{10}{"0500-"052F} % Cyrillic Supplement
\defcharrange{11}{"0530-"058F} % Armenian
\defcharrange{12}{"0590-"05FF} % Hebrew
\defcharrange{13}{"0600-"06FF} % Arabic
\defcharrange{14}{"0700-"074F} % Syriac
\defcharrange{15}{"0750-"077F} % Arabic Supplement
\defcharrange{16}{"0780-"07BF} % Thaana
\defcharrange{17}{"07C0-"07FF} % NKo
\defcharrange{18}{"0800-"083F} % Samaritan
\defcharrange{19}{"0840-"085F} % Mandaic
\defcharrange{20}{"0900-"097F} % Devanagari
\defcharrange{21}{"0980-"09FF} % Bengali
\defcharrange{22}{"0A00-"0A7F} % Gurmukhi
\defcharrange{23}{"0A80-"0AFF} % Gujarati
\defcharrange{24}{"0B00-"0B7F} % Oriya
\defcharrange{25}{"0B80-"0BFF} % Tamil
\defcharrange{26}{"0C00-"0C7F} % Telugu
\defcharrange{27}{"0C80-"0CFF} % Kannada
\defcharrange{28}{"0D00-"0D7F} % Malayalam
\defcharrange{29}{"0D80-"0DFF} % Sinhala
\defcharrange{30}{"0E00-"0E7F} % Thai
\defcharrange{31}{"0E80-"0EFF} % Lao
\defcharrange{32}{"0F00-"0FFF} % Tibetan
\defcharrange{33}{"1000-"109F} % Myanmar
\defcharrange{34}{"10A0-"10FF} % Georgian
\defcharrange{35}{"1100-"11FF} % Hangul Jamo
\defcharrange{36}{"1200-"137F} % Ethiopic
\defcharrange{37}{"1380-"139F} % Ethiopic Supplement
\defcharrange{38}{"13A0-"13FF} % Cherokee
\defcharrange{39}{"1400-"167F} % Unified Canadian Aboriginal Syllabics
\defcharrange{40}{"1680-"169F} % Ogham
\defcharrange{41}{"16A0-"16FF} % Runic
\defcharrange{42}{"1700-"171F} % Tagalog
\defcharrange{43}{"1720-"173F} % Hanunoo
\defcharrange{44}{"1740-"175F} % Buhid
\defcharrange{45}{"1760-"177F} % Tagbanwa
\defcharrange{46}{"1780-"17FF} % Khmer
\defcharrange{47}{"1800-"18AF} % Mongolian
\defcharrange{48}{"18B0-"18FF} % Unified Canadian Aboriginal Syllabics Extended
\defcharrange{49}{"1900-"194F} % Limbu
\defcharrange{50}{"1950-"197F} % Tai Le
\defcharrange{51}{"1980-"19DF} % New Tai Lue
\defcharrange{52}{"19E0-"19FF} % Khmer Symbols
\defcharrange{53}{"1A00-"1A1F} % Buginese
\defcharrange{54}{"1A20-"1AAF} % Tai Tham
\defcharrange{55}{"1B00-"1B7F} % Balinese
\defcharrange{56}{"1B80-"1BBF} % Sundanese
\defcharrange{57}{"1BC0-"1BFF} % Batak
\defcharrange{58}{"1C00-"1C4F} % Lepcha
\defcharrange{59}{"1C50-"1C7F} % Ol Chiki
\defcharrange{60}{"1CD0-"1CFF} % Vedic Extensions
\defcharrange{61}{"1D00-"1D7F} % Phonetic Extensions
\defcharrange{62}{"1D80-"1DBF} % Phonetic Extensions Supplement
\defcharrange{63}{"1DC0-"1DFF} % Combining Diacritical Marks Supplement
\defcharrange{64}{"1E00-"1EFF} % Latin Extended Additional
\defcharrange{65}{"1F00-"1FFF} % Greek Extended
\defcharrange{66}{"2000-"206F} % General Punctuation
\defcharrange{67}{"2070-"209F} % Superscripts and Subscripts
\defcharrange{68}{"20A0-"20CF} % Currency Symbols
\defcharrange{69}{"20D0-"20FF} % Combining Diacritical Marks for Symbols
\defcharrange{70}{"2100-"214F} % Letterlike Symbols
\defcharrange{71}{"2150-"218F} % Number Forms
\defcharrange{72}{"2190-"21FF} % Arrows
\defcharrange{73}{"2200-"22FF} % Mathematical Operators
\defcharrange{74}{"2300-"23FF} % Miscellaneous Technical
\defcharrange{75}{"2400-"243F} % Control Pictures
\defcharrange{76}{"2440-"245F} % Optical Character Recognition
\defcharrange{77}{"2460-"24FF} % Enclosed Alphanumerics
\defcharrange{78}{"2500-"257F} % Box Drawing
\defcharrange{79}{"2580-"259F} % Block Elements
\defcharrange{80}{"25A0-"25FF} % Geometric Shapes
\defcharrange{81}{"2600-"26FF} % Miscellaneous Symbols
\defcharrange{82}{"2700-"27BF} % Dingbats
\defcharrange{83}{"27C0-"27EF} % Miscellaneous Mathematical Symbols-A
\defcharrange{84}{"27F0-"27FF} % Supplemental Arrows-A
\defcharrange{85}{"2800-"28FF} % Braille Patterns
\defcharrange{86}{"2900-"297F} % Supplemental Arrows-B
\defcharrange{87}{"2980-"29FF} % Miscellaneous Mathematical Symbols-B
\defcharrange{88}{"2A00-"2AFF} % Supplemental Mathematical Operators
\defcharrange{89}{"2B00-"2BFF} % Miscellaneous Symbols and Arrows
\defcharrange{90}{"2C00-"2C5F} % Glagolitic
\defcharrange{91}{"2C60-"2C7F} % Latin Extended-C
\defcharrange{92}{"2C80-"2CFF} % Coptic
\defcharrange{93}{"2D00-"2D2F} % Georgian Supplement
\defcharrange{94}{"2D30-"2D7F} % Tifinagh
\defcharrange{95}{"2D80-"2DDF} % Ethiopic Extended
\defcharrange{96}{"2DE0-"2DFF} % Cyrillic Extended-A
\defcharrange{97}{"2E00-"2E7F} % Supplemental Punctuation
\defcharrange{98}{"2E80-"2EFF} % CJK Radicals Supplement
\defcharrange{99}{"2F00-"2FDF} % Kangxi Radicals
\defcharrange{100}{"2FF0-"2FFF} % Ideographic Description Characters
\defcharrange{101}{"3000-"303F} % CJK Symbols and Punctuation
\defcharrange{102}{"3040-"309F} % Hiragana
\defcharrange{103}{"30A0-"30FF} % Katakana
\defcharrange{104}{"3100-"312F} % Bopomofo
\defcharrange{105}{"3130-"318F} % Hangul Compatibility Jamo
\defcharrange{106}{"3190-"319F} % Kanbun
\defcharrange{107}{"31A0-"31BF} % Bopomofo Extended
\defcharrange{108}{"31C0-"31EF} % CJK Strokes
\defcharrange{109}{"31F0-"31FF} % Katakana Phonetic Extensions
\defcharrange{110}{"3200-"32FF} % Enclosed CJK Letters and Months
\defcharrange{111}{"3300-"33FF} % CJK Compatibility
\defcharrange{112}{"3400-"4DBF} % CJK Unified Ideographs Extension A
\defcharrange{113}{"4DC0-"4DFF} % Yijing Hexagram Symbols
\defcharrange{114}{"4E00-"9FFF} % CJK Unified Ideographs
\defcharrange{115}{"A000-"A48F} % Yi Syllables
\defcharrange{116}{"A490-"A4CF} % Yi Radicals
\defcharrange{117}{"A4D0-"A4FF} % Lisu
\defcharrange{118}{"A500-"A63F} % Vai
\defcharrange{119}{"A640-"A69F} % Cyrillic Extended-B
\defcharrange{120}{"A6A0-"A6FF} % Bamum
\defcharrange{121}{"A700-"A71F} % Modifier Tone Letters
\defcharrange{122}{"A720-"A7FF} % Latin Extended-D
\defcharrange{123}{"A800-"A82F} % Syloti Nagri
\defcharrange{124}{"A830-"A83F} % Common Indic Number Forms
\defcharrange{125}{"A840-"A87F} % Phags-pa
\defcharrange{126}{"A880-"A8DF} % Saurashtra
\defcharrange{127}{"A8E0-"A8FF} % Devanagari Extended
\defcharrange{128}{"A900-"A92F} % Kayah Li
\defcharrange{129}{"A930-"A95F} % Rejang
\defcharrange{130}{"A960-"A97F} % Hangul Jamo Extended-A
\defcharrange{131}{"A980-"A9DF} % Javanese
\defcharrange{132}{"AA00-"AA5F} % Cham
\defcharrange{133}{"AA60-"AA7F} % Myanmar Extended-A
\defcharrange{134}{"AA80-"AADF} % Tai Viet
\defcharrange{135}{"AB00-"AB2F} % Ethiopic Extended-A
\defcharrange{136}{"ABC0-"ABFF} % Meetei Mayek
\defcharrange{137}{"AC00-"D7AF} % Hangul Syllables
\defcharrange{138}{"D7B0-"D7FF} % Hangul Jamo Extended-B
\defcharrange{139}{"D800-"DB7F} % High Surrogates
\defcharrange{140}{"DB80-"DBFF} % High Private Use Surrogates
\defcharrange{141}{"DC00-"DFFF} % Low Surrogates
\defcharrange{142}{"E000-"F8FF} % Private Use Area
\defcharrange{143}{"F900-"FAFF} % CJK Compatibility Ideographs
\defcharrange{144}{"FB00-"FB4F} % Alphabetic Presentation Forms
\defcharrange{145}{"FB50-"FDFF} % Arabic Presentation Forms-A
\defcharrange{146}{"FE00-"FE0F} % Variation Selectors
\defcharrange{147}{"FE10-"FE1F} % Vertical Forms
\defcharrange{148}{"FE20-"FE2F} % Combining Half Marks
\defcharrange{149}{"FE30-"FE4F} % CJK Compatibility Forms
\defcharrange{150}{"FE50-"FE6F} % Small Form Variants
\defcharrange{151}{"FE70-"FEFF} % Arabic Presentation Forms-B
\defcharrange{152}{"FF00-"FFEF} % Halfwidth and Fullwidth Forms
\defcharrange{153}{"FFF0-"FFFF} % Specials
\defcharrange{154}{"10000-"1007F} % Linear B Syllabary
\defcharrange{155}{"10080-"100FF} % Linear B Ideograms
\defcharrange{156}{"10100-"1013F} % Aegean Numbers
\defcharrange{157}{"10140-"1018F} % Ancient Greek Numbers
\defcharrange{158}{"10190-"101CF} % Ancient Symbols
\defcharrange{159}{"101D0-"101FF} % Phaistos Disc
\defcharrange{160}{"10280-"1029F} % Lycian
\defcharrange{161}{"102A0-"102DF} % Carian
\defcharrange{162}{"10300-"1032F} % Old Italic
\defcharrange{163}{"10330-"1034F} % Gothic
\defcharrange{164}{"10380-"1039F} % Ugaritic
\defcharrange{165}{"103A0-"103DF} % Old Persian
\defcharrange{166}{"10400-"1044F} % Deseret
\defcharrange{167}{"10450-"1047F} % Shavian
\defcharrange{168}{"10480-"104AF} % Osmanya
\defcharrange{169}{"10800-"1083F} % Cypriot Syllabary
\defcharrange{170}{"10840-"1085F} % Imperial Aramaic
\defcharrange{171}{"10900-"1091F} % Phoenician
\defcharrange{172}{"10920-"1093F} % Lydian
\defcharrange{173}{"10A00-"10A5F} % Kharoshthi
\defcharrange{174}{"10A60-"10A7F} % Old South Arabian
\defcharrange{175}{"10B00-"10B3F} % Avestan
\defcharrange{176}{"10B40-"10B5F} % Inscriptional Parthian
\defcharrange{177}{"10B60-"10B7F} % Inscriptional Pahlavi
\defcharrange{178}{"10C00-"10C4F} % Old Turkic
\defcharrange{179}{"10E60-"10E7F} % Rumi Numeral Symbols
\defcharrange{180}{"11000-"1107F} % Brahmi
\defcharrange{181}{"11080-"110CF} % Kaithi
\defcharrange{182}{"12000-"123FF} % Cuneiform
\defcharrange{183}{"12400-"1247F} % Cuneiform Numbers and Punctuation
\defcharrange{184}{"13000-"1342F} % Egyptian Hieroglyphs
\defcharrange{185}{"16800-"16A3F} % Bamum Supplement
\defcharrange{186}{"1B000-"1B0FF} % Kana Supplement
\defcharrange{187}{"1D000-"1D0FF} % Byzantine Musical Symbols
\defcharrange{188}{"1D100-"1D1FF} % Musical Symbols
\defcharrange{189}{"1D200-"1D24F} % Ancient Greek Musical Notation
\defcharrange{190}{"1D300-"1D35F} % Tai Xuan Jing Symbols
\defcharrange{191}{"1D360-"1D37F} % Counting Rod Numerals
\defcharrange{192}{"1D400-"1D7FF} % Mathematical Alphanumeric Symbols
\defcharrange{193}{"1F000-"1F02F} % Mahjong Tiles
\defcharrange{194}{"1F030-"1F09F} % Domino Tiles
\defcharrange{195}{"1F0A0-"1F0FF} % Playing Cards
\defcharrange{196}{"1F100-"1F1FF} % Enclosed Alphanumeric Supplement
\defcharrange{197}{"1F200-"1F2FF} % Enclosed Ideographic Supplement
\defcharrange{198}{"1F300-"1F5FF} % Miscellaneous Symbols And Pictographs
\defcharrange{199}{"1F600-"1F64F} % Emoticons
\defcharrange{200}{"1F680-"1F6FF} % Transport And Map Symbols
\defcharrange{201}{"1F700-"1F77F} % Alchemical Symbols
\defcharrange{202}{"20000-"2A6DF} % CJK Unified Ideographs Extension B
\defcharrange{203}{"2A700-"2B73F} % CJK Unified Ideographs Extension C
\defcharrange{204}{"2B740-"2B81F} % CJK Unified Ideographs Extension D
\defcharrange{205}{"2F800-"2FA1F} % CJK Compatibility Ideographs Supplement
\defcharrange{206}{"E0000-"E007F} % Tags
\defcharrange{207}{"E0100-"E01EF} % Variation Selectors Supplement
\defcharrange{208}{"F0000-"FFFFF} % Supplementary Private Use Area-A
\defcharrange{209}{"100000-"10FFFF} % Supplementary Private Use Area-B
