/* Copyright 2021 Gabriel Jensen This file is part of u8c. u8c is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. u8c is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with u8c. If not, see . */ # include # include # include bool const u8c_thrdsafe = # if defined(u8c_bethrdsafe) true; # else false; # endif /* 1720 173F HANUNOO 1740 175F BUHID 1760 177F TAGBANWA 1780 17FF KHMER 1800 18AF MONGOLIAN 18B0 18FF UNIFIED CANADIAN ABORIGINAL SYLLABICS EXTENDED 1900 194F LIMBU 1950 197F TAI LE 1980 19DF NEW TAI LUE 19E0 19FF KHMER SYMBOLS 1A00 1A1F BUGINESE 1A20 1AAF TAI THAM 1AB0 1AFF COMBINING DIACRITICAL MARKS EXTENDED 1B00 1B7F BALINESE 1B80 1BBF SUNDANESE 1BC0 1BFF BATAK 1C00 1C4F LEPCHA 1C50 1C7F OL CHIKI 1C80 1C8F CYRILLIC EXTENDED C 1C90 1CBF GEORGIAN EXTENDED 1CC0 1CCF SUNDANESE SUPPLEMENT 1CD0 1CFF VEDIC EXTENSIONS 1D00 1D7F PHONETIC EXTENSIONS 1D80 1DBF PHONETIC EXTENSIONS SUPPLEMENT 1DC0 1DFF COMBINING DIACRITICAL MARKS SUPPLEMENT 1E00 1EFF LATIN EXTENDED ADDITIONAL 1F00 1FFF GREEK EXTENDED 2000 206F GENERAL PUNCTUATION 2070 209F SUPERSCRIPTS AND SUBSCRIPTS 20A0 20CF CURRENCY SYMBOLS 20D0 20FF COMBINING DIACRITICAL MARKS FOR SYMBOLS 2100 214F LETTERLIKE SYMBOLS 2150 218F NUMBER FORMS 2190 21FF ARROWS 2200 22FF MATHEMATICAL OPERATORS 2300 23FF MISCELLANEOUS TECHNICAL 2400 243F CONTROL PICTURES 2440 245F OPTICAL CHARACTER RECOGNITION 2460 24FF ENCLOSED ALPHANUMERICS 2500 257F BOX DRAWING 2580 259F BLOCK ELEMENTS 25A0 25FF GEOMETRIC SHAPES 2600 26FF MISCELLANEOUS SYMBOLS 2700 27BF DINGBATS 27C0 27EF MISCELLANEOUS MATHEMATICAL SYMBOLS-A 27F0 27FF SUPPLEMENTAL ARROWS-A 2800 28FF BRAILLE PATTERNS 2900 297F SUPPLEMENTAL ARROWS-B 2980 29FF MISCELLANEOUS MATHEMATICAL SYMBOLS-B 2A00 2AFF SUPPLEMENTAL MATHEMATICAL OPERATORS 2B00 2BFF MISCELLANEOUS SYMBOLS AND ARROWS 2C00 2C5F GLAGOLITIC 2C60 2C7F LATIN EXTENDED-C 2C80 2CFF COPTIC 2D00 2D2F GEORGIAN SUPPLEMENT 2D30 2D7F TIFINAGH 2D80 2DDF ETHIOPIC EXTENDED 2DE0 2DFF CYRILLIC EXTENDED-A 2E00 2E7F SUPPLEMENTAL PUNCTUATION 2E80 2EFF CJK RADICALS SUPPLEMENT 2F00 2FDF KANGXI RADICALS 2FF0 2FFF IDEOGRAPHIC DESCRIPTION CHARACTERS 3000 303F CJK SYMBOLS AND PUNCTUATION 3040 309F HIRAGANA 30A0 30FF KATAKANA 3100 312F BOPOMOFO 3130 318F HANGUL COMPATIBILITY JAMO 3190 319F KANBUN 31A0 31BF BOPOMOFO EXTENDED 31C0 31EF CJK STROKES 31F0 31FF KATAKANA PHONETIC EXTENSIONS 3200 32FF ENCLOSED CJK LETTERS AND MONTHS 3300 33FF CJK COMPATIBILITY 3400 4DBF CJK UNIFIED IDEOGRAPHS EXTENSION A 4DC0 4DFF YIJING HEXAGRAM SYMBOLS 4E00 9FFF CJK UNIFIED IDEOGRAPHS A000 A48F YI SYLLABLES A490 A4CF YI RADICALS A4D0 A4FF LISU A500 A63F VAI A640 A69F CYRILLIC EXTENDED-B A6A0 A6FF BAMUM A700 A71F MODIFIER TONE LETTERS A720 A7FF LATIN EXTENDED-D A800 A82F SYLOTI NAGRI A830 A83F COMMON INDIC NUMBER FORMS A840 A87F PHAGS-PA A880 A8DF SAURASHTRA A8E0 A8FF DEVANAGARI EXTENDED A900 A92F KAYAH LI A930 A95F REJANG A960 A97F HANGUL JAMO EXTENDED-A A980 A9DF JAVANESE A9E0 A9FF MYANMAR EXTENDED-B AA00 AA5F CHAM AA60 AA7F MYANMAR EXTENDED-A AA80 AADF TAI VIET AAE0 AAFF MEETEI MAYEK EXTENSIONS AB00 AB2F ETHIOPIC EXTENDED-A AB30 AB6F LATIN EXTENDED-E AB70 ABBF CHEROKEE SUPPLEMENT ABC0 ABFF MEETEI MAYEK AC00 D7AF HANGUL SYLLABLES D7B0 D7FF HANGUL JAMO EXTENDED-B D800 DB7F HIGH SURROGATES DB80 DBFF HIGH PRIVATE USE SURROGATES DC00 DFFF LOW SURROGATES E000 F8FF PRIVATE USE AREA F900 FAFF CJK COMPATIBILITY IDEOGRAPHS FB00 FB4F ALPHABETIC PRESENTATION FORMS FB50 FDFF ARABIC PRESENTATION FORMS-A FE00 FE0F VARIATION SELECTORS FE10 FE1F VERTICAL FORMS FE20 FE2F COMBINING HALF MARKS FE30 FE4F CJK COMPATIBILITY FORMS FE50 FE6F SMALL FORM VARIANTS FE70 FEFF ARABIC PRESENTATION FORMS-B FF00 FFEF HALFWIDTH AND FULLWIDTH FORMS FFF0 FFFF SPECIALS 10000 1007F LINEAR B SYLLABARY 10080 100FF LINEAR B IDEOGRAMS 10100 1013F AEGEAN NUMBERS 10140 1018F ANCIENT GREEK NUMBERS 10190 101CF ANCIENT SYMBOLS 101D0 101FF PHAISTOS DISC 10280 1029F LYCIAN 102A0 102DF CARIAN 102E0 102FF COPTIC EPACT NUMBERS 10300 1032F OLD ITALIC 10330 1034F GOTHIC 10350 1037F OLD PERMIC 10380 1039F UGARITIC 103A0 103DF OLD PERSIAN 10400 1044F DESERET 10450 1047F SHAVIAN 10480 104AF OSMANYA 104B0 104FF OSAGE 10500 1052F ELBASAN 10530 1056F CAUCASIAN ALBANIAN 10600 1077F LINEAR A 10800 1083F CYPRIOT SYLLABARY 10840 1085F IMPERIAL ARAMAIC 10860 1087F PALMYRENE 10880 108AF NABATAEAN 108E0 108FF HATRAN 10900 1091F PHOENICIAN 10920 1093F LYDIAN 10980 1099F MEROITIC HIEROGLYPHS 109A0 109FF MEROITIC CURSIVE 10A00 10A5F KHAROSHTHI 10A60 10A7F OLD SOUTH ARABIAN 10A80 10A9F OLD NORTH ARABIAN 10AC0 10AFF MANICHAEAN 10B00 10B3F AVESTAN 10B40 10B5F INSCRIPTIONAL PARTHIAN 10B60 10B7F INSCRIPTIONAL PAHLAVI 10B80 10BAF PSALTER PAHLAVI 10C00 10C4F OLD TURKIC 10C80 10CFF OLD HUNGARIAN 10D00 10D3F HANIFI ROHINGYA 10E60 10E7F RUMI NUMERAL SYMBOLS 10E80 10EBF YEZIDI 10F00 10F2F OLD SOGDIAN 10F30 10F6F SOGDIAN 10FB0 10FDF CHORASMIAN 10FE0 10FFF ELYMAIC 11000 1107F BRAHMI 11080 110CF KAITHI 110D0 110FF SORA SOMPENG 11100 1114F CHAKMA 11150 1117F MAHAJANI 11180 111DF SHARADA 111E0 111FF SINHALA ARCHAIC NUMBERS 11200 1124F KHOJKI 11280 112AF MULTANI 112B0 112FF KHUDAWADI 11300 1137F GRANTHA 11400 1147F NEWA 11480 114DF TIRHUTA 11580 115FF SIDDHAM 11600 1165F MODI 11660 1167F MONGOLIAN SUPPLEMENT 11680 116CF TAKRI 11700 1173F AHOM 11800 1184F DOGRA 118A0 118FF WARANG CITI 11900 1195F DIVES AKURU 119A0 119FF NANDINAGARI */