summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/accessibilityinspector/accessibilityinspector.cpp29
-rw-r--r--util/accessibilityinspector/accessibilityinspector.h29
-rw-r--r--util/accessibilityinspector/accessibilityscenemanager.cpp29
-rw-r--r--util/accessibilityinspector/accessibilityscenemanager.h29
-rw-r--r--util/accessibilityinspector/main.cpp29
-rw-r--r--util/accessibilityinspector/optionswidget.cpp29
-rw-r--r--util/accessibilityinspector/optionswidget.h29
-rw-r--r--util/accessibilityinspector/screenreader.cpp29
-rw-r--r--util/accessibilityinspector/screenreader.h29
-rw-r--r--util/aglfn/main.cpp70
-rwxr-xr-xutil/android/android_emulator_launcher.sh74
-rw-r--r--util/cmake/README.md15
-rwxr-xr-xutil/cmake/cmakeconversionrate.py31
-rwxr-xr-x[-rw-r--r--]util/cmake/condition_simplifier.py40
-rwxr-xr-x[-rw-r--r--]util/cmake/condition_simplifier_cache.py35
-rwxr-xr-xutil/cmake/configurejson2cmake.py62
-rwxr-xr-xutil/cmake/generate_module_map.sh29
-rw-r--r--util/cmake/helper.py510
-rw-r--r--util/cmake/json_parser.py29
-rwxr-xr-xutil/cmake/pro2cmake.py1047
-rwxr-xr-xutil/cmake/pro_conversion_rate.py33
-rwxr-xr-x[-rw-r--r--]util/cmake/qmake_parser.py82
-rwxr-xr-xutil/cmake/run_pro2cmake.py31
-rw-r--r--util/cmake/special_case_helper.py29
-rw-r--r--util/cmake/tests/data/condition_operator_precedence.pro11
-rw-r--r--util/cmake/tests/data/conversion/optional_qt_modules.pro4
-rw-r--r--util/cmake/tests/data/conversion/qt_version_check.pro8
-rw-r--r--util/cmake/tests/data/conversion/required_qt_modules.pro3
-rw-r--r--util/cmake/tests/data/standardpaths.pro2
-rwxr-xr-xutil/cmake/tests/test_conversion.py66
-rwxr-xr-xutil/cmake/tests/test_lc_fixup.py29
-rwxr-xr-xutil/cmake/tests/test_logic_mapping.py32
-rwxr-xr-xutil/cmake/tests/test_operations.py29
-rwxr-xr-xutil/cmake/tests/test_parsing.py47
-rwxr-xr-xutil/cmake/tests/test_scope_handling.py44
-rwxr-xr-xutil/edid/qedidvendortable.py72
-rw-r--r--util/glgen/codegenerator.cpp29
-rw-r--r--util/glgen/codegenerator.h29
-rw-r--r--util/glgen/glgen.pro1
-rw-r--r--util/glgen/legacyspecparser.cpp31
-rw-r--r--util/glgen/legacyspecparser.h29
-rw-r--r--util/glgen/main.cpp29
-rw-r--r--util/glgen/qopenglextensions.cpp.header52
-rw-r--r--util/glgen/qopenglextensions.h.header52
-rw-r--r--util/glgen/qopenglversionfunctions.cpp.header30
-rw-r--r--util/glgen/qopenglversionfunctions.h.header30
-rw-r--r--util/glgen/qopenglversionfunctions__VERSION__.cpp.header30
-rw-r--r--util/glgen/qopenglversionfunctions__VERSION__.h.header30
-rw-r--r--util/glgen/qopenglversionfunctionsfactory.cpp.header30
-rw-r--r--util/glgen/qopenglversionfunctionsfactory_p.h.header30
-rw-r--r--util/glgen/specparser.h31
-rw-r--r--util/glgen/xmlspecparser.cpp29
-rw-r--r--util/glgen/xmlspecparser.h29
-rw-r--r--util/gradientgen/gradientgen.cpp75
-rwxr-xr-xutil/gradientgen/gradientgen.js30
-rwxr-xr-xutil/harfbuzz/update-harfbuzz63
-rwxr-xr-xutil/includemocs/includemocs.pl29
-rwxr-xr-xutil/includemocs/includemocs6.sh94
-rw-r--r--util/lexgen/configfile.cpp29
-rw-r--r--util/lexgen/configfile.h29
-rw-r--r--util/lexgen/generator.cpp29
-rw-r--r--util/lexgen/generator.h29
-rw-r--r--util/lexgen/global.h29
-rw-r--r--util/lexgen/main.cpp29
-rw-r--r--util/lexgen/nfa.cpp31
-rw-r--r--util/lexgen/nfa.h29
-rw-r--r--util/lexgen/re2nfa.cpp29
-rw-r--r--util/lexgen/re2nfa.h29
-rw-r--r--util/lexgen/tests/tst_lexgen.cpp29
-rw-r--r--util/lexgen/tokenizer.cpp29
-rw-r--r--util/locale_database/cldr.py100
-rwxr-xr-xutil/locale_database/cldr2qlocalexml.py60
-rwxr-xr-xutil/locale_database/cldr2qtimezone.py109
-rw-r--r--util/locale_database/dateconverter.py301
-rw-r--r--util/locale_database/enumdata.py186
-rw-r--r--util/locale_database/iso639_3.py80
-rw-r--r--util/locale_database/ldml.py119
-rw-r--r--util/locale_database/localetools.py71
-rw-r--r--util/locale_database/qlocalexml.py134
-rw-r--r--util/locale_database/qlocalexml.rnc26
-rwxr-xr-xutil/locale_database/qlocalexml2cpp.py133
-rw-r--r--util/locale_database/testlocales/localemodel.cpp29
-rw-r--r--util/locale_database/testlocales/localemodel.h29
-rw-r--r--util/locale_database/testlocales/localewidget.cpp33
-rw-r--r--util/locale_database/testlocales/localewidget.h29
-rw-r--r--util/locale_database/testlocales/main.cpp29
-rw-r--r--util/plugintest/main.cpp29
-rw-r--r--util/publicSuffix/main.cpp210
-rw-r--r--util/publicSuffix/publicSuffix.pro4
-rw-r--r--util/qfloat16-tables/gen_qfloat16_tables.cpp44
-rw-r--r--util/testrunner/README24
-rwxr-xr-xutil/testrunner/qt-testrunner.py395
-rwxr-xr-xutil/testrunner/sanitizer-testrunner.py51
-rw-r--r--util/testrunner/tests/qt_mock_test-log.xml36
-rwxr-xr-xutil/testrunner/tests/qt_mock_test.py182
-rwxr-xr-xutil/testrunner/tests/tst_testrunner.py303
-rw-r--r--util/unicode/README19
-rw-r--r--util/unicode/data/ArabicShaping.txt82
-rw-r--r--util/unicode/data/BidiMirroring.txt26
-rw-r--r--util/unicode/data/Blocks.txt38
-rw-r--r--util/unicode/data/CaseFolding.txt53
-rw-r--r--util/unicode/data/DerivedAge.txt153
-rw-r--r--util/unicode/data/DerivedNormalizationProps.txt6286
-rw-r--r--util/unicode/data/EastAsianWidth.txt2621
-rw-r--r--util/unicode/data/GraphemeBreakProperty.txt61
-rw-r--r--util/unicode/data/IdnaMappingTable.txt9026
-rw-r--r--util/unicode/data/LineBreak.txt7013
-rw-r--r--util/unicode/data/NormalizationCorrections.txt10
-rw-r--r--util/unicode/data/Scripts.txt285
-rw-r--r--util/unicode/data/SentenceBreakProperty.txt186
-rw-r--r--util/unicode/data/SpecialCasing.txt10
-rw-r--r--util/unicode/data/UnicodeData.txt1142
-rw-r--r--util/unicode/data/WordBreakProperty.txt145
-rw-r--r--util/unicode/data/emoji-data.txt151
-rw-r--r--util/unicode/main.cpp690
-rw-r--r--util/unicode/unicode.pro2
-rwxr-xr-xutil/unicode/update_ucd.sh53
-rwxr-xr-xutil/unicode/writingSystems.sh30
-rwxr-xr-xutil/update_public_suffix_list.sh81
-rw-r--r--util/wasm/batchedtestrunner/README.md60
-rw-r--r--util/wasm/batchedtestrunner/batchedtestrunner.html15
-rw-r--r--util/wasm/batchedtestrunner/batchedtestrunner.js178
-rw-r--r--util/wasm/batchedtestrunner/emrunadapter.js137
-rw-r--r--util/wasm/batchedtestrunner/qtestoutputreporter.css89
-rw-r--r--util/wasm/batchedtestrunner/qtestoutputreporter.js366
-rw-r--r--util/wasm/batchedtestrunner/qwasmjsruntime.js231
-rw-r--r--util/wasm/batchedtestrunner/qwasmtestmain.js86
-rw-r--r--util/wasm/batchedtestrunner/util.js31
-rwxr-xr-xutil/wasm/preload/preload_qml_imports.py101
-rwxr-xr-xutil/wasm/preload/preload_qt_plugins.py54
-rw-r--r--util/wasm/preload/wasm_binary_tools.py78
-rw-r--r--util/wasm/qtwasmserver/Pipfile12
-rwxr-xr-xutil/wasm/qtwasmserver/qtwasmserver.py124
-rw-r--r--util/wasm/wasmtestrunner/Pipfile13
-rw-r--r--util/wasm/wasmtestrunner/README.md10
-rwxr-xr-xutil/wasm/wasmtestrunner/qt-wasmtestrunner.py331
-rw-r--r--util/x86simdgen/.gitignore1
-rw-r--r--util/x86simdgen/3rdparty/simd-amd.conf35
-rw-r--r--util/x86simdgen/3rdparty/simd-intel.conf222
-rwxr-xr-xutil/x86simdgen/3rdparty/x86simd_generate.pl354
-rw-r--r--util/x86simdgen/Makefile22
-rw-r--r--util/x86simdgen/README.md13
-rwxr-xr-xutil/x86simdgen/generate.pl277
-rw-r--r--util/x86simdgen/header16
-rw-r--r--util/x86simdgen/simd.txt37
-rw-r--r--util/xkbdatagen/main.cpp70
146 files changed, 30015 insertions, 7744 deletions
diff --git a/util/accessibilityinspector/accessibilityinspector.cpp b/util/accessibilityinspector/accessibilityinspector.cpp
index 128fd2bf47..b149e74f34 100644
--- a/util/accessibilityinspector/accessibilityinspector.cpp
+++ b/util/accessibilityinspector/accessibilityinspector.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "accessibilityinspector.h"
diff --git a/util/accessibilityinspector/accessibilityinspector.h b/util/accessibilityinspector/accessibilityinspector.h
index 2ae9bb0e51..b8cb2edec8 100644
--- a/util/accessibilityinspector/accessibilityinspector.h
+++ b/util/accessibilityinspector/accessibilityinspector.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ACCESSIBILITYINSPECTOR_H
#define ACCESSIBILITYINSPECTOR_H
diff --git a/util/accessibilityinspector/accessibilityscenemanager.cpp b/util/accessibilityinspector/accessibilityscenemanager.cpp
index 8426b35c42..41da875369 100644
--- a/util/accessibilityinspector/accessibilityscenemanager.cpp
+++ b/util/accessibilityinspector/accessibilityscenemanager.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "accessibilityscenemanager.h"
diff --git a/util/accessibilityinspector/accessibilityscenemanager.h b/util/accessibilityinspector/accessibilityscenemanager.h
index 9ce7d8ef0b..8a1cd622ab 100644
--- a/util/accessibilityinspector/accessibilityscenemanager.h
+++ b/util/accessibilityinspector/accessibilityscenemanager.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef ACCESSIBILITYSCENEMANAGER_H
#define ACCESSIBILITYSCENEMANAGER_H
diff --git a/util/accessibilityinspector/main.cpp b/util/accessibilityinspector/main.cpp
index 23dbc7de72..a326ed1f61 100644
--- a/util/accessibilityinspector/main.cpp
+++ b/util/accessibilityinspector/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtGui>
#include <QtDeclarative/QtDeclarative>
diff --git a/util/accessibilityinspector/optionswidget.cpp b/util/accessibilityinspector/optionswidget.cpp
index 3ed14b199e..871eb49e30 100644
--- a/util/accessibilityinspector/optionswidget.cpp
+++ b/util/accessibilityinspector/optionswidget.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "optionswidget.h"
diff --git a/util/accessibilityinspector/optionswidget.h b/util/accessibilityinspector/optionswidget.h
index 35957cbcd2..48c597690d 100644
--- a/util/accessibilityinspector/optionswidget.h
+++ b/util/accessibilityinspector/optionswidget.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef OPTIONSWIDGET_H
#define OPTIONSWIDGET_H
diff --git a/util/accessibilityinspector/screenreader.cpp b/util/accessibilityinspector/screenreader.cpp
index e7c15ee15c..43a546c749 100644
--- a/util/accessibilityinspector/screenreader.cpp
+++ b/util/accessibilityinspector/screenreader.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "screenreader.h"
#include "optionswidget.h"
diff --git a/util/accessibilityinspector/screenreader.h b/util/accessibilityinspector/screenreader.h
index 8a0b2322f3..d8e70b7471 100644
--- a/util/accessibilityinspector/screenreader.h
+++ b/util/accessibilityinspector/screenreader.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the tools applications of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SCREENREADER_H
diff --git a/util/aglfn/main.cpp b/util/aglfn/main.cpp
index 008121b8cb..afcf8c2b2c 100644
--- a/util/aglfn/main.cpp
+++ b/util/aglfn/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <qbytearray.h>
#include <qlist.h>
@@ -147,44 +122,9 @@ int main(int, char **)
readGlyphList();
QByteArray header =
- "/****************************************************************************\n"
- "**\n"
- "** Copyright (C) 2016 The Qt Company Ltd.\n"
- "** Contact: https://www.qt.io/licensing/\n"
- "**\n"
- "** This file is part of the utils of the Qt Toolkit.\n"
- "**\n"
- "** $QT_BEGIN_LICENSE:LGPL$\n"
- "** Commercial License Usage\n"
- "** Licensees holding valid commercial Qt licenses may use this file in\n"
- "** accordance with the commercial license agreement provided with the\n"
- "** Software or, alternatively, in accordance with the terms contained in\n"
- "** a written agreement between you and The Qt Company. For licensing terms\n"
- "** and conditions see https://www.qt.io/terms-conditions. For further\n"
- "** information use the contact form at https://www.qt.io/contact-us.\n"
- "**\n"
- "** GNU Lesser General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU Lesser\n"
- "** General Public License version 3 as published by the Free Software\n"
- "** Foundation and appearing in the file LICENSE.LGPL3 included in the\n"
- "** packaging of this file. Please review the following information to\n"
- "** ensure the GNU Lesser General Public License version 3 requirements\n"
- "** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.\n"
- "**\n"
- "** GNU General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU\n"
- "** General Public License version 2.0 or (at your option) the GNU General\n"
- "** Public license version 3 or any later version approved by the KDE Free\n"
- "** Qt Foundation. The licenses are as published by the Free Software\n"
- "** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3\n"
- "** included in the packaging of this file. Please review the following\n"
- "** information to ensure the GNU General Public License requirements will\n"
- "** be met: https://www.gnu.org/licenses/gpl-2.0.html and\n"
- "** https://www.gnu.org/licenses/gpl-3.0.html.\n"
- "**\n"
- "** $QT_END_LICENSE$\n"
- "**\n"
- "****************************************************************************/\n\n";
+ "// Copyright (C) 2016 The Qt Company Ltd.\n"
+ "// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only\n"
+ "\n";
QByteArray note =
"/* This file is autogenerated from the Adobe Glyph List database" +
diff --git a/util/android/android_emulator_launcher.sh b/util/android/android_emulator_launcher.sh
deleted file mode 100755
index 06cc00a0c7..0000000000
--- a/util/android/android_emulator_launcher.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/bash
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-# This util launches the Android emulator and ensures it doesn't stuck/freeze
-# by detecting that and restarting it
-
-set -ex
-
-EMULATOR_TIMEOUT=30
-EMULATOR_MAX_RETRIES=5
-EMULATOR_EXEC="$ANDROID_SDK_HOME/emulator/emulator"
-ADB_EXEC="$ANDROID_SDK_HOME/platform-tools/adb"
-if [[ -z "${ANDROID_EMULATOR}" ]]; then
- EMULATOR_NAME="@x86emulator"
-else
- EMULATOR_NAME="$ANDROID_EMULATOR"
-fi
-RESULT=0
-
-for counter in `seq 1 ${EMULATOR_MAX_RETRIES}`; do
- $ADB_EXEC start-server
- echo "Starting emulator, try ${counter}/${EMULATOR_MAX_RETRIES}"
- $EMULATOR_EXEC $EMULATOR_NAME -gpu swiftshader_indirect -no-audio -partition-size 4096 -cores 4 -memory 3500 -no-snapshot-load -no-snapshot-save &>/dev/null &
- emulator_pid=$!
-
- # Give emulator time to start
- sleep $EMULATOR_TIMEOUT
-
- emulator_status=`$ADB_EXEC devices | tail -n -2 | awk '{print $2}'`
-
- # If emulator status is still offline after timeout period,
- # we can assume it's stuck, and we must restart it
- if [[ $emulator_status == 'online' || $emulator_status == 'device' ]]; then
- echo "Emulator started successfully"
- break
- else
- if [ $counter -lt $EMULATOR_MAX_RETRIES ]; then
- echo "Emulator failed to start, forcefully killing current instance"
- kill $emulator_pid || true
- sleep 5
- elif [ $counter -eq $EMULATOR_MAX_RETRIES ]; then
- echo "Emulator failed to start, reached maximum number of retries"
- RESULT=-1
- break
- fi
- fi
-done
-
-exit $RESULT
diff --git a/util/cmake/README.md b/util/cmake/README.md
index f8a6e9f540..0d80fbcdce 100644
--- a/util/cmake/README.md
+++ b/util/cmake/README.md
@@ -2,6 +2,9 @@
This directory holds scripts to help the porting process from `qmake` to `cmake` for Qt6.
+If you're looking to port your own Qt-based project from `qmake` to `cmake`, please use
+[qmake2cmake](https://wiki.qt.io/Qmake2cmake).
+
# Requirements
* [Python 3.7](https://www.python.org/downloads/),
@@ -39,22 +42,16 @@ python3.7 -m pip install -r requirements.txt
You can verify if the styling of a script is compliant with PEP8, with a couple of exceptions:
Install [flake8](http://flake8.pycqa.org/en/latest/) (`pip install flake8`) and run it
-on the script you want to test:
+on all python source files:
```
-flake8 <file>.py --ignore=E501,E266,W503
+make flake8
```
-* `E501`: Line too long (82>79 characters),
-* `E266`: Too many leading '#' for block comment,
-* `W503`: Line break occurred before a binary operator)
-
You can also modify the file with an automatic formatter,
like [black](https://black.readthedocs.io/en/stable/) (`pip install black`),
and execute it:
```
-black -l 100 <file>.py
+make format
```
-
-Using Qt's maximum line length, 100.
diff --git a/util/cmake/cmakeconversionrate.py b/util/cmake/cmakeconversionrate.py
index b87957df6c..012ef1ee2d 100755
--- a/util/cmake/cmakeconversionrate.py
+++ b/util/cmake/cmakeconversionrate.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from argparse import ArgumentParser
@@ -46,7 +21,7 @@ def _parse_commandline():
)
parser.add_argument(
"binary_directory",
- metavar="<CMake build direcotry>",
+ metavar="<CMake build directory>",
type=str,
help="The CMake build directory (might be empty)",
)
diff --git a/util/cmake/condition_simplifier.py b/util/cmake/condition_simplifier.py
index e6588a7cc7..a540ee0519 100644..100755
--- a/util/cmake/condition_simplifier.py
+++ b/util/cmake/condition_simplifier.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import re
@@ -72,8 +47,8 @@ def _simplify_expressions(expr, op, matches, replacement):
def _simplify_flavors_in_condition(base: str, flavors, expr):
- """ Simplify conditions based on the knowledge of which flavors
- belong to which OS. """
+ """Simplify conditions based on the knowledge of which flavors
+ belong to which OS."""
base_expr = simplify_logic(base)
false_expr = simplify_logic("false")
for flavor in flavors:
@@ -100,15 +75,15 @@ def _simplify_os_families(expr, family_members, other_family_members):
def _recursive_simplify(expr):
- """ Simplify the expression as much as possible based on
- domain knowledge. """
+ """Simplify the expression as much as possible based on
+ domain knowledge."""
input_expr = expr
# Simplify even further, based on domain knowledge:
# windowses = ('WIN32', 'WINRT')
apples = ("MACOS", "UIKIT", "IOS", "TVOS", "WATCHOS")
bsds = ("FREEBSD", "OPENBSD", "NETBSD")
- androids = ("ANDROID", "ANDROID_EMBEDDED")
+ androids = ("ANDROID",)
unixes = (
"APPLE",
*apples,
@@ -140,7 +115,6 @@ def _recursive_simplify(expr):
expr = _simplify_flavors_in_condition("APPLE", apples, expr)
expr = _simplify_flavors_in_condition("BSD", bsds, expr)
expr = _simplify_flavors_in_condition("UNIX", unixes, expr)
- expr = _simplify_flavors_in_condition("ANDROID", ("ANDROID_EMBEDDED",), expr)
# Simplify families of OSes against other families:
expr = _simplify_os_families(expr, ("WIN32", "WINRT"), unixes)
diff --git a/util/cmake/condition_simplifier_cache.py b/util/cmake/condition_simplifier_cache.py
index 58cd5b88c5..5995c5bb81 100644..100755
--- a/util/cmake/condition_simplifier_cache.py
+++ b/util/cmake/condition_simplifier_cache.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import atexit
@@ -105,11 +80,7 @@ def open_file_safe(file_path: str, mode: str = "r+"):
try:
import portalocker # type: ignore
- file_open_func = portalocker.Lock
- file_open_args = [file_path]
- file_open_kwargs = {"mode": mode, "flags": portalocker.LOCK_EX}
- file_handle = file_open_func(*file_open_args, **file_open_kwargs)
- return file_handle
+ return portalocker.Lock(file_path, mode=mode, flags=portalocker.LOCK_EX)
except ImportError:
print(
"The conversion script is missing a required package: portalocker. Please run "
diff --git a/util/cmake/configurejson2cmake.py b/util/cmake/configurejson2cmake.py
index b5e148f63c..50a40f6112 100755
--- a/util/cmake/configurejson2cmake.py
+++ b/util/cmake/configurejson2cmake.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import json_parser
import posixpath
@@ -611,7 +586,7 @@ def write_compile_test(
head = detail.get("head")
if isinstance(head, list):
head = "\n".join(head)
- return head + '\n' if head else ''
+ return head + "\n" if head else ""
head = ""
if inherit_details:
@@ -646,7 +621,7 @@ def write_compile_test(
tail = detail.get("tail")
if isinstance(tail, list):
tail = "\n".join(tail)
- return tail + '\n' if tail else ''
+ return tail + "\n" if tail else ""
tail = ""
if inherit_details:
@@ -655,8 +630,8 @@ def write_compile_test(
sourceCode += tail
- if sourceCode: # blank line before main
- sourceCode += '\n'
+ if sourceCode: # blank line before main
+ sourceCode += "\n"
sourceCode += "int main(void)\n"
sourceCode += "{\n"
sourceCode += " /* BEGIN TEST: */\n"
@@ -665,7 +640,7 @@ def write_compile_test(
main = detail.get("main")
if isinstance(main, list):
main = "\n".join(main)
- return main + '\n' if main else ''
+ return main + "\n" if main else ""
main = ""
if inherit_details:
@@ -934,7 +909,7 @@ endif()""",
"condition": "__qt_ltcg_detected",
},
"msvc_mp": None,
- "simulator_and_device": {"condition": "UIKIT AND NOT QT_UIKIT_SDK"},
+ "simulator_and_device": {"condition": "UIKIT AND NOT QT_APPLE_SDK"},
"pkg-config": {"condition": "PKG_CONFIG_FOUND"},
"precompile_header": {"condition": "BUILD_WITH_PCH"},
"profile": None,
@@ -943,7 +918,11 @@ endif()""",
"qreal": {
"condition": 'DEFINED QT_COORD_TYPE AND NOT QT_COORD_TYPE STREQUAL "double"',
"output": [
- {"type": "define", "name": "QT_COORD_TYPE", "value": "${QT_COORD_TYPE}",},
+ {
+ "type": "define",
+ "name": "QT_COORD_TYPE",
+ "value": "${QT_COORD_TYPE}",
+ },
{
"type": "define",
"name": "QT_COORD_TYPE_STRING",
@@ -951,7 +930,9 @@ endif()""",
},
],
},
- "reduce_exports": {"condition": "NOT MSVC",},
+ "reduce_exports": {
+ "condition": "NOT MSVC",
+ },
"release": None,
"release_tools": None,
"rpath": {
@@ -1407,11 +1388,6 @@ def parseCommandLinePrefixes(ctx, data, cm_fh):
cm_fh.write(f"qt_commandline_prefix({key} {data[key]})\n")
-def parseCommandLineAssignments(ctx, data, cm_fh):
- for key in data:
- cm_fh.write(f"qt_commandline_assignment({key} {data[key]})\n")
-
-
def processCommandLine(ctx, data, cm_fh):
print(" commandline:")
@@ -1433,8 +1409,7 @@ def processCommandLine(ctx, data, cm_fh):
print(" prefix:")
parseCommandLinePrefixes(ctx, commandLine["prefix"], cm_fh)
if "assignments" in commandLine:
- print(" assignments:")
- parseCommandLineAssignments(ctx, commandLine["assignments"], cm_fh)
+ print(" assignments are ignored")
def processInputs(ctx, data, cm_fh):
@@ -1524,6 +1499,7 @@ class special_cased_file:
self.sc_handler.handle_special_cases()
os.replace(self.gen_file_path, self.file_path)
+
def processJson(path, ctx, data, skip_special_case_preservation=False):
ctx["project_dir"] = path
ctx["module"] = data.get("module", "global")
@@ -1571,7 +1547,7 @@ def main():
quit(1)
directory = sys.argv[1]
- skip_special_case_preservation = '-s' in sys.argv[2:]
+ skip_special_case_preservation = "-s" in sys.argv[2:]
print(f"Processing: {directory}.")
diff --git a/util/cmake/generate_module_map.sh b/util/cmake/generate_module_map.sh
index 1ca0bfc43c..8cca1c0aa3 100755
--- a/util/cmake/generate_module_map.sh
+++ b/util/cmake/generate_module_map.sh
@@ -1,31 +1,6 @@
#!/usr/bin/bash
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
pro_files=$(find . -name \*.pro)
diff --git a/util/cmake/helper.py b/util/cmake/helper.py
index dcb2b611b5..3e9f4d73b2 100644
--- a/util/cmake/helper.py
+++ b/util/cmake/helper.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import re
import typing
@@ -39,6 +14,7 @@ class LibraryMapping:
*,
resultVariable: typing.Optional[str] = None,
extra: typing.List[str] = [],
+ components: typing.Optional[typing.List[str]] = None,
appendFoundSuffix: bool = True,
emit_if: str = "",
is_bundled_with_qt: bool = False,
@@ -52,6 +28,7 @@ class LibraryMapping:
self.appendFoundSuffix = appendFoundSuffix
# Allows passing addiitonal arguments to the generated find_package call.
self.extra = extra
+ self.components = components
self.targetName = targetName
# True if qt bundles the library sources as part of Qt.
@@ -77,332 +54,309 @@ class LibraryMapping:
_qt_library_map = [
# Qt:
- LibraryMapping(
- "androidextras", "Qt6", "Qt::AndroidExtras", extra=["COMPONENTS", "AndroidExtras"]
- ),
- LibraryMapping("3danimation", "Qt6", "Qt::3DAnimation", extra=["COMPONENTS", "3DAnimation"]),
- LibraryMapping("3dcore", "Qt6", "Qt::3DCore", extra=["COMPONENTS", "3DCore"]),
- LibraryMapping("3dcoretest", "Qt6", "Qt::3DCoreTest", extra=["COMPONENTS", "3DCoreTest"]),
- LibraryMapping("3dextras", "Qt6", "Qt::3DExtras", extra=["COMPONENTS", "3DExtras"]),
- LibraryMapping("3dinput", "Qt6", "Qt::3DInput", extra=["COMPONENTS", "3DInput"]),
- LibraryMapping("3dlogic", "Qt6", "Qt::3DLogic", extra=["COMPONENTS", "3DLogic"]),
- LibraryMapping("3dquick", "Qt6", "Qt::3DQuick", extra=["COMPONENTS", "3DQuick"]),
- LibraryMapping(
- "3dquickextras", "Qt6", "Qt::3DQuickExtras", extra=["COMPONENTS", "3DQuickExtras"]
- ),
- LibraryMapping("3dquickinput", "Qt6", "Qt::3DQuickInput", extra=["COMPONENTS", "3DQuickInput"]),
- LibraryMapping(
- "3dquickrender", "Qt6", "Qt::3DQuickRender", extra=["COMPONENTS", "3DQuickRender"]
- ),
- LibraryMapping("3drender", "Qt6", "Qt::3DRender", extra=["COMPONENTS", "3DRender"]),
- LibraryMapping(
- "application-lib", "Qt6", "Qt::AppManApplication", extra=["COMPONENTS", "AppManApplication"]
- ),
- LibraryMapping("axbase", "Qt6", "Qt::AxBasePrivate", extra=["COMPONENTS", "AxBasePrivate"]),
- LibraryMapping("axcontainer", "Qt6", "Qt::AxContainer", extra=["COMPONENTS", "AxContainer"]),
- LibraryMapping("axserver", "Qt6", "Qt::AxServer", extra=["COMPONENTS", "AxServer"]),
- LibraryMapping("bluetooth", "Qt6", "Qt::Bluetooth", extra=["COMPONENTS", "Bluetooth"]),
- LibraryMapping("bootstrap", "Qt6", "Qt::Bootstrap", extra=["COMPONENTS", "Bootstrap"]),
+ LibraryMapping("androidextras", "Qt6", "Qt::AndroidExtras", components=["AndroidExtras"]),
+ LibraryMapping("3danimation", "Qt6", "Qt::3DAnimation", components=["3DAnimation"]),
+ LibraryMapping("3dcore", "Qt6", "Qt::3DCore", components=["3DCore"]),
+ LibraryMapping("3dcoretest", "Qt6", "Qt::3DCoreTest", components=["3DCoreTest"]),
+ LibraryMapping("3dextras", "Qt6", "Qt::3DExtras", components=["3DExtras"]),
+ LibraryMapping("3dinput", "Qt6", "Qt::3DInput", components=["3DInput"]),
+ LibraryMapping("3dlogic", "Qt6", "Qt::3DLogic", components=["3DLogic"]),
+ LibraryMapping("3dquick", "Qt6", "Qt::3DQuick", components=["3DQuick"]),
+ LibraryMapping("3dquickextras", "Qt6", "Qt::3DQuickExtras", components=["3DQuickExtras"]),
+ LibraryMapping("3dquickinput", "Qt6", "Qt::3DQuickInput", components=["3DQuickInput"]),
+ LibraryMapping("3dquickrender", "Qt6", "Qt::3DQuickRender", components=["3DQuickRender"]),
+ LibraryMapping("3drender", "Qt6", "Qt::3DRender", components=["3DRender"]),
+ LibraryMapping(
+ "application-lib", "Qt6", "Qt::AppManApplication", components=["AppManApplication"]
+ ),
+ LibraryMapping("axbase", "Qt6", "Qt::AxBasePrivate", components=["AxBasePrivate"]),
+ LibraryMapping("axcontainer", "Qt6", "Qt::AxContainer", components=["AxContainer"]),
+ LibraryMapping("axserver", "Qt6", "Qt::AxServer", components=["AxServer"]),
+ LibraryMapping("bluetooth", "Qt6", "Qt::Bluetooth", components=["Bluetooth"]),
+ LibraryMapping("bootstrap", "Qt6", "Qt::Bootstrap", components=["Bootstrap"]),
# bootstrap-dbus: Not needed in Qt6!
- LibraryMapping("client", "Qt6", "Qt::WaylandClient", extra=["COMPONENTS", "WaylandClient"]),
- LibraryMapping("coap", "Qt6", "Qt::Coap", extra=["COMPONENTS", "Coap"]),
- LibraryMapping("common-lib", "Qt6", "Qt::AppManCommon", extra=["COMPONENTS", "AppManCommon"]),
- LibraryMapping(
- "compositor", "Qt6", "Qt::WaylandCompositor", extra=["COMPONENTS", "WaylandCompositor"]
- ),
- LibraryMapping("concurrent", "Qt6", "Qt::Concurrent", extra=["COMPONENTS", "Concurrent"]),
- LibraryMapping("container", "Qt6", "Qt::AxContainer", extra=["COMPONENTS", "AxContainer"]),
- LibraryMapping("control", "Qt6", "Qt::AxServer", extra=["COMPONENTS", "AxServer"]),
- LibraryMapping(
- "core_headers", "Qt6", "Qt::WebEngineCore", extra=["COMPONENTS", "WebEngineCore"]
- ),
- LibraryMapping("core", "Qt6", "Qt::Core", extra=["COMPONENTS", "Core"]),
- LibraryMapping("crypto-lib", "Qt6", "Qt::AppManCrypto", extra=["COMPONENTS", "AppManCrypto"]),
- LibraryMapping("dbus", "Qt6", "Qt::DBus", extra=["COMPONENTS", "DBus"]),
- LibraryMapping("designer", "Qt6", "Qt::Designer", extra=["COMPONENTS", "Designer"]),
+ LibraryMapping("client", "Qt6", "Qt::WaylandClient", components=["WaylandClient"]),
+ LibraryMapping("coap", "Qt6", "Qt::Coap", components=["Coap"]),
+ LibraryMapping("common-lib", "Qt6", "Qt::AppManCommon", components=["AppManCommon"]),
+ LibraryMapping("compositor", "Qt6", "Qt::WaylandCompositor", components=["WaylandCompositor"]),
+ LibraryMapping("concurrent", "Qt6", "Qt::Concurrent", components=["Concurrent"]),
+ LibraryMapping("container", "Qt6", "Qt::AxContainer", components=["AxContainer"]),
+ LibraryMapping("control", "Qt6", "Qt::AxServer", components=["AxServer"]),
+ LibraryMapping("core_headers", "Qt6", "Qt::WebEngineCore", components=["WebEngineCore"]),
+ LibraryMapping("core", "Qt6", "Qt::Core", components=["Core"]),
+ LibraryMapping("crypto-lib", "Qt6", "Qt::AppManCrypto", components=["AppManCrypto"]),
+ LibraryMapping("dbus", "Qt6", "Qt::DBus", components=["DBus"]),
+ LibraryMapping("designer", "Qt6", "Qt::Designer", components=["Designer"]),
LibraryMapping(
"designercomponents",
"Qt6",
"Qt::DesignerComponentsPrivate",
- extra=["COMPONENTS", "DesignerComponentsPrivate"],
+ components=["DesignerComponentsPrivate"],
),
LibraryMapping(
"devicediscovery",
"Qt6",
"Qt::DeviceDiscoverySupportPrivate",
- extra=["COMPONENTS", "DeviceDiscoverySupportPrivate"],
+ components=["DeviceDiscoverySupportPrivate"],
),
LibraryMapping(
"devicediscovery_support",
"Qt6",
"Qt::DeviceDiscoverySupportPrivate",
- extra=["COMPONENTS", "DeviceDiscoverySupportPrivate"],
+ components=["DeviceDiscoverySupportPrivate"],
),
- LibraryMapping("edid", "Qt6", "Qt::EdidSupport", extra=["COMPONENTS", "EdidSupport"]),
- LibraryMapping("edid_support", "Qt6", "Qt::EdidSupport", extra=["COMPONENTS", "EdidSupport"]),
- LibraryMapping("eglconvenience", "Qt6", "Qt::EglSupport", extra=["COMPONENTS", "EglSupport"]),
+ LibraryMapping("edid", "Qt6", "Qt::EdidSupport", components=["EdidSupport"]),
+ LibraryMapping("edid_support", "Qt6", "Qt::EdidSupport", components=["EdidSupport"]),
+ LibraryMapping("eglconvenience", "Qt6", "Qt::EglSupport", components=["EglSupport"]),
LibraryMapping(
"eglfsdeviceintegration",
"Qt6",
"Qt::EglFSDeviceIntegrationPrivate",
- extra=["COMPONENTS", "EglFSDeviceIntegrationPrivate"],
+ components=["EglFSDeviceIntegrationPrivate"],
),
LibraryMapping(
- "eglfs_kms_support", "Qt6", "Qt::EglFsKmsSupportPrivate", extra=["COMPONENTS", "EglFsKmsSupportPrivate"]
+ "eglfs_kms_support",
+ "Qt6",
+ "Qt::EglFsKmsSupportPrivate",
+ components=["EglFsKmsSupportPrivate"],
),
LibraryMapping(
"eglfs_kms_gbm_support",
"Qt6",
"Qt::EglFsKmsGbmSupportPrivate",
- extra=["COMPONENTS", "EglFsKmsGbmSupportPrivate"],
+ components=["EglFsKmsGbmSupportPrivate"],
),
- LibraryMapping("egl_support", "Qt6", "Qt::EglSupport", extra=["COMPONENTS", "EglSupport"]),
+ LibraryMapping("egl_support", "Qt6", "Qt::EglSupport", components=["EglSupport"]),
# enginio: Not needed in Qt6!
LibraryMapping(
"eventdispatchers",
"Qt6",
"Qt::EventDispatcherSupport",
- extra=["COMPONENTS", "EventDispatcherSupport"],
+ components=["EventDispatcherSupport"],
),
LibraryMapping(
"eventdispatcher_support",
"Qt6",
"Qt::EventDispatcherSupport",
- extra=["COMPONENTS", "EventDispatcherSupport"],
+ components=["EventDispatcherSupport"],
),
- LibraryMapping("fbconvenience", "Qt6", "Qt::FbSupportPrivate", extra=["COMPONENTS", "FbSupportPrivate"]),
- LibraryMapping("fb_support", "Qt6", "Qt::FbSupportPrivate", extra=["COMPONENTS", "FbSupportPrivate"]),
+ LibraryMapping("fbconvenience", "Qt6", "Qt::FbSupportPrivate", components=["FbSupportPrivate"]),
+ LibraryMapping("fb_support", "Qt6", "Qt::FbSupportPrivate", components=["FbSupportPrivate"]),
LibraryMapping(
"fontdatabase_support",
"Qt6",
"Qt::FontDatabaseSupport",
- extra=["COMPONENTS", "FontDatabaseSupport"],
+ components=["FontDatabaseSupport"],
),
- LibraryMapping("gamepad", "Qt6", "Qt::Gamepad", extra=["COMPONENTS", "Gamepad"]),
- LibraryMapping("geniviextras", "Qt6", "Qt::GeniviExtras", extra=["COMPONENTS", "GeniviExtras"]),
- LibraryMapping(
- "global", "Qt6", "Qt::Core", extra=["COMPONENTS", "Core"]
- ), # manually added special case
- LibraryMapping("glx_support", "Qt6", "Qt::GlxSupport", extra=["COMPONENTS", "GlxSupport"]),
- LibraryMapping(
- "gsttools", "Qt6", "Qt::MultimediaGstTools", extra=["COMPONENTS", "MultimediaGstTools"]
- ),
- LibraryMapping("gui", "Qt6", "Qt::Gui", extra=["COMPONENTS", "Gui"]),
- LibraryMapping("help", "Qt6", "Qt::Help", extra=["COMPONENTS", "Help"]),
+ LibraryMapping("gamepad", "Qt6", "Qt::Gamepad", components=["Gamepad"]),
+ LibraryMapping("geniviextras", "Qt6", "Qt::GeniviExtras", components=["GeniviExtras"]),
+ LibraryMapping("global", "Qt6", "Qt::Core", components=["Core"]), # manually added special case
+ LibraryMapping("glx_support", "Qt6", "Qt::GlxSupport", components=["GlxSupport"]),
+ LibraryMapping("gsttools", "Qt6", "Qt::MultimediaGstTools", components=["MultimediaGstTools"]),
+ LibraryMapping("gui", "Qt6", "Qt::Gui", components=["Gui"]),
+ LibraryMapping("help", "Qt6", "Qt::Help", components=["Help"]),
LibraryMapping(
"hunspellinputmethod",
"Qt6",
"Qt::HunspellInputMethodPrivate",
- extra=["COMPONENTS", "HunspellInputMethodPrivate"],
- ),
- LibraryMapping("input", "Qt6", "Qt::InputSupportPrivate", extra=["COMPONENTS", "InputSupportPrivate"]),
- LibraryMapping(
- "input_support", "Qt6", "Qt::InputSupportPrivate", extra=["COMPONENTS", "InputSupportPrivate"]
+ components=["HunspellInputMethodPrivate"],
),
+ LibraryMapping("input", "Qt6", "Qt::InputSupportPrivate", components=["InputSupportPrivate"]),
LibraryMapping(
- "installer-lib", "Qt6", "Qt::AppManInstaller", extra=["COMPONENTS", "AppManInstaller"]
+ "input_support",
+ "Qt6",
+ "Qt::InputSupportPrivate",
+ components=["InputSupportPrivate"],
),
- LibraryMapping("ivi", "Qt6", "Qt::Ivi", extra=["COMPONENTS", "Ivi"]),
- LibraryMapping("ivicore", "Qt6", "Qt::IviCore", extra=["COMPONENTS", "IviCore"]),
- LibraryMapping("ivimedia", "Qt6", "Qt::IviMedia", extra=["COMPONENTS", "IviMedia"]),
- LibraryMapping("knx", "Qt6", "Qt::Knx", extra=["COMPONENTS", "Knx"]),
- LibraryMapping("kmsconvenience", "Qt6", "Qt::KmsSupportPrivate", extra=["COMPONENTS", "KmsSupportPrivate"]),
- LibraryMapping("kms_support", "Qt6", "Qt::KmsSupportPrivate", extra=["COMPONENTS", "KmsSupportPrivate"]),
+ LibraryMapping("installer-lib", "Qt6", "Qt::AppManInstaller", components=["AppManInstaller"]),
+ LibraryMapping("ivi", "Qt6", "Qt::Ivi", components=["Ivi"]),
+ LibraryMapping("ivicore", "Qt6", "Qt::IviCore", components=["IviCore"]),
+ LibraryMapping("ivimedia", "Qt6", "Qt::IviMedia", components=["IviMedia"]),
+ LibraryMapping("knx", "Qt6", "Qt::Knx", components=["Knx"]),
LibraryMapping(
- "launcher-lib", "Qt6", "Qt::AppManLauncher", extra=["COMPONENTS", "AppManLauncher"]
+ "kmsconvenience", "Qt6", "Qt::KmsSupportPrivate", components=["KmsSupportPrivate"]
),
- LibraryMapping("lib", "Qt6", "Qt::Designer", extra=["COMPONENTS", "Designer"]),
+ LibraryMapping("kms_support", "Qt6", "Qt::KmsSupportPrivate", components=["KmsSupportPrivate"]),
+ LibraryMapping("launcher-lib", "Qt6", "Qt::AppManLauncher", components=["AppManLauncher"]),
+ LibraryMapping("lib", "Qt6", "Qt::Designer", components=["Designer"]),
LibraryMapping(
"linuxaccessibility_support",
"Qt6",
"Qt::LinuxAccessibilitySupport",
- extra=["COMPONENTS", "LinuxAccessibilitySupport"],
- ),
- LibraryMapping("location", "Qt6", "Qt::Location", extra=["COMPONENTS", "Location"]),
- LibraryMapping("macextras", "Qt6", "Qt::MacExtras", extra=["COMPONENTS", "MacExtras"]),
- LibraryMapping("main-lib", "Qt6", "Qt::AppManMain", extra=["COMPONENTS", "AppManMain"]),
- LibraryMapping(
- "manager-lib", "Qt6", "Qt::AppManManager", extra=["COMPONENTS", "AppManManager"]
- ),
- LibraryMapping(
- "monitor-lib", "Qt6", "Qt::AppManMonitor", extra=["COMPONENTS", "AppManMonitor"]
+ components=["LinuxAccessibilitySupport"],
),
- LibraryMapping("mqtt", "Qt6", "Qt::Mqtt", extra=["COMPONENTS", "Mqtt"]),
- LibraryMapping("multimedia", "Qt6", "Qt::Multimedia", extra=["COMPONENTS", "Multimedia"]),
+ LibraryMapping("location", "Qt6", "Qt::Location", components=["Location"]),
+ LibraryMapping("macextras", "Qt6", "Qt::MacExtras", components=["MacExtras"]),
+ LibraryMapping("main-lib", "Qt6", "Qt::AppManMain", components=["AppManMain"]),
+ LibraryMapping("manager-lib", "Qt6", "Qt::AppManManager", components=["AppManManager"]),
+ LibraryMapping("monitor-lib", "Qt6", "Qt::AppManMonitor", components=["AppManMonitor"]),
+ LibraryMapping("mqtt", "Qt6", "Qt::Mqtt", components=["Mqtt"]),
+ LibraryMapping("multimedia", "Qt6", "Qt::Multimedia", components=["Multimedia"]),
LibraryMapping(
"multimediawidgets",
"Qt6",
"Qt::MultimediaWidgets",
- extra=["COMPONENTS", "MultimediaWidgets"],
- ),
- LibraryMapping("network", "Qt6", "Qt::Network", extra=["COMPONENTS", "Network"]),
- LibraryMapping("networkauth", "Qt6", "Qt::NetworkAuth", extra=["COMPONENTS", "NetworkAuth"]),
- LibraryMapping("nfc", "Qt6", "Qt::Nfc", extra=["COMPONENTS", "Nfc"]),
- LibraryMapping("oauth", "Qt6", "Qt::NetworkAuth", extra=["COMPONENTS", "NetworkAuth"]),
- LibraryMapping("opcua", "Qt6", "Qt::OpcUa", extra=["COMPONENTS", "OpcUa"]),
- LibraryMapping(
- "opcua_private", "Qt6", "Qt::OpcUaPrivate", extra=["COMPONENTS", "OpcUaPrivate"]
- ),
- LibraryMapping("opengl", "Qt6", "Qt::OpenGL", extra=["COMPONENTS", "OpenGL"]),
- LibraryMapping(
- "openglwidgets", "Qt6", "Qt::OpenGLWidgets", extra=["COMPONENTS", "OpenGLWidgets"]
+ components=["MultimediaWidgets"],
+ ),
+ LibraryMapping("network", "Qt6", "Qt::Network", components=["Network"]),
+ LibraryMapping("networkauth", "Qt6", "Qt::NetworkAuth", components=["NetworkAuth"]),
+ LibraryMapping("nfc", "Qt6", "Qt::Nfc", components=["Nfc"]),
+ LibraryMapping("oauth", "Qt6", "Qt::NetworkAuth", components=["NetworkAuth"]),
+ LibraryMapping("opcua", "Qt6", "Qt::OpcUa", components=["OpcUa"]),
+ LibraryMapping("opcua_private", "Qt6", "Qt::OpcUaPrivate", components=["OpcUaPrivate"]),
+ LibraryMapping("opengl", "Qt6", "Qt::OpenGL", components=["OpenGL"]),
+ LibraryMapping("openglwidgets", "Qt6", "Qt::OpenGLWidgets", components=["OpenGLWidgets"]),
+ LibraryMapping("package-lib", "Qt6", "Qt::AppManPackage", components=["AppManPackage"]),
+ LibraryMapping(
+ "packetprotocol",
+ "Qt6",
+ "Qt::PacketProtocolPrivate",
+ components=["PacketProtocolPrivate"],
),
LibraryMapping(
- "package-lib", "Qt6", "Qt::AppManPackage", extra=["COMPONENTS", "AppManPackage"]
+ "particles",
+ "Qt6",
+ "Qt::QuickParticlesPrivate",
+ components=["QuickParticlesPrivate"],
),
LibraryMapping(
- "packetprotocol", "Qt6", "Qt::PacketProtocolPrivate", extra=["COMPONENTS", "PacketProtocolPrivate"]
+ "plugin-interfaces",
+ "Qt6",
+ "Qt::AppManPluginInterfaces",
+ components=["AppManPluginInterfaces"],
),
+ LibraryMapping("positioning", "Qt6", "Qt::Positioning", components=["Positioning"]),
LibraryMapping(
- "particles", "Qt6", "Qt::QuickParticlesPrivate", extra=["COMPONENTS", "QuickParticlesPrivate"]
+ "positioningquick", "Qt6", "Qt::PositioningQuick", components=["PositioningQuick"]
),
+ LibraryMapping("printsupport", "Qt6", "Qt::PrintSupport", components=["PrintSupport"]),
+ LibraryMapping("purchasing", "Qt6", "Qt::Purchasing", components=["Purchasing"]),
+ LibraryMapping("qmldebug", "Qt6", "Qt::QmlDebugPrivate", components=["QmlDebugPrivate"]),
LibraryMapping(
- "plugin-interfaces",
- "Qt6",
- "Qt::AppManPluginInterfaces",
- extra=["COMPONENTS", "AppManPluginInterfaces"],
+ "qmldevtools", "Qt6", "Qt::QmlDevToolsPrivate", components=["QmlDevToolsPrivate"]
),
- LibraryMapping("positioning", "Qt6", "Qt::Positioning", extra=["COMPONENTS", "Positioning"]),
LibraryMapping(
- "positioningquick", "Qt6", "Qt::PositioningQuick", extra=["COMPONENTS", "PositioningQuick"]
+ "qmlcompiler", "Qt6", "Qt::QmlCompilerPrivate", components=["QmlCompilerPrivate"]
),
- LibraryMapping("printsupport", "Qt6", "Qt::PrintSupport", extra=["COMPONENTS", "PrintSupport"]),
- LibraryMapping("purchasing", "Qt6", "Qt::Purchasing", extra=["COMPONENTS", "Purchasing"]),
- LibraryMapping("qmldebug", "Qt6", "Qt::QmlDebugPrivate", extra=["COMPONENTS", "QmlDebugPrivate"]),
- LibraryMapping("qmldevtools", "Qt6", "Qt::QmlDevToolsPrivate", extra=["COMPONENTS", "QmlDevToolsPrivate"]),
- LibraryMapping("qmlcompiler", "Qt6", "Qt::QmlCompilerPrivate", extra=["COMPONENTS", "QmlCompilerPrivate"]),
- LibraryMapping("qml", "Qt6", "Qt::Qml", extra=["COMPONENTS", "Qml"]),
- LibraryMapping("qmldom", "Qt6", "Qt::QmlDomPrivate", extra=["COMPONENTS", "QmlDomPrivate"]),
- LibraryMapping("qmlmodels", "Qt6", "Qt::QmlModels", extra=["COMPONENTS", "QmlModels"]),
- LibraryMapping("qmltest", "Qt6", "Qt::QuickTest", extra=["COMPONENTS", "QuickTest"]),
+ LibraryMapping("qml", "Qt6", "Qt::Qml", components=["Qml"]),
+ LibraryMapping("qmldom", "Qt6", "Qt::QmlDomPrivate", components=["QmlDomPrivate"]),
+ LibraryMapping("qmlmodels", "Qt6", "Qt::QmlModels", components=["QmlModels"]),
+ LibraryMapping("qmltest", "Qt6", "Qt::QuickTest", components=["QuickTest"]),
LibraryMapping(
"qtmultimediaquicktools",
"Qt6",
"Qt::MultimediaQuickPrivate",
- extra=["COMPONENTS", "MultimediaQuickPrivate"],
+ components=["MultimediaQuickPrivate"],
),
LibraryMapping(
"quick3dassetimport",
"Qt6",
"Qt::Quick3DAssetImport",
- extra=["COMPONENTS", "Quick3DAssetImport"],
- ),
- LibraryMapping("core5compat", "Qt6", "Qt::Core5Compat", extra=["COMPONENTS", "Core5Compat"]),
- LibraryMapping("quick3d", "Qt6", "Qt::Quick3D", extra=["COMPONENTS", "Quick3D"]),
- LibraryMapping(
- "quick3drender", "Qt6", "Qt::Quick3DRender", extra=["COMPONENTS", "Quick3DRender"]
+ components=["Quick3DAssetImport"],
),
+ LibraryMapping("core5compat", "Qt6", "Qt::Core5Compat", components=["Core5Compat"]),
+ LibraryMapping("quick3d", "Qt6", "Qt::Quick3D", components=["Quick3D"]),
+ LibraryMapping("quick3drender", "Qt6", "Qt::Quick3DRender", components=["Quick3DRender"]),
LibraryMapping(
"quick3druntimerender",
"Qt6",
"Qt::Quick3DRuntimeRender",
- extra=["COMPONENTS", "Quick3DRuntimeRender"],
- ),
- LibraryMapping("quick3dutils", "Qt6", "Qt::Quick3DUtils", extra=["COMPONENTS", "Quick3DUtils"]),
- LibraryMapping(
- "quickcontrols2", "Qt6", "Qt::QuickControls2", extra=["COMPONENTS", "QuickControls2"]
+ components=["Quick3DRuntimeRender"],
),
+ LibraryMapping("quick3dutils", "Qt6", "Qt::Quick3DUtils", components=["Quick3DUtils"]),
+ LibraryMapping("quickcontrols2", "Qt6", "Qt::QuickControls2", components=["QuickControls2"]),
LibraryMapping(
"quickcontrols2impl",
"Qt6",
"Qt::QuickControls2Impl",
- extra=["COMPONENTS", "QuickControls2Impl"],
- ),
- LibraryMapping("quick", "Qt6", "Qt::Quick", extra=["COMPONENTS", "Quick"]),
- LibraryMapping("quickshapes", "Qt6", "Qt::QuickShapesPrivate", extra=["COMPONENTS", "QuickShapesPrivate"]),
- LibraryMapping(
- "quicktemplates2", "Qt6", "Qt::QuickTemplates2", extra=["COMPONENTS", "QuickTemplates2"]
- ),
- LibraryMapping("quickwidgets", "Qt6", "Qt::QuickWidgets", extra=["COMPONENTS", "QuickWidgets"]),
- LibraryMapping(
- "remoteobjects", "Qt6", "Qt::RemoteObjects", extra=["COMPONENTS", "RemoteObjects"]
- ),
- LibraryMapping("script", "Qt6", "Qt::Script", extra=["COMPONENTS", "Script"]),
- LibraryMapping("scripttools", "Qt6", "Qt::ScriptTools", extra=["COMPONENTS", "ScriptTools"]),
- LibraryMapping("scxml", "Qt6", "Qt::Scxml", extra=["COMPONENTS", "Scxml"]),
- LibraryMapping("sensors", "Qt6", "Qt::Sensors", extra=["COMPONENTS", "Sensors"]),
- LibraryMapping("serialport", "Qt6", "Qt::SerialPort", extra=["COMPONENTS", "SerialPort"]),
- LibraryMapping("serialbus", "Qt6", "Qt::SerialBus", extra=["COMPONENTS", "SerialBus"]),
- LibraryMapping("services", "Qt6", "Qt::ServiceSupport", extra=["COMPONENTS", "ServiceSupport"]),
- LibraryMapping(
- "service_support", "Qt6", "Qt::ServiceSupport", extra=["COMPONENTS", "ServiceSupport"]
- ),
- LibraryMapping("shadertools", "Qt6", "Qt::ShaderTools", extra=["COMPONENTS", "ShaderTools"]),
- LibraryMapping("statemachine", "Qt6", "Qt::StateMachine", extra=["COMPONENTS", "StateMachine"]),
- LibraryMapping("sql", "Qt6", "Qt::Sql", extra=["COMPONENTS", "Sql"]),
- LibraryMapping("svg", "Qt6", "Qt::Svg", extra=["COMPONENTS", "Svg"]),
- LibraryMapping("svgwidgets", "Qt6", "Qt::SvgWidgets", extra=["COMPONENTS", "SvgWidgets"]),
- LibraryMapping("charts", "Qt6", "Qt::Charts", extra=["COMPONENTS", "Charts"]),
- LibraryMapping("testlib", "Qt6", "Qt::Test", extra=["COMPONENTS", "Test"]),
- LibraryMapping("texttospeech", "Qt6", "Qt::TextToSpeech", extra=["COMPONENTS", "TextToSpeech"]),
- LibraryMapping(
- "theme_support", "Qt6", "Qt::ThemeSupport", extra=["COMPONENTS", "ThemeSupport"]
- ),
- LibraryMapping("tts", "Qt6", "Qt::TextToSpeech", extra=["COMPONENTS", "TextToSpeech"]),
- LibraryMapping("uiplugin", "Qt6", "Qt::UiPlugin", extra=["COMPONENTS", "UiPlugin"]),
- LibraryMapping("uitools", "Qt6", "Qt::UiTools", extra=["COMPONENTS", "UiTools"]),
- LibraryMapping(
- "virtualkeyboard", "Qt6", "Qt::VirtualKeyboard", extra=["COMPONENTS", "VirtualKeyboard"]
- ),
- LibraryMapping(
- "waylandclient", "Qt6", "Qt::WaylandClient", extra=["COMPONENTS", "WaylandClient"]
- ),
+ components=["QuickControls2Impl"],
+ ),
+ LibraryMapping("quick", "Qt6", "Qt::Quick", components=["Quick"]),
+ LibraryMapping(
+ "quickshapes", "Qt6", "Qt::QuickShapesPrivate", components=["QuickShapesPrivate"]
+ ),
+ LibraryMapping("quicktemplates2", "Qt6", "Qt::QuickTemplates2", components=["QuickTemplates2"]),
+ LibraryMapping("quickwidgets", "Qt6", "Qt::QuickWidgets", components=["QuickWidgets"]),
+ LibraryMapping("remoteobjects", "Qt6", "Qt::RemoteObjects", components=["RemoteObjects"]),
+ LibraryMapping("script", "Qt6", "Qt::Script", components=["Script"]),
+ LibraryMapping("scripttools", "Qt6", "Qt::ScriptTools", components=["ScriptTools"]),
+ LibraryMapping("scxml", "Qt6", "Qt::Scxml", components=["Scxml"]),
+ LibraryMapping("sensors", "Qt6", "Qt::Sensors", components=["Sensors"]),
+ LibraryMapping("serialport", "Qt6", "Qt::SerialPort", components=["SerialPort"]),
+ LibraryMapping("serialbus", "Qt6", "Qt::SerialBus", components=["SerialBus"]),
+ LibraryMapping("services", "Qt6", "Qt::ServiceSupport", components=["ServiceSupport"]),
+ LibraryMapping("service_support", "Qt6", "Qt::ServiceSupport", components=["ServiceSupport"]),
+ LibraryMapping("shadertools", "Qt6", "Qt::ShaderTools", components=["ShaderTools"]),
+ LibraryMapping("statemachine", "Qt6", "Qt::StateMachine", components=["StateMachine"]),
+ LibraryMapping("sql", "Qt6", "Qt::Sql", components=["Sql"]),
+ LibraryMapping("svg", "Qt6", "Qt::Svg", components=["Svg"]),
+ LibraryMapping("svgwidgets", "Qt6", "Qt::SvgWidgets", components=["SvgWidgets"]),
+ LibraryMapping("charts", "Qt6", "Qt::Charts", components=["Charts"]),
+ LibraryMapping("testlib", "Qt6", "Qt::Test", components=["Test"]),
+ LibraryMapping("texttospeech", "Qt6", "Qt::TextToSpeech", components=["TextToSpeech"]),
+ LibraryMapping("theme_support", "Qt6", "Qt::ThemeSupport", components=["ThemeSupport"]),
+ LibraryMapping("tts", "Qt6", "Qt::TextToSpeech", components=["TextToSpeech"]),
+ LibraryMapping("uiplugin", "Qt6", "Qt::UiPlugin", components=["UiPlugin"]),
+ LibraryMapping("uitools", "Qt6", "Qt::UiTools", components=["UiTools"]),
+ LibraryMapping("virtualkeyboard", "Qt6", "Qt::VirtualKeyboard", components=["VirtualKeyboard"]),
+ LibraryMapping("waylandclient", "Qt6", "Qt::WaylandClient", components=["WaylandClient"]),
LibraryMapping(
"waylandcompositor",
"Qt6",
"Qt::WaylandCompositor",
- extra=["COMPONENTS", "WaylandCompositor"],
+ components=["WaylandCompositor"],
),
- LibraryMapping("webchannel", "Qt6", "Qt::WebChannel", extra=["COMPONENTS", "WebChannel"]),
- LibraryMapping("webengine", "Qt6", "Qt::WebEngine", extra=["COMPONENTS", "WebEngine"]),
+ LibraryMapping("webchannel", "Qt6", "Qt::WebChannel", components=["WebChannel"]),
+ LibraryMapping("webengine", "Qt6", "Qt::WebEngine", components=["WebEngine"]),
LibraryMapping(
- "webenginewidgets", "Qt6", "Qt::WebEngineWidgets", extra=["COMPONENTS", "WebEngineWidgets"]
+ "webenginewidgets", "Qt6", "Qt::WebEngineWidgets", components=["WebEngineWidgets"]
),
- LibraryMapping("websockets", "Qt6", "Qt::WebSockets", extra=["COMPONENTS", "WebSockets"]),
- LibraryMapping("webview", "Qt6", "Qt::WebView", extra=["COMPONENTS", "WebView"]),
- LibraryMapping("widgets", "Qt6", "Qt::Widgets", extra=["COMPONENTS", "Widgets"]),
- LibraryMapping("window-lib", "Qt6", "Qt::AppManWindow", extra=["COMPONENTS", "AppManWindow"]),
- LibraryMapping("winextras", "Qt6", "Qt::WinExtras", extra=["COMPONENTS", "WinExtras"]),
- LibraryMapping("x11extras", "Qt6", "Qt::X11Extras", extra=["COMPONENTS", "X11Extras"]),
- LibraryMapping("xcb_qpa_lib", "Qt6", "Qt::XcbQpaPrivate", extra=["COMPONENTS", "XcbQpaPrivate"]),
+ LibraryMapping("websockets", "Qt6", "Qt::WebSockets", components=["WebSockets"]),
+ LibraryMapping("webview", "Qt6", "Qt::WebView", components=["WebView"]),
+ LibraryMapping("widgets", "Qt6", "Qt::Widgets", components=["Widgets"]),
+ LibraryMapping("window-lib", "Qt6", "Qt::AppManWindow", components=["AppManWindow"]),
+ LibraryMapping("winextras", "Qt6", "Qt::WinExtras", components=["WinExtras"]),
+ LibraryMapping("x11extras", "Qt6", "Qt::X11Extras", components=["X11Extras"]),
+ LibraryMapping("xcb_qpa_lib", "Qt6", "Qt::XcbQpaPrivate", components=["XcbQpaPrivate"]),
LibraryMapping(
- "xkbcommon_support", "Qt6", "Qt::XkbCommonSupport", extra=["COMPONENTS", "XkbCommonSupport"]
+ "xkbcommon_support", "Qt6", "Qt::XkbCommonSupport", components=["XkbCommonSupport"]
),
- LibraryMapping("xmlpatterns", "Qt6", "Qt::XmlPatterns", extra=["COMPONENTS", "XmlPatterns"]),
- LibraryMapping("xml", "Qt6", "Qt::Xml", extra=["COMPONENTS", "Xml"]),
+ LibraryMapping("xmlpatterns", "Qt6", "Qt::XmlPatterns", components=["XmlPatterns"]),
+ LibraryMapping("xml", "Qt6", "Qt::Xml", components=["Xml"]),
+ LibraryMapping("qmlworkerscript", "Qt6", "Qt::QmlWorkerScript", components=["QmlWorkerScript"]),
LibraryMapping(
- "qmlworkerscript", "Qt6", "Qt::QmlWorkerScript", extra=["COMPONENTS", "QmlWorkerScript"]
- ),
- LibraryMapping(
- "quickparticles", "Qt6", "Qt::QuickParticlesPrivate", extra=["COMPONENTS", "QuickParticlesPrivate"]
+ "quickparticles",
+ "Qt6",
+ "Qt::QuickParticlesPrivate",
+ components=["QuickParticlesPrivate"],
),
LibraryMapping(
"linuxofono_support",
"Qt6",
"Qt::LinuxOfonoSupport",
- extra=["COMPONENTS", "LinuxOfonoSupport"],
+ components=["LinuxOfonoSupport"],
),
LibraryMapping(
"linuxofono_support_private",
"Qt6",
"Qt::LinuxOfonoSupportPrivate",
- extra=["COMPONENTS", "LinuxOfonoSupportPrivate"],
- ),
- LibraryMapping("tools", "Qt6", "Qt::Tools", extra=["COMPONENTS", "Tools"]),
- LibraryMapping("axcontainer", "Qt6", "Qt::AxContainer", extra=["COMPONENTS", "AxContainer"]),
- LibraryMapping(
- "webkitwidgets", "Qt6", "Qt::WebKitWidgets", extra=["COMPONENTS", "WebKitWidgets"]
- ),
- LibraryMapping("zlib", "Qt6", "Qt::Zlib", extra=["COMPONENTS", "Zlib"]),
- LibraryMapping("httpserver", "Qt6", "Qt::HttpServer", extra=["COMPONENTS", "HttpServer"]),
- LibraryMapping("sslserver", "Qt6", "Qt::SslServer", extra=["COMPONENTS", "HttpServer"]),
+ components=["LinuxOfonoSupportPrivate"],
+ ),
+ LibraryMapping("tools", "Qt6", "Qt::Tools", components=["Tools"]),
+ LibraryMapping("axcontainer", "Qt6", "Qt::AxContainer", components=["AxContainer"]),
+ LibraryMapping("webkitwidgets", "Qt6", "Qt::WebKitWidgets", components=["WebKitWidgets"]),
+ LibraryMapping("zlib", "Qt6", "Qt::Zlib", components=["Zlib"]),
+ LibraryMapping("httpserver", "Qt6", "Qt::HttpServer", components=["HttpServer"]),
+ LibraryMapping("sslserver", "Qt6", "Qt::SslServer", components=["HttpServer"]),
]
# Note that the library map is adjusted dynamically further down.
_library_map = [
# 3rd party:
LibraryMapping("atspi", "ATSPI2", "PkgConfig::ATSPI2"),
- LibraryMapping("backtrace", "WrapBacktrace", "WrapBacktrace::WrapBacktrace", emit_if="config.unix"),
+ LibraryMapping(
+ "backtrace", "WrapBacktrace", "WrapBacktrace::WrapBacktrace", emit_if="config.unix"
+ ),
LibraryMapping("bluez", "BlueZ", "PkgConfig::BlueZ"),
LibraryMapping("brotli", "WrapBrotli", "WrapBrotli::WrapBrotliDec"),
LibraryMapping("corewlan", None, None),
@@ -411,7 +365,8 @@ _library_map = [
LibraryMapping("db2", "DB2", "DB2::DB2"),
LibraryMapping("dbus", "WrapDBus1", "dbus-1", resultVariable="DBus1", extra=["1.2"]),
LibraryMapping(
- "doubleconversion", "WrapDoubleConversion", "WrapDoubleConversion::WrapDoubleConversion"
+ "doubleconversion", "WrapSystemDoubleConversion",
+ "WrapSystemDoubleConversion::WrapSystemDoubleConversion"
),
LibraryMapping("dlt", "DLT", "DLT::DLT"),
LibraryMapping("drm", "Libdrm", "Libdrm::Libdrm"),
@@ -441,9 +396,7 @@ _library_map = [
extra=["2.6.0"],
),
LibraryMapping("host_dbus", None, None),
- LibraryMapping(
- "icu", "ICU", "ICU::i18n ICU::uc ICU::data", extra=["COMPONENTS", "i18n", "uc", "data"]
- ),
+ LibraryMapping("icu", "ICU", "ICU::i18n ICU::uc ICU::data", components=["i18n", "uc", "data"]),
LibraryMapping("journald", "Libsystemd", "PkgConfig::Libsystemd"),
LibraryMapping("jpeg", "JPEG", "JPEG::JPEG"), # see also libjpeg
LibraryMapping("libatomic", "WrapAtomic", "WrapAtomic::WrapAtomic"),
@@ -496,7 +449,9 @@ _library_map = [
LibraryMapping("sqlite2", None, None), # No more sqlite2 support in Qt6!
LibraryMapping("sqlite3", "SQLite3", "SQLite::SQLite3"),
LibraryMapping("sqlite", "SQLite3", "SQLite::SQLite3"),
- LibraryMapping("taglib", "WrapTagLib", "WrapTagLib::WrapTagLib", is_bundled_with_qt=True), # used in qtivi
+ LibraryMapping(
+ "taglib", "WrapTagLib", "WrapTagLib::WrapTagLib", is_bundled_with_qt=True
+ ), # used in qtivi
LibraryMapping("tslib", "Tslib", "PkgConfig::Tslib"),
LibraryMapping("udev", "Libudev", "PkgConfig::Libudev"),
LibraryMapping("udev", "Libudev", "PkgConfig::Libudev"), # see also libudev!
@@ -519,61 +474,66 @@ _library_map = [
resultVariable="TARGET XCB::XCB",
appendFoundSuffix=False,
),
+ LibraryMapping("xcb_glx", "XCB", "XCB::GLX", components=["GLX"], resultVariable="XCB_GLX"),
LibraryMapping(
- "xcb_glx", "XCB", "XCB::GLX", extra=["COMPONENTS", "GLX"], resultVariable="XCB_GLX"
+ "xcb_cursor",
+ "XCB",
+ "XCB::CURSOR",
+ extra=["0.1.1", "COMPONENTS", "CURSOR"],
+ resultVariable="XCB_CURSOR",
),
LibraryMapping(
"xcb_icccm",
"XCB",
"XCB::ICCCM",
- extra=["0.3.9", "COMPONENTS", "ICCCM"],
+ extra=["0.3.9"],
+ components=["ICCCM"],
resultVariable="XCB_ICCCM",
),
LibraryMapping(
"xcb_image",
"XCB",
"XCB::IMAGE",
- extra=["0.3.9", "COMPONENTS", "IMAGE"],
+ extra=["0.3.9"],
+ components=["IMAGE"],
resultVariable="XCB_IMAGE",
),
LibraryMapping(
"xcb_keysyms",
"XCB",
"XCB::KEYSYMS",
- extra=["0.3.9", "COMPONENTS", "KEYSYMS"],
+ extra=["0.3.9"],
+ components=["KEYSYMS"],
resultVariable="XCB_KEYSYMS",
),
LibraryMapping(
- "xcb_randr", "XCB", "XCB::RANDR", extra=["COMPONENTS", "RANDR"], resultVariable="XCB_RANDR"
+ "xcb_randr", "XCB", "XCB::RANDR", components=["RANDR"], resultVariable="XCB_RANDR"
),
LibraryMapping(
"xcb_render",
"XCB",
"XCB::RENDER",
- extra=["COMPONENTS", "RENDER"],
+ components=["RENDER"],
resultVariable="XCB_RENDER",
),
LibraryMapping(
"xcb_renderutil",
"XCB",
"XCB::RENDERUTIL",
- extra=["0.3.9", "COMPONENTS", "RENDERUTIL"],
+ extra=["0.3.9"],
+ components=["RENDERUTIL"],
resultVariable="XCB_RENDERUTIL",
),
LibraryMapping(
- "xcb_shape", "XCB", "XCB::SHAPE", extra=["COMPONENTS", "SHAPE"], resultVariable="XCB_SHAPE"
- ),
- LibraryMapping(
- "xcb_shm", "XCB", "XCB::SHM", extra=["COMPONENTS", "SHM"], resultVariable="XCB_SHM"
- ),
- LibraryMapping(
- "xcb_sync", "XCB", "XCB::SYNC", extra=["COMPONENTS", "SYNC"], resultVariable="XCB_SYNC"
+ "xcb_shape", "XCB", "XCB::SHAPE", components=["SHAPE"], resultVariable="XCB_SHAPE"
),
+ LibraryMapping("xcb_shm", "XCB", "XCB::SHM", components=["SHM"], resultVariable="XCB_SHM"),
+ LibraryMapping("xcb_sync", "XCB", "XCB::SYNC", components=["SYNC"], resultVariable="XCB_SYNC"),
LibraryMapping(
"xcb_xfixes",
"XCB",
"XCB::XFIXES",
- extra=["COMPONENTS", "XFIXES"],
+ components=["XFIXES"],
resultVariable="TARGET XCB::XFIXES",
appendFoundSuffix=False,
),
@@ -581,7 +541,7 @@ _library_map = [
"xcb-xfixes",
"XCB",
"XCB::XFIXES",
- extra=["COMPONENTS", "XFIXES"],
+ components=["XFIXES"],
resultVariable="TARGET XCB::XFIXES",
appendFoundSuffix=False,
),
@@ -589,12 +549,11 @@ _library_map = [
"xcb_xinput",
"XCB",
"XCB::XINPUT",
- extra=["1.12", "COMPONENTS", "XINPUT"],
+ extra=["1.12"],
+ components=["XINPUT"],
resultVariable="XCB_XINPUT",
),
- LibraryMapping(
- "xcb_xkb", "XCB", "XCB::XKB", extra=["COMPONENTS", "XKB"], resultVariable="XCB_XKB"
- ),
+ LibraryMapping("xcb_xkb", "XCB", "XCB::XKB", components=["XKB"], resultVariable="XCB_XKB"),
LibraryMapping("xcb_xlib", "X11_XCB", "X11::XCB"),
LibraryMapping("xcomposite", "XComposite", "PkgConfig::XComposite"),
LibraryMapping("xkbcommon_evdev", "XKB", "XKB::XKB", extra=["0.5.0"]), # see also xkbcommon
@@ -603,7 +562,7 @@ _library_map = [
LibraryMapping("xlib", "X11", "X11::X11"),
LibraryMapping("xrender", "XRender", "PkgConfig::XRender", extra=["0.6"]),
LibraryMapping("zlib", "WrapZLIB", "WrapZLIB::WrapZLIB", extra=["1.0.8"]),
- LibraryMapping("zstd", "ZSTD", "ZSTD::ZSTD", extra=["1.3"]),
+ LibraryMapping("zstd", "WrapZSTD", "WrapZSTD::WrapZSTD", extra=["1.3"]),
LibraryMapping("tiff", "TIFF", "TIFF::TIFF"),
LibraryMapping("webp", "WrapWebP", "WrapWebP::WrapWebP"),
LibraryMapping("jasper", "WrapJasper", "WrapJasper::WrapJasper"),
@@ -681,7 +640,7 @@ def find_library_info_for_target(targetName: str) -> typing.Optional[LibraryMapp
# For a given qmake library (e.g. 'openssl_headers'), check whether this is a fake library used
# for the /nolink annotation, and return the actual annotated qmake library ('openssl/nolink').
-def find_annotated_qmake_lib_name(lib : str) -> str:
+def find_annotated_qmake_lib_name(lib: str) -> str:
for entry in _library_map:
if entry.no_link_so_name == lib:
return entry.soName + "/nolink"
@@ -720,9 +679,7 @@ platform_mapping = {
"qnx": "QNX",
"vxworks": "VXWORKS",
"hpux": "HPUX",
- "nacl": "NACL",
"android": "ANDROID",
- "android-embedded": "ANDROID_EMBEDDED",
"uikit": "UIKIT",
"tvos": "TVOS",
"watchos": "WATCHOS",
@@ -749,7 +706,7 @@ platform_mapping = {
def map_platform(platform: str) -> str:
- """ Return the qmake platform as cmake platform or the unchanged string. """
+ """Return the qmake platform as cmake platform or the unchanged string."""
return platform_mapping.get(platform, platform)
@@ -811,15 +768,21 @@ def generate_find_package_info(
indent: int = 0,
emit_if: str = "",
use_system_package_name: bool = False,
+ remove_REQUIRED_from_extra: bool = True,
+ components_required: bool = True,
module: str = "",
) -> str:
isRequired = False
extra = lib.extra.copy()
+ if lib.components:
+ extra.append("COMPONENTS" if components_required else "OPTIONAL_COMPONENTS")
+ extra += lib.components
if "REQUIRED" in extra and use_qt_find_package:
isRequired = True
- extra.remove("REQUIRED")
+ if remove_REQUIRED_from_extra:
+ extra.remove("REQUIRED")
cmake_target_name = lib.targetName
assert cmake_target_name
@@ -891,6 +854,15 @@ def _set_up_py_parsing_nicer_debug_output(pp):
return wrapper_function
- pp._defaultStartDebugAction = increase_indent(pp._defaultStartDebugAction)
- pp._defaultSuccessDebugAction = decrease_indent(pp._defaultSuccessDebugAction)
- pp._defaultExceptionDebugAction = decrease_indent(pp._defaultExceptionDebugAction)
+ if hasattr(pp, "_defaultStartDebugAction"):
+ pp._defaultStartDebugAction = increase_indent(pp._defaultStartDebugAction)
+ pp._defaultSuccessDebugAction = decrease_indent(pp._defaultSuccessDebugAction)
+ pp._defaultExceptionDebugAction = decrease_indent(pp._defaultExceptionDebugAction)
+ elif hasattr(pp.core, "_default_start_debug_action"):
+ pp.core._default_start_debug_action = increase_indent(pp.core._default_start_debug_action)
+ pp.core._default_success_debug_action = decrease_indent(
+ pp.core._default_success_debug_action
+ )
+ pp.core._default_exception_debug_action = decrease_indent(
+ pp.core._default_exception_debug_action
+ )
diff --git a/util/cmake/json_parser.py b/util/cmake/json_parser.py
index a0aaecab9d..f8e0fa6017 100644
--- a/util/cmake/json_parser.py
+++ b/util/cmake/json_parser.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import pyparsing as pp # type: ignore
import json
diff --git a/util/cmake/pro2cmake.py b/util/cmake/pro2cmake.py
index 82d7990df2..0ef35410ce 100755
--- a/util/cmake/pro2cmake.py
+++ b/util/cmake/pro2cmake.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# Requires Python 3.7. The import statement needs to be the first line of code
@@ -39,6 +14,7 @@ import posixpath
import sys
import re
import io
+import itertools
import glob
import fnmatch
@@ -81,7 +57,6 @@ from helper import (
LibraryMapping,
)
-
cmake_version_string = "3.16"
cmake_api_version = 3
@@ -135,7 +110,13 @@ def _parse_commandline():
"--is-example",
action="store_true",
dest="is_example",
- help="Treat the input .pro file as an example.",
+ help="Treat the input .pro file as a Qt example.",
+ )
+ parser.add_argument(
+ "--is-user-project",
+ action="store_true",
+ dest="is_user_project",
+ help="Treat the input .pro file as a user project.",
)
parser.add_argument(
"-s",
@@ -202,102 +183,128 @@ def _parse_commandline():
def get_top_level_repo_project_path(project_file_path: str = "") -> str:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
- return qmake_conf_dir_path
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
+ return qmake_or_cmake_conf_dir_path
def is_top_level_repo_project(project_file_path: str = "") -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
project_dir_path = os.path.dirname(project_file_path)
- return qmake_conf_dir_path == project_dir_path
+ return qmake_or_cmake_conf_dir_path == project_dir_path
def is_top_level_repo_tests_project(project_file_path: str = "") -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
project_dir_path = os.path.dirname(project_file_path)
project_dir_name = os.path.basename(project_dir_path)
maybe_same_level_dir_path = os.path.join(project_dir_path, "..")
normalized_maybe_same_level_dir_path = os.path.normpath(maybe_same_level_dir_path)
return (
- qmake_conf_dir_path == normalized_maybe_same_level_dir_path and project_dir_name == "tests"
+ qmake_or_cmake_conf_dir_path == normalized_maybe_same_level_dir_path
+ and project_dir_name == "tests"
)
def is_top_level_repo_examples_project(project_file_path: str = "") -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
project_dir_path = os.path.dirname(project_file_path)
project_dir_name = os.path.basename(project_dir_path)
maybe_same_level_dir_path = os.path.join(project_dir_path, "..")
normalized_maybe_same_level_dir_path = os.path.normpath(maybe_same_level_dir_path)
return (
- qmake_conf_dir_path == normalized_maybe_same_level_dir_path
+ qmake_or_cmake_conf_dir_path == normalized_maybe_same_level_dir_path
and project_dir_name == "examples"
)
def is_example_project(project_file_path: str = "") -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
+ # If there's a .qmake.conf or .cmake.conf file in the parent
+ # directories of the given project path, it is likely that the
+ # project is an internal Qt project that uses private Qt CMake
+ # API.
+ found_qt_repo_version = False
+ qmake_conf = find_qmake_conf(project_file_path)
+ if qmake_conf:
+ repo_version = parse_qt_repo_module_version_from_qmake_conf(qmake_conf)
+ if repo_version:
+ found_qt_repo_version = True
+
+ cmake_conf = find_cmake_conf(project_file_path)
+ if cmake_conf:
+ repo_version = parse_qt_repo_module_version_from_cmake_conf(cmake_conf)
+ if repo_version:
+ found_qt_repo_version = True
+
+ # If we haven't found a conf file, we assume this is an example
+ # project and not a project under a qt source repository.
+ if not found_qt_repo_version:
+ return True
- project_relative_path = os.path.relpath(project_file_path, qmake_conf_dir_path)
# If the project file is found in a subdir called 'examples'
# relative to the repo source dir, then it must be an example, but
# some examples contain 3rdparty libraries that do not need to be
# built as examples.
- return project_relative_path.startswith("examples") and "3rdparty" not in project_relative_path
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
+ project_relative_path = os.path.relpath(project_file_path, qmake_or_cmake_conf_dir_path)
+
+ is_example_under_repo_sources = (
+ project_relative_path.startswith("examples") and "3rdparty" not in project_relative_path
+ )
+ return is_example_under_repo_sources
def is_config_test_project(project_file_path: str = "") -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
- dir_name_with_qmake_confg = os.path.basename(qmake_conf_dir_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
+ dir_name_with_qmake_or_cmake_conf = os.path.basename(qmake_or_cmake_conf_dir_path)
- project_relative_path = os.path.relpath(project_file_path, qmake_conf_dir_path)
+ project_relative_path = os.path.relpath(project_file_path, qmake_or_cmake_conf_dir_path)
# If the project file is found in a subdir called 'config.tests'
# relative to the repo source dir, then it's probably a config test.
# Also if the .qmake.conf is found within config.tests dir (like in qtbase)
# then the project is probably a config .test
return (
project_relative_path.startswith("config.tests")
- or dir_name_with_qmake_confg == "config.tests"
+ or dir_name_with_qmake_or_cmake_conf == "config.tests"
)
def is_benchmark_project(project_file_path: str = "") -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
- project_relative_path = os.path.relpath(project_file_path, qmake_conf_dir_path)
+ project_relative_path = os.path.relpath(project_file_path, qmake_or_cmake_conf_dir_path)
# If the project file is found in a subdir called 'tests/benchmarks'
# relative to the repo source dir, then it must be a benchmark
return project_relative_path.startswith("tests/benchmarks")
def is_manual_test_project(project_file_path: str = "") -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
- project_relative_path = os.path.relpath(project_file_path, qmake_conf_dir_path)
+ project_relative_path = os.path.relpath(project_file_path, qmake_or_cmake_conf_dir_path)
# If the project file is found in a subdir called 'tests/manual'
# relative to the repo source dir, then it must be a manual test
return project_relative_path.startswith("tests/manual")
@lru_cache(maxsize=None)
-def find_qmake_conf(project_file_path: str = "") -> str:
+def find_file_walking_parent_dirs(file_name: str, project_file_path: str = "") -> str:
+ assert file_name
if not os.path.isabs(project_file_path):
print(
- f"Warning: could not find .qmake.conf file, given path is not an "
+ f"Warning: could not find {file_name} file, given path is not an "
f"absolute path: {project_file_path}"
)
return ""
cwd = os.path.dirname(project_file_path)
- file_name = ".qmake.conf"
while os.path.isdir(cwd):
maybe_file = posixpath.join(cwd, file_name)
@@ -310,10 +317,39 @@ def find_qmake_conf(project_file_path: str = "") -> str:
# reached the top level directory, stop looking
break
- print(f"Warning: could not find .qmake.conf file")
return ""
+def find_qmake_conf(project_file_path: str = "") -> str:
+ return find_file_walking_parent_dirs(".qmake.conf", project_file_path)
+
+
+def find_cmake_conf(project_file_path: str = "") -> str:
+ return find_file_walking_parent_dirs(".cmake.conf", project_file_path)
+
+
+def find_qmake_or_cmake_conf(project_file_path: str = "") -> str:
+ qmake_conf = find_qmake_conf(project_file_path)
+ if qmake_conf:
+ return qmake_conf
+ cmake_conf = find_cmake_conf(project_file_path)
+ return cmake_conf
+
+
+def parse_qt_repo_module_version_from_qmake_conf(qmake_conf_path: str = "") -> str:
+ with open(qmake_conf_path) as f:
+ file_contents = f.read()
+ m = re.search(r"MODULE_VERSION\s*=\s*([0-9.]+)", file_contents)
+ return m.group(1) if m else ""
+
+
+def parse_qt_repo_module_version_from_cmake_conf(cmake_conf_path: str = "") -> str:
+ with open(cmake_conf_path) as f:
+ file_contents = f.read()
+ m = re.search(r'set\(QT_REPO_MODULE_VERSION\s*"([0-9.]+)"\)', file_contents)
+ return m.group(1) if m else ""
+
+
def set_up_cmake_api_calls():
def nested_dict():
return defaultdict(nested_dict)
@@ -423,25 +459,40 @@ def get_cmake_api_call(api_name: str, api_version: Optional[int] = None) -> str:
return cmake_api_calls[api_version][api_name]
-def process_qrc_file(
- target: str,
- scope: Scope,
+class QtResource:
+ def __init__(
+ self,
+ name: str = "",
+ prefix: str = "",
+ base_dir: str = "",
+ files: Dict[str, str] = {},
+ lang: str = None,
+ generated: bool = False,
+ skip_qtquick_compiler: bool = False,
+ ) -> None:
+ self.name = name
+ self.prefix = prefix
+ self.base_dir = base_dir
+ self.files = files
+ self.lang = lang
+ self.generated = generated
+ self.skip_qtquick_compiler = skip_qtquick_compiler
+
+
+def read_qrc_file(
filepath: str,
base_dir: str = "",
project_file_path: str = "",
skip_qtquick_compiler: bool = False,
- is_example: bool = False,
-) -> str:
- assert target
-
+) -> List[QtResource]:
# Hack to handle QT_SOURCE_TREE. Assume currently that it's the same
# as the qtbase source path.
qt_source_tree_literal = "${QT_SOURCE_TREE}"
if qt_source_tree_literal in filepath:
- qmake_conf = find_qmake_conf(project_file_path)
+ qmake_or_cmake_conf = find_qmake_or_cmake_conf(project_file_path)
- if qmake_conf:
- qt_source_tree = os.path.dirname(qmake_conf)
+ if qmake_or_cmake_conf:
+ qt_source_tree = os.path.dirname(qmake_or_cmake_conf)
filepath = filepath.replace(qt_source_tree_literal, qt_source_tree)
else:
print(
@@ -455,7 +506,6 @@ def process_qrc_file(
# Small not very thorough check to see if this a shared qrc resource
# pattern is mostly used by the tests.
- is_parent_path = dir_name.startswith("..")
if not os.path.isfile(filepath):
raise RuntimeError(f"Invalid file path given to process_qrc_file: {filepath}")
@@ -463,39 +513,63 @@ def process_qrc_file(
root = tree.getroot()
assert root.tag == "RCC"
- output = ""
-
- resource_count = 0
+ result: List[QtResource] = []
for resource in root:
assert resource.tag == "qresource"
- lang = resource.get("lang", "")
- prefix = resource.get("prefix", "/")
- if not prefix.startswith("/"):
- prefix = f"/{prefix}"
+ r = QtResource(
+ name=resource_name,
+ prefix=resource.get("prefix", "/"),
+ base_dir=base_dir,
+ lang=resource.get("lang", ""),
+ skip_qtquick_compiler=skip_qtquick_compiler,
+ )
- full_resource_name = resource_name + (str(resource_count) if resource_count > 0 else "")
+ if len(result) > 0:
+ r.name += str(len(result))
+
+ if not r.prefix.startswith("/"):
+ r.prefix = f"/{r.prefix}"
- files: Dict[str, str] = {}
for file in resource:
path = file.text
assert path
# Get alias:
alias = file.get("alias", "")
- files[path] = alias
+ r.files[path] = alias
- output += write_add_qt_resource_call(
- target,
- scope,
- full_resource_name,
- prefix,
- base_dir,
- lang,
- files,
- skip_qtquick_compiler,
- is_example,
- )
- resource_count += 1
+ result.append(r)
+
+ return result
+
+
+def write_resource_source_file_properties(
+ sorted_files: List[str], files: Dict[str, str], base_dir: str, skip_qtquick_compiler: bool
+) -> str:
+ output = ""
+ source_file_properties = defaultdict(list)
+
+ for source in sorted_files:
+ alias = files[source]
+ if alias:
+ source_file_properties[source].append(f'QT_RESOURCE_ALIAS "{alias}"')
+ # If a base dir is given, we have to write the source file property
+ # assignments that disable the quick compiler per file.
+ if base_dir and skip_qtquick_compiler:
+ source_file_properties[source].append("QT_SKIP_QUICKCOMPILER 1")
+
+ for full_source in source_file_properties:
+ per_file_props = source_file_properties[full_source]
+ if per_file_props:
+ prop_spaces = " "
+ per_file_props_joined = f"\n{prop_spaces}".join(per_file_props)
+ output += dedent(
+ f"""\
+ set_source_files_properties("{full_source}"
+ PROPERTIES {per_file_props_joined}
+ )
+ """
+ )
return output
@@ -526,29 +600,9 @@ def write_add_qt_resource_call(
sorted_files = sorted(files.keys())
assert sorted_files
- source_file_properties = defaultdict(list)
-
- for source in sorted_files:
- alias = files[source]
- if alias:
- source_file_properties[source].append(f'QT_RESOURCE_ALIAS "{alias}"')
- # If a base dir is given, we have to write the source file property
- # assignments that disable the quick compiler per file.
- if base_dir and skip_qtquick_compiler:
- source_file_properties[source].append("QT_SKIP_QUICKCOMPILER 1")
-
- for full_source in source_file_properties:
- per_file_props = source_file_properties[full_source]
- if per_file_props:
- prop_spaces = " "
- per_file_props_joined = f"\n{prop_spaces}".join(per_file_props)
- output += dedent(
- f"""\
- set_source_files_properties("{full_source}"
- PROPERTIES {per_file_props_joined}
- )
- """
- )
+ output += write_resource_source_file_properties(
+ sorted_files, files, base_dir, skip_qtquick_compiler
+ )
# Quote file paths in case there are spaces.
sorted_files_backup = sorted_files
@@ -1347,9 +1401,9 @@ class Scope(object):
relative_path = posixpath.relpath(self.currentdir, self.basedir)
if key == "QQC2_SOURCE_TREE":
- qmake_conf_path = find_qmake_conf(os.path.abspath(self.currentdir))
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
- project_relative_path = os.path.relpath(qmake_conf_dir_path, self.currentdir)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(os.path.abspath(self.currentdir))
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
+ project_relative_path = os.path.relpath(qmake_or_cmake_conf_dir_path, self.currentdir)
return ["${CMAKE_CURRENT_SOURCE_DIR}/" + project_relative_path]
if key == "QT_ARCH":
@@ -1595,6 +1649,28 @@ def map_condition(condition: str) -> str:
pattern = r"(equals|greaterThan|lessThan)\(WINDOWS_SDK_VERSION,[ ]*([0-9]+)\)"
condition = re.sub(pattern, windows_sdk_version_handler, condition)
+ def qt_version_handler(match_obj: Match):
+ operator = match_obj.group(1)
+ if operator == "equals":
+ operator = "EQUAL"
+ elif operator == "greaterThan":
+ operator = "GREATER"
+ elif operator == "lessThan":
+ operator = "LESS"
+
+ operator_prefix = "VERSION_"
+ version_variable = "QT_VERSION"
+ version_flavor = match_obj.group(2)
+ if version_flavor:
+ version_variable += "_" + version_flavor[:-1]
+ operator_prefix = ""
+
+ version = match_obj.group(3)
+ return f"({version_variable} {operator_prefix}{operator} {version})"
+
+ pattern = r"(equals|greaterThan|lessThan)\(QT_(MAJOR_|MINOR_|PATCH_)?VERSION,[ ]*([0-9.]+)\)"
+ condition = re.sub(pattern, qt_version_handler, condition)
+
# Generic lessThan|equals|lessThan()
def generic_version_handler(match_obj: Match):
@@ -1718,7 +1794,7 @@ _path_replacements = {
def replace_path_constants(path: str, scope: Scope) -> str:
- """ Clean up DESTDIR and target.path """
+ """Clean up DESTDIR and target.path"""
if path.startswith("./"):
path = f"${{CMAKE_CURRENT_BINARY_DIR}}/{path[2:]}"
elif path.startswith("../"):
@@ -1730,7 +1806,12 @@ def replace_path_constants(path: str, scope: Scope) -> str:
def handle_subdir(
- scope: Scope, cm_fh: IO[str], *, indent: int = 0, is_example: bool = False
+ scope: Scope,
+ cm_fh: IO[str],
+ *,
+ indent: int = 0,
+ is_example: bool = False,
+ is_user_project: bool = False,
) -> None:
# Global nested dictionary that will contain sub_dir assignments and their conditions.
@@ -1795,7 +1876,13 @@ def handle_subdir(
)
do_include(subdir_scope)
- cmakeify_scope(subdir_scope, cm_fh, indent=indent, is_example=is_example)
+ cmakeify_scope(
+ subdir_scope,
+ cm_fh,
+ indent=indent,
+ is_example=is_example,
+ is_user_project=is_user_project,
+ )
else:
print(f" XXXX: SUBDIR {sd} in {scope}: Not found.")
@@ -2397,48 +2484,44 @@ def expand_resource_glob(cm_fh: IO[str], expression: str) -> str:
return expanded_var
-def write_resources(
- cm_fh: IO[str],
+def extract_resources(
target: str,
scope: Scope,
- indent: int = 0,
- is_example=False,
- target_ref: str = None,
-):
- if target_ref is None:
- target_ref = target
- # vpath = scope.expand('VPATH')
+) -> Tuple[List[QtResource], List[str]]:
+ """Read the resources of the given scope.
+ Return a tuple:
+ - list of QtResource objects
+ - list of standalone sources files that are marked as QTQUICK_COMPILER_SKIPPED_RESOURCES"""
+
+ resource_infos: List[QtResource] = []
+ skipped_standalone_files: List[str] = []
- # Handle QRC files by turning them into qt_add_resource:
resources = scope.get_files("RESOURCES")
qtquickcompiler_skipped = scope.get_files("QTQUICK_COMPILER_SKIPPED_RESOURCES")
- qrc_output = ""
if resources:
standalone_files: List[str] = []
for r in resources:
skip_qtquick_compiler = r in qtquickcompiler_skipped
if r.endswith(".qrc"):
if "${CMAKE_CURRENT_BINARY_DIR}" in r:
- cm_fh.write(f"#### Ignored generated resource: {r}")
+ resource_infos.append(
+ QtResource(
+ name=r, generated=True, skip_qtquick_compiler=skip_qtquick_compiler
+ )
+ )
continue
- qrc_output += process_qrc_file(
- target_ref,
- scope,
+ resource_infos += read_qrc_file(
r,
scope.basedir,
scope.file_absolute_path,
- skip_qtquick_compiler,
- is_example,
+ skip_qtquick_compiler=skip_qtquick_compiler,
)
else:
immediate_files = {f: "" for f in scope.get_files(f"{r}.files")}
if immediate_files:
immediate_files_filtered = []
for f in immediate_files:
- if "*" in f:
- immediate_files_filtered.append(expand_resource_glob(cm_fh, f))
- else:
- immediate_files_filtered.append(f)
+ immediate_files_filtered.append(f)
immediate_files = {f: "" for f in immediate_files_filtered}
scope_prefix = scope.get(f"{r}.prefix")
if scope_prefix:
@@ -2448,50 +2531,74 @@ def write_resources(
immediate_base_list = scope.get(f"{r}.base")
assert (
len(immediate_base_list) < 2
- ), f"immediate base directory must be at most one entry"
+ ), "immediate base directory must be at most one entry"
immediate_base = replace_path_constants("".join(immediate_base_list), scope)
immediate_lang = None
immediate_name = f"qmake_{r}"
- qrc_output += write_add_qt_resource_call(
- target=target_ref,
- scope=scope,
- resource_name=immediate_name,
- prefix=immediate_prefix,
- base_dir=immediate_base,
- lang=immediate_lang,
- files=immediate_files,
- skip_qtquick_compiler=skip_qtquick_compiler,
- is_example=is_example,
+ resource_infos.append(
+ QtResource(
+ name=immediate_name,
+ prefix=immediate_prefix,
+ base_dir=immediate_base,
+ lang=immediate_lang,
+ files=immediate_files,
+ skip_qtquick_compiler=skip_qtquick_compiler,
+ )
)
else:
- if "*" in r:
- standalone_files.append(expand_resource_glob(cm_fh, r))
- else:
- # stadalone source file properties need to be set as they
- # are parsed.
- if skip_qtquick_compiler:
- qrc_output += (
- f'set_source_files_properties("{r}" PROPERTIES '
- f"QT_SKIP_QUICKCOMPILER 1)\n\n"
- )
- standalone_files.append(r)
+ standalone_files.append(r)
+ if not ("*" in r) and skip_qtquick_compiler:
+ skipped_standalone_files.append(r)
if standalone_files:
- name = "qmake_immediate"
- prefix = "/"
- base = ""
- lang = None
- files = {f: "" for f in standalone_files}
- qrc_output += write_add_qt_resource_call(
- target=target_ref,
- scope=scope,
- resource_name=name,
- prefix=prefix,
- base_dir=base,
- lang=lang,
- files=files,
- skip_qtquick_compiler=False,
- is_example=is_example,
+ resource_infos.append(
+ QtResource(
+ name="qmake_immediate",
+ prefix="/",
+ base_dir="",
+ files={f: "" for f in standalone_files},
+ )
+ )
+
+ return (resource_infos, skipped_standalone_files)
+
+
+def write_resources(
+ cm_fh: IO[str],
+ target: str,
+ scope: Scope,
+ indent: int = 0,
+ is_example=False,
+ target_ref: str = None,
+ resources: List[QtResource] = None,
+ skipped_standalone_files: List[str] = None,
+):
+ if resources is None:
+ (resources, skipped_standalone_files) = extract_resources(target, scope)
+ if target_ref is None:
+ target_ref = target
+
+ qrc_output = ""
+ for r in resources:
+ name = r.name
+ if "*" in name:
+ name = expand_resource_glob(cm_fh, name)
+ qrc_output += write_add_qt_resource_call(
+ target=target_ref,
+ scope=scope,
+ resource_name=name,
+ prefix=r.prefix,
+ base_dir=r.base_dir,
+ lang=r.lang,
+ files=r.files,
+ skip_qtquick_compiler=r.skip_qtquick_compiler,
+ is_example=is_example,
+ )
+
+ if skipped_standalone_files:
+ for f in skipped_standalone_files:
+ qrc_output += (
+ f'set_source_files_properties("{f}" PROPERTIES ' f"QT_SKIP_QUICKCOMPILER 1)\n\n"
)
if qrc_output:
@@ -2525,7 +2632,7 @@ def write_qlalrsources(cm_fh: IO[str], target: str, scope: Scope, indent: int =
if not sources:
return
cm_fh.write("\n# QLALR Grammars:\n")
- cm_fh.write(f"qt_process_qlalr(\n")
+ cm_fh.write("qt_process_qlalr(\n")
indent += 1
cm_fh.write(f"{spaces(indent)}{target}\n")
cm_fh.write(f"{spaces(indent)}{';'.join(sources)}\n")
@@ -2596,7 +2703,7 @@ def write_target_sources(
):
command_name = "target_sources"
header = f"{command_name}({target} {visibility}\n"
- write_list(cm_fh, sources, "", indent, footer=f")", header=header)
+ write_list(cm_fh, sources, "", indent, footer=")", header=header)
def expand_project_requirements(scope: Scope, skip_message: bool = False) -> str:
@@ -3194,7 +3301,9 @@ def write_main_part(
cm_fh.write(f"{spaces(indent)}if (NOT QT_BUILD_STANDALONE_TESTS AND NOT QT_BUILDING_QT)\n")
cm_fh.write(f"{spaces(indent+1)}cmake_minimum_required(VERSION 3.16)\n")
cm_fh.write(f"{spaces(indent+1)}project({name} LANGUAGES C CXX ASM)\n")
- cm_fh.write(f"{spaces(indent+1)}find_package(Qt6BuildInternals COMPONENTS STANDALONE_TEST)\n")
+ cm_fh.write(
+ f"{spaces(indent+1)}find_package(Qt6BuildInternals COMPONENTS STANDALONE_TEST)\n"
+ )
cm_fh.write(f"{spaces(indent)}endif()\n\n")
test_data = scope.expand("TESTDATA")
@@ -3245,6 +3354,9 @@ def write_main_part(
# Footer:
cm_fh.write(f"{spaces(indent)})\n")
+ if typename == "Tool":
+ cm_fh.write(f"{spaces(indent)}qt_internal_return_unless_building_tools()\n")
+
write_resources(cm_fh, name, scope, indent, target_ref=target_ref)
write_statecharts(cm_fh, name, scope, indent)
@@ -3445,7 +3557,7 @@ def write_module(cm_fh: IO[str], scope: Scope, *, indent: int = 0) -> str:
extra.append("STATIC")
if "internal_module" in scope.get("CONFIG"):
is_public_module = False
- cmake_target_name += "Private" # Assume all internal modules have the 'Private' suffix
+ cmake_target_name += "Private" # Assume all internal modules have the 'Private' suffix
extra.append("INTERNAL_MODULE")
if "no_module_headers" in scope.get("CONFIG"):
extra.append("NO_MODULE_HEADERS")
@@ -3457,8 +3569,8 @@ def write_module(cm_fh: IO[str], scope: Scope, *, indent: int = 0) -> str:
scope._has_private_module = True
if "header_module" in scope.get("CONFIG"):
extra.append("HEADER_MODULE")
- if "metatypes" in scope.get("CONFIG") or "qmltypes" in scope.get("CONFIG"):
- extra.append("GENERATE_METATYPES")
+ if not("metatypes" in scope.get("CONFIG") or "qmltypes" in scope.get("CONFIG")):
+ extra.append("NO_GENERATE_METATYPES")
module_config = scope.get("MODULE_CONFIG")
if len(module_config):
@@ -3632,7 +3744,14 @@ def write_binary(cm_fh: IO[str], scope: Scope, gui: bool = False, *, indent: int
def write_find_package_section(
- cm_fh: IO[str], public_libs: List[str], private_libs: List[str], *, indent: int = 0
+ cm_fh: IO[str],
+ public_libs: List[str],
+ private_libs: List[str],
+ *,
+ indent: int = 0,
+ is_required: bool = True,
+ end_with_extra_newline: bool = True,
+ qt_package_name: str = "Qt6",
):
packages = [] # type: List[LibraryMapping]
all_libs = public_libs + private_libs
@@ -3642,12 +3761,31 @@ def write_find_package_section(
if info and info not in packages:
packages.append(info)
- # ind = spaces(indent)
+ qt_components: List[str] = []
+ for p in filter(LibraryMapping.is_qt, packages):
+ if p.components is not None:
+ qt_components += p.components
+ if qt_components:
+ if "Core" in qt_components:
+ qt_components.remove("Core")
+ qt_components = sorted(qt_components)
+ qt_package = LibraryMapping("unknown", qt_package_name, "unknown", components=qt_components)
+ if is_required:
+ qt_package.extra = ["REQUIRED"]
+ cm_fh.write(
+ generate_find_package_info(
+ qt_package,
+ use_qt_find_package=False,
+ remove_REQUIRED_from_extra=False,
+ components_required=is_required,
+ indent=indent,
+ )
+ )
- for p in packages:
+ for p in itertools.filterfalse(LibraryMapping.is_qt, packages):
cm_fh.write(generate_find_package_info(p, use_qt_find_package=False, indent=indent))
- if packages:
+ if packages and end_with_extra_newline:
cm_fh.write("\n")
@@ -3669,7 +3807,7 @@ def write_jar(cm_fh: IO[str], scope: Scope, *, indent: int = 0) -> str:
android_sdk_jar = "${android_sdk}"
write_source_file_list(
- cm_fh, scope, "", ["JAVASOURCES"], indent=indent, header=f"set(java_sources\n", footer=")\n"
+ cm_fh, scope, "", ["JAVASOURCES"], indent=indent, header="set(java_sources\n", footer=")\n"
)
cm_fh.write(f"{spaces(indent)}qt_internal_add_jar({target}\n")
@@ -3686,13 +3824,19 @@ def write_jar(cm_fh: IO[str], scope: Scope, *, indent: int = 0) -> str:
return target
-def write_win32_and_mac_bundle_properties(
- cm_fh: IO[str], scope: Scope, target: str, *, handling_first_scope=False, indent: int = 0
-):
+def get_win32_and_mac_bundle_properties(scope: Scope) -> tuple:
config = scope.get("CONFIG")
win32 = all(val not in config for val in ["cmdline", "console"])
mac_bundle = all(val not in config for val in ["cmdline", "-app_bundle"])
+ return win32, mac_bundle
+
+
+def write_win32_and_mac_bundle_properties(
+ cm_fh: IO[str], scope: Scope, target: str, *, handling_first_scope=False, indent: int = 0
+):
+ win32, mac_bundle = get_win32_and_mac_bundle_properties(scope)
+
true_value = "TRUE"
false_value = "FALSE"
@@ -3710,38 +3854,71 @@ def write_win32_and_mac_bundle_properties(
# without creating excess noise of setting the properties in every
# single scope.
for name, value in properties_mapping.items():
- if handling_first_scope or (not handling_first_scope and value != true_value):
+ if not handling_first_scope and value != true_value:
properties.extend([name, value])
if properties:
write_set_target_properties(cm_fh, [target], properties, indent=indent)
+def is_qtquick_source_file(filename: str):
+ return filename.endswith(".qml") or filename.endswith(".js") or filename.endswith(".mjs")
+
+
+def looks_like_qml_resource(resource: QtResource):
+ if resource.generated or "*" in resource.name:
+ return False
+ for f in resource.files:
+ if is_qtquick_source_file(f):
+ return True
+ return False
+
+
+def find_qml_resource(resources: List[QtResource]):
+ """Return the resource object that's most likely the one that should be used for
+ qt_add_qml_module. Return None if there's no such resource."""
+ return next(filter(looks_like_qml_resource, resources), None)
+
+
def write_example(
- cm_fh: IO[str], scope: Scope, gui: bool = False, *, indent: int = 0, is_plugin: bool = False
+ cm_fh: IO[str],
+ scope: Scope,
+ gui: bool = False,
+ *,
+ indent: int = 0,
+ is_plugin: bool = False,
+ is_user_project: bool = False,
) -> str:
binary_name = scope.TARGET
assert binary_name
+ config = scope.get("CONFIG")
+ is_qml_plugin = ("qml" in scope.get("QT")) or "qmltypes" in config
+
+ if not is_user_project:
+ example_install_dir = scope.expandString("target.path")
+ if not example_install_dir:
+ example_install_dir = "${INSTALL_EXAMPLESDIR}"
+ example_install_dir = example_install_dir.replace(
+ "$$[QT_INSTALL_EXAMPLES]", "${INSTALL_EXAMPLESDIR}"
+ )
- example_install_dir = scope.expandString("target.path")
- if not example_install_dir:
- example_install_dir = "${INSTALL_EXAMPLESDIR}"
- example_install_dir = example_install_dir.replace(
- "$$[QT_INSTALL_EXAMPLES]", "${INSTALL_EXAMPLESDIR}"
- )
-
+ project_version = scope.get_string("VERSION", "1.0")
cm_fh.write(
- "cmake_minimum_required(VERSION 3.14)\n"
- f"project({binary_name} LANGUAGES CXX)\n\n"
+ f"cmake_minimum_required(VERSION {cmake_version_string})\n"
+ f"project({binary_name} VERSION {project_version} LANGUAGES CXX)\n\n"
"set(CMAKE_INCLUDE_CURRENT_DIR ON)\n\n"
"set(CMAKE_AUTOMOC ON)\n"
- "set(CMAKE_AUTORCC ON)\n"
- "set(CMAKE_AUTOUIC ON)\n\n"
- "if(NOT DEFINED INSTALL_EXAMPLESDIR)\n"
- ' set(INSTALL_EXAMPLESDIR "examples")\n'
- "endif()\n\n"
- f'set(INSTALL_EXAMPLEDIR "{example_install_dir}")\n\n'
)
+ if scope.get_files("FORMS"):
+ cm_fh.write("set(CMAKE_AUTOUIC ON)\n")
+ cm_fh.write("\n")
+ if not is_user_project:
+ cm_fh.write(
+ "if(NOT DEFINED INSTALL_EXAMPLESDIR)\n"
+ ' set(INSTALL_EXAMPLESDIR "examples")\n'
+ "endif()\n\n"
+ f'set(INSTALL_EXAMPLEDIR "{example_install_dir}")\n\n'
+ )
recursive_evaluate_scope(scope)
@@ -3755,110 +3932,86 @@ def write_example(
handle_source_subtractions(scopes)
scopes = merge_scopes(scopes)
+ # Write find_package call for Qt5/Qt6 and make it available as package QT.
+ cm_fh.write("find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS Core)\n")
+
+ # Write find_package calls for required packages.
+ # We consider packages as required if they appear at the top-level scope.
(public_libs, private_libs) = extract_cmake_libraries(scope, is_example=True)
- write_find_package_section(cm_fh, public_libs, private_libs, indent=indent)
+ write_find_package_section(
+ cm_fh,
+ public_libs,
+ private_libs,
+ indent=indent,
+ end_with_extra_newline=False,
+ qt_package_name="Qt${QT_VERSION_MAJOR}",
+ )
- add_target = ""
+ # Write find_package calls for optional packages.
+ # We consider packages inside scopes other than the top-level one as optional.
+ optional_public_libs: List[str] = []
+ optional_private_libs: List[str] = []
+ handling_first_scope = True
+ for inner_scope in scopes:
+ if handling_first_scope:
+ handling_first_scope = False
+ continue
+ (public_libs, private_libs) = extract_cmake_libraries(inner_scope, is_example=True)
+ optional_public_libs += public_libs
+ optional_private_libs += private_libs
+ write_find_package_section(
+ cm_fh,
+ optional_public_libs,
+ optional_private_libs,
+ indent=indent,
+ is_required=False,
+ end_with_extra_newline=False,
+ qt_package_name="Qt${QT_VERSION_MAJOR}",
+ )
- if is_plugin:
- if "qml" in scope.get("QT"):
- # Get the uri from the destination directory
- dest_dir = scope.expandString("DESTDIR")
- if not dest_dir:
- dest_dir = "${CMAKE_CURRENT_BINARY_DIR}"
- else:
- uri = os.path.basename(dest_dir)
- dest_dir = f"${{CMAKE_CURRENT_BINARY_DIR}}/{dest_dir}"
-
- add_target = ""
-
- qml_dir = None
- qml_dir_dynamic_imports = False
-
- qmldir_file_path_list = scope.get_files("qmldir.files")
- assert len(qmldir_file_path_list) < 2, "File path must only contain one path"
- qmldir_file_path = qmldir_file_path_list[0] if qmldir_file_path_list else "qmldir"
- qmldir_file_path = os.path.join(os.getcwd(), qmldir_file_path[0])
-
- dynamic_qmldir = scope.get("DYNAMIC_QMLDIR")
- if os.path.exists(qmldir_file_path):
- qml_dir = QmlDir()
- qml_dir.from_file(qmldir_file_path)
- elif dynamic_qmldir:
- qml_dir = QmlDir()
- qml_dir.from_lines(dynamic_qmldir)
- qml_dir_dynamic_imports = True
-
- add_target += "set(module_dynamic_qml_imports\n "
- if len(qml_dir.imports) != 0:
- add_target += "\n ".join(qml_dir.imports)
- add_target += "\n)\n\n"
-
- for sc in scopes[1:]:
- import_list = []
- qml_imports = sc.get("DYNAMIC_QMLDIR")
- for qml_import in qml_imports:
- if not qml_import.startswith("import "):
- raise RuntimeError(
- "Only qmldir import statements expected in conditional scope!"
- )
- import_list.append(qml_import[len("import ") :].replace(" ", "/"))
- if len(import_list) == 0:
- continue
+ cm_fh.write("\n")
- assert sc.condition
+ (resources, standalone_qtquick_compiler_skipped_files) = extract_resources(binary_name, scope)
+ qml_resource = find_qml_resource(resources) if is_qml_plugin else None
- add_target += f"if ({sc.condition})\n"
- add_target += f" list(APPEND module_dynamic_qml_imports\n "
- add_target += "\n ".join(import_list)
- add_target += f"\n )\nendif()\n\n"
+ add_target = ""
- add_target += dedent(
- f"""\
- qt6_add_qml_module({binary_name}
- OUTPUT_DIRECTORY "{dest_dir}"
- VERSION 1.0
- URI "{uri}"
- """
+ if is_plugin:
+ if is_qml_plugin:
+ extra_args = [f"PLUGIN_TARGET {binary_name}"]
+ io_string = io.StringIO()
+ write_qml_module(
+ io_string,
+ binary_name,
+ scope,
+ scopes,
+ indent=indent,
+ resource=qml_resource,
+ extra_add_qml_module_args=extra_args,
)
-
- if qml_dir is not None:
- if qml_dir.designer_supported:
- add_target += " DESIGNER_SUPPORTED\n"
- if len(qml_dir.classname) != 0:
- add_target += f" CLASSNAME {qml_dir.classname}\n"
- if len(qml_dir.depends) != 0:
- add_target += " DEPENDENCIES\n"
- for dep in qml_dir.depends:
- add_target += f" {dep[0]}/{dep[1]}\n"
- if len(qml_dir.type_names) == 0:
- add_target += " SKIP_TYPE_REGISTRATION\n"
- if len(qml_dir.imports) != 0 and not qml_dir_dynamic_imports:
- qml_dir_imports_line = " \n".join(qml_dir.imports)
- add_target += f" IMPORTS\n{qml_dir_imports_line}"
- if qml_dir_dynamic_imports:
- add_target += " IMPORTS ${module_dynamic_qml_imports}\n"
- if len(qml_dir.optional_imports) != 0:
- qml_dir_optional_imports_line = " \n".join(qml_dir.optional_imports)
- add_target += f" OPTIONAL_IMPORTS\n{qml_dir_optional_imports_line}"
- if qml_dir.plugin_optional:
- add_target += " PLUGIN_OPTIONAL\n"
-
- add_target += " INSTALL_LOCATION ${INSTALL_EXAMPLEDIR}\n)\n\n"
- add_target += f"target_sources({binary_name} PRIVATE"
+ add_target += io_string.getvalue()
else:
add_target = f"qt_add_plugin({binary_name}"
if "static" in scope.get("CONFIG"):
add_target += " STATIC"
add_target += ")\n"
- add_target += f"target_sources({binary_name} PRIVATE"
-
+ add_target += f"target_sources({binary_name} PRIVATE"
else:
add_target = f"qt_add_executable({binary_name}"
+ property_win32, property_mac_bundle = get_win32_and_mac_bundle_properties(scope)
+
+ if property_win32:
+ add_target += " " + "WIN32"
+ if property_mac_bundle:
+ add_target += " " + "MACOSX_BUNDLE"
+
write_all_source_file_lists(cm_fh, scope, add_target, indent=0)
cm_fh.write(")\n")
+ if is_qml_plugin and not is_plugin:
+ write_qml_module(cm_fh, binary_name, scope, scopes, indent=indent, resource=qml_resource)
+
handling_first_scope = True
for scope in scopes:
@@ -3923,7 +4076,23 @@ def write_example(
io_string, scope, f"target_compile_options({binary_name}", indent=indent, footer=")\n"
)
- write_resources(io_string, binary_name, scope, indent=indent, is_example=True)
+ (resources, standalone_qtquick_compiler_skipped_files) = extract_resources(
+ binary_name, scope
+ )
+
+ # Remove the QML resource, because we've handled it in write_qml_module.
+ if qml_resource is not None:
+ resources = list(filter(lambda r: r.name != qml_resource.name, resources))
+
+ write_resources(
+ io_string,
+ binary_name,
+ scope,
+ indent=indent,
+ is_example=True,
+ resources=resources,
+ skipped_standalone_files=standalone_qtquick_compiler_skipped_files,
+ )
write_statecharts(io_string, binary_name, scope, indent=indent, is_example=True)
write_repc_files(io_string, binary_name, scope, indent=indent)
@@ -3938,13 +4107,14 @@ def write_example(
handling_first_scope = False
- cm_fh.write(
- f"\ninstall(TARGETS {binary_name}\n"
- f' RUNTIME DESTINATION "${{INSTALL_EXAMPLEDIR}}"\n'
- f' BUNDLE DESTINATION "${{INSTALL_EXAMPLEDIR}}"\n'
- f' LIBRARY DESTINATION "${{INSTALL_EXAMPLEDIR}}"\n'
- f")\n"
- )
+ if not is_user_project:
+ cm_fh.write(
+ f"\ninstall(TARGETS {binary_name}\n"
+ f' RUNTIME DESTINATION "${{INSTALL_EXAMPLEDIR}}"\n'
+ f' BUNDLE DESTINATION "${{INSTALL_EXAMPLEDIR}}"\n'
+ f' LIBRARY DESTINATION "${{INSTALL_EXAMPLEDIR}}"\n'
+ f")\n"
+ )
return binary_name
@@ -4054,6 +4224,137 @@ def get_qml_import_version(scope: Scope, target: str) -> str:
return import_version
+def write_qml_module(
+ cm_fh: IO[str],
+ target: str,
+ scope: Scope,
+ scopes: List[Scope],
+ resource: QtResource,
+ extra_add_qml_module_args: List[str] = [],
+ indent: int = 0,
+):
+ uri = scope.get_string("QML_IMPORT_NAME")
+ if not uri:
+ uri = target
+
+ try:
+ version = get_qml_import_version(scope, target)
+ except RuntimeError:
+ version = "${PROJECT_VERSION}"
+
+ dest_dir = scope.expandString("DESTDIR")
+ if dest_dir:
+ dest_dir = f"${{CMAKE_CURRENT_BINARY_DIR}}/{dest_dir}"
+
+ content = ""
+
+ qml_dir = None
+ qml_dir_dynamic_imports = False
+
+ qmldir_file_path_list = scope.get_files("qmldir.files")
+ assert len(qmldir_file_path_list) < 2, "File path must only contain one path"
+ qmldir_file_path = qmldir_file_path_list[0] if qmldir_file_path_list else "qmldir"
+ qmldir_file_path = os.path.join(os.getcwd(), qmldir_file_path[0])
+
+ dynamic_qmldir = scope.get("DYNAMIC_QMLDIR")
+ if os.path.exists(qmldir_file_path):
+ qml_dir = QmlDir()
+ qml_dir.from_file(qmldir_file_path)
+ elif dynamic_qmldir:
+ qml_dir = QmlDir()
+ qml_dir.from_lines(dynamic_qmldir)
+ qml_dir_dynamic_imports = True
+
+ content += "set(module_dynamic_qml_imports\n "
+ if len(qml_dir.imports) != 0:
+ content += "\n ".join(qml_dir.imports)
+ content += "\n)\n\n"
+
+ for sc in scopes[1:]:
+ import_list = []
+ qml_imports = sc.get("DYNAMIC_QMLDIR")
+ for qml_import in qml_imports:
+ if not qml_import.startswith("import "):
+ raise RuntimeError(
+ "Only qmldir import statements expected in conditional scope!"
+ )
+ import_list.append(qml_import[len("import ") :].replace(" ", "/"))
+ if len(import_list) == 0:
+ continue
+
+ assert sc.condition
+
+ content += f"if ({sc.condition})\n"
+ content += " list(APPEND module_dynamic_qml_imports\n "
+ content += "\n ".join(import_list)
+ content += "\n )\nendif()\n\n"
+
+ content += dedent(
+ f"""\
+ qt_add_qml_module({target}
+ URI {uri}
+ VERSION {version}
+ """
+ )
+
+ if resource is not None:
+ qml_files = list(filter(is_qtquick_source_file, resource.files.keys()))
+ if qml_files:
+ content += " QML_FILES\n"
+ for file in qml_files:
+ content += f" {file}\n"
+ other_files = list(itertools.filterfalse(is_qtquick_source_file, resource.files.keys()))
+ if other_files:
+ content += " RESOURCES\n"
+ for file in other_files:
+ content += f" {file}\n"
+ if resource.prefix != "/":
+ content += f" RESOURCE_PREFIX {resource.prefix}\n"
+ if scope.TEMPLATE == "app":
+ content += " NO_RESOURCE_TARGET_PATH\n"
+ if dest_dir:
+ content += f" OUTPUT_DIRECTORY {dest_dir}\n"
+
+ if qml_dir is not None:
+ if qml_dir.designer_supported:
+ content += " DESIGNER_SUPPORTED\n"
+ if len(qml_dir.classname) != 0:
+ content += f" CLASSNAME {qml_dir.classname}\n"
+ if len(qml_dir.depends) != 0:
+ content += " DEPENDENCIES\n"
+ for dep in qml_dir.depends:
+ content += f" {dep[0]}/{dep[1]}\n"
+ if len(qml_dir.type_names) == 0:
+ content += " SKIP_TYPE_REGISTRATION\n"
+ if len(qml_dir.imports) != 0 and not qml_dir_dynamic_imports:
+ qml_dir_imports_line = " \n".join(qml_dir.imports)
+ content += f" IMPORTS\n{qml_dir_imports_line}"
+ if qml_dir_dynamic_imports:
+ content += " IMPORTS ${module_dynamic_qml_imports}\n"
+ if len(qml_dir.optional_imports) != 0:
+ qml_dir_optional_imports_line = " \n".join(qml_dir.optional_imports)
+ content += f" OPTIONAL_IMPORTS\n{qml_dir_optional_imports_line}"
+ if qml_dir.plugin_optional:
+ content += " PLUGIN_OPTIONAL\n"
+
+ for arg in extra_add_qml_module_args:
+ content += " "
+ content += arg
+ content += "\n"
+ content += ")\n"
+
+ if resource:
+ content += write_resource_source_file_properties(
+ sorted(resource.files.keys()),
+ resource.files,
+ resource.base_dir,
+ resource.skip_qtquick_compiler,
+ )
+
+ content += "\n"
+ cm_fh.write(content)
+
+
def write_qml_plugin(
cm_fh: IO[str],
target: str,
@@ -4129,9 +4430,9 @@ def write_qml_plugin(
assert sc.condition
cm_fh.write(f"if ({sc.condition})\n")
- cm_fh.write(f" list(APPEND module_dynamic_qml_imports\n ")
+ cm_fh.write(" list(APPEND module_dynamic_qml_imports\n ")
cm_fh.write("\n ".join(import_list))
- cm_fh.write(f"\n )\nendif()\n\n")
+ cm_fh.write("\n )\nendif()\n\n")
if qml_dir is not None:
if qml_dir.designer_supported:
@@ -4204,7 +4505,12 @@ def write_qml_plugin_epilogue(
def handle_app_or_lib(
- scope: Scope, cm_fh: IO[str], *, indent: int = 0, is_example: bool = False
+ scope: Scope,
+ cm_fh: IO[str],
+ *,
+ indent: int = 0,
+ is_example: bool = False,
+ is_user_project=False,
) -> None:
assert scope.TEMPLATE in ("app", "lib")
@@ -4226,7 +4532,9 @@ def handle_app_or_lib(
assert not is_example
target = write_3rdparty_library(cm_fh, scope, indent=indent)
elif is_example:
- target = write_example(cm_fh, scope, gui, indent=indent, is_plugin=is_plugin)
+ target = write_example(
+ cm_fh, scope, gui, indent=indent, is_plugin=is_plugin, is_user_project=is_user_project
+ )
elif is_qt_plugin:
assert not is_example
target = write_plugin(cm_fh, scope, indent=indent)
@@ -4267,7 +4575,11 @@ def handle_app_or_lib(
# Generate qmltypes instruction for anything that may have CONFIG += qmltypes
# that is not a qml plugin
- if "qmltypes" in scope.get("CONFIG") and "qml_plugin" not in scope.get("_LOADED"):
+ if (
+ not is_example
+ and "qmltypes" in scope.get("CONFIG")
+ and "qml_plugin" not in scope.get("_LOADED")
+ ):
cm_fh.write(f"\n{spaces(indent)}set_target_properties({target_ref} PROPERTIES\n")
install_dir = scope.expandString("QMLTYPES_INSTALL_DIR")
@@ -4342,7 +4654,7 @@ def handle_top_level_repo_project(scope: Scope, cm_fh: IO[str]):
)
build_repo = dedent(
- f"""\
+ """\
qt_build_repo()
"""
)
@@ -4354,18 +4666,18 @@ def create_top_level_cmake_conf():
conf_file_name = ".cmake.conf"
try:
with open(conf_file_name, "x") as file:
- file.write('set(QT_REPO_MODULE_VERSION "6.1.2")\n')
+ file.write('set(QT_REPO_MODULE_VERSION "6.8.0")\n')
except FileExistsError:
pass
def find_top_level_repo_project_file(project_file_path: str = "") -> Optional[str]:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_dir = os.path.dirname(qmake_conf_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_dir = os.path.dirname(qmake_or_cmake_conf_path)
# Hope to a programming god that there's only one .pro file at the
# top level directory of repository.
- glob_result = glob.glob(os.path.join(qmake_dir, "*.pro"))
+ glob_result = glob.glob(os.path.join(qmake_or_cmake_dir, "*.pro"))
if len(glob_result) > 0:
return glob_result[0]
return None
@@ -4374,7 +4686,7 @@ def find_top_level_repo_project_file(project_file_path: str = "") -> Optional[st
def handle_top_level_repo_tests_project(scope: Scope, cm_fh: IO[str]):
content = dedent(
- f"""\
+ """\
if(QT_BUILD_STANDALONE_TESTS)
# Add qt_find_package calls for extra dependencies that need to be found when building
# the standalone tests here.
@@ -4396,14 +4708,14 @@ def write_regular_cmake_target_scope_section(
write_include_paths(
cm_fh,
scope,
- f"target_include_directories(${{PROJECT_NAME}} PUBLIC",
+ "target_include_directories(${{PROJECT_NAME}} PUBLIC",
indent=indent,
footer=")",
)
write_defines(
cm_fh,
scope,
- f"target_compile_definitions(${{PROJECT_NAME}} PUBLIC",
+ "target_compile_definitions(${{PROJECT_NAME}} PUBLIC",
indent=indent,
footer=")",
)
@@ -4413,7 +4725,7 @@ def write_regular_cmake_target_scope_section(
private_libs,
"",
indent=indent,
- header=f"target_link_libraries(${{PROJECT_NAME}} PRIVATE\n",
+ header="target_link_libraries(${{PROJECT_NAME}} PRIVATE\n",
footer=")",
)
write_list(
@@ -4421,20 +4733,27 @@ def write_regular_cmake_target_scope_section(
public_libs,
"",
indent=indent,
- header=f"target_link_libraries(${{PROJECT_NAME}} PUBLIC\n",
+ header="target_link_libraries(${{PROJECT_NAME}} PUBLIC\n",
footer=")",
)
write_compile_options(
- cm_fh, scope, f"target_compile_options(${{PROJECT_NAME}}", indent=indent, footer=")"
+ cm_fh, scope, "target_compile_options(${{PROJECT_NAME}}", indent=indent, footer=")"
)
def handle_config_test_project(scope: Scope, cm_fh: IO[str]):
project_name = os.path.splitext(os.path.basename(scope.file_absolute_path))[0]
content = (
- f"cmake_minimum_required(VERSION 3.14.0)\n"
+ f"cmake_minimum_required(VERSION 3.16)\n"
f"project(config_test_{project_name} LANGUAGES C CXX)\n"
"""
+if(DEFINED QT_CONFIG_COMPILE_TEST_CMAKE_SYSTEM_PREFIX_PATH)
+ set(CMAKE_SYSTEM_PREFIX_PATH "${QT_CONFIG_COMPILE_TEST_CMAKE_SYSTEM_PREFIX_PATH}")
+endif()
+if(DEFINED QT_CONFIG_COMPILE_TEST_CMAKE_SYSTEM_FRAMEWORK_PATH)
+ set(CMAKE_SYSTEM_FRAMEWORK_PATH "${QT_CONFIG_COMPILE_TEST_CMAKE_SYSTEM_FRAMEWORK_PATH}")
+endif()
+
foreach(p ${QT_CONFIG_COMPILE_TEST_PACKAGES})
find_package(${p})
endforeach()
@@ -4456,7 +4775,7 @@ endif()
# Remove default QT libs.
scope._append_operation("QT", RemoveOperation(["core", "gui"]))
- add_target = f"add_executable(${{PROJECT_NAME}}"
+ add_target = "add_executable(${{PROJECT_NAME}}"
temp_buffer = io.StringIO()
write_all_source_file_lists(temp_buffer, scope, add_target, indent=0)
@@ -4494,40 +4813,53 @@ endif()
def cmakeify_scope(
- scope: Scope, cm_fh: IO[str], *, indent: int = 0, is_example: bool = False
+ scope: Scope,
+ cm_fh: IO[str],
+ *,
+ indent: int = 0,
+ is_example: bool = False,
+ is_user_project: bool = False,
) -> None:
template = scope.TEMPLATE
- temp_buffer = io.StringIO()
-
- # Handle top level repo project in a special way.
- if is_top_level_repo_project(scope.file_absolute_path):
- create_top_level_cmake_conf()
- handle_top_level_repo_project(scope, temp_buffer)
- # Same for top-level tests.
- elif is_top_level_repo_tests_project(scope.file_absolute_path):
- handle_top_level_repo_tests_project(scope, temp_buffer)
- elif is_config_test_project(scope.file_absolute_path):
- handle_config_test_project(scope, temp_buffer)
- elif template == "subdirs":
- handle_subdir(scope, temp_buffer, indent=indent, is_example=is_example)
- elif template in ("app", "lib"):
- handle_app_or_lib(scope, temp_buffer, indent=indent, is_example=is_example)
+ if is_user_project:
+ if template == "subdirs":
+ handle_subdir(scope, cm_fh, indent=indent, is_example=True, is_user_project=True)
+ elif template in ("app", "lib"):
+ handle_app_or_lib(scope, cm_fh, indent=indent, is_example=True, is_user_project=True)
else:
- print(f" XXXX: {scope.file}: Template type {template} not yet supported.")
+ temp_buffer = io.StringIO()
+
+ # Handle top level repo project in a special way.
+ if is_top_level_repo_project(scope.file_absolute_path):
+ create_top_level_cmake_conf()
+ handle_top_level_repo_project(scope, temp_buffer)
+ # Same for top-level tests.
+ elif is_top_level_repo_tests_project(scope.file_absolute_path):
+ handle_top_level_repo_tests_project(scope, temp_buffer)
+ elif is_config_test_project(scope.file_absolute_path):
+ handle_config_test_project(scope, temp_buffer)
+ elif template == "subdirs":
+ handle_subdir(scope, temp_buffer, indent=indent, is_example=is_example)
+ elif template in ("app", "lib"):
+ handle_app_or_lib(scope, temp_buffer, indent=indent, is_example=is_example)
+ else:
+ print(f" XXXX: {scope.file}: Template type {template} not yet supported.")
- buffer_value = temp_buffer.getvalue()
+ buffer_value = temp_buffer.getvalue()
- if is_top_level_repo_examples_project(scope.file_absolute_path):
- # Wrap top level examples project with some commands which
- # are necessary to build examples as part of the overall
- # build.
- buffer_value = f"qt_examples_build_begin()\n\n{buffer_value}\nqt_examples_build_end()\n"
+ if is_top_level_repo_examples_project(scope.file_absolute_path):
+ # Wrap top level examples project with some commands which
+ # are necessary to build examples as part of the overall
+ # build.
+ buffer_value = f"qt_examples_build_begin()\n\n{buffer_value}\nqt_examples_build_end()\n"
- cm_fh.write(buffer_value)
+ cm_fh.write(buffer_value)
-def generate_new_cmakelists(scope: Scope, *, is_example: bool = False, debug: bool = False) -> None:
+def generate_new_cmakelists(
+ scope: Scope, *, is_example: bool = False, is_user_project: bool = True, debug: bool = False
+) -> None:
if debug:
print("Generating CMakeLists.gen.txt")
with open(scope.generated_cmake_lists_path, "w") as cm_fh:
@@ -4536,7 +4868,9 @@ def generate_new_cmakelists(scope: Scope, *, is_example: bool = False, debug: bo
is_example_heuristic = is_example_project(scope.file_absolute_path)
final_is_example_decision = is_example or is_example_heuristic
- cmakeify_scope(scope, cm_fh, is_example=final_is_example_decision)
+ cmakeify_scope(
+ scope, cm_fh, is_example=final_is_example_decision, is_user_project=is_user_project
+ )
def do_include(scope: Scope, *, debug: bool = False) -> None:
@@ -4610,10 +4944,10 @@ def cmake_project_has_skip_marker(project_file_path: str = "") -> bool:
def should_convert_project(project_file_path: str = "", ignore_skip_marker: bool = False) -> bool:
- qmake_conf_path = find_qmake_conf(project_file_path)
- qmake_conf_dir_path = os.path.dirname(qmake_conf_path)
+ qmake_or_cmake_conf_path = find_qmake_or_cmake_conf(project_file_path)
+ qmake_or_cmake_conf_dir_path = os.path.dirname(qmake_or_cmake_conf_path)
- project_relative_path = os.path.relpath(project_file_path, qmake_conf_dir_path)
+ project_relative_path = os.path.relpath(project_file_path, qmake_or_cmake_conf_dir_path)
# Skip cmake auto tests, they should not be converted.
if project_relative_path.startswith("tests/auto/cmake"):
@@ -4693,7 +5027,7 @@ def main() -> None:
cmake_api_version = args.api_version
else:
# Otherwise detect the api version in the old CMakeLists.txt
- # if it exsists.
+ # if it exists.
detected_cmake_api_version = detect_cmake_api_version_used_in_file_content(
file_relative_path
)
@@ -4732,7 +5066,12 @@ def main() -> None:
print(f'Skipping conversion of project: "{project_file_absolute_path}"')
continue
- generate_new_cmakelists(file_scope, is_example=args.is_example, debug=args.debug)
+ generate_new_cmakelists(
+ file_scope,
+ is_example=args.is_example,
+ is_user_project=args.is_user_project,
+ debug=args.debug,
+ )
copy_generated_file = True
diff --git a/util/cmake/pro_conversion_rate.py b/util/cmake/pro_conversion_rate.py
index 3c0c7e3070..30aae95b06 100755
--- a/util/cmake/pro_conversion_rate.py
+++ b/util/cmake/pro_conversion_rate.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from __future__ import annotations
@@ -57,7 +32,7 @@ def _parse_commandline():
class Blacklist:
- """ Class to check if a certain dir_name / dir_path is blacklisted """
+ """Class to check if a certain dir_name / dir_path is blacklisted"""
def __init__(self, names: typing.List[str], path_parts: typing.List[str]):
self.names = names
@@ -99,7 +74,7 @@ class Blacklist:
def recursive_scan(path: str, extension: str, result_paths: typing.List[str], blacklist: Blacklist):
- """ Find files ending with a certain extension, filtering out blacklisted entries """
+ """Find files ending with a certain extension, filtering out blacklisted entries"""
try:
for entry in os.scandir(path):
if entry.is_file() and entry.path.endswith(extension):
diff --git a/util/cmake/qmake_parser.py b/util/cmake/qmake_parser.py
index 357a529e5a..8cf7b1c46e 100644..100755
--- a/util/cmake/qmake_parser.py
+++ b/util/cmake/qmake_parser.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import collections
import os
@@ -73,7 +48,7 @@ def fixup_comments(contents: str) -> str:
def flatten_list(input_list):
- """ Flattens an irregular nested list into a simple list."""
+ """Flattens an irregular nested list into a simple list."""
for el in input_list:
if isinstance(el, collections.abc.Iterable) and not isinstance(el, (str, bytes)):
yield from flatten_list(el)
@@ -333,12 +308,61 @@ class QmakeParser:
"ConditionWhiteSpace", pp.Suppress(pp.Optional(pp.White(" ")))
)
+ # Unfortunately qmake condition operators have no precedence,
+ # and are simply evaluated left to right. To emulate that, wrap
+ # each condition sub-expression in parentheses.
+ # So c1|c2:c3 is evaluated by qmake as (c1|c2):c3.
+ # The following variable keeps count on how many parentheses
+ # should be added to the beginning of the condition. Each
+ # condition sub-expression always gets an ")", and in the
+ # end the whole condition gets many "(". Note that instead
+ # inserting the actual parentheses, we insert special markers
+ # which get replaced in the end.
+ condition_parts_count = 0
+ # Whitespace in the markers is important. Assumes the markers
+ # never appear in .pro files.
+ l_paren_marker = "_(_ "
+ r_paren_marker = " _)_"
+
+ def handle_condition_part(condition_part_parse_result: pp.ParseResults) -> str:
+ condition_part_list = [*condition_part_parse_result]
+ nonlocal condition_parts_count
+ condition_parts_count += 1
+ condition_part_joined = "".join(condition_part_list)
+ # Add ending parenthesis marker. The counterpart is added
+ # in handle_condition.
+ return f"{condition_part_joined}{r_paren_marker}"
+
+ ConditionPart.setParseAction(handle_condition_part)
ConditionRepeated = add_element(
"ConditionRepeated", pp.ZeroOrMore(ConditionOp + ConditionWhiteSpace + ConditionPart)
)
+ def handle_condition(condition_parse_results: pp.ParseResults) -> str:
+ nonlocal condition_parts_count
+ prepended_parentheses = l_paren_marker * condition_parts_count
+ result = prepended_parentheses + " ".join(condition_parse_results).strip().replace(
+ ":", " && "
+ ).strip(" && ")
+ # If there are only 2 condition sub-expressions, there is no
+ # need for parentheses.
+ if condition_parts_count < 3:
+ result = result.replace(l_paren_marker, "")
+ result = result.replace(r_paren_marker, "")
+ result = result.strip(" ")
+ else:
+ result = result.replace(l_paren_marker, "( ")
+ result = result.replace(r_paren_marker, " )")
+ # Strip parentheses and spaces around the final
+ # condition.
+ result = result[1:-1]
+ result = result.strip(" ")
+ # Reset the parenthesis count for the next condition.
+ condition_parts_count = 0
+ return result
+
Condition = add_element("Condition", pp.Combine(ConditionPart + ConditionRepeated))
- Condition.setParseAction(lambda x: " ".join(x).strip().replace(":", " && ").strip(" && "))
+ Condition.setParseAction(handle_condition)
# Weird thing like write_file(a)|error() where error() is the alternative condition
# which happens to be a function call. In this case there is no scope, but our code expects
diff --git a/util/cmake/run_pro2cmake.py b/util/cmake/run_pro2cmake.py
index 4a12c57b83..3e860e90b2 100755
--- a/util/cmake/run_pro2cmake.py
+++ b/util/cmake/run_pro2cmake.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import glob
import os
@@ -100,7 +75,7 @@ def parse_command_line() -> argparse.Namespace:
def find_all_pro_files(base_path: str, args: argparse.Namespace):
def sorter(pro_file: str) -> str:
- """ Sorter that tries to prioritize main pro files in a directory. """
+ """Sorter that tries to prioritize main pro files in a directory."""
pro_file_without_suffix = pro_file.rsplit("/", 1)[-1][:-4]
dir_name = os.path.dirname(pro_file)
if dir_name == ".":
diff --git a/util/cmake/special_case_helper.py b/util/cmake/special_case_helper.py
index 28295b3143..a7343d32c3 100644
--- a/util/cmake/special_case_helper.py
+++ b/util/cmake/special_case_helper.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2019 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2019 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""
This is a helper script that takes care of reapplying special case
diff --git a/util/cmake/tests/data/condition_operator_precedence.pro b/util/cmake/tests/data/condition_operator_precedence.pro
new file mode 100644
index 0000000000..8af628404d
--- /dev/null
+++ b/util/cmake/tests/data/condition_operator_precedence.pro
@@ -0,0 +1,11 @@
+a1|a2 {
+ DEFINES += d
+}
+
+b1|b2:b3 {
+ DEFINES += d
+}
+
+c1|c2:c3|c4 {
+ DEFINES += d
+}
diff --git a/util/cmake/tests/data/conversion/optional_qt_modules.pro b/util/cmake/tests/data/conversion/optional_qt_modules.pro
new file mode 100644
index 0000000000..b9522169fc
--- /dev/null
+++ b/util/cmake/tests/data/conversion/optional_qt_modules.pro
@@ -0,0 +1,4 @@
+TARGET = myapp
+QT = core network widgets
+win32: QT += opengl
+SOURCES = main.cpp
diff --git a/util/cmake/tests/data/conversion/qt_version_check.pro b/util/cmake/tests/data/conversion/qt_version_check.pro
new file mode 100644
index 0000000000..cf3697bb64
--- /dev/null
+++ b/util/cmake/tests/data/conversion/qt_version_check.pro
@@ -0,0 +1,8 @@
+QT += core gui
+SOURCES += main.cpp
+greaterThan(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 1):equals(QT_PATCH_VERSION, 0) {
+ DEFINES += SUPER_FRESH_MAJOR_QT_RELEASE
+}
+greaterThan(QT_VERSION, 6.6.5):lessThan(QT_VERSION, 6.6.7):equals(QT_VERSION, 6.6.6): {
+ DEFINES += QT_VERSION_OF_THE_BEAST
+}
diff --git a/util/cmake/tests/data/conversion/required_qt_modules.pro b/util/cmake/tests/data/conversion/required_qt_modules.pro
new file mode 100644
index 0000000000..287bb46831
--- /dev/null
+++ b/util/cmake/tests/data/conversion/required_qt_modules.pro
@@ -0,0 +1,3 @@
+TARGET = myapp
+QT = core network widgets
+SOURCES = main.cpp
diff --git a/util/cmake/tests/data/standardpaths.pro b/util/cmake/tests/data/standardpaths.pro
index 4b45788e4f..b9896b8e29 100644
--- a/util/cmake/tests/data/standardpaths.pro
+++ b/util/cmake/tests/data/standardpaths.pro
@@ -7,7 +7,7 @@ win32 {
} else:unix {
mac {
OBJECTIVE_SOURCES += io/qstandardpaths_mac.mm
- } else:android:!android-embedded {
+ } else:android {
SOURCES += io/qstandardpaths_android.cpp
} else:haiku {
SOURCES += io/qstandardpaths_haiku.cpp
diff --git a/util/cmake/tests/test_conversion.py b/util/cmake/tests/test_conversion.py
new file mode 100755
index 0000000000..0cdfb51976
--- /dev/null
+++ b/util/cmake/tests/test_conversion.py
@@ -0,0 +1,66 @@
+#!/usr/bin/env python3
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+from pro2cmake import Scope, SetOperation, merge_scopes, recursive_evaluate_scope
+from tempfile import TemporaryDirectory
+
+import os
+import pathlib
+import pytest
+import re
+import shutil
+import subprocess
+import tempfile
+import typing
+
+debug_mode = bool(os.environ.get("DEBUG_PRO2CMAKE_TEST_CONVERSION"))
+test_script_dir = pathlib.Path(__file__).parent.resolve()
+pro2cmake_dir = test_script_dir.parent.resolve()
+pro2cmake_py = pro2cmake_dir.joinpath("pro2cmake.py")
+test_data_dir = test_script_dir.joinpath("data", "conversion")
+
+
+def convert(base_name: str):
+ pro_file_name = str(base_name) + ".pro"
+ pro_file_path = test_data_dir.joinpath(pro_file_name)
+ assert(pro_file_path.exists())
+ with TemporaryDirectory(prefix="testqmake2cmake") as tmp_dir_str:
+ tmp_dir = pathlib.Path(tmp_dir_str)
+ output_file_path = tmp_dir.joinpath("CMakeLists.txt")
+ exit_code = subprocess.call([pro2cmake_py, "--is-example", "-o", output_file_path, pro_file_path])
+ assert(exit_code == 0)
+ if debug_mode:
+ shutil.copyfile(output_file_path, tempfile.gettempdir() + "/pro2cmake/CMakeLists.txt")
+ f = open(output_file_path, "r")
+ assert(f)
+ content = f.read()
+ assert(content)
+ return content
+
+
+def test_qt_modules():
+ output = convert("required_qt_modules")
+ find_package_lines = []
+ for line in output.split("\n"):
+ if "find_package(" in line:
+ find_package_lines.append(line.strip())
+ assert(["find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS Core)",
+ "find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Network Widgets)"] == find_package_lines)
+
+ output = convert("optional_qt_modules")
+ find_package_lines = []
+ for line in output.split("\n"):
+ if "find_package(" in line:
+ find_package_lines.append(line.strip())
+ assert(["find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS Core)",
+ "find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Network Widgets)",
+ "find_package(Qt${QT_VERSION_MAJOR} OPTIONAL_COMPONENTS OpenGL)"] == find_package_lines)
+
+def test_qt_version_check():
+ output = convert("qt_version_check")
+ interesting_lines = []
+ for line in output.split("\n"):
+ if line.startswith("if(") and "QT_VERSION" in line:
+ interesting_lines.append(line.strip())
+ assert(["if(( ( (QT_VERSION_MAJOR GREATER 5) ) AND (QT_VERSION_MINOR LESS 1) ) AND (QT_VERSION_PATCH EQUAL 0))", "if(( ( (QT_VERSION VERSION_GREATER 6.6.5) ) AND (QT_VERSION VERSION_LESS 6.6.7) ) AND (QT_VERSION VERSION_EQUAL 6.6.6))"] == interesting_lines)
diff --git a/util/cmake/tests/test_lc_fixup.py b/util/cmake/tests/test_lc_fixup.py
index 42094a5288..aa63e02fe1 100755
--- a/util/cmake/tests/test_lc_fixup.py
+++ b/util/cmake/tests/test_lc_fixup.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from qmake_parser import fixup_linecontinuation
diff --git a/util/cmake/tests/test_logic_mapping.py b/util/cmake/tests/test_logic_mapping.py
index 6e4fd20590..cc7d5a3636 100755
--- a/util/cmake/tests/test_logic_mapping.py
+++ b/util/cmake/tests/test_logic_mapping.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from condition_simplifier import simplify_condition
@@ -182,5 +157,4 @@ def test_simplify_complex_false():
def test_simplify_android_not_apple():
- validate_simplify('ANDROID AND NOT ANDROID_EMBEDDED AND NOT MACOS',
- 'ANDROID AND NOT ANDROID_EMBEDDED')
+ validate_simplify('ANDROID AND NOT MACOS', 'ANDROID')
diff --git a/util/cmake/tests/test_operations.py b/util/cmake/tests/test_operations.py
index c1e5f1b250..95f894dae4 100755
--- a/util/cmake/tests/test_operations.py
+++ b/util/cmake/tests/test_operations.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from pro2cmake import AddOperation, SetOperation, UniqueAddOperation, RemoveOperation
diff --git a/util/cmake/tests/test_parsing.py b/util/cmake/tests/test_parsing.py
index 9acee46007..ceda348f53 100755
--- a/util/cmake/tests/test_parsing.py
+++ b/util/cmake/tests/test_parsing.py
@@ -1,34 +1,11 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2018 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import os
+from pro2cmake import map_condition
from qmake_parser import QmakeParser
+from condition_simplifier import simplify_condition
_tests_path = os.path.dirname(os.path.abspath(__file__))
@@ -239,7 +216,7 @@ def test_realworld_standardpaths():
# android / else:
(cond4, if_branch4, else_branch4) = evaluate_condition(else_branch3[0])
- assert cond4 == 'android && !android-embedded'
+ assert cond4 == 'android'
assert len(if_branch4) == 1
validate_op('SOURCES', '+=', ['io/qstandardpaths_android.cpp'], if_branch4[0])
assert len(else_branch4) == 1
@@ -259,7 +236,7 @@ def test_realworld_comment_scope():
(cond, if_branch, else_branch) = evaluate_condition(result[0])
assert cond == 'freebsd|openbsd'
assert len(if_branch) == 1
- validate_op('QMAKE_LFLAGS_NOUNDEF', '=', None, if_branch[0])
+ validate_op('QMAKE_LFLAGS_NOUNDEF', '=', [], if_branch[0])
assert 'included' in result[1]
assert result[1]['included'].get('value', '') == 'animation/animation.pri'
@@ -352,3 +329,15 @@ def test_value_function():
assert target == 'Dummy'
value = result[1]['value']
assert value[0] == '$$TARGET'
+
+
+def test_condition_operator_precedence():
+ result = parse_file(_tests_path + '/data/condition_operator_precedence.pro')
+
+ def validate_simplify(input_str: str, expected: str) -> None:
+ output = simplify_condition(map_condition(input_str))
+ assert output == expected
+
+ validate_simplify(result[0]["condition"], "a1 OR a2")
+ validate_simplify(result[1]["condition"], "b3 AND (b1 OR b2)")
+ validate_simplify(result[2]["condition"], "c4 OR (c1 AND c3) OR (c2 AND c3)")
diff --git a/util/cmake/tests/test_scope_handling.py b/util/cmake/tests/test_scope_handling.py
index 51e569fb09..b36c5d5bcd 100755
--- a/util/cmake/tests/test_scope_handling.py
+++ b/util/cmake/tests/test_scope_handling.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
from pro2cmake import Scope, SetOperation, merge_scopes, recursive_evaluate_scope
@@ -306,12 +281,10 @@ def test_qstandardpaths_scopes():
# mac {
# OBJECTIVE_SOURCES += io/qstandardpaths_mac.mm
scope7 = _new_scope(parent_scope=scope6, condition='MACOS', SOURCES='qsp_mac.mm')
- # } else:android:!android-embedded {
+ # } else:android {
# SOURCES += io/qstandardpaths_android.cpp
scope8 = _new_scope(parent_scope=scope6, condition='else')
- scope9 = _new_scope(parent_scope=scope8,
- condition='ANDROID AND NOT ANDROID_EMBEDDED',
- SOURCES='qsp_android.cpp')
+ scope9 = _new_scope(parent_scope=scope8, condition='ANDROID AND NOT UNKNOWN_PLATFORM', SOURCES='qsp_android.cpp')
# } else:haiku {
# SOURCES += io/qstandardpaths_haiku.cpp
scope10 = _new_scope(parent_scope=scope8, condition='else')
@@ -332,10 +305,10 @@ def test_qstandardpaths_scopes():
assert scope6.total_condition == 'UNIX'
assert scope7.total_condition == 'MACOS'
assert scope8.total_condition == 'UNIX AND NOT MACOS'
- assert scope9.total_condition == 'ANDROID AND NOT ANDROID_EMBEDDED'
- assert scope10.total_condition == 'UNIX AND NOT MACOS AND (ANDROID_EMBEDDED OR NOT ANDROID)'
- assert scope11.total_condition == 'HAIKU AND (ANDROID_EMBEDDED OR NOT ANDROID)'
- assert scope12.total_condition == 'UNIX AND NOT MACOS AND NOT HAIKU AND (ANDROID_EMBEDDED OR NOT ANDROID)'
+ assert scope9.total_condition == 'ANDROID AND NOT UNKNOWN_PLATFORM'
+ assert scope10.total_condition == 'UNIX AND NOT MACOS AND (UNKNOWN_PLATFORM OR NOT ANDROID)'
+ assert scope11.total_condition == 'HAIKU AND (UNKNOWN_PLATFORM OR NOT ANDROID)'
+ assert scope12.total_condition == 'UNIX AND NOT HAIKU AND NOT MACOS AND (UNKNOWN_PLATFORM OR NOT ANDROID)'
def test_recursive_expansion():
scope = _new_scope(A='Foo',B='$$A/Bar')
@@ -343,4 +316,3 @@ def test_recursive_expansion():
assert scope.get_string('B') == '$$A/Bar'
assert scope._expand_value('$$B/Source.cpp') == ['Foo/Bar/Source.cpp']
assert scope._expand_value('$$B') == ['Foo/Bar']
-
diff --git a/util/edid/qedidvendortable.py b/util/edid/qedidvendortable.py
index 3d67666238..e1c5750695 100755
--- a/util/edid/qedidvendortable.py
+++ b/util/edid/qedidvendortable.py
@@ -1,31 +1,6 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2017 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the plugins of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
import urllib.request
@@ -34,44 +9,9 @@ import urllib.request
# which is discontinued. For now there seems to be a fork at:
url = 'https://github.com/vcrhonek/hwdata/raw/master/pnp.ids'
-copyright = """/****************************************************************************
-**
-** Copyright (C) 2017 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+copyright = """
+// Copyright (C) 2017 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
"""
notice = """/*
@@ -96,6 +36,8 @@ header = """
// We mean it.
//
+#include <QtCore/private/qglobal_p.h>
+
QT_BEGIN_NAMESPACE
struct VendorTable {
diff --git a/util/glgen/codegenerator.cpp b/util/glgen/codegenerator.cpp
index 09af46f469..6c79134458 100644
--- a/util/glgen/codegenerator.cpp
+++ b/util/glgen/codegenerator.cpp
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "codegenerator.h"
diff --git a/util/glgen/codegenerator.h b/util/glgen/codegenerator.h
index 3aa1c6ef91..ff1001db21 100644
--- a/util/glgen/codegenerator.h
+++ b/util/glgen/codegenerator.h
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CODEGENERATOR_H
#define CODEGENERATOR_H
diff --git a/util/glgen/glgen.pro b/util/glgen/glgen.pro
index 22c377e5f1..a1ad95cc2d 100644
--- a/util/glgen/glgen.pro
+++ b/util/glgen/glgen.pro
@@ -1,4 +1,5 @@
QT -= gui
+QT += core5compat
CONFIG += cmdline
# Uncomment following to enable debug output
diff --git a/util/glgen/legacyspecparser.cpp b/util/glgen/legacyspecparser.cpp
index ab2c9495e7..852933cf8a 100644
--- a/util/glgen/legacyspecparser.cpp
+++ b/util/glgen/legacyspecparser.cpp
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "legacyspecparser.h"
@@ -290,7 +265,7 @@ void LegacySpecParser::parseFunctions(QTextStream &stream)
}
}
- m_versions = versions.toList();
+ m_versions = versions.values();
std::sort(m_versions.begin(), m_versions.end());
}
diff --git a/util/glgen/legacyspecparser.h b/util/glgen/legacyspecparser.h
index f685c568db..edbe8a9fd9 100644
--- a/util/glgen/legacyspecparser.h
+++ b/util/glgen/legacyspecparser.h
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LEGACYSPECPARSER_H
#define LEGACYSPECPARSER_H
diff --git a/util/glgen/main.cpp b/util/glgen/main.cpp
index d15b5fe7ea..5d4df1d5d3 100644
--- a/util/glgen/main.cpp
+++ b/util/glgen/main.cpp
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "codegenerator.h"
#include "legacyspecparser.h"
diff --git a/util/glgen/qopenglextensions.cpp.header b/util/glgen/qopenglextensions.cpp.header
index 5df04ca7ff..7b4674f2b3 100644
--- a/util/glgen/qopenglextensions.cpp.header
+++ b/util/glgen/qopenglextensions.cpp.header
@@ -1,52 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/qopenglextensions.h.header b/util/glgen/qopenglextensions.h.header
index eec9f955bb..67317b69e0 100644
--- a/util/glgen/qopenglextensions.h.header
+++ b/util/glgen/qopenglextensions.h.header
@@ -1,52 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:BSD$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** BSD License Usage
-** Alternatively, you may use this file under the terms of the BSD license
-** as follows:
-**
-** "Redistribution and use in source and binary forms, with or without
-** modification, are permitted provided that the following conditions are
-** met:
-** * Redistributions of source code must retain the above copyright
-** notice, this list of conditions and the following disclaimer.
-** * Redistributions in binary form must reproduce the above copyright
-** notice, this list of conditions and the following disclaimer in
-** the documentation and/or other materials provided with the
-** distribution.
-** * Neither the name of The Qt Company Ltd nor the names of its
-** contributors may be used to endorse or promote products derived
-** from this software without specific prior written permission.
-**
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/qopenglversionfunctions.cpp.header b/util/glgen/qopenglversionfunctions.cpp.header
index ebbce06020..bf01f05ebb 100644
--- a/util/glgen/qopenglversionfunctions.cpp.header
+++ b/util/glgen/qopenglversionfunctions.cpp.header
@@ -1,30 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/qopenglversionfunctions.h.header b/util/glgen/qopenglversionfunctions.h.header
index 717afba314..2793a466c2 100644
--- a/util/glgen/qopenglversionfunctions.h.header
+++ b/util/glgen/qopenglversionfunctions.h.header
@@ -1,30 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/qopenglversionfunctions__VERSION__.cpp.header b/util/glgen/qopenglversionfunctions__VERSION__.cpp.header
index 6aed7d7d54..609df01c1b 100644
--- a/util/glgen/qopenglversionfunctions__VERSION__.cpp.header
+++ b/util/glgen/qopenglversionfunctions__VERSION__.cpp.header
@@ -1,30 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/qopenglversionfunctions__VERSION__.h.header b/util/glgen/qopenglversionfunctions__VERSION__.h.header
index 2000c4fbf2..1cd6f38ffa 100644
--- a/util/glgen/qopenglversionfunctions__VERSION__.h.header
+++ b/util/glgen/qopenglversionfunctions__VERSION__.h.header
@@ -1,30 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/qopenglversionfunctionsfactory.cpp.header b/util/glgen/qopenglversionfunctionsfactory.cpp.header
index 9d67abe1e2..55011520fb 100644
--- a/util/glgen/qopenglversionfunctionsfactory.cpp.header
+++ b/util/glgen/qopenglversionfunctionsfactory.cpp.header
@@ -1,30 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/qopenglversionfunctionsfactory_p.h.header b/util/glgen/qopenglversionfunctionsfactory_p.h.header
index 3bad6317f5..ecdf7d2996 100644
--- a/util/glgen/qopenglversionfunctionsfactory_p.h.header
+++ b/util/glgen/qopenglversionfunctionsfactory_p.h.header
@@ -1,30 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-**
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+/***************************************************************************
** This file was generated by glgen version 0.1
** Command line was: glgen
**
diff --git a/util/glgen/specparser.h b/util/glgen/specparser.h
index 38051f9f43..849b95de58 100644
--- a/util/glgen/specparser.h
+++ b/util/glgen/specparser.h
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef SPECPARSER_H
#define SPECPARSER_H
@@ -118,7 +93,7 @@ inline bool operator < (const VersionProfile &lhs, const VersionProfile &rhs)
return (lhs.version < rhs.version);
}
-inline size_t Hash(const VersionProfile &v)
+inline size_t qHash(const VersionProfile &v)
{
return qHash(static_cast<int>(v.profile * 1000) + v.version.major * 100 + v.version.minor * 10);
}
diff --git a/util/glgen/xmlspecparser.cpp b/util/glgen/xmlspecparser.cpp
index c322018169..015b2bd13f 100644
--- a/util/glgen/xmlspecparser.cpp
+++ b/util/glgen/xmlspecparser.cpp
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "xmlspecparser.h"
diff --git a/util/glgen/xmlspecparser.h b/util/glgen/xmlspecparser.h
index 380c6870e1..61e3bcb8b5 100644
--- a/util/glgen/xmlspecparser.h
+++ b/util/glgen/xmlspecparser.h
@@ -1,30 +1,5 @@
-/***************************************************************************
-**
-** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utilities of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef XMLSPECPARSER_H
#define XMLSPECPARSER_H
diff --git a/util/gradientgen/gradientgen.cpp b/util/gradientgen/gradientgen.cpp
index d0ce0536d9..a4c5531cc5 100644
--- a/util/gradientgen/gradientgen.cpp
+++ b/util/gradientgen/gradientgen.cpp
@@ -1,31 +1,6 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Copyright (C) 2019 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// Copyright (C) 2019 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <iostream>
#include <string>
@@ -44,44 +19,10 @@
using namespace std;
static const char LICENSE_HEADER[] =
-R"(/****************************************************************************
-**
-** Copyright (C) 2019 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/)";
+R"(
+// Copyright (C) 2019 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+)";
class Printer {
Q_DISABLE_COPY_MOVE(Printer)
@@ -192,7 +133,7 @@ static void printGradientStops(Printer &p, const QJsonArray &presets)
result.reserve(result.size() + gradientStops.size() * (presetStopString.size() + 20));
result += "return Q_ARRAY_LITERAL(QGradientStop, ";
- for (const GradientStop &stop : qAsConst(gradientStops)) {
+ for (const GradientStop &stop : std::as_const(gradientStops)) {
// gradientgen.js does not output the alpha channel, so hardcode full alpha here
Q_ASSERT(qAlpha(stop.color) == 0);
diff --git a/util/gradientgen/gradientgen.js b/util/gradientgen/gradientgen.js
index 5d5b6a692a..3b6cd25fb3 100755
--- a/util/gradientgen/gradientgen.js
+++ b/util/gradientgen/gradientgen.js
@@ -1,32 +1,6 @@
#! /usr/bin/env node
-
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
const _ = require('lodash');
const fs = require('fs');
diff --git a/util/harfbuzz/update-harfbuzz b/util/harfbuzz/update-harfbuzz
deleted file mode 100755
index 29891b6fe7..0000000000
--- a/util/harfbuzz/update-harfbuzz
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-set -e
-
-require_clean_work_tree() {
- # test if working tree is dirty
- git rev-parse --verify HEAD > /dev/null &&
- git update-index --refresh &&
- git diff-files --quiet &&
- git diff-index --cached --quiet HEAD ||
- die "Working tree is dirty"
-}
-
-branch=master
-
-if [ $# = 1 ]; then
- repo=$1
-elif [ $# = 2 ]; then
- repo=$1
- branch=$2
-else
- echo "usage: $0 <path to local harfbuzz repository> [branch]"
- exit 1
-fi
-
-if [ ! -r $repo/.git ]; then
- echo "The provided path $repo does not point to a git repository."
- exit 2
-fi
-
-test -z "$(git rev-parse --show-cdup)" || {
- exit=$?
- echo >&2 "You need to run this command from the toplevel of the working tree."
- exit $exit
-}
-
-require_clean_work_tree
-
-url=`git --git-dir=$repo/.git config remote.origin.url`
-
-git ls-files src/3rdparty/harfbuzz | git update-index --force-remove --stdin
-
-git fetch $repo $branch
-
-commit=`git rev-parse FETCH_HEAD`
-tree=`git cat-file commit FETCH_HEAD|grep "^tree" | awk '{print $2}'`
-
-git read-tree --prefix=src/3rdparty/harfbuzz $tree
-
-git checkout src/3rdparty/harfbuzz
-
-git status
-
-cat >commitlog.txt <<EOT
-Updated Harfbuzz from $url to $commit
-EOT
-
-echo
-echo "Wrote commitlog.txt. Use with"
-echo
-echo " git commit -e -F commitlog.txt"
-echo
-echo "to commit your changes"
diff --git a/util/includemocs/includemocs.pl b/util/includemocs/includemocs.pl
index ce04d961d8..5247d40262 100755
--- a/util/includemocs/includemocs.pl
+++ b/util/includemocs/includemocs.pl
@@ -1,31 +1,6 @@
#!/usr/bin/perl
-#############################################################################
-##
-## Copyright (C) 2017 Intel Corporation.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is the build configuration utility of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2017 Intel Corporation.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
use strict;
MAKEFILE: while ($_ = shift @ARGV) {
diff --git a/util/includemocs/includemocs6.sh b/util/includemocs/includemocs6.sh
new file mode 100755
index 0000000000..22dd872214
--- /dev/null
+++ b/util/includemocs/includemocs6.sh
@@ -0,0 +1,94 @@
+#!/bin/bash
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+VERBOSE=0
+CONTINUE_ON_FAILURE=1
+
+function warn() {
+ echo "$@" >&2
+}
+
+function log() {
+ [[ "$VERBOSE" -eq 1 ]] && warn "$@"
+}
+
+function die() {
+ warn "$@"
+ exit 1
+}
+
+function continue_or_die() {
+ if [[ "$CONTINUE_ON_FAILURE" -eq 1 ]] ; then
+ warn "$@"
+ else
+ die "$@"
+ fi
+}
+
+function usage() {
+ die "usage: includemocs6.sh <srcdir> <builddir> <mocs_compilation_file>"
+}
+
+#
+# sanity checks:
+#
+
+[[ ${#@} -eq 3 ]] || usage
+
+SRCDIR="$1"
+BUILDDIR="$2"
+MOCS_COMPILATION_FILE="$3"
+
+[[ -d "$BUILDDIR" ]] || die "Build dir \"$BUILDDIR\" doesn't exist or isn't a directory."
+[[ -d "$SRCDIR" ]] || die "Source dir \"SRCDIR\" doesn't exist or isn't a directory."
+[[ -f "$MOCS_COMPILATION_FILE" ]] || die "MOCs-compilation file \"$MOCS_COMPILATION_FILE\" doesn't exist or isn't a file."
+
+#
+# extract the files included by the mocs_compilation.cpp
+#
+
+# lines look like this:
+# #include "SOFJASFD/moc_foo.cpp"
+# #include "JFEJGKKS/moc_foo_p.cpp"
+# extracting moc_foo(_p).cpp:
+grep -E '^#include' "$MOCS_COMPILATION_FILE" | cut -d\" -f2 | cut -d/ -f2 | while read MOCFILE; do
+ log "MOCFILE=$MOCFILE"
+ C1="${MOCFILE##moc_}" # foo.cpp or foo_p.cpp or foo_p_p.cpp
+ case "$MOCFILE" in
+ moc_*_p_p.cpp)
+ C2="${C1/_p.cpp/.cpp}" # foo_p.cpp
+ C3="${C2/_p.cpp/.cpp}" # foo.cpp
+ CANDIDATES=("$C1" "$C2" "$C3")
+ ;;
+ moc_*_p.cpp)
+ C2="${C1/_p.cpp/.cpp}" # foo.cpp
+ CANDIDATES=("$C1" "$C2")
+ ;;
+ moc_*.cpp)
+ CANDIDATES=("$C1")
+ ;;
+ *)
+ die "Don't know how to handle moc-file \"$MOCFILE\"..."
+ ;;
+ esac
+ log "CANDIDATES=(${CANDIDATES[@]})"
+ for CANDIDATE in "${CANDIDATES[@]}"; do
+ CPPFILE="$(find "$SRCDIR" -name "$CANDIDATE")"
+ log "CPPFILE=$CPPFILE"
+ [[ -f "$CPPFILE" ]] && break
+ done
+ if [[ -f "$CPPFILE" ]] ; then
+ log "going to include $MOCFILE into $CPPFILE"
+ if ! grep -qE '^QT_END_NAMESPACE$' "$CPPFILE"; then
+ warn "Can't find QT_END_NAMESPACE in \"$CPPFILE\", simply appending the #include. Please check placement manually."
+ echo "#include \"$MOCFILE\"" >> "$CPPFILE" || die "Failed to write to \"$CPPFILE\""
+ else
+ sed -i -e "1,/QT_END_NAMESPACE/ s/QT_END_NAMESPACE/QT_END_NAMESPACE\n\n#include \"$MOCFILE\"/" "$CPPFILE" || die "Failed to includemoc \"$MOCFILE\" into \"$CPPFILE\"."
+ fi
+ else
+ continue_or_die "Can't find a cpp file for $MOCFILE (not looking for .cxx .cc etc)."
+ fi
+done
+
+exit 0
diff --git a/util/lexgen/configfile.cpp b/util/lexgen/configfile.cpp
index 73b778023f..9253e67cc1 100644
--- a/util/lexgen/configfile.cpp
+++ b/util/lexgen/configfile.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "configfile.h"
#include <QFile>
diff --git a/util/lexgen/configfile.h b/util/lexgen/configfile.h
index 48dc65e0df..c10659293a 100644
--- a/util/lexgen/configfile.h
+++ b/util/lexgen/configfile.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef CONFIGFILE_H
#define CONFIGFILE_H
diff --git a/util/lexgen/generator.cpp b/util/lexgen/generator.cpp
index 7f231ded11..01de30d5c5 100644
--- a/util/lexgen/generator.cpp
+++ b/util/lexgen/generator.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "generator.h"
diff --git a/util/lexgen/generator.h b/util/lexgen/generator.h
index 958ce75dd2..4ee6fe9811 100644
--- a/util/lexgen/generator.h
+++ b/util/lexgen/generator.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef GENERATOR_H
#define GENERATOR_H
diff --git a/util/lexgen/global.h b/util/lexgen/global.h
index a3c61fc2fa..d49877b180 100644
--- a/util/lexgen/global.h
+++ b/util/lexgen/global.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef GLOBAL_H
#define GLOBAL_H
diff --git a/util/lexgen/main.cpp b/util/lexgen/main.cpp
index 51b89048ea..0be9364b1b 100644
--- a/util/lexgen/main.cpp
+++ b/util/lexgen/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "nfa.h"
#include "re2nfa.h"
diff --git a/util/lexgen/nfa.cpp b/util/lexgen/nfa.cpp
index d9de21423f..2564b15df2 100644
--- a/util/lexgen/nfa.cpp
+++ b/util/lexgen/nfa.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "nfa.h"
#include <QSet>
#include <limits.h>
@@ -482,7 +457,7 @@ DFA DFA::minimize() const
}
/*
- qDebug() << "states to eliminiate:" << statesToEliminate.count();;
+ qDebug() << "states to eliminiate:" << statesToEliminate.count();
qDebug() << "merging" << statesToEliminate;
debug();
*/
diff --git a/util/lexgen/nfa.h b/util/lexgen/nfa.h
index 5481edce4c..f806670b07 100644
--- a/util/lexgen/nfa.h
+++ b/util/lexgen/nfa.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef NFA_H
#define NFA_H
diff --git a/util/lexgen/re2nfa.cpp b/util/lexgen/re2nfa.cpp
index 3b70e9e351..e32ace68dc 100644
--- a/util/lexgen/re2nfa.cpp
+++ b/util/lexgen/re2nfa.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "re2nfa.h"
#include "tokenizer.cpp"
diff --git a/util/lexgen/re2nfa.h b/util/lexgen/re2nfa.h
index cacb04bf97..ea478f1ed2 100644
--- a/util/lexgen/re2nfa.h
+++ b/util/lexgen/re2nfa.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef RE2NFA_H
#define RE2NFA_H
diff --git a/util/lexgen/tests/tst_lexgen.cpp b/util/lexgen/tests/tst_lexgen.cpp
index 6a72f1bfb4..b0e73ffb08 100644
--- a/util/lexgen/tests/tst_lexgen.cpp
+++ b/util/lexgen/tests/tst_lexgen.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTest>
#define AUTOTEST
diff --git a/util/lexgen/tokenizer.cpp b/util/lexgen/tokenizer.cpp
index ee0ec8af46..96bb5dfd75 100644
--- a/util/lexgen/tokenizer.cpp
+++ b/util/lexgen/tokenizer.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
// auto generated. DO NOT EDIT.
class RegExpTokenizer
{
diff --git a/util/locale_database/cldr.py b/util/locale_database/cldr.py
index 3448b89582..9e0bae9667 100644
--- a/util/locale_database/cldr.py
+++ b/util/locale_database/cldr.py
@@ -1,31 +1,5 @@
-# -*- coding: utf-8; -*-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Digesting the CLDR's data.
Provides two classes:
@@ -42,6 +16,7 @@ from weakref import WeakValueDictionary as CacheDict
from pathlib import Path
from ldml import Error, Node, XmlScanner, Supplement, LocaleScanner
+from localetools import names_clash
from qlocalexml import Locale
class CldrReader (object):
@@ -100,9 +75,8 @@ class CldrReader (object):
pass # self.__wrapped(self.whitter, 'Skipping likelySubtags (for unknown codes): ', skips)
def readLocales(self, calendars = ('gregorian',)):
- locales = tuple(self.__allLocales(calendars))
- return dict(((k.language_id, k.script_id, k.territory_id, k.variant_code),
- k) for k in locales)
+ return {(k.language_id, k.script_id, k.territory_id, k.variant_code): k
+ for k in self.__allLocales(calendars)}
def __allLocales(self, calendars):
def skip(locale, reason):
@@ -279,6 +253,9 @@ class CldrAccess (object):
inheritance, where relevant."""
return LocaleScanner(name, self.__localeRoots(name), self.__rootLocale)
+ def englishNaming(self, tag): # see QLocaleXmlWriter.enumData()
+ return self.__codeMap(tag).get
+
@property
def fileLocales(self) -> Iterable[str]:
"""Generator for locale IDs seen in file-names.
@@ -374,16 +351,16 @@ class CldrAccess (object):
parts.append(text)
if len(parts) > 1:
parts[-1] = 'and ' + parts[-1]
- assert parts
+ else:
+ assert parts
+ if parts[0].startswith('variant'):
+ raise Error(f'No support for {parts[0]}',
+ language, script, territory, variant)
raise Error('Unknown ' + ', '.join(parts),
language, script, territory, variant)
@staticmethod
- def __checkEnum(given, proper, scraps,
- remap = { 'å': 'a', 'ã': 'a', 'ç': 'c', 'é': 'e', 'í': 'i', 'ü': 'u'},
- prefix = { 'St.': 'Saint', 'U.S.': 'United States' },
- suffixes = ( 'Han', ),
- skip = '\u02bc'):
+ def __checkEnum(given, proper, scraps):
# Each is a { code: full name } mapping
for code, name in given.items():
try: right = proper[code]
@@ -393,21 +370,9 @@ class CldrAccess (object):
if code not in scraps:
yield name, f'[Found no CLDR name for code {code}]'
continue
- if name == right: continue
- ok = right.replace('&', 'And')
- for k, v in prefix.items():
- if ok.startswith(k + ' '):
- ok = v + ok[len(k):]
- while '(' in ok:
- try: f, t = ok.index('('), ok.index(')')
- except ValueError: break
- ok = ok[:f].rstrip() + ' ' + ok[t:].lstrip()
- if any(name == ok + ' ' + s for s in suffixes):
- continue
- if ''.join(ch for ch in name.lower() if not ch.isspace()) in ''.join(
- remap.get(ch, ch) for ch in ok.lower() if ch.isalpha() and ch not in skip):
- continue
- yield name, ok
+ cleaned = names_clash(right, name)
+ if cleaned:
+ yield name, cleaned
def checkEnumData(self, grumble):
scraps = set()
@@ -415,9 +380,9 @@ class CldrAccess (object):
for f in k.split('_'):
scraps.add(f)
from enumdata import language_map, territory_map, script_map
- language = dict((v, k) for k, v in language_map.values() if not v.isspace())
- territory = dict((v, k) for k, v in territory_map.values() if v != 'ZZ')
- script = dict((v, k) for k, v in script_map.values() if v != 'Zzzz')
+ language = {v: k for k, v in language_map.values() if not v.isspace()}
+ territory = {v: k for k, v in territory_map.values() if v != 'ZZ'}
+ script = {v: k for k, v in script_map.values() if v != 'Zzzz'}
lang = dict(self.__checkEnum(language, self.__codeMap('language'), scraps))
land = dict(self.__checkEnum(territory, self.__codeMap('territory'), scraps))
text = dict(self.__checkEnum(script, self.__codeMap('script'), scraps))
@@ -446,7 +411,7 @@ enumdata.py (keeping the old name as an alias):
MS-Win have their own eccentric names for time-zones. CLDR
helpfully provides a translation to more orthodox names.
- Singe argument, lookup, is a mapping from known MS-Win names
+ Single argument, lookup, is a mapping from known MS-Win names
for locales to a unique integer index (starting at 1).
The XML structure we read has the form:
@@ -474,7 +439,7 @@ enumdata.py (keeping the old name as an alias):
wid, code = attrs['other'], attrs['territory']
data = dict(windowsId = wid,
territoryCode = code,
- ianaList = attrs['type'])
+ ianaList = ' '.join(attrs['type'].split()))
try:
key = lookup[wid]
@@ -674,15 +639,15 @@ enumdata.py (keeping the old name as an alias):
def __enumMap(self, key, cache = {}):
if not cache:
cache['variant'] = {'': (0, 'This should never be seen outside ldml.py')}
- # They're not actually lists: mappings from numeric value
- # to pairs of full name and short code. What we want, in
- # each case, is a mapping from code to the other two.
+ # They're mappings from numeric value to pairs of full
+ # name and short code. What we want, in each case, is a
+ # mapping from code to the other two.
from enumdata import language_map, script_map, territory_map
for form, book, empty in (('language', language_map, 'AnyLanguage'),
('script', script_map, 'AnyScript'),
('territory', territory_map, 'AnyTerritory')):
- cache[form] = dict((pair[1], (num, pair[0]))
- for num, pair in book.items() if pair[0] != 'C')
+ cache[form] = {pair[1]: (num, pair[0])
+ for num, pair in book.items() if pair[0] != 'C'}
# (Have to filter out the C locale, as we give it the
# same (all space) code as AnyLanguage, whose code
# should probably be 'und' instead.)
@@ -725,7 +690,13 @@ enumdata.py (keeping the old name as an alias):
except (KeyError, ValueError, TypeError):
pass
else:
- if key not in seen or 'alt' not in elt.attributes:
+ # Prefer stand-alone forms of names when present, ignore other
+ # alt="..." entries. For example, Traditional and Simplified
+ # Han omit "Han" in the plain form, but include it for
+ # stand-alone. As the stand-alone version appears later, it
+ # over-writes the plain one.
+ if (key not in seen or 'alt' not in elt.attributes
+ or elt.attributes['alt'].nodeValue == 'stand-alone'):
yield key, value
seen.add(key)
@@ -734,7 +705,8 @@ enumdata.py (keeping the old name as an alias):
def __parentLocale(self, cache = {}):
# see http://www.unicode.org/reports/tr35/#Parent_Locales
if not cache:
- for tag, attrs in self.__supplementalData.find('parentLocales'):
+ for tag, attrs in self.__supplementalData.find('parentLocales',
+ ('component',)):
parent = attrs.get('parent', '')
for child in attrs['locales'].split():
cache[child] = parent
diff --git a/util/locale_database/cldr2qlocalexml.py b/util/locale_database/cldr2qlocalexml.py
index 0232120421..28bf7ae641 100755
--- a/util/locale_database/cldr2qlocalexml.py
+++ b/util/locale_database/cldr2qlocalexml.py
@@ -1,44 +1,23 @@
#!/usr/bin/env python3
-# coding=utf8
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Convert CLDR data to QLocaleXML
-The CLDR data can be downloaded from CLDR_, which has a sub-directory
-for each version; you need the ``core.zip`` file for your version of
-choice (typically the latest). This script has had updates to cope up
-to v38.1; for later versions, we may need adaptations. Unpack the
-downloaded ``core.zip`` and check it has a common/main/ sub-directory:
-pass the path of that root of the download to this script as its first
-command-line argument. Pass the name of the file in which to write
-output as the second argument; either omit it or use '-' to select the
-standard output. This file is the input needed by
-``./qlocalexml2cpp.py``
+The CLDR data can be downloaded as a zip-file from CLDR_, which has a
+sub-directory for each version; you need the ``core.zip`` file for
+your version of choice (typically the latest), which you should then
+unpack. Alternatively, you can clone the git repo from github_, which
+has a tag for each release and a maint/maint-$ver branch for each
+major version. Either way, the CLDR top-level directory should have a
+subdirectory called common/ which contains (among other things)
+subdirectories main/ and supplemental/.
+
+This script has had updates to cope up to v44.1; for later versions,
+we may need adaptations. Pass the path of the CLDR top-level directory
+to this script as its first command-line argument. Pass the name of
+the file in which to write output as the second argument; either omit
+it or use '-' to select the standard output. This file is the input
+needed by ``./qlocalexml2cpp.py``
When you update the CLDR data, be sure to also update
src/corelib/text/qt_attribution.json's entry for unicode-cldr. Check
@@ -53,7 +32,8 @@ time zone names; see cldr2qtimezone.py for details.
All the scripts mentioned support --help to tell you how to use them.
-.. _CLDR: ftp://unicode.org/Public/cldr/
+.. _CLDR: https://unicode.org/Public/cldr/
+.. _github: https://github.com/unicode-org/cldr
"""
from pathlib import Path
@@ -102,7 +82,7 @@ def main(out, err):
writer = QLocaleXmlWriter(emit.write)
writer.version(reader.root.cldrVersion)
- writer.enumData()
+ writer.enumData(reader.root.englishNaming)
writer.likelySubTags(reader.likelySubTags())
writer.locales(reader.readLocales(args.calendars), args.calendars)
diff --git a/util/locale_database/cldr2qtimezone.py b/util/locale_database/cldr2qtimezone.py
index dec350fa8e..27987d5a58 100755
--- a/util/locale_database/cldr2qtimezone.py
+++ b/util/locale_database/cldr2qtimezone.py
@@ -1,39 +1,15 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Parse CLDR data for QTimeZone use with MS-Windows
Script to parse the CLDR common/supplemental/windowsZones.xml file and
-encode for use in QTimeZone. See ``./cldr2qlocalexml.py`` for where
-to get the CLDR data. Pass its root directory as first parameter to
-this script and the qtbase root directory as second parameter. It
-shall update qtbase's src/corelib/time/qtimezoneprivate_data_p.h ready
-for use.
+prepare its data for use in QTimeZone. See ``./cldr2qlocalexml.py`` for
+where to get the CLDR data. Pass its root directory as first parameter
+to this script. You can optionally pass the qtbase root directory as
+second parameter; it defaults to the root of the checkout containing
+this script. This script updates qtbase's
+src/corelib/time/qtimezoneprivate_data_p.h with the new data.
"""
import datetime
@@ -41,7 +17,7 @@ from pathlib import Path
import textwrap
import argparse
-from localetools import unicode2hex, wrap_list, Error, SourceFileEditor
+from localetools import unicode2hex, wrap_list, Error, SourceFileEditor, qtbase_root
from cldr import CldrAccess
### Data that may need updates in response to new entries in the CLDR file ###
@@ -84,10 +60,10 @@ windowsIdList = (
('Central Europe Standard Time', 3600),
('Central European Standard Time', 3600),
('Central Pacific Standard Time', 39600),
- ('Central Standard Time (Mexico)', -21600),
('Central Standard Time', -21600),
- ('China Standard Time', 28800),
+ ('Central Standard Time (Mexico)', -21600),
('Chatham Islands Standard Time', 45900),
+ ('China Standard Time', 28800),
('Cuba Standard Time', -18000),
('Dateline Standard Time', -43200),
('E. Africa Standard Time', 10800),
@@ -124,8 +100,8 @@ windowsIdList = (
('Middle East Standard Time', 7200),
('Montevideo Standard Time', -10800),
('Morocco Standard Time', 0),
- ('Mountain Standard Time (Mexico)', -25200),
('Mountain Standard Time', -25200),
+ ('Mountain Standard Time (Mexico)', -25200),
('Myanmar Standard Time', 23400),
('N. Central Asia Standard Time', 21600),
('Namibia Standard Time', 3600),
@@ -144,9 +120,9 @@ windowsIdList = (
('Paraguay Standard Time', -14400),
('Qyzylorda Standard Time', 18000), # a.k.a. Kyzylorda, in Kazakhstan
('Romance Standard Time', 3600),
- ('Russia Time Zone 3', 14400),
('Russia Time Zone 10', 39600),
('Russia Time Zone 11', 43200),
+ ('Russia Time Zone 3', 14400),
('Russian Standard Time', 10800),
('SA Eastern Standard Time', -10800),
('SA Pacific Standard Time', -18000),
@@ -159,6 +135,7 @@ windowsIdList = (
('SE Asia Standard Time', 25200),
('Singapore Standard Time', 28800),
('South Africa Standard Time', 7200),
+ ('South Sudan Standard Time', 7200),
('Sri Lanka Standard Time', 19800),
('Sudan Standard Time', 7200), # unless they mean South Sudan, +03:00
('Syria Standard Time', 7200),
@@ -174,13 +151,14 @@ windowsIdList = (
('Ulaanbaatar Standard Time', 28800),
('US Eastern Standard Time', -18000),
('US Mountain Standard Time', -25200),
- ('UTC-11', -39600),
- ('UTC-09', -32400),
- ('UTC-08', -28800),
- ('UTC-02', -7200),
('UTC', 0),
+ # Lexical order: '+' < '-'
('UTC+12', 43200),
('UTC+13', 46800),
+ ('UTC-02', -7200),
+ ('UTC-08', -28800),
+ ('UTC-09', -32400),
+ ('UTC-11', -39600),
('Venezuela Standard Time', -16200),
('Vladivostok Standard Time', 36000),
('Volgograd Standard Time', 14400),
@@ -197,9 +175,9 @@ windowsIdList = (
# List of standard UTC IDs to use. Not public so may be safely changed.
# Do not remove IDs, as each entry is part of the API/behavior guarantee.
+# IDs for the same offset shall be space-joined; list the preferred ID first.
# ( UTC Id, Offset Seconds )
utcIdList = (
- ('UTC', 0), # Goes first so is default
('UTC-14:00', -50400),
('UTC-13:00', -46800),
('UTC-12:00', -43200),
@@ -216,8 +194,9 @@ utcIdList = (
('UTC-03:00', -10800),
('UTC-02:00', -7200),
('UTC-01:00', -3600),
- ('UTC-00:00', 0),
+ ('UTC', 0), # Goes first (among zero-offset) to be default
('UTC+00:00', 0),
+ ('UTC-00:00', 0), # Should recognize, but avoid using (see Note below).
('UTC+01:00', 3600),
('UTC+02:00', 7200),
('UTC+03:00', 10800),
@@ -243,6 +222,17 @@ utcIdList = (
### End of data that may need updates in response to CLDR ###
+# Note: -00:00 (without the UTC prefix) was introduced in RFC3339 as a
+# way to indicate that a date-time has been converted to UTC but its
+# use should not be understood to say anything about the local time of
+# the origin of the message using it. However, ISO 8601 has, since
+# 2000, forbidden this as an offset suffix. The more recent compromise
+# is to use Z to convey the meaning RFC3339 gave to -00:00. So the use
+# of -00:00 as offset suffix should be avoided (and, by extension,
+# likewise for UTC-00:00 as a zone ID), but this suffix (and ID)
+# should be recognized when consuming data generated by other sources,
+# for backwards compatibility.
+
class ByteArrayData:
def __init__(self):
self.data = []
@@ -262,11 +252,13 @@ class ByteArrayData:
return index
def write(self, out, name):
- out(f'\nstatic const char {name}[] = {{\n')
- out(wrap_list(self.data))
+ out(f'\nstatic constexpr char {name}[] = {{\n')
+ out(wrap_list(self.data, 16)) # 16 == 100 // len('0xhh, ')
+ # Will over-spill 100-col if some 4-digit hex show up, but none do (yet).
out('\n};\n')
class ZoneIdWriter (SourceFileEditor):
+ # All the output goes into namespace QtTimeZoneCldr.
def write(self, version, defaults, windowsIds):
self.__writeWarning(version)
windows, iana = self.__writeTables(self.writer.write, defaults, windowsIds)
@@ -293,34 +285,41 @@ class ZoneIdWriter (SourceFileEditor):
# Write Windows/IANA table
out('// Windows ID Key, Territory Enum, IANA ID Index\n')
- out('static const QZoneData zoneDataTable[] = {\n')
+ out('static constexpr ZoneData zoneDataTable[] = {\n')
+ # Sorted by (Windows ID Key, territory enum)
for index, data in sorted(windowsIds.items()):
out(' {{ {:6d},{:6d},{:6d} }}, // {} / {}\n'.format(
data['windowsKey'], data['territoryId'],
ianaIdData.append(data['ianaList']),
data['windowsId'], data['territory']))
- out(' { 0, 0, 0 } // Trailing zeroes\n')
out('};\n\n')
# Write Windows ID key table
out('// Windows ID Key, Windows ID Index, IANA ID Index, UTC Offset\n')
- out('static const QWindowsData windowsDataTable[] = {\n')
+ out('static constexpr WindowsData windowsDataTable[] = {\n')
+ # Sorted by Windows ID key; sorting case-insensitively by
+ # Windows ID must give the same order.
+ winIdNames = [x.lower() for x, y in windowsIdList]
+ assert all(x == y for x, y in zip(winIdNames, sorted(winIdNames))), \
+ [(x, y) for x, y in zip(winIdNames, sorted(winIdNames)) if x != y]
for index, pair in enumerate(windowsIdList, 1):
out(' {{ {:6d},{:6d},{:6d},{:6d} }}, // {}\n'.format(
index,
windowsIdData.append(pair[0]),
ianaIdData.append(defaults[index]),
pair[1], pair[0]))
- out(' { 0, 0, 0, 0 } // Trailing zeroes\n')
out('};\n\n')
+ offsetMap = {}
+ for pair in utcIdList:
+ offsetMap[pair[1]] = offsetMap.get(pair[1], ()) + (pair[0],)
# Write UTC ID key table
out('// IANA ID Index, UTC Offset\n')
- out('static const QUtcData utcDataTable[] = {\n')
- for pair in utcIdList:
+ out('static constexpr UtcData utcDataTable[] = {\n')
+ for offset in sorted(offsetMap.keys()): # Sort so C++ can binary-chop.
+ names = offsetMap[offset];
out(' {{ {:6d},{:6d} }}, // {}\n'.format(
- ianaIdData.append(pair[0]), pair[1], pair[0]))
- out(' { 0, 0 } // Trailing zeroes\n')
+ ianaIdData.append(' '.join(names)), offset, names[0]))
out('};\n')
return windowsIdData, ianaIdData
@@ -337,7 +336,9 @@ def main(out, err):
parser = argparse.ArgumentParser(
description="Update Qt's CLDR-derived timezone data.")
parser.add_argument('cldr_path', help='path to the root of the CLDR tree')
- parser.add_argument('qtbase_path', help='path to the root of the qtbase source tree')
+ parser.add_argument('qtbase_path',
+ help='path to the root of the qtbase source tree',
+ nargs='?', default=qtbase_root)
args = parser.parse_args()
diff --git a/util/locale_database/dateconverter.py b/util/locale_database/dateconverter.py
index b8caabc37f..8ca15405f7 100644
--- a/util/locale_database/dateconverter.py
+++ b/util/locale_database/dateconverter.py
@@ -1,106 +1,195 @@
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-import re
-
-def _convert_pattern(pattern):
- # patterns from http://www.unicode.org/reports/tr35/#Date_Format_Patterns
- qt_regexps = {
- r"yyy{3,}" : "yyyy", # more that three digits hence convert to four-digit year
- r"L" : "M", # stand-alone month names. not supported.
- r"g{1,}": "", # modified julian day. not supported.
- r"S{1,}" : "", # fractional seconds. not supported.
- r"A{1,}" : "" # milliseconds in day. not supported.
- }
- qt_patterns = {
- "G" : "", "GG" : "", "GGG" : "", "GGGG" : "", "GGGGG" : "", # Era. not supported.
- "y" : "yyyy", # four-digit year without leading zeroes
- "Q" : "", "QQ" : "", "QQQ" : "", "QQQQ" : "", # quarter. not supported.
- "q" : "", "qq" : "", "qqq" : "", "qqqq" : "", # quarter. not supported.
- "MMMMM" : "MMM", # narrow month name.
- "LLLLL" : "MMM", # stand-alone narrow month name.
- "l" : "", # special symbol for chinese leap month. not supported.
- "w" : "", "W" : "", # week of year/month. not supported.
- "D" : "", "DD" : "", "DDD" : "", # day of year. not supported.
- "F" : "", # day of week in month. not supported.
- "E" : "ddd", "EE" : "ddd", "EEE" : "ddd", "EEEEE" : "ddd", "EEEE" : "dddd", # day of week
- "e" : "ddd", "ee" : "ddd", "eee" : "ddd", "eeeee" : "ddd", "eeee" : "dddd", # local day of week
- "c" : "ddd", "cc" : "ddd", "ccc" : "ddd", "ccccc" : "ddd", "cccc" : "dddd", # stand-alone local day of week
- "a" : "AP", # AM/PM
- "K" : "h", # Hour 0-11
- "k" : "H", # Hour 1-24
- "j" : "", # special reserved symbol.
- "z" : "t", "zz" : "t", "zzz" : "t", "zzzz" : "t", # timezone
- "Z" : "t", "ZZ" : "t", "ZZZ" : "t", "ZZZZ" : "t", # timezone
- "v" : "t", "vv" : "t", "vvv" : "t", "vvvv" : "t", # timezone
- "V" : "t", "VV" : "t", "VVV" : "t", "VVVV" : "t" # timezone
- }
- if pattern in qt_patterns:
- return qt_patterns[pattern]
- for r,v in qt_regexps.items():
- pattern = re.sub(r, v, pattern)
- return pattern
-
-def convert_date(input):
- result = ""
- patterns = "GyYuQqMLlwWdDFgEecahHKkjmsSAzZvV"
- last = ""
- inquote = 0
- chars_to_strip = " -"
- for c in input:
- if c == "'":
- inquote = inquote + 1
- if inquote % 2 == 0:
- if c in patterns:
- if not last:
- last = c
- else:
- if c in last:
- last += c
- else:
- # pattern changed
- converted = _convert_pattern(last)
- result += converted
- if not converted:
- result = result.rstrip(chars_to_strip)
- last = c
- continue
- if last:
- # pattern ended
- converted = _convert_pattern(last)
- result += converted
- if not converted:
- result = result.rstrip(chars_to_strip)
- last = ""
- result += c
- if last:
- converted = _convert_pattern(last)
- result += converted
- if not converted:
- result = result.rstrip(chars_to_strip)
- return result.lstrip(chars_to_strip)
+# Copyright (C) 2016 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+class Converter (object):
+ """Conversion between CLDR and Qt datetime formats.
+
+ Keep in sync with qlocale_mac.mm's macToQtFormat().
+ The definitive source of truth is:
+ https://www.unicode.org/reports/tr35/tr35-68/tr35-dates.html#Date_Field_Symbol_Table
+
+ See convert() for explanation of the approach taken. Each method
+ with a single-letter name is used to scan a prefix of a text,
+ presumed to begin with that letter (or one Qt treats as equivalent
+ to it) and returns a pair (Qt format, length), to use the given Qt
+ format in place of text[:length]. In all cases, length must be
+ positive."""
+
+ @staticmethod
+ def __is_reserved(ch):
+ """Every ASCII letter is a reserved symbol in CLDR datetime formats"""
+ assert len(ch) == 1, ch
+ return ch.isascii() and ch.isalpha();
+ @staticmethod
+ def __count_first(text):
+ """How many of text[0] appear at the start of text ?"""
+ assert text
+ return len(text) - len(text.lstrip(text[0]))
+ @classmethod
+ def __verbatim(cls, text):
+ # Used where our format coincides with LDML's, including on length.
+ n = cls.__count_first(text)
+ return text[:n], n
+ @classmethod
+ def __treat_as(cls, mimic, text):
+ # Helper for aliases
+ n = cls.__count_first(text)
+ return mimic * n, n
+
+ # Please follow alphabetic order, with two cases of the same
+ # letter adjacent, lower before upper.
+ @classmethod
+ def a(cls, text): # AM/PM indicator; use locale-appropriate case
+ return 'Ap', cls.__count_first(text)
+
+ # A: Milliseconds in day. Not supported.
+ b = a # AM/PM/noon/midnight
+ B = a # "Flexible day period" (e.g. "at night" / "in the day")
+ # (Only zh_Hant_TW affected; zh_Hant_{HK,MO} use 'ah', mapped to
+ # 'APh', so do the same here.)
+
+ @classmethod
+ def c(cls, text): # Stand-alone local day of week
+ # Has length-variants for several cases Qt doesn't support, as
+ # do 'e' and 'E': just map all simply to weekday, abbreviated
+ # or full.
+ n = cls.__count_first(text)
+ return ('dddd' if n == 4 else 'ddd'), n
+
+ # C: Input skeleton symbol
+ d = __verbatim # day (of month or of week, depends on length)
+ # D: Day of year. Not supported.
+ e = c # Local day of week
+ E = c # Just plain day of week
+ # F: Day of week in month. Not supported.
+ # g: Modified julian day. Not supported.
+ # G: Era. Not supported.
+ h = __verbatim # Hour 1-12, treat as 0-11
+ H = __verbatim # Hour 0-23
+ # j: Input skeleton symbol
+ # J: Input skeleton symbol
+
+ @classmethod
+ def k(cls, text): # Hour 1-24, treat as 0-23
+ return cls.__treat_as('H', text)
+ @classmethod
+ def K(cls, text): # Hour 0-11
+ return cls.__treat_as('h', text)
+
+ # l: Deprecated Chinese leap month indicator.
+ @classmethod
+ def L(cls, text): # Stand-alone month names: treat as plain month names.
+ n = cls.__count_first(text)
+ # Length five is narrow; treat same as abbreviated; anything
+ # shorter matches Qt's month forms.
+ return ('MMM' if n > 4 else 'M' * n), n
+
+ m = __verbatim # Minute within the hour.
+ M = L # Plain month names, possibly abbreviated, and numbers.
+
+ @classmethod
+ def O(cls, text): # Localized GMT±offset formats. Map to Z-or-UTC±HH:mm
+ return 't', cls.__count_first(text)
+
+ # q: Quarter. Not supported.
+ # Q: Quarter. Not supported.
+
+ s = __verbatim # Seconds within the minute.
+ @classmethod
+ def S(cls, text): # Fractional seconds. Only milliseconds supported.
+ # FIXME: spec is unclear, do we need to include the leading
+ # dot or not ? For now, no known locale actually exercises
+ # this, so stick with what we've done on Darwin since long
+ # before adding support here.
+ n = cls.__count_first(text)
+ return ('z' if n < 3 else 'zzz'), n
+
+ @classmethod
+ def u(cls, text): # Extended year (numeric)
+ # Officially, 'u' is simply the full year number, zero-padded
+ # to the length of the field. Qt's closest to that is four-digit.
+ # It explicitly has no special case for two-digit year.
+ return 'yyyy', cls.__count_first(text)
+
+ # U: Cyclic Year Name. Not supported
+ @classmethod
+ def v(cls, text): # Generic non-location format. Map to name.
+ return 'tttt', cls.__count_first(text)
+
+ V = v # Zone ID in various forms; VV is IANA ID. Map to name.
+ # w: Week of year. Not supported.
+ # W: Week of month. Not supported.
+
+ @classmethod
+ def x(cls, text): # Variations on offset format.
+ n = cls.__count_first(text)
+ # Ignore: n == 1 may omit minutes, n > 3 may include seconds.
+ return ('ttt' if n > 1 and n & 1 else 'tt'), n
+ X = x # Should use Z for zero offset.
+
+ @classmethod
+ def y(cls, text): # Year number.
+ n = cls.__count_first(text)
+ return ('yy' if n == 2 else 'yyyy'), n
+ # Y: Year for Week-of-year calendars
+
+ z = v # Specific (i.e. distinguish standard from DST) non-location format.
+ @classmethod
+ def Z(cls, text): # Offset format, optionaly with GMT (Qt uses UTC) prefix.
+ n = cls.__count_first(text)
+ return ('tt' if n < 4 else 'ttt' if n > 4 else 't'), n
+
+ @staticmethod
+ def scanQuote(text): # Can't have ' as a method name, so handle specially
+ assert text.startswith("'")
+ i = text.find("'", 1) # Find the next; -1 if not present.
+ i = len(text) if i < 0 else i + 1 # Include the close-quote.
+ return text[:i], i
+
+ # Now put all of those to use:
+ @classmethod
+ def convert(cls, text):
+ """Convert a CLDR datetime format string into a Qt one.
+
+ Presumes that the caller will ''.join() the fragments it
+ yields. Each sequence of CLDR field symbols that corresponds
+ to a Qt format token is converted to it; all other CLDR field
+ symbols are discarded; the literals in between fields are
+ preserved verbatim, except that space and hyphen separators
+ immediately before a discarded field are discarded with it.
+
+ The approach is to look at the first symbol of the remainder
+ of the text, at each iteration, and use that first symbol to
+ select a function that will identify how much of the text to
+ consume and what to replace it with."""
+ sep = ''
+ while text:
+ ch = text[0]
+ if ch == "'":
+ quoted, length = cls.scanQuote(text)
+ text = text[length:]
+ sep += quoted
+ elif hasattr(cls, ch):
+ qtform, length = getattr(cls, ch)(text)
+ assert qtform and length > 0, (ch, text, qtform, length)
+ text = text[length:]
+ if sep:
+ yield sep
+ sep = ''
+ yield qtform
+ elif cls.__is_reserved(ch):
+ text = text[cls.__count_first(text):]
+ # Discard space or dash separator that was only there
+ # for the sake of the unsupported field:
+ sep = sep.rstrip(' -')
+ # TODO: should we also strip [ -]* from text
+ # immediately following unsupported forms ?
+ else:
+ sep += ch
+ text = text[1:]
+ if sep:
+ yield sep
+
+def convert_date(text):
+ # See Converter.convert()
+ return ''.join(Converter.convert(text))
diff --git a/util/locale_database/enumdata.py b/util/locale_database/enumdata.py
index c3a7f92209..66b8840cb1 100644
--- a/util/locale_database/enumdata.py
+++ b/util/locale_database/enumdata.py
@@ -1,56 +1,60 @@
-# -*- coding: utf-8; -*-
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-# A run of cldr2qlocalexml.py will produce output reporting any
-# language, script and territory codes it sees, in data, for which it
-# can find a name (taken always from en.xml) that could potentially be
-# used. There is no point adding a mapping for such a code unless the
-# CLDR's common/main/ contains an XML file for at least one locale
-# that exerciss it.
+"""Assorted enumerations implicated in public API.
-# Each *_list reflects the current values of its enums in qlocale.h;
-# if new xml language files are available in CLDR, these languages and
-# territories need to be *appended* to this list (for compatibility
-# between versions). Include any spaces present in names (scripts
-# shall squish them out for the enum entries) in *_list, but use the
-# squished forms of names in the *_aliases mappings.
+The numberings of these enumerations can only change at major
+versions. When new CLDR data implies adding entries, the new ones must
+go after all existing ones. See also zonedata.py for enumerations
+related to timezones and CLDR, which can more freely be changed
+between versions.
-# For a new major version (and only then), we can change the
-# numbering, so re-sort each list into alphabetic order (e.g. using
-# sort -k2); but keep the Any and C entries first. That's why those
-# are offset with a blank line, below. After doing that, regenerate
-# locale data as usual; this will cause a binary-incompatible change.
+A run of cldr2qlocalexml.py will produce output reporting any
+language, script and territory codes it sees, in data, for which it
+can find a name (taken always from en.xml) that could potentially be
+used. There is no point adding a mapping for such a code unless the
+CLDR's common/main/ contains an XML file for at least one locale that
+exercises it (and little point, even then, absent substantial data,
+ignoring draft='unconfirmed' entries).
-# Note on "macrolanguage" comments: see "ISO 639 macrolanguage" on
-# Wikipedia. A "macrolanguage" is (loosely-speaking) a group of
-# languages so closely related to one another that they could also be
-# regarded as divergent dialects of the macrolanguage.
+Each *_map reflects the current values of its enums in qlocale.h; if
+new xml language files are available in CLDR, these languages and
+territories need to be *appended* to this list (for compatibility
+between versions). Include any spaces and dashes present in names
+(they'll be squished out for the enum entries) in *_map, but use the
+squished forms of names in the *_aliases mappings. The squishing also
+turns the first letter of each word into a capital so you can safely
+preserve the case of en.xml's name; but omit (or replace with space)
+any punctuation aside from dashes and map any accented letters to
+their un-accented plain ASCII. The two tables, for each enum, have
+the forms:
+* map { Numeric value: ("Proper name", "ISO code") }
+* alias { "OldName": "CurrentName" }
+
+TODO: add support for marking entries as deprecated from a specified
+version. For aliases that merely deprecates the name. Where we have a
+name for which CLDR offers no data, we may also want to deprecate
+entries in the map - although they may be worth keeping for the
+benefit of QLocaleSelector (see QTBUG-112765), if other
+locale-specific resources might have use of them.
+
+For a new major version (and only then), we can change the numbering,
+so re-sort each list into alphabetic order (e.g. using sort -k2); but
+keep the Any and C entries first. That's why those are offset with a
+blank line, below. After doing that, regenerate locale data as usual;
+this will cause a binary-incompatible change.
+
+Note on 'macrolanguage' comments: see QTBUG-107781 and 'ISO 639
+macrolanguage' on Wikipedia. A 'macrolanguage' is (loosely-speaking) a
+group of languages so closely related to one another that they could
+also be regarded as divergent dialects of the macrolanguage. In some
+cases this may mean a resource (such as translation or text-to-speech
+data) may describe itself as pertaining to the macrolanguage, implying
+its suitability for use in any of the languages within the
+macrolanguage. For example, no_NO might be used for a generic
+Norwegian resource, embracing both nb_NO and nn_NO.
+
+"""
language_map = {
0: ("AnyLanguage", " "),
@@ -177,7 +181,7 @@ language_map = {
120: ("Japanese", "ja"),
121: ("Javanese", "jv"),
122: ("Jju", "kaj"),
- 123: ("Jola Fonyi", "dyo"),
+ 123: ("Jola-Fonyi", "dyo"),
124: ("Kabuverdianu", "kea"),
125: ("Kabyle", "kab"),
126: ("Kako", "kkj"),
@@ -218,7 +222,7 @@ language_map = {
161: ("Lojban", "jbo"),
162: ("Lower Sorbian", "dsb"),
163: ("Low German", "nds"),
- 164: ("Luba Katanga", "lu"),
+ 164: ("Luba-Katanga", "lu"),
165: ("Lule Sami", "smj"),
166: ("Luo", "luo"),
167: ("Luxembourgish", "lb"),
@@ -226,7 +230,7 @@ language_map = {
169: ("Macedonian", "mk"),
170: ("Machame", "jmc"),
171: ("Maithili", "mai"),
- 172: ("Makhuwa Meetto", "mgh"),
+ 172: ("Makhuwa-Meetto", "mgh"),
173: ("Makonde", "kde"),
174: ("Malagasy", "mg"), # macrolanguage
175: ("Malayalam", "ml"),
@@ -382,7 +386,31 @@ language_map = {
325: ("Zarma", "dje"),
326: ("Zhuang", "za"), # macrolanguage
327: ("Zulu", "zu"),
+ # added in CLDR v40
+ 328: ("Kaingang", "kgp"),
+ 329: ("Nheengatu", "yrl"),
+ # added in CLDR v42
+ 330: ("Haryanvi", "bgc"),
+ 331: ("Northern Frisian", "frr"),
+ 332: ("Rajasthani", "raj"),
+ 333: ("Moksha", "mdf"),
+ 334: ("Toki Pona", "tok"),
+ 335: ("Pijin", "pis"),
+ 336: ("Obolo", "ann"),
+ # added in CLDR v43
+ 337: ("Baluchi", "bal"),
+ 338: ("Ligurian", "lij"),
+ 339: ("Rohingya", "rhg"),
+ 340: ("Torwali", "trw"),
+ # added in CLDR v44
+ 341: ("Anii", "blo"),
+ 342: ("Kangri", "xnr"),
+ 343: ("Venetian", "vec"),
}
+# Don't add languages just because they exist; check CLDR does provide
+# substantial data for locales using it; and check, once added, they
+# don't show up in cldr2qlocalexmo.py's unused listing. Do also check
+# the data's draft status; if it's (nearly) all unconfirmed, leave it.
language_aliases = {
# Renamings prior to Qt 6.0 (CLDR v37):
@@ -406,7 +434,7 @@ language_aliases = {
'Navaho': 'Navajo',
'Oriya': 'Odia',
'Kirghiz': 'Kyrgyz'
- }
+}
territory_map = {
0: ("AnyTerritory", "ZZ"),
@@ -420,7 +448,7 @@ territory_map = {
7: ("Angola", "AO"),
8: ("Anguilla", "AI"),
9: ("Antarctica", "AQ"),
- 10: ("Antigua And Barbuda", "AG"),
+ 10: ("Antigua and Barbuda", "AG"),
11: ("Argentina", "AR"),
12: ("Armenia", "AM"),
13: ("Aruba", "AW"),
@@ -439,7 +467,7 @@ territory_map = {
26: ("Bermuda", "BM"),
27: ("Bhutan", "BT"),
28: ("Bolivia", "BO"),
- 29: ("Bosnia And Herzegovina", "BA"),
+ 29: ("Bosnia and Herzegovina", "BA"),
30: ("Botswana", "BW"),
31: ("Bouvet Island", "BV"),
32: ("Brazil", "BR"),
@@ -457,7 +485,7 @@ territory_map = {
44: ("Caribbean Netherlands", "BQ"),
45: ("Cayman Islands", "KY"),
46: ("Central African Republic", "CF"),
- 47: ("Ceuta And Melilla", "EA"),
+ 47: ("Ceuta and Melilla", "EA"),
48: ("Chad", "TD"),
49: ("Chile", "CL"),
50: ("China", "CN"),
@@ -466,8 +494,8 @@ territory_map = {
53: ("Cocos Islands", "CC"),
54: ("Colombia", "CO"),
55: ("Comoros", "KM"),
- 56: ("Congo Brazzaville", "CG"),
- 57: ("Congo Kinshasa", "CD"),
+ 56: ("Congo - Brazzaville", "CG"),
+ 57: ("Congo - Kinshasa", "CD"),
58: ("Cook Islands", "CK"),
59: ("Costa Rica", "CR"),
60: ("Croatia", "HR"),
@@ -511,11 +539,11 @@ territory_map = {
98: ("Guam", "GU"),
99: ("Guatemala", "GT"),
100: ("Guernsey", "GG"),
- 101: ("Guinea Bissau", "GW"),
+ 101: ("Guinea-Bissau", "GW"),
102: ("Guinea", "GN"),
103: ("Guyana", "GY"),
104: ("Haiti", "HT"),
- 105: ("Heard And McDonald Islands", "HM"),
+ 105: ("Heard and McDonald Islands", "HM"),
106: ("Honduras", "HN"),
107: ("Hong Kong", "HK"),
108: ("Hungary", "HU"),
@@ -525,12 +553,12 @@ territory_map = {
112: ("Iran", "IR"),
113: ("Iraq", "IQ"),
114: ("Ireland", "IE"),
- 115: ("Isle Of Man", "IM"),
+ 115: ("Isle of Man", "IM"),
116: ("Israel", "IL"),
117: ("Italy", "IT"),
- # Officially Côte d’Ivoire, which we'd ned to map to CotedIvoire
- # or CoteDIvoire, either failing to make the d' separate from
- # Cote or messing with its case. So stick with Ivory Coast:
+ # Officially Côte d’Ivoire, which we'd need to map to CotedIvoire
+ # or CoteDIvoire, either failing to make the d' separate from Cote
+ # or messing with its case. So stick with Ivory Coast:
118: ("Ivory Coast", "CI"),
119: ("Jamaica", "JM"),
120: ("Japan", "JP"),
@@ -610,14 +638,14 @@ territory_map = {
194: ("Rwanda", "RW"),
195: ("Saint Barthelemy", "BL"),
196: ("Saint Helena", "SH"),
- 197: ("Saint Kitts And Nevis", "KN"),
+ 197: ("Saint Kitts and Nevis", "KN"),
198: ("Saint Lucia", "LC"),
199: ("Saint Martin", "MF"),
- 200: ("Saint Pierre And Miquelon", "PM"),
- 201: ("Saint Vincent And Grenadines", "VC"),
+ 200: ("Saint Pierre and Miquelon", "PM"),
+ 201: ("Saint Vincent and Grenadines", "VC"),
202: ("Samoa", "WS"),
203: ("San Marino", "SM"),
- 204: ("Sao Tome And Principe", "ST"),
+ 204: ("Sao Tome and Principe", "ST"),
205: ("Saudi Arabia", "SA"),
206: ("Senegal", "SN"),
207: ("Serbia", "RS"),
@@ -630,14 +658,14 @@ territory_map = {
214: ("Solomon Islands", "SB"),
215: ("Somalia", "SO"),
216: ("South Africa", "ZA"),
- 217: ("South Georgia And South Sandwich Islands", "GS"),
+ 217: ("South Georgia and South Sandwich Islands", "GS"),
218: ("South Korea", "KR"),
219: ("South Sudan", "SS"),
220: ("Spain", "ES"),
221: ("Sri Lanka", "LK"),
222: ("Sudan", "SD"),
223: ("Suriname", "SR"),
- 224: ("Svalbard And Jan Mayen", "SJ"),
+ 224: ("Svalbard and Jan Mayen", "SJ"),
225: ("Sweden", "SE"),
226: ("Switzerland", "CH"),
227: ("Syria", "SY"),
@@ -649,12 +677,12 @@ territory_map = {
233: ("Togo", "TG"),
234: ("Tokelau", "TK"),
235: ("Tonga", "TO"),
- 236: ("Trinidad And Tobago", "TT"),
- 237: ("Tristan Da Cunha", "TA"),
+ 236: ("Trinidad and Tobago", "TT"),
+ 237: ("Tristan da Cunha", "TA"),
238: ("Tunisia", "TN"),
239: ("Turkey", "TR"),
240: ("Turkmenistan", "TM"),
- 241: ("Turks And Caicos Islands", "TC"),
+ 241: ("Turks and Caicos Islands", "TC"),
242: ("Tuvalu", "TV"),
243: ("Uganda", "UG"),
244: ("Ukraine", "UA"),
@@ -669,9 +697,9 @@ territory_map = {
253: ("Vatican City", "VA"),
254: ("Venezuela", "VE"),
255: ("Vietnam", "VN"),
- 256: ("Wallis And Futuna", "WF"),
+ 256: ("Wallis and Futuna", "WF"),
257: ("Western Sahara", "EH"),
- 258: ("World", "001"),
+ 258: ("world", "001"),
259: ("Yemen", "YE"),
260: ("Zambia", "ZM"),
261: ("Zimbabwe", "ZW"),
@@ -741,7 +769,7 @@ script_map = {
28: ("Deseret", "Dsrt"),
29: ("Devanagari", "Deva"),
30: ("Duployan", "Dupl"),
- 31: ("Egyptian Hieroglyphs", "Egyp"),
+ 31: ("Egyptian hieroglyphs", "Egyp"),
32: ("Elbasan", "Elba"),
33: ("Ethiopic", "Ethi"),
34: ("Fraser", "Lisu"),
@@ -816,7 +844,7 @@ script_map = {
103: ("Pahawh Hmong", "Hmng"),
104: ("Palmyrene", "Palm"),
105: ("Pau Cin Hau", "Pauc"),
- 106: ("Phags Pa", "Phag"),
+ 106: ("Phags-pa", "Phag"),
107: ("Phoenician", "Phnx"),
108: ("Pollard Phonetic", "Plrd"),
109: ("Psalter Pahlavi", "Phlp"),
@@ -827,7 +855,7 @@ script_map = {
114: ("Sharada", "Shrd"),
115: ("Shavian", "Shaw"),
116: ("Siddham", "Sidd"),
- 117: ("Sign Writing", "Sgnw"),
+ 117: ("SignWriting", "Sgnw"), # Oddly, en.xml leaves no space in it.
118: ("Simplified Han", "Hans"),
119: ("Sinhala", "Sinh"),
120: ("Sora Sompeng", "Sora"),
@@ -852,6 +880,8 @@ script_map = {
139: ("Vai", "Vaii"),
140: ("Varang Kshiti", "Wara"),
141: ("Yi", "Yiii"),
+ # Added at CLDR v43
+ 142: ("Hanifi", "Rohg"), # Used for Rohingya
}
script_aliases = {
diff --git a/util/locale_database/iso639_3.py b/util/locale_database/iso639_3.py
new file mode 100644
index 0000000000..0d23065cf9
--- /dev/null
+++ b/util/locale_database/iso639_3.py
@@ -0,0 +1,80 @@
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+from dataclasses import dataclass
+from typing import Dict, Optional
+
+
+@dataclass
+class LanguageCodeEntry:
+ part3Code: str
+ part2BCode: Optional[str]
+ part2TCode: Optional[str]
+ part1Code: Optional[str]
+
+ def id(self) -> str:
+ if self.part1Code:
+ return self.part1Code
+ if self.part2BCode:
+ return self.part2BCode
+ return self.part3Code
+
+ def __repr__(self) -> str:
+ parts = [f'{self.__class__.__name__}({self.id()!r}, part3Code={self.part3Code!r}']
+ if self.part2BCode is not None and self.part2BCode != self.part3Code:
+ parts.append(f', part2BCode={self.part2BCode!r}')
+ if self.part2TCode != self.part2BCode:
+ parts.append(f', part2TCode={self.part2TCode!r}')
+ if self.part1Code is not None:
+ parts.append(f', part1Code={self.part1Code!r}')
+ parts.append(')')
+ return ''.join(parts)
+
+
+class LanguageCodeData:
+ """
+ Representation of ISO639-2 language code data.
+ """
+ def __init__(self, fileName: str):
+ """
+ Construct the object populating the data from the given file.
+ """
+ self.__codeMap: Dict[str, LanguageCodeEntry] = {}
+
+ with open(fileName, 'r', encoding='utf-8') as stream:
+ stream.readline() # skip the header
+ for line in stream.readlines():
+ part3Code, part2BCode, part2TCode, part1Code, _ = line.split('\t', 4)
+
+ # sanity checks
+ assert all(p.isascii() for p in (part3Code, part2BCode, part2TCode, part1Code)), \
+ f'Non-ascii characters in code names: {part3Code!r} {part2BCode!r} '\
+ f'{part2TCode!r} {part1Code!r}'
+
+ assert len(part3Code) == 3, f'Invalid Part 3 code length for {part3Code!r}'
+ assert not part1Code or len(part1Code) == 2, \
+ f'Invalid Part 1 code length for {part3Code!r}: {part1Code!r}'
+ assert not part2BCode or len(part2BCode) == 3, \
+ f'Invalid Part 2B code length for {part3Code!r}: {part2BCode!r}'
+ assert not part2TCode or len(part2TCode) == 3, \
+ f'Invalid Part 2T code length for {part3Code!r}: {part2TCode!r}'
+
+ assert (part2BCode == '') == (part2TCode == ''), \
+ f'Only one Part 2 code is specified for {part3Code!r}: ' \
+ f'{part2BCode!r} vs {part2TCode!r}'
+ assert not part2TCode or part2TCode == part3Code, \
+ f'Part 3 code {part3Code!r} does not match Part 2T code {part2TCode!r}'
+
+ entry = LanguageCodeEntry(part3Code, part2BCode or None,
+ part2TCode or None, part1Code or None)
+
+ self.__codeMap[entry.id()] = entry
+
+ def query(self, code: str) -> Optional[LanguageCodeEntry]:
+ """
+ Lookup the entry with the given code and return it.
+
+ The entries can be looked up by using either the Alpha2 code or the bibliographical
+ Alpha3 code.
+ """
+ return self.__codeMap.get(code)
diff --git a/util/locale_database/ldml.py b/util/locale_database/ldml.py
index 786583ed4a..b94c242172 100644
--- a/util/locale_database/ldml.py
+++ b/util/locale_database/ldml.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2020 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Parsing the Locale Data Markup Language
It's an XML format, so the raw parsing of XML is, of course, delegated
@@ -46,6 +21,13 @@ See individual classes for further detail.
from localetools import Error
from dateconverter import convert_date
+# The github version of CLDR uses '↑↑↑' to indicate "inherit"
+INHERIT = '↑↑↑'
+
+def _attrsFromDom(dom):
+ return { k: (v if isinstance(v, str) else v.nodeValue)
+ for k, v in dom.attributes.items() }
+
class Node (object):
"""Wrapper for an arbitrary DOM node.
@@ -75,6 +57,9 @@ class Node (object):
else:
self.draft = max(draft, self.draftScore(attr))
+ def attributes(self):
+ return _attrsFromDom(self.dom)
+
def findAllChildren(self, tag, wanted = None, allDull = False):
"""All children that do have the given tag and attributes.
@@ -191,17 +176,35 @@ class XmlScanner (object):
return elts
class Supplement (XmlScanner):
- def find(self, xpath):
+ def find(self, xpath, exclude=()):
+ """Finds nodes by matching a specified xpath.
+
+ If exclude is passed, it should be a sequence of attribute names (its
+ default is empty). Any matches to the given xpath that also have any
+ attribute in this sequence will be excluded.
+
+ For each childless node matching the xpath, or child of a node matching
+ the xpath, this yields a twople (name, attrs) where name is the
+ nodeName and attrs is a dict mapping the node's attribute's names to
+ their values. For attribute values that are not simple strings, the
+ nodeValue of the attribute node is used."""
elts = self.findNodes(xpath)
- for elt in _iterateEach(e.dom.childNodes if e.dom.childNodes else (e.dom,)
- for e in elts):
+ for elt in _iterateEach(e.dom.childNodes or (e.dom,)
+ for e in elts
+ if not any(a in e.dom.attributes
+ for a in exclude)):
if elt.attributes:
- yield (elt.nodeName,
- dict((k, v if isinstance(v, str) else v.nodeValue)
- for k, v in elt.attributes.items()))
+ yield elt.nodeName, _attrsFromDom(elt)
class LocaleScanner (object):
def __init__(self, name, nodes, root):
+ """Set up to scan data for a specified locale.
+
+ First parameter is the name of the locale; it will be used in
+ error messages. Second is a tuple of DOM root-nodes of files
+ with locale data, later ones serving as fall-backs for data
+ missing in earlier ones. Third parameter is the root locale's
+ DOM node."""
self.name, self.nodes, self.base = name, nodes, root
def find(self, xpath, default = None, draft = None):
@@ -282,7 +285,13 @@ class LocaleScanner (object):
stem = f'numbers/symbols[numberSystem={system}]/'
decimal = self.find(f'{stem}decimal')
group = self.find(f'{stem}group')
- assert decimal != group, (self.name, system, decimal)
+ if decimal == group:
+ # mn_Mong_MN @v43 :-(
+ clean = Node.draftScore('approved')
+ decimal = self.find(f'{stem}decimal', draft=clean)
+ group = self.find(f'{stem}group', draft=clean)
+ assert decimal != group, (self.name, system, decimal)
+
yield 'decimal', decimal
yield 'group', group
yield 'percent', self.find(f'{stem}percentSign')
@@ -294,7 +303,8 @@ class LocaleScanner (object):
assert len(digits) == 10
zero = digits[0]
# Qt's number-formatting code assumes digits are consecutive
- # (except Suzhou, CLDR's hanidec - see QTBUG-85409):
+ # (except Suzhou - see QTBUG-85409 - which shares its zero
+ # with CLDR's very-non-contiguous hanidec):
assert all(ord(c) == i + (0x3020 if ord(zero) == 0x3007 else ord(zero))
for i, c in enumerate(digits[1:], 1))
yield 'zero', zero
@@ -407,10 +417,10 @@ class LocaleScanner (object):
('long', 'format', 'wide'),
('short', 'format', 'abbreviated'),
('narrow', 'format', 'narrow'),
- ) # Used for month and day names
+ ) # Used for month and day names
def __find(self, xpath):
- retries = [ xpath.split('/') ]
+ retries, foundNone = [ xpath.split('/') ], True
while retries:
tags, elts, roots = retries.pop(), self.nodes, (self.base.root,)
for selector in tags:
@@ -420,6 +430,9 @@ class LocaleScanner (object):
break
else: # Found matching elements
+ elts = tuple(self.__skipInheritors(elts))
+ if elts:
+ foundNone = False
# Possibly filter elts to prefer the least drafty ?
for elt in elts:
yield elt
@@ -439,26 +452,40 @@ class LocaleScanner (object):
if not roots:
if retries: # Let outer loop fall back on an alias path:
break
- sought = '/'.join(tags)
- if sought != xpath:
- sought += f' (for {xpath})'
- raise Error(f'All lack child {selector} for {sought} in {self.name}')
+ if foundNone:
+ sought = '/'.join(tags)
+ if sought != xpath:
+ sought += f' (for {xpath})'
+ raise Error(f'All lack child {selector} for {sought} in {self.name}')
else: # Found matching elements
+ roots = tuple(self.__skipInheritors(roots))
+ if roots:
+ foundNone = False
for elt in roots:
yield elt
- sought = '/'.join(tags)
- if sought != xpath:
- sought += f' (for {xpath})'
- raise Error(f'No {sought} in {self.name}')
+ if foundNone:
+ sought = '/'.join(tags)
+ if sought != xpath:
+ sought += f' (for {xpath})'
+ raise Error(f'No {sought} in {self.name}')
+
+ @staticmethod
+ def __skipInheritors(elts):
+ for elt in elts:
+ try:
+ if elt.dom.firstChild.nodeValue != INHERIT:
+ yield elt
+ except (AttributeError, KeyError):
+ yield elt
def __currencyDisplayName(self, stem):
try:
return self.find(stem + 'displayName')
except Error:
pass
- for x in ('zero', 'one', 'two', 'few', 'many', 'other'):
+ for x in ('zero', 'one', 'two', 'few', 'many', 'other'):
try:
return self.find(f'{stem}displayName[count={x}]')
except Error:
diff --git a/util/locale_database/localetools.py b/util/locale_database/localetools.py
index ee6abd5593..02ec7cafc7 100644
--- a/util/locale_database/localetools.py
+++ b/util/locale_database/localetools.py
@@ -1,30 +1,5 @@
-#############################################################################
-##
-## Copyright (C) 2020 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2020 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Utilities shared among the CLDR extraction tools.
Functions:
@@ -41,6 +16,9 @@ from contextlib import ExitStack, contextmanager
from pathlib import Path
from tempfile import NamedTemporaryFile
+qtbase_root = Path(__file__).parents[2]
+assert qtbase_root.name == 'qtbase'
+
class Error (Exception):
def __init__(self, msg, *args):
super().__init__(msg, *args)
@@ -63,12 +41,47 @@ def unicode2hex(s):
lst.append(hex(v))
return lst
-def wrap_list(lst):
+def wrap_list(lst, perline=20):
def split(lst, size):
while lst:
head, lst = lst[:size], lst[size:]
yield head
- return ",\n".join(", ".join(x) for x in split(lst, 20))
+ return ",\n".join(", ".join(x) for x in split(lst, perline))
+
+def names_clash(cldr, enum):
+ """True if the reader might not recognize cldr as the name of enum
+
+ First argument, cldr, is the name CLDR gives for some language,
+ script or territory; second, enum, is the name enumdata.py gives
+ for it. If these are enough alike, returns None; otherwise, a
+ non-empty string that results from adapting cldr to be more like
+ how enumdata.py would express it."""
+ if cldr == enum:
+ return None
+
+ # Some common substitutions:
+ cldr = cldr.replace('&', 'And')
+ prefix = { 'St.': 'Saint', 'U.S.': 'United States' }
+ for k, v in prefix.items():
+ if cldr.startswith(k + ' '):
+ cldr = v + cldr[len(k):]
+
+ # Chop out any parenthesised part, e.g. (Burma):
+ while '(' in cldr:
+ try:
+ f, t = cldr.index('('), cldr.rindex(')')
+ except ValueError:
+ break
+ cldr = cldr[:f].rstrip() + ' ' + cldr[t + 1:].lstrip()
+
+ # Various accented letters:
+ remap = { 'ã': 'a', 'å': 'a', 'ā': 'a', 'ç': 'c', 'é': 'e', 'í': 'i', 'ô': 'o', 'ü': 'u'}
+ skip = '\u02bc' # Punctuation for which .isalpha() is true.
+ # Let cldr match (ignoring non-letters and case) any substring as enum:
+ if ''.join(enum.lower().split()) in ''.join(
+ remap.get(ch, ch) for ch in cldr.lower() if ch.isalpha() and ch not in skip):
+ return None
+ return cldr
@contextmanager
diff --git a/util/locale_database/qlocalexml.py b/util/locale_database/qlocalexml.py
index a64f4823c1..a104402e23 100644
--- a/util/locale_database/qlocalexml.py
+++ b/util/locale_database/qlocalexml.py
@@ -1,31 +1,5 @@
-# coding=utf8
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Shared serialization-scanning code for QLocaleXML format.
Provides classes:
@@ -126,21 +100,25 @@ def convertFormat(format):
class QLocaleXmlReader (object):
def __init__(self, filename):
self.root = self.__parse(filename)
- # Lists of (id, name, code) triples:
- languages = tuple(self.__loadMap('language'))
- scripts = tuple(self.__loadMap('script'))
- territories = tuple(self.__loadMap('territory'))
+
+ from enumdata import language_map, script_map, territory_map
+ # Lists of (id, enum name, code, en.xml name) tuples:
+ languages = tuple(self.__loadMap('language', language_map))
+ scripts = tuple(self.__loadMap('script', script_map))
+ territories = tuple(self.__loadMap('territory', territory_map))
self.__likely = tuple(self.__likelySubtagsMap())
- # Mappings {ID: (name, code)}
- self.languages = dict((v[0], v[1:]) for v in languages)
- self.scripts = dict((v[0], v[1:]) for v in scripts)
- self.territories = dict((v[0], v[1:]) for v in territories)
- # Private mappings {name: (ID, code)}
- self.__langByName = dict((v[1], (v[0], v[2])) for v in languages)
- self.__textByName = dict((v[1], (v[0], v[2])) for v in scripts)
- self.__landByName = dict((v[1], (v[0], v[2])) for v in territories)
+
+ # Mappings {ID: (enum name, code, en.xml name)}
+ self.languages = {v[0]: v[1:] for v in languages}
+ self.scripts = {v[0]: v[1:] for v in scripts}
+ self.territories = {v[0]: v[1:] for v in territories}
+
+ # Private mappings {enum name: (ID, code)}
+ self.__langByName = {v[1]: (v[0], v[2]) for v in languages}
+ self.__textByName = {v[1]: (v[0], v[2]) for v in scripts}
+ self.__landByName = {v[1]: (v[0], v[2]) for v in territories}
# Other properties:
- self.dupes = set(v[1] for v in languages) & set(v[1] for v in territories)
+ self.__dupes = set(v[1] for v in languages) & set(v[1] for v in territories)
self.cldrVersion = self.__firstChildText(self.root, "version")
def loadLocaleMap(self, calendars, grumble = lambda text: None):
@@ -210,11 +188,38 @@ class QLocaleXmlReader (object):
self.__textByName[give[1]][0]),
self.__landByName[give[2]][0])
+ def enumify(self, name, suffix):
+ """Stick together the parts of an enumdata.py name.
+
+ Names given in enumdata.py include spaces and hyphens that we
+ can't include in an identifier, such as the name of a member
+ of an enum type. Removing those would lose the word
+ boundaries, so make sure each word starts with a capital (but
+ don't simply capitalize() as some names contain words,
+ e.g. McDonald, that have later capitals in them).
+
+ We also need to resolve duplication between languages and
+ territories (by adding a suffix to each) and add Script to the
+ ends of script-names that don't already end in it."""
+ name = name.replace('-', ' ')
+ # Don't .capitalize() as McDonald is already camel-case (see enumdata.py):
+ name = ''.join(word[0].upper() + word[1:] for word in name.split())
+ if suffix != 'Script':
+ assert not(name in self.__dupes and name.endswith(suffix))
+ return name + suffix if name in self.__dupes else name
+
+ if not name.endswith(suffix):
+ name += suffix
+ if name in self.__dupes:
+ raise Error(f'The script name "{name}" is messy')
+ return name
+
# Implementation details:
- def __loadMap(self, category):
+ def __loadMap(self, category, enum):
kid = self.__firstChildText
for element in self.__eachEltInGroup(self.root, f'{category}List', category):
- yield int(kid(element, 'id')), kid(element, 'name'), kid(element, 'code')
+ key = int(kid(element, 'id'))
+ yield key, enum[key][0], kid(element, 'code'), kid(element, 'name')
def __likelySubtagsMap(self):
def triplet(element, keys=('language', 'script', 'territory'), kid = self.__firstChildText):
@@ -341,18 +346,28 @@ class QLocaleXmlWriter (object):
self.__write('<localeDatabase>')
# Output of various sections, in their usual order:
- def enumData(self):
+ def enumData(self, code2name):
+ """Output name/id/code tables for language, script and territory.
+
+ Parameter, code2name, is a function taking 'language',
+ 'script' or 'territory' and returning a lookup function that
+ maps codes, of the relevant type, to their English names. This
+ lookup function is passed a code and the name, both taken from
+ enumdata.py, that QLocale uses, so the .get() of a dict will
+ work. The English name from this lookup will be used by
+ QLocale::*ToString() for the enum member whose name is based
+ on the enumdata.py name passed as fallback to the lookup."""
from enumdata import language_map, script_map, territory_map
- self.__enumTable('language', language_map)
- self.__enumTable('script', script_map)
- self.__enumTable('territory', territory_map)
+ self.__enumTable('language', language_map, code2name)
+ self.__enumTable('script', script_map, code2name)
+ self.__enumTable('territory', territory_map, code2name)
# Prepare to detect any unused codes (see __writeLocale(), close()):
self.__languages = set(p[1] for p in language_map.values()
if not p[1].isspace())
self.__scripts = set(p[1] for p in script_map.values()
- if p[1] != 'ZZ')
+ if p[1] != 'Zzzz')
self.__territories = set(p[1] for p in territory_map.values()
- if p[1] != 'Zzzz')
+ if p[1] != 'ZZ')
def likelySubTags(self, entries):
self.__openTag('likelySubtags')
@@ -381,12 +396,12 @@ class QLocaleXmlWriter (object):
self.__write(f'<{tag}>{text}</{tag}>')
def close(self, grumble):
- """Finish writing and grumble any issues discovered."""
+ """Finish writing and grumble about any issues discovered."""
if self.__rawOutput != self.__complain:
self.__write('</localeDatabase>')
self.__rawOutput = self.__complain
- if self.__languages or self.__scripts or self.territories:
+ if self.__languages or self.__scripts or self.__territories:
grumble('Some enum members are unused, corresponding to these tags:\n')
import textwrap
def kvetch(kind, seq, g = grumble, w = textwrap.wrap):
@@ -407,13 +422,18 @@ class QLocaleXmlWriter (object):
def __complain(text):
raise Error('Attempted to write data after closing :-(')
- def __enumTable(self, tag, table):
+ @staticmethod
+ def __xmlSafe(text):
+ return text.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;')
+
+ def __enumTable(self, tag, table, code2name):
self.__openTag(f'{tag}List')
- for key, value in table.items():
+ enname, safe = code2name(tag), self.__xmlSafe
+ for key, (name, code) in table.items():
self.__openTag(tag)
- self.inTag('name', value[0])
+ self.inTag('name', safe(enname(code, name)))
self.inTag('id', key)
- self.inTag('code', value[1])
+ self.inTag('code', code)
self.__closeTag(tag)
self.__closeTag(f'{tag}List')
@@ -507,7 +527,7 @@ class Locale (object):
data['listDelim' if k == 'list' else k] = lookup(k)
for k in cls.propsMonthDay('months'):
- data[k] = dict((cal, lookup('_'.join((k, cal)))) for cal in calendars)
+ data[k] = {cal: lookup('_'.join((k, cal))) for cal in calendars}
grouping = lookup('groupSizes').split(';')
data.update(groupLeast = int(grouping[0]),
@@ -599,7 +619,7 @@ class Locale (object):
(fullName, fullName),
(fullName, fullName),
(number, number)),
- },
+ },
sizes=('long', 'short', 'narrow')):
for cal in calendars:
try:
diff --git a/util/locale_database/qlocalexml.rnc b/util/locale_database/qlocalexml.rnc
index 5ed0a9a1cd..818aa8f9c3 100644
--- a/util/locale_database/qlocalexml.rnc
+++ b/util/locale_database/qlocalexml.rnc
@@ -1,29 +1,5 @@
-#
# Copyright (C) 2021 The Qt Company Ltd.
-# Contact: https://www.qt.io/licensing/
-#
-# This file is part of the test suite of the Qt Toolkit.
-#
-# $QT_BEGIN_LICENSE:GPL-EXCEPT$
-# Commercial License Usage
-# Licensees holding valid commercial Qt licenses may use this file in
-# accordance with the commercial license agreement provided with the
-# Software or, alternatively, in accordance with the terms contained in
-# a written agreement between you and The Qt Company. For licensing terms
-# and conditions see https://www.qt.io/terms-conditions. For further
-# information use the contact form at https://www.qt.io/contact-us.
-#
-# GNU General Public License Usage
-# Alternatively, this file may be used under the terms of the GNU
-# General Public License version 3 as published by the Free Software
-# Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-# included in the packaging of this file. Please review the following
-# information to ensure the GNU General Public License requirements will
-# be met: https://www.gnu.org/licenses/gpl-3.0.html.
-#
-# $QT_END_LICENSE$
-#
-
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
# This is RelaxNG compact schema for qLocaleXML interemediate locale data
# representation format produced and consumed by the qlocalexml module.
#
diff --git a/util/locale_database/qlocalexml2cpp.py b/util/locale_database/qlocalexml2cpp.py
index 7ac7945cf8..a884459ae3 100755
--- a/util/locale_database/qlocalexml2cpp.py
+++ b/util/locale_database/qlocalexml2cpp.py
@@ -1,44 +1,27 @@
#!/usr/bin/env python3
-#############################################################################
-##
-## Copyright (C) 2021 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the test suite of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
"""Script to generate C++ code from CLDR data in QLocaleXML form
See ``cldr2qlocalexml.py`` for how to generate the QLocaleXML data itself.
-Pass the output file from that as first parameter to this script; pass
-the root of the qtbase check-out as second parameter.
+Pass the output file from that as first parameter to this script; pass the ISO
+639-3 data file as second parameter. You can optionally pass the root of the
+qtbase check-out as third parameter; it defaults to the root of the qtbase
+check-out containing this script.
+
+The ISO 639-3 data file can be downloaded from the SIL website:
+
+ https://iso639-3.sil.org/sites/iso639-3/files/downloads/iso-639-3.tab
"""
import datetime
import argparse
from pathlib import Path
+from typing import Optional
from qlocalexml import QLocaleXmlReader
-from localetools import unicode2hex, wrap_list, Error, Transcriber, SourceFileEditor
+from localetools import *
+from iso639_3 import LanguageCodeData
class LocaleKeySorter:
"""Sort-ordering representation of a locale key.
@@ -123,8 +106,8 @@ class StringData:
if len(self.data) > 0xffff:
raise ValueError(f'Data is too big ({len(self.data)}) for quint16 index to its end!',
self.name)
- fd.write(f"\nstatic const char16_t {self.name}[] = {{\n")
- fd.write(wrap_list(self.data))
+ fd.write(f"\nstatic constexpr char16_t {self.name}[] = {{\n")
+ fd.write(wrap_list(self.data, 12)) # 12 == 100 // len('0xhhhh, ')
fd.write("\n};\n")
def currencyIsoCodeData(s):
@@ -168,7 +151,7 @@ class LocaleDataWriter (LocaleSourceEditor):
likely = sorted(likely, key=keyLikely)
i = 0
- self.writer.write('static const QLocaleId likely_subtags[] = {\n')
+ self.writer.write('static constexpr QLocaleId likely_subtags[] = {\n')
for had, have, got, give in likely:
i += 1
self.writer.write(' {{ {:3d}, {:3d}, {:3d} }}'.format(*have))
@@ -178,7 +161,7 @@ class LocaleDataWriter (LocaleSourceEditor):
self.writer.write('};\n\n')
def localeIndex(self, indices):
- self.writer.write('static const quint16 locale_index[] = {\n')
+ self.writer.write('static constexpr quint16 locale_index[] = {\n')
for index, name in indices:
self.writer.write(f'{index:6d}, // {name}\n')
self.writer.write(' 0 // trailing 0\n')
@@ -199,7 +182,7 @@ class LocaleDataWriter (LocaleSourceEditor):
endonyms_data = StringData('endonyms_data')
# Locale data
- self.writer.write('static const QLocaleData locale_data[] = {\n')
+ self.writer.write('static constexpr QLocaleData locale_data[] = {\n')
# Table headings: keep each label centred in its field, matching line_format:
self.writer.write(' // '
# Width 6 + comma
@@ -300,7 +283,7 @@ class LocaleDataWriter (LocaleSourceEditor):
locale.minus, locale.plus, locale.exp,
locale.quotationStart, locale.quotationEnd,
locale.alternateQuotationStart, locale.alternateQuotationEnd)) +
- tuple (date_format_data.append(f) for f in # 2 entries:
+ tuple(date_format_data.append(f) for f in # 2 entries:
(locale.longDateFormat, locale.shortDateFormat)) +
tuple(time_format_data.append(f) for f in # 2 entries:
(locale.longTimeFormat, locale.shortTimeFormat)) +
@@ -349,28 +332,31 @@ class LocaleDataWriter (LocaleSourceEditor):
@staticmethod
def __writeNameData(out, book, form):
- out(f'static const char {form}_name_list[] =\n')
+ out(f'static constexpr char {form}_name_list[] =\n')
out('"Default\\0"\n')
for key, value in book.items():
if key == 0:
continue
- out(f'"{value[0]}\\0"\n')
+ enum, name = value[0], value[-1]
+ if names_clash(name, enum):
+ out(f'"{name}\\0" // {enum}\n')
+ else:
+ out(f'"{name}\\0"\n') # Automagically utf-8 encoded
out(';\n\n')
- out(f'static const quint16 {form}_name_index[] = {{\n')
+ out(f'static constexpr quint16 {form}_name_index[] = {{\n')
out(f' 0, // Any{form.capitalize()}\n')
index = 8
for key, value in book.items():
if key == 0:
continue
- name = value[0]
- out(f'{index:6d}, // {name}\n')
- index += len(name) + 1
+ out(f'{index:6d}, // {value[0]}\n')
+ index += len(value[-1].encode('utf-8')) + 1
out('};\n\n')
@staticmethod
def __writeCodeList(out, book, form, width):
- out(f'static const unsigned char {form}_code_list[] =\n')
+ out(f'static constexpr unsigned char {form}_code_list[] =\n')
for key, value in book.items():
code = value[1]
code += r'\0' * max(width - len(code), 0)
@@ -389,8 +375,32 @@ class LocaleDataWriter (LocaleSourceEditor):
# TODO: unify these next three into the previous three; kept
# separate for now to verify we're not changing data.
- def languageCodes(self, languages):
- self.__writeCodeList(self.writer.write, languages, 'language', 3)
+ def languageCodes(self, languages, code_data: LanguageCodeData):
+ out = self.writer.write
+
+ out(f'constexpr std::array<LanguageCodeEntry, {len(languages)}> languageCodeList {{\n')
+
+ def q(val: Optional[str], size: int) -> str:
+ """Quote the value and adjust the result for tabular view."""
+ s = '' if val is None else ', '.join(f"'{c}'" for c in val)
+ return f'{{{s}}}' if size == 0 else f'{{{s}}},'.ljust(size * 5 + 2)
+
+ for key, value in languages.items():
+ code = value[1]
+ if key < 2:
+ result = code_data.query('und')
+ else:
+ result = code_data.query(code)
+ assert code == result.id()
+ assert result is not None
+
+ codeString = q(result.part1Code, 2)
+ codeString += q(result.part2BCode, 3)
+ codeString += q(result.part2TCode, 3)
+ codeString += q(result.part3Code, 0)
+ out(f' LanguageCodeEntry {{{codeString}}}, // {value[0]}\n')
+
+ out('};\n\n')
def scriptCodes(self, scripts):
self.__writeCodeList(self.writer.write, scripts, 'script', 4)
@@ -406,7 +416,7 @@ class CalendarDataWriter (LocaleSourceEditor):
def write(self, calendar, locales, names):
months_data = StringData('months_data')
- self.writer.write('static const QCalendarLocale locale_data[] = {\n')
+ self.writer.write('static constexpr QCalendarLocale locale_data[] = {\n')
self.writer.write(
' //'
# IDs, width 7 (6 + comma)
@@ -449,9 +459,9 @@ class CalendarDataWriter (LocaleSourceEditor):
months_data.write(self.writer)
class LocaleHeaderWriter (SourceFileEditor):
- def __init__(self, path, temp, dupes):
+ def __init__(self, path, temp, enumify):
super().__init__(path, temp)
- self.__dupes = dupes
+ self.__enumify = enumify
def languages(self, languages):
self.__enum('Language', languages, self.__language)
@@ -476,20 +486,10 @@ class LocaleHeaderWriter (SourceFileEditor):
if suffix is None:
suffix = name
- out, dupes = self.writer.write, self.__dupes
+ out, enumify = self.writer.write, self.__enumify
out(f' enum {name} : ushort {{\n')
for key, value in book.items():
- member = value[0].replace('-', ' ')
- if name == 'Script':
- # Don't .capitalize() as some names are already camel-case (see enumdata.py):
- member = ''.join(word[0].upper() + word[1:] for word in member.split())
- if not member.endswith('Script'):
- member += 'Script'
- if member in dupes:
- raise Error(f'The script name "{member}" is messy')
- else:
- member = ''.join(member.split())
- member = member + suffix if member in dupes else member
+ member = enumify(value[0], suffix)
out(f' {member} = {key},\n')
out('\n '
@@ -505,8 +505,8 @@ class LocaleHeaderWriter (SourceFileEditor):
def main(out, err):
- # map { CLDR name: Qt file name }
calendars_map = {
+ # CLDR name: Qt file name fragment
'gregorian': 'roman',
'persian': 'jalali',
'islamic': 'hijri',
@@ -519,7 +519,10 @@ def main(out, err):
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument('input_file', help='input XML file name',
metavar='input-file.xml')
- parser.add_argument('qtbase_path', help='path to the root of the qtbase source tree')
+ parser.add_argument('iso_path', help='path to the ISO 639-3 data file',
+ metavar='iso-639-3.tab')
+ parser.add_argument('qtbase_path', help='path to the root of the qtbase source tree',
+ nargs='?', default=qtbase_root)
parser.add_argument('--calendars', help='select calendars to emit data for',
nargs='+', metavar='CALENDAR',
choices=all_calendars, default=all_calendars)
@@ -538,6 +541,8 @@ def main(out, err):
locale_map = dict(reader.loadLocaleMap(calendars, err.write))
locale_keys = sorted(locale_map.keys(), key=LocaleKeySorter(reader.defaultMap()))
+ code_data = LanguageCodeData(args.iso_path)
+
try:
with LocaleDataWriter(qtsrcdir.joinpath('src/corelib/text/qlocale_data_p.h'),
qtsrcdir, reader.cldrVersion) as writer:
@@ -549,7 +554,7 @@ def main(out, err):
writer.scriptNames(reader.scripts)
writer.territoryNames(reader.territories)
# TODO: merge the next three into the previous three
- writer.languageCodes(reader.languages)
+ writer.languageCodes(reader.languages, code_data)
writer.scriptCodes(reader.scripts)
writer.territoryCodes(reader.territories)
except Exception as e:
@@ -569,7 +574,7 @@ def main(out, err):
# qlocale.h
try:
with LocaleHeaderWriter(qtsrcdir.joinpath('src/corelib/text/qlocale.h'),
- qtsrcdir, reader.dupes) as writer:
+ qtsrcdir, reader.enumify) as writer:
writer.languages(reader.languages)
writer.scripts(reader.scripts)
writer.territories(reader.territories)
diff --git a/util/locale_database/testlocales/localemodel.cpp b/util/locale_database/testlocales/localemodel.cpp
index d171bc9855..9642bb36fa 100644
--- a/util/locale_database/testlocales/localemodel.cpp
+++ b/util/locale_database/testlocales/localemodel.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "localemodel.h"
#include <QLocale>
diff --git a/util/locale_database/testlocales/localemodel.h b/util/locale_database/testlocales/localemodel.h
index f35b984b4c..666ea8493d 100644
--- a/util/locale_database/testlocales/localemodel.h
+++ b/util/locale_database/testlocales/localemodel.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LOCALEMODEL_H
#define LOCALEMODEL_H
diff --git a/util/locale_database/testlocales/localewidget.cpp b/util/locale_database/testlocales/localewidget.cpp
index 3ff7f73a98..c35c3dc1d8 100644
--- a/util/locale_database/testlocales/localewidget.cpp
+++ b/util/locale_database/testlocales/localewidget.cpp
@@ -1,33 +1,8 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QTableView>
#include <QVBoxLayout>
-#include <QItemDelegate>
+#include <QStyledItemDelegate>
#include <QItemEditorFactory>
#include <QDoubleSpinBox>
@@ -63,7 +38,7 @@ LocaleWidget::LocaleWidget(QWidget *parent)
m_model = new LocaleModel(this);
m_view = new QTableView(this);
- QItemDelegate *delegate = qobject_cast<QItemDelegate*>(m_view->itemDelegate());
+ QStyledItemDelegate *delegate = qobject_cast<QStyledItemDelegate*>(m_view->itemDelegate());
Q_ASSERT(delegate != 0);
static EditorFactory editor_factory;
delegate->setItemEditorFactory(&editor_factory);
diff --git a/util/locale_database/testlocales/localewidget.h b/util/locale_database/testlocales/localewidget.h
index c562da119b..36613135ea 100644
--- a/util/locale_database/testlocales/localewidget.h
+++ b/util/locale_database/testlocales/localewidget.h
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#ifndef LOCALEWIDGET_H
#define LOCALEWIDGET_H
diff --git a/util/locale_database/testlocales/main.cpp b/util/locale_database/testlocales/main.cpp
index 0c3c45f989..d94726a2a9 100644
--- a/util/locale_database/testlocales/main.cpp
+++ b/util/locale_database/testlocales/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QApplication>
#include "localewidget.h"
diff --git a/util/plugintest/main.cpp b/util/plugintest/main.cpp
index 512ce80110..37c90e4a75 100644
--- a/util/plugintest/main.cpp
+++ b/util/plugintest/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore/QtCore>
#include <stdio.h>
diff --git a/util/publicSuffix/main.cpp b/util/publicSuffix/main.cpp
deleted file mode 100644
index 412f42684d..0000000000
--- a/util/publicSuffix/main.cpp
+++ /dev/null
@@ -1,210 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <QtCore>
-
-const QString quadQuote = QStringLiteral("\"\""); // Closes one string, opens a new one.
-
-static QString utf8encode(const QByteArray &array) // turns e.g. tranøy.no to tran\xc3\xb8y.no
-{
- QString result;
- result.reserve(array.length() + array.length() / 3);
- bool wasHex = false;
- for (int i = 0; i < array.length(); ++i) {
- char c = array.at(i);
- // if char is non-ascii, escape it
- if (c < 0x20 || uchar(c) >= 0x7f) {
- result += "\\x" + QString::number(uchar(c), 16);
- wasHex = true;
- } else {
- // if previous char was escaped, we need to make sure the next char is not
- // interpreted as part of the hex value, e.g. "äc.com" -> "\xabc.com"; this
- // should be "\xab""c.com"
- bool isHexChar = ((c >= '0' && c <= '9') ||
- (c >= 'a' && c <= 'f') ||
- (c >= 'A' && c <= 'F'));
- if (wasHex && isHexChar)
- result += quadQuote;
- result += c;
- wasHex = false;
- }
- }
- return result;
-}
-
-/*
- Digest public suffix data into efficiently-searchable form.
-
- Takes the public suffix list (see usage message), a list of DNS domains
- whose child domains should not be presumed to trust one another, and
- converts it to a form that lets qtbase/src/network/kernel/qtldurl.cpp's query
- functions find entries efficiently.
-
- Each line of the suffix file (aside from comments and blanks) gives a suffix
- (starting with a dot) with an optional prefix of '*' (to include every
- immediate child) or of '!' (to exclude the suffix, e.g. from a '*' line for
- a tail of it). A line with neither of these prefixes is an exact match.
-
- Each line is hashed and the hash is reduced modulo the number of lines
- (tldCount); lines are grouped by reduced hash and separated by '\0' bytes
- within each group. Conceptually, the groups are then emitted to a single
- huge string, along with a table (tldIndices[tldCount]) of indices into that
- string of the starts of the the various groups.
-
- However, that huge string would exceed the 64k limit at least one compiler
- imposes on a single string literal, so we actually split up the huge string
- into an array of chunks, each less than 64k in size. Each group is written
- to a single chunk (so we start a new chunk if the next group would take the
- present chunk over the limit). There are tldChunkCount chunks; their lengths
- are saved in tldChunks[tldChunkCount]; the chunks themselves in
- tldData[tldChunkCount]. See qtldurl.cpp's containsTLDEntry() for how to
- search for a string in the resulting data.
-*/
-
-int main(int argc, char **argv)
-{
- QCoreApplication app(argc, argv);
- if (argc < 3) {
- printf("\nUsage: ./%s inputFile outputFile\n\n", argv[0]);
- printf("'inputFile' should be a list of effective TLDs, one per line,\n");
- printf("as obtained from http://publicsuffix.org/. To create indices and data\n");
- printf("file, do the following:\n\n");
- printf(" wget https://publicsuffix.org/list/public_suffix_list.dat -O suffixes.dat\n");
- printf(" ./%s suffixes.dat public_suffix_list.cpp\n\n", argv[0]);
- printf("Then replace the code in qtbase/src/network/kernel/qurltlds_p.h\n"
- "with public_suffix_list.cpp's contents\n\n");
- return 1;
- }
- QFile file(argv[1]);
- if (!file.open(QIODevice::ReadOnly)) {
- fprintf(stderr, "Failed to open input file (%s); see %s -usage", argv[1], argv[0]);
- return 1;
- }
-
- QFile outFile(argv[2]);
- if (!outFile.open(QIODevice::WriteOnly)) {
- file.close();
- fprintf(stderr, "Failed to open output file (%s); see %s -usage", argv[2], argv[0]);
- return 1;
- }
-
- // Write tldData[] and tldIndices[] in one scan of the (input) file, but
- // buffer tldData[] so we don'te interleave them in the outFile.
- QByteArray outDataBufferBA;
- QBuffer outDataBuffer(&outDataBufferBA);
- outDataBuffer.open(QIODevice::WriteOnly);
-
- int lineCount = 0;
- while (!file.atEnd()) {
- QString st = QString::fromUtf8(file.readLine()).trimmed();
- if (st.isEmpty() || st.startsWith(u"//"))
- continue;
- lineCount++;
- }
- outFile.write("static const quint16 tldCount = ");
- outFile.write(QByteArray::number(lineCount));
- outFile.write(";\n");
-
- file.reset();
- QStringList strings(lineCount);
- while (!file.atEnd()) {
- QString st = QString::fromUtf8(file.readLine()).trimmed();
- if (st.isEmpty() || st.startsWith(u"//"))
- continue;
- int num = qt_hash(st) % lineCount;
- QString &entry = strings[num];
- st = utf8encode(st.toUtf8());
-
- // For domain 1.com, we could get something like a.com\01.com, which
- // would be misinterpreted as octal 01, so we need to separate such
- // strings with quotes:
- if (!entry.isEmpty() && st.at(0).isDigit())
- entry.append(quadQuote);
-
- entry.append(st);
- entry.append("\\0");
- }
-
- outFile.write("// After the tldCount \"real\" entries in tldIndices, include a final entry\n");
- outFile.write("// that records the sum of the lengths of all the chunks, i.e. the index\n");
- outFile.write("// just past the end of tldChunks.\n");
- outFile.write("static constexpr quint32 tldIndices[tldCount + 1] = {\n");
- outDataBuffer.write("static const char * const tldData[tldChunkCount] = {");
-
- int totalUtf8Size = 0;
- int chunkSize = 0; // strlen of the current chunk (sizeof is bigger by 1)
- QStringList chunks;
- for (int a = 0; a < lineCount; a++) {
- outFile.write(QByteArray::number(totalUtf8Size));
- outFile.write(",\n");
- const QString &entry = strings.at(a);
- if (!entry.isEmpty()) {
- const int zeroCount = entry.count(QLatin1String("\\0"));
- const int utf8CharsCount = entry.count(QLatin1String("\\x"));
- const int quoteCount = entry.count('"');
- const int stringUtf8Size = entry.count() - (zeroCount + quoteCount + utf8CharsCount * 3);
- chunkSize += stringUtf8Size;
- // MSVC 2015 chokes if sizeof(a single string) > 0xffff
- if (chunkSize >= 0xffff) {
- static int chunkCount = 0;
- qWarning() << "chunk" << ++chunkCount << "has length" << chunkSize - stringUtf8Size;
- outDataBuffer.write(",\n");
- chunks.append(QString::number(totalUtf8Size));
- chunkSize = 0;
- }
- totalUtf8Size += stringUtf8Size;
-
- outDataBuffer.write("\n\"");
- outDataBuffer.write(entry.toUtf8());
- outDataBuffer.write("\"");
- }
- }
- chunks.append(QString::number(totalUtf8Size));
-
- // Write one extra entry, at tldIndices[tldCount], that contains the total size.
- outFile.write(QByteArray::number(totalUtf8Size));
- outFile.write("\n};\n");
-
- outDataBuffer.write("\n};\n");
- outDataBuffer.close();
-
- // First we have to define tldChunkCount.
- outFile.write("\nstatic const quint16 tldChunkCount = ");
- outFile.write(QByteArray::number(chunks.count()));
- outFile.write(";\n");
-
- // Write tldData[tldChunkCount] = {...}.
- outFile.write(outDataBufferBA);
-
- outFile.write("static constexpr quint32 tldChunks[tldChunkCount] = {");
- outFile.write(chunks.join(", ").toLatin1());
- outFile.write("};\n");
- outFile.close();
- printf("Data generated to %s - now revise qtbase/src/network/kernel/qurltlds_p.h to use this data.\n", argv[2]);
- return 0;
-}
diff --git a/util/publicSuffix/publicSuffix.pro b/util/publicSuffix/publicSuffix.pro
deleted file mode 100644
index 49fc1eabab..0000000000
--- a/util/publicSuffix/publicSuffix.pro
+++ /dev/null
@@ -1,4 +0,0 @@
-QT = core
-CONFIG += cmdline
-
-SOURCES += main.cpp
diff --git a/util/qfloat16-tables/gen_qfloat16_tables.cpp b/util/qfloat16-tables/gen_qfloat16_tables.cpp
index af172c5513..acfb5d59cd 100644
--- a/util/qfloat16-tables/gen_qfloat16_tables.cpp
+++ b/util/qfloat16-tables/gen_qfloat16_tables.cpp
@@ -1,43 +1,7 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 by Southwest Research Institute (R)
-** Copyright (C) 2019 Intel Corporation.
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 by Southwest Research Institute (R)
+// Copyright (C) 2019 Intel Corporation.
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <stdint.h>
#include <stdio.h>
diff --git a/util/testrunner/README b/util/testrunner/README
new file mode 100644
index 0000000000..5758e32514
--- /dev/null
+++ b/util/testrunner/README
@@ -0,0 +1,24 @@
+qt-testrunner.py is a script that can wrap the execution of every test in Qt
+in order to iron out common issues with testing. It can be turned on by
+setting the environment variable TESTRUNNER=/path/to/qt-testrunner.py before
+invoking ctest.
+
+It is commonly in use in Coin, the Continuous Integration system of Qt.
+
+It offers the following functionality
++ Reads the XML test log and understands exactly which function of the test failed.
++ Checks the exit code and if needed repeats only the failed function of the test.
++ Appends output argument to it: "-o file.xml"
++ In case the test is executed multiple times
+ - the previous output files are saved
+ - the verbosity level is increased
+
+The script itself has a testsuite that is simply run by invoking
+
+qtbase/util/testrunner/tests/tst_testrunner.py
+
+Please *run this manually* before submitting a change to qt-testrunner and
+make sure it's passing. The reason it does not run automatically during the
+usual qtbase test run, is because
++ the test run should not depend on Python
++ we don't want to wrap the testrunner tests with testrunner.
diff --git a/util/testrunner/qt-testrunner.py b/util/testrunner/qt-testrunner.py
new file mode 100755
index 0000000000..2305e4b4fb
--- /dev/null
+++ b/util/testrunner/qt-testrunner.py
@@ -0,0 +1,395 @@
+#!/usr/bin/env python3
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+
+# !!!IMPORTANT!!! If you change anything to this script, run the testsuite
+# manually and make sure it still passes, as it doesn't run automatically.
+# Just execute the command line as such:
+#
+# ./util/testrunner/tests/tst_testrunner.py -v [--debug]
+#
+# ======== qt-testrunner ========
+#
+# This script wraps the execution of a Qt test executable, for example
+# tst_whatever, and tries to iron out unpredictable test failures.
+# In particular:
+#
+# + Appends output argument to it: "-o tst_whatever.xml,xml"
+# + Checks the exit code. If it is zero, the script exits with zero,
+# otherwise proceeds.
+# + Reads the XML test log and Understands exactly which function
+# of the test failed.
+# + If no XML file is found or was invalid, the test executable
+# probably CRASHed, so we *re-run the full test once again*.
+# + If some testcases failed it executes only those individually
+# until they pass, or until max-repeats times is reached.
+#
+# The regular way to use is to set the environment variable TESTRUNNER to
+# point to this script before invoking ctest.
+#
+# NOTE: this script is crafted specifically for use with Qt tests and for
+# using it in Qt's CI. For example it detects and acts specially if test
+# executable is "tst_selftests" or "androidtestrunner". It also detects
+# env var "COIN_CTEST_RESULTSDIR" and uses it as log-dir.
+#
+# TODO implement --dry-run.
+
+# Exit codes of this script:
+# 0: PASS. Either no test failed, or failed initially but passed
+# in the re-runs (FLAKY PASS).
+# 1: Some unexpected error of this script.
+# 2: FAIL! for at least one test, even after the individual re-runs.
+# 3: CRASH! for the test executable even after re-running it once.
+# Or when we can't re-run individual functions for any reason.
+
+
+import sys
+if sys.version_info < (3, 6):
+ sys.stderr.write(
+ "Error: this test wrapper script requires Python version 3.6 at least\n")
+ sys.exit(1)
+
+import argparse
+import subprocess
+import os
+import traceback
+import time
+import timeit
+import xml.etree.ElementTree as ET
+import logging as L
+
+from pprint import pprint
+from typing import NamedTuple, Tuple, List, Optional
+
+# Define a custom type for returning a fail incident
+class WhatFailed(NamedTuple):
+ func: str
+ tag: Optional[str] = None
+
+
+# In the last test re-run, we add special verbosity arguments, in an attempt
+# to log more information about the failure
+VERBOSE_ARGS = ["-v2", "-maxwarnings", "0"]
+VERBOSE_ENV = {
+ "QT_LOGGING_RULES": "*=true",
+ "QT_MESSAGE_PATTERN": "[%{time process} %{if-debug}D%{endif}%{if-warning}W%{endif}%{if-critical}C%{endif}%{if-fatal}F%{endif}] %{category} %{file}:%{line} %{function}() - %{message}",
+}
+# The following special function names can not re-run individually.
+NO_RERUN_FUNCTIONS = {
+ "initTestCase", "init", "cleanup", "cleanupTestCase"
+}
+# The following tests do not write XML log files properly. qt-testrunner will
+# not try to append "-o" to their command-line or re-run failed testcases.
+# Only add tests here if absolutely necessary!
+NON_XML_GENERATING_TESTS = {
+ "tst_selftests", # qtestlib's selftests are using an external test framework (Catch) that does not support -o argument
+ "tst_QDoc", # Some of QDoc's tests are using an external test framework (Catch) that does not support -o argument
+ "tst_QDoc_Catch_Generators", # Some of QDoc's tests are using an external test framework (Catch) that does not support -o argument
+}
+
+
+def parse_args():
+ parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,
+ description="""
+Wrap Qt test execution. This is intended to be invoked via the TESTRUNNER
+environment variable before running ctest in the CI environment. The purpose
+of the script is to repeat failed tests in order to iron out transient errors
+caused by unpredictable factors. Individual test functions that failed are
+retried up to max-repeats times until the test passes.
+ """,
+ epilog="""
+Default flags: --max-repeats 5 --passes-needed 1
+ """
+ )
+ parser.add_argument("testargs", metavar="TESTARGS", nargs="+",
+ help="Test executable and arguments")
+ parser.add_argument("--log-dir", metavar="DIR",
+ help="Where to write the XML log files with the test results of the primary test run;"
+ " by default write to CWD")
+ parser.add_argument("--max-repeats", type=int, default=5, metavar='N',
+ help="In case the test FAILs, repeat the failed cases this many times")
+ parser.add_argument("--passes-needed", type=int, default=1, metavar='M',
+ help="Number of repeats that need to succeed in order to return an overall PASS")
+ parser.add_argument("--parse-xml-testlog", metavar="file.xml",
+ help="Do not run the full test the first time, but parse this XML test log;"
+ " if the test log contains failures, then re-run the failed cases normally,"
+ " as indicated by the other flags")
+ parser.add_argument("--dry-run", action="store_true",
+ help="(TODO - not implemented yet) Do not run anything, just describe what would happen")
+ parser.add_argument("--timeout", metavar="T",
+ help="Timeout for each test execution in seconds")
+ parser.add_argument("--no-extra-args", action="store_true",
+ help="Do not append any extra arguments to the test command line, like"
+ " -o log_file.xml -v2 -vs. This will disable some functionality like the"
+ " failed test repetition and the verbose output on failure. This is"
+ " activated by default when TESTARGS is tst_selftests.")
+ args = parser.parse_args()
+ args.self_name = os.path.basename(sys.argv[0])
+ args.specific_extra_args = []
+
+ logging_format = args.self_name + " %(levelname)8s: %(message)s"
+ L.basicConfig(format=logging_format, level=L.DEBUG)
+
+ if args.log_dir is None:
+ if "COIN_CTEST_RESULTSDIR" in os.environ:
+ args.log_dir = os.environ["COIN_CTEST_RESULTSDIR"]
+ L.info("Will write XML test logs to directory"
+ " COIN_CTEST_RESULTSDIR=%s", args.log_dir)
+ else:
+ args.log_dir = "."
+
+ args.test_basename = os.path.basename(args.testargs[0])
+
+ if args.test_basename.endswith(".exe"):
+ args.test_basename = args.test_basename[:-4]
+
+ # QNX test wrapper just needs to be skipped to figure out test_basename
+ if args.test_basename == "coin_qnx_qemu_runner.sh":
+ args.test_basename = os.path.basename(args.testargs[1])
+ L.info("Detected coin_qnx_qemu_runner, test will be handled specially. Detected test basename: %s",
+ args.test_basename)
+
+ # On Android emulated platforms, "androidtestrunner" is invoked by CMake
+ # to wrap the tests. We have to append the test arguments to it after
+ # "--". Besides that we have to detect the basename to avoid saving the
+ # XML log as "androidtestrunner.xml" for all tests.
+ if args.test_basename == "androidtestrunner":
+ args.specific_extra_args = [ "--" ]
+ apk_arg = False
+ for a in args.testargs[1:]:
+ if a == "--apk":
+ apk_arg = True
+ elif apk_arg:
+ apk_arg = False
+ if a.endswith(".apk"):
+ args.test_basename = os.path.basename(a)[:-4]
+ break
+ L.info("Detected androidtestrunner, test will be handled specially. Detected test basename: %s",
+ args.test_basename)
+
+ if args.test_basename in NON_XML_GENERATING_TESTS:
+ L.info("Detected special test not able to generate XML log! Will not parse it and will not repeat individual testcases")
+ args.no_extra_args = True
+ args.max_repeats = 0
+
+ return args
+
+
+def parse_log(results_file) -> List[WhatFailed]:
+ """Parse the XML test log file. Return the failed testcases, if any.
+
+ Failures are considered the "fail" and "xpass" incidents.
+ A testcase is a function with an optional data tag."""
+ start_timer = timeit.default_timer()
+
+ try:
+ tree = ET.parse(results_file)
+ except FileNotFoundError:
+ L.error("XML log file not found: %s", results_file)
+ raise
+ except Exception as e:
+ L.error("Failed to parse the XML log file: %s", results_file)
+ with open(results_file, "rb") as f:
+ if os.stat(f.fileno()).st_size == 0:
+ L.error(" File is empty")
+ else:
+ L.error(" File Contents:\n%s\n\n",
+ f.read().decode("utf-8", "ignore"))
+ raise
+
+ root = tree.getroot()
+ if root.tag != "TestCase":
+ raise AssertionError(
+ f"The XML test log must have <TestCase> as root tag, but has: <{root.tag}>")
+
+ failures = []
+ n_passes = 0
+ for e1 in root:
+ if e1.tag == "TestFunction":
+ for e2 in e1: # every <TestFunction> can have many <Incident>
+ if e2.tag == "Incident":
+ if e2.attrib["type"] in ("fail", "xpass"):
+ func = e1.attrib["name"]
+ e3 = e2.find("DataTag") # every <Incident> might have a <DataTag>
+ if e3 is not None:
+ failures.append(WhatFailed(func, tag=e3.text))
+ else:
+ failures.append(WhatFailed(func))
+ else:
+ n_passes += 1
+
+ end_timer = timeit.default_timer()
+ t = end_timer - start_timer
+ L.info(f"Parsed XML file {results_file} in {t:.3f} seconds")
+ L.info(f"Found {n_passes} passes and {len(failures)} failures")
+
+ return failures
+
+
+def run_test(arg_list: List[str], **kwargs):
+ L.debug("Running test command line: %s", arg_list)
+ proc = subprocess.run(arg_list, **kwargs)
+ L.info("Test process exited with code: %d", proc.returncode)
+
+ return proc
+
+def unique_filename(test_basename: str) -> str:
+ timestamp = round(time.time() * 1000)
+ return f"{test_basename}-{timestamp}"
+
+# Returns tuple: (exit_code, xml_logfile)
+def run_full_test(test_basename, testargs: List[str], output_dir: str,
+ no_extra_args=False, dryrun=False,
+ timeout=None, specific_extra_args=[]) \
+ -> Tuple[int, Optional[str]]:
+
+ results_files = []
+ output_testargs = []
+
+ # Append arguments to write log to qtestlib XML file,
+ # and text to stdout.
+ if not no_extra_args:
+ filename_base = unique_filename(test_basename)
+ pathname_stem = os.path.join(output_dir, filename_base)
+ xml_output_file = f"{pathname_stem}.xml"
+
+ results_files.append(xml_output_file)
+ output_testargs.extend([
+ "-o", f"{xml_output_file},xml",
+ "-o", f"{pathname_stem}.junit.xml,junitxml",
+ "-o", f"{pathname_stem}.txt,txt",
+ "-o", "-,txt"
+ ])
+
+ proc = run_test(testargs + specific_extra_args + output_testargs,
+ timeout=timeout)
+
+ return (proc.returncode, results_files[0] if results_files else None)
+
+
+def rerun_failed_testcase(test_basename, testargs: List[str], output_dir: str,
+ what_failed: WhatFailed,
+ max_repeats, passes_needed,
+ dryrun=False, timeout=None) -> bool:
+ """Run a specific function:tag of a test, until it passes enough times, or
+ until max_repeats is reached.
+
+ Return True if it passes eventually, False if it fails.
+ """
+ assert passes_needed <= max_repeats
+ failed_arg = what_failed.func
+ if what_failed.tag:
+ failed_arg += ":" + what_failed.tag
+
+
+ n_passes = 0
+ for i in range(max_repeats):
+ # For the individual testcase re-runs, we log to file since Coin needs
+ # to parse it. That is the reason we use unique filename every time.
+ filename_base = unique_filename(test_basename)
+ pathname_stem = os.path.join(output_dir, filename_base)
+
+ output_args = [
+ "-o", f"{pathname_stem}.xml,xml",
+ "-o", f"{pathname_stem}.junit.xml,junitxml",
+ "-o", f"{pathname_stem}.txt,txt",
+ "-o", "-,txt"]
+ L.info("Re-running testcase: %s", failed_arg)
+ if i < max_repeats - 1:
+ proc = run_test(testargs + output_args + [failed_arg],
+ timeout=timeout)
+ else: # last re-run
+ proc = run_test(testargs + output_args + VERBOSE_ARGS + [failed_arg],
+ timeout=timeout,
+ env={**os.environ, **VERBOSE_ENV})
+ if proc.returncode == 0:
+ n_passes += 1
+ if n_passes == passes_needed:
+ L.info("Test has PASSed as FLAKY after re-runs:%d, passes:%d, failures:%d",
+ i+1, n_passes, i+1-n_passes)
+ return True
+
+ assert n_passes < passes_needed
+ assert n_passes <= max_repeats
+ n_failures = max_repeats - n_passes
+ L.info("Test has FAILed despite all repetitions! re-runs:%d failures:%d",
+ max_repeats, n_failures)
+ return False
+
+
+def main():
+ args = parse_args()
+ n_full_runs = 1 if args.parse_xml_testlog else 2
+
+ for i in range(n_full_runs + 1):
+
+ if 0 < i < n_full_runs:
+ L.info("Will re-run the full test executable")
+ elif i == n_full_runs: # Failed on the final run
+ L.error("Full test run failed repeatedly, aborting!")
+ sys.exit(3)
+
+ try:
+ failed_functions = []
+ if args.parse_xml_testlog: # do not run test, just parse file
+ failed_functions = parse_log(args.parse_xml_testlog)
+ # Pretend the test returned correct exit code
+ retcode = len(failed_functions)
+ else: # normal invocation, run test
+ (retcode, results_file) = \
+ run_full_test(args.test_basename, args.testargs, args.log_dir,
+ args.no_extra_args, args.dry_run, args.timeout,
+ args.specific_extra_args)
+ if results_file:
+ failed_functions = parse_log(results_file)
+
+ if retcode == 0:
+ if failed_functions:
+ L.warning("The test executable returned success but the logfile"
+ f" contains FAIL for function: {failed_functions[0].func}")
+ continue
+ sys.exit(0) # PASS
+
+ if len(failed_functions) == 0:
+ L.warning("No failures listed in the XML test log!"
+ " Did the test CRASH right after all its testcases PASSed?")
+ continue
+
+ cant_rerun = [ f.func for f in failed_functions if f.func in NO_RERUN_FUNCTIONS ]
+ if cant_rerun:
+ L.warning(f"Failure detected in the special test function '{cant_rerun[0]}'"
+ " which can not be re-run individually")
+ continue
+
+ assert len(failed_functions) > 0 and retcode != 0
+ break # all is fine, goto re-running individual failed testcases
+
+ except Exception as e:
+ L.error("exception:%s %s", type(e).__name__, e)
+ L.error("The test executable probably crashed, see above for details")
+
+ if args.max_repeats == 0:
+ sys.exit(2) # Some tests failed but no re-runs were asked
+
+ L.info("Some tests failed, will re-run at most %d times.\n",
+ args.max_repeats)
+
+ for what_failed in failed_functions:
+ try:
+ ret = rerun_failed_testcase(args.test_basename, args.testargs, args.log_dir,
+ what_failed, args.max_repeats, args.passes_needed,
+ dryrun=args.dry_run, timeout=args.timeout)
+ except Exception as e:
+ L.error("exception:%s %s", type(e).__name__, e)
+ L.error("The testcase re-run probably crashed, giving up")
+ sys.exit(3) # Test re-run CRASH
+
+ if not ret:
+ sys.exit(2) # Test re-run FAIL
+
+ sys.exit(0) # All testcase re-runs PASSed
+
+
+if __name__ == "__main__":
+ main()
diff --git a/util/testrunner/sanitizer-testrunner.py b/util/testrunner/sanitizer-testrunner.py
new file mode 100755
index 0000000000..f992c48910
--- /dev/null
+++ b/util/testrunner/sanitizer-testrunner.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+# Copyright (C) 2022 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import re
+import sys
+import logging as L
+from subprocess import Popen, PIPE
+
+
+# Thin testrunner that ignores failures in tests and only catches
+# crashes or ASAN errors.
+#
+# It executes its arguments as a command line, and parses the stderr for the
+# following regex:
+detect_ASAN = re.compile(r"^==[0-9]+==ERROR: AddressSanitizer")
+
+
+my_name = os.path.basename(sys.argv[0])
+logging_format = my_name + " %(levelname)8s: %(message)s"
+L.basicConfig(format=logging_format, level=L.DEBUG)
+
+L.info("This test is wrapped with sanitizer-testrunner.py. FAIL results are being ignored! Only crashes and ASAN errors are caught.")
+
+proc = None
+if sys.argv[1] == "-f": # hidden option to parse pre-existing files
+ f = open(sys.argv[2], "r", errors="ignore")
+else:
+ proc = Popen(sys.argv[1:], stderr=PIPE, universal_newlines=True, errors="ignore")
+ f = proc.stderr
+
+issues_detected = False
+for line in f:
+ if proc:
+ # We don't want the stderr of the subprocess to disappear, so print it.
+ print(line, file=sys.stderr, end="", flush=True)
+ if detect_ASAN.match(line):
+ issues_detected = True
+f.close()
+if proc:
+ proc.wait()
+ rc = proc.returncode
+ L.info("Test exit code was: %d", rc)
+ if not ( 0 <= rc <= 127 ):
+ L.error("Crash detected")
+ exit(1)
+
+if issues_detected:
+ L.error("ASAN issues detected")
+ exit(1)
diff --git a/util/testrunner/tests/qt_mock_test-log.xml b/util/testrunner/tests/qt_mock_test-log.xml
new file mode 100644
index 0000000000..62e93bb8dc
--- /dev/null
+++ b/util/testrunner/tests/qt_mock_test-log.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<TestCase name="qt_mock_test">
+ <Environment>
+ <QtVersion>MOCK</QtVersion>
+ <QtBuild>MOCK</QtBuild>
+ <QTestVersion>6.3.0</QTestVersion>
+ </Environment>
+ <TestFunction name="initTestCase">
+ <Incident type="{{initTestCase_result}}" file="" line="0" />
+ <Duration msecs="0.00004"/>
+ </TestFunction>
+ <TestFunction name="always_pass">
+ <Incident type="{{always_pass_result}}" file="" line="0" />
+ <Duration msecs="0.71704"/>
+ </TestFunction>
+ <TestFunction name="always_fail">
+ <Incident type="{{always_fail_result}}" file="" line="0" />
+ <Duration msecs="0.828272"/>
+ </TestFunction>
+ <TestFunction name="always_crash">
+ <Incident type="{{always_crash_result}}" file="" line="0" />
+ <Duration msecs="0.828272"/>
+ </TestFunction>
+ <TestFunction name="fail_then_pass">
+ <Incident type="{{fail_then_pass:2_result}}" file="" line="0">
+ <DataTag><![CDATA[2]]></DataTag>
+ </Incident>
+ <Incident type="{{fail_then_pass:5_result}}" file="" line="0">
+ <DataTag><![CDATA[5]]></DataTag>
+ </Incident>
+ <Incident type="{{fail_then_pass:6_result}}" file="" line="0">
+ <DataTag><![CDATA[6]]></DataTag>
+ </Incident>
+ </TestFunction>
+ <Duration msecs="1904.9"/>
+</TestCase>
diff --git a/util/testrunner/tests/qt_mock_test.py b/util/testrunner/tests/qt_mock_test.py
new file mode 100755
index 0000000000..a7adb8804a
--- /dev/null
+++ b/util/testrunner/tests/qt_mock_test.py
@@ -0,0 +1,182 @@
+#!/usr/bin/env python3
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+
+# This is an artificial test, mimicking the Qt tests, for example tst_whatever.
+# Its purpose is to assist in testing qt-testrunner.py.
+#
+# Mode A:
+#
+# If invoked with a test function argument, it runs that test function.
+#
+# Usage:
+#
+# $0 always_pass
+# $0 always_fail
+# $0 always_crash
+# $0 fail_then_pass:N # where N is the number of failing runs before passing
+#
+# Needs environment variable:
+# + QT_MOCK_TEST_STATE_FILE :: points to a unique filename, to be written
+# for keeping the state of the fail_then_pass:N tests.
+#
+# Mode B:
+#
+# If invoked without any argument, it runs the tests listed in the
+# variable QT_MOCK_TEST_FAIL_LIST. If variable is empty it just runs
+# the always_pass test. It also understands qtestlib's `-o outfile.xml,xml`
+# option for writing a mock testlog in a file. Requires environment variables:
+# + QT_MOCK_TEST_STATE_FILE :: See above
+# + QT_MOCK_TEST_XML_TEMPLATE_FILE :: may point to the template XML file
+# located in the same source directory. Without this variable, the
+# option `-o outfile.xml,xml` will be ignored.
+# + QT_MOCK_TEST_FAIL_LIST :: may contain a comma-separated list of test
+# that should run.
+
+
+import sys
+import os
+import traceback
+from tst_testrunner import write_xml_log
+
+
+MY_NAME = os.path.basename(sys.argv[0])
+STATE_FILE = None
+XML_TEMPLATE = None
+XML_OUTPUT_FILE = None
+
+
+def put_failure(test_name):
+ with open(STATE_FILE, "a") as f:
+ f.write(test_name + "\n")
+def get_failures(test_name):
+ n = 0
+ try:
+ with open(STATE_FILE) as f:
+ for line in f:
+ if line.strip() == test_name:
+ n += 1
+ except FileNotFoundError:
+ return 0
+ return n
+
+# Only care about the XML log output file.
+def parse_output_argument(a):
+ global XML_OUTPUT_FILE
+ if a.endswith(",xml"):
+ XML_OUTPUT_FILE = a[:-4]
+
+# Strip qtestlib specific arguments.
+# Only care about the "-o ...,xml" argument.
+def clean_cmdline():
+ args = []
+ prev_arg = None
+ skip_next_arg = True # Skip argv[0]
+ for a in sys.argv:
+ if skip_next_arg:
+ if prev_arg == "-o":
+ parse_output_argument(a)
+ prev_arg = None
+ skip_next_arg = False
+ continue
+ if a in ("-o", "-maxwarnings"):
+ skip_next_arg = True
+ prev_arg = a
+ continue
+ if a in ("-v1", "-v2", "-vs"):
+ print("VERBOSE RUN")
+ if "QT_LOGGING_RULES" in os.environ:
+ print("Environment has QT_LOGGING_RULES:",
+ os.environ["QT_LOGGING_RULES"])
+ continue
+ args.append(a)
+ return args
+
+
+def log_test(testcase, result,
+ testsuite=MY_NAME.rpartition(".")[0]):
+ print("%-7s: %s::%s()" % (result, testsuite, testcase))
+
+# Return the exit code
+def run_test(testname):
+ if testname == "initTestCase":
+ exit_code = 1 # specifically test that initTestCase fails
+ elif testname == "always_pass":
+ exit_code = 0
+ elif testname == "always_fail":
+ exit_code = 1
+ elif testname == "always_crash":
+ exit_code = 130
+ elif testname.startswith("fail_then_pass"):
+ wanted_fails = int(testname.partition(":")[2])
+ previous_fails = get_failures(testname)
+ if previous_fails < wanted_fails:
+ put_failure(testname)
+ exit_code = 1
+ else:
+ exit_code = 0
+ else:
+ assert False, "Unknown argument: %s" % testname
+
+ if exit_code == 0:
+ log_test(testname, "PASS")
+ elif exit_code == 1:
+ log_test(testname, "FAIL!")
+ else:
+ log_test(testname, "CRASH!")
+
+ return exit_code
+
+def no_args_run():
+ try:
+ run_list = os.environ["QT_MOCK_TEST_RUN_LIST"].split(",")
+ except KeyError:
+ run_list = ["always_pass"]
+
+ total_result = True
+ fail_list = []
+ for test in run_list:
+ test_exit_code = run_test(test)
+ if test_exit_code not in (0, 1):
+ sys.exit(130) # CRASH!
+ if test_exit_code != 0:
+ fail_list.append(test)
+ total_result = total_result and (test_exit_code == 0)
+
+ if XML_TEMPLATE and XML_OUTPUT_FILE:
+ write_xml_log(XML_OUTPUT_FILE, failure=fail_list)
+
+ if total_result:
+ sys.exit(0)
+ else:
+ sys.exit(1)
+
+
+def main():
+ global STATE_FILE
+ # Will fail if env var is not set.
+ STATE_FILE = os.environ["QT_MOCK_TEST_STATE_FILE"]
+
+ global XML_TEMPLATE
+ if "QT_MOCK_TEST_XML_TEMPLATE_FILE" in os.environ:
+ with open(os.environ["QT_MOCK_TEST_XML_TEMPLATE_FILE"]) as f:
+ XML_TEMPLATE = f.read()
+
+ args = clean_cmdline()
+
+ if len(args) == 0:
+ no_args_run()
+ assert False, "Unreachable!"
+ else:
+ sys.exit(run_test(args[0]))
+
+
+# TODO write XPASS test that does exit(1)
+
+if __name__ == "__main__":
+ try:
+ main()
+ except Exception as e:
+ traceback.print_exc()
+ exit(128) # Something went wrong with this script
diff --git a/util/testrunner/tests/tst_testrunner.py b/util/testrunner/tests/tst_testrunner.py
new file mode 100755
index 0000000000..b2c100714d
--- /dev/null
+++ b/util/testrunner/tests/tst_testrunner.py
@@ -0,0 +1,303 @@
+#!/usr/bin/env python3
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+
+import sys
+import os
+import re
+import subprocess
+
+from subprocess import STDOUT, PIPE
+from tempfile import TemporaryDirectory, mkstemp
+
+MY_NAME = os.path.basename(__file__)
+my_dir = os.path.dirname(__file__)
+testrunner = os.path.join(my_dir, "..", "qt-testrunner.py")
+mock_test = os.path.join(my_dir, "qt_mock_test.py")
+xml_log_template = os.path.join(my_dir, "qt_mock_test-log.xml")
+
+with open(xml_log_template) as f:
+ XML_TEMPLATE = f.read()
+
+
+import unittest
+
+def setUpModule():
+ global TEMPDIR
+ TEMPDIR = TemporaryDirectory(prefix="tst_testrunner-")
+
+ filename = os.path.join(TEMPDIR.name, "file_1")
+ print("setUpModule(): setting up temporary directory and env var"
+ " QT_MOCK_TEST_STATE_FILE=" + filename + " and"
+ " QT_MOCK_TEST_XML_TEMPLATE_FILE=" + xml_log_template)
+
+ os.environ["QT_MOCK_TEST_STATE_FILE"] = filename
+ os.environ["QT_MOCK_TEST_XML_TEMPLATE_FILE"] = xml_log_template
+
+def tearDownModule():
+ print("\ntearDownModule(): Cleaning up temporary directory:",
+ TEMPDIR.name)
+ del os.environ["QT_MOCK_TEST_STATE_FILE"]
+ TEMPDIR.cleanup()
+
+
+# Helper to run a command and always capture output
+def run(*args, **kwargs):
+ if DEBUG:
+ print("Running: ", args, flush=True)
+ proc = subprocess.run(*args, stdout=PIPE, stderr=STDOUT, **kwargs)
+ if DEBUG and proc.stdout:
+ print(proc.stdout.decode(), flush=True)
+ return proc
+
+# Helper to run qt-testrunner.py with proper testing arguments.
+def run_testrunner(xml_filename=None, extra_args=None, env=None):
+
+ args = [ testrunner, mock_test ]
+ if xml_filename:
+ args += [ "--parse-xml-testlog", xml_filename ]
+ if extra_args:
+ args += extra_args
+
+ return run(args, env=env)
+
+# Write the XML_TEMPLATE to filename, replacing the templated results.
+def write_xml_log(filename, failure=None):
+ data = XML_TEMPLATE
+ # Replace what was asked to fail with "fail"
+ if type(failure) in (list, tuple):
+ for template in failure:
+ data = data.replace("{{"+template+"_result}}", "fail")
+ elif type(failure) is str:
+ data = data.replace("{{"+failure+"_result}}", "fail")
+ # Replace the rest with "pass"
+ data = re.sub(r"{{[^}]+}}", "pass", data)
+ with open(filename, "w") as f:
+ f.write(data)
+
+
+# Test that qt_mock_test.py behaves well. This is necessary to properly
+# test qt-testrunner.
+class Test_qt_mock_test(unittest.TestCase):
+ def setUp(self):
+ state_file = os.environ["QT_MOCK_TEST_STATE_FILE"]
+ if os.path.exists(state_file):
+ os.remove(state_file)
+ def test_always_pass(self):
+ proc = run([mock_test, "always_pass"])
+ self.assertEqual(proc.returncode, 0)
+ def test_always_fail(self):
+ proc = run([mock_test, "always_fail"])
+ self.assertEqual(proc.returncode, 1)
+ def test_fail_then_pass_2(self):
+ proc = run([mock_test, "fail_then_pass:2"])
+ self.assertEqual(proc.returncode, 1)
+ proc = run([mock_test, "fail_then_pass:2"])
+ self.assertEqual(proc.returncode, 1)
+ proc = run([mock_test, "fail_then_pass:2"])
+ self.assertEqual(proc.returncode, 0)
+ def test_fail_then_pass_1(self):
+ proc = run([mock_test, "fail_then_pass:1"])
+ self.assertEqual(proc.returncode, 1)
+ proc = run([mock_test, "fail_then_pass:1"])
+ self.assertEqual(proc.returncode, 0)
+ def test_fail_then_pass_many_tests(self):
+ proc = run([mock_test, "fail_then_pass:1"])
+ self.assertEqual(proc.returncode, 1)
+ proc = run([mock_test, "fail_then_pass:2"])
+ self.assertEqual(proc.returncode, 1)
+ proc = run([mock_test, "fail_then_pass:1"])
+ self.assertEqual(proc.returncode, 0)
+ proc = run([mock_test, "fail_then_pass:2"])
+ self.assertEqual(proc.returncode, 1)
+ proc = run([mock_test, "fail_then_pass:2"])
+ self.assertEqual(proc.returncode, 0)
+ def test_xml_file_is_written(self):
+ filename = os.path.join(TEMPDIR.name, "testlog.xml")
+ proc = run([mock_test, "-o", filename+",xml"])
+ self.assertEqual(proc.returncode, 0)
+ self.assertTrue(os.path.exists(filename))
+ self.assertGreater(os.path.getsize(filename), 0)
+ os.remove(filename)
+
+# Test regular invocations of qt-testrunner.
+class Test_testrunner(unittest.TestCase):
+ def setUp(self):
+ state_file = os.environ["QT_MOCK_TEST_STATE_FILE"]
+ if os.path.exists(state_file):
+ os.remove(state_file)
+ old_logfile = os.path.join(TEMPDIR.name, os.path.basename(mock_test) + ".xml")
+ if os.path.exists(old_logfile):
+ os.remove(old_logfile)
+ self.env = dict()
+ self.env["QT_MOCK_TEST_XML_TEMPLATE_FILE"] = os.environ["QT_MOCK_TEST_XML_TEMPLATE_FILE"]
+ self.env["QT_MOCK_TEST_STATE_FILE"] = state_file
+ self.extra_args = [ "--log-dir", TEMPDIR.name ]
+ def prepare_env(self, run_list=None):
+ if run_list is not None:
+ self.env['QT_MOCK_TEST_RUN_LIST'] = ",".join(run_list)
+ def run2(self):
+ return run_testrunner(extra_args=self.extra_args, env=self.env)
+ def test_simple_invocation(self):
+ # All tests pass.
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 0)
+ def test_always_pass(self):
+ self.prepare_env(run_list=["always_pass"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 0)
+ def test_always_fail(self):
+ self.prepare_env(run_list=["always_fail"])
+ proc = self.run2()
+ # TODO verify that re-runs==max_repeats
+ self.assertEqual(proc.returncode, 2)
+ def test_flaky_pass_1(self):
+ self.prepare_env(run_list=["always_pass,fail_then_pass:1"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 0)
+ def test_flaky_pass_5(self):
+ self.prepare_env(run_list=["always_pass,fail_then_pass:1,fail_then_pass:5"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 0)
+ def test_flaky_fail(self):
+ self.prepare_env(run_list=["always_pass,fail_then_pass:6"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 2)
+ def test_flaky_pass_fail(self):
+ self.prepare_env(run_list=["always_pass,fail_then_pass:1,fail_then_pass:6"])
+ proc = self.run2()
+ # TODO verify that one func was re-run and passed but the other failed.
+ self.assertEqual(proc.returncode, 2)
+ def test_initTestCase_fail_crash(self):
+ self.prepare_env(run_list=["initTestCase,always_pass"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 3)
+
+ # If no XML file is found by qt-testrunner, it is usually considered a
+ # CRASH and the whole test is re-run. Even when the return code is zero.
+ # It is a PASS only if the test is not capable of XML output (see no_extra_args, TODO test it).
+ def test_no_xml_log_written_pass_crash(self):
+ del self.env["QT_MOCK_TEST_XML_TEMPLATE_FILE"]
+ self.prepare_env(run_list=["always_pass"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 3)
+ # On the 2nd iteration of the full test, both of the tests pass.
+ # Still it's a CRASH because no XML file was found.
+ def test_no_xml_log_written_fail_then_pass_crash(self):
+ del self.env["QT_MOCK_TEST_XML_TEMPLATE_FILE"]
+ self.prepare_env(run_list=["always_pass,fail_then_pass:1"])
+ proc = self.run2()
+ # TODO verify that the whole test has run twice.
+ self.assertEqual(proc.returncode, 3)
+ # Even after 2 iterations of the full test we still get failures but no XML file,
+ # and this is considered a CRASH.
+ def test_no_xml_log_written_crash(self):
+ del self.env["QT_MOCK_TEST_XML_TEMPLATE_FILE"]
+ self.prepare_env(run_list=["fail_then_pass:2"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 3)
+
+ # If a test returns success but XML contains failures, it's a CRASH.
+ def test_wrong_xml_log_written_1_crash(self):
+ logfile = os.path.join(TEMPDIR.name, os.path.basename(mock_test) + ".xml")
+ write_xml_log(logfile, failure="always_fail")
+ del self.env["QT_MOCK_TEST_XML_TEMPLATE_FILE"]
+ self.prepare_env(run_list=["always_pass"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 3)
+ # If a test returns failure but XML contains only pass, it's a CRASH.
+ def test_wrong_xml_log_written_2_crash(self):
+ logfile = os.path.join(TEMPDIR.name, os.path.basename(mock_test) + ".xml")
+ write_xml_log(logfile)
+ del self.env["QT_MOCK_TEST_XML_TEMPLATE_FILE"]
+ self.prepare_env(run_list=["always_fail"])
+ proc = self.run2()
+ self.assertEqual(proc.returncode, 3)
+
+
+# Test qt-testrunner script with an existing XML log file:
+# qt-testrunner.py qt_mock_test.py --parse-xml-testlog file.xml
+# qt-testrunner should repeat the testcases that are logged as
+# failures and fail or pass depending on how the testcases behave.
+# Different XML files are generated for the following test cases.
+# + No failure logged. qt-testrunner should exit(0)
+# + The "always_pass" test has failed. qt-testrunner should exit(0).
+# + The "always_fail" test has failed. qt-testrunner should exit(2).
+# + The "always_crash" test has failed. qt-testrunner should exit(2).
+# + The "fail_then_pass:2" test failed. qt-testrunner should exit(0).
+# + The "fail_then_pass:5" test failed. qt-testrunner should exit(2).
+# + The "initTestCase" failed which is listed as NO_RERUN thus
+# qt-testrunner should exit(3).
+class Test_testrunner_with_xml_logfile(unittest.TestCase):
+ # Runs before every single test function, creating a unique temp file.
+ def setUp(self):
+ (_handle, self.xml_file) = mkstemp(
+ suffix=".xml", prefix="qt_mock_test-log-",
+ dir=TEMPDIR.name)
+ if os.path.exists(os.environ["QT_MOCK_TEST_STATE_FILE"]):
+ os.remove(os.environ["QT_MOCK_TEST_STATE_FILE"])
+ def tearDown(self):
+ os.remove(self.xml_file)
+ del self.xml_file
+
+ def test_no_failure(self):
+ write_xml_log(self.xml_file, failure=None)
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 0)
+ def test_always_pass_failed(self):
+ write_xml_log(self.xml_file, failure="always_pass")
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 0)
+ def test_always_pass_failed_max_repeats_0(self):
+ write_xml_log(self.xml_file, failure="always_pass")
+ proc = run_testrunner(self.xml_file,
+ extra_args=["--max-repeats", "0"])
+ self.assertEqual(proc.returncode, 2)
+ def test_always_fail_failed(self):
+ write_xml_log(self.xml_file, failure="always_fail")
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 2)
+ # Assert that one of the re-runs was in verbose mode
+ matches = re.findall("VERBOSE RUN",
+ proc.stdout.decode())
+ self.assertEqual(len(matches), 1)
+ # Assert that the environment was altered too
+ self.assertIn("QT_LOGGING_RULES", proc.stdout.decode())
+ def test_always_crash_failed(self):
+ write_xml_log(self.xml_file, failure="always_crash")
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 2)
+ def test_fail_then_pass_2_failed(self):
+ write_xml_log(self.xml_file, failure="fail_then_pass:2")
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 0)
+ def test_fail_then_pass_5_failed(self):
+ write_xml_log(self.xml_file, failure="fail_then_pass:5")
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 2)
+ def test_with_two_failures(self):
+ write_xml_log(self.xml_file,
+ failure=["always_pass", "fail_then_pass:2"])
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 0)
+ # Check that test output is properly interleaved with qt-testrunner's logging.
+ matches = re.findall(r"(PASS|FAIL!).*\n.*Test process exited with code",
+ proc.stdout.decode())
+ self.assertEqual(len(matches), 4)
+ def test_initTestCase_fail_crash(self):
+ write_xml_log(self.xml_file, failure="initTestCase")
+ proc = run_testrunner(self.xml_file)
+ self.assertEqual(proc.returncode, 3)
+
+
+if __name__ == "__main__":
+
+ DEBUG = False
+ if "--debug" in sys.argv:
+ sys.argv.remove("--debug")
+ DEBUG = True
+
+ # We set failfast=True as we do not want the test suite to continue if the
+ # tests of qt_mock_test failed. The next ones depend on it.
+ unittest.main(failfast=True)
diff --git a/util/unicode/README b/util/unicode/README
index 1b6efb237e..faf9201b1c 100644
--- a/util/unicode/README
+++ b/util/unicode/README
@@ -1,13 +1,18 @@
Unicode is used to generate the unicode data in src/corelib/text/.
To update:
-* Find the data (UAX #44, UCD; not the XML version) at
- ftp://www.unicode.org/Public/zipped/$Version/
-* Unpack the zip file; for each file in data/, replace with the new
- version; find the *BreakProperty.txt in auxiliary/ and emoji-data.txt
- in emoji/.
-* In tst_QTextBoundaryFinder's data/ sub-directory, update its files
- from the auxiliary/ sub-directory of the UCD data.
+* Run `./update_ucd.sh $Version`. This automates the following steps:
+ * Find the data (UAX #44, UCD; not the XML version) at
+ https://www.unicode.org/Public/zipped/$Version/
+ * Unpack the zip file; for each file in data/, replace with the new
+ version; find the *BreakProperty.txt in auxiliary/ and emoji-data.txt
+ in emoji/.
+ * In tst_QTextBoundaryFinder's data/ sub-directory, update its files
+ from the auxiliary/ sub-directory of the UCD data.
+ * Download https://www.unicode.org/Public/idna/$Version/IdnaMappingTable.txt
+ and put it into data/.
+ * Download https://www.unicode.org/Public/idna/$Version/IdnaTestV2.txt
+ and put it into tests/auto/corelib/io/qurluts46/testdata.
* If needed, add an entry to enum QChar::UnicodeVersion for the new
Unicode version
* In that case, also update main.cpp's initAgeMap and DATA_VERSION_S*
diff --git a/util/unicode/data/ArabicShaping.txt b/util/unicode/data/ArabicShaping.txt
index 9a93adc12f..0cbdc8a4c4 100644
--- a/util/unicode/data/ArabicShaping.txt
+++ b/util/unicode/data/ArabicShaping.txt
@@ -1,8 +1,8 @@
-# ArabicShaping-13.0.0.txt
-# Date: 2020-01-31, 23:55:00 GMT [KW, RP]
-# © 2020 Unicode®, Inc.
+# ArabicShaping-15.1.0.txt
+# Date: 2023-01-05
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# This file is a normative contributory data file in the
# Unicode Character Database.
@@ -13,11 +13,12 @@
# exemplified in Tables 9-3, 9-8, 9-9, 9-10, 9-14, 9-15, 9-16, 9-19,
# 9-20, 10-4, 10-5, 10-6, 10-7, and 19-5 of The Unicode Standard core
# specification. This file also defines Joining_Type values for
-# Mongolian, Phags-pa, Psalter Pahlavi, Sogdian, Chorasmian, and Adlam positional shaping,
+# Mongolian, Phags-pa, Psalter Pahlavi, Sogdian, Old Uyghur, Chorasmian,
+# and Adlam positional shaping,
# and Joining_Type and Joining_Group values for Hanifi Rohingya positional shaping,
# which are not listed in tables in the standard.
#
-# See Sections 9.2, 9.3, 9.5, 10.5, 10.6, 13.4, 14.3, 14.10, 16.14, 19.4, and 19.9
+# See Sections 9.2, 9.3, 9.5, 10.5, 10.6, 13.5, 14.4, 14.10, 14.11, 16.14, 19.4, and 19.9
# of The Unicode Standard core specification for more information.
#
# Each line contains four fields, separated by a semicolon.
@@ -44,7 +45,7 @@
# Note that for cursive joining scripts which are typically rendered
# top-to-bottom, rather than right-to-left, Joining_Type=L conventionally
# refers to bottom joining, and Joining_Type=R conventionally refers
-# to top joining. See Section 14.3, Phags-pa for more information on the
+# to top joining. See Section 14.4, Phags-pa for more information on the
# interpretation of joining types in vertical layout.
#
# Field 3: defines the joining group (property name: Joining_Group)
@@ -79,7 +80,7 @@
# joining group values will be defined only if an explicit proposal
# to define those values exactly has been approved by the UTC. This
# is the convention exemplified by the N'Ko, Mandaic, Mongolian,
-# Phags-pa, Psalter Pahlavi, Sogdian, Chorasmian, and Adlam scripts.
+# Phags-pa, Psalter Pahlavi, Sogdian, Old Uyghur, Chorasmian, and Adlam scripts.
# Only the Arabic, Manichaean, and Syriac scripts currently have
# explicit joining group values defined for all characters, including
# those which have only a single character in a particular Joining_Group
@@ -162,7 +163,7 @@
0674; HIGH HAMZA; U; No_Joining_Group
0675; HIGH HAMZA ALEF; R; ALEF
0676; HIGH HAMZA WAW; R; WAW
-0677; HIGH HAMZA WAW WITH DAMMA ABOVE; R; WAW
+0677; HIGH HAMZA WAW WITH COMMA ABOVE; R; WAW
0678; HIGH HAMZA DOTLESS YEH; D; YEH
0679; DOTLESS BEH WITH TAH ABOVE; D; BEH
067A; DOTLESS BEH WITH VERTICAL 2 DOTS ABOVE; D; BEH
@@ -240,9 +241,9 @@
06C2; HEH GOAL WITH HAMZA ABOVE; D; HEH GOAL
06C3; TEH MARBUTA GOAL; R; TEH MARBUTA GOAL
06C4; WAW WITH ATTACHED RING WITHIN; R; WAW
-06C5; WAW WITH BAR; R; WAW
+06C5; WAW WITH LOOP; R; WAW
06C6; WAW WITH V ABOVE; R; WAW
-06C7; WAW WITH DAMMA ABOVE; R; WAW
+06C7; WAW WITH COMMA ABOVE; R; WAW
06C8; WAW WITH ALEF ABOVE; R; WAW
06C9; WAW WITH INVERTED V ABOVE; R; WAW
06CA; WAW WITH 2 DOTS ABOVE; R; WAW
@@ -432,6 +433,42 @@
0869; MALAYALAM LLLA; R; MALAYALAM LLLA
086A; MALAYALAM SSA; R; MALAYALAM SSA
+# Arabic Extended-B Characters
+
+0870; ALEF WITH ATTACHED FATHA; R; ALEF
+0871; ALEF WITH ATTACHED TOP RIGHT FATHA; R; ALEF
+0872; ALEF WITH RIGHT MIDDLE STROKE; R; ALEF
+0873; ALEF WITH LEFT MIDDLE STROKE; R; ALEF
+0874; ALEF WITH ATTACHED KASRA; R; ALEF
+0875; ALEF WITH ATTACHED BOTTOM RIGHT KASRA; R; ALEF
+0876; ALEF WITH ATTACHED ROUND DOT ABOVE; R; ALEF
+0877; ALEF WITH ATTACHED RIGHT ROUND DOT; R; ALEF
+0878; ALEF WITH ATTACHED LEFT ROUND DOT; R; ALEF
+0879; ALEF WITH ATTACHED ROUND DOT BELOW; R; ALEF
+087A; ALEF WITH DOT ABOVE; R; ALEF
+087B; ALEF WITH ATTACHED TOP RIGHT FATHA AND DOT ABOVE; R; ALEF
+087C; ALEF WITH RIGHT MIDDLE STROKE AND DOT ABOVE; R; ALEF
+087D; ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND DOT ABOVE; R; ALEF
+087E; ALEF WITH ATTACHED TOP RIGHT FATHA AND LEFT RING; R; ALEF
+087F; ALEF WITH RIGHT MIDDLE STROKE AND LEFT RING; R; ALEF
+0880; ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND LEFT RING; R; ALEF
+0881; ALEF WITH ATTACHED RIGHT HAMZA; R; ALEF
+0882; ALEF WITH ATTACHED LEFT HAMZA; R; ALEF
+0883; TATWEEL WITH OVERSTRUCK HAMZA; C; No_Joining_Group
+0884; TATWEEL WITH OVERSTRUCK WAW; C; No_Joining_Group
+0885; TATWEEL WITH TWO DOTS BELOW; C; No_Joining_Group
+0886; THIN YEH; D; THIN YEH
+0887; ARABIC BASELINE ROUND DOT; U; No_Joining_Group
+0888; ARABIC RAISED ROUND DOT; U; No_Joining_Group
+0889; DOTLESS NOON WITH INVERTED V ABOVE; D; NOON
+088A; HAH WITH INVERTED V BELOW; D; HAH
+088B; TAH WITH DOT BELOW; D; TAH
+088C; TAH WITH 3 DOTS BELOW; D; TAH
+088D; KEHEH WITH VERTICAL 2 DOTS BELOW; D; GAF
+088E; VERTICAL TAIL; R; VERTICAL TAIL
+0890; ARABIC POUND MARK ABOVE; U; No_Joining_Group
+0891; ARABIC PIASTRE MARK ABOVE; U; No_Joining_Group
+
# Arabic Extended-A Characters
08A0; DOTLESS BEH WITH V BELOW; D; BEH
@@ -455,6 +492,7 @@
08B2; REH WITH DOT AND INVERTED V ABOVE; R; REH
08B3; AIN WITH 3 DOTS BELOW; D; AIN
08B4; KAF WITH DOT BELOW; D; KAF
+08B5; DOTLESS QAF WITH DOT BELOW; D; QAF
08B6; BEH WITH MEEM ABOVE; D; BEH
08B7; DOTLESS BEH WITH 3 DOTS BELOW AND MEEM ABOVE; D; BEH
08B8; DOTLESS BEH WITH TEH ABOVE; D; BEH
@@ -473,6 +511,7 @@
08C5; HAH WITH DOT BELOW AND 3 DOTS ABOVE; D; HAH
08C6; HAH WITH DIAMOND 4 DOTS BELOW; D; HAH
08C7; LAM WITH TAH ABOVE; D; LAM
+08C8; KEHEH WITH ELONGATED HAMZA ABOVE; D; GAF
08E2; ARABIC DISPUTED END OF AYAH; U; No_Joining_Group
# Mongolian Characters
@@ -819,6 +858,27 @@ A873; PHAGS-PA CANDRABINDU; U; No_Joining_Group
10F53; SOGDIAN TWENTY; D; No_Joining_Group
10F54; SOGDIAN ONE HUNDRED; R; No_Joining_Group
+# Old Uyghur Characters
+
+10F70; OLD UYGHUR ALEPH; D; No_Joining_Group
+10F71; OLD UYGHUR BETH; D; No_Joining_Group
+10F72; OLD UYGHUR GIMEL-HETH; D; No_Joining_Group
+10F73; OLD UYGHUR WAW; D; No_Joining_Group
+10F74; OLD UYGHUR ZAYIN; R; No_Joining_Group
+10F75; OLD UYGHUR FINAL HETH; R; No_Joining_Group
+10F76; OLD UYGHUR YODH; D; No_Joining_Group
+10F77; OLD UYGHUR KAPH; D; No_Joining_Group
+10F78; OLD UYGHUR LAMEDH; D; No_Joining_Group
+10F79; OLD UYGHUR MEM; D; No_Joining_Group
+10F7A; OLD UYGHUR NUN; D; No_Joining_Group
+10F7B; OLD UYGHUR SAMEKH; D; No_Joining_Group
+10F7C; OLD UYGHUR PE; D; No_Joining_Group
+10F7D; OLD UYGHUR SADHE; D; No_Joining_Group
+10F7E; OLD UYGHUR RESH; D; No_Joining_Group
+10F7F; OLD UYGHUR SHIN; D; No_Joining_Group
+10F80; OLD UYGHUR TAW; D; No_Joining_Group
+10F81; OLD UYGHUR LESH; D; No_Joining_Group
+
# Chorasmian Characters
10FB0; CHORASMIAN ALEPH; D; No_Joining_Group
diff --git a/util/unicode/data/BidiMirroring.txt b/util/unicode/data/BidiMirroring.txt
index 34e42ae8dc..7e58cc4d71 100644
--- a/util/unicode/data/BidiMirroring.txt
+++ b/util/unicode/data/BidiMirroring.txt
@@ -1,10 +1,10 @@
-# BidiMirroring-13.0.0.txt
-# Date: 2019-09-09, 19:34:00 GMT [KW, LI, RP]
-# © 2019 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# BidiMirroring-15.1.0.txt
+# Date: 2023-01-05
+# © 2023 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Bidi_Mirroring_Glyph Property
#
@@ -15,7 +15,7 @@
# value, for which there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
#
-# The repertoire covered by the file is Unicode 13.0.0.
+# The repertoire covered by the file is Unicode 15.1.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
@@ -40,7 +40,7 @@
# for character-based mirroring.
#
# For information on bidi mirroring, see UAX #9: Unicode Bidirectional Algorithm,
-# at http://www.unicode.org/unicode/reports/tr9/
+# at https://www.unicode.org/reports/tr9/
#
# This file was originally created by Markus Scherer.
# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
@@ -96,10 +96,10 @@
208D; 208E # SUBSCRIPT LEFT PARENTHESIS
208E; 208D # SUBSCRIPT RIGHT PARENTHESIS
2208; 220B # ELEMENT OF
-2209; 220C # NOT AN ELEMENT OF
+2209; 220C # [BEST FIT] NOT AN ELEMENT OF
220A; 220D # SMALL ELEMENT OF
220B; 2208 # CONTAINS AS MEMBER
-220C; 2209 # DOES NOT CONTAIN AS MEMBER
+220C; 2209 # [BEST FIT] DOES NOT CONTAIN AS MEMBER
220D; 220A # SMALL CONTAINS AS MEMBER
2215; 29F5 # DIVISION SLASH
221F; 2BFE # RIGHT ANGLE
@@ -453,6 +453,14 @@
2E27; 2E26 # RIGHT SIDEWAYS U BRACKET
2E28; 2E29 # LEFT DOUBLE PARENTHESIS
2E29; 2E28 # RIGHT DOUBLE PARENTHESIS
+2E55; 2E56 # LEFT SQUARE BRACKET WITH STROKE
+2E56; 2E55 # RIGHT SQUARE BRACKET WITH STROKE
+2E57; 2E58 # LEFT SQUARE BRACKET WITH DOUBLE STROKE
+2E58; 2E57 # RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+2E59; 2E5A # TOP HALF LEFT PARENTHESIS
+2E5A; 2E59 # TOP HALF RIGHT PARENTHESIS
+2E5B; 2E5C # BOTTOM HALF LEFT PARENTHESIS
+2E5C; 2E5B # BOTTOM HALF RIGHT PARENTHESIS
3008; 3009 # LEFT ANGLE BRACKET
3009; 3008 # RIGHT ANGLE BRACKET
300A; 300B # LEFT DOUBLE ANGLE BRACKET
diff --git a/util/unicode/data/Blocks.txt b/util/unicode/data/Blocks.txt
index 56877db10f..8fa3eaad04 100644
--- a/util/unicode/data/Blocks.txt
+++ b/util/unicode/data/Blocks.txt
@@ -1,10 +1,10 @@
-# Blocks-13.0.0.txt
-# Date: 2019-07-10, 19:06:00 GMT [KW]
-# © 2019 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# Blocks-15.1.0.txt
+# Date: 2023-07-28, 15:47:20 GMT
+# © 2023 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Format:
# Start Code..End Code; Block Name
@@ -15,7 +15,7 @@
# and underbars are ignored.
# For example, "Latin Extended-A" and "latin extended a" are equivalent.
# For more information on the comparison of property values,
-# see UAX #44: http://www.unicode.org/reports/tr44/
+# see UAX #44: https://www.unicode.org/reports/tr44/
#
# All block ranges start with a value where (cp MOD 16) = 0,
# and end with a value where (cp MOD 16) = 15. In other words,
@@ -52,6 +52,7 @@
0800..083F; Samaritan
0840..085F; Mandaic
0860..086F; Syriac Supplement
+0870..089F; Arabic Extended-B
08A0..08FF; Arabic Extended-A
0900..097F; Devanagari
0980..09FF; Bengali
@@ -215,7 +216,9 @@ FFF0..FFFF; Specials
104B0..104FF; Osage
10500..1052F; Elbasan
10530..1056F; Caucasian Albanian
+10570..105BF; Vithkuqi
10600..1077F; Linear A
+10780..107BF; Latin Extended-F
10800..1083F; Cypriot Syllabary
10840..1085F; Imperial Aramaic
10860..1087F; Palmyrene
@@ -238,8 +241,10 @@ FFF0..FFFF; Specials
10D00..10D3F; Hanifi Rohingya
10E60..10E7F; Rumi Numeral Symbols
10E80..10EBF; Yezidi
+10EC0..10EFF; Arabic Extended-C
10F00..10F2F; Old Sogdian
10F30..10F6F; Sogdian
+10F70..10FAF; Old Uyghur
10FB0..10FDF; Chorasmian
10FE0..10FFF; Elymaic
11000..1107F; Brahmi
@@ -259,29 +264,34 @@ FFF0..FFFF; Specials
11600..1165F; Modi
11660..1167F; Mongolian Supplement
11680..116CF; Takri
-11700..1173F; Ahom
+11700..1174F; Ahom
11800..1184F; Dogra
118A0..118FF; Warang Citi
11900..1195F; Dives Akuru
119A0..119FF; Nandinagari
11A00..11A4F; Zanabazar Square
11A50..11AAF; Soyombo
+11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
11AC0..11AFF; Pau Cin Hau
+11B00..11B5F; Devanagari Extended-A
11C00..11C6F; Bhaiksuki
11C70..11CBF; Marchen
11D00..11D5F; Masaram Gondi
11D60..11DAF; Gunjala Gondi
11EE0..11EFF; Makasar
+11F00..11F5F; Kawi
11FB0..11FBF; Lisu Supplement
11FC0..11FFF; Tamil Supplement
12000..123FF; Cuneiform
12400..1247F; Cuneiform Numbers and Punctuation
12480..1254F; Early Dynastic Cuneiform
+12F90..12FFF; Cypro-Minoan
13000..1342F; Egyptian Hieroglyphs
-13430..1343F; Egyptian Hieroglyph Format Controls
+13430..1345F; Egyptian Hieroglyph Format Controls
14400..1467F; Anatolian Hieroglyphs
16800..16A3F; Bamum Supplement
16A40..16A6F; Mro
+16A70..16ACF; Tangsa
16AD0..16AFF; Bassa Vah
16B00..16B8F; Pahawh Hmong
16E40..16E9F; Medefaidrin
@@ -290,24 +300,32 @@ FFF0..FFFF; Specials
17000..187FF; Tangut
18800..18AFF; Tangut Components
18B00..18CFF; Khitan Small Script
-18D00..18D8F; Tangut Supplement
+18D00..18D7F; Tangut Supplement
+1AFF0..1AFFF; Kana Extended-B
1B000..1B0FF; Kana Supplement
1B100..1B12F; Kana Extended-A
1B130..1B16F; Small Kana Extension
1B170..1B2FF; Nushu
1BC00..1BC9F; Duployan
1BCA0..1BCAF; Shorthand Format Controls
+1CF00..1CFCF; Znamenny Musical Notation
1D000..1D0FF; Byzantine Musical Symbols
1D100..1D1FF; Musical Symbols
1D200..1D24F; Ancient Greek Musical Notation
+1D2C0..1D2DF; Kaktovik Numerals
1D2E0..1D2FF; Mayan Numerals
1D300..1D35F; Tai Xuan Jing Symbols
1D360..1D37F; Counting Rod Numerals
1D400..1D7FF; Mathematical Alphanumeric Symbols
1D800..1DAAF; Sutton SignWriting
+1DF00..1DFFF; Latin Extended-G
1E000..1E02F; Glagolitic Supplement
+1E030..1E08F; Cyrillic Extended-D
1E100..1E14F; Nyiakeng Puachue Hmong
+1E290..1E2BF; Toto
1E2C0..1E2FF; Wancho
+1E4D0..1E4FF; Nag Mundari
+1E7E0..1E7FF; Ethiopic Extended-B
1E800..1E8DF; Mende Kikakui
1E900..1E95F; Adlam
1EC70..1ECBF; Indic Siyaq Numbers
@@ -334,8 +352,10 @@ FFF0..FFFF; Specials
2B740..2B81F; CJK Unified Ideographs Extension D
2B820..2CEAF; CJK Unified Ideographs Extension E
2CEB0..2EBEF; CJK Unified Ideographs Extension F
+2EBF0..2EE5F; CJK Unified Ideographs Extension I
2F800..2FA1F; CJK Compatibility Ideographs Supplement
30000..3134F; CJK Unified Ideographs Extension G
+31350..323AF; CJK Unified Ideographs Extension H
E0000..E007F; Tags
E0100..E01EF; Variation Selectors Supplement
F0000..FFFFF; Supplementary Private Use Area-A
diff --git a/util/unicode/data/CaseFolding.txt b/util/unicode/data/CaseFolding.txt
index 033788b253..69c5c64b4c 100644
--- a/util/unicode/data/CaseFolding.txt
+++ b/util/unicode/data/CaseFolding.txt
@@ -1,11 +1,11 @@
-# CaseFolding-13.0.0.txt
-# Date: 2019-09-08, 23:30:59 GMT
-# © 2019 Unicode®, Inc.
+# CaseFolding-15.1.0.txt
+# Date: 2023-05-12, 21:53:10 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Case Folding Properties
#
@@ -929,6 +929,7 @@
1FCC; S; 1FC3; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
1FD2; F; 03B9 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
1FD3; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD3; S; 0390; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
1FD6; F; 03B9 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI
1FD7; F; 03B9 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
1FD8; C; 1FD0; # GREEK CAPITAL LETTER IOTA WITH VRACHY
@@ -937,6 +938,7 @@
1FDB; C; 1F77; # GREEK CAPITAL LETTER IOTA WITH OXIA
1FE2; F; 03C5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
1FE3; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE3; S; 03B0; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
1FE4; F; 03C1 0313; # GREEK SMALL LETTER RHO WITH PSILI
1FE6; F; 03C5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI
1FE7; F; 03C5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
@@ -1050,6 +1052,7 @@
2C2C; C; 2C5C; # GLAGOLITIC CAPITAL LETTER SHTAPIC
2C2D; C; 2C5D; # GLAGOLITIC CAPITAL LETTER TROKUTASTI A
2C2E; C; 2C5E; # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C2F; C; 2C5F; # GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
2C60; C; 2C61; # LATIN CAPITAL LETTER L WITH DOUBLE BAR
2C62; C; 026B; # LATIN CAPITAL LETTER L WITH MIDDLE TILDE
2C63; C; 1D7D; # LATIN CAPITAL LETTER P WITH STROKE
@@ -1230,12 +1233,16 @@ A7B8; C; A7B9; # LATIN CAPITAL LETTER U WITH STROKE
A7BA; C; A7BB; # LATIN CAPITAL LETTER GLOTTAL A
A7BC; C; A7BD; # LATIN CAPITAL LETTER GLOTTAL I
A7BE; C; A7BF; # LATIN CAPITAL LETTER GLOTTAL U
+A7C0; C; A7C1; # LATIN CAPITAL LETTER OLD POLISH O
A7C2; C; A7C3; # LATIN CAPITAL LETTER ANGLICANA W
A7C4; C; A794; # LATIN CAPITAL LETTER C WITH PALATAL HOOK
A7C5; C; 0282; # LATIN CAPITAL LETTER S WITH HOOK
A7C6; C; 1D8E; # LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7C7; C; A7C8; # LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
A7C9; C; A7CA; # LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+A7D0; C; A7D1; # LATIN CAPITAL LETTER CLOSED INSULAR G
+A7D6; C; A7D7; # LATIN CAPITAL LETTER MIDDLE SCOTS S
+A7D8; C; A7D9; # LATIN CAPITAL LETTER SIGMOID S
A7F5; C; A7F6; # LATIN CAPITAL LETTER REVERSED HALF H
AB70; C; 13A0; # CHEROKEE SMALL LETTER A
AB71; C; 13A1; # CHEROKEE SMALL LETTER E
@@ -1323,6 +1330,7 @@ FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL
FB03; F; 0066 0066 0069; # LATIN SMALL LIGATURE FFI
FB04; F; 0066 0066 006C; # LATIN SMALL LIGATURE FFL
FB05; F; 0073 0074; # LATIN SMALL LIGATURE LONG S T
+FB05; S; FB06; # LATIN SMALL LIGATURE LONG S T
FB06; F; 0073 0074; # LATIN SMALL LIGATURE ST
FB13; F; 0574 0576; # ARMENIAN SMALL LIGATURE MEN NOW
FB14; F; 0574 0565; # ARMENIAN SMALL LIGATURE MEN ECH
@@ -1431,6 +1439,41 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z
104D1; C; 104F9; # OSAGE CAPITAL LETTER GHA
104D2; C; 104FA; # OSAGE CAPITAL LETTER ZA
104D3; C; 104FB; # OSAGE CAPITAL LETTER ZHA
+10570; C; 10597; # VITHKUQI CAPITAL LETTER A
+10571; C; 10598; # VITHKUQI CAPITAL LETTER BBE
+10572; C; 10599; # VITHKUQI CAPITAL LETTER BE
+10573; C; 1059A; # VITHKUQI CAPITAL LETTER CE
+10574; C; 1059B; # VITHKUQI CAPITAL LETTER CHE
+10575; C; 1059C; # VITHKUQI CAPITAL LETTER DE
+10576; C; 1059D; # VITHKUQI CAPITAL LETTER DHE
+10577; C; 1059E; # VITHKUQI CAPITAL LETTER EI
+10578; C; 1059F; # VITHKUQI CAPITAL LETTER E
+10579; C; 105A0; # VITHKUQI CAPITAL LETTER FE
+1057A; C; 105A1; # VITHKUQI CAPITAL LETTER GA
+1057C; C; 105A3; # VITHKUQI CAPITAL LETTER HA
+1057D; C; 105A4; # VITHKUQI CAPITAL LETTER HHA
+1057E; C; 105A5; # VITHKUQI CAPITAL LETTER I
+1057F; C; 105A6; # VITHKUQI CAPITAL LETTER IJE
+10580; C; 105A7; # VITHKUQI CAPITAL LETTER JE
+10581; C; 105A8; # VITHKUQI CAPITAL LETTER KA
+10582; C; 105A9; # VITHKUQI CAPITAL LETTER LA
+10583; C; 105AA; # VITHKUQI CAPITAL LETTER LLA
+10584; C; 105AB; # VITHKUQI CAPITAL LETTER ME
+10585; C; 105AC; # VITHKUQI CAPITAL LETTER NE
+10586; C; 105AD; # VITHKUQI CAPITAL LETTER NJE
+10587; C; 105AE; # VITHKUQI CAPITAL LETTER O
+10588; C; 105AF; # VITHKUQI CAPITAL LETTER PE
+10589; C; 105B0; # VITHKUQI CAPITAL LETTER QA
+1058A; C; 105B1; # VITHKUQI CAPITAL LETTER RE
+1058C; C; 105B3; # VITHKUQI CAPITAL LETTER SE
+1058D; C; 105B4; # VITHKUQI CAPITAL LETTER SHE
+1058E; C; 105B5; # VITHKUQI CAPITAL LETTER TE
+1058F; C; 105B6; # VITHKUQI CAPITAL LETTER THE
+10590; C; 105B7; # VITHKUQI CAPITAL LETTER U
+10591; C; 105B8; # VITHKUQI CAPITAL LETTER VE
+10592; C; 105B9; # VITHKUQI CAPITAL LETTER XE
+10594; C; 105BB; # VITHKUQI CAPITAL LETTER Y
+10595; C; 105BC; # VITHKUQI CAPITAL LETTER ZE
10C80; C; 10CC0; # OLD HUNGARIAN CAPITAL LETTER A
10C81; C; 10CC1; # OLD HUNGARIAN CAPITAL LETTER AA
10C82; C; 10CC2; # OLD HUNGARIAN CAPITAL LETTER EB
diff --git a/util/unicode/data/DerivedAge.txt b/util/unicode/data/DerivedAge.txt
index 0d2bd10f8d..4cfdd54de7 100644
--- a/util/unicode/data/DerivedAge.txt
+++ b/util/unicode/data/DerivedAge.txt
@@ -1,11 +1,11 @@
-# DerivedAge-13.0.0.txt
-# Date: 2019-09-08, 23:30:59 GMT
-# © 2019 Unicode®, Inc.
+# DerivedAge-15.1.0.txt
+# Date: 2023-07-28, 23:33:51 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Unicode Character Database: Derived Property Data
# This file shows when various code points were first assigned in Unicode.
@@ -40,7 +40,7 @@
# an expression such as "\p{age=3.0}" matches all of the code points
# assigned in Version 3.0--that is, all the code points with a value
# less than or equal to 3.0 for the Age property.
-# For more information, see [http://www.unicode.org/reports/tr18/].
+# For more information, see [https://www.unicode.org/reports/tr18/].
# All code points not explicitly listed for Age
# have the value Unassigned (NA).
@@ -1862,4 +1862,145 @@ AB68..AB6B ; 13.0 # [4] LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE..MODI
# Total code points: 5930
+# ================================================
+
+# Age=V14_0
+
+# Newly assigned in Unicode 14.0.0 (September, 2021)
+
+061D ; 14.0 # ARABIC END OF TEXT MARK
+0870..088E ; 14.0 # [31] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC VERTICAL TAIL
+0890..0891 ; 14.0 # [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+0898..089F ; 14.0 # [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08B5 ; 14.0 # ARABIC LETTER QAF WITH DOT BELOW AND NO DOTS ABOVE
+08C8..08D2 ; 14.0 # [11] ARABIC LETTER GRAF..ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW
+0C3C ; 14.0 # TELUGU SIGN NUKTA
+0C5D ; 14.0 # TELUGU LETTER NAKAARA POLLU
+0CDD ; 14.0 # KANNADA LETTER NAKAARA POLLU
+170D ; 14.0 # TAGALOG LETTER RA
+1715 ; 14.0 # TAGALOG SIGN PAMUDPOD
+171F ; 14.0 # TAGALOG LETTER ARCHAIC RA
+180F ; 14.0 # MONGOLIAN FREE VARIATION SELECTOR FOUR
+1AC1..1ACE ; 14.0 # [14] COMBINING LEFT PARENTHESIS ABOVE LEFT..COMBINING LATIN SMALL LETTER INSULAR T
+1B4C ; 14.0 # BALINESE LETTER ARCHAIC JNYA
+1B7D..1B7E ; 14.0 # [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
+1DFA ; 14.0 # COMBINING DOT BELOW LEFT
+20C0 ; 14.0 # SOM SIGN
+2C2F ; 14.0 # GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
+2C5F ; 14.0 # GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
+2E53..2E5D ; 14.0 # [11] MEDIEVAL EXCLAMATION MARK..OBLIQUE HYPHEN
+9FFD..9FFF ; 14.0 # [3] CJK UNIFIED IDEOGRAPH-9FFD..CJK UNIFIED IDEOGRAPH-9FFF
+A7C0..A7C1 ; 14.0 # [2] LATIN CAPITAL LETTER OLD POLISH O..LATIN SMALL LETTER OLD POLISH O
+A7D0..A7D1 ; 14.0 # [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
+A7D3 ; 14.0 # LATIN SMALL LETTER DOUBLE THORN
+A7D5..A7D9 ; 14.0 # [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4 ; 14.0 # [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
+FBC2 ; 14.0 # ARABIC SYMBOL WASLA ABOVE
+FD40..FD4F ; 14.0 # [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
+FDCF ; 14.0 # ARABIC LIGATURE SALAAMUHU ALAYNAA
+FDFE..FDFF ; 14.0 # [2] ARABIC LIGATURE SUBHAANAHU WA TAAALAA..ARABIC LIGATURE AZZA WA JALL
+10570..1057A ; 14.0 # [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+1057C..1058A ; 14.0 # [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+1058C..10592 ; 14.0 # [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+10594..10595 ; 14.0 # [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
+10597..105A1 ; 14.0 # [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+105A3..105B1 ; 14.0 # [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+105B3..105B9 ; 14.0 # [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+105BB..105BC ; 14.0 # [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+10780..10785 ; 14.0 # [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; 14.0 # [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; 14.0 # [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+10F70..10F89 ; 14.0 # [26] OLD UYGHUR LETTER ALEPH..OLD UYGHUR PUNCTUATION FOUR DOTS
+11070..11075 ; 14.0 # [6] BRAHMI SIGN OLD TAMIL VIRAMA..BRAHMI LETTER OLD TAMIL LLA
+110C2 ; 14.0 # KAITHI VOWEL SIGN VOCALIC R
+116B9 ; 14.0 # TAKRI ABBREVIATION SIGN
+11740..11746 ; 14.0 # [7] AHOM LETTER CA..AHOM LETTER LLA
+11AB0..11ABF ; 14.0 # [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
+12F90..12FF2 ; 14.0 # [99] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM302
+16A70..16ABE ; 14.0 # [79] TANGSA LETTER OZ..TANGSA LETTER ZA
+16AC0..16AC9 ; 14.0 # [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
+1AFF0..1AFF3 ; 14.0 # [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF5..1AFFB ; 14.0 # [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFD..1AFFE ; 14.0 # [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1B11F..1B122 ; 14.0 # [4] HIRAGANA LETTER ARCHAIC WU..KATAKANA LETTER ARCHAIC WU
+1CF00..1CF2D ; 14.0 # [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; 14.0 # [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+1CF50..1CFC3 ; 14.0 # [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
+1D1E9..1D1EA ; 14.0 # [2] MUSICAL SYMBOL SORI..MUSICAL SYMBOL KORON
+1DF00..1DF1E ; 14.0 # [31] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER S WITH CURL
+1E290..1E2AE ; 14.0 # [31] TOTO LETTER PA..TOTO SIGN RISING TONE
+1E7E0..1E7E6 ; 14.0 # [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E8..1E7EB ; 14.0 # [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7ED..1E7EE ; 14.0 # [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7F0..1E7FE ; 14.0 # [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
+1F6DD..1F6DF ; 14.0 # [3] PLAYGROUND SLIDE..RING BUOY
+1F7F0 ; 14.0 # HEAVY EQUALS SIGN
+1F979 ; 14.0 # FACE HOLDING BACK TEARS
+1F9CC ; 14.0 # TROLL
+1FA7B..1FA7C ; 14.0 # [2] X-RAY..CRUTCH
+1FAA9..1FAAC ; 14.0 # [4] MIRROR BALL..HAMSA
+1FAB7..1FABA ; 14.0 # [4] LOTUS..NEST WITH EGGS
+1FAC3..1FAC5 ; 14.0 # [3] PREGNANT MAN..PERSON WITH CROWN
+1FAD7..1FAD9 ; 14.0 # [3] POURING LIQUID..JAR
+1FAE0..1FAE7 ; 14.0 # [8] MELTING FACE..BUBBLES
+1FAF0..1FAF6 ; 14.0 # [7] HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+2A6DE..2A6DF ; 14.0 # [2] CJK UNIFIED IDEOGRAPH-2A6DE..CJK UNIFIED IDEOGRAPH-2A6DF
+2B735..2B738 ; 14.0 # [4] CJK UNIFIED IDEOGRAPH-2B735..CJK UNIFIED IDEOGRAPH-2B738
+
+# Total code points: 838
+
+# ================================================
+
+# Age=V15_0
+
+# Newly assigned in Unicode 15.0.0 (September, 2022)
+
+0CF3 ; 15.0 # KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+0ECE ; 15.0 # LAO YAMAKKAN
+10EFD..10EFF ; 15.0 # [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
+1123F..11241 ; 15.0 # [3] KHOJKI LETTER QA..KHOJKI VOWEL SIGN VOCALIC R
+11B00..11B09 ; 15.0 # [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+11F00..11F10 ; 15.0 # [17] KAWI SIGN CANDRABINDU..KAWI LETTER O
+11F12..11F3A ; 15.0 # [41] KAWI LETTER KA..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F59 ; 15.0 # [28] KAWI VOWEL SIGN E..KAWI DIGIT NINE
+1342F ; 15.0 # EGYPTIAN HIEROGLYPH V011D
+13439..1343F ; 15.0 # [7] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440..13455 ; 15.0 # [22] EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+1B132 ; 15.0 # HIRAGANA LETTER SMALL KO
+1B155 ; 15.0 # KATAKANA LETTER SMALL KO
+1D2C0..1D2D3 ; 15.0 # [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
+1DF25..1DF2A ; 15.0 # [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D ; 15.0 # [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F ; 15.0 # COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E4D0..1E4F9 ; 15.0 # [42] NAG MUNDARI LETTER O..NAG MUNDARI DIGIT NINE
+1F6DC ; 15.0 # WIRELESS
+1F774..1F776 ; 15.0 # [3] LOT OF FORTUNE..LUNAR ECLIPSE
+1F77B..1F77F ; 15.0 # [5] HAUMEA..ORCUS
+1F7D9 ; 15.0 # NINE POINTED WHITE STAR
+1FA75..1FA77 ; 15.0 # [3] LIGHT BLUE HEART..PINK HEART
+1FA87..1FA88 ; 15.0 # [2] MARACAS..FLUTE
+1FAAD..1FAAF ; 15.0 # [3] FOLDING HAND FAN..KHANDA
+1FABB..1FABD ; 15.0 # [3] HYACINTH..WING
+1FABF ; 15.0 # GOOSE
+1FACE..1FACF ; 15.0 # [2] MOOSE..DONKEY
+1FADA..1FADB ; 15.0 # [2] GINGER ROOT..PEA POD
+1FAE8 ; 15.0 # SHAKING FACE
+1FAF7..1FAF8 ; 15.0 # [2] LEFTWARDS PUSHING HAND..RIGHTWARDS PUSHING HAND
+2B739 ; 15.0 # CJK UNIFIED IDEOGRAPH-2B739
+31350..323AF ; 15.0 # [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+
+# Total code points: 4489
+
+# ================================================
+
+# Age=V15_1
+
+# Newly assigned in Unicode 15.1.0 (September, 2023)
+
+2FFC..2FFF ; 15.1 # [4] IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
+31EF ; 15.1 # IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
+2EBF0..2EE5D ; 15.1 # [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
+
+# Total code points: 627
+
# EOF
diff --git a/util/unicode/data/DerivedNormalizationProps.txt b/util/unicode/data/DerivedNormalizationProps.txt
index 00a25f0e7e..7f8edd6e07 100644
--- a/util/unicode/data/DerivedNormalizationProps.txt
+++ b/util/unicode/data/DerivedNormalizationProps.txt
@@ -1,11 +1,11 @@
-# DerivedNormalizationProps-13.0.0.txt
-# Date: 2019-09-08, 23:31:08 GMT
-# © 2019 Unicode®, Inc.
+# DerivedNormalizationProps-15.1.0.txt
+# Date: 2023-05-02, 13:20:58 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
@@ -132,6 +132,9 @@
33DD ; FC_NFKC; 0077 0062 # So SQUARE WB
33DE ; FC_NFKC; 0076 2215 006D # So SQUARE V OVER M
33DF ; FC_NFKC; 0061 2215 006D # So SQUARE A OVER M
+A7F2 ; FC_NFKC; 0063 # Lm MODIFIER LETTER CAPITAL C
+A7F3 ; FC_NFKC; 0066 # Lm MODIFIER LETTER CAPITAL F
+A7F4 ; FC_NFKC; 0071 # Lm MODIFIER LETTER CAPITAL Q
A7F8 ; FC_NFKC; 0127 # Lm MODIFIER LETTER CAPITAL H WITH STROKE
1D400 ; FC_NFKC; 0061 # L& MATHEMATICAL BOLD CAPITAL A
1D401 ; FC_NFKC; 0062 # L& MATHEMATICAL BOLD CAPITAL B
@@ -650,7 +653,7 @@ A7F8 ; FC_NFKC; 0127 # Lm MODIFIER LETTER CAPITAL H WITH STROKE
1F16C ; FC_NFKC; 006D 0072 # So RAISED MR SIGN
1F190 ; FC_NFKC; 0064 006A # So SQUARE DJ
-# Total code points: 634
+# Total code points: 637
# ================================================
@@ -1469,6 +1472,7 @@ FB46..FB4E ; NFC_QC; N # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET
32C0..33FF ; NFKD_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
A69C..A69D ; NFKD_QC; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A770 ; NFKD_QC; N # Lm MODIFIER LETTER US
+A7F2..A7F4 ; NFKD_QC; N # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
A7F8..A7F9 ; NFKD_QC; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
AB5C..AB5F ; NFKD_QC; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
AB69 ; NFKD_QC; N # Lm MODIFIER LETTER SMALL TURNED W
@@ -1593,6 +1597,9 @@ FFE5..FFE6 ; NFKD_QC; N # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
FFE8 ; NFKD_QC; N # So HALFWIDTH FORMS LIGHT VERTICAL
FFE9..FFEC ; NFKD_QC; N # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+10781..10785 ; NFKD_QC; N # Lm [5] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; NFKD_QC; N # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; NFKD_QC; N # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
1109A ; NFKD_QC; N # Lo KAITHI LETTER DDDHA
1109C ; NFKD_QC; N # Lo KAITHI LETTER RHA
110AB ; NFKD_QC; N # Lo KAITHI LETTER VA
@@ -1645,6 +1652,7 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
1D7C3 ; NFKD_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
1D7C4..1D7CB ; NFKD_QC; N # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
1D7CE..1D7FF ; NFKD_QC; N # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E030..1E06D ; NFKD_QC; N # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1EE00..1EE03 ; NFKD_QC; N # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; NFKD_QC; N # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; NFKD_QC; N # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -1690,7 +1698,7 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
1FBF0..1FBF9 ; NFKD_QC; N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
2F800..2FA1D ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 16908
+# Total code points: 17029
# ================================================
@@ -1883,6 +1891,7 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
32C0..33FF ; NFKC_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
A69C..A69D ; NFKC_QC; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A770 ; NFKC_QC; N # Lm MODIFIER LETTER US
+A7F2..A7F4 ; NFKC_QC; N # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
A7F8..A7F9 ; NFKC_QC; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
AB5C..AB5F ; NFKC_QC; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
AB69 ; NFKC_QC; N # Lm MODIFIER LETTER SMALL TURNED W
@@ -2006,6 +2015,9 @@ FFE5..FFE6 ; NFKC_QC; N # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
FFE8 ; NFKC_QC; N # So HALFWIDTH FORMS LIGHT VERTICAL
FFE9..FFEC ; NFKC_QC; N # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
FFED..FFEE ; NFKC_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+10781..10785 ; NFKC_QC; N # Lm [5] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; NFKC_QC; N # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; NFKC_QC; N # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
1D15E..1D164 ; NFKC_QC; N # So [7] MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
1D1BB..1D1C0 ; NFKC_QC; N # So [6] MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
1D400..1D454 ; NFKC_QC; N # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
@@ -2049,6 +2061,7 @@ FFED..FFEE ; NFKC_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
1D7C3 ; NFKC_QC; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
1D7C4..1D7CB ; NFKC_QC; N # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
1D7CE..1D7FF ; NFKC_QC; N # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E030..1E06D ; NFKC_QC; N # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1EE00..1EE03 ; NFKC_QC; N # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; NFKC_QC; N # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; NFKC_QC; N # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -2094,7 +2107,7 @@ FFED..FFEE ; NFKC_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI
1FBF0..1FBF9 ; NFKC_QC; N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
2F800..2FA1D ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-# Total code points: 4807
+# Total code points: 4928
# ================================================
@@ -2889,12 +2902,12 @@ FFE3 ; Expands_On_NFKC # Sk FULLWIDTH MACRON
# It is constructed by applying NFKC, CaseFolding, and removal of Default_Ignorable_Code_Points.
# The process of applying these transformations is repeated until a stable result is produced.
# WARNING: Application to STRINGS must apply NFC after mapping each character, because characters may interact.
-# For more information, see [http://www.unicode.org/reports/tr44/]
+# For more information, see [https://www.unicode.org/reports/tr44/]
# Omitted code points are unchanged by this mapping.
# @missing: 0000..10FFFF; NFKC_CF; <code point>
# All code points not explicitly listed for NFKC_Casefold
-# have the value <codepoint>.
+# have the value <code point>.
0041 ; NFKC_CF; 0061 # L& LATIN CAPITAL LETTER A
0042 ; NFKC_CF; 0062 # L& LATIN CAPITAL LETTER B
@@ -3523,6 +3536,7 @@ FFE3 ; Expands_On_NFKC # Sk FULLWIDTH MACRON
17B4..17B5 ; NFKC_CF; # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
180B..180D ; NFKC_CF; # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180E ; NFKC_CF; # Cf MONGOLIAN VOWEL SEPARATOR
+180F ; NFKC_CF; # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1C80 ; NFKC_CF; 0432 # L& CYRILLIC SMALL LETTER ROUNDED VE
1C81 ; NFKC_CF; 0434 # L& CYRILLIC SMALL LETTER LONG-LEGGED DE
1C82 ; NFKC_CF; 043E # L& CYRILLIC SMALL LETTER NARROW O
@@ -4318,6 +4332,7 @@ FFE3 ; Expands_On_NFKC # Sk FULLWIDTH MACRON
2C2C ; NFKC_CF; 2C5C # L& GLAGOLITIC CAPITAL LETTER SHTAPIC
2C2D ; NFKC_CF; 2C5D # L& GLAGOLITIC CAPITAL LETTER TROKUTASTI A
2C2E ; NFKC_CF; 2C5E # L& GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C2F ; NFKC_CF; 2C5F # L& GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
2C60 ; NFKC_CF; 2C61 # L& LATIN CAPITAL LETTER L WITH DOUBLE BAR
2C62 ; NFKC_CF; 026B # L& LATIN CAPITAL LETTER L WITH MIDDLE TILDE
2C63 ; NFKC_CF; 1D7D # L& LATIN CAPITAL LETTER P WITH STROKE
@@ -5339,12 +5354,19 @@ A7B8 ; NFKC_CF; A7B9 # L& LATIN CAPITAL LETTER U WITH S
A7BA ; NFKC_CF; A7BB # L& LATIN CAPITAL LETTER GLOTTAL A
A7BC ; NFKC_CF; A7BD # L& LATIN CAPITAL LETTER GLOTTAL I
A7BE ; NFKC_CF; A7BF # L& LATIN CAPITAL LETTER GLOTTAL U
+A7C0 ; NFKC_CF; A7C1 # L& LATIN CAPITAL LETTER OLD POLISH O
A7C2 ; NFKC_CF; A7C3 # L& LATIN CAPITAL LETTER ANGLICANA W
A7C4 ; NFKC_CF; A794 # L& LATIN CAPITAL LETTER C WITH PALATAL HOOK
A7C5 ; NFKC_CF; 0282 # L& LATIN CAPITAL LETTER S WITH HOOK
A7C6 ; NFKC_CF; 1D8E # L& LATIN CAPITAL LETTER Z WITH PALATAL HOOK
A7C7 ; NFKC_CF; A7C8 # L& LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
A7C9 ; NFKC_CF; A7CA # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+A7D0 ; NFKC_CF; A7D1 # L& LATIN CAPITAL LETTER CLOSED INSULAR G
+A7D6 ; NFKC_CF; A7D7 # L& LATIN CAPITAL LETTER MIDDLE SCOTS S
+A7D8 ; NFKC_CF; A7D9 # L& LATIN CAPITAL LETTER SIGMOID S
+A7F2 ; NFKC_CF; 0063 # Lm MODIFIER LETTER CAPITAL C
+A7F3 ; NFKC_CF; 0066 # Lm MODIFIER LETTER CAPITAL F
+A7F4 ; NFKC_CF; 0071 # Lm MODIFIER LETTER CAPITAL Q
A7F5 ; NFKC_CF; A7F6 # L& LATIN CAPITAL LETTER REVERSED HALF H
A7F8 ; NFKC_CF; 0127 # Lm MODIFIER LETTER CAPITAL H WITH STROKE
A7F9 ; NFKC_CF; 0153 # Lm MODIFIER LETTER SMALL LIGATURE OE
@@ -6845,6 +6867,97 @@ FFF0..FFF8 ; NFKC_CF; # Cn [9] <reserved-FFF0>..<reserved-FF
104D1 ; NFKC_CF; 104F9 # L& OSAGE CAPITAL LETTER GHA
104D2 ; NFKC_CF; 104FA # L& OSAGE CAPITAL LETTER ZA
104D3 ; NFKC_CF; 104FB # L& OSAGE CAPITAL LETTER ZHA
+10570 ; NFKC_CF; 10597 # L& VITHKUQI CAPITAL LETTER A
+10571 ; NFKC_CF; 10598 # L& VITHKUQI CAPITAL LETTER BBE
+10572 ; NFKC_CF; 10599 # L& VITHKUQI CAPITAL LETTER BE
+10573 ; NFKC_CF; 1059A # L& VITHKUQI CAPITAL LETTER CE
+10574 ; NFKC_CF; 1059B # L& VITHKUQI CAPITAL LETTER CHE
+10575 ; NFKC_CF; 1059C # L& VITHKUQI CAPITAL LETTER DE
+10576 ; NFKC_CF; 1059D # L& VITHKUQI CAPITAL LETTER DHE
+10577 ; NFKC_CF; 1059E # L& VITHKUQI CAPITAL LETTER EI
+10578 ; NFKC_CF; 1059F # L& VITHKUQI CAPITAL LETTER E
+10579 ; NFKC_CF; 105A0 # L& VITHKUQI CAPITAL LETTER FE
+1057A ; NFKC_CF; 105A1 # L& VITHKUQI CAPITAL LETTER GA
+1057C ; NFKC_CF; 105A3 # L& VITHKUQI CAPITAL LETTER HA
+1057D ; NFKC_CF; 105A4 # L& VITHKUQI CAPITAL LETTER HHA
+1057E ; NFKC_CF; 105A5 # L& VITHKUQI CAPITAL LETTER I
+1057F ; NFKC_CF; 105A6 # L& VITHKUQI CAPITAL LETTER IJE
+10580 ; NFKC_CF; 105A7 # L& VITHKUQI CAPITAL LETTER JE
+10581 ; NFKC_CF; 105A8 # L& VITHKUQI CAPITAL LETTER KA
+10582 ; NFKC_CF; 105A9 # L& VITHKUQI CAPITAL LETTER LA
+10583 ; NFKC_CF; 105AA # L& VITHKUQI CAPITAL LETTER LLA
+10584 ; NFKC_CF; 105AB # L& VITHKUQI CAPITAL LETTER ME
+10585 ; NFKC_CF; 105AC # L& VITHKUQI CAPITAL LETTER NE
+10586 ; NFKC_CF; 105AD # L& VITHKUQI CAPITAL LETTER NJE
+10587 ; NFKC_CF; 105AE # L& VITHKUQI CAPITAL LETTER O
+10588 ; NFKC_CF; 105AF # L& VITHKUQI CAPITAL LETTER PE
+10589 ; NFKC_CF; 105B0 # L& VITHKUQI CAPITAL LETTER QA
+1058A ; NFKC_CF; 105B1 # L& VITHKUQI CAPITAL LETTER RE
+1058C ; NFKC_CF; 105B3 # L& VITHKUQI CAPITAL LETTER SE
+1058D ; NFKC_CF; 105B4 # L& VITHKUQI CAPITAL LETTER SHE
+1058E ; NFKC_CF; 105B5 # L& VITHKUQI CAPITAL LETTER TE
+1058F ; NFKC_CF; 105B6 # L& VITHKUQI CAPITAL LETTER THE
+10590 ; NFKC_CF; 105B7 # L& VITHKUQI CAPITAL LETTER U
+10591 ; NFKC_CF; 105B8 # L& VITHKUQI CAPITAL LETTER VE
+10592 ; NFKC_CF; 105B9 # L& VITHKUQI CAPITAL LETTER XE
+10594 ; NFKC_CF; 105BB # L& VITHKUQI CAPITAL LETTER Y
+10595 ; NFKC_CF; 105BC # L& VITHKUQI CAPITAL LETTER ZE
+10781 ; NFKC_CF; 02D0 # Lm MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON
+10782 ; NFKC_CF; 02D1 # Lm MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
+10783 ; NFKC_CF; 00E6 # Lm MODIFIER LETTER SMALL AE
+10784 ; NFKC_CF; 0299 # Lm MODIFIER LETTER SMALL CAPITAL B
+10785 ; NFKC_CF; 0253 # Lm MODIFIER LETTER SMALL B WITH HOOK
+10787 ; NFKC_CF; 02A3 # Lm MODIFIER LETTER SMALL DZ DIGRAPH
+10788 ; NFKC_CF; AB66 # Lm MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK
+10789 ; NFKC_CF; 02A5 # Lm MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL
+1078A ; NFKC_CF; 02A4 # Lm MODIFIER LETTER SMALL DEZH DIGRAPH
+1078B ; NFKC_CF; 0256 # Lm MODIFIER LETTER SMALL D WITH TAIL
+1078C ; NFKC_CF; 0257 # Lm MODIFIER LETTER SMALL D WITH HOOK
+1078D ; NFKC_CF; 1D91 # Lm MODIFIER LETTER SMALL D WITH HOOK AND TAIL
+1078E ; NFKC_CF; 0258 # Lm MODIFIER LETTER SMALL REVERSED E
+1078F ; NFKC_CF; 025E # Lm MODIFIER LETTER SMALL CLOSED REVERSED OPEN E
+10790 ; NFKC_CF; 02A9 # Lm MODIFIER LETTER SMALL FENG DIGRAPH
+10791 ; NFKC_CF; 0264 # Lm MODIFIER LETTER SMALL RAMS HORN
+10792 ; NFKC_CF; 0262 # Lm MODIFIER LETTER SMALL CAPITAL G
+10793 ; NFKC_CF; 0260 # Lm MODIFIER LETTER SMALL G WITH HOOK
+10794 ; NFKC_CF; 029B # Lm MODIFIER LETTER SMALL CAPITAL G WITH HOOK
+10795 ; NFKC_CF; 0127 # Lm MODIFIER LETTER SMALL H WITH STROKE
+10796 ; NFKC_CF; 029C # Lm MODIFIER LETTER SMALL CAPITAL H
+10797 ; NFKC_CF; 0267 # Lm MODIFIER LETTER SMALL HENG WITH HOOK
+10798 ; NFKC_CF; 0284 # Lm MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK
+10799 ; NFKC_CF; 02AA # Lm MODIFIER LETTER SMALL LS DIGRAPH
+1079A ; NFKC_CF; 02AB # Lm MODIFIER LETTER SMALL LZ DIGRAPH
+1079B ; NFKC_CF; 026C # Lm MODIFIER LETTER SMALL L WITH BELT
+1079C ; NFKC_CF; 1DF04 # Lm MODIFIER LETTER SMALL CAPITAL L WITH BELT
+1079D ; NFKC_CF; A78E # Lm MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT
+1079E ; NFKC_CF; 026E # Lm MODIFIER LETTER SMALL LEZH
+1079F ; NFKC_CF; 1DF05 # Lm MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK
+107A0 ; NFKC_CF; 028E # Lm MODIFIER LETTER SMALL TURNED Y
+107A1 ; NFKC_CF; 1DF06 # Lm MODIFIER LETTER SMALL TURNED Y WITH BELT
+107A2 ; NFKC_CF; 00F8 # Lm MODIFIER LETTER SMALL O WITH STROKE
+107A3 ; NFKC_CF; 0276 # Lm MODIFIER LETTER SMALL CAPITAL OE
+107A4 ; NFKC_CF; 0277 # Lm MODIFIER LETTER SMALL CLOSED OMEGA
+107A5 ; NFKC_CF; 0071 # Lm MODIFIER LETTER SMALL Q
+107A6 ; NFKC_CF; 027A # Lm MODIFIER LETTER SMALL TURNED R WITH LONG LEG
+107A7 ; NFKC_CF; 1DF08 # Lm MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK
+107A8 ; NFKC_CF; 027D # Lm MODIFIER LETTER SMALL R WITH TAIL
+107A9 ; NFKC_CF; 027E # Lm MODIFIER LETTER SMALL R WITH FISHHOOK
+107AA ; NFKC_CF; 0280 # Lm MODIFIER LETTER SMALL CAPITAL R
+107AB ; NFKC_CF; 02A8 # Lm MODIFIER LETTER SMALL TC DIGRAPH WITH CURL
+107AC ; NFKC_CF; 02A6 # Lm MODIFIER LETTER SMALL TS DIGRAPH
+107AD ; NFKC_CF; AB67 # Lm MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK
+107AE ; NFKC_CF; 02A7 # Lm MODIFIER LETTER SMALL TESH DIGRAPH
+107AF ; NFKC_CF; 0288 # Lm MODIFIER LETTER SMALL T WITH RETROFLEX HOOK
+107B0 ; NFKC_CF; 2C71 # Lm MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2 ; NFKC_CF; 028F # Lm MODIFIER LETTER SMALL CAPITAL Y
+107B3 ; NFKC_CF; 02A1 # Lm MODIFIER LETTER GLOTTAL STOP WITH STROKE
+107B4 ; NFKC_CF; 02A2 # Lm MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE
+107B5 ; NFKC_CF; 0298 # Lm MODIFIER LETTER BILABIAL CLICK
+107B6 ; NFKC_CF; 01C0 # Lm MODIFIER LETTER DENTAL CLICK
+107B7 ; NFKC_CF; 01C1 # Lm MODIFIER LETTER LATERAL CLICK
+107B8 ; NFKC_CF; 01C2 # Lm MODIFIER LETTER ALVEOLAR CLICK
+107B9 ; NFKC_CF; 1DF0A # Lm MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+107BA ; NFKC_CF; 1DF1E # Lm MODIFIER LETTER SMALL S WITH CURL
10C80 ; NFKC_CF; 10CC0 # L& OLD HUNGARIAN CAPITAL LETTER A
10C81 ; NFKC_CF; 10CC1 # L& OLD HUNGARIAN CAPITAL LETTER AA
10C82 ; NFKC_CF; 10CC2 # L& OLD HUNGARIAN CAPITAL LETTER EB
@@ -7965,6 +8078,68 @@ FFF0..FFF8 ; NFKC_CF; # Cn [9] <reserved-FFF0>..<reserved-FF
1D7FD ; NFKC_CF; 0037 # Nd MATHEMATICAL MONOSPACE DIGIT SEVEN
1D7FE ; NFKC_CF; 0038 # Nd MATHEMATICAL MONOSPACE DIGIT EIGHT
1D7FF ; NFKC_CF; 0039 # Nd MATHEMATICAL MONOSPACE DIGIT NINE
+1E030 ; NFKC_CF; 0430 # Lm MODIFIER LETTER CYRILLIC SMALL A
+1E031 ; NFKC_CF; 0431 # Lm MODIFIER LETTER CYRILLIC SMALL BE
+1E032 ; NFKC_CF; 0432 # Lm MODIFIER LETTER CYRILLIC SMALL VE
+1E033 ; NFKC_CF; 0433 # Lm MODIFIER LETTER CYRILLIC SMALL GHE
+1E034 ; NFKC_CF; 0434 # Lm MODIFIER LETTER CYRILLIC SMALL DE
+1E035 ; NFKC_CF; 0435 # Lm MODIFIER LETTER CYRILLIC SMALL IE
+1E036 ; NFKC_CF; 0436 # Lm MODIFIER LETTER CYRILLIC SMALL ZHE
+1E037 ; NFKC_CF; 0437 # Lm MODIFIER LETTER CYRILLIC SMALL ZE
+1E038 ; NFKC_CF; 0438 # Lm MODIFIER LETTER CYRILLIC SMALL I
+1E039 ; NFKC_CF; 043A # Lm MODIFIER LETTER CYRILLIC SMALL KA
+1E03A ; NFKC_CF; 043B # Lm MODIFIER LETTER CYRILLIC SMALL EL
+1E03B ; NFKC_CF; 043C # Lm MODIFIER LETTER CYRILLIC SMALL EM
+1E03C ; NFKC_CF; 043E # Lm MODIFIER LETTER CYRILLIC SMALL O
+1E03D ; NFKC_CF; 043F # Lm MODIFIER LETTER CYRILLIC SMALL PE
+1E03E ; NFKC_CF; 0440 # Lm MODIFIER LETTER CYRILLIC SMALL ER
+1E03F ; NFKC_CF; 0441 # Lm MODIFIER LETTER CYRILLIC SMALL ES
+1E040 ; NFKC_CF; 0442 # Lm MODIFIER LETTER CYRILLIC SMALL TE
+1E041 ; NFKC_CF; 0443 # Lm MODIFIER LETTER CYRILLIC SMALL U
+1E042 ; NFKC_CF; 0444 # Lm MODIFIER LETTER CYRILLIC SMALL EF
+1E043 ; NFKC_CF; 0445 # Lm MODIFIER LETTER CYRILLIC SMALL HA
+1E044 ; NFKC_CF; 0446 # Lm MODIFIER LETTER CYRILLIC SMALL TSE
+1E045 ; NFKC_CF; 0447 # Lm MODIFIER LETTER CYRILLIC SMALL CHE
+1E046 ; NFKC_CF; 0448 # Lm MODIFIER LETTER CYRILLIC SMALL SHA
+1E047 ; NFKC_CF; 044B # Lm MODIFIER LETTER CYRILLIC SMALL YERU
+1E048 ; NFKC_CF; 044D # Lm MODIFIER LETTER CYRILLIC SMALL E
+1E049 ; NFKC_CF; 044E # Lm MODIFIER LETTER CYRILLIC SMALL YU
+1E04A ; NFKC_CF; A689 # Lm MODIFIER LETTER CYRILLIC SMALL DZZE
+1E04B ; NFKC_CF; 04D9 # Lm MODIFIER LETTER CYRILLIC SMALL SCHWA
+1E04C ; NFKC_CF; 0456 # Lm MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+1E04D ; NFKC_CF; 0458 # Lm MODIFIER LETTER CYRILLIC SMALL JE
+1E04E ; NFKC_CF; 04E9 # Lm MODIFIER LETTER CYRILLIC SMALL BARRED O
+1E04F ; NFKC_CF; 04AF # Lm MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+1E050 ; NFKC_CF; 04CF # Lm MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+1E051 ; NFKC_CF; 0430 # Lm CYRILLIC SUBSCRIPT SMALL LETTER A
+1E052 ; NFKC_CF; 0431 # Lm CYRILLIC SUBSCRIPT SMALL LETTER BE
+1E053 ; NFKC_CF; 0432 # Lm CYRILLIC SUBSCRIPT SMALL LETTER VE
+1E054 ; NFKC_CF; 0433 # Lm CYRILLIC SUBSCRIPT SMALL LETTER GHE
+1E055 ; NFKC_CF; 0434 # Lm CYRILLIC SUBSCRIPT SMALL LETTER DE
+1E056 ; NFKC_CF; 0435 # Lm CYRILLIC SUBSCRIPT SMALL LETTER IE
+1E057 ; NFKC_CF; 0436 # Lm CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+1E058 ; NFKC_CF; 0437 # Lm CYRILLIC SUBSCRIPT SMALL LETTER ZE
+1E059 ; NFKC_CF; 0438 # Lm CYRILLIC SUBSCRIPT SMALL LETTER I
+1E05A ; NFKC_CF; 043A # Lm CYRILLIC SUBSCRIPT SMALL LETTER KA
+1E05B ; NFKC_CF; 043B # Lm CYRILLIC SUBSCRIPT SMALL LETTER EL
+1E05C ; NFKC_CF; 043E # Lm CYRILLIC SUBSCRIPT SMALL LETTER O
+1E05D ; NFKC_CF; 043F # Lm CYRILLIC SUBSCRIPT SMALL LETTER PE
+1E05E ; NFKC_CF; 0441 # Lm CYRILLIC SUBSCRIPT SMALL LETTER ES
+1E05F ; NFKC_CF; 0443 # Lm CYRILLIC SUBSCRIPT SMALL LETTER U
+1E060 ; NFKC_CF; 0444 # Lm CYRILLIC SUBSCRIPT SMALL LETTER EF
+1E061 ; NFKC_CF; 0445 # Lm CYRILLIC SUBSCRIPT SMALL LETTER HA
+1E062 ; NFKC_CF; 0446 # Lm CYRILLIC SUBSCRIPT SMALL LETTER TSE
+1E063 ; NFKC_CF; 0447 # Lm CYRILLIC SUBSCRIPT SMALL LETTER CHE
+1E064 ; NFKC_CF; 0448 # Lm CYRILLIC SUBSCRIPT SMALL LETTER SHA
+1E065 ; NFKC_CF; 044A # Lm CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+1E066 ; NFKC_CF; 044B # Lm CYRILLIC SUBSCRIPT SMALL LETTER YERU
+1E067 ; NFKC_CF; 0491 # Lm CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+1E068 ; NFKC_CF; 0456 # Lm CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E069 ; NFKC_CF; 0455 # Lm CYRILLIC SUBSCRIPT SMALL LETTER DZE
+1E06A ; NFKC_CF; 045F # Lm CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+1E06B ; NFKC_CF; 04AB # Lm MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+1E06C ; NFKC_CF; A651 # Lm MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+1E06D ; NFKC_CF; 04B1 # Lm MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E900 ; NFKC_CF; 1E922 # L& ADLAM CAPITAL LETTER ALIF
1E901 ; NFKC_CF; 1E923 # L& ADLAM CAPITAL LETTER DAALI
1E902 ; NFKC_CF; 1E924 # L& ADLAM CAPITAL LETTER LAAM
@@ -8826,7 +9001,6078 @@ E0080..E00FF ; NFKC_CF; # Cn [128] <reserved-E0080>..<reserved-E
E0100..E01EF ; NFKC_CF; # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
E01F0..E0FFF ; NFKC_CF; # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
-# Total code points: 10329
+# Total code points: 10491
+
+# ================================================
+
+# Derived Property: NFKC_Simple_Casefold (NFKC_SCF)
+# This property removes certain variations from characters: case, compatibility, and default-ignorables.
+# It is used for loose matching and certain types of identifiers.
+# It is constructed by applying NFKC, simple CaseFolding, and removal of Default_Ignorable_Code_Points.
+# The process of applying these transformations is repeated until a stable result is produced.
+# WARNING: Application to STRINGS must apply NFC after mapping each character, because characters may interact.
+# For more information, see [https://www.unicode.org/reports/tr44/]
+# Omitted code points are unchanged by this mapping.
+# @missing: 0000..10FFFF; NFKC_SCF; <code point>
+
+# All code points not explicitly listed for NFKC_Simple_Casefold
+# have the value <code point>.
+
+0041 ; NFKC_SCF; 0061 # L& LATIN CAPITAL LETTER A
+0042 ; NFKC_SCF; 0062 # L& LATIN CAPITAL LETTER B
+0043 ; NFKC_SCF; 0063 # L& LATIN CAPITAL LETTER C
+0044 ; NFKC_SCF; 0064 # L& LATIN CAPITAL LETTER D
+0045 ; NFKC_SCF; 0065 # L& LATIN CAPITAL LETTER E
+0046 ; NFKC_SCF; 0066 # L& LATIN CAPITAL LETTER F
+0047 ; NFKC_SCF; 0067 # L& LATIN CAPITAL LETTER G
+0048 ; NFKC_SCF; 0068 # L& LATIN CAPITAL LETTER H
+0049 ; NFKC_SCF; 0069 # L& LATIN CAPITAL LETTER I
+004A ; NFKC_SCF; 006A # L& LATIN CAPITAL LETTER J
+004B ; NFKC_SCF; 006B # L& LATIN CAPITAL LETTER K
+004C ; NFKC_SCF; 006C # L& LATIN CAPITAL LETTER L
+004D ; NFKC_SCF; 006D # L& LATIN CAPITAL LETTER M
+004E ; NFKC_SCF; 006E # L& LATIN CAPITAL LETTER N
+004F ; NFKC_SCF; 006F # L& LATIN CAPITAL LETTER O
+0050 ; NFKC_SCF; 0070 # L& LATIN CAPITAL LETTER P
+0051 ; NFKC_SCF; 0071 # L& LATIN CAPITAL LETTER Q
+0052 ; NFKC_SCF; 0072 # L& LATIN CAPITAL LETTER R
+0053 ; NFKC_SCF; 0073 # L& LATIN CAPITAL LETTER S
+0054 ; NFKC_SCF; 0074 # L& LATIN CAPITAL LETTER T
+0055 ; NFKC_SCF; 0075 # L& LATIN CAPITAL LETTER U
+0056 ; NFKC_SCF; 0076 # L& LATIN CAPITAL LETTER V
+0057 ; NFKC_SCF; 0077 # L& LATIN CAPITAL LETTER W
+0058 ; NFKC_SCF; 0078 # L& LATIN CAPITAL LETTER X
+0059 ; NFKC_SCF; 0079 # L& LATIN CAPITAL LETTER Y
+005A ; NFKC_SCF; 007A # L& LATIN CAPITAL LETTER Z
+00A0 ; NFKC_SCF; 0020 # Zs NO-BREAK SPACE
+00A8 ; NFKC_SCF; 0020 0308 # Sk DIAERESIS
+00AA ; NFKC_SCF; 0061 # Lo FEMININE ORDINAL INDICATOR
+00AD ; NFKC_SCF; # Cf SOFT HYPHEN
+00AF ; NFKC_SCF; 0020 0304 # Sk MACRON
+00B2 ; NFKC_SCF; 0032 # No SUPERSCRIPT TWO
+00B3 ; NFKC_SCF; 0033 # No SUPERSCRIPT THREE
+00B4 ; NFKC_SCF; 0020 0301 # Sk ACUTE ACCENT
+00B5 ; NFKC_SCF; 03BC # L& MICRO SIGN
+00B8 ; NFKC_SCF; 0020 0327 # Sk CEDILLA
+00B9 ; NFKC_SCF; 0031 # No SUPERSCRIPT ONE
+00BA ; NFKC_SCF; 006F # Lo MASCULINE ORDINAL INDICATOR
+00BC ; NFKC_SCF; 0031 2044 0034 # No VULGAR FRACTION ONE QUARTER
+00BD ; NFKC_SCF; 0031 2044 0032 # No VULGAR FRACTION ONE HALF
+00BE ; NFKC_SCF; 0033 2044 0034 # No VULGAR FRACTION THREE QUARTERS
+00C0 ; NFKC_SCF; 00E0 # L& LATIN CAPITAL LETTER A WITH GRAVE
+00C1 ; NFKC_SCF; 00E1 # L& LATIN CAPITAL LETTER A WITH ACUTE
+00C2 ; NFKC_SCF; 00E2 # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00C3 ; NFKC_SCF; 00E3 # L& LATIN CAPITAL LETTER A WITH TILDE
+00C4 ; NFKC_SCF; 00E4 # L& LATIN CAPITAL LETTER A WITH DIAERESIS
+00C5 ; NFKC_SCF; 00E5 # L& LATIN CAPITAL LETTER A WITH RING ABOVE
+00C6 ; NFKC_SCF; 00E6 # L& LATIN CAPITAL LETTER AE
+00C7 ; NFKC_SCF; 00E7 # L& LATIN CAPITAL LETTER C WITH CEDILLA
+00C8 ; NFKC_SCF; 00E8 # L& LATIN CAPITAL LETTER E WITH GRAVE
+00C9 ; NFKC_SCF; 00E9 # L& LATIN CAPITAL LETTER E WITH ACUTE
+00CA ; NFKC_SCF; 00EA # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00CB ; NFKC_SCF; 00EB # L& LATIN CAPITAL LETTER E WITH DIAERESIS
+00CC ; NFKC_SCF; 00EC # L& LATIN CAPITAL LETTER I WITH GRAVE
+00CD ; NFKC_SCF; 00ED # L& LATIN CAPITAL LETTER I WITH ACUTE
+00CE ; NFKC_SCF; 00EE # L& LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF ; NFKC_SCF; 00EF # L& LATIN CAPITAL LETTER I WITH DIAERESIS
+00D0 ; NFKC_SCF; 00F0 # L& LATIN CAPITAL LETTER ETH
+00D1 ; NFKC_SCF; 00F1 # L& LATIN CAPITAL LETTER N WITH TILDE
+00D2 ; NFKC_SCF; 00F2 # L& LATIN CAPITAL LETTER O WITH GRAVE
+00D3 ; NFKC_SCF; 00F3 # L& LATIN CAPITAL LETTER O WITH ACUTE
+00D4 ; NFKC_SCF; 00F4 # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00D5 ; NFKC_SCF; 00F5 # L& LATIN CAPITAL LETTER O WITH TILDE
+00D6 ; NFKC_SCF; 00F6 # L& LATIN CAPITAL LETTER O WITH DIAERESIS
+00D8 ; NFKC_SCF; 00F8 # L& LATIN CAPITAL LETTER O WITH STROKE
+00D9 ; NFKC_SCF; 00F9 # L& LATIN CAPITAL LETTER U WITH GRAVE
+00DA ; NFKC_SCF; 00FA # L& LATIN CAPITAL LETTER U WITH ACUTE
+00DB ; NFKC_SCF; 00FB # L& LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+00DC ; NFKC_SCF; 00FC # L& LATIN CAPITAL LETTER U WITH DIAERESIS
+00DD ; NFKC_SCF; 00FD # L& LATIN CAPITAL LETTER Y WITH ACUTE
+00DE ; NFKC_SCF; 00FE # L& LATIN CAPITAL LETTER THORN
+0100 ; NFKC_SCF; 0101 # L& LATIN CAPITAL LETTER A WITH MACRON
+0102 ; NFKC_SCF; 0103 # L& LATIN CAPITAL LETTER A WITH BREVE
+0104 ; NFKC_SCF; 0105 # L& LATIN CAPITAL LETTER A WITH OGONEK
+0106 ; NFKC_SCF; 0107 # L& LATIN CAPITAL LETTER C WITH ACUTE
+0108 ; NFKC_SCF; 0109 # L& LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+010A ; NFKC_SCF; 010B # L& LATIN CAPITAL LETTER C WITH DOT ABOVE
+010C ; NFKC_SCF; 010D # L& LATIN CAPITAL LETTER C WITH CARON
+010E ; NFKC_SCF; 010F # L& LATIN CAPITAL LETTER D WITH CARON
+0110 ; NFKC_SCF; 0111 # L& LATIN CAPITAL LETTER D WITH STROKE
+0112 ; NFKC_SCF; 0113 # L& LATIN CAPITAL LETTER E WITH MACRON
+0114 ; NFKC_SCF; 0115 # L& LATIN CAPITAL LETTER E WITH BREVE
+0116 ; NFKC_SCF; 0117 # L& LATIN CAPITAL LETTER E WITH DOT ABOVE
+0118 ; NFKC_SCF; 0119 # L& LATIN CAPITAL LETTER E WITH OGONEK
+011A ; NFKC_SCF; 011B # L& LATIN CAPITAL LETTER E WITH CARON
+011C ; NFKC_SCF; 011D # L& LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011E ; NFKC_SCF; 011F # L& LATIN CAPITAL LETTER G WITH BREVE
+0120 ; NFKC_SCF; 0121 # L& LATIN CAPITAL LETTER G WITH DOT ABOVE
+0122 ; NFKC_SCF; 0123 # L& LATIN CAPITAL LETTER G WITH CEDILLA
+0124 ; NFKC_SCF; 0125 # L& LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0126 ; NFKC_SCF; 0127 # L& LATIN CAPITAL LETTER H WITH STROKE
+0128 ; NFKC_SCF; 0129 # L& LATIN CAPITAL LETTER I WITH TILDE
+012A ; NFKC_SCF; 012B # L& LATIN CAPITAL LETTER I WITH MACRON
+012C ; NFKC_SCF; 012D # L& LATIN CAPITAL LETTER I WITH BREVE
+012E ; NFKC_SCF; 012F # L& LATIN CAPITAL LETTER I WITH OGONEK
+0132..0133 ; NFKC_SCF; 0069 006A # L& [2] LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ
+0134 ; NFKC_SCF; 0135 # L& LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0136 ; NFKC_SCF; 0137 # L& LATIN CAPITAL LETTER K WITH CEDILLA
+0139 ; NFKC_SCF; 013A # L& LATIN CAPITAL LETTER L WITH ACUTE
+013B ; NFKC_SCF; 013C # L& LATIN CAPITAL LETTER L WITH CEDILLA
+013D ; NFKC_SCF; 013E # L& LATIN CAPITAL LETTER L WITH CARON
+013F..0140 ; NFKC_SCF; 006C 00B7 # L& [2] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT
+0141 ; NFKC_SCF; 0142 # L& LATIN CAPITAL LETTER L WITH STROKE
+0143 ; NFKC_SCF; 0144 # L& LATIN CAPITAL LETTER N WITH ACUTE
+0145 ; NFKC_SCF; 0146 # L& LATIN CAPITAL LETTER N WITH CEDILLA
+0147 ; NFKC_SCF; 0148 # L& LATIN CAPITAL LETTER N WITH CARON
+0149 ; NFKC_SCF; 02BC 006E # L& LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014A ; NFKC_SCF; 014B # L& LATIN CAPITAL LETTER ENG
+014C ; NFKC_SCF; 014D # L& LATIN CAPITAL LETTER O WITH MACRON
+014E ; NFKC_SCF; 014F # L& LATIN CAPITAL LETTER O WITH BREVE
+0150 ; NFKC_SCF; 0151 # L& LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0152 ; NFKC_SCF; 0153 # L& LATIN CAPITAL LIGATURE OE
+0154 ; NFKC_SCF; 0155 # L& LATIN CAPITAL LETTER R WITH ACUTE
+0156 ; NFKC_SCF; 0157 # L& LATIN CAPITAL LETTER R WITH CEDILLA
+0158 ; NFKC_SCF; 0159 # L& LATIN CAPITAL LETTER R WITH CARON
+015A ; NFKC_SCF; 015B # L& LATIN CAPITAL LETTER S WITH ACUTE
+015C ; NFKC_SCF; 015D # L& LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015E ; NFKC_SCF; 015F # L& LATIN CAPITAL LETTER S WITH CEDILLA
+0160 ; NFKC_SCF; 0161 # L& LATIN CAPITAL LETTER S WITH CARON
+0162 ; NFKC_SCF; 0163 # L& LATIN CAPITAL LETTER T WITH CEDILLA
+0164 ; NFKC_SCF; 0165 # L& LATIN CAPITAL LETTER T WITH CARON
+0166 ; NFKC_SCF; 0167 # L& LATIN CAPITAL LETTER T WITH STROKE
+0168 ; NFKC_SCF; 0169 # L& LATIN CAPITAL LETTER U WITH TILDE
+016A ; NFKC_SCF; 016B # L& LATIN CAPITAL LETTER U WITH MACRON
+016C ; NFKC_SCF; 016D # L& LATIN CAPITAL LETTER U WITH BREVE
+016E ; NFKC_SCF; 016F # L& LATIN CAPITAL LETTER U WITH RING ABOVE
+0170 ; NFKC_SCF; 0171 # L& LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0172 ; NFKC_SCF; 0173 # L& LATIN CAPITAL LETTER U WITH OGONEK
+0174 ; NFKC_SCF; 0175 # L& LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0176 ; NFKC_SCF; 0177 # L& LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0178 ; NFKC_SCF; 00FF # L& LATIN CAPITAL LETTER Y WITH DIAERESIS
+0179 ; NFKC_SCF; 017A # L& LATIN CAPITAL LETTER Z WITH ACUTE
+017B ; NFKC_SCF; 017C # L& LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017D ; NFKC_SCF; 017E # L& LATIN CAPITAL LETTER Z WITH CARON
+017F ; NFKC_SCF; 0073 # L& LATIN SMALL LETTER LONG S
+0181 ; NFKC_SCF; 0253 # L& LATIN CAPITAL LETTER B WITH HOOK
+0182 ; NFKC_SCF; 0183 # L& LATIN CAPITAL LETTER B WITH TOPBAR
+0184 ; NFKC_SCF; 0185 # L& LATIN CAPITAL LETTER TONE SIX
+0186 ; NFKC_SCF; 0254 # L& LATIN CAPITAL LETTER OPEN O
+0187 ; NFKC_SCF; 0188 # L& LATIN CAPITAL LETTER C WITH HOOK
+0189 ; NFKC_SCF; 0256 # L& LATIN CAPITAL LETTER AFRICAN D
+018A ; NFKC_SCF; 0257 # L& LATIN CAPITAL LETTER D WITH HOOK
+018B ; NFKC_SCF; 018C # L& LATIN CAPITAL LETTER D WITH TOPBAR
+018E ; NFKC_SCF; 01DD # L& LATIN CAPITAL LETTER REVERSED E
+018F ; NFKC_SCF; 0259 # L& LATIN CAPITAL LETTER SCHWA
+0190 ; NFKC_SCF; 025B # L& LATIN CAPITAL LETTER OPEN E
+0191 ; NFKC_SCF; 0192 # L& LATIN CAPITAL LETTER F WITH HOOK
+0193 ; NFKC_SCF; 0260 # L& LATIN CAPITAL LETTER G WITH HOOK
+0194 ; NFKC_SCF; 0263 # L& LATIN CAPITAL LETTER GAMMA
+0196 ; NFKC_SCF; 0269 # L& LATIN CAPITAL LETTER IOTA
+0197 ; NFKC_SCF; 0268 # L& LATIN CAPITAL LETTER I WITH STROKE
+0198 ; NFKC_SCF; 0199 # L& LATIN CAPITAL LETTER K WITH HOOK
+019C ; NFKC_SCF; 026F # L& LATIN CAPITAL LETTER TURNED M
+019D ; NFKC_SCF; 0272 # L& LATIN CAPITAL LETTER N WITH LEFT HOOK
+019F ; NFKC_SCF; 0275 # L& LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+01A0 ; NFKC_SCF; 01A1 # L& LATIN CAPITAL LETTER O WITH HORN
+01A2 ; NFKC_SCF; 01A3 # L& LATIN CAPITAL LETTER OI
+01A4 ; NFKC_SCF; 01A5 # L& LATIN CAPITAL LETTER P WITH HOOK
+01A6 ; NFKC_SCF; 0280 # L& LATIN LETTER YR
+01A7 ; NFKC_SCF; 01A8 # L& LATIN CAPITAL LETTER TONE TWO
+01A9 ; NFKC_SCF; 0283 # L& LATIN CAPITAL LETTER ESH
+01AC ; NFKC_SCF; 01AD # L& LATIN CAPITAL LETTER T WITH HOOK
+01AE ; NFKC_SCF; 0288 # L& LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+01AF ; NFKC_SCF; 01B0 # L& LATIN CAPITAL LETTER U WITH HORN
+01B1 ; NFKC_SCF; 028A # L& LATIN CAPITAL LETTER UPSILON
+01B2 ; NFKC_SCF; 028B # L& LATIN CAPITAL LETTER V WITH HOOK
+01B3 ; NFKC_SCF; 01B4 # L& LATIN CAPITAL LETTER Y WITH HOOK
+01B5 ; NFKC_SCF; 01B6 # L& LATIN CAPITAL LETTER Z WITH STROKE
+01B7 ; NFKC_SCF; 0292 # L& LATIN CAPITAL LETTER EZH
+01B8 ; NFKC_SCF; 01B9 # L& LATIN CAPITAL LETTER EZH REVERSED
+01BC ; NFKC_SCF; 01BD # L& LATIN CAPITAL LETTER TONE FIVE
+01C4..01C6 ; NFKC_SCF; 0064 017E # L& [3] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER DZ WITH CARON
+01C7..01C9 ; NFKC_SCF; 006C 006A # L& [3] LATIN CAPITAL LETTER LJ..LATIN SMALL LETTER LJ
+01CA..01CC ; NFKC_SCF; 006E 006A # L& [3] LATIN CAPITAL LETTER NJ..LATIN SMALL LETTER NJ
+01CD ; NFKC_SCF; 01CE # L& LATIN CAPITAL LETTER A WITH CARON
+01CF ; NFKC_SCF; 01D0 # L& LATIN CAPITAL LETTER I WITH CARON
+01D1 ; NFKC_SCF; 01D2 # L& LATIN CAPITAL LETTER O WITH CARON
+01D3 ; NFKC_SCF; 01D4 # L& LATIN CAPITAL LETTER U WITH CARON
+01D5 ; NFKC_SCF; 01D6 # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D7 ; NFKC_SCF; 01D8 # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D9 ; NFKC_SCF; 01DA # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DB ; NFKC_SCF; 01DC # L& LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DE ; NFKC_SCF; 01DF # L& LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01E0 ; NFKC_SCF; 01E1 # L& LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E2 ; NFKC_SCF; 01E3 # L& LATIN CAPITAL LETTER AE WITH MACRON
+01E4 ; NFKC_SCF; 01E5 # L& LATIN CAPITAL LETTER G WITH STROKE
+01E6 ; NFKC_SCF; 01E7 # L& LATIN CAPITAL LETTER G WITH CARON
+01E8 ; NFKC_SCF; 01E9 # L& LATIN CAPITAL LETTER K WITH CARON
+01EA ; NFKC_SCF; 01EB # L& LATIN CAPITAL LETTER O WITH OGONEK
+01EC ; NFKC_SCF; 01ED # L& LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01EE ; NFKC_SCF; 01EF # L& LATIN CAPITAL LETTER EZH WITH CARON
+01F1..01F3 ; NFKC_SCF; 0064 007A # L& [3] LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ
+01F4 ; NFKC_SCF; 01F5 # L& LATIN CAPITAL LETTER G WITH ACUTE
+01F6 ; NFKC_SCF; 0195 # L& LATIN CAPITAL LETTER HWAIR
+01F7 ; NFKC_SCF; 01BF # L& LATIN CAPITAL LETTER WYNN
+01F8 ; NFKC_SCF; 01F9 # L& LATIN CAPITAL LETTER N WITH GRAVE
+01FA ; NFKC_SCF; 01FB # L& LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FC ; NFKC_SCF; 01FD # L& LATIN CAPITAL LETTER AE WITH ACUTE
+01FE ; NFKC_SCF; 01FF # L& LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+0200 ; NFKC_SCF; 0201 # L& LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0202 ; NFKC_SCF; 0203 # L& LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0204 ; NFKC_SCF; 0205 # L& LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0206 ; NFKC_SCF; 0207 # L& LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0208 ; NFKC_SCF; 0209 # L& LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+020A ; NFKC_SCF; 020B # L& LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020C ; NFKC_SCF; 020D # L& LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020E ; NFKC_SCF; 020F # L& LATIN CAPITAL LETTER O WITH INVERTED BREVE
+0210 ; NFKC_SCF; 0211 # L& LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0212 ; NFKC_SCF; 0213 # L& LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0214 ; NFKC_SCF; 0215 # L& LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0216 ; NFKC_SCF; 0217 # L& LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0218 ; NFKC_SCF; 0219 # L& LATIN CAPITAL LETTER S WITH COMMA BELOW
+021A ; NFKC_SCF; 021B # L& LATIN CAPITAL LETTER T WITH COMMA BELOW
+021C ; NFKC_SCF; 021D # L& LATIN CAPITAL LETTER YOGH
+021E ; NFKC_SCF; 021F # L& LATIN CAPITAL LETTER H WITH CARON
+0220 ; NFKC_SCF; 019E # L& LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+0222 ; NFKC_SCF; 0223 # L& LATIN CAPITAL LETTER OU
+0224 ; NFKC_SCF; 0225 # L& LATIN CAPITAL LETTER Z WITH HOOK
+0226 ; NFKC_SCF; 0227 # L& LATIN CAPITAL LETTER A WITH DOT ABOVE
+0228 ; NFKC_SCF; 0229 # L& LATIN CAPITAL LETTER E WITH CEDILLA
+022A ; NFKC_SCF; 022B # L& LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022C ; NFKC_SCF; 022D # L& LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022E ; NFKC_SCF; 022F # L& LATIN CAPITAL LETTER O WITH DOT ABOVE
+0230 ; NFKC_SCF; 0231 # L& LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0232 ; NFKC_SCF; 0233 # L& LATIN CAPITAL LETTER Y WITH MACRON
+023A ; NFKC_SCF; 2C65 # L& LATIN CAPITAL LETTER A WITH STROKE
+023B ; NFKC_SCF; 023C # L& LATIN CAPITAL LETTER C WITH STROKE
+023D ; NFKC_SCF; 019A # L& LATIN CAPITAL LETTER L WITH BAR
+023E ; NFKC_SCF; 2C66 # L& LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+0241 ; NFKC_SCF; 0242 # L& LATIN CAPITAL LETTER GLOTTAL STOP
+0243 ; NFKC_SCF; 0180 # L& LATIN CAPITAL LETTER B WITH STROKE
+0244 ; NFKC_SCF; 0289 # L& LATIN CAPITAL LETTER U BAR
+0245 ; NFKC_SCF; 028C # L& LATIN CAPITAL LETTER TURNED V
+0246 ; NFKC_SCF; 0247 # L& LATIN CAPITAL LETTER E WITH STROKE
+0248 ; NFKC_SCF; 0249 # L& LATIN CAPITAL LETTER J WITH STROKE
+024A ; NFKC_SCF; 024B # L& LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+024C ; NFKC_SCF; 024D # L& LATIN CAPITAL LETTER R WITH STROKE
+024E ; NFKC_SCF; 024F # L& LATIN CAPITAL LETTER Y WITH STROKE
+02B0 ; NFKC_SCF; 0068 # Lm MODIFIER LETTER SMALL H
+02B1 ; NFKC_SCF; 0266 # Lm MODIFIER LETTER SMALL H WITH HOOK
+02B2 ; NFKC_SCF; 006A # Lm MODIFIER LETTER SMALL J
+02B3 ; NFKC_SCF; 0072 # Lm MODIFIER LETTER SMALL R
+02B4 ; NFKC_SCF; 0279 # Lm MODIFIER LETTER SMALL TURNED R
+02B5 ; NFKC_SCF; 027B # Lm MODIFIER LETTER SMALL TURNED R WITH HOOK
+02B6 ; NFKC_SCF; 0281 # Lm MODIFIER LETTER SMALL CAPITAL INVERTED R
+02B7 ; NFKC_SCF; 0077 # Lm MODIFIER LETTER SMALL W
+02B8 ; NFKC_SCF; 0079 # Lm MODIFIER LETTER SMALL Y
+02D8 ; NFKC_SCF; 0020 0306 # Sk BREVE
+02D9 ; NFKC_SCF; 0020 0307 # Sk DOT ABOVE
+02DA ; NFKC_SCF; 0020 030A # Sk RING ABOVE
+02DB ; NFKC_SCF; 0020 0328 # Sk OGONEK
+02DC ; NFKC_SCF; 0020 0303 # Sk SMALL TILDE
+02DD ; NFKC_SCF; 0020 030B # Sk DOUBLE ACUTE ACCENT
+02E0 ; NFKC_SCF; 0263 # Lm MODIFIER LETTER SMALL GAMMA
+02E1 ; NFKC_SCF; 006C # Lm MODIFIER LETTER SMALL L
+02E2 ; NFKC_SCF; 0073 # Lm MODIFIER LETTER SMALL S
+02E3 ; NFKC_SCF; 0078 # Lm MODIFIER LETTER SMALL X
+02E4 ; NFKC_SCF; 0295 # Lm MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+0340 ; NFKC_SCF; 0300 # Mn COMBINING GRAVE TONE MARK
+0341 ; NFKC_SCF; 0301 # Mn COMBINING ACUTE TONE MARK
+0343 ; NFKC_SCF; 0313 # Mn COMBINING GREEK KORONIS
+0344 ; NFKC_SCF; 0308 0301 # Mn COMBINING GREEK DIALYTIKA TONOS
+0345 ; NFKC_SCF; 03B9 # Mn COMBINING GREEK YPOGEGRAMMENI
+034F ; NFKC_SCF; # Mn COMBINING GRAPHEME JOINER
+0370 ; NFKC_SCF; 0371 # L& GREEK CAPITAL LETTER HETA
+0372 ; NFKC_SCF; 0373 # L& GREEK CAPITAL LETTER ARCHAIC SAMPI
+0374 ; NFKC_SCF; 02B9 # Lm GREEK NUMERAL SIGN
+0376 ; NFKC_SCF; 0377 # L& GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+037A ; NFKC_SCF; 0020 03B9 # Lm GREEK YPOGEGRAMMENI
+037E ; NFKC_SCF; 003B # Po GREEK QUESTION MARK
+037F ; NFKC_SCF; 03F3 # L& GREEK CAPITAL LETTER YOT
+0384 ; NFKC_SCF; 0020 0301 # Sk GREEK TONOS
+0385 ; NFKC_SCF; 0020 0308 0301 # Sk GREEK DIALYTIKA TONOS
+0386 ; NFKC_SCF; 03AC # L& GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387 ; NFKC_SCF; 00B7 # Po GREEK ANO TELEIA
+0388 ; NFKC_SCF; 03AD # L& GREEK CAPITAL LETTER EPSILON WITH TONOS
+0389 ; NFKC_SCF; 03AE # L& GREEK CAPITAL LETTER ETA WITH TONOS
+038A ; NFKC_SCF; 03AF # L& GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; NFKC_SCF; 03CC # L& GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E ; NFKC_SCF; 03CD # L& GREEK CAPITAL LETTER UPSILON WITH TONOS
+038F ; NFKC_SCF; 03CE # L& GREEK CAPITAL LETTER OMEGA WITH TONOS
+0391 ; NFKC_SCF; 03B1 # L& GREEK CAPITAL LETTER ALPHA
+0392 ; NFKC_SCF; 03B2 # L& GREEK CAPITAL LETTER BETA
+0393 ; NFKC_SCF; 03B3 # L& GREEK CAPITAL LETTER GAMMA
+0394 ; NFKC_SCF; 03B4 # L& GREEK CAPITAL LETTER DELTA
+0395 ; NFKC_SCF; 03B5 # L& GREEK CAPITAL LETTER EPSILON
+0396 ; NFKC_SCF; 03B6 # L& GREEK CAPITAL LETTER ZETA
+0397 ; NFKC_SCF; 03B7 # L& GREEK CAPITAL LETTER ETA
+0398 ; NFKC_SCF; 03B8 # L& GREEK CAPITAL LETTER THETA
+0399 ; NFKC_SCF; 03B9 # L& GREEK CAPITAL LETTER IOTA
+039A ; NFKC_SCF; 03BA # L& GREEK CAPITAL LETTER KAPPA
+039B ; NFKC_SCF; 03BB # L& GREEK CAPITAL LETTER LAMDA
+039C ; NFKC_SCF; 03BC # L& GREEK CAPITAL LETTER MU
+039D ; NFKC_SCF; 03BD # L& GREEK CAPITAL LETTER NU
+039E ; NFKC_SCF; 03BE # L& GREEK CAPITAL LETTER XI
+039F ; NFKC_SCF; 03BF # L& GREEK CAPITAL LETTER OMICRON
+03A0 ; NFKC_SCF; 03C0 # L& GREEK CAPITAL LETTER PI
+03A1 ; NFKC_SCF; 03C1 # L& GREEK CAPITAL LETTER RHO
+03A3 ; NFKC_SCF; 03C3 # L& GREEK CAPITAL LETTER SIGMA
+03A4 ; NFKC_SCF; 03C4 # L& GREEK CAPITAL LETTER TAU
+03A5 ; NFKC_SCF; 03C5 # L& GREEK CAPITAL LETTER UPSILON
+03A6 ; NFKC_SCF; 03C6 # L& GREEK CAPITAL LETTER PHI
+03A7 ; NFKC_SCF; 03C7 # L& GREEK CAPITAL LETTER CHI
+03A8 ; NFKC_SCF; 03C8 # L& GREEK CAPITAL LETTER PSI
+03A9 ; NFKC_SCF; 03C9 # L& GREEK CAPITAL LETTER OMEGA
+03AA ; NFKC_SCF; 03CA # L& GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+03AB ; NFKC_SCF; 03CB # L& GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03C2 ; NFKC_SCF; 03C3 # L& GREEK SMALL LETTER FINAL SIGMA
+03CF ; NFKC_SCF; 03D7 # L& GREEK CAPITAL KAI SYMBOL
+03D0 ; NFKC_SCF; 03B2 # L& GREEK BETA SYMBOL
+03D1 ; NFKC_SCF; 03B8 # L& GREEK THETA SYMBOL
+03D2 ; NFKC_SCF; 03C5 # L& GREEK UPSILON WITH HOOK SYMBOL
+03D3 ; NFKC_SCF; 03CD # L& GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+03D4 ; NFKC_SCF; 03CB # L& GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03D5 ; NFKC_SCF; 03C6 # L& GREEK PHI SYMBOL
+03D6 ; NFKC_SCF; 03C0 # L& GREEK PI SYMBOL
+03D8 ; NFKC_SCF; 03D9 # L& GREEK LETTER ARCHAIC KOPPA
+03DA ; NFKC_SCF; 03DB # L& GREEK LETTER STIGMA
+03DC ; NFKC_SCF; 03DD # L& GREEK LETTER DIGAMMA
+03DE ; NFKC_SCF; 03DF # L& GREEK LETTER KOPPA
+03E0 ; NFKC_SCF; 03E1 # L& GREEK LETTER SAMPI
+03E2 ; NFKC_SCF; 03E3 # L& COPTIC CAPITAL LETTER SHEI
+03E4 ; NFKC_SCF; 03E5 # L& COPTIC CAPITAL LETTER FEI
+03E6 ; NFKC_SCF; 03E7 # L& COPTIC CAPITAL LETTER KHEI
+03E8 ; NFKC_SCF; 03E9 # L& COPTIC CAPITAL LETTER HORI
+03EA ; NFKC_SCF; 03EB # L& COPTIC CAPITAL LETTER GANGIA
+03EC ; NFKC_SCF; 03ED # L& COPTIC CAPITAL LETTER SHIMA
+03EE ; NFKC_SCF; 03EF # L& COPTIC CAPITAL LETTER DEI
+03F0 ; NFKC_SCF; 03BA # L& GREEK KAPPA SYMBOL
+03F1 ; NFKC_SCF; 03C1 # L& GREEK RHO SYMBOL
+03F2 ; NFKC_SCF; 03C3 # L& GREEK LUNATE SIGMA SYMBOL
+03F4 ; NFKC_SCF; 03B8 # L& GREEK CAPITAL THETA SYMBOL
+03F5 ; NFKC_SCF; 03B5 # L& GREEK LUNATE EPSILON SYMBOL
+03F7 ; NFKC_SCF; 03F8 # L& GREEK CAPITAL LETTER SHO
+03F9 ; NFKC_SCF; 03C3 # L& GREEK CAPITAL LUNATE SIGMA SYMBOL
+03FA ; NFKC_SCF; 03FB # L& GREEK CAPITAL LETTER SAN
+03FD ; NFKC_SCF; 037B # L& GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+03FE ; NFKC_SCF; 037C # L& GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+03FF ; NFKC_SCF; 037D # L& GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400 ; NFKC_SCF; 0450 # L& CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401 ; NFKC_SCF; 0451 # L& CYRILLIC CAPITAL LETTER IO
+0402 ; NFKC_SCF; 0452 # L& CYRILLIC CAPITAL LETTER DJE
+0403 ; NFKC_SCF; 0453 # L& CYRILLIC CAPITAL LETTER GJE
+0404 ; NFKC_SCF; 0454 # L& CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0405 ; NFKC_SCF; 0455 # L& CYRILLIC CAPITAL LETTER DZE
+0406 ; NFKC_SCF; 0456 # L& CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0407 ; NFKC_SCF; 0457 # L& CYRILLIC CAPITAL LETTER YI
+0408 ; NFKC_SCF; 0458 # L& CYRILLIC CAPITAL LETTER JE
+0409 ; NFKC_SCF; 0459 # L& CYRILLIC CAPITAL LETTER LJE
+040A ; NFKC_SCF; 045A # L& CYRILLIC CAPITAL LETTER NJE
+040B ; NFKC_SCF; 045B # L& CYRILLIC CAPITAL LETTER TSHE
+040C ; NFKC_SCF; 045C # L& CYRILLIC CAPITAL LETTER KJE
+040D ; NFKC_SCF; 045D # L& CYRILLIC CAPITAL LETTER I WITH GRAVE
+040E ; NFKC_SCF; 045E # L& CYRILLIC CAPITAL LETTER SHORT U
+040F ; NFKC_SCF; 045F # L& CYRILLIC CAPITAL LETTER DZHE
+0410 ; NFKC_SCF; 0430 # L& CYRILLIC CAPITAL LETTER A
+0411 ; NFKC_SCF; 0431 # L& CYRILLIC CAPITAL LETTER BE
+0412 ; NFKC_SCF; 0432 # L& CYRILLIC CAPITAL LETTER VE
+0413 ; NFKC_SCF; 0433 # L& CYRILLIC CAPITAL LETTER GHE
+0414 ; NFKC_SCF; 0434 # L& CYRILLIC CAPITAL LETTER DE
+0415 ; NFKC_SCF; 0435 # L& CYRILLIC CAPITAL LETTER IE
+0416 ; NFKC_SCF; 0436 # L& CYRILLIC CAPITAL LETTER ZHE
+0417 ; NFKC_SCF; 0437 # L& CYRILLIC CAPITAL LETTER ZE
+0418 ; NFKC_SCF; 0438 # L& CYRILLIC CAPITAL LETTER I
+0419 ; NFKC_SCF; 0439 # L& CYRILLIC CAPITAL LETTER SHORT I
+041A ; NFKC_SCF; 043A # L& CYRILLIC CAPITAL LETTER KA
+041B ; NFKC_SCF; 043B # L& CYRILLIC CAPITAL LETTER EL
+041C ; NFKC_SCF; 043C # L& CYRILLIC CAPITAL LETTER EM
+041D ; NFKC_SCF; 043D # L& CYRILLIC CAPITAL LETTER EN
+041E ; NFKC_SCF; 043E # L& CYRILLIC CAPITAL LETTER O
+041F ; NFKC_SCF; 043F # L& CYRILLIC CAPITAL LETTER PE
+0420 ; NFKC_SCF; 0440 # L& CYRILLIC CAPITAL LETTER ER
+0421 ; NFKC_SCF; 0441 # L& CYRILLIC CAPITAL LETTER ES
+0422 ; NFKC_SCF; 0442 # L& CYRILLIC CAPITAL LETTER TE
+0423 ; NFKC_SCF; 0443 # L& CYRILLIC CAPITAL LETTER U
+0424 ; NFKC_SCF; 0444 # L& CYRILLIC CAPITAL LETTER EF
+0425 ; NFKC_SCF; 0445 # L& CYRILLIC CAPITAL LETTER HA
+0426 ; NFKC_SCF; 0446 # L& CYRILLIC CAPITAL LETTER TSE
+0427 ; NFKC_SCF; 0447 # L& CYRILLIC CAPITAL LETTER CHE
+0428 ; NFKC_SCF; 0448 # L& CYRILLIC CAPITAL LETTER SHA
+0429 ; NFKC_SCF; 0449 # L& CYRILLIC CAPITAL LETTER SHCHA
+042A ; NFKC_SCF; 044A # L& CYRILLIC CAPITAL LETTER HARD SIGN
+042B ; NFKC_SCF; 044B # L& CYRILLIC CAPITAL LETTER YERU
+042C ; NFKC_SCF; 044C # L& CYRILLIC CAPITAL LETTER SOFT SIGN
+042D ; NFKC_SCF; 044D # L& CYRILLIC CAPITAL LETTER E
+042E ; NFKC_SCF; 044E # L& CYRILLIC CAPITAL LETTER YU
+042F ; NFKC_SCF; 044F # L& CYRILLIC CAPITAL LETTER YA
+0460 ; NFKC_SCF; 0461 # L& CYRILLIC CAPITAL LETTER OMEGA
+0462 ; NFKC_SCF; 0463 # L& CYRILLIC CAPITAL LETTER YAT
+0464 ; NFKC_SCF; 0465 # L& CYRILLIC CAPITAL LETTER IOTIFIED E
+0466 ; NFKC_SCF; 0467 # L& CYRILLIC CAPITAL LETTER LITTLE YUS
+0468 ; NFKC_SCF; 0469 # L& CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+046A ; NFKC_SCF; 046B # L& CYRILLIC CAPITAL LETTER BIG YUS
+046C ; NFKC_SCF; 046D # L& CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046E ; NFKC_SCF; 046F # L& CYRILLIC CAPITAL LETTER KSI
+0470 ; NFKC_SCF; 0471 # L& CYRILLIC CAPITAL LETTER PSI
+0472 ; NFKC_SCF; 0473 # L& CYRILLIC CAPITAL LETTER FITA
+0474 ; NFKC_SCF; 0475 # L& CYRILLIC CAPITAL LETTER IZHITSA
+0476 ; NFKC_SCF; 0477 # L& CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478 ; NFKC_SCF; 0479 # L& CYRILLIC CAPITAL LETTER UK
+047A ; NFKC_SCF; 047B # L& CYRILLIC CAPITAL LETTER ROUND OMEGA
+047C ; NFKC_SCF; 047D # L& CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047E ; NFKC_SCF; 047F # L& CYRILLIC CAPITAL LETTER OT
+0480 ; NFKC_SCF; 0481 # L& CYRILLIC CAPITAL LETTER KOPPA
+048A ; NFKC_SCF; 048B # L& CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+048C ; NFKC_SCF; 048D # L& CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048E ; NFKC_SCF; 048F # L& CYRILLIC CAPITAL LETTER ER WITH TICK
+0490 ; NFKC_SCF; 0491 # L& CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0492 ; NFKC_SCF; 0493 # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0494 ; NFKC_SCF; 0495 # L& CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0496 ; NFKC_SCF; 0497 # L& CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0498 ; NFKC_SCF; 0499 # L& CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+049A ; NFKC_SCF; 049B # L& CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049C ; NFKC_SCF; 049D # L& CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049E ; NFKC_SCF; 049F # L& CYRILLIC CAPITAL LETTER KA WITH STROKE
+04A0 ; NFKC_SCF; 04A1 # L& CYRILLIC CAPITAL LETTER BASHKIR KA
+04A2 ; NFKC_SCF; 04A3 # L& CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A4 ; NFKC_SCF; 04A5 # L& CYRILLIC CAPITAL LIGATURE EN GHE
+04A6 ; NFKC_SCF; 04A7 # L& CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A8 ; NFKC_SCF; 04A9 # L& CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04AA ; NFKC_SCF; 04AB # L& CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AC ; NFKC_SCF; 04AD # L& CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AE ; NFKC_SCF; 04AF # L& CYRILLIC CAPITAL LETTER STRAIGHT U
+04B0 ; NFKC_SCF; 04B1 # L& CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B2 ; NFKC_SCF; 04B3 # L& CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B4 ; NFKC_SCF; 04B5 # L& CYRILLIC CAPITAL LIGATURE TE TSE
+04B6 ; NFKC_SCF; 04B7 # L& CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B8 ; NFKC_SCF; 04B9 # L& CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04BA ; NFKC_SCF; 04BB # L& CYRILLIC CAPITAL LETTER SHHA
+04BC ; NFKC_SCF; 04BD # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BE ; NFKC_SCF; 04BF # L& CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0 ; NFKC_SCF; 04CF # L& CYRILLIC LETTER PALOCHKA
+04C1 ; NFKC_SCF; 04C2 # L& CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C3 ; NFKC_SCF; 04C4 # L& CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C5 ; NFKC_SCF; 04C6 # L& CYRILLIC CAPITAL LETTER EL WITH TAIL
+04C7 ; NFKC_SCF; 04C8 # L& CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C9 ; NFKC_SCF; 04CA # L& CYRILLIC CAPITAL LETTER EN WITH TAIL
+04CB ; NFKC_SCF; 04CC # L& CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CD ; NFKC_SCF; 04CE # L& CYRILLIC CAPITAL LETTER EM WITH TAIL
+04D0 ; NFKC_SCF; 04D1 # L& CYRILLIC CAPITAL LETTER A WITH BREVE
+04D2 ; NFKC_SCF; 04D3 # L& CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D4 ; NFKC_SCF; 04D5 # L& CYRILLIC CAPITAL LIGATURE A IE
+04D6 ; NFKC_SCF; 04D7 # L& CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D8 ; NFKC_SCF; 04D9 # L& CYRILLIC CAPITAL LETTER SCHWA
+04DA ; NFKC_SCF; 04DB # L& CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DC ; NFKC_SCF; 04DD # L& CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DE ; NFKC_SCF; 04DF # L& CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04E0 ; NFKC_SCF; 04E1 # L& CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E2 ; NFKC_SCF; 04E3 # L& CYRILLIC CAPITAL LETTER I WITH MACRON
+04E4 ; NFKC_SCF; 04E5 # L& CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E6 ; NFKC_SCF; 04E7 # L& CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E8 ; NFKC_SCF; 04E9 # L& CYRILLIC CAPITAL LETTER BARRED O
+04EA ; NFKC_SCF; 04EB # L& CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EC ; NFKC_SCF; 04ED # L& CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04EE ; NFKC_SCF; 04EF # L& CYRILLIC CAPITAL LETTER U WITH MACRON
+04F0 ; NFKC_SCF; 04F1 # L& CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F2 ; NFKC_SCF; 04F3 # L& CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F4 ; NFKC_SCF; 04F5 # L& CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F6 ; NFKC_SCF; 04F7 # L& CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+04F8 ; NFKC_SCF; 04F9 # L& CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04FA ; NFKC_SCF; 04FB # L& CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+04FC ; NFKC_SCF; 04FD # L& CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FE ; NFKC_SCF; 04FF # L& CYRILLIC CAPITAL LETTER HA WITH STROKE
+0500 ; NFKC_SCF; 0501 # L& CYRILLIC CAPITAL LETTER KOMI DE
+0502 ; NFKC_SCF; 0503 # L& CYRILLIC CAPITAL LETTER KOMI DJE
+0504 ; NFKC_SCF; 0505 # L& CYRILLIC CAPITAL LETTER KOMI ZJE
+0506 ; NFKC_SCF; 0507 # L& CYRILLIC CAPITAL LETTER KOMI DZJE
+0508 ; NFKC_SCF; 0509 # L& CYRILLIC CAPITAL LETTER KOMI LJE
+050A ; NFKC_SCF; 050B # L& CYRILLIC CAPITAL LETTER KOMI NJE
+050C ; NFKC_SCF; 050D # L& CYRILLIC CAPITAL LETTER KOMI SJE
+050E ; NFKC_SCF; 050F # L& CYRILLIC CAPITAL LETTER KOMI TJE
+0510 ; NFKC_SCF; 0511 # L& CYRILLIC CAPITAL LETTER REVERSED ZE
+0512 ; NFKC_SCF; 0513 # L& CYRILLIC CAPITAL LETTER EL WITH HOOK
+0514 ; NFKC_SCF; 0515 # L& CYRILLIC CAPITAL LETTER LHA
+0516 ; NFKC_SCF; 0517 # L& CYRILLIC CAPITAL LETTER RHA
+0518 ; NFKC_SCF; 0519 # L& CYRILLIC CAPITAL LETTER YAE
+051A ; NFKC_SCF; 051B # L& CYRILLIC CAPITAL LETTER QA
+051C ; NFKC_SCF; 051D # L& CYRILLIC CAPITAL LETTER WE
+051E ; NFKC_SCF; 051F # L& CYRILLIC CAPITAL LETTER ALEUT KA
+0520 ; NFKC_SCF; 0521 # L& CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+0522 ; NFKC_SCF; 0523 # L& CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+0524 ; NFKC_SCF; 0525 # L& CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+0526 ; NFKC_SCF; 0527 # L& CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0528 ; NFKC_SCF; 0529 # L& CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+052A ; NFKC_SCF; 052B # L& CYRILLIC CAPITAL LETTER DZZHE
+052C ; NFKC_SCF; 052D # L& CYRILLIC CAPITAL LETTER DCHE
+052E ; NFKC_SCF; 052F # L& CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+0531 ; NFKC_SCF; 0561 # L& ARMENIAN CAPITAL LETTER AYB
+0532 ; NFKC_SCF; 0562 # L& ARMENIAN CAPITAL LETTER BEN
+0533 ; NFKC_SCF; 0563 # L& ARMENIAN CAPITAL LETTER GIM
+0534 ; NFKC_SCF; 0564 # L& ARMENIAN CAPITAL LETTER DA
+0535 ; NFKC_SCF; 0565 # L& ARMENIAN CAPITAL LETTER ECH
+0536 ; NFKC_SCF; 0566 # L& ARMENIAN CAPITAL LETTER ZA
+0537 ; NFKC_SCF; 0567 # L& ARMENIAN CAPITAL LETTER EH
+0538 ; NFKC_SCF; 0568 # L& ARMENIAN CAPITAL LETTER ET
+0539 ; NFKC_SCF; 0569 # L& ARMENIAN CAPITAL LETTER TO
+053A ; NFKC_SCF; 056A # L& ARMENIAN CAPITAL LETTER ZHE
+053B ; NFKC_SCF; 056B # L& ARMENIAN CAPITAL LETTER INI
+053C ; NFKC_SCF; 056C # L& ARMENIAN CAPITAL LETTER LIWN
+053D ; NFKC_SCF; 056D # L& ARMENIAN CAPITAL LETTER XEH
+053E ; NFKC_SCF; 056E # L& ARMENIAN CAPITAL LETTER CA
+053F ; NFKC_SCF; 056F # L& ARMENIAN CAPITAL LETTER KEN
+0540 ; NFKC_SCF; 0570 # L& ARMENIAN CAPITAL LETTER HO
+0541 ; NFKC_SCF; 0571 # L& ARMENIAN CAPITAL LETTER JA
+0542 ; NFKC_SCF; 0572 # L& ARMENIAN CAPITAL LETTER GHAD
+0543 ; NFKC_SCF; 0573 # L& ARMENIAN CAPITAL LETTER CHEH
+0544 ; NFKC_SCF; 0574 # L& ARMENIAN CAPITAL LETTER MEN
+0545 ; NFKC_SCF; 0575 # L& ARMENIAN CAPITAL LETTER YI
+0546 ; NFKC_SCF; 0576 # L& ARMENIAN CAPITAL LETTER NOW
+0547 ; NFKC_SCF; 0577 # L& ARMENIAN CAPITAL LETTER SHA
+0548 ; NFKC_SCF; 0578 # L& ARMENIAN CAPITAL LETTER VO
+0549 ; NFKC_SCF; 0579 # L& ARMENIAN CAPITAL LETTER CHA
+054A ; NFKC_SCF; 057A # L& ARMENIAN CAPITAL LETTER PEH
+054B ; NFKC_SCF; 057B # L& ARMENIAN CAPITAL LETTER JHEH
+054C ; NFKC_SCF; 057C # L& ARMENIAN CAPITAL LETTER RA
+054D ; NFKC_SCF; 057D # L& ARMENIAN CAPITAL LETTER SEH
+054E ; NFKC_SCF; 057E # L& ARMENIAN CAPITAL LETTER VEW
+054F ; NFKC_SCF; 057F # L& ARMENIAN CAPITAL LETTER TIWN
+0550 ; NFKC_SCF; 0580 # L& ARMENIAN CAPITAL LETTER REH
+0551 ; NFKC_SCF; 0581 # L& ARMENIAN CAPITAL LETTER CO
+0552 ; NFKC_SCF; 0582 # L& ARMENIAN CAPITAL LETTER YIWN
+0553 ; NFKC_SCF; 0583 # L& ARMENIAN CAPITAL LETTER PIWR
+0554 ; NFKC_SCF; 0584 # L& ARMENIAN CAPITAL LETTER KEH
+0555 ; NFKC_SCF; 0585 # L& ARMENIAN CAPITAL LETTER OH
+0556 ; NFKC_SCF; 0586 # L& ARMENIAN CAPITAL LETTER FEH
+0587 ; NFKC_SCF; 0565 0582 # L& ARMENIAN SMALL LIGATURE ECH YIWN
+061C ; NFKC_SCF; # Cf ARABIC LETTER MARK
+0675 ; NFKC_SCF; 0627 0674 # Lo ARABIC LETTER HIGH HAMZA ALEF
+0676 ; NFKC_SCF; 0648 0674 # Lo ARABIC LETTER HIGH HAMZA WAW
+0677 ; NFKC_SCF; 06C7 0674 # Lo ARABIC LETTER U WITH HAMZA ABOVE
+0678 ; NFKC_SCF; 064A 0674 # Lo ARABIC LETTER HIGH HAMZA YEH
+0958 ; NFKC_SCF; 0915 093C # Lo DEVANAGARI LETTER QA
+0959 ; NFKC_SCF; 0916 093C # Lo DEVANAGARI LETTER KHHA
+095A ; NFKC_SCF; 0917 093C # Lo DEVANAGARI LETTER GHHA
+095B ; NFKC_SCF; 091C 093C # Lo DEVANAGARI LETTER ZA
+095C ; NFKC_SCF; 0921 093C # Lo DEVANAGARI LETTER DDDHA
+095D ; NFKC_SCF; 0922 093C # Lo DEVANAGARI LETTER RHA
+095E ; NFKC_SCF; 092B 093C # Lo DEVANAGARI LETTER FA
+095F ; NFKC_SCF; 092F 093C # Lo DEVANAGARI LETTER YYA
+09DC ; NFKC_SCF; 09A1 09BC # Lo BENGALI LETTER RRA
+09DD ; NFKC_SCF; 09A2 09BC # Lo BENGALI LETTER RHA
+09DF ; NFKC_SCF; 09AF 09BC # Lo BENGALI LETTER YYA
+0A33 ; NFKC_SCF; 0A32 0A3C # Lo GURMUKHI LETTER LLA
+0A36 ; NFKC_SCF; 0A38 0A3C # Lo GURMUKHI LETTER SHA
+0A59 ; NFKC_SCF; 0A16 0A3C # Lo GURMUKHI LETTER KHHA
+0A5A ; NFKC_SCF; 0A17 0A3C # Lo GURMUKHI LETTER GHHA
+0A5B ; NFKC_SCF; 0A1C 0A3C # Lo GURMUKHI LETTER ZA
+0A5E ; NFKC_SCF; 0A2B 0A3C # Lo GURMUKHI LETTER FA
+0B5C ; NFKC_SCF; 0B21 0B3C # Lo ORIYA LETTER RRA
+0B5D ; NFKC_SCF; 0B22 0B3C # Lo ORIYA LETTER RHA
+0E33 ; NFKC_SCF; 0E4D 0E32 # Lo THAI CHARACTER SARA AM
+0EB3 ; NFKC_SCF; 0ECD 0EB2 # Lo LAO VOWEL SIGN AM
+0EDC ; NFKC_SCF; 0EAB 0E99 # Lo LAO HO NO
+0EDD ; NFKC_SCF; 0EAB 0EA1 # Lo LAO HO MO
+0F0C ; NFKC_SCF; 0F0B # Po TIBETAN MARK DELIMITER TSHEG BSTAR
+0F43 ; NFKC_SCF; 0F42 0FB7 # Lo TIBETAN LETTER GHA
+0F4D ; NFKC_SCF; 0F4C 0FB7 # Lo TIBETAN LETTER DDHA
+0F52 ; NFKC_SCF; 0F51 0FB7 # Lo TIBETAN LETTER DHA
+0F57 ; NFKC_SCF; 0F56 0FB7 # Lo TIBETAN LETTER BHA
+0F5C ; NFKC_SCF; 0F5B 0FB7 # Lo TIBETAN LETTER DZHA
+0F69 ; NFKC_SCF; 0F40 0FB5 # Lo TIBETAN LETTER KSSA
+0F73 ; NFKC_SCF; 0F71 0F72 # Mn TIBETAN VOWEL SIGN II
+0F75 ; NFKC_SCF; 0F71 0F74 # Mn TIBETAN VOWEL SIGN UU
+0F76 ; NFKC_SCF; 0FB2 0F80 # Mn TIBETAN VOWEL SIGN VOCALIC R
+0F77 ; NFKC_SCF; 0FB2 0F71 0F80 # Mn TIBETAN VOWEL SIGN VOCALIC RR
+0F78 ; NFKC_SCF; 0FB3 0F80 # Mn TIBETAN VOWEL SIGN VOCALIC L
+0F79 ; NFKC_SCF; 0FB3 0F71 0F80 # Mn TIBETAN VOWEL SIGN VOCALIC LL
+0F81 ; NFKC_SCF; 0F71 0F80 # Mn TIBETAN VOWEL SIGN REVERSED II
+0F93 ; NFKC_SCF; 0F92 0FB7 # Mn TIBETAN SUBJOINED LETTER GHA
+0F9D ; NFKC_SCF; 0F9C 0FB7 # Mn TIBETAN SUBJOINED LETTER DDHA
+0FA2 ; NFKC_SCF; 0FA1 0FB7 # Mn TIBETAN SUBJOINED LETTER DHA
+0FA7 ; NFKC_SCF; 0FA6 0FB7 # Mn TIBETAN SUBJOINED LETTER BHA
+0FAC ; NFKC_SCF; 0FAB 0FB7 # Mn TIBETAN SUBJOINED LETTER DZHA
+0FB9 ; NFKC_SCF; 0F90 0FB5 # Mn TIBETAN SUBJOINED LETTER KSSA
+10A0 ; NFKC_SCF; 2D00 # L& GEORGIAN CAPITAL LETTER AN
+10A1 ; NFKC_SCF; 2D01 # L& GEORGIAN CAPITAL LETTER BAN
+10A2 ; NFKC_SCF; 2D02 # L& GEORGIAN CAPITAL LETTER GAN
+10A3 ; NFKC_SCF; 2D03 # L& GEORGIAN CAPITAL LETTER DON
+10A4 ; NFKC_SCF; 2D04 # L& GEORGIAN CAPITAL LETTER EN
+10A5 ; NFKC_SCF; 2D05 # L& GEORGIAN CAPITAL LETTER VIN
+10A6 ; NFKC_SCF; 2D06 # L& GEORGIAN CAPITAL LETTER ZEN
+10A7 ; NFKC_SCF; 2D07 # L& GEORGIAN CAPITAL LETTER TAN
+10A8 ; NFKC_SCF; 2D08 # L& GEORGIAN CAPITAL LETTER IN
+10A9 ; NFKC_SCF; 2D09 # L& GEORGIAN CAPITAL LETTER KAN
+10AA ; NFKC_SCF; 2D0A # L& GEORGIAN CAPITAL LETTER LAS
+10AB ; NFKC_SCF; 2D0B # L& GEORGIAN CAPITAL LETTER MAN
+10AC ; NFKC_SCF; 2D0C # L& GEORGIAN CAPITAL LETTER NAR
+10AD ; NFKC_SCF; 2D0D # L& GEORGIAN CAPITAL LETTER ON
+10AE ; NFKC_SCF; 2D0E # L& GEORGIAN CAPITAL LETTER PAR
+10AF ; NFKC_SCF; 2D0F # L& GEORGIAN CAPITAL LETTER ZHAR
+10B0 ; NFKC_SCF; 2D10 # L& GEORGIAN CAPITAL LETTER RAE
+10B1 ; NFKC_SCF; 2D11 # L& GEORGIAN CAPITAL LETTER SAN
+10B2 ; NFKC_SCF; 2D12 # L& GEORGIAN CAPITAL LETTER TAR
+10B3 ; NFKC_SCF; 2D13 # L& GEORGIAN CAPITAL LETTER UN
+10B4 ; NFKC_SCF; 2D14 # L& GEORGIAN CAPITAL LETTER PHAR
+10B5 ; NFKC_SCF; 2D15 # L& GEORGIAN CAPITAL LETTER KHAR
+10B6 ; NFKC_SCF; 2D16 # L& GEORGIAN CAPITAL LETTER GHAN
+10B7 ; NFKC_SCF; 2D17 # L& GEORGIAN CAPITAL LETTER QAR
+10B8 ; NFKC_SCF; 2D18 # L& GEORGIAN CAPITAL LETTER SHIN
+10B9 ; NFKC_SCF; 2D19 # L& GEORGIAN CAPITAL LETTER CHIN
+10BA ; NFKC_SCF; 2D1A # L& GEORGIAN CAPITAL LETTER CAN
+10BB ; NFKC_SCF; 2D1B # L& GEORGIAN CAPITAL LETTER JIL
+10BC ; NFKC_SCF; 2D1C # L& GEORGIAN CAPITAL LETTER CIL
+10BD ; NFKC_SCF; 2D1D # L& GEORGIAN CAPITAL LETTER CHAR
+10BE ; NFKC_SCF; 2D1E # L& GEORGIAN CAPITAL LETTER XAN
+10BF ; NFKC_SCF; 2D1F # L& GEORGIAN CAPITAL LETTER JHAN
+10C0 ; NFKC_SCF; 2D20 # L& GEORGIAN CAPITAL LETTER HAE
+10C1 ; NFKC_SCF; 2D21 # L& GEORGIAN CAPITAL LETTER HE
+10C2 ; NFKC_SCF; 2D22 # L& GEORGIAN CAPITAL LETTER HIE
+10C3 ; NFKC_SCF; 2D23 # L& GEORGIAN CAPITAL LETTER WE
+10C4 ; NFKC_SCF; 2D24 # L& GEORGIAN CAPITAL LETTER HAR
+10C5 ; NFKC_SCF; 2D25 # L& GEORGIAN CAPITAL LETTER HOE
+10C7 ; NFKC_SCF; 2D27 # L& GEORGIAN CAPITAL LETTER YN
+10CD ; NFKC_SCF; 2D2D # L& GEORGIAN CAPITAL LETTER AEN
+10FC ; NFKC_SCF; 10DC # Lm MODIFIER LETTER GEORGIAN NAR
+115F..1160 ; NFKC_SCF; # Lo [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
+13F8 ; NFKC_SCF; 13F0 # L& CHEROKEE SMALL LETTER YE
+13F9 ; NFKC_SCF; 13F1 # L& CHEROKEE SMALL LETTER YI
+13FA ; NFKC_SCF; 13F2 # L& CHEROKEE SMALL LETTER YO
+13FB ; NFKC_SCF; 13F3 # L& CHEROKEE SMALL LETTER YU
+13FC ; NFKC_SCF; 13F4 # L& CHEROKEE SMALL LETTER YV
+13FD ; NFKC_SCF; 13F5 # L& CHEROKEE SMALL LETTER MV
+17B4..17B5 ; NFKC_SCF; # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+180B..180D ; NFKC_SCF; # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; NFKC_SCF; # Cf MONGOLIAN VOWEL SEPARATOR
+180F ; NFKC_SCF; # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
+1C80 ; NFKC_SCF; 0432 # L& CYRILLIC SMALL LETTER ROUNDED VE
+1C81 ; NFKC_SCF; 0434 # L& CYRILLIC SMALL LETTER LONG-LEGGED DE
+1C82 ; NFKC_SCF; 043E # L& CYRILLIC SMALL LETTER NARROW O
+1C83 ; NFKC_SCF; 0441 # L& CYRILLIC SMALL LETTER WIDE ES
+1C84..1C85 ; NFKC_SCF; 0442 # L& [2] CYRILLIC SMALL LETTER TALL TE..CYRILLIC SMALL LETTER THREE-LEGGED TE
+1C86 ; NFKC_SCF; 044A # L& CYRILLIC SMALL LETTER TALL HARD SIGN
+1C87 ; NFKC_SCF; 0463 # L& CYRILLIC SMALL LETTER TALL YAT
+1C88 ; NFKC_SCF; A64B # L& CYRILLIC SMALL LETTER UNBLENDED UK
+1C90 ; NFKC_SCF; 10D0 # L& GEORGIAN MTAVRULI CAPITAL LETTER AN
+1C91 ; NFKC_SCF; 10D1 # L& GEORGIAN MTAVRULI CAPITAL LETTER BAN
+1C92 ; NFKC_SCF; 10D2 # L& GEORGIAN MTAVRULI CAPITAL LETTER GAN
+1C93 ; NFKC_SCF; 10D3 # L& GEORGIAN MTAVRULI CAPITAL LETTER DON
+1C94 ; NFKC_SCF; 10D4 # L& GEORGIAN MTAVRULI CAPITAL LETTER EN
+1C95 ; NFKC_SCF; 10D5 # L& GEORGIAN MTAVRULI CAPITAL LETTER VIN
+1C96 ; NFKC_SCF; 10D6 # L& GEORGIAN MTAVRULI CAPITAL LETTER ZEN
+1C97 ; NFKC_SCF; 10D7 # L& GEORGIAN MTAVRULI CAPITAL LETTER TAN
+1C98 ; NFKC_SCF; 10D8 # L& GEORGIAN MTAVRULI CAPITAL LETTER IN
+1C99 ; NFKC_SCF; 10D9 # L& GEORGIAN MTAVRULI CAPITAL LETTER KAN
+1C9A ; NFKC_SCF; 10DA # L& GEORGIAN MTAVRULI CAPITAL LETTER LAS
+1C9B ; NFKC_SCF; 10DB # L& GEORGIAN MTAVRULI CAPITAL LETTER MAN
+1C9C ; NFKC_SCF; 10DC # L& GEORGIAN MTAVRULI CAPITAL LETTER NAR
+1C9D ; NFKC_SCF; 10DD # L& GEORGIAN MTAVRULI CAPITAL LETTER ON
+1C9E ; NFKC_SCF; 10DE # L& GEORGIAN MTAVRULI CAPITAL LETTER PAR
+1C9F ; NFKC_SCF; 10DF # L& GEORGIAN MTAVRULI CAPITAL LETTER ZHAR
+1CA0 ; NFKC_SCF; 10E0 # L& GEORGIAN MTAVRULI CAPITAL LETTER RAE
+1CA1 ; NFKC_SCF; 10E1 # L& GEORGIAN MTAVRULI CAPITAL LETTER SAN
+1CA2 ; NFKC_SCF; 10E2 # L& GEORGIAN MTAVRULI CAPITAL LETTER TAR
+1CA3 ; NFKC_SCF; 10E3 # L& GEORGIAN MTAVRULI CAPITAL LETTER UN
+1CA4 ; NFKC_SCF; 10E4 # L& GEORGIAN MTAVRULI CAPITAL LETTER PHAR
+1CA5 ; NFKC_SCF; 10E5 # L& GEORGIAN MTAVRULI CAPITAL LETTER KHAR
+1CA6 ; NFKC_SCF; 10E6 # L& GEORGIAN MTAVRULI CAPITAL LETTER GHAN
+1CA7 ; NFKC_SCF; 10E7 # L& GEORGIAN MTAVRULI CAPITAL LETTER QAR
+1CA8 ; NFKC_SCF; 10E8 # L& GEORGIAN MTAVRULI CAPITAL LETTER SHIN
+1CA9 ; NFKC_SCF; 10E9 # L& GEORGIAN MTAVRULI CAPITAL LETTER CHIN
+1CAA ; NFKC_SCF; 10EA # L& GEORGIAN MTAVRULI CAPITAL LETTER CAN
+1CAB ; NFKC_SCF; 10EB # L& GEORGIAN MTAVRULI CAPITAL LETTER JIL
+1CAC ; NFKC_SCF; 10EC # L& GEORGIAN MTAVRULI CAPITAL LETTER CIL
+1CAD ; NFKC_SCF; 10ED # L& GEORGIAN MTAVRULI CAPITAL LETTER CHAR
+1CAE ; NFKC_SCF; 10EE # L& GEORGIAN MTAVRULI CAPITAL LETTER XAN
+1CAF ; NFKC_SCF; 10EF # L& GEORGIAN MTAVRULI CAPITAL LETTER JHAN
+1CB0 ; NFKC_SCF; 10F0 # L& GEORGIAN MTAVRULI CAPITAL LETTER HAE
+1CB1 ; NFKC_SCF; 10F1 # L& GEORGIAN MTAVRULI CAPITAL LETTER HE
+1CB2 ; NFKC_SCF; 10F2 # L& GEORGIAN MTAVRULI CAPITAL LETTER HIE
+1CB3 ; NFKC_SCF; 10F3 # L& GEORGIAN MTAVRULI CAPITAL LETTER WE
+1CB4 ; NFKC_SCF; 10F4 # L& GEORGIAN MTAVRULI CAPITAL LETTER HAR
+1CB5 ; NFKC_SCF; 10F5 # L& GEORGIAN MTAVRULI CAPITAL LETTER HOE
+1CB6 ; NFKC_SCF; 10F6 # L& GEORGIAN MTAVRULI CAPITAL LETTER FI
+1CB7 ; NFKC_SCF; 10F7 # L& GEORGIAN MTAVRULI CAPITAL LETTER YN
+1CB8 ; NFKC_SCF; 10F8 # L& GEORGIAN MTAVRULI CAPITAL LETTER ELIFI
+1CB9 ; NFKC_SCF; 10F9 # L& GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN
+1CBA ; NFKC_SCF; 10FA # L& GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBD ; NFKC_SCF; 10FD # L& GEORGIAN MTAVRULI CAPITAL LETTER AEN
+1CBE ; NFKC_SCF; 10FE # L& GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN
+1CBF ; NFKC_SCF; 10FF # L& GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+1D2C ; NFKC_SCF; 0061 # Lm MODIFIER LETTER CAPITAL A
+1D2D ; NFKC_SCF; 00E6 # Lm MODIFIER LETTER CAPITAL AE
+1D2E ; NFKC_SCF; 0062 # Lm MODIFIER LETTER CAPITAL B
+1D30 ; NFKC_SCF; 0064 # Lm MODIFIER LETTER CAPITAL D
+1D31 ; NFKC_SCF; 0065 # Lm MODIFIER LETTER CAPITAL E
+1D32 ; NFKC_SCF; 01DD # Lm MODIFIER LETTER CAPITAL REVERSED E
+1D33 ; NFKC_SCF; 0067 # Lm MODIFIER LETTER CAPITAL G
+1D34 ; NFKC_SCF; 0068 # Lm MODIFIER LETTER CAPITAL H
+1D35 ; NFKC_SCF; 0069 # Lm MODIFIER LETTER CAPITAL I
+1D36 ; NFKC_SCF; 006A # Lm MODIFIER LETTER CAPITAL J
+1D37 ; NFKC_SCF; 006B # Lm MODIFIER LETTER CAPITAL K
+1D38 ; NFKC_SCF; 006C # Lm MODIFIER LETTER CAPITAL L
+1D39 ; NFKC_SCF; 006D # Lm MODIFIER LETTER CAPITAL M
+1D3A ; NFKC_SCF; 006E # Lm MODIFIER LETTER CAPITAL N
+1D3C ; NFKC_SCF; 006F # Lm MODIFIER LETTER CAPITAL O
+1D3D ; NFKC_SCF; 0223 # Lm MODIFIER LETTER CAPITAL OU
+1D3E ; NFKC_SCF; 0070 # Lm MODIFIER LETTER CAPITAL P
+1D3F ; NFKC_SCF; 0072 # Lm MODIFIER LETTER CAPITAL R
+1D40 ; NFKC_SCF; 0074 # Lm MODIFIER LETTER CAPITAL T
+1D41 ; NFKC_SCF; 0075 # Lm MODIFIER LETTER CAPITAL U
+1D42 ; NFKC_SCF; 0077 # Lm MODIFIER LETTER CAPITAL W
+1D43 ; NFKC_SCF; 0061 # Lm MODIFIER LETTER SMALL A
+1D44 ; NFKC_SCF; 0250 # Lm MODIFIER LETTER SMALL TURNED A
+1D45 ; NFKC_SCF; 0251 # Lm MODIFIER LETTER SMALL ALPHA
+1D46 ; NFKC_SCF; 1D02 # Lm MODIFIER LETTER SMALL TURNED AE
+1D47 ; NFKC_SCF; 0062 # Lm MODIFIER LETTER SMALL B
+1D48 ; NFKC_SCF; 0064 # Lm MODIFIER LETTER SMALL D
+1D49 ; NFKC_SCF; 0065 # Lm MODIFIER LETTER SMALL E
+1D4A ; NFKC_SCF; 0259 # Lm MODIFIER LETTER SMALL SCHWA
+1D4B ; NFKC_SCF; 025B # Lm MODIFIER LETTER SMALL OPEN E
+1D4C ; NFKC_SCF; 025C # Lm MODIFIER LETTER SMALL TURNED OPEN E
+1D4D ; NFKC_SCF; 0067 # Lm MODIFIER LETTER SMALL G
+1D4F ; NFKC_SCF; 006B # Lm MODIFIER LETTER SMALL K
+1D50 ; NFKC_SCF; 006D # Lm MODIFIER LETTER SMALL M
+1D51 ; NFKC_SCF; 014B # Lm MODIFIER LETTER SMALL ENG
+1D52 ; NFKC_SCF; 006F # Lm MODIFIER LETTER SMALL O
+1D53 ; NFKC_SCF; 0254 # Lm MODIFIER LETTER SMALL OPEN O
+1D54 ; NFKC_SCF; 1D16 # Lm MODIFIER LETTER SMALL TOP HALF O
+1D55 ; NFKC_SCF; 1D17 # Lm MODIFIER LETTER SMALL BOTTOM HALF O
+1D56 ; NFKC_SCF; 0070 # Lm MODIFIER LETTER SMALL P
+1D57 ; NFKC_SCF; 0074 # Lm MODIFIER LETTER SMALL T
+1D58 ; NFKC_SCF; 0075 # Lm MODIFIER LETTER SMALL U
+1D59 ; NFKC_SCF; 1D1D # Lm MODIFIER LETTER SMALL SIDEWAYS U
+1D5A ; NFKC_SCF; 026F # Lm MODIFIER LETTER SMALL TURNED M
+1D5B ; NFKC_SCF; 0076 # Lm MODIFIER LETTER SMALL V
+1D5C ; NFKC_SCF; 1D25 # Lm MODIFIER LETTER SMALL AIN
+1D5D ; NFKC_SCF; 03B2 # Lm MODIFIER LETTER SMALL BETA
+1D5E ; NFKC_SCF; 03B3 # Lm MODIFIER LETTER SMALL GREEK GAMMA
+1D5F ; NFKC_SCF; 03B4 # Lm MODIFIER LETTER SMALL DELTA
+1D60 ; NFKC_SCF; 03C6 # Lm MODIFIER LETTER SMALL GREEK PHI
+1D61 ; NFKC_SCF; 03C7 # Lm MODIFIER LETTER SMALL CHI
+1D62 ; NFKC_SCF; 0069 # Lm LATIN SUBSCRIPT SMALL LETTER I
+1D63 ; NFKC_SCF; 0072 # Lm LATIN SUBSCRIPT SMALL LETTER R
+1D64 ; NFKC_SCF; 0075 # Lm LATIN SUBSCRIPT SMALL LETTER U
+1D65 ; NFKC_SCF; 0076 # Lm LATIN SUBSCRIPT SMALL LETTER V
+1D66 ; NFKC_SCF; 03B2 # Lm GREEK SUBSCRIPT SMALL LETTER BETA
+1D67 ; NFKC_SCF; 03B3 # Lm GREEK SUBSCRIPT SMALL LETTER GAMMA
+1D68 ; NFKC_SCF; 03C1 # Lm GREEK SUBSCRIPT SMALL LETTER RHO
+1D69 ; NFKC_SCF; 03C6 # Lm GREEK SUBSCRIPT SMALL LETTER PHI
+1D6A ; NFKC_SCF; 03C7 # Lm GREEK SUBSCRIPT SMALL LETTER CHI
+1D78 ; NFKC_SCF; 043D # Lm MODIFIER LETTER CYRILLIC EN
+1D9B ; NFKC_SCF; 0252 # Lm MODIFIER LETTER SMALL TURNED ALPHA
+1D9C ; NFKC_SCF; 0063 # Lm MODIFIER LETTER SMALL C
+1D9D ; NFKC_SCF; 0255 # Lm MODIFIER LETTER SMALL C WITH CURL
+1D9E ; NFKC_SCF; 00F0 # Lm MODIFIER LETTER SMALL ETH
+1D9F ; NFKC_SCF; 025C # Lm MODIFIER LETTER SMALL REVERSED OPEN E
+1DA0 ; NFKC_SCF; 0066 # Lm MODIFIER LETTER SMALL F
+1DA1 ; NFKC_SCF; 025F # Lm MODIFIER LETTER SMALL DOTLESS J WITH STROKE
+1DA2 ; NFKC_SCF; 0261 # Lm MODIFIER LETTER SMALL SCRIPT G
+1DA3 ; NFKC_SCF; 0265 # Lm MODIFIER LETTER SMALL TURNED H
+1DA4 ; NFKC_SCF; 0268 # Lm MODIFIER LETTER SMALL I WITH STROKE
+1DA5 ; NFKC_SCF; 0269 # Lm MODIFIER LETTER SMALL IOTA
+1DA6 ; NFKC_SCF; 026A # Lm MODIFIER LETTER SMALL CAPITAL I
+1DA7 ; NFKC_SCF; 1D7B # Lm MODIFIER LETTER SMALL CAPITAL I WITH STROKE
+1DA8 ; NFKC_SCF; 029D # Lm MODIFIER LETTER SMALL J WITH CROSSED-TAIL
+1DA9 ; NFKC_SCF; 026D # Lm MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
+1DAA ; NFKC_SCF; 1D85 # Lm MODIFIER LETTER SMALL L WITH PALATAL HOOK
+1DAB ; NFKC_SCF; 029F # Lm MODIFIER LETTER SMALL CAPITAL L
+1DAC ; NFKC_SCF; 0271 # Lm MODIFIER LETTER SMALL M WITH HOOK
+1DAD ; NFKC_SCF; 0270 # Lm MODIFIER LETTER SMALL TURNED M WITH LONG LEG
+1DAE ; NFKC_SCF; 0272 # Lm MODIFIER LETTER SMALL N WITH LEFT HOOK
+1DAF ; NFKC_SCF; 0273 # Lm MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
+1DB0 ; NFKC_SCF; 0274 # Lm MODIFIER LETTER SMALL CAPITAL N
+1DB1 ; NFKC_SCF; 0275 # Lm MODIFIER LETTER SMALL BARRED O
+1DB2 ; NFKC_SCF; 0278 # Lm MODIFIER LETTER SMALL PHI
+1DB3 ; NFKC_SCF; 0282 # Lm MODIFIER LETTER SMALL S WITH HOOK
+1DB4 ; NFKC_SCF; 0283 # Lm MODIFIER LETTER SMALL ESH
+1DB5 ; NFKC_SCF; 01AB # Lm MODIFIER LETTER SMALL T WITH PALATAL HOOK
+1DB6 ; NFKC_SCF; 0289 # Lm MODIFIER LETTER SMALL U BAR
+1DB7 ; NFKC_SCF; 028A # Lm MODIFIER LETTER SMALL UPSILON
+1DB8 ; NFKC_SCF; 1D1C # Lm MODIFIER LETTER SMALL CAPITAL U
+1DB9 ; NFKC_SCF; 028B # Lm MODIFIER LETTER SMALL V WITH HOOK
+1DBA ; NFKC_SCF; 028C # Lm MODIFIER LETTER SMALL TURNED V
+1DBB ; NFKC_SCF; 007A # Lm MODIFIER LETTER SMALL Z
+1DBC ; NFKC_SCF; 0290 # Lm MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
+1DBD ; NFKC_SCF; 0291 # Lm MODIFIER LETTER SMALL Z WITH CURL
+1DBE ; NFKC_SCF; 0292 # Lm MODIFIER LETTER SMALL EZH
+1DBF ; NFKC_SCF; 03B8 # Lm MODIFIER LETTER SMALL THETA
+1E00 ; NFKC_SCF; 1E01 # L& LATIN CAPITAL LETTER A WITH RING BELOW
+1E02 ; NFKC_SCF; 1E03 # L& LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E04 ; NFKC_SCF; 1E05 # L& LATIN CAPITAL LETTER B WITH DOT BELOW
+1E06 ; NFKC_SCF; 1E07 # L& LATIN CAPITAL LETTER B WITH LINE BELOW
+1E08 ; NFKC_SCF; 1E09 # L& LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E0A ; NFKC_SCF; 1E0B # L& LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0C ; NFKC_SCF; 1E0D # L& LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0E ; NFKC_SCF; 1E0F # L& LATIN CAPITAL LETTER D WITH LINE BELOW
+1E10 ; NFKC_SCF; 1E11 # L& LATIN CAPITAL LETTER D WITH CEDILLA
+1E12 ; NFKC_SCF; 1E13 # L& LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E14 ; NFKC_SCF; 1E15 # L& LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E16 ; NFKC_SCF; 1E17 # L& LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E18 ; NFKC_SCF; 1E19 # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E1A ; NFKC_SCF; 1E1B # L& LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1C ; NFKC_SCF; 1E1D # L& LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1E ; NFKC_SCF; 1E1F # L& LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E20 ; NFKC_SCF; 1E21 # L& LATIN CAPITAL LETTER G WITH MACRON
+1E22 ; NFKC_SCF; 1E23 # L& LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E24 ; NFKC_SCF; 1E25 # L& LATIN CAPITAL LETTER H WITH DOT BELOW
+1E26 ; NFKC_SCF; 1E27 # L& LATIN CAPITAL LETTER H WITH DIAERESIS
+1E28 ; NFKC_SCF; 1E29 # L& LATIN CAPITAL LETTER H WITH CEDILLA
+1E2A ; NFKC_SCF; 1E2B # L& LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2C ; NFKC_SCF; 1E2D # L& LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2E ; NFKC_SCF; 1E2F # L& LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E30 ; NFKC_SCF; 1E31 # L& LATIN CAPITAL LETTER K WITH ACUTE
+1E32 ; NFKC_SCF; 1E33 # L& LATIN CAPITAL LETTER K WITH DOT BELOW
+1E34 ; NFKC_SCF; 1E35 # L& LATIN CAPITAL LETTER K WITH LINE BELOW
+1E36 ; NFKC_SCF; 1E37 # L& LATIN CAPITAL LETTER L WITH DOT BELOW
+1E38 ; NFKC_SCF; 1E39 # L& LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E3A ; NFKC_SCF; 1E3B # L& LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3C ; NFKC_SCF; 1E3D # L& LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3E ; NFKC_SCF; 1E3F # L& LATIN CAPITAL LETTER M WITH ACUTE
+1E40 ; NFKC_SCF; 1E41 # L& LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E42 ; NFKC_SCF; 1E43 # L& LATIN CAPITAL LETTER M WITH DOT BELOW
+1E44 ; NFKC_SCF; 1E45 # L& LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E46 ; NFKC_SCF; 1E47 # L& LATIN CAPITAL LETTER N WITH DOT BELOW
+1E48 ; NFKC_SCF; 1E49 # L& LATIN CAPITAL LETTER N WITH LINE BELOW
+1E4A ; NFKC_SCF; 1E4B # L& LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4C ; NFKC_SCF; 1E4D # L& LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4E ; NFKC_SCF; 1E4F # L& LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E50 ; NFKC_SCF; 1E51 # L& LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E52 ; NFKC_SCF; 1E53 # L& LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E54 ; NFKC_SCF; 1E55 # L& LATIN CAPITAL LETTER P WITH ACUTE
+1E56 ; NFKC_SCF; 1E57 # L& LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E58 ; NFKC_SCF; 1E59 # L& LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E5A ; NFKC_SCF; 1E5B # L& LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5C ; NFKC_SCF; 1E5D # L& LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5E ; NFKC_SCF; 1E5F # L& LATIN CAPITAL LETTER R WITH LINE BELOW
+1E60 ; NFKC_SCF; 1E61 # L& LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E62 ; NFKC_SCF; 1E63 # L& LATIN CAPITAL LETTER S WITH DOT BELOW
+1E64 ; NFKC_SCF; 1E65 # L& LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E66 ; NFKC_SCF; 1E67 # L& LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E68 ; NFKC_SCF; 1E69 # L& LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A ; NFKC_SCF; 1E6B # L& LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6C ; NFKC_SCF; 1E6D # L& LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6E ; NFKC_SCF; 1E6F # L& LATIN CAPITAL LETTER T WITH LINE BELOW
+1E70 ; NFKC_SCF; 1E71 # L& LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E72 ; NFKC_SCF; 1E73 # L& LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E74 ; NFKC_SCF; 1E75 # L& LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E76 ; NFKC_SCF; 1E77 # L& LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E78 ; NFKC_SCF; 1E79 # L& LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E7A ; NFKC_SCF; 1E7B # L& LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7C ; NFKC_SCF; 1E7D # L& LATIN CAPITAL LETTER V WITH TILDE
+1E7E ; NFKC_SCF; 1E7F # L& LATIN CAPITAL LETTER V WITH DOT BELOW
+1E80 ; NFKC_SCF; 1E81 # L& LATIN CAPITAL LETTER W WITH GRAVE
+1E82 ; NFKC_SCF; 1E83 # L& LATIN CAPITAL LETTER W WITH ACUTE
+1E84 ; NFKC_SCF; 1E85 # L& LATIN CAPITAL LETTER W WITH DIAERESIS
+1E86 ; NFKC_SCF; 1E87 # L& LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E88 ; NFKC_SCF; 1E89 # L& LATIN CAPITAL LETTER W WITH DOT BELOW
+1E8A ; NFKC_SCF; 1E8B # L& LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8C ; NFKC_SCF; 1E8D # L& LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8E ; NFKC_SCF; 1E8F # L& LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E90 ; NFKC_SCF; 1E91 # L& LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E92 ; NFKC_SCF; 1E93 # L& LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E94 ; NFKC_SCF; 1E95 # L& LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E9A ; NFKC_SCF; 0061 02BE # L& LATIN SMALL LETTER A WITH RIGHT HALF RING
+1E9B ; NFKC_SCF; 1E61 # L& LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1E9E ; NFKC_SCF; 00DF # L& LATIN CAPITAL LETTER SHARP S
+1EA0 ; NFKC_SCF; 1EA1 # L& LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA2 ; NFKC_SCF; 1EA3 # L& LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA4 ; NFKC_SCF; 1EA5 # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6 ; NFKC_SCF; 1EA7 # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8 ; NFKC_SCF; 1EA9 # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA ; NFKC_SCF; 1EAB # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC ; NFKC_SCF; 1EAD # L& LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE ; NFKC_SCF; 1EAF # L& LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EB0 ; NFKC_SCF; 1EB1 # L& LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB2 ; NFKC_SCF; 1EB3 # L& LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4 ; NFKC_SCF; 1EB5 # L& LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB6 ; NFKC_SCF; 1EB7 # L& LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB8 ; NFKC_SCF; 1EB9 # L& LATIN CAPITAL LETTER E WITH DOT BELOW
+1EBA ; NFKC_SCF; 1EBB # L& LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBC ; NFKC_SCF; 1EBD # L& LATIN CAPITAL LETTER E WITH TILDE
+1EBE ; NFKC_SCF; 1EBF # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0 ; NFKC_SCF; 1EC1 # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2 ; NFKC_SCF; 1EC3 # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4 ; NFKC_SCF; 1EC5 # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6 ; NFKC_SCF; 1EC7 # L& LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8 ; NFKC_SCF; 1EC9 # L& LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1ECA ; NFKC_SCF; 1ECB # L& LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECC ; NFKC_SCF; 1ECD # L& LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECE ; NFKC_SCF; 1ECF # L& LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ED0 ; NFKC_SCF; 1ED1 # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2 ; NFKC_SCF; 1ED3 # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4 ; NFKC_SCF; 1ED5 # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6 ; NFKC_SCF; 1ED7 # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8 ; NFKC_SCF; 1ED9 # L& LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA ; NFKC_SCF; 1EDB # L& LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDC ; NFKC_SCF; 1EDD # L& LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDE ; NFKC_SCF; 1EDF # L& LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EE0 ; NFKC_SCF; 1EE1 # L& LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE2 ; NFKC_SCF; 1EE3 # L& LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE4 ; NFKC_SCF; 1EE5 # L& LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE6 ; NFKC_SCF; 1EE7 # L& LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE8 ; NFKC_SCF; 1EE9 # L& LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EEA ; NFKC_SCF; 1EEB # L& LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEC ; NFKC_SCF; 1EED # L& LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EEE ; NFKC_SCF; 1EEF # L& LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EF0 ; NFKC_SCF; 1EF1 # L& LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF2 ; NFKC_SCF; 1EF3 # L& LATIN CAPITAL LETTER Y WITH GRAVE
+1EF4 ; NFKC_SCF; 1EF5 # L& LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF6 ; NFKC_SCF; 1EF7 # L& LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF8 ; NFKC_SCF; 1EF9 # L& LATIN CAPITAL LETTER Y WITH TILDE
+1EFA ; NFKC_SCF; 1EFB # L& LATIN CAPITAL LETTER MIDDLE-WELSH LL
+1EFC ; NFKC_SCF; 1EFD # L& LATIN CAPITAL LETTER MIDDLE-WELSH V
+1EFE ; NFKC_SCF; 1EFF # L& LATIN CAPITAL LETTER Y WITH LOOP
+1F08 ; NFKC_SCF; 1F00 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F09 ; NFKC_SCF; 1F01 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F0A ; NFKC_SCF; 1F02 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F0B ; NFKC_SCF; 1F03 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F0C ; NFKC_SCF; 1F04 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F0D ; NFKC_SCF; 1F05 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F0E ; NFKC_SCF; 1F06 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0F ; NFKC_SCF; 1F07 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F18 ; NFKC_SCF; 1F10 # L& GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F19 ; NFKC_SCF; 1F11 # L& GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F1A ; NFKC_SCF; 1F12 # L& GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F1B ; NFKC_SCF; 1F13 # L& GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+1F1C ; NFKC_SCF; 1F14 # L& GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F1D ; NFKC_SCF; 1F15 # L& GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F28 ; NFKC_SCF; 1F20 # L& GREEK CAPITAL LETTER ETA WITH PSILI
+1F29 ; NFKC_SCF; 1F21 # L& GREEK CAPITAL LETTER ETA WITH DASIA
+1F2A ; NFKC_SCF; 1F22 # L& GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F2B ; NFKC_SCF; 1F23 # L& GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F2C ; NFKC_SCF; 1F24 # L& GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F2D ; NFKC_SCF; 1F25 # L& GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F2E ; NFKC_SCF; 1F26 # L& GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2F ; NFKC_SCF; 1F27 # L& GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F38 ; NFKC_SCF; 1F30 # L& GREEK CAPITAL LETTER IOTA WITH PSILI
+1F39 ; NFKC_SCF; 1F31 # L& GREEK CAPITAL LETTER IOTA WITH DASIA
+1F3A ; NFKC_SCF; 1F32 # L& GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F3B ; NFKC_SCF; 1F33 # L& GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F3C ; NFKC_SCF; 1F34 # L& GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F3D ; NFKC_SCF; 1F35 # L& GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F3E ; NFKC_SCF; 1F36 # L& GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3F ; NFKC_SCF; 1F37 # L& GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F48 ; NFKC_SCF; 1F40 # L& GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F49 ; NFKC_SCF; 1F41 # L& GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F4A ; NFKC_SCF; 1F42 # L& GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F4B ; NFKC_SCF; 1F43 # L& GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+1F4C ; NFKC_SCF; 1F44 # L& GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F4D ; NFKC_SCF; 1F45 # L& GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F59 ; NFKC_SCF; 1F51 # L& GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; NFKC_SCF; 1F53 # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; NFKC_SCF; 1F55 # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F ; NFKC_SCF; 1F57 # L& GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F68 ; NFKC_SCF; 1F60 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F69 ; NFKC_SCF; 1F61 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F6A ; NFKC_SCF; 1F62 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1F6B ; NFKC_SCF; 1F63 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1F6C ; NFKC_SCF; 1F64 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1F6D ; NFKC_SCF; 1F65 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1F6E ; NFKC_SCF; 1F66 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6F ; NFKC_SCF; 1F67 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F71 ; NFKC_SCF; 03AC # L& GREEK SMALL LETTER ALPHA WITH OXIA
+1F73 ; NFKC_SCF; 03AD # L& GREEK SMALL LETTER EPSILON WITH OXIA
+1F75 ; NFKC_SCF; 03AE # L& GREEK SMALL LETTER ETA WITH OXIA
+1F77 ; NFKC_SCF; 03AF # L& GREEK SMALL LETTER IOTA WITH OXIA
+1F79 ; NFKC_SCF; 03CC # L& GREEK SMALL LETTER OMICRON WITH OXIA
+1F7B ; NFKC_SCF; 03CD # L& GREEK SMALL LETTER UPSILON WITH OXIA
+1F7D ; NFKC_SCF; 03CE # L& GREEK SMALL LETTER OMEGA WITH OXIA
+1F88 ; NFKC_SCF; 1F80 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89 ; NFKC_SCF; 1F81 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A ; NFKC_SCF; 1F82 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B ; NFKC_SCF; 1F83 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C ; NFKC_SCF; 1F84 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D ; NFKC_SCF; 1F85 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E ; NFKC_SCF; 1F86 # L& GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F ; NFKC_SCF; 1F87 # L& GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F98 ; NFKC_SCF; 1F90 # L& GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99 ; NFKC_SCF; 1F91 # L& GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A ; NFKC_SCF; 1F92 # L& GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B ; NFKC_SCF; 1F93 # L& GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C ; NFKC_SCF; 1F94 # L& GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D ; NFKC_SCF; 1F95 # L& GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E ; NFKC_SCF; 1F96 # L& GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F ; NFKC_SCF; 1F97 # L& GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA8 ; NFKC_SCF; 1FA0 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9 ; NFKC_SCF; 1FA1 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA ; NFKC_SCF; 1FA2 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB ; NFKC_SCF; 1FA3 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC ; NFKC_SCF; 1FA4 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD ; NFKC_SCF; 1FA5 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE ; NFKC_SCF; 1FA6 # L& GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF ; NFKC_SCF; 1FA7 # L& GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB8 ; NFKC_SCF; 1FB0 # L& GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB9 ; NFKC_SCF; 1FB1 # L& GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FBA ; NFKC_SCF; 1F70 # L& GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FBB ; NFKC_SCF; 03AC # L& GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBC ; NFKC_SCF; 1FB3 # L& GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; NFKC_SCF; 0020 0313 # Sk GREEK KORONIS
+1FBE ; NFKC_SCF; 03B9 # L& GREEK PROSGEGRAMMENI
+1FBF ; NFKC_SCF; 0020 0313 # Sk GREEK PSILI
+1FC0 ; NFKC_SCF; 0020 0342 # Sk GREEK PERISPOMENI
+1FC1 ; NFKC_SCF; 0020 0308 0342 # Sk GREEK DIALYTIKA AND PERISPOMENI
+1FC8 ; NFKC_SCF; 1F72 # L& GREEK CAPITAL LETTER EPSILON WITH VARIA
+1FC9 ; NFKC_SCF; 03AD # L& GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCA ; NFKC_SCF; 1F74 # L& GREEK CAPITAL LETTER ETA WITH VARIA
+1FCB ; NFKC_SCF; 03AE # L& GREEK CAPITAL LETTER ETA WITH OXIA
+1FCC ; NFKC_SCF; 1FC3 # L& GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD ; NFKC_SCF; 0020 0313 0300 # Sk GREEK PSILI AND VARIA
+1FCE ; NFKC_SCF; 0020 0313 0301 # Sk GREEK PSILI AND OXIA
+1FCF ; NFKC_SCF; 0020 0313 0342 # Sk GREEK PSILI AND PERISPOMENI
+1FD3 ; NFKC_SCF; 0390 # L& GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD8 ; NFKC_SCF; 1FD0 # L& GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD9 ; NFKC_SCF; 1FD1 # L& GREEK CAPITAL LETTER IOTA WITH MACRON
+1FDA ; NFKC_SCF; 1F76 # L& GREEK CAPITAL LETTER IOTA WITH VARIA
+1FDB ; NFKC_SCF; 03AF # L& GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD ; NFKC_SCF; 0020 0314 0300 # Sk GREEK DASIA AND VARIA
+1FDE ; NFKC_SCF; 0020 0314 0301 # Sk GREEK DASIA AND OXIA
+1FDF ; NFKC_SCF; 0020 0314 0342 # Sk GREEK DASIA AND PERISPOMENI
+1FE3 ; NFKC_SCF; 03B0 # L& GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE8 ; NFKC_SCF; 1FE0 # L& GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE9 ; NFKC_SCF; 1FE1 # L& GREEK CAPITAL LETTER UPSILON WITH MACRON
+1FEA ; NFKC_SCF; 1F7A # L& GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FEB ; NFKC_SCF; 03CD # L& GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEC ; NFKC_SCF; 1FE5 # L& GREEK CAPITAL LETTER RHO WITH DASIA
+1FED ; NFKC_SCF; 0020 0308 0300 # Sk GREEK DIALYTIKA AND VARIA
+1FEE ; NFKC_SCF; 0020 0308 0301 # Sk GREEK DIALYTIKA AND OXIA
+1FEF ; NFKC_SCF; 0060 # Sk GREEK VARIA
+1FF8 ; NFKC_SCF; 1F78 # L& GREEK CAPITAL LETTER OMICRON WITH VARIA
+1FF9 ; NFKC_SCF; 03CC # L& GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFA ; NFKC_SCF; 1F7C # L& GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FFB ; NFKC_SCF; 03CE # L& GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFC ; NFKC_SCF; 1FF3 # L& GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD ; NFKC_SCF; 0020 0301 # Sk GREEK OXIA
+1FFE ; NFKC_SCF; 0020 0314 # Sk GREEK DASIA
+2000..200A ; NFKC_SCF; 0020 # Zs [11] EN QUAD..HAIR SPACE
+200B..200F ; NFKC_SCF; # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
+2011 ; NFKC_SCF; 2010 # Pd NON-BREAKING HYPHEN
+2017 ; NFKC_SCF; 0020 0333 # Po DOUBLE LOW LINE
+2024 ; NFKC_SCF; 002E # Po ONE DOT LEADER
+2025 ; NFKC_SCF; 002E 002E # Po TWO DOT LEADER
+2026 ; NFKC_SCF; 002E 002E 002E # Po HORIZONTAL ELLIPSIS
+202A..202E ; NFKC_SCF; # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F ; NFKC_SCF; 0020 # Zs NARROW NO-BREAK SPACE
+2033 ; NFKC_SCF; 2032 2032 # Po DOUBLE PRIME
+2034 ; NFKC_SCF; 2032 2032 2032 # Po TRIPLE PRIME
+2036 ; NFKC_SCF; 2035 2035 # Po REVERSED DOUBLE PRIME
+2037 ; NFKC_SCF; 2035 2035 2035 # Po REVERSED TRIPLE PRIME
+203C ; NFKC_SCF; 0021 0021 # Po DOUBLE EXCLAMATION MARK
+203E ; NFKC_SCF; 0020 0305 # Po OVERLINE
+2047 ; NFKC_SCF; 003F 003F # Po DOUBLE QUESTION MARK
+2048 ; NFKC_SCF; 003F 0021 # Po QUESTION EXCLAMATION MARK
+2049 ; NFKC_SCF; 0021 003F # Po EXCLAMATION QUESTION MARK
+2057 ; NFKC_SCF; 2032 2032 2032 2032 #Po QUADRUPLE PRIME
+205F ; NFKC_SCF; 0020 # Zs MEDIUM MATHEMATICAL SPACE
+2060..2064 ; NFKC_SCF; # Cf [5] WORD JOINER..INVISIBLE PLUS
+2065 ; NFKC_SCF; # Cn <reserved-2065>
+2066..206F ; NFKC_SCF; # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+2070 ; NFKC_SCF; 0030 # No SUPERSCRIPT ZERO
+2071 ; NFKC_SCF; 0069 # Lm SUPERSCRIPT LATIN SMALL LETTER I
+2074 ; NFKC_SCF; 0034 # No SUPERSCRIPT FOUR
+2075 ; NFKC_SCF; 0035 # No SUPERSCRIPT FIVE
+2076 ; NFKC_SCF; 0036 # No SUPERSCRIPT SIX
+2077 ; NFKC_SCF; 0037 # No SUPERSCRIPT SEVEN
+2078 ; NFKC_SCF; 0038 # No SUPERSCRIPT EIGHT
+2079 ; NFKC_SCF; 0039 # No SUPERSCRIPT NINE
+207A ; NFKC_SCF; 002B # Sm SUPERSCRIPT PLUS SIGN
+207B ; NFKC_SCF; 2212 # Sm SUPERSCRIPT MINUS
+207C ; NFKC_SCF; 003D # Sm SUPERSCRIPT EQUALS SIGN
+207D ; NFKC_SCF; 0028 # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; NFKC_SCF; 0029 # Pe SUPERSCRIPT RIGHT PARENTHESIS
+207F ; NFKC_SCF; 006E # Lm SUPERSCRIPT LATIN SMALL LETTER N
+2080 ; NFKC_SCF; 0030 # No SUBSCRIPT ZERO
+2081 ; NFKC_SCF; 0031 # No SUBSCRIPT ONE
+2082 ; NFKC_SCF; 0032 # No SUBSCRIPT TWO
+2083 ; NFKC_SCF; 0033 # No SUBSCRIPT THREE
+2084 ; NFKC_SCF; 0034 # No SUBSCRIPT FOUR
+2085 ; NFKC_SCF; 0035 # No SUBSCRIPT FIVE
+2086 ; NFKC_SCF; 0036 # No SUBSCRIPT SIX
+2087 ; NFKC_SCF; 0037 # No SUBSCRIPT SEVEN
+2088 ; NFKC_SCF; 0038 # No SUBSCRIPT EIGHT
+2089 ; NFKC_SCF; 0039 # No SUBSCRIPT NINE
+208A ; NFKC_SCF; 002B # Sm SUBSCRIPT PLUS SIGN
+208B ; NFKC_SCF; 2212 # Sm SUBSCRIPT MINUS
+208C ; NFKC_SCF; 003D # Sm SUBSCRIPT EQUALS SIGN
+208D ; NFKC_SCF; 0028 # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; NFKC_SCF; 0029 # Pe SUBSCRIPT RIGHT PARENTHESIS
+2090 ; NFKC_SCF; 0061 # Lm LATIN SUBSCRIPT SMALL LETTER A
+2091 ; NFKC_SCF; 0065 # Lm LATIN SUBSCRIPT SMALL LETTER E
+2092 ; NFKC_SCF; 006F # Lm LATIN SUBSCRIPT SMALL LETTER O
+2093 ; NFKC_SCF; 0078 # Lm LATIN SUBSCRIPT SMALL LETTER X
+2094 ; NFKC_SCF; 0259 # Lm LATIN SUBSCRIPT SMALL LETTER SCHWA
+2095 ; NFKC_SCF; 0068 # Lm LATIN SUBSCRIPT SMALL LETTER H
+2096 ; NFKC_SCF; 006B # Lm LATIN SUBSCRIPT SMALL LETTER K
+2097 ; NFKC_SCF; 006C # Lm LATIN SUBSCRIPT SMALL LETTER L
+2098 ; NFKC_SCF; 006D # Lm LATIN SUBSCRIPT SMALL LETTER M
+2099 ; NFKC_SCF; 006E # Lm LATIN SUBSCRIPT SMALL LETTER N
+209A ; NFKC_SCF; 0070 # Lm LATIN SUBSCRIPT SMALL LETTER P
+209B ; NFKC_SCF; 0073 # Lm LATIN SUBSCRIPT SMALL LETTER S
+209C ; NFKC_SCF; 0074 # Lm LATIN SUBSCRIPT SMALL LETTER T
+20A8 ; NFKC_SCF; 0072 0073 # Sc RUPEE SIGN
+2100 ; NFKC_SCF; 0061 002F 0063 # So ACCOUNT OF
+2101 ; NFKC_SCF; 0061 002F 0073 # So ADDRESSED TO THE SUBJECT
+2102 ; NFKC_SCF; 0063 # L& DOUBLE-STRUCK CAPITAL C
+2103 ; NFKC_SCF; 00B0 0063 # So DEGREE CELSIUS
+2105 ; NFKC_SCF; 0063 002F 006F # So CARE OF
+2106 ; NFKC_SCF; 0063 002F 0075 # So CADA UNA
+2107 ; NFKC_SCF; 025B # L& EULER CONSTANT
+2109 ; NFKC_SCF; 00B0 0066 # So DEGREE FAHRENHEIT
+210A ; NFKC_SCF; 0067 # L& SCRIPT SMALL G
+210B..210E ; NFKC_SCF; 0068 # L& [4] SCRIPT CAPITAL H..PLANCK CONSTANT
+210F ; NFKC_SCF; 0127 # L& PLANCK CONSTANT OVER TWO PI
+2110..2111 ; NFKC_SCF; 0069 # L& [2] SCRIPT CAPITAL I..BLACK-LETTER CAPITAL I
+2112..2113 ; NFKC_SCF; 006C # L& [2] SCRIPT CAPITAL L..SCRIPT SMALL L
+2115 ; NFKC_SCF; 006E # L& DOUBLE-STRUCK CAPITAL N
+2116 ; NFKC_SCF; 006E 006F # So NUMERO SIGN
+2119 ; NFKC_SCF; 0070 # L& DOUBLE-STRUCK CAPITAL P
+211A ; NFKC_SCF; 0071 # L& DOUBLE-STRUCK CAPITAL Q
+211B..211D ; NFKC_SCF; 0072 # L& [3] SCRIPT CAPITAL R..DOUBLE-STRUCK CAPITAL R
+2120 ; NFKC_SCF; 0073 006D # So SERVICE MARK
+2121 ; NFKC_SCF; 0074 0065 006C # So TELEPHONE SIGN
+2122 ; NFKC_SCF; 0074 006D # So TRADE MARK SIGN
+2124 ; NFKC_SCF; 007A # L& DOUBLE-STRUCK CAPITAL Z
+2126 ; NFKC_SCF; 03C9 # L& OHM SIGN
+2128 ; NFKC_SCF; 007A # L& BLACK-LETTER CAPITAL Z
+212A ; NFKC_SCF; 006B # L& KELVIN SIGN
+212B ; NFKC_SCF; 00E5 # L& ANGSTROM SIGN
+212C ; NFKC_SCF; 0062 # L& SCRIPT CAPITAL B
+212D ; NFKC_SCF; 0063 # L& BLACK-LETTER CAPITAL C
+212F..2130 ; NFKC_SCF; 0065 # L& [2] SCRIPT SMALL E..SCRIPT CAPITAL E
+2131 ; NFKC_SCF; 0066 # L& SCRIPT CAPITAL F
+2132 ; NFKC_SCF; 214E # L& TURNED CAPITAL F
+2133 ; NFKC_SCF; 006D # L& SCRIPT CAPITAL M
+2134 ; NFKC_SCF; 006F # L& SCRIPT SMALL O
+2135 ; NFKC_SCF; 05D0 # Lo ALEF SYMBOL
+2136 ; NFKC_SCF; 05D1 # Lo BET SYMBOL
+2137 ; NFKC_SCF; 05D2 # Lo GIMEL SYMBOL
+2138 ; NFKC_SCF; 05D3 # Lo DALET SYMBOL
+2139 ; NFKC_SCF; 0069 # L& INFORMATION SOURCE
+213B ; NFKC_SCF; 0066 0061 0078 # So FACSIMILE SIGN
+213C ; NFKC_SCF; 03C0 # L& DOUBLE-STRUCK SMALL PI
+213D..213E ; NFKC_SCF; 03B3 # L& [2] DOUBLE-STRUCK SMALL GAMMA..DOUBLE-STRUCK CAPITAL GAMMA
+213F ; NFKC_SCF; 03C0 # L& DOUBLE-STRUCK CAPITAL PI
+2140 ; NFKC_SCF; 2211 # Sm DOUBLE-STRUCK N-ARY SUMMATION
+2145..2146 ; NFKC_SCF; 0064 # L& [2] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL D
+2147 ; NFKC_SCF; 0065 # L& DOUBLE-STRUCK ITALIC SMALL E
+2148 ; NFKC_SCF; 0069 # L& DOUBLE-STRUCK ITALIC SMALL I
+2149 ; NFKC_SCF; 006A # L& DOUBLE-STRUCK ITALIC SMALL J
+2150 ; NFKC_SCF; 0031 2044 0037 # No VULGAR FRACTION ONE SEVENTH
+2151 ; NFKC_SCF; 0031 2044 0039 # No VULGAR FRACTION ONE NINTH
+2152 ; NFKC_SCF; 0031 2044 0031 0030 #No VULGAR FRACTION ONE TENTH
+2153 ; NFKC_SCF; 0031 2044 0033 # No VULGAR FRACTION ONE THIRD
+2154 ; NFKC_SCF; 0032 2044 0033 # No VULGAR FRACTION TWO THIRDS
+2155 ; NFKC_SCF; 0031 2044 0035 # No VULGAR FRACTION ONE FIFTH
+2156 ; NFKC_SCF; 0032 2044 0035 # No VULGAR FRACTION TWO FIFTHS
+2157 ; NFKC_SCF; 0033 2044 0035 # No VULGAR FRACTION THREE FIFTHS
+2158 ; NFKC_SCF; 0034 2044 0035 # No VULGAR FRACTION FOUR FIFTHS
+2159 ; NFKC_SCF; 0031 2044 0036 # No VULGAR FRACTION ONE SIXTH
+215A ; NFKC_SCF; 0035 2044 0036 # No VULGAR FRACTION FIVE SIXTHS
+215B ; NFKC_SCF; 0031 2044 0038 # No VULGAR FRACTION ONE EIGHTH
+215C ; NFKC_SCF; 0033 2044 0038 # No VULGAR FRACTION THREE EIGHTHS
+215D ; NFKC_SCF; 0035 2044 0038 # No VULGAR FRACTION FIVE EIGHTHS
+215E ; NFKC_SCF; 0037 2044 0038 # No VULGAR FRACTION SEVEN EIGHTHS
+215F ; NFKC_SCF; 0031 2044 # No FRACTION NUMERATOR ONE
+2160 ; NFKC_SCF; 0069 # Nl ROMAN NUMERAL ONE
+2161 ; NFKC_SCF; 0069 0069 # Nl ROMAN NUMERAL TWO
+2162 ; NFKC_SCF; 0069 0069 0069 # Nl ROMAN NUMERAL THREE
+2163 ; NFKC_SCF; 0069 0076 # Nl ROMAN NUMERAL FOUR
+2164 ; NFKC_SCF; 0076 # Nl ROMAN NUMERAL FIVE
+2165 ; NFKC_SCF; 0076 0069 # Nl ROMAN NUMERAL SIX
+2166 ; NFKC_SCF; 0076 0069 0069 # Nl ROMAN NUMERAL SEVEN
+2167 ; NFKC_SCF; 0076 0069 0069 0069 #Nl ROMAN NUMERAL EIGHT
+2168 ; NFKC_SCF; 0069 0078 # Nl ROMAN NUMERAL NINE
+2169 ; NFKC_SCF; 0078 # Nl ROMAN NUMERAL TEN
+216A ; NFKC_SCF; 0078 0069 # Nl ROMAN NUMERAL ELEVEN
+216B ; NFKC_SCF; 0078 0069 0069 # Nl ROMAN NUMERAL TWELVE
+216C ; NFKC_SCF; 006C # Nl ROMAN NUMERAL FIFTY
+216D ; NFKC_SCF; 0063 # Nl ROMAN NUMERAL ONE HUNDRED
+216E ; NFKC_SCF; 0064 # Nl ROMAN NUMERAL FIVE HUNDRED
+216F ; NFKC_SCF; 006D # Nl ROMAN NUMERAL ONE THOUSAND
+2170 ; NFKC_SCF; 0069 # Nl SMALL ROMAN NUMERAL ONE
+2171 ; NFKC_SCF; 0069 0069 # Nl SMALL ROMAN NUMERAL TWO
+2172 ; NFKC_SCF; 0069 0069 0069 # Nl SMALL ROMAN NUMERAL THREE
+2173 ; NFKC_SCF; 0069 0076 # Nl SMALL ROMAN NUMERAL FOUR
+2174 ; NFKC_SCF; 0076 # Nl SMALL ROMAN NUMERAL FIVE
+2175 ; NFKC_SCF; 0076 0069 # Nl SMALL ROMAN NUMERAL SIX
+2176 ; NFKC_SCF; 0076 0069 0069 # Nl SMALL ROMAN NUMERAL SEVEN
+2177 ; NFKC_SCF; 0076 0069 0069 0069 #Nl SMALL ROMAN NUMERAL EIGHT
+2178 ; NFKC_SCF; 0069 0078 # Nl SMALL ROMAN NUMERAL NINE
+2179 ; NFKC_SCF; 0078 # Nl SMALL ROMAN NUMERAL TEN
+217A ; NFKC_SCF; 0078 0069 # Nl SMALL ROMAN NUMERAL ELEVEN
+217B ; NFKC_SCF; 0078 0069 0069 # Nl SMALL ROMAN NUMERAL TWELVE
+217C ; NFKC_SCF; 006C # Nl SMALL ROMAN NUMERAL FIFTY
+217D ; NFKC_SCF; 0063 # Nl SMALL ROMAN NUMERAL ONE HUNDRED
+217E ; NFKC_SCF; 0064 # Nl SMALL ROMAN NUMERAL FIVE HUNDRED
+217F ; NFKC_SCF; 006D # Nl SMALL ROMAN NUMERAL ONE THOUSAND
+2183 ; NFKC_SCF; 2184 # L& ROMAN NUMERAL REVERSED ONE HUNDRED
+2189 ; NFKC_SCF; 0030 2044 0033 # No VULGAR FRACTION ZERO THIRDS
+222C ; NFKC_SCF; 222B 222B # Sm DOUBLE INTEGRAL
+222D ; NFKC_SCF; 222B 222B 222B # Sm TRIPLE INTEGRAL
+222F ; NFKC_SCF; 222E 222E # Sm SURFACE INTEGRAL
+2230 ; NFKC_SCF; 222E 222E 222E # Sm VOLUME INTEGRAL
+2329 ; NFKC_SCF; 3008 # Ps LEFT-POINTING ANGLE BRACKET
+232A ; NFKC_SCF; 3009 # Pe RIGHT-POINTING ANGLE BRACKET
+2460 ; NFKC_SCF; 0031 # No CIRCLED DIGIT ONE
+2461 ; NFKC_SCF; 0032 # No CIRCLED DIGIT TWO
+2462 ; NFKC_SCF; 0033 # No CIRCLED DIGIT THREE
+2463 ; NFKC_SCF; 0034 # No CIRCLED DIGIT FOUR
+2464 ; NFKC_SCF; 0035 # No CIRCLED DIGIT FIVE
+2465 ; NFKC_SCF; 0036 # No CIRCLED DIGIT SIX
+2466 ; NFKC_SCF; 0037 # No CIRCLED DIGIT SEVEN
+2467 ; NFKC_SCF; 0038 # No CIRCLED DIGIT EIGHT
+2468 ; NFKC_SCF; 0039 # No CIRCLED DIGIT NINE
+2469 ; NFKC_SCF; 0031 0030 # No CIRCLED NUMBER TEN
+246A ; NFKC_SCF; 0031 0031 # No CIRCLED NUMBER ELEVEN
+246B ; NFKC_SCF; 0031 0032 # No CIRCLED NUMBER TWELVE
+246C ; NFKC_SCF; 0031 0033 # No CIRCLED NUMBER THIRTEEN
+246D ; NFKC_SCF; 0031 0034 # No CIRCLED NUMBER FOURTEEN
+246E ; NFKC_SCF; 0031 0035 # No CIRCLED NUMBER FIFTEEN
+246F ; NFKC_SCF; 0031 0036 # No CIRCLED NUMBER SIXTEEN
+2470 ; NFKC_SCF; 0031 0037 # No CIRCLED NUMBER SEVENTEEN
+2471 ; NFKC_SCF; 0031 0038 # No CIRCLED NUMBER EIGHTEEN
+2472 ; NFKC_SCF; 0031 0039 # No CIRCLED NUMBER NINETEEN
+2473 ; NFKC_SCF; 0032 0030 # No CIRCLED NUMBER TWENTY
+2474 ; NFKC_SCF; 0028 0031 0029 # No PARENTHESIZED DIGIT ONE
+2475 ; NFKC_SCF; 0028 0032 0029 # No PARENTHESIZED DIGIT TWO
+2476 ; NFKC_SCF; 0028 0033 0029 # No PARENTHESIZED DIGIT THREE
+2477 ; NFKC_SCF; 0028 0034 0029 # No PARENTHESIZED DIGIT FOUR
+2478 ; NFKC_SCF; 0028 0035 0029 # No PARENTHESIZED DIGIT FIVE
+2479 ; NFKC_SCF; 0028 0036 0029 # No PARENTHESIZED DIGIT SIX
+247A ; NFKC_SCF; 0028 0037 0029 # No PARENTHESIZED DIGIT SEVEN
+247B ; NFKC_SCF; 0028 0038 0029 # No PARENTHESIZED DIGIT EIGHT
+247C ; NFKC_SCF; 0028 0039 0029 # No PARENTHESIZED DIGIT NINE
+247D ; NFKC_SCF; 0028 0031 0030 0029 #No PARENTHESIZED NUMBER TEN
+247E ; NFKC_SCF; 0028 0031 0031 0029 #No PARENTHESIZED NUMBER ELEVEN
+247F ; NFKC_SCF; 0028 0031 0032 0029 #No PARENTHESIZED NUMBER TWELVE
+2480 ; NFKC_SCF; 0028 0031 0033 0029 #No PARENTHESIZED NUMBER THIRTEEN
+2481 ; NFKC_SCF; 0028 0031 0034 0029 #No PARENTHESIZED NUMBER FOURTEEN
+2482 ; NFKC_SCF; 0028 0031 0035 0029 #No PARENTHESIZED NUMBER FIFTEEN
+2483 ; NFKC_SCF; 0028 0031 0036 0029 #No PARENTHESIZED NUMBER SIXTEEN
+2484 ; NFKC_SCF; 0028 0031 0037 0029 #No PARENTHESIZED NUMBER SEVENTEEN
+2485 ; NFKC_SCF; 0028 0031 0038 0029 #No PARENTHESIZED NUMBER EIGHTEEN
+2486 ; NFKC_SCF; 0028 0031 0039 0029 #No PARENTHESIZED NUMBER NINETEEN
+2487 ; NFKC_SCF; 0028 0032 0030 0029 #No PARENTHESIZED NUMBER TWENTY
+2488 ; NFKC_SCF; 0031 002E # No DIGIT ONE FULL STOP
+2489 ; NFKC_SCF; 0032 002E # No DIGIT TWO FULL STOP
+248A ; NFKC_SCF; 0033 002E # No DIGIT THREE FULL STOP
+248B ; NFKC_SCF; 0034 002E # No DIGIT FOUR FULL STOP
+248C ; NFKC_SCF; 0035 002E # No DIGIT FIVE FULL STOP
+248D ; NFKC_SCF; 0036 002E # No DIGIT SIX FULL STOP
+248E ; NFKC_SCF; 0037 002E # No DIGIT SEVEN FULL STOP
+248F ; NFKC_SCF; 0038 002E # No DIGIT EIGHT FULL STOP
+2490 ; NFKC_SCF; 0039 002E # No DIGIT NINE FULL STOP
+2491 ; NFKC_SCF; 0031 0030 002E # No NUMBER TEN FULL STOP
+2492 ; NFKC_SCF; 0031 0031 002E # No NUMBER ELEVEN FULL STOP
+2493 ; NFKC_SCF; 0031 0032 002E # No NUMBER TWELVE FULL STOP
+2494 ; NFKC_SCF; 0031 0033 002E # No NUMBER THIRTEEN FULL STOP
+2495 ; NFKC_SCF; 0031 0034 002E # No NUMBER FOURTEEN FULL STOP
+2496 ; NFKC_SCF; 0031 0035 002E # No NUMBER FIFTEEN FULL STOP
+2497 ; NFKC_SCF; 0031 0036 002E # No NUMBER SIXTEEN FULL STOP
+2498 ; NFKC_SCF; 0031 0037 002E # No NUMBER SEVENTEEN FULL STOP
+2499 ; NFKC_SCF; 0031 0038 002E # No NUMBER EIGHTEEN FULL STOP
+249A ; NFKC_SCF; 0031 0039 002E # No NUMBER NINETEEN FULL STOP
+249B ; NFKC_SCF; 0032 0030 002E # No NUMBER TWENTY FULL STOP
+249C ; NFKC_SCF; 0028 0061 0029 # So PARENTHESIZED LATIN SMALL LETTER A
+249D ; NFKC_SCF; 0028 0062 0029 # So PARENTHESIZED LATIN SMALL LETTER B
+249E ; NFKC_SCF; 0028 0063 0029 # So PARENTHESIZED LATIN SMALL LETTER C
+249F ; NFKC_SCF; 0028 0064 0029 # So PARENTHESIZED LATIN SMALL LETTER D
+24A0 ; NFKC_SCF; 0028 0065 0029 # So PARENTHESIZED LATIN SMALL LETTER E
+24A1 ; NFKC_SCF; 0028 0066 0029 # So PARENTHESIZED LATIN SMALL LETTER F
+24A2 ; NFKC_SCF; 0028 0067 0029 # So PARENTHESIZED LATIN SMALL LETTER G
+24A3 ; NFKC_SCF; 0028 0068 0029 # So PARENTHESIZED LATIN SMALL LETTER H
+24A4 ; NFKC_SCF; 0028 0069 0029 # So PARENTHESIZED LATIN SMALL LETTER I
+24A5 ; NFKC_SCF; 0028 006A 0029 # So PARENTHESIZED LATIN SMALL LETTER J
+24A6 ; NFKC_SCF; 0028 006B 0029 # So PARENTHESIZED LATIN SMALL LETTER K
+24A7 ; NFKC_SCF; 0028 006C 0029 # So PARENTHESIZED LATIN SMALL LETTER L
+24A8 ; NFKC_SCF; 0028 006D 0029 # So PARENTHESIZED LATIN SMALL LETTER M
+24A9 ; NFKC_SCF; 0028 006E 0029 # So PARENTHESIZED LATIN SMALL LETTER N
+24AA ; NFKC_SCF; 0028 006F 0029 # So PARENTHESIZED LATIN SMALL LETTER O
+24AB ; NFKC_SCF; 0028 0070 0029 # So PARENTHESIZED LATIN SMALL LETTER P
+24AC ; NFKC_SCF; 0028 0071 0029 # So PARENTHESIZED LATIN SMALL LETTER Q
+24AD ; NFKC_SCF; 0028 0072 0029 # So PARENTHESIZED LATIN SMALL LETTER R
+24AE ; NFKC_SCF; 0028 0073 0029 # So PARENTHESIZED LATIN SMALL LETTER S
+24AF ; NFKC_SCF; 0028 0074 0029 # So PARENTHESIZED LATIN SMALL LETTER T
+24B0 ; NFKC_SCF; 0028 0075 0029 # So PARENTHESIZED LATIN SMALL LETTER U
+24B1 ; NFKC_SCF; 0028 0076 0029 # So PARENTHESIZED LATIN SMALL LETTER V
+24B2 ; NFKC_SCF; 0028 0077 0029 # So PARENTHESIZED LATIN SMALL LETTER W
+24B3 ; NFKC_SCF; 0028 0078 0029 # So PARENTHESIZED LATIN SMALL LETTER X
+24B4 ; NFKC_SCF; 0028 0079 0029 # So PARENTHESIZED LATIN SMALL LETTER Y
+24B5 ; NFKC_SCF; 0028 007A 0029 # So PARENTHESIZED LATIN SMALL LETTER Z
+24B6 ; NFKC_SCF; 0061 # So CIRCLED LATIN CAPITAL LETTER A
+24B7 ; NFKC_SCF; 0062 # So CIRCLED LATIN CAPITAL LETTER B
+24B8 ; NFKC_SCF; 0063 # So CIRCLED LATIN CAPITAL LETTER C
+24B9 ; NFKC_SCF; 0064 # So CIRCLED LATIN CAPITAL LETTER D
+24BA ; NFKC_SCF; 0065 # So CIRCLED LATIN CAPITAL LETTER E
+24BB ; NFKC_SCF; 0066 # So CIRCLED LATIN CAPITAL LETTER F
+24BC ; NFKC_SCF; 0067 # So CIRCLED LATIN CAPITAL LETTER G
+24BD ; NFKC_SCF; 0068 # So CIRCLED LATIN CAPITAL LETTER H
+24BE ; NFKC_SCF; 0069 # So CIRCLED LATIN CAPITAL LETTER I
+24BF ; NFKC_SCF; 006A # So CIRCLED LATIN CAPITAL LETTER J
+24C0 ; NFKC_SCF; 006B # So CIRCLED LATIN CAPITAL LETTER K
+24C1 ; NFKC_SCF; 006C # So CIRCLED LATIN CAPITAL LETTER L
+24C2 ; NFKC_SCF; 006D # So CIRCLED LATIN CAPITAL LETTER M
+24C3 ; NFKC_SCF; 006E # So CIRCLED LATIN CAPITAL LETTER N
+24C4 ; NFKC_SCF; 006F # So CIRCLED LATIN CAPITAL LETTER O
+24C5 ; NFKC_SCF; 0070 # So CIRCLED LATIN CAPITAL LETTER P
+24C6 ; NFKC_SCF; 0071 # So CIRCLED LATIN CAPITAL LETTER Q
+24C7 ; NFKC_SCF; 0072 # So CIRCLED LATIN CAPITAL LETTER R
+24C8 ; NFKC_SCF; 0073 # So CIRCLED LATIN CAPITAL LETTER S
+24C9 ; NFKC_SCF; 0074 # So CIRCLED LATIN CAPITAL LETTER T
+24CA ; NFKC_SCF; 0075 # So CIRCLED LATIN CAPITAL LETTER U
+24CB ; NFKC_SCF; 0076 # So CIRCLED LATIN CAPITAL LETTER V
+24CC ; NFKC_SCF; 0077 # So CIRCLED LATIN CAPITAL LETTER W
+24CD ; NFKC_SCF; 0078 # So CIRCLED LATIN CAPITAL LETTER X
+24CE ; NFKC_SCF; 0079 # So CIRCLED LATIN CAPITAL LETTER Y
+24CF ; NFKC_SCF; 007A # So CIRCLED LATIN CAPITAL LETTER Z
+24D0 ; NFKC_SCF; 0061 # So CIRCLED LATIN SMALL LETTER A
+24D1 ; NFKC_SCF; 0062 # So CIRCLED LATIN SMALL LETTER B
+24D2 ; NFKC_SCF; 0063 # So CIRCLED LATIN SMALL LETTER C
+24D3 ; NFKC_SCF; 0064 # So CIRCLED LATIN SMALL LETTER D
+24D4 ; NFKC_SCF; 0065 # So CIRCLED LATIN SMALL LETTER E
+24D5 ; NFKC_SCF; 0066 # So CIRCLED LATIN SMALL LETTER F
+24D6 ; NFKC_SCF; 0067 # So CIRCLED LATIN SMALL LETTER G
+24D7 ; NFKC_SCF; 0068 # So CIRCLED LATIN SMALL LETTER H
+24D8 ; NFKC_SCF; 0069 # So CIRCLED LATIN SMALL LETTER I
+24D9 ; NFKC_SCF; 006A # So CIRCLED LATIN SMALL LETTER J
+24DA ; NFKC_SCF; 006B # So CIRCLED LATIN SMALL LETTER K
+24DB ; NFKC_SCF; 006C # So CIRCLED LATIN SMALL LETTER L
+24DC ; NFKC_SCF; 006D # So CIRCLED LATIN SMALL LETTER M
+24DD ; NFKC_SCF; 006E # So CIRCLED LATIN SMALL LETTER N
+24DE ; NFKC_SCF; 006F # So CIRCLED LATIN SMALL LETTER O
+24DF ; NFKC_SCF; 0070 # So CIRCLED LATIN SMALL LETTER P
+24E0 ; NFKC_SCF; 0071 # So CIRCLED LATIN SMALL LETTER Q
+24E1 ; NFKC_SCF; 0072 # So CIRCLED LATIN SMALL LETTER R
+24E2 ; NFKC_SCF; 0073 # So CIRCLED LATIN SMALL LETTER S
+24E3 ; NFKC_SCF; 0074 # So CIRCLED LATIN SMALL LETTER T
+24E4 ; NFKC_SCF; 0075 # So CIRCLED LATIN SMALL LETTER U
+24E5 ; NFKC_SCF; 0076 # So CIRCLED LATIN SMALL LETTER V
+24E6 ; NFKC_SCF; 0077 # So CIRCLED LATIN SMALL LETTER W
+24E7 ; NFKC_SCF; 0078 # So CIRCLED LATIN SMALL LETTER X
+24E8 ; NFKC_SCF; 0079 # So CIRCLED LATIN SMALL LETTER Y
+24E9 ; NFKC_SCF; 007A # So CIRCLED LATIN SMALL LETTER Z
+24EA ; NFKC_SCF; 0030 # No CIRCLED DIGIT ZERO
+2A0C ; NFKC_SCF; 222B 222B 222B 222B #Sm QUADRUPLE INTEGRAL OPERATOR
+2A74 ; NFKC_SCF; 003A 003A 003D # Sm DOUBLE COLON EQUAL
+2A75 ; NFKC_SCF; 003D 003D # Sm TWO CONSECUTIVE EQUALS SIGNS
+2A76 ; NFKC_SCF; 003D 003D 003D # Sm THREE CONSECUTIVE EQUALS SIGNS
+2ADC ; NFKC_SCF; 2ADD 0338 # Sm FORKING
+2C00 ; NFKC_SCF; 2C30 # L& GLAGOLITIC CAPITAL LETTER AZU
+2C01 ; NFKC_SCF; 2C31 # L& GLAGOLITIC CAPITAL LETTER BUKY
+2C02 ; NFKC_SCF; 2C32 # L& GLAGOLITIC CAPITAL LETTER VEDE
+2C03 ; NFKC_SCF; 2C33 # L& GLAGOLITIC CAPITAL LETTER GLAGOLI
+2C04 ; NFKC_SCF; 2C34 # L& GLAGOLITIC CAPITAL LETTER DOBRO
+2C05 ; NFKC_SCF; 2C35 # L& GLAGOLITIC CAPITAL LETTER YESTU
+2C06 ; NFKC_SCF; 2C36 # L& GLAGOLITIC CAPITAL LETTER ZHIVETE
+2C07 ; NFKC_SCF; 2C37 # L& GLAGOLITIC CAPITAL LETTER DZELO
+2C08 ; NFKC_SCF; 2C38 # L& GLAGOLITIC CAPITAL LETTER ZEMLJA
+2C09 ; NFKC_SCF; 2C39 # L& GLAGOLITIC CAPITAL LETTER IZHE
+2C0A ; NFKC_SCF; 2C3A # L& GLAGOLITIC CAPITAL LETTER INITIAL IZHE
+2C0B ; NFKC_SCF; 2C3B # L& GLAGOLITIC CAPITAL LETTER I
+2C0C ; NFKC_SCF; 2C3C # L& GLAGOLITIC CAPITAL LETTER DJERVI
+2C0D ; NFKC_SCF; 2C3D # L& GLAGOLITIC CAPITAL LETTER KAKO
+2C0E ; NFKC_SCF; 2C3E # L& GLAGOLITIC CAPITAL LETTER LJUDIJE
+2C0F ; NFKC_SCF; 2C3F # L& GLAGOLITIC CAPITAL LETTER MYSLITE
+2C10 ; NFKC_SCF; 2C40 # L& GLAGOLITIC CAPITAL LETTER NASHI
+2C11 ; NFKC_SCF; 2C41 # L& GLAGOLITIC CAPITAL LETTER ONU
+2C12 ; NFKC_SCF; 2C42 # L& GLAGOLITIC CAPITAL LETTER POKOJI
+2C13 ; NFKC_SCF; 2C43 # L& GLAGOLITIC CAPITAL LETTER RITSI
+2C14 ; NFKC_SCF; 2C44 # L& GLAGOLITIC CAPITAL LETTER SLOVO
+2C15 ; NFKC_SCF; 2C45 # L& GLAGOLITIC CAPITAL LETTER TVRIDO
+2C16 ; NFKC_SCF; 2C46 # L& GLAGOLITIC CAPITAL LETTER UKU
+2C17 ; NFKC_SCF; 2C47 # L& GLAGOLITIC CAPITAL LETTER FRITU
+2C18 ; NFKC_SCF; 2C48 # L& GLAGOLITIC CAPITAL LETTER HERU
+2C19 ; NFKC_SCF; 2C49 # L& GLAGOLITIC CAPITAL LETTER OTU
+2C1A ; NFKC_SCF; 2C4A # L& GLAGOLITIC CAPITAL LETTER PE
+2C1B ; NFKC_SCF; 2C4B # L& GLAGOLITIC CAPITAL LETTER SHTA
+2C1C ; NFKC_SCF; 2C4C # L& GLAGOLITIC CAPITAL LETTER TSI
+2C1D ; NFKC_SCF; 2C4D # L& GLAGOLITIC CAPITAL LETTER CHRIVI
+2C1E ; NFKC_SCF; 2C4E # L& GLAGOLITIC CAPITAL LETTER SHA
+2C1F ; NFKC_SCF; 2C4F # L& GLAGOLITIC CAPITAL LETTER YERU
+2C20 ; NFKC_SCF; 2C50 # L& GLAGOLITIC CAPITAL LETTER YERI
+2C21 ; NFKC_SCF; 2C51 # L& GLAGOLITIC CAPITAL LETTER YATI
+2C22 ; NFKC_SCF; 2C52 # L& GLAGOLITIC CAPITAL LETTER SPIDERY HA
+2C23 ; NFKC_SCF; 2C53 # L& GLAGOLITIC CAPITAL LETTER YU
+2C24 ; NFKC_SCF; 2C54 # L& GLAGOLITIC CAPITAL LETTER SMALL YUS
+2C25 ; NFKC_SCF; 2C55 # L& GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
+2C26 ; NFKC_SCF; 2C56 # L& GLAGOLITIC CAPITAL LETTER YO
+2C27 ; NFKC_SCF; 2C57 # L& GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
+2C28 ; NFKC_SCF; 2C58 # L& GLAGOLITIC CAPITAL LETTER BIG YUS
+2C29 ; NFKC_SCF; 2C59 # L& GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
+2C2A ; NFKC_SCF; 2C5A # L& GLAGOLITIC CAPITAL LETTER FITA
+2C2B ; NFKC_SCF; 2C5B # L& GLAGOLITIC CAPITAL LETTER IZHITSA
+2C2C ; NFKC_SCF; 2C5C # L& GLAGOLITIC CAPITAL LETTER SHTAPIC
+2C2D ; NFKC_SCF; 2C5D # L& GLAGOLITIC CAPITAL LETTER TROKUTASTI A
+2C2E ; NFKC_SCF; 2C5E # L& GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C2F ; NFKC_SCF; 2C5F # L& GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
+2C60 ; NFKC_SCF; 2C61 # L& LATIN CAPITAL LETTER L WITH DOUBLE BAR
+2C62 ; NFKC_SCF; 026B # L& LATIN CAPITAL LETTER L WITH MIDDLE TILDE
+2C63 ; NFKC_SCF; 1D7D # L& LATIN CAPITAL LETTER P WITH STROKE
+2C64 ; NFKC_SCF; 027D # L& LATIN CAPITAL LETTER R WITH TAIL
+2C67 ; NFKC_SCF; 2C68 # L& LATIN CAPITAL LETTER H WITH DESCENDER
+2C69 ; NFKC_SCF; 2C6A # L& LATIN CAPITAL LETTER K WITH DESCENDER
+2C6B ; NFKC_SCF; 2C6C # L& LATIN CAPITAL LETTER Z WITH DESCENDER
+2C6D ; NFKC_SCF; 0251 # L& LATIN CAPITAL LETTER ALPHA
+2C6E ; NFKC_SCF; 0271 # L& LATIN CAPITAL LETTER M WITH HOOK
+2C6F ; NFKC_SCF; 0250 # L& LATIN CAPITAL LETTER TURNED A
+2C70 ; NFKC_SCF; 0252 # L& LATIN CAPITAL LETTER TURNED ALPHA
+2C72 ; NFKC_SCF; 2C73 # L& LATIN CAPITAL LETTER W WITH HOOK
+2C75 ; NFKC_SCF; 2C76 # L& LATIN CAPITAL LETTER HALF H
+2C7C ; NFKC_SCF; 006A # Lm LATIN SUBSCRIPT SMALL LETTER J
+2C7D ; NFKC_SCF; 0076 # Lm MODIFIER LETTER CAPITAL V
+2C7E ; NFKC_SCF; 023F # L& LATIN CAPITAL LETTER S WITH SWASH TAIL
+2C7F ; NFKC_SCF; 0240 # L& LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C80 ; NFKC_SCF; 2C81 # L& COPTIC CAPITAL LETTER ALFA
+2C82 ; NFKC_SCF; 2C83 # L& COPTIC CAPITAL LETTER VIDA
+2C84 ; NFKC_SCF; 2C85 # L& COPTIC CAPITAL LETTER GAMMA
+2C86 ; NFKC_SCF; 2C87 # L& COPTIC CAPITAL LETTER DALDA
+2C88 ; NFKC_SCF; 2C89 # L& COPTIC CAPITAL LETTER EIE
+2C8A ; NFKC_SCF; 2C8B # L& COPTIC CAPITAL LETTER SOU
+2C8C ; NFKC_SCF; 2C8D # L& COPTIC CAPITAL LETTER ZATA
+2C8E ; NFKC_SCF; 2C8F # L& COPTIC CAPITAL LETTER HATE
+2C90 ; NFKC_SCF; 2C91 # L& COPTIC CAPITAL LETTER THETHE
+2C92 ; NFKC_SCF; 2C93 # L& COPTIC CAPITAL LETTER IAUDA
+2C94 ; NFKC_SCF; 2C95 # L& COPTIC CAPITAL LETTER KAPA
+2C96 ; NFKC_SCF; 2C97 # L& COPTIC CAPITAL LETTER LAULA
+2C98 ; NFKC_SCF; 2C99 # L& COPTIC CAPITAL LETTER MI
+2C9A ; NFKC_SCF; 2C9B # L& COPTIC CAPITAL LETTER NI
+2C9C ; NFKC_SCF; 2C9D # L& COPTIC CAPITAL LETTER KSI
+2C9E ; NFKC_SCF; 2C9F # L& COPTIC CAPITAL LETTER O
+2CA0 ; NFKC_SCF; 2CA1 # L& COPTIC CAPITAL LETTER PI
+2CA2 ; NFKC_SCF; 2CA3 # L& COPTIC CAPITAL LETTER RO
+2CA4 ; NFKC_SCF; 2CA5 # L& COPTIC CAPITAL LETTER SIMA
+2CA6 ; NFKC_SCF; 2CA7 # L& COPTIC CAPITAL LETTER TAU
+2CA8 ; NFKC_SCF; 2CA9 # L& COPTIC CAPITAL LETTER UA
+2CAA ; NFKC_SCF; 2CAB # L& COPTIC CAPITAL LETTER FI
+2CAC ; NFKC_SCF; 2CAD # L& COPTIC CAPITAL LETTER KHI
+2CAE ; NFKC_SCF; 2CAF # L& COPTIC CAPITAL LETTER PSI
+2CB0 ; NFKC_SCF; 2CB1 # L& COPTIC CAPITAL LETTER OOU
+2CB2 ; NFKC_SCF; 2CB3 # L& COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB4 ; NFKC_SCF; 2CB5 # L& COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CB6 ; NFKC_SCF; 2CB7 # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2CB8 ; NFKC_SCF; 2CB9 # L& COPTIC CAPITAL LETTER DIALECT-P KAPA
+2CBA ; NFKC_SCF; 2CBB # L& COPTIC CAPITAL LETTER DIALECT-P NI
+2CBC ; NFKC_SCF; 2CBD # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2CBE ; NFKC_SCF; 2CBF # L& COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CC0 ; NFKC_SCF; 2CC1 # L& COPTIC CAPITAL LETTER SAMPI
+2CC2 ; NFKC_SCF; 2CC3 # L& COPTIC CAPITAL LETTER CROSSED SHEI
+2CC4 ; NFKC_SCF; 2CC5 # L& COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC6 ; NFKC_SCF; 2CC7 # L& COPTIC CAPITAL LETTER OLD COPTIC ESH
+2CC8 ; NFKC_SCF; 2CC9 # L& COPTIC CAPITAL LETTER AKHMIMIC KHEI
+2CCA ; NFKC_SCF; 2CCB # L& COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCC ; NFKC_SCF; 2CCD # L& COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCE ; NFKC_SCF; 2CCF # L& COPTIC CAPITAL LETTER OLD COPTIC HA
+2CD0 ; NFKC_SCF; 2CD1 # L& COPTIC CAPITAL LETTER L-SHAPED HA
+2CD2 ; NFKC_SCF; 2CD3 # L& COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD4 ; NFKC_SCF; 2CD5 # L& COPTIC CAPITAL LETTER OLD COPTIC HAT
+2CD6 ; NFKC_SCF; 2CD7 # L& COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+2CD8 ; NFKC_SCF; 2CD9 # L& COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CDA ; NFKC_SCF; 2CDB # L& COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDC ; NFKC_SCF; 2CDD # L& COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+2CDE ; NFKC_SCF; 2CDF # L& COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CE0 ; NFKC_SCF; 2CE1 # L& COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE2 ; NFKC_SCF; 2CE3 # L& COPTIC CAPITAL LETTER OLD NUBIAN WAU
+2CEB ; NFKC_SCF; 2CEC # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+2CED ; NFKC_SCF; 2CEE # L& COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+2CF2 ; NFKC_SCF; 2CF3 # L& COPTIC CAPITAL LETTER BOHAIRIC KHEI
+2D6F ; NFKC_SCF; 2D61 # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2E9F ; NFKC_SCF; 6BCD # So CJK RADICAL MOTHER
+2EF3 ; NFKC_SCF; 9F9F # So CJK RADICAL C-SIMPLIFIED TURTLE
+2F00 ; NFKC_SCF; 4E00 # So KANGXI RADICAL ONE
+2F01 ; NFKC_SCF; 4E28 # So KANGXI RADICAL LINE
+2F02 ; NFKC_SCF; 4E36 # So KANGXI RADICAL DOT
+2F03 ; NFKC_SCF; 4E3F # So KANGXI RADICAL SLASH
+2F04 ; NFKC_SCF; 4E59 # So KANGXI RADICAL SECOND
+2F05 ; NFKC_SCF; 4E85 # So KANGXI RADICAL HOOK
+2F06 ; NFKC_SCF; 4E8C # So KANGXI RADICAL TWO
+2F07 ; NFKC_SCF; 4EA0 # So KANGXI RADICAL LID
+2F08 ; NFKC_SCF; 4EBA # So KANGXI RADICAL MAN
+2F09 ; NFKC_SCF; 513F # So KANGXI RADICAL LEGS
+2F0A ; NFKC_SCF; 5165 # So KANGXI RADICAL ENTER
+2F0B ; NFKC_SCF; 516B # So KANGXI RADICAL EIGHT
+2F0C ; NFKC_SCF; 5182 # So KANGXI RADICAL DOWN BOX
+2F0D ; NFKC_SCF; 5196 # So KANGXI RADICAL COVER
+2F0E ; NFKC_SCF; 51AB # So KANGXI RADICAL ICE
+2F0F ; NFKC_SCF; 51E0 # So KANGXI RADICAL TABLE
+2F10 ; NFKC_SCF; 51F5 # So KANGXI RADICAL OPEN BOX
+2F11 ; NFKC_SCF; 5200 # So KANGXI RADICAL KNIFE
+2F12 ; NFKC_SCF; 529B # So KANGXI RADICAL POWER
+2F13 ; NFKC_SCF; 52F9 # So KANGXI RADICAL WRAP
+2F14 ; NFKC_SCF; 5315 # So KANGXI RADICAL SPOON
+2F15 ; NFKC_SCF; 531A # So KANGXI RADICAL RIGHT OPEN BOX
+2F16 ; NFKC_SCF; 5338 # So KANGXI RADICAL HIDING ENCLOSURE
+2F17 ; NFKC_SCF; 5341 # So KANGXI RADICAL TEN
+2F18 ; NFKC_SCF; 535C # So KANGXI RADICAL DIVINATION
+2F19 ; NFKC_SCF; 5369 # So KANGXI RADICAL SEAL
+2F1A ; NFKC_SCF; 5382 # So KANGXI RADICAL CLIFF
+2F1B ; NFKC_SCF; 53B6 # So KANGXI RADICAL PRIVATE
+2F1C ; NFKC_SCF; 53C8 # So KANGXI RADICAL AGAIN
+2F1D ; NFKC_SCF; 53E3 # So KANGXI RADICAL MOUTH
+2F1E ; NFKC_SCF; 56D7 # So KANGXI RADICAL ENCLOSURE
+2F1F ; NFKC_SCF; 571F # So KANGXI RADICAL EARTH
+2F20 ; NFKC_SCF; 58EB # So KANGXI RADICAL SCHOLAR
+2F21 ; NFKC_SCF; 5902 # So KANGXI RADICAL GO
+2F22 ; NFKC_SCF; 590A # So KANGXI RADICAL GO SLOWLY
+2F23 ; NFKC_SCF; 5915 # So KANGXI RADICAL EVENING
+2F24 ; NFKC_SCF; 5927 # So KANGXI RADICAL BIG
+2F25 ; NFKC_SCF; 5973 # So KANGXI RADICAL WOMAN
+2F26 ; NFKC_SCF; 5B50 # So KANGXI RADICAL CHILD
+2F27 ; NFKC_SCF; 5B80 # So KANGXI RADICAL ROOF
+2F28 ; NFKC_SCF; 5BF8 # So KANGXI RADICAL INCH
+2F29 ; NFKC_SCF; 5C0F # So KANGXI RADICAL SMALL
+2F2A ; NFKC_SCF; 5C22 # So KANGXI RADICAL LAME
+2F2B ; NFKC_SCF; 5C38 # So KANGXI RADICAL CORPSE
+2F2C ; NFKC_SCF; 5C6E # So KANGXI RADICAL SPROUT
+2F2D ; NFKC_SCF; 5C71 # So KANGXI RADICAL MOUNTAIN
+2F2E ; NFKC_SCF; 5DDB # So KANGXI RADICAL RIVER
+2F2F ; NFKC_SCF; 5DE5 # So KANGXI RADICAL WORK
+2F30 ; NFKC_SCF; 5DF1 # So KANGXI RADICAL ONESELF
+2F31 ; NFKC_SCF; 5DFE # So KANGXI RADICAL TURBAN
+2F32 ; NFKC_SCF; 5E72 # So KANGXI RADICAL DRY
+2F33 ; NFKC_SCF; 5E7A # So KANGXI RADICAL SHORT THREAD
+2F34 ; NFKC_SCF; 5E7F # So KANGXI RADICAL DOTTED CLIFF
+2F35 ; NFKC_SCF; 5EF4 # So KANGXI RADICAL LONG STRIDE
+2F36 ; NFKC_SCF; 5EFE # So KANGXI RADICAL TWO HANDS
+2F37 ; NFKC_SCF; 5F0B # So KANGXI RADICAL SHOOT
+2F38 ; NFKC_SCF; 5F13 # So KANGXI RADICAL BOW
+2F39 ; NFKC_SCF; 5F50 # So KANGXI RADICAL SNOUT
+2F3A ; NFKC_SCF; 5F61 # So KANGXI RADICAL BRISTLE
+2F3B ; NFKC_SCF; 5F73 # So KANGXI RADICAL STEP
+2F3C ; NFKC_SCF; 5FC3 # So KANGXI RADICAL HEART
+2F3D ; NFKC_SCF; 6208 # So KANGXI RADICAL HALBERD
+2F3E ; NFKC_SCF; 6236 # So KANGXI RADICAL DOOR
+2F3F ; NFKC_SCF; 624B # So KANGXI RADICAL HAND
+2F40 ; NFKC_SCF; 652F # So KANGXI RADICAL BRANCH
+2F41 ; NFKC_SCF; 6534 # So KANGXI RADICAL RAP
+2F42 ; NFKC_SCF; 6587 # So KANGXI RADICAL SCRIPT
+2F43 ; NFKC_SCF; 6597 # So KANGXI RADICAL DIPPER
+2F44 ; NFKC_SCF; 65A4 # So KANGXI RADICAL AXE
+2F45 ; NFKC_SCF; 65B9 # So KANGXI RADICAL SQUARE
+2F46 ; NFKC_SCF; 65E0 # So KANGXI RADICAL NOT
+2F47 ; NFKC_SCF; 65E5 # So KANGXI RADICAL SUN
+2F48 ; NFKC_SCF; 66F0 # So KANGXI RADICAL SAY
+2F49 ; NFKC_SCF; 6708 # So KANGXI RADICAL MOON
+2F4A ; NFKC_SCF; 6728 # So KANGXI RADICAL TREE
+2F4B ; NFKC_SCF; 6B20 # So KANGXI RADICAL LACK
+2F4C ; NFKC_SCF; 6B62 # So KANGXI RADICAL STOP
+2F4D ; NFKC_SCF; 6B79 # So KANGXI RADICAL DEATH
+2F4E ; NFKC_SCF; 6BB3 # So KANGXI RADICAL WEAPON
+2F4F ; NFKC_SCF; 6BCB # So KANGXI RADICAL DO NOT
+2F50 ; NFKC_SCF; 6BD4 # So KANGXI RADICAL COMPARE
+2F51 ; NFKC_SCF; 6BDB # So KANGXI RADICAL FUR
+2F52 ; NFKC_SCF; 6C0F # So KANGXI RADICAL CLAN
+2F53 ; NFKC_SCF; 6C14 # So KANGXI RADICAL STEAM
+2F54 ; NFKC_SCF; 6C34 # So KANGXI RADICAL WATER
+2F55 ; NFKC_SCF; 706B # So KANGXI RADICAL FIRE
+2F56 ; NFKC_SCF; 722A # So KANGXI RADICAL CLAW
+2F57 ; NFKC_SCF; 7236 # So KANGXI RADICAL FATHER
+2F58 ; NFKC_SCF; 723B # So KANGXI RADICAL DOUBLE X
+2F59 ; NFKC_SCF; 723F # So KANGXI RADICAL HALF TREE TRUNK
+2F5A ; NFKC_SCF; 7247 # So KANGXI RADICAL SLICE
+2F5B ; NFKC_SCF; 7259 # So KANGXI RADICAL FANG
+2F5C ; NFKC_SCF; 725B # So KANGXI RADICAL COW
+2F5D ; NFKC_SCF; 72AC # So KANGXI RADICAL DOG
+2F5E ; NFKC_SCF; 7384 # So KANGXI RADICAL PROFOUND
+2F5F ; NFKC_SCF; 7389 # So KANGXI RADICAL JADE
+2F60 ; NFKC_SCF; 74DC # So KANGXI RADICAL MELON
+2F61 ; NFKC_SCF; 74E6 # So KANGXI RADICAL TILE
+2F62 ; NFKC_SCF; 7518 # So KANGXI RADICAL SWEET
+2F63 ; NFKC_SCF; 751F # So KANGXI RADICAL LIFE
+2F64 ; NFKC_SCF; 7528 # So KANGXI RADICAL USE
+2F65 ; NFKC_SCF; 7530 # So KANGXI RADICAL FIELD
+2F66 ; NFKC_SCF; 758B # So KANGXI RADICAL BOLT OF CLOTH
+2F67 ; NFKC_SCF; 7592 # So KANGXI RADICAL SICKNESS
+2F68 ; NFKC_SCF; 7676 # So KANGXI RADICAL DOTTED TENT
+2F69 ; NFKC_SCF; 767D # So KANGXI RADICAL WHITE
+2F6A ; NFKC_SCF; 76AE # So KANGXI RADICAL SKIN
+2F6B ; NFKC_SCF; 76BF # So KANGXI RADICAL DISH
+2F6C ; NFKC_SCF; 76EE # So KANGXI RADICAL EYE
+2F6D ; NFKC_SCF; 77DB # So KANGXI RADICAL SPEAR
+2F6E ; NFKC_SCF; 77E2 # So KANGXI RADICAL ARROW
+2F6F ; NFKC_SCF; 77F3 # So KANGXI RADICAL STONE
+2F70 ; NFKC_SCF; 793A # So KANGXI RADICAL SPIRIT
+2F71 ; NFKC_SCF; 79B8 # So KANGXI RADICAL TRACK
+2F72 ; NFKC_SCF; 79BE # So KANGXI RADICAL GRAIN
+2F73 ; NFKC_SCF; 7A74 # So KANGXI RADICAL CAVE
+2F74 ; NFKC_SCF; 7ACB # So KANGXI RADICAL STAND
+2F75 ; NFKC_SCF; 7AF9 # So KANGXI RADICAL BAMBOO
+2F76 ; NFKC_SCF; 7C73 # So KANGXI RADICAL RICE
+2F77 ; NFKC_SCF; 7CF8 # So KANGXI RADICAL SILK
+2F78 ; NFKC_SCF; 7F36 # So KANGXI RADICAL JAR
+2F79 ; NFKC_SCF; 7F51 # So KANGXI RADICAL NET
+2F7A ; NFKC_SCF; 7F8A # So KANGXI RADICAL SHEEP
+2F7B ; NFKC_SCF; 7FBD # So KANGXI RADICAL FEATHER
+2F7C ; NFKC_SCF; 8001 # So KANGXI RADICAL OLD
+2F7D ; NFKC_SCF; 800C # So KANGXI RADICAL AND
+2F7E ; NFKC_SCF; 8012 # So KANGXI RADICAL PLOW
+2F7F ; NFKC_SCF; 8033 # So KANGXI RADICAL EAR
+2F80 ; NFKC_SCF; 807F # So KANGXI RADICAL BRUSH
+2F81 ; NFKC_SCF; 8089 # So KANGXI RADICAL MEAT
+2F82 ; NFKC_SCF; 81E3 # So KANGXI RADICAL MINISTER
+2F83 ; NFKC_SCF; 81EA # So KANGXI RADICAL SELF
+2F84 ; NFKC_SCF; 81F3 # So KANGXI RADICAL ARRIVE
+2F85 ; NFKC_SCF; 81FC # So KANGXI RADICAL MORTAR
+2F86 ; NFKC_SCF; 820C # So KANGXI RADICAL TONGUE
+2F87 ; NFKC_SCF; 821B # So KANGXI RADICAL OPPOSE
+2F88 ; NFKC_SCF; 821F # So KANGXI RADICAL BOAT
+2F89 ; NFKC_SCF; 826E # So KANGXI RADICAL STOPPING
+2F8A ; NFKC_SCF; 8272 # So KANGXI RADICAL COLOR
+2F8B ; NFKC_SCF; 8278 # So KANGXI RADICAL GRASS
+2F8C ; NFKC_SCF; 864D # So KANGXI RADICAL TIGER
+2F8D ; NFKC_SCF; 866B # So KANGXI RADICAL INSECT
+2F8E ; NFKC_SCF; 8840 # So KANGXI RADICAL BLOOD
+2F8F ; NFKC_SCF; 884C # So KANGXI RADICAL WALK ENCLOSURE
+2F90 ; NFKC_SCF; 8863 # So KANGXI RADICAL CLOTHES
+2F91 ; NFKC_SCF; 897E # So KANGXI RADICAL WEST
+2F92 ; NFKC_SCF; 898B # So KANGXI RADICAL SEE
+2F93 ; NFKC_SCF; 89D2 # So KANGXI RADICAL HORN
+2F94 ; NFKC_SCF; 8A00 # So KANGXI RADICAL SPEECH
+2F95 ; NFKC_SCF; 8C37 # So KANGXI RADICAL VALLEY
+2F96 ; NFKC_SCF; 8C46 # So KANGXI RADICAL BEAN
+2F97 ; NFKC_SCF; 8C55 # So KANGXI RADICAL PIG
+2F98 ; NFKC_SCF; 8C78 # So KANGXI RADICAL BADGER
+2F99 ; NFKC_SCF; 8C9D # So KANGXI RADICAL SHELL
+2F9A ; NFKC_SCF; 8D64 # So KANGXI RADICAL RED
+2F9B ; NFKC_SCF; 8D70 # So KANGXI RADICAL RUN
+2F9C ; NFKC_SCF; 8DB3 # So KANGXI RADICAL FOOT
+2F9D ; NFKC_SCF; 8EAB # So KANGXI RADICAL BODY
+2F9E ; NFKC_SCF; 8ECA # So KANGXI RADICAL CART
+2F9F ; NFKC_SCF; 8F9B # So KANGXI RADICAL BITTER
+2FA0 ; NFKC_SCF; 8FB0 # So KANGXI RADICAL MORNING
+2FA1 ; NFKC_SCF; 8FB5 # So KANGXI RADICAL WALK
+2FA2 ; NFKC_SCF; 9091 # So KANGXI RADICAL CITY
+2FA3 ; NFKC_SCF; 9149 # So KANGXI RADICAL WINE
+2FA4 ; NFKC_SCF; 91C6 # So KANGXI RADICAL DISTINGUISH
+2FA5 ; NFKC_SCF; 91CC # So KANGXI RADICAL VILLAGE
+2FA6 ; NFKC_SCF; 91D1 # So KANGXI RADICAL GOLD
+2FA7 ; NFKC_SCF; 9577 # So KANGXI RADICAL LONG
+2FA8 ; NFKC_SCF; 9580 # So KANGXI RADICAL GATE
+2FA9 ; NFKC_SCF; 961C # So KANGXI RADICAL MOUND
+2FAA ; NFKC_SCF; 96B6 # So KANGXI RADICAL SLAVE
+2FAB ; NFKC_SCF; 96B9 # So KANGXI RADICAL SHORT TAILED BIRD
+2FAC ; NFKC_SCF; 96E8 # So KANGXI RADICAL RAIN
+2FAD ; NFKC_SCF; 9751 # So KANGXI RADICAL BLUE
+2FAE ; NFKC_SCF; 975E # So KANGXI RADICAL WRONG
+2FAF ; NFKC_SCF; 9762 # So KANGXI RADICAL FACE
+2FB0 ; NFKC_SCF; 9769 # So KANGXI RADICAL LEATHER
+2FB1 ; NFKC_SCF; 97CB # So KANGXI RADICAL TANNED LEATHER
+2FB2 ; NFKC_SCF; 97ED # So KANGXI RADICAL LEEK
+2FB3 ; NFKC_SCF; 97F3 # So KANGXI RADICAL SOUND
+2FB4 ; NFKC_SCF; 9801 # So KANGXI RADICAL LEAF
+2FB5 ; NFKC_SCF; 98A8 # So KANGXI RADICAL WIND
+2FB6 ; NFKC_SCF; 98DB # So KANGXI RADICAL FLY
+2FB7 ; NFKC_SCF; 98DF # So KANGXI RADICAL EAT
+2FB8 ; NFKC_SCF; 9996 # So KANGXI RADICAL HEAD
+2FB9 ; NFKC_SCF; 9999 # So KANGXI RADICAL FRAGRANT
+2FBA ; NFKC_SCF; 99AC # So KANGXI RADICAL HORSE
+2FBB ; NFKC_SCF; 9AA8 # So KANGXI RADICAL BONE
+2FBC ; NFKC_SCF; 9AD8 # So KANGXI RADICAL TALL
+2FBD ; NFKC_SCF; 9ADF # So KANGXI RADICAL HAIR
+2FBE ; NFKC_SCF; 9B25 # So KANGXI RADICAL FIGHT
+2FBF ; NFKC_SCF; 9B2F # So KANGXI RADICAL SACRIFICIAL WINE
+2FC0 ; NFKC_SCF; 9B32 # So KANGXI RADICAL CAULDRON
+2FC1 ; NFKC_SCF; 9B3C # So KANGXI RADICAL GHOST
+2FC2 ; NFKC_SCF; 9B5A # So KANGXI RADICAL FISH
+2FC3 ; NFKC_SCF; 9CE5 # So KANGXI RADICAL BIRD
+2FC4 ; NFKC_SCF; 9E75 # So KANGXI RADICAL SALT
+2FC5 ; NFKC_SCF; 9E7F # So KANGXI RADICAL DEER
+2FC6 ; NFKC_SCF; 9EA5 # So KANGXI RADICAL WHEAT
+2FC7 ; NFKC_SCF; 9EBB # So KANGXI RADICAL HEMP
+2FC8 ; NFKC_SCF; 9EC3 # So KANGXI RADICAL YELLOW
+2FC9 ; NFKC_SCF; 9ECD # So KANGXI RADICAL MILLET
+2FCA ; NFKC_SCF; 9ED1 # So KANGXI RADICAL BLACK
+2FCB ; NFKC_SCF; 9EF9 # So KANGXI RADICAL EMBROIDERY
+2FCC ; NFKC_SCF; 9EFD # So KANGXI RADICAL FROG
+2FCD ; NFKC_SCF; 9F0E # So KANGXI RADICAL TRIPOD
+2FCE ; NFKC_SCF; 9F13 # So KANGXI RADICAL DRUM
+2FCF ; NFKC_SCF; 9F20 # So KANGXI RADICAL RAT
+2FD0 ; NFKC_SCF; 9F3B # So KANGXI RADICAL NOSE
+2FD1 ; NFKC_SCF; 9F4A # So KANGXI RADICAL EVEN
+2FD2 ; NFKC_SCF; 9F52 # So KANGXI RADICAL TOOTH
+2FD3 ; NFKC_SCF; 9F8D # So KANGXI RADICAL DRAGON
+2FD4 ; NFKC_SCF; 9F9C # So KANGXI RADICAL TURTLE
+2FD5 ; NFKC_SCF; 9FA0 # So KANGXI RADICAL FLUTE
+3000 ; NFKC_SCF; 0020 # Zs IDEOGRAPHIC SPACE
+3036 ; NFKC_SCF; 3012 # So CIRCLED POSTAL MARK
+3038 ; NFKC_SCF; 5341 # Nl HANGZHOU NUMERAL TEN
+3039 ; NFKC_SCF; 5344 # Nl HANGZHOU NUMERAL TWENTY
+303A ; NFKC_SCF; 5345 # Nl HANGZHOU NUMERAL THIRTY
+309B ; NFKC_SCF; 0020 3099 # Sk KATAKANA-HIRAGANA VOICED SOUND MARK
+309C ; NFKC_SCF; 0020 309A # Sk KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309F ; NFKC_SCF; 3088 308A # Lo HIRAGANA DIGRAPH YORI
+30FF ; NFKC_SCF; 30B3 30C8 # Lo KATAKANA DIGRAPH KOTO
+3131 ; NFKC_SCF; 1100 # Lo HANGUL LETTER KIYEOK
+3132 ; NFKC_SCF; 1101 # Lo HANGUL LETTER SSANGKIYEOK
+3133 ; NFKC_SCF; 11AA # Lo HANGUL LETTER KIYEOK-SIOS
+3134 ; NFKC_SCF; 1102 # Lo HANGUL LETTER NIEUN
+3135 ; NFKC_SCF; 11AC # Lo HANGUL LETTER NIEUN-CIEUC
+3136 ; NFKC_SCF; 11AD # Lo HANGUL LETTER NIEUN-HIEUH
+3137 ; NFKC_SCF; 1103 # Lo HANGUL LETTER TIKEUT
+3138 ; NFKC_SCF; 1104 # Lo HANGUL LETTER SSANGTIKEUT
+3139 ; NFKC_SCF; 1105 # Lo HANGUL LETTER RIEUL
+313A ; NFKC_SCF; 11B0 # Lo HANGUL LETTER RIEUL-KIYEOK
+313B ; NFKC_SCF; 11B1 # Lo HANGUL LETTER RIEUL-MIEUM
+313C ; NFKC_SCF; 11B2 # Lo HANGUL LETTER RIEUL-PIEUP
+313D ; NFKC_SCF; 11B3 # Lo HANGUL LETTER RIEUL-SIOS
+313E ; NFKC_SCF; 11B4 # Lo HANGUL LETTER RIEUL-THIEUTH
+313F ; NFKC_SCF; 11B5 # Lo HANGUL LETTER RIEUL-PHIEUPH
+3140 ; NFKC_SCF; 111A # Lo HANGUL LETTER RIEUL-HIEUH
+3141 ; NFKC_SCF; 1106 # Lo HANGUL LETTER MIEUM
+3142 ; NFKC_SCF; 1107 # Lo HANGUL LETTER PIEUP
+3143 ; NFKC_SCF; 1108 # Lo HANGUL LETTER SSANGPIEUP
+3144 ; NFKC_SCF; 1121 # Lo HANGUL LETTER PIEUP-SIOS
+3145 ; NFKC_SCF; 1109 # Lo HANGUL LETTER SIOS
+3146 ; NFKC_SCF; 110A # Lo HANGUL LETTER SSANGSIOS
+3147 ; NFKC_SCF; 110B # Lo HANGUL LETTER IEUNG
+3148 ; NFKC_SCF; 110C # Lo HANGUL LETTER CIEUC
+3149 ; NFKC_SCF; 110D # Lo HANGUL LETTER SSANGCIEUC
+314A ; NFKC_SCF; 110E # Lo HANGUL LETTER CHIEUCH
+314B ; NFKC_SCF; 110F # Lo HANGUL LETTER KHIEUKH
+314C ; NFKC_SCF; 1110 # Lo HANGUL LETTER THIEUTH
+314D ; NFKC_SCF; 1111 # Lo HANGUL LETTER PHIEUPH
+314E ; NFKC_SCF; 1112 # Lo HANGUL LETTER HIEUH
+314F ; NFKC_SCF; 1161 # Lo HANGUL LETTER A
+3150 ; NFKC_SCF; 1162 # Lo HANGUL LETTER AE
+3151 ; NFKC_SCF; 1163 # Lo HANGUL LETTER YA
+3152 ; NFKC_SCF; 1164 # Lo HANGUL LETTER YAE
+3153 ; NFKC_SCF; 1165 # Lo HANGUL LETTER EO
+3154 ; NFKC_SCF; 1166 # Lo HANGUL LETTER E
+3155 ; NFKC_SCF; 1167 # Lo HANGUL LETTER YEO
+3156 ; NFKC_SCF; 1168 # Lo HANGUL LETTER YE
+3157 ; NFKC_SCF; 1169 # Lo HANGUL LETTER O
+3158 ; NFKC_SCF; 116A # Lo HANGUL LETTER WA
+3159 ; NFKC_SCF; 116B # Lo HANGUL LETTER WAE
+315A ; NFKC_SCF; 116C # Lo HANGUL LETTER OE
+315B ; NFKC_SCF; 116D # Lo HANGUL LETTER YO
+315C ; NFKC_SCF; 116E # Lo HANGUL LETTER U
+315D ; NFKC_SCF; 116F # Lo HANGUL LETTER WEO
+315E ; NFKC_SCF; 1170 # Lo HANGUL LETTER WE
+315F ; NFKC_SCF; 1171 # Lo HANGUL LETTER WI
+3160 ; NFKC_SCF; 1172 # Lo HANGUL LETTER YU
+3161 ; NFKC_SCF; 1173 # Lo HANGUL LETTER EU
+3162 ; NFKC_SCF; 1174 # Lo HANGUL LETTER YI
+3163 ; NFKC_SCF; 1175 # Lo HANGUL LETTER I
+3164 ; NFKC_SCF; # Lo HANGUL FILLER
+3165 ; NFKC_SCF; 1114 # Lo HANGUL LETTER SSANGNIEUN
+3166 ; NFKC_SCF; 1115 # Lo HANGUL LETTER NIEUN-TIKEUT
+3167 ; NFKC_SCF; 11C7 # Lo HANGUL LETTER NIEUN-SIOS
+3168 ; NFKC_SCF; 11C8 # Lo HANGUL LETTER NIEUN-PANSIOS
+3169 ; NFKC_SCF; 11CC # Lo HANGUL LETTER RIEUL-KIYEOK-SIOS
+316A ; NFKC_SCF; 11CE # Lo HANGUL LETTER RIEUL-TIKEUT
+316B ; NFKC_SCF; 11D3 # Lo HANGUL LETTER RIEUL-PIEUP-SIOS
+316C ; NFKC_SCF; 11D7 # Lo HANGUL LETTER RIEUL-PANSIOS
+316D ; NFKC_SCF; 11D9 # Lo HANGUL LETTER RIEUL-YEORINHIEUH
+316E ; NFKC_SCF; 111C # Lo HANGUL LETTER MIEUM-PIEUP
+316F ; NFKC_SCF; 11DD # Lo HANGUL LETTER MIEUM-SIOS
+3170 ; NFKC_SCF; 11DF # Lo HANGUL LETTER MIEUM-PANSIOS
+3171 ; NFKC_SCF; 111D # Lo HANGUL LETTER KAPYEOUNMIEUM
+3172 ; NFKC_SCF; 111E # Lo HANGUL LETTER PIEUP-KIYEOK
+3173 ; NFKC_SCF; 1120 # Lo HANGUL LETTER PIEUP-TIKEUT
+3174 ; NFKC_SCF; 1122 # Lo HANGUL LETTER PIEUP-SIOS-KIYEOK
+3175 ; NFKC_SCF; 1123 # Lo HANGUL LETTER PIEUP-SIOS-TIKEUT
+3176 ; NFKC_SCF; 1127 # Lo HANGUL LETTER PIEUP-CIEUC
+3177 ; NFKC_SCF; 1129 # Lo HANGUL LETTER PIEUP-THIEUTH
+3178 ; NFKC_SCF; 112B # Lo HANGUL LETTER KAPYEOUNPIEUP
+3179 ; NFKC_SCF; 112C # Lo HANGUL LETTER KAPYEOUNSSANGPIEUP
+317A ; NFKC_SCF; 112D # Lo HANGUL LETTER SIOS-KIYEOK
+317B ; NFKC_SCF; 112E # Lo HANGUL LETTER SIOS-NIEUN
+317C ; NFKC_SCF; 112F # Lo HANGUL LETTER SIOS-TIKEUT
+317D ; NFKC_SCF; 1132 # Lo HANGUL LETTER SIOS-PIEUP
+317E ; NFKC_SCF; 1136 # Lo HANGUL LETTER SIOS-CIEUC
+317F ; NFKC_SCF; 1140 # Lo HANGUL LETTER PANSIOS
+3180 ; NFKC_SCF; 1147 # Lo HANGUL LETTER SSANGIEUNG
+3181 ; NFKC_SCF; 114C # Lo HANGUL LETTER YESIEUNG
+3182 ; NFKC_SCF; 11F1 # Lo HANGUL LETTER YESIEUNG-SIOS
+3183 ; NFKC_SCF; 11F2 # Lo HANGUL LETTER YESIEUNG-PANSIOS
+3184 ; NFKC_SCF; 1157 # Lo HANGUL LETTER KAPYEOUNPHIEUPH
+3185 ; NFKC_SCF; 1158 # Lo HANGUL LETTER SSANGHIEUH
+3186 ; NFKC_SCF; 1159 # Lo HANGUL LETTER YEORINHIEUH
+3187 ; NFKC_SCF; 1184 # Lo HANGUL LETTER YO-YA
+3188 ; NFKC_SCF; 1185 # Lo HANGUL LETTER YO-YAE
+3189 ; NFKC_SCF; 1188 # Lo HANGUL LETTER YO-I
+318A ; NFKC_SCF; 1191 # Lo HANGUL LETTER YU-YEO
+318B ; NFKC_SCF; 1192 # Lo HANGUL LETTER YU-YE
+318C ; NFKC_SCF; 1194 # Lo HANGUL LETTER YU-I
+318D ; NFKC_SCF; 119E # Lo HANGUL LETTER ARAEA
+318E ; NFKC_SCF; 11A1 # Lo HANGUL LETTER ARAEAE
+3192 ; NFKC_SCF; 4E00 # No IDEOGRAPHIC ANNOTATION ONE MARK
+3193 ; NFKC_SCF; 4E8C # No IDEOGRAPHIC ANNOTATION TWO MARK
+3194 ; NFKC_SCF; 4E09 # No IDEOGRAPHIC ANNOTATION THREE MARK
+3195 ; NFKC_SCF; 56DB # No IDEOGRAPHIC ANNOTATION FOUR MARK
+3196 ; NFKC_SCF; 4E0A # So IDEOGRAPHIC ANNOTATION TOP MARK
+3197 ; NFKC_SCF; 4E2D # So IDEOGRAPHIC ANNOTATION MIDDLE MARK
+3198 ; NFKC_SCF; 4E0B # So IDEOGRAPHIC ANNOTATION BOTTOM MARK
+3199 ; NFKC_SCF; 7532 # So IDEOGRAPHIC ANNOTATION FIRST MARK
+319A ; NFKC_SCF; 4E59 # So IDEOGRAPHIC ANNOTATION SECOND MARK
+319B ; NFKC_SCF; 4E19 # So IDEOGRAPHIC ANNOTATION THIRD MARK
+319C ; NFKC_SCF; 4E01 # So IDEOGRAPHIC ANNOTATION FOURTH MARK
+319D ; NFKC_SCF; 5929 # So IDEOGRAPHIC ANNOTATION HEAVEN MARK
+319E ; NFKC_SCF; 5730 # So IDEOGRAPHIC ANNOTATION EARTH MARK
+319F ; NFKC_SCF; 4EBA # So IDEOGRAPHIC ANNOTATION MAN MARK
+3200 ; NFKC_SCF; 0028 1100 0029 # So PARENTHESIZED HANGUL KIYEOK
+3201 ; NFKC_SCF; 0028 1102 0029 # So PARENTHESIZED HANGUL NIEUN
+3202 ; NFKC_SCF; 0028 1103 0029 # So PARENTHESIZED HANGUL TIKEUT
+3203 ; NFKC_SCF; 0028 1105 0029 # So PARENTHESIZED HANGUL RIEUL
+3204 ; NFKC_SCF; 0028 1106 0029 # So PARENTHESIZED HANGUL MIEUM
+3205 ; NFKC_SCF; 0028 1107 0029 # So PARENTHESIZED HANGUL PIEUP
+3206 ; NFKC_SCF; 0028 1109 0029 # So PARENTHESIZED HANGUL SIOS
+3207 ; NFKC_SCF; 0028 110B 0029 # So PARENTHESIZED HANGUL IEUNG
+3208 ; NFKC_SCF; 0028 110C 0029 # So PARENTHESIZED HANGUL CIEUC
+3209 ; NFKC_SCF; 0028 110E 0029 # So PARENTHESIZED HANGUL CHIEUCH
+320A ; NFKC_SCF; 0028 110F 0029 # So PARENTHESIZED HANGUL KHIEUKH
+320B ; NFKC_SCF; 0028 1110 0029 # So PARENTHESIZED HANGUL THIEUTH
+320C ; NFKC_SCF; 0028 1111 0029 # So PARENTHESIZED HANGUL PHIEUPH
+320D ; NFKC_SCF; 0028 1112 0029 # So PARENTHESIZED HANGUL HIEUH
+320E ; NFKC_SCF; 0028 AC00 0029 # So PARENTHESIZED HANGUL KIYEOK A
+320F ; NFKC_SCF; 0028 B098 0029 # So PARENTHESIZED HANGUL NIEUN A
+3210 ; NFKC_SCF; 0028 B2E4 0029 # So PARENTHESIZED HANGUL TIKEUT A
+3211 ; NFKC_SCF; 0028 B77C 0029 # So PARENTHESIZED HANGUL RIEUL A
+3212 ; NFKC_SCF; 0028 B9C8 0029 # So PARENTHESIZED HANGUL MIEUM A
+3213 ; NFKC_SCF; 0028 BC14 0029 # So PARENTHESIZED HANGUL PIEUP A
+3214 ; NFKC_SCF; 0028 C0AC 0029 # So PARENTHESIZED HANGUL SIOS A
+3215 ; NFKC_SCF; 0028 C544 0029 # So PARENTHESIZED HANGUL IEUNG A
+3216 ; NFKC_SCF; 0028 C790 0029 # So PARENTHESIZED HANGUL CIEUC A
+3217 ; NFKC_SCF; 0028 CC28 0029 # So PARENTHESIZED HANGUL CHIEUCH A
+3218 ; NFKC_SCF; 0028 CE74 0029 # So PARENTHESIZED HANGUL KHIEUKH A
+3219 ; NFKC_SCF; 0028 D0C0 0029 # So PARENTHESIZED HANGUL THIEUTH A
+321A ; NFKC_SCF; 0028 D30C 0029 # So PARENTHESIZED HANGUL PHIEUPH A
+321B ; NFKC_SCF; 0028 D558 0029 # So PARENTHESIZED HANGUL HIEUH A
+321C ; NFKC_SCF; 0028 C8FC 0029 # So PARENTHESIZED HANGUL CIEUC U
+321D ; NFKC_SCF; 0028 C624 C804 0029 #So PARENTHESIZED KOREAN CHARACTER OJEON
+321E ; NFKC_SCF; 0028 C624 D6C4 0029 #So PARENTHESIZED KOREAN CHARACTER O HU
+3220 ; NFKC_SCF; 0028 4E00 0029 # No PARENTHESIZED IDEOGRAPH ONE
+3221 ; NFKC_SCF; 0028 4E8C 0029 # No PARENTHESIZED IDEOGRAPH TWO
+3222 ; NFKC_SCF; 0028 4E09 0029 # No PARENTHESIZED IDEOGRAPH THREE
+3223 ; NFKC_SCF; 0028 56DB 0029 # No PARENTHESIZED IDEOGRAPH FOUR
+3224 ; NFKC_SCF; 0028 4E94 0029 # No PARENTHESIZED IDEOGRAPH FIVE
+3225 ; NFKC_SCF; 0028 516D 0029 # No PARENTHESIZED IDEOGRAPH SIX
+3226 ; NFKC_SCF; 0028 4E03 0029 # No PARENTHESIZED IDEOGRAPH SEVEN
+3227 ; NFKC_SCF; 0028 516B 0029 # No PARENTHESIZED IDEOGRAPH EIGHT
+3228 ; NFKC_SCF; 0028 4E5D 0029 # No PARENTHESIZED IDEOGRAPH NINE
+3229 ; NFKC_SCF; 0028 5341 0029 # No PARENTHESIZED IDEOGRAPH TEN
+322A ; NFKC_SCF; 0028 6708 0029 # So PARENTHESIZED IDEOGRAPH MOON
+322B ; NFKC_SCF; 0028 706B 0029 # So PARENTHESIZED IDEOGRAPH FIRE
+322C ; NFKC_SCF; 0028 6C34 0029 # So PARENTHESIZED IDEOGRAPH WATER
+322D ; NFKC_SCF; 0028 6728 0029 # So PARENTHESIZED IDEOGRAPH WOOD
+322E ; NFKC_SCF; 0028 91D1 0029 # So PARENTHESIZED IDEOGRAPH METAL
+322F ; NFKC_SCF; 0028 571F 0029 # So PARENTHESIZED IDEOGRAPH EARTH
+3230 ; NFKC_SCF; 0028 65E5 0029 # So PARENTHESIZED IDEOGRAPH SUN
+3231 ; NFKC_SCF; 0028 682A 0029 # So PARENTHESIZED IDEOGRAPH STOCK
+3232 ; NFKC_SCF; 0028 6709 0029 # So PARENTHESIZED IDEOGRAPH HAVE
+3233 ; NFKC_SCF; 0028 793E 0029 # So PARENTHESIZED IDEOGRAPH SOCIETY
+3234 ; NFKC_SCF; 0028 540D 0029 # So PARENTHESIZED IDEOGRAPH NAME
+3235 ; NFKC_SCF; 0028 7279 0029 # So PARENTHESIZED IDEOGRAPH SPECIAL
+3236 ; NFKC_SCF; 0028 8CA1 0029 # So PARENTHESIZED IDEOGRAPH FINANCIAL
+3237 ; NFKC_SCF; 0028 795D 0029 # So PARENTHESIZED IDEOGRAPH CONGRATULATION
+3238 ; NFKC_SCF; 0028 52B4 0029 # So PARENTHESIZED IDEOGRAPH LABOR
+3239 ; NFKC_SCF; 0028 4EE3 0029 # So PARENTHESIZED IDEOGRAPH REPRESENT
+323A ; NFKC_SCF; 0028 547C 0029 # So PARENTHESIZED IDEOGRAPH CALL
+323B ; NFKC_SCF; 0028 5B66 0029 # So PARENTHESIZED IDEOGRAPH STUDY
+323C ; NFKC_SCF; 0028 76E3 0029 # So PARENTHESIZED IDEOGRAPH SUPERVISE
+323D ; NFKC_SCF; 0028 4F01 0029 # So PARENTHESIZED IDEOGRAPH ENTERPRISE
+323E ; NFKC_SCF; 0028 8CC7 0029 # So PARENTHESIZED IDEOGRAPH RESOURCE
+323F ; NFKC_SCF; 0028 5354 0029 # So PARENTHESIZED IDEOGRAPH ALLIANCE
+3240 ; NFKC_SCF; 0028 796D 0029 # So PARENTHESIZED IDEOGRAPH FESTIVAL
+3241 ; NFKC_SCF; 0028 4F11 0029 # So PARENTHESIZED IDEOGRAPH REST
+3242 ; NFKC_SCF; 0028 81EA 0029 # So PARENTHESIZED IDEOGRAPH SELF
+3243 ; NFKC_SCF; 0028 81F3 0029 # So PARENTHESIZED IDEOGRAPH REACH
+3244 ; NFKC_SCF; 554F # So CIRCLED IDEOGRAPH QUESTION
+3245 ; NFKC_SCF; 5E7C # So CIRCLED IDEOGRAPH KINDERGARTEN
+3246 ; NFKC_SCF; 6587 # So CIRCLED IDEOGRAPH SCHOOL
+3247 ; NFKC_SCF; 7B8F # So CIRCLED IDEOGRAPH KOTO
+3250 ; NFKC_SCF; 0070 0074 0065 # So PARTNERSHIP SIGN
+3251 ; NFKC_SCF; 0032 0031 # No CIRCLED NUMBER TWENTY ONE
+3252 ; NFKC_SCF; 0032 0032 # No CIRCLED NUMBER TWENTY TWO
+3253 ; NFKC_SCF; 0032 0033 # No CIRCLED NUMBER TWENTY THREE
+3254 ; NFKC_SCF; 0032 0034 # No CIRCLED NUMBER TWENTY FOUR
+3255 ; NFKC_SCF; 0032 0035 # No CIRCLED NUMBER TWENTY FIVE
+3256 ; NFKC_SCF; 0032 0036 # No CIRCLED NUMBER TWENTY SIX
+3257 ; NFKC_SCF; 0032 0037 # No CIRCLED NUMBER TWENTY SEVEN
+3258 ; NFKC_SCF; 0032 0038 # No CIRCLED NUMBER TWENTY EIGHT
+3259 ; NFKC_SCF; 0032 0039 # No CIRCLED NUMBER TWENTY NINE
+325A ; NFKC_SCF; 0033 0030 # No CIRCLED NUMBER THIRTY
+325B ; NFKC_SCF; 0033 0031 # No CIRCLED NUMBER THIRTY ONE
+325C ; NFKC_SCF; 0033 0032 # No CIRCLED NUMBER THIRTY TWO
+325D ; NFKC_SCF; 0033 0033 # No CIRCLED NUMBER THIRTY THREE
+325E ; NFKC_SCF; 0033 0034 # No CIRCLED NUMBER THIRTY FOUR
+325F ; NFKC_SCF; 0033 0035 # No CIRCLED NUMBER THIRTY FIVE
+3260 ; NFKC_SCF; 1100 # So CIRCLED HANGUL KIYEOK
+3261 ; NFKC_SCF; 1102 # So CIRCLED HANGUL NIEUN
+3262 ; NFKC_SCF; 1103 # So CIRCLED HANGUL TIKEUT
+3263 ; NFKC_SCF; 1105 # So CIRCLED HANGUL RIEUL
+3264 ; NFKC_SCF; 1106 # So CIRCLED HANGUL MIEUM
+3265 ; NFKC_SCF; 1107 # So CIRCLED HANGUL PIEUP
+3266 ; NFKC_SCF; 1109 # So CIRCLED HANGUL SIOS
+3267 ; NFKC_SCF; 110B # So CIRCLED HANGUL IEUNG
+3268 ; NFKC_SCF; 110C # So CIRCLED HANGUL CIEUC
+3269 ; NFKC_SCF; 110E # So CIRCLED HANGUL CHIEUCH
+326A ; NFKC_SCF; 110F # So CIRCLED HANGUL KHIEUKH
+326B ; NFKC_SCF; 1110 # So CIRCLED HANGUL THIEUTH
+326C ; NFKC_SCF; 1111 # So CIRCLED HANGUL PHIEUPH
+326D ; NFKC_SCF; 1112 # So CIRCLED HANGUL HIEUH
+326E ; NFKC_SCF; AC00 # So CIRCLED HANGUL KIYEOK A
+326F ; NFKC_SCF; B098 # So CIRCLED HANGUL NIEUN A
+3270 ; NFKC_SCF; B2E4 # So CIRCLED HANGUL TIKEUT A
+3271 ; NFKC_SCF; B77C # So CIRCLED HANGUL RIEUL A
+3272 ; NFKC_SCF; B9C8 # So CIRCLED HANGUL MIEUM A
+3273 ; NFKC_SCF; BC14 # So CIRCLED HANGUL PIEUP A
+3274 ; NFKC_SCF; C0AC # So CIRCLED HANGUL SIOS A
+3275 ; NFKC_SCF; C544 # So CIRCLED HANGUL IEUNG A
+3276 ; NFKC_SCF; C790 # So CIRCLED HANGUL CIEUC A
+3277 ; NFKC_SCF; CC28 # So CIRCLED HANGUL CHIEUCH A
+3278 ; NFKC_SCF; CE74 # So CIRCLED HANGUL KHIEUKH A
+3279 ; NFKC_SCF; D0C0 # So CIRCLED HANGUL THIEUTH A
+327A ; NFKC_SCF; D30C # So CIRCLED HANGUL PHIEUPH A
+327B ; NFKC_SCF; D558 # So CIRCLED HANGUL HIEUH A
+327C ; NFKC_SCF; CC38 ACE0 # So CIRCLED KOREAN CHARACTER CHAMKO
+327D ; NFKC_SCF; C8FC C758 # So CIRCLED KOREAN CHARACTER JUEUI
+327E ; NFKC_SCF; C6B0 # So CIRCLED HANGUL IEUNG U
+3280 ; NFKC_SCF; 4E00 # No CIRCLED IDEOGRAPH ONE
+3281 ; NFKC_SCF; 4E8C # No CIRCLED IDEOGRAPH TWO
+3282 ; NFKC_SCF; 4E09 # No CIRCLED IDEOGRAPH THREE
+3283 ; NFKC_SCF; 56DB # No CIRCLED IDEOGRAPH FOUR
+3284 ; NFKC_SCF; 4E94 # No CIRCLED IDEOGRAPH FIVE
+3285 ; NFKC_SCF; 516D # No CIRCLED IDEOGRAPH SIX
+3286 ; NFKC_SCF; 4E03 # No CIRCLED IDEOGRAPH SEVEN
+3287 ; NFKC_SCF; 516B # No CIRCLED IDEOGRAPH EIGHT
+3288 ; NFKC_SCF; 4E5D # No CIRCLED IDEOGRAPH NINE
+3289 ; NFKC_SCF; 5341 # No CIRCLED IDEOGRAPH TEN
+328A ; NFKC_SCF; 6708 # So CIRCLED IDEOGRAPH MOON
+328B ; NFKC_SCF; 706B # So CIRCLED IDEOGRAPH FIRE
+328C ; NFKC_SCF; 6C34 # So CIRCLED IDEOGRAPH WATER
+328D ; NFKC_SCF; 6728 # So CIRCLED IDEOGRAPH WOOD
+328E ; NFKC_SCF; 91D1 # So CIRCLED IDEOGRAPH METAL
+328F ; NFKC_SCF; 571F # So CIRCLED IDEOGRAPH EARTH
+3290 ; NFKC_SCF; 65E5 # So CIRCLED IDEOGRAPH SUN
+3291 ; NFKC_SCF; 682A # So CIRCLED IDEOGRAPH STOCK
+3292 ; NFKC_SCF; 6709 # So CIRCLED IDEOGRAPH HAVE
+3293 ; NFKC_SCF; 793E # So CIRCLED IDEOGRAPH SOCIETY
+3294 ; NFKC_SCF; 540D # So CIRCLED IDEOGRAPH NAME
+3295 ; NFKC_SCF; 7279 # So CIRCLED IDEOGRAPH SPECIAL
+3296 ; NFKC_SCF; 8CA1 # So CIRCLED IDEOGRAPH FINANCIAL
+3297 ; NFKC_SCF; 795D # So CIRCLED IDEOGRAPH CONGRATULATION
+3298 ; NFKC_SCF; 52B4 # So CIRCLED IDEOGRAPH LABOR
+3299 ; NFKC_SCF; 79D8 # So CIRCLED IDEOGRAPH SECRET
+329A ; NFKC_SCF; 7537 # So CIRCLED IDEOGRAPH MALE
+329B ; NFKC_SCF; 5973 # So CIRCLED IDEOGRAPH FEMALE
+329C ; NFKC_SCF; 9069 # So CIRCLED IDEOGRAPH SUITABLE
+329D ; NFKC_SCF; 512A # So CIRCLED IDEOGRAPH EXCELLENT
+329E ; NFKC_SCF; 5370 # So CIRCLED IDEOGRAPH PRINT
+329F ; NFKC_SCF; 6CE8 # So CIRCLED IDEOGRAPH ATTENTION
+32A0 ; NFKC_SCF; 9805 # So CIRCLED IDEOGRAPH ITEM
+32A1 ; NFKC_SCF; 4F11 # So CIRCLED IDEOGRAPH REST
+32A2 ; NFKC_SCF; 5199 # So CIRCLED IDEOGRAPH COPY
+32A3 ; NFKC_SCF; 6B63 # So CIRCLED IDEOGRAPH CORRECT
+32A4 ; NFKC_SCF; 4E0A # So CIRCLED IDEOGRAPH HIGH
+32A5 ; NFKC_SCF; 4E2D # So CIRCLED IDEOGRAPH CENTRE
+32A6 ; NFKC_SCF; 4E0B # So CIRCLED IDEOGRAPH LOW
+32A7 ; NFKC_SCF; 5DE6 # So CIRCLED IDEOGRAPH LEFT
+32A8 ; NFKC_SCF; 53F3 # So CIRCLED IDEOGRAPH RIGHT
+32A9 ; NFKC_SCF; 533B # So CIRCLED IDEOGRAPH MEDICINE
+32AA ; NFKC_SCF; 5B97 # So CIRCLED IDEOGRAPH RELIGION
+32AB ; NFKC_SCF; 5B66 # So CIRCLED IDEOGRAPH STUDY
+32AC ; NFKC_SCF; 76E3 # So CIRCLED IDEOGRAPH SUPERVISE
+32AD ; NFKC_SCF; 4F01 # So CIRCLED IDEOGRAPH ENTERPRISE
+32AE ; NFKC_SCF; 8CC7 # So CIRCLED IDEOGRAPH RESOURCE
+32AF ; NFKC_SCF; 5354 # So CIRCLED IDEOGRAPH ALLIANCE
+32B0 ; NFKC_SCF; 591C # So CIRCLED IDEOGRAPH NIGHT
+32B1 ; NFKC_SCF; 0033 0036 # No CIRCLED NUMBER THIRTY SIX
+32B2 ; NFKC_SCF; 0033 0037 # No CIRCLED NUMBER THIRTY SEVEN
+32B3 ; NFKC_SCF; 0033 0038 # No CIRCLED NUMBER THIRTY EIGHT
+32B4 ; NFKC_SCF; 0033 0039 # No CIRCLED NUMBER THIRTY NINE
+32B5 ; NFKC_SCF; 0034 0030 # No CIRCLED NUMBER FORTY
+32B6 ; NFKC_SCF; 0034 0031 # No CIRCLED NUMBER FORTY ONE
+32B7 ; NFKC_SCF; 0034 0032 # No CIRCLED NUMBER FORTY TWO
+32B8 ; NFKC_SCF; 0034 0033 # No CIRCLED NUMBER FORTY THREE
+32B9 ; NFKC_SCF; 0034 0034 # No CIRCLED NUMBER FORTY FOUR
+32BA ; NFKC_SCF; 0034 0035 # No CIRCLED NUMBER FORTY FIVE
+32BB ; NFKC_SCF; 0034 0036 # No CIRCLED NUMBER FORTY SIX
+32BC ; NFKC_SCF; 0034 0037 # No CIRCLED NUMBER FORTY SEVEN
+32BD ; NFKC_SCF; 0034 0038 # No CIRCLED NUMBER FORTY EIGHT
+32BE ; NFKC_SCF; 0034 0039 # No CIRCLED NUMBER FORTY NINE
+32BF ; NFKC_SCF; 0035 0030 # No CIRCLED NUMBER FIFTY
+32C0 ; NFKC_SCF; 0031 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+32C1 ; NFKC_SCF; 0032 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+32C2 ; NFKC_SCF; 0033 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+32C3 ; NFKC_SCF; 0034 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+32C4 ; NFKC_SCF; 0035 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+32C5 ; NFKC_SCF; 0036 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+32C6 ; NFKC_SCF; 0037 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+32C7 ; NFKC_SCF; 0038 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+32C8 ; NFKC_SCF; 0039 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+32C9 ; NFKC_SCF; 0031 0030 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+32CA ; NFKC_SCF; 0031 0031 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+32CB ; NFKC_SCF; 0031 0032 6708 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+32CC ; NFKC_SCF; 0068 0067 # So SQUARE HG
+32CD ; NFKC_SCF; 0065 0072 0067 # So SQUARE ERG
+32CE ; NFKC_SCF; 0065 0076 # So SQUARE EV
+32CF ; NFKC_SCF; 006C 0074 0064 # So LIMITED LIABILITY SIGN
+32D0 ; NFKC_SCF; 30A2 # So CIRCLED KATAKANA A
+32D1 ; NFKC_SCF; 30A4 # So CIRCLED KATAKANA I
+32D2 ; NFKC_SCF; 30A6 # So CIRCLED KATAKANA U
+32D3 ; NFKC_SCF; 30A8 # So CIRCLED KATAKANA E
+32D4 ; NFKC_SCF; 30AA # So CIRCLED KATAKANA O
+32D5 ; NFKC_SCF; 30AB # So CIRCLED KATAKANA KA
+32D6 ; NFKC_SCF; 30AD # So CIRCLED KATAKANA KI
+32D7 ; NFKC_SCF; 30AF # So CIRCLED KATAKANA KU
+32D8 ; NFKC_SCF; 30B1 # So CIRCLED KATAKANA KE
+32D9 ; NFKC_SCF; 30B3 # So CIRCLED KATAKANA KO
+32DA ; NFKC_SCF; 30B5 # So CIRCLED KATAKANA SA
+32DB ; NFKC_SCF; 30B7 # So CIRCLED KATAKANA SI
+32DC ; NFKC_SCF; 30B9 # So CIRCLED KATAKANA SU
+32DD ; NFKC_SCF; 30BB # So CIRCLED KATAKANA SE
+32DE ; NFKC_SCF; 30BD # So CIRCLED KATAKANA SO
+32DF ; NFKC_SCF; 30BF # So CIRCLED KATAKANA TA
+32E0 ; NFKC_SCF; 30C1 # So CIRCLED KATAKANA TI
+32E1 ; NFKC_SCF; 30C4 # So CIRCLED KATAKANA TU
+32E2 ; NFKC_SCF; 30C6 # So CIRCLED KATAKANA TE
+32E3 ; NFKC_SCF; 30C8 # So CIRCLED KATAKANA TO
+32E4 ; NFKC_SCF; 30CA # So CIRCLED KATAKANA NA
+32E5 ; NFKC_SCF; 30CB # So CIRCLED KATAKANA NI
+32E6 ; NFKC_SCF; 30CC # So CIRCLED KATAKANA NU
+32E7 ; NFKC_SCF; 30CD # So CIRCLED KATAKANA NE
+32E8 ; NFKC_SCF; 30CE # So CIRCLED KATAKANA NO
+32E9 ; NFKC_SCF; 30CF # So CIRCLED KATAKANA HA
+32EA ; NFKC_SCF; 30D2 # So CIRCLED KATAKANA HI
+32EB ; NFKC_SCF; 30D5 # So CIRCLED KATAKANA HU
+32EC ; NFKC_SCF; 30D8 # So CIRCLED KATAKANA HE
+32ED ; NFKC_SCF; 30DB # So CIRCLED KATAKANA HO
+32EE ; NFKC_SCF; 30DE # So CIRCLED KATAKANA MA
+32EF ; NFKC_SCF; 30DF # So CIRCLED KATAKANA MI
+32F0 ; NFKC_SCF; 30E0 # So CIRCLED KATAKANA MU
+32F1 ; NFKC_SCF; 30E1 # So CIRCLED KATAKANA ME
+32F2 ; NFKC_SCF; 30E2 # So CIRCLED KATAKANA MO
+32F3 ; NFKC_SCF; 30E4 # So CIRCLED KATAKANA YA
+32F4 ; NFKC_SCF; 30E6 # So CIRCLED KATAKANA YU
+32F5 ; NFKC_SCF; 30E8 # So CIRCLED KATAKANA YO
+32F6 ; NFKC_SCF; 30E9 # So CIRCLED KATAKANA RA
+32F7 ; NFKC_SCF; 30EA # So CIRCLED KATAKANA RI
+32F8 ; NFKC_SCF; 30EB # So CIRCLED KATAKANA RU
+32F9 ; NFKC_SCF; 30EC # So CIRCLED KATAKANA RE
+32FA ; NFKC_SCF; 30ED # So CIRCLED KATAKANA RO
+32FB ; NFKC_SCF; 30EF # So CIRCLED KATAKANA WA
+32FC ; NFKC_SCF; 30F0 # So CIRCLED KATAKANA WI
+32FD ; NFKC_SCF; 30F1 # So CIRCLED KATAKANA WE
+32FE ; NFKC_SCF; 30F2 # So CIRCLED KATAKANA WO
+32FF ; NFKC_SCF; 4EE4 548C # So SQUARE ERA NAME REIWA
+3300 ; NFKC_SCF; 30A2 30D1 30FC 30C8 #So SQUARE APAATO
+3301 ; NFKC_SCF; 30A2 30EB 30D5 30A1 #So SQUARE ARUHUA
+3302 ; NFKC_SCF; 30A2 30F3 30DA 30A2 #So SQUARE ANPEA
+3303 ; NFKC_SCF; 30A2 30FC 30EB # So SQUARE AARU
+3304 ; NFKC_SCF; 30A4 30CB 30F3 30B0 #So SQUARE ININGU
+3305 ; NFKC_SCF; 30A4 30F3 30C1 # So SQUARE INTI
+3306 ; NFKC_SCF; 30A6 30A9 30F3 # So SQUARE UON
+3307 ; NFKC_SCF; 30A8 30B9 30AF 30FC 30C9 #So SQUARE ESUKUUDO
+3308 ; NFKC_SCF; 30A8 30FC 30AB 30FC #So SQUARE EEKAA
+3309 ; NFKC_SCF; 30AA 30F3 30B9 # So SQUARE ONSU
+330A ; NFKC_SCF; 30AA 30FC 30E0 # So SQUARE OOMU
+330B ; NFKC_SCF; 30AB 30A4 30EA # So SQUARE KAIRI
+330C ; NFKC_SCF; 30AB 30E9 30C3 30C8 #So SQUARE KARATTO
+330D ; NFKC_SCF; 30AB 30ED 30EA 30FC #So SQUARE KARORII
+330E ; NFKC_SCF; 30AC 30ED 30F3 # So SQUARE GARON
+330F ; NFKC_SCF; 30AC 30F3 30DE # So SQUARE GANMA
+3310 ; NFKC_SCF; 30AE 30AC # So SQUARE GIGA
+3311 ; NFKC_SCF; 30AE 30CB 30FC # So SQUARE GINII
+3312 ; NFKC_SCF; 30AD 30E5 30EA 30FC #So SQUARE KYURII
+3313 ; NFKC_SCF; 30AE 30EB 30C0 30FC #So SQUARE GIRUDAA
+3314 ; NFKC_SCF; 30AD 30ED # So SQUARE KIRO
+3315 ; NFKC_SCF; 30AD 30ED 30B0 30E9 30E0 #So SQUARE KIROGURAMU
+3316 ; NFKC_SCF; 30AD 30ED 30E1 30FC 30C8 30EB #So SQUARE KIROMEETORU
+3317 ; NFKC_SCF; 30AD 30ED 30EF 30C3 30C8 #So SQUARE KIROWATTO
+3318 ; NFKC_SCF; 30B0 30E9 30E0 # So SQUARE GURAMU
+3319 ; NFKC_SCF; 30B0 30E9 30E0 30C8 30F3 #So SQUARE GURAMUTON
+331A ; NFKC_SCF; 30AF 30EB 30BC 30A4 30ED #So SQUARE KURUZEIRO
+331B ; NFKC_SCF; 30AF 30ED 30FC 30CD #So SQUARE KUROONE
+331C ; NFKC_SCF; 30B1 30FC 30B9 # So SQUARE KEESU
+331D ; NFKC_SCF; 30B3 30EB 30CA # So SQUARE KORUNA
+331E ; NFKC_SCF; 30B3 30FC 30DD # So SQUARE KOOPO
+331F ; NFKC_SCF; 30B5 30A4 30AF 30EB #So SQUARE SAIKURU
+3320 ; NFKC_SCF; 30B5 30F3 30C1 30FC 30E0 #So SQUARE SANTIIMU
+3321 ; NFKC_SCF; 30B7 30EA 30F3 30B0 #So SQUARE SIRINGU
+3322 ; NFKC_SCF; 30BB 30F3 30C1 # So SQUARE SENTI
+3323 ; NFKC_SCF; 30BB 30F3 30C8 # So SQUARE SENTO
+3324 ; NFKC_SCF; 30C0 30FC 30B9 # So SQUARE DAASU
+3325 ; NFKC_SCF; 30C7 30B7 # So SQUARE DESI
+3326 ; NFKC_SCF; 30C9 30EB # So SQUARE DORU
+3327 ; NFKC_SCF; 30C8 30F3 # So SQUARE TON
+3328 ; NFKC_SCF; 30CA 30CE # So SQUARE NANO
+3329 ; NFKC_SCF; 30CE 30C3 30C8 # So SQUARE NOTTO
+332A ; NFKC_SCF; 30CF 30A4 30C4 # So SQUARE HAITU
+332B ; NFKC_SCF; 30D1 30FC 30BB 30F3 30C8 #So SQUARE PAASENTO
+332C ; NFKC_SCF; 30D1 30FC 30C4 # So SQUARE PAATU
+332D ; NFKC_SCF; 30D0 30FC 30EC 30EB #So SQUARE BAARERU
+332E ; NFKC_SCF; 30D4 30A2 30B9 30C8 30EB #So SQUARE PIASUTORU
+332F ; NFKC_SCF; 30D4 30AF 30EB # So SQUARE PIKURU
+3330 ; NFKC_SCF; 30D4 30B3 # So SQUARE PIKO
+3331 ; NFKC_SCF; 30D3 30EB # So SQUARE BIRU
+3332 ; NFKC_SCF; 30D5 30A1 30E9 30C3 30C9 #So SQUARE HUARADDO
+3333 ; NFKC_SCF; 30D5 30A3 30FC 30C8 #So SQUARE HUIITO
+3334 ; NFKC_SCF; 30D6 30C3 30B7 30A7 30EB #So SQUARE BUSSYERU
+3335 ; NFKC_SCF; 30D5 30E9 30F3 # So SQUARE HURAN
+3336 ; NFKC_SCF; 30D8 30AF 30BF 30FC 30EB #So SQUARE HEKUTAARU
+3337 ; NFKC_SCF; 30DA 30BD # So SQUARE PESO
+3338 ; NFKC_SCF; 30DA 30CB 30D2 # So SQUARE PENIHI
+3339 ; NFKC_SCF; 30D8 30EB 30C4 # So SQUARE HERUTU
+333A ; NFKC_SCF; 30DA 30F3 30B9 # So SQUARE PENSU
+333B ; NFKC_SCF; 30DA 30FC 30B8 # So SQUARE PEEZI
+333C ; NFKC_SCF; 30D9 30FC 30BF # So SQUARE BEETA
+333D ; NFKC_SCF; 30DD 30A4 30F3 30C8 #So SQUARE POINTO
+333E ; NFKC_SCF; 30DC 30EB 30C8 # So SQUARE BORUTO
+333F ; NFKC_SCF; 30DB 30F3 # So SQUARE HON
+3340 ; NFKC_SCF; 30DD 30F3 30C9 # So SQUARE PONDO
+3341 ; NFKC_SCF; 30DB 30FC 30EB # So SQUARE HOORU
+3342 ; NFKC_SCF; 30DB 30FC 30F3 # So SQUARE HOON
+3343 ; NFKC_SCF; 30DE 30A4 30AF 30ED #So SQUARE MAIKURO
+3344 ; NFKC_SCF; 30DE 30A4 30EB # So SQUARE MAIRU
+3345 ; NFKC_SCF; 30DE 30C3 30CF # So SQUARE MAHHA
+3346 ; NFKC_SCF; 30DE 30EB 30AF # So SQUARE MARUKU
+3347 ; NFKC_SCF; 30DE 30F3 30B7 30E7 30F3 #So SQUARE MANSYON
+3348 ; NFKC_SCF; 30DF 30AF 30ED 30F3 #So SQUARE MIKURON
+3349 ; NFKC_SCF; 30DF 30EA # So SQUARE MIRI
+334A ; NFKC_SCF; 30DF 30EA 30D0 30FC 30EB #So SQUARE MIRIBAARU
+334B ; NFKC_SCF; 30E1 30AC # So SQUARE MEGA
+334C ; NFKC_SCF; 30E1 30AC 30C8 30F3 #So SQUARE MEGATON
+334D ; NFKC_SCF; 30E1 30FC 30C8 30EB #So SQUARE MEETORU
+334E ; NFKC_SCF; 30E4 30FC 30C9 # So SQUARE YAADO
+334F ; NFKC_SCF; 30E4 30FC 30EB # So SQUARE YAARU
+3350 ; NFKC_SCF; 30E6 30A2 30F3 # So SQUARE YUAN
+3351 ; NFKC_SCF; 30EA 30C3 30C8 30EB #So SQUARE RITTORU
+3352 ; NFKC_SCF; 30EA 30E9 # So SQUARE RIRA
+3353 ; NFKC_SCF; 30EB 30D4 30FC # So SQUARE RUPII
+3354 ; NFKC_SCF; 30EB 30FC 30D6 30EB #So SQUARE RUUBURU
+3355 ; NFKC_SCF; 30EC 30E0 # So SQUARE REMU
+3356 ; NFKC_SCF; 30EC 30F3 30C8 30B2 30F3 #So SQUARE RENTOGEN
+3357 ; NFKC_SCF; 30EF 30C3 30C8 # So SQUARE WATTO
+3358 ; NFKC_SCF; 0030 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+3359 ; NFKC_SCF; 0031 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+335A ; NFKC_SCF; 0032 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+335B ; NFKC_SCF; 0033 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+335C ; NFKC_SCF; 0034 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+335D ; NFKC_SCF; 0035 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+335E ; NFKC_SCF; 0036 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+335F ; NFKC_SCF; 0037 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+3360 ; NFKC_SCF; 0038 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+3361 ; NFKC_SCF; 0039 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+3362 ; NFKC_SCF; 0031 0030 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+3363 ; NFKC_SCF; 0031 0031 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+3364 ; NFKC_SCF; 0031 0032 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+3365 ; NFKC_SCF; 0031 0033 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+3366 ; NFKC_SCF; 0031 0034 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+3367 ; NFKC_SCF; 0031 0035 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+3368 ; NFKC_SCF; 0031 0036 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+3369 ; NFKC_SCF; 0031 0037 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+336A ; NFKC_SCF; 0031 0038 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+336B ; NFKC_SCF; 0031 0039 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+336C ; NFKC_SCF; 0032 0030 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+336D ; NFKC_SCF; 0032 0031 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+336E ; NFKC_SCF; 0032 0032 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+336F ; NFKC_SCF; 0032 0033 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3370 ; NFKC_SCF; 0032 0034 70B9 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3371 ; NFKC_SCF; 0068 0070 0061 # So SQUARE HPA
+3372 ; NFKC_SCF; 0064 0061 # So SQUARE DA
+3373 ; NFKC_SCF; 0061 0075 # So SQUARE AU
+3374 ; NFKC_SCF; 0062 0061 0072 # So SQUARE BAR
+3375 ; NFKC_SCF; 006F 0076 # So SQUARE OV
+3376 ; NFKC_SCF; 0070 0063 # So SQUARE PC
+3377 ; NFKC_SCF; 0064 006D # So SQUARE DM
+3378 ; NFKC_SCF; 0064 006D 0032 # So SQUARE DM SQUARED
+3379 ; NFKC_SCF; 0064 006D 0033 # So SQUARE DM CUBED
+337A ; NFKC_SCF; 0069 0075 # So SQUARE IU
+337B ; NFKC_SCF; 5E73 6210 # So SQUARE ERA NAME HEISEI
+337C ; NFKC_SCF; 662D 548C # So SQUARE ERA NAME SYOUWA
+337D ; NFKC_SCF; 5927 6B63 # So SQUARE ERA NAME TAISYOU
+337E ; NFKC_SCF; 660E 6CBB # So SQUARE ERA NAME MEIZI
+337F ; NFKC_SCF; 682A 5F0F 4F1A 793E #So SQUARE CORPORATION
+3380 ; NFKC_SCF; 0070 0061 # So SQUARE PA AMPS
+3381 ; NFKC_SCF; 006E 0061 # So SQUARE NA
+3382 ; NFKC_SCF; 03BC 0061 # So SQUARE MU A
+3383 ; NFKC_SCF; 006D 0061 # So SQUARE MA
+3384 ; NFKC_SCF; 006B 0061 # So SQUARE KA
+3385 ; NFKC_SCF; 006B 0062 # So SQUARE KB
+3386 ; NFKC_SCF; 006D 0062 # So SQUARE MB
+3387 ; NFKC_SCF; 0067 0062 # So SQUARE GB
+3388 ; NFKC_SCF; 0063 0061 006C # So SQUARE CAL
+3389 ; NFKC_SCF; 006B 0063 0061 006C #So SQUARE KCAL
+338A ; NFKC_SCF; 0070 0066 # So SQUARE PF
+338B ; NFKC_SCF; 006E 0066 # So SQUARE NF
+338C ; NFKC_SCF; 03BC 0066 # So SQUARE MU F
+338D ; NFKC_SCF; 03BC 0067 # So SQUARE MU G
+338E ; NFKC_SCF; 006D 0067 # So SQUARE MG
+338F ; NFKC_SCF; 006B 0067 # So SQUARE KG
+3390 ; NFKC_SCF; 0068 007A # So SQUARE HZ
+3391 ; NFKC_SCF; 006B 0068 007A # So SQUARE KHZ
+3392 ; NFKC_SCF; 006D 0068 007A # So SQUARE MHZ
+3393 ; NFKC_SCF; 0067 0068 007A # So SQUARE GHZ
+3394 ; NFKC_SCF; 0074 0068 007A # So SQUARE THZ
+3395 ; NFKC_SCF; 03BC 006C # So SQUARE MU L
+3396 ; NFKC_SCF; 006D 006C # So SQUARE ML
+3397 ; NFKC_SCF; 0064 006C # So SQUARE DL
+3398 ; NFKC_SCF; 006B 006C # So SQUARE KL
+3399 ; NFKC_SCF; 0066 006D # So SQUARE FM
+339A ; NFKC_SCF; 006E 006D # So SQUARE NM
+339B ; NFKC_SCF; 03BC 006D # So SQUARE MU M
+339C ; NFKC_SCF; 006D 006D # So SQUARE MM
+339D ; NFKC_SCF; 0063 006D # So SQUARE CM
+339E ; NFKC_SCF; 006B 006D # So SQUARE KM
+339F ; NFKC_SCF; 006D 006D 0032 # So SQUARE MM SQUARED
+33A0 ; NFKC_SCF; 0063 006D 0032 # So SQUARE CM SQUARED
+33A1 ; NFKC_SCF; 006D 0032 # So SQUARE M SQUARED
+33A2 ; NFKC_SCF; 006B 006D 0032 # So SQUARE KM SQUARED
+33A3 ; NFKC_SCF; 006D 006D 0033 # So SQUARE MM CUBED
+33A4 ; NFKC_SCF; 0063 006D 0033 # So SQUARE CM CUBED
+33A5 ; NFKC_SCF; 006D 0033 # So SQUARE M CUBED
+33A6 ; NFKC_SCF; 006B 006D 0033 # So SQUARE KM CUBED
+33A7 ; NFKC_SCF; 006D 2215 0073 # So SQUARE M OVER S
+33A8 ; NFKC_SCF; 006D 2215 0073 0032 #So SQUARE M OVER S SQUARED
+33A9 ; NFKC_SCF; 0070 0061 # So SQUARE PA
+33AA ; NFKC_SCF; 006B 0070 0061 # So SQUARE KPA
+33AB ; NFKC_SCF; 006D 0070 0061 # So SQUARE MPA
+33AC ; NFKC_SCF; 0067 0070 0061 # So SQUARE GPA
+33AD ; NFKC_SCF; 0072 0061 0064 # So SQUARE RAD
+33AE ; NFKC_SCF; 0072 0061 0064 2215 0073 #So SQUARE RAD OVER S
+33AF ; NFKC_SCF; 0072 0061 0064 2215 0073 0032 #So SQUARE RAD OVER S SQUARED
+33B0 ; NFKC_SCF; 0070 0073 # So SQUARE PS
+33B1 ; NFKC_SCF; 006E 0073 # So SQUARE NS
+33B2 ; NFKC_SCF; 03BC 0073 # So SQUARE MU S
+33B3 ; NFKC_SCF; 006D 0073 # So SQUARE MS
+33B4 ; NFKC_SCF; 0070 0076 # So SQUARE PV
+33B5 ; NFKC_SCF; 006E 0076 # So SQUARE NV
+33B6 ; NFKC_SCF; 03BC 0076 # So SQUARE MU V
+33B7 ; NFKC_SCF; 006D 0076 # So SQUARE MV
+33B8 ; NFKC_SCF; 006B 0076 # So SQUARE KV
+33B9 ; NFKC_SCF; 006D 0076 # So SQUARE MV MEGA
+33BA ; NFKC_SCF; 0070 0077 # So SQUARE PW
+33BB ; NFKC_SCF; 006E 0077 # So SQUARE NW
+33BC ; NFKC_SCF; 03BC 0077 # So SQUARE MU W
+33BD ; NFKC_SCF; 006D 0077 # So SQUARE MW
+33BE ; NFKC_SCF; 006B 0077 # So SQUARE KW
+33BF ; NFKC_SCF; 006D 0077 # So SQUARE MW MEGA
+33C0 ; NFKC_SCF; 006B 03C9 # So SQUARE K OHM
+33C1 ; NFKC_SCF; 006D 03C9 # So SQUARE M OHM
+33C2 ; NFKC_SCF; 0061 002E 006D 002E #So SQUARE AM
+33C3 ; NFKC_SCF; 0062 0071 # So SQUARE BQ
+33C4 ; NFKC_SCF; 0063 0063 # So SQUARE CC
+33C5 ; NFKC_SCF; 0063 0064 # So SQUARE CD
+33C6 ; NFKC_SCF; 0063 2215 006B 0067 #So SQUARE C OVER KG
+33C7 ; NFKC_SCF; 0063 006F 002E # So SQUARE CO
+33C8 ; NFKC_SCF; 0064 0062 # So SQUARE DB
+33C9 ; NFKC_SCF; 0067 0079 # So SQUARE GY
+33CA ; NFKC_SCF; 0068 0061 # So SQUARE HA
+33CB ; NFKC_SCF; 0068 0070 # So SQUARE HP
+33CC ; NFKC_SCF; 0069 006E # So SQUARE IN
+33CD ; NFKC_SCF; 006B 006B # So SQUARE KK
+33CE ; NFKC_SCF; 006B 006D # So SQUARE KM CAPITAL
+33CF ; NFKC_SCF; 006B 0074 # So SQUARE KT
+33D0 ; NFKC_SCF; 006C 006D # So SQUARE LM
+33D1 ; NFKC_SCF; 006C 006E # So SQUARE LN
+33D2 ; NFKC_SCF; 006C 006F 0067 # So SQUARE LOG
+33D3 ; NFKC_SCF; 006C 0078 # So SQUARE LX
+33D4 ; NFKC_SCF; 006D 0062 # So SQUARE MB SMALL
+33D5 ; NFKC_SCF; 006D 0069 006C # So SQUARE MIL
+33D6 ; NFKC_SCF; 006D 006F 006C # So SQUARE MOL
+33D7 ; NFKC_SCF; 0070 0068 # So SQUARE PH
+33D8 ; NFKC_SCF; 0070 002E 006D 002E #So SQUARE PM
+33D9 ; NFKC_SCF; 0070 0070 006D # So SQUARE PPM
+33DA ; NFKC_SCF; 0070 0072 # So SQUARE PR
+33DB ; NFKC_SCF; 0073 0072 # So SQUARE SR
+33DC ; NFKC_SCF; 0073 0076 # So SQUARE SV
+33DD ; NFKC_SCF; 0077 0062 # So SQUARE WB
+33DE ; NFKC_SCF; 0076 2215 006D # So SQUARE V OVER M
+33DF ; NFKC_SCF; 0061 2215 006D # So SQUARE A OVER M
+33E0 ; NFKC_SCF; 0031 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+33E1 ; NFKC_SCF; 0032 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+33E2 ; NFKC_SCF; 0033 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+33E3 ; NFKC_SCF; 0034 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+33E4 ; NFKC_SCF; 0035 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+33E5 ; NFKC_SCF; 0036 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+33E6 ; NFKC_SCF; 0037 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+33E7 ; NFKC_SCF; 0038 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+33E8 ; NFKC_SCF; 0039 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+33E9 ; NFKC_SCF; 0031 0030 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+33EA ; NFKC_SCF; 0031 0031 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+33EB ; NFKC_SCF; 0031 0032 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+33EC ; NFKC_SCF; 0031 0033 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+33ED ; NFKC_SCF; 0031 0034 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+33EE ; NFKC_SCF; 0031 0035 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+33EF ; NFKC_SCF; 0031 0036 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+33F0 ; NFKC_SCF; 0031 0037 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+33F1 ; NFKC_SCF; 0031 0038 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+33F2 ; NFKC_SCF; 0031 0039 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+33F3 ; NFKC_SCF; 0032 0030 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+33F4 ; NFKC_SCF; 0032 0031 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+33F5 ; NFKC_SCF; 0032 0032 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+33F6 ; NFKC_SCF; 0032 0033 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+33F7 ; NFKC_SCF; 0032 0034 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+33F8 ; NFKC_SCF; 0032 0035 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; NFKC_SCF; 0032 0036 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; NFKC_SCF; 0032 0037 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; NFKC_SCF; 0032 0038 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; NFKC_SCF; 0032 0039 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33FD ; NFKC_SCF; 0033 0030 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; NFKC_SCF; 0033 0031 65E5 # So IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33FF ; NFKC_SCF; 0067 0061 006C # So SQUARE GAL
+A640 ; NFKC_SCF; A641 # L& CYRILLIC CAPITAL LETTER ZEMLYA
+A642 ; NFKC_SCF; A643 # L& CYRILLIC CAPITAL LETTER DZELO
+A644 ; NFKC_SCF; A645 # L& CYRILLIC CAPITAL LETTER REVERSED DZE
+A646 ; NFKC_SCF; A647 # L& CYRILLIC CAPITAL LETTER IOTA
+A648 ; NFKC_SCF; A649 # L& CYRILLIC CAPITAL LETTER DJERV
+A64A ; NFKC_SCF; A64B # L& CYRILLIC CAPITAL LETTER MONOGRAPH UK
+A64C ; NFKC_SCF; A64D # L& CYRILLIC CAPITAL LETTER BROAD OMEGA
+A64E ; NFKC_SCF; A64F # L& CYRILLIC CAPITAL LETTER NEUTRAL YER
+A650 ; NFKC_SCF; A651 # L& CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+A652 ; NFKC_SCF; A653 # L& CYRILLIC CAPITAL LETTER IOTIFIED YAT
+A654 ; NFKC_SCF; A655 # L& CYRILLIC CAPITAL LETTER REVERSED YU
+A656 ; NFKC_SCF; A657 # L& CYRILLIC CAPITAL LETTER IOTIFIED A
+A658 ; NFKC_SCF; A659 # L& CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+A65A ; NFKC_SCF; A65B # L& CYRILLIC CAPITAL LETTER BLENDED YUS
+A65C ; NFKC_SCF; A65D # L& CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+A65E ; NFKC_SCF; A65F # L& CYRILLIC CAPITAL LETTER YN
+A660 ; NFKC_SCF; A661 # L& CYRILLIC CAPITAL LETTER REVERSED TSE
+A662 ; NFKC_SCF; A663 # L& CYRILLIC CAPITAL LETTER SOFT DE
+A664 ; NFKC_SCF; A665 # L& CYRILLIC CAPITAL LETTER SOFT EL
+A666 ; NFKC_SCF; A667 # L& CYRILLIC CAPITAL LETTER SOFT EM
+A668 ; NFKC_SCF; A669 # L& CYRILLIC CAPITAL LETTER MONOCULAR O
+A66A ; NFKC_SCF; A66B # L& CYRILLIC CAPITAL LETTER BINOCULAR O
+A66C ; NFKC_SCF; A66D # L& CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+A680 ; NFKC_SCF; A681 # L& CYRILLIC CAPITAL LETTER DWE
+A682 ; NFKC_SCF; A683 # L& CYRILLIC CAPITAL LETTER DZWE
+A684 ; NFKC_SCF; A685 # L& CYRILLIC CAPITAL LETTER ZHWE
+A686 ; NFKC_SCF; A687 # L& CYRILLIC CAPITAL LETTER CCHE
+A688 ; NFKC_SCF; A689 # L& CYRILLIC CAPITAL LETTER DZZE
+A68A ; NFKC_SCF; A68B # L& CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+A68C ; NFKC_SCF; A68D # L& CYRILLIC CAPITAL LETTER TWE
+A68E ; NFKC_SCF; A68F # L& CYRILLIC CAPITAL LETTER TSWE
+A690 ; NFKC_SCF; A691 # L& CYRILLIC CAPITAL LETTER TSSE
+A692 ; NFKC_SCF; A693 # L& CYRILLIC CAPITAL LETTER TCHE
+A694 ; NFKC_SCF; A695 # L& CYRILLIC CAPITAL LETTER HWE
+A696 ; NFKC_SCF; A697 # L& CYRILLIC CAPITAL LETTER SHWE
+A698 ; NFKC_SCF; A699 # L& CYRILLIC CAPITAL LETTER DOUBLE O
+A69A ; NFKC_SCF; A69B # L& CYRILLIC CAPITAL LETTER CROSSED O
+A69C ; NFKC_SCF; 044A # Lm MODIFIER LETTER CYRILLIC HARD SIGN
+A69D ; NFKC_SCF; 044C # Lm MODIFIER LETTER CYRILLIC SOFT SIGN
+A722 ; NFKC_SCF; A723 # L& LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+A724 ; NFKC_SCF; A725 # L& LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+A726 ; NFKC_SCF; A727 # L& LATIN CAPITAL LETTER HENG
+A728 ; NFKC_SCF; A729 # L& LATIN CAPITAL LETTER TZ
+A72A ; NFKC_SCF; A72B # L& LATIN CAPITAL LETTER TRESILLO
+A72C ; NFKC_SCF; A72D # L& LATIN CAPITAL LETTER CUATRILLO
+A72E ; NFKC_SCF; A72F # L& LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+A732 ; NFKC_SCF; A733 # L& LATIN CAPITAL LETTER AA
+A734 ; NFKC_SCF; A735 # L& LATIN CAPITAL LETTER AO
+A736 ; NFKC_SCF; A737 # L& LATIN CAPITAL LETTER AU
+A738 ; NFKC_SCF; A739 # L& LATIN CAPITAL LETTER AV
+A73A ; NFKC_SCF; A73B # L& LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+A73C ; NFKC_SCF; A73D # L& LATIN CAPITAL LETTER AY
+A73E ; NFKC_SCF; A73F # L& LATIN CAPITAL LETTER REVERSED C WITH DOT
+A740 ; NFKC_SCF; A741 # L& LATIN CAPITAL LETTER K WITH STROKE
+A742 ; NFKC_SCF; A743 # L& LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+A744 ; NFKC_SCF; A745 # L& LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+A746 ; NFKC_SCF; A747 # L& LATIN CAPITAL LETTER BROKEN L
+A748 ; NFKC_SCF; A749 # L& LATIN CAPITAL LETTER L WITH HIGH STROKE
+A74A ; NFKC_SCF; A74B # L& LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+A74C ; NFKC_SCF; A74D # L& LATIN CAPITAL LETTER O WITH LOOP
+A74E ; NFKC_SCF; A74F # L& LATIN CAPITAL LETTER OO
+A750 ; NFKC_SCF; A751 # L& LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+A752 ; NFKC_SCF; A753 # L& LATIN CAPITAL LETTER P WITH FLOURISH
+A754 ; NFKC_SCF; A755 # L& LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+A756 ; NFKC_SCF; A757 # L& LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+A758 ; NFKC_SCF; A759 # L& LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+A75A ; NFKC_SCF; A75B # L& LATIN CAPITAL LETTER R ROTUNDA
+A75C ; NFKC_SCF; A75D # L& LATIN CAPITAL LETTER RUM ROTUNDA
+A75E ; NFKC_SCF; A75F # L& LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+A760 ; NFKC_SCF; A761 # L& LATIN CAPITAL LETTER VY
+A762 ; NFKC_SCF; A763 # L& LATIN CAPITAL LETTER VISIGOTHIC Z
+A764 ; NFKC_SCF; A765 # L& LATIN CAPITAL LETTER THORN WITH STROKE
+A766 ; NFKC_SCF; A767 # L& LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+A768 ; NFKC_SCF; A769 # L& LATIN CAPITAL LETTER VEND
+A76A ; NFKC_SCF; A76B # L& LATIN CAPITAL LETTER ET
+A76C ; NFKC_SCF; A76D # L& LATIN CAPITAL LETTER IS
+A76E ; NFKC_SCF; A76F # L& LATIN CAPITAL LETTER CON
+A770 ; NFKC_SCF; A76F # Lm MODIFIER LETTER US
+A779 ; NFKC_SCF; A77A # L& LATIN CAPITAL LETTER INSULAR D
+A77B ; NFKC_SCF; A77C # L& LATIN CAPITAL LETTER INSULAR F
+A77D ; NFKC_SCF; 1D79 # L& LATIN CAPITAL LETTER INSULAR G
+A77E ; NFKC_SCF; A77F # L& LATIN CAPITAL LETTER TURNED INSULAR G
+A780 ; NFKC_SCF; A781 # L& LATIN CAPITAL LETTER TURNED L
+A782 ; NFKC_SCF; A783 # L& LATIN CAPITAL LETTER INSULAR R
+A784 ; NFKC_SCF; A785 # L& LATIN CAPITAL LETTER INSULAR S
+A786 ; NFKC_SCF; A787 # L& LATIN CAPITAL LETTER INSULAR T
+A78B ; NFKC_SCF; A78C # L& LATIN CAPITAL LETTER SALTILLO
+A78D ; NFKC_SCF; 0265 # L& LATIN CAPITAL LETTER TURNED H
+A790 ; NFKC_SCF; A791 # L& LATIN CAPITAL LETTER N WITH DESCENDER
+A792 ; NFKC_SCF; A793 # L& LATIN CAPITAL LETTER C WITH BAR
+A796 ; NFKC_SCF; A797 # L& LATIN CAPITAL LETTER B WITH FLOURISH
+A798 ; NFKC_SCF; A799 # L& LATIN CAPITAL LETTER F WITH STROKE
+A79A ; NFKC_SCF; A79B # L& LATIN CAPITAL LETTER VOLAPUK AE
+A79C ; NFKC_SCF; A79D # L& LATIN CAPITAL LETTER VOLAPUK OE
+A79E ; NFKC_SCF; A79F # L& LATIN CAPITAL LETTER VOLAPUK UE
+A7A0 ; NFKC_SCF; A7A1 # L& LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
+A7A2 ; NFKC_SCF; A7A3 # L& LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
+A7A4 ; NFKC_SCF; A7A5 # L& LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
+A7A6 ; NFKC_SCF; A7A7 # L& LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
+A7A8 ; NFKC_SCF; A7A9 # L& LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
+A7AA ; NFKC_SCF; 0266 # L& LATIN CAPITAL LETTER H WITH HOOK
+A7AB ; NFKC_SCF; 025C # L& LATIN CAPITAL LETTER REVERSED OPEN E
+A7AC ; NFKC_SCF; 0261 # L& LATIN CAPITAL LETTER SCRIPT G
+A7AD ; NFKC_SCF; 026C # L& LATIN CAPITAL LETTER L WITH BELT
+A7AE ; NFKC_SCF; 026A # L& LATIN CAPITAL LETTER SMALL CAPITAL I
+A7B0 ; NFKC_SCF; 029E # L& LATIN CAPITAL LETTER TURNED K
+A7B1 ; NFKC_SCF; 0287 # L& LATIN CAPITAL LETTER TURNED T
+A7B2 ; NFKC_SCF; 029D # L& LATIN CAPITAL LETTER J WITH CROSSED-TAIL
+A7B3 ; NFKC_SCF; AB53 # L& LATIN CAPITAL LETTER CHI
+A7B4 ; NFKC_SCF; A7B5 # L& LATIN CAPITAL LETTER BETA
+A7B6 ; NFKC_SCF; A7B7 # L& LATIN CAPITAL LETTER OMEGA
+A7B8 ; NFKC_SCF; A7B9 # L& LATIN CAPITAL LETTER U WITH STROKE
+A7BA ; NFKC_SCF; A7BB # L& LATIN CAPITAL LETTER GLOTTAL A
+A7BC ; NFKC_SCF; A7BD # L& LATIN CAPITAL LETTER GLOTTAL I
+A7BE ; NFKC_SCF; A7BF # L& LATIN CAPITAL LETTER GLOTTAL U
+A7C0 ; NFKC_SCF; A7C1 # L& LATIN CAPITAL LETTER OLD POLISH O
+A7C2 ; NFKC_SCF; A7C3 # L& LATIN CAPITAL LETTER ANGLICANA W
+A7C4 ; NFKC_SCF; A794 # L& LATIN CAPITAL LETTER C WITH PALATAL HOOK
+A7C5 ; NFKC_SCF; 0282 # L& LATIN CAPITAL LETTER S WITH HOOK
+A7C6 ; NFKC_SCF; 1D8E # L& LATIN CAPITAL LETTER Z WITH PALATAL HOOK
+A7C7 ; NFKC_SCF; A7C8 # L& LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
+A7C9 ; NFKC_SCF; A7CA # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+A7D0 ; NFKC_SCF; A7D1 # L& LATIN CAPITAL LETTER CLOSED INSULAR G
+A7D6 ; NFKC_SCF; A7D7 # L& LATIN CAPITAL LETTER MIDDLE SCOTS S
+A7D8 ; NFKC_SCF; A7D9 # L& LATIN CAPITAL LETTER SIGMOID S
+A7F2 ; NFKC_SCF; 0063 # Lm MODIFIER LETTER CAPITAL C
+A7F3 ; NFKC_SCF; 0066 # Lm MODIFIER LETTER CAPITAL F
+A7F4 ; NFKC_SCF; 0071 # Lm MODIFIER LETTER CAPITAL Q
+A7F5 ; NFKC_SCF; A7F6 # L& LATIN CAPITAL LETTER REVERSED HALF H
+A7F8 ; NFKC_SCF; 0127 # Lm MODIFIER LETTER CAPITAL H WITH STROKE
+A7F9 ; NFKC_SCF; 0153 # Lm MODIFIER LETTER SMALL LIGATURE OE
+AB5C ; NFKC_SCF; A727 # Lm MODIFIER LETTER SMALL HENG
+AB5D ; NFKC_SCF; AB37 # Lm MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+AB5E ; NFKC_SCF; 026B # Lm MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB5F ; NFKC_SCF; AB52 # Lm MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB69 ; NFKC_SCF; 028D # Lm MODIFIER LETTER SMALL TURNED W
+AB70 ; NFKC_SCF; 13A0 # L& CHEROKEE SMALL LETTER A
+AB71 ; NFKC_SCF; 13A1 # L& CHEROKEE SMALL LETTER E
+AB72 ; NFKC_SCF; 13A2 # L& CHEROKEE SMALL LETTER I
+AB73 ; NFKC_SCF; 13A3 # L& CHEROKEE SMALL LETTER O
+AB74 ; NFKC_SCF; 13A4 # L& CHEROKEE SMALL LETTER U
+AB75 ; NFKC_SCF; 13A5 # L& CHEROKEE SMALL LETTER V
+AB76 ; NFKC_SCF; 13A6 # L& CHEROKEE SMALL LETTER GA
+AB77 ; NFKC_SCF; 13A7 # L& CHEROKEE SMALL LETTER KA
+AB78 ; NFKC_SCF; 13A8 # L& CHEROKEE SMALL LETTER GE
+AB79 ; NFKC_SCF; 13A9 # L& CHEROKEE SMALL LETTER GI
+AB7A ; NFKC_SCF; 13AA # L& CHEROKEE SMALL LETTER GO
+AB7B ; NFKC_SCF; 13AB # L& CHEROKEE SMALL LETTER GU
+AB7C ; NFKC_SCF; 13AC # L& CHEROKEE SMALL LETTER GV
+AB7D ; NFKC_SCF; 13AD # L& CHEROKEE SMALL LETTER HA
+AB7E ; NFKC_SCF; 13AE # L& CHEROKEE SMALL LETTER HE
+AB7F ; NFKC_SCF; 13AF # L& CHEROKEE SMALL LETTER HI
+AB80 ; NFKC_SCF; 13B0 # L& CHEROKEE SMALL LETTER HO
+AB81 ; NFKC_SCF; 13B1 # L& CHEROKEE SMALL LETTER HU
+AB82 ; NFKC_SCF; 13B2 # L& CHEROKEE SMALL LETTER HV
+AB83 ; NFKC_SCF; 13B3 # L& CHEROKEE SMALL LETTER LA
+AB84 ; NFKC_SCF; 13B4 # L& CHEROKEE SMALL LETTER LE
+AB85 ; NFKC_SCF; 13B5 # L& CHEROKEE SMALL LETTER LI
+AB86 ; NFKC_SCF; 13B6 # L& CHEROKEE SMALL LETTER LO
+AB87 ; NFKC_SCF; 13B7 # L& CHEROKEE SMALL LETTER LU
+AB88 ; NFKC_SCF; 13B8 # L& CHEROKEE SMALL LETTER LV
+AB89 ; NFKC_SCF; 13B9 # L& CHEROKEE SMALL LETTER MA
+AB8A ; NFKC_SCF; 13BA # L& CHEROKEE SMALL LETTER ME
+AB8B ; NFKC_SCF; 13BB # L& CHEROKEE SMALL LETTER MI
+AB8C ; NFKC_SCF; 13BC # L& CHEROKEE SMALL LETTER MO
+AB8D ; NFKC_SCF; 13BD # L& CHEROKEE SMALL LETTER MU
+AB8E ; NFKC_SCF; 13BE # L& CHEROKEE SMALL LETTER NA
+AB8F ; NFKC_SCF; 13BF # L& CHEROKEE SMALL LETTER HNA
+AB90 ; NFKC_SCF; 13C0 # L& CHEROKEE SMALL LETTER NAH
+AB91 ; NFKC_SCF; 13C1 # L& CHEROKEE SMALL LETTER NE
+AB92 ; NFKC_SCF; 13C2 # L& CHEROKEE SMALL LETTER NI
+AB93 ; NFKC_SCF; 13C3 # L& CHEROKEE SMALL LETTER NO
+AB94 ; NFKC_SCF; 13C4 # L& CHEROKEE SMALL LETTER NU
+AB95 ; NFKC_SCF; 13C5 # L& CHEROKEE SMALL LETTER NV
+AB96 ; NFKC_SCF; 13C6 # L& CHEROKEE SMALL LETTER QUA
+AB97 ; NFKC_SCF; 13C7 # L& CHEROKEE SMALL LETTER QUE
+AB98 ; NFKC_SCF; 13C8 # L& CHEROKEE SMALL LETTER QUI
+AB99 ; NFKC_SCF; 13C9 # L& CHEROKEE SMALL LETTER QUO
+AB9A ; NFKC_SCF; 13CA # L& CHEROKEE SMALL LETTER QUU
+AB9B ; NFKC_SCF; 13CB # L& CHEROKEE SMALL LETTER QUV
+AB9C ; NFKC_SCF; 13CC # L& CHEROKEE SMALL LETTER SA
+AB9D ; NFKC_SCF; 13CD # L& CHEROKEE SMALL LETTER S
+AB9E ; NFKC_SCF; 13CE # L& CHEROKEE SMALL LETTER SE
+AB9F ; NFKC_SCF; 13CF # L& CHEROKEE SMALL LETTER SI
+ABA0 ; NFKC_SCF; 13D0 # L& CHEROKEE SMALL LETTER SO
+ABA1 ; NFKC_SCF; 13D1 # L& CHEROKEE SMALL LETTER SU
+ABA2 ; NFKC_SCF; 13D2 # L& CHEROKEE SMALL LETTER SV
+ABA3 ; NFKC_SCF; 13D3 # L& CHEROKEE SMALL LETTER DA
+ABA4 ; NFKC_SCF; 13D4 # L& CHEROKEE SMALL LETTER TA
+ABA5 ; NFKC_SCF; 13D5 # L& CHEROKEE SMALL LETTER DE
+ABA6 ; NFKC_SCF; 13D6 # L& CHEROKEE SMALL LETTER TE
+ABA7 ; NFKC_SCF; 13D7 # L& CHEROKEE SMALL LETTER DI
+ABA8 ; NFKC_SCF; 13D8 # L& CHEROKEE SMALL LETTER TI
+ABA9 ; NFKC_SCF; 13D9 # L& CHEROKEE SMALL LETTER DO
+ABAA ; NFKC_SCF; 13DA # L& CHEROKEE SMALL LETTER DU
+ABAB ; NFKC_SCF; 13DB # L& CHEROKEE SMALL LETTER DV
+ABAC ; NFKC_SCF; 13DC # L& CHEROKEE SMALL LETTER DLA
+ABAD ; NFKC_SCF; 13DD # L& CHEROKEE SMALL LETTER TLA
+ABAE ; NFKC_SCF; 13DE # L& CHEROKEE SMALL LETTER TLE
+ABAF ; NFKC_SCF; 13DF # L& CHEROKEE SMALL LETTER TLI
+ABB0 ; NFKC_SCF; 13E0 # L& CHEROKEE SMALL LETTER TLO
+ABB1 ; NFKC_SCF; 13E1 # L& CHEROKEE SMALL LETTER TLU
+ABB2 ; NFKC_SCF; 13E2 # L& CHEROKEE SMALL LETTER TLV
+ABB3 ; NFKC_SCF; 13E3 # L& CHEROKEE SMALL LETTER TSA
+ABB4 ; NFKC_SCF; 13E4 # L& CHEROKEE SMALL LETTER TSE
+ABB5 ; NFKC_SCF; 13E5 # L& CHEROKEE SMALL LETTER TSI
+ABB6 ; NFKC_SCF; 13E6 # L& CHEROKEE SMALL LETTER TSO
+ABB7 ; NFKC_SCF; 13E7 # L& CHEROKEE SMALL LETTER TSU
+ABB8 ; NFKC_SCF; 13E8 # L& CHEROKEE SMALL LETTER TSV
+ABB9 ; NFKC_SCF; 13E9 # L& CHEROKEE SMALL LETTER WA
+ABBA ; NFKC_SCF; 13EA # L& CHEROKEE SMALL LETTER WE
+ABBB ; NFKC_SCF; 13EB # L& CHEROKEE SMALL LETTER WI
+ABBC ; NFKC_SCF; 13EC # L& CHEROKEE SMALL LETTER WO
+ABBD ; NFKC_SCF; 13ED # L& CHEROKEE SMALL LETTER WU
+ABBE ; NFKC_SCF; 13EE # L& CHEROKEE SMALL LETTER WV
+ABBF ; NFKC_SCF; 13EF # L& CHEROKEE SMALL LETTER YA
+F900 ; NFKC_SCF; 8C48 # Lo CJK COMPATIBILITY IDEOGRAPH-F900
+F901 ; NFKC_SCF; 66F4 # Lo CJK COMPATIBILITY IDEOGRAPH-F901
+F902 ; NFKC_SCF; 8ECA # Lo CJK COMPATIBILITY IDEOGRAPH-F902
+F903 ; NFKC_SCF; 8CC8 # Lo CJK COMPATIBILITY IDEOGRAPH-F903
+F904 ; NFKC_SCF; 6ED1 # Lo CJK COMPATIBILITY IDEOGRAPH-F904
+F905 ; NFKC_SCF; 4E32 # Lo CJK COMPATIBILITY IDEOGRAPH-F905
+F906 ; NFKC_SCF; 53E5 # Lo CJK COMPATIBILITY IDEOGRAPH-F906
+F907..F908 ; NFKC_SCF; 9F9C # Lo [2] CJK COMPATIBILITY IDEOGRAPH-F907..CJK COMPATIBILITY IDEOGRAPH-F908
+F909 ; NFKC_SCF; 5951 # Lo CJK COMPATIBILITY IDEOGRAPH-F909
+F90A ; NFKC_SCF; 91D1 # Lo CJK COMPATIBILITY IDEOGRAPH-F90A
+F90B ; NFKC_SCF; 5587 # Lo CJK COMPATIBILITY IDEOGRAPH-F90B
+F90C ; NFKC_SCF; 5948 # Lo CJK COMPATIBILITY IDEOGRAPH-F90C
+F90D ; NFKC_SCF; 61F6 # Lo CJK COMPATIBILITY IDEOGRAPH-F90D
+F90E ; NFKC_SCF; 7669 # Lo CJK COMPATIBILITY IDEOGRAPH-F90E
+F90F ; NFKC_SCF; 7F85 # Lo CJK COMPATIBILITY IDEOGRAPH-F90F
+F910 ; NFKC_SCF; 863F # Lo CJK COMPATIBILITY IDEOGRAPH-F910
+F911 ; NFKC_SCF; 87BA # Lo CJK COMPATIBILITY IDEOGRAPH-F911
+F912 ; NFKC_SCF; 88F8 # Lo CJK COMPATIBILITY IDEOGRAPH-F912
+F913 ; NFKC_SCF; 908F # Lo CJK COMPATIBILITY IDEOGRAPH-F913
+F914 ; NFKC_SCF; 6A02 # Lo CJK COMPATIBILITY IDEOGRAPH-F914
+F915 ; NFKC_SCF; 6D1B # Lo CJK COMPATIBILITY IDEOGRAPH-F915
+F916 ; NFKC_SCF; 70D9 # Lo CJK COMPATIBILITY IDEOGRAPH-F916
+F917 ; NFKC_SCF; 73DE # Lo CJK COMPATIBILITY IDEOGRAPH-F917
+F918 ; NFKC_SCF; 843D # Lo CJK COMPATIBILITY IDEOGRAPH-F918
+F919 ; NFKC_SCF; 916A # Lo CJK COMPATIBILITY IDEOGRAPH-F919
+F91A ; NFKC_SCF; 99F1 # Lo CJK COMPATIBILITY IDEOGRAPH-F91A
+F91B ; NFKC_SCF; 4E82 # Lo CJK COMPATIBILITY IDEOGRAPH-F91B
+F91C ; NFKC_SCF; 5375 # Lo CJK COMPATIBILITY IDEOGRAPH-F91C
+F91D ; NFKC_SCF; 6B04 # Lo CJK COMPATIBILITY IDEOGRAPH-F91D
+F91E ; NFKC_SCF; 721B # Lo CJK COMPATIBILITY IDEOGRAPH-F91E
+F91F ; NFKC_SCF; 862D # Lo CJK COMPATIBILITY IDEOGRAPH-F91F
+F920 ; NFKC_SCF; 9E1E # Lo CJK COMPATIBILITY IDEOGRAPH-F920
+F921 ; NFKC_SCF; 5D50 # Lo CJK COMPATIBILITY IDEOGRAPH-F921
+F922 ; NFKC_SCF; 6FEB # Lo CJK COMPATIBILITY IDEOGRAPH-F922
+F923 ; NFKC_SCF; 85CD # Lo CJK COMPATIBILITY IDEOGRAPH-F923
+F924 ; NFKC_SCF; 8964 # Lo CJK COMPATIBILITY IDEOGRAPH-F924
+F925 ; NFKC_SCF; 62C9 # Lo CJK COMPATIBILITY IDEOGRAPH-F925
+F926 ; NFKC_SCF; 81D8 # Lo CJK COMPATIBILITY IDEOGRAPH-F926
+F927 ; NFKC_SCF; 881F # Lo CJK COMPATIBILITY IDEOGRAPH-F927
+F928 ; NFKC_SCF; 5ECA # Lo CJK COMPATIBILITY IDEOGRAPH-F928
+F929 ; NFKC_SCF; 6717 # Lo CJK COMPATIBILITY IDEOGRAPH-F929
+F92A ; NFKC_SCF; 6D6A # Lo CJK COMPATIBILITY IDEOGRAPH-F92A
+F92B ; NFKC_SCF; 72FC # Lo CJK COMPATIBILITY IDEOGRAPH-F92B
+F92C ; NFKC_SCF; 90CE # Lo CJK COMPATIBILITY IDEOGRAPH-F92C
+F92D ; NFKC_SCF; 4F86 # Lo CJK COMPATIBILITY IDEOGRAPH-F92D
+F92E ; NFKC_SCF; 51B7 # Lo CJK COMPATIBILITY IDEOGRAPH-F92E
+F92F ; NFKC_SCF; 52DE # Lo CJK COMPATIBILITY IDEOGRAPH-F92F
+F930 ; NFKC_SCF; 64C4 # Lo CJK COMPATIBILITY IDEOGRAPH-F930
+F931 ; NFKC_SCF; 6AD3 # Lo CJK COMPATIBILITY IDEOGRAPH-F931
+F932 ; NFKC_SCF; 7210 # Lo CJK COMPATIBILITY IDEOGRAPH-F932
+F933 ; NFKC_SCF; 76E7 # Lo CJK COMPATIBILITY IDEOGRAPH-F933
+F934 ; NFKC_SCF; 8001 # Lo CJK COMPATIBILITY IDEOGRAPH-F934
+F935 ; NFKC_SCF; 8606 # Lo CJK COMPATIBILITY IDEOGRAPH-F935
+F936 ; NFKC_SCF; 865C # Lo CJK COMPATIBILITY IDEOGRAPH-F936
+F937 ; NFKC_SCF; 8DEF # Lo CJK COMPATIBILITY IDEOGRAPH-F937
+F938 ; NFKC_SCF; 9732 # Lo CJK COMPATIBILITY IDEOGRAPH-F938
+F939 ; NFKC_SCF; 9B6F # Lo CJK COMPATIBILITY IDEOGRAPH-F939
+F93A ; NFKC_SCF; 9DFA # Lo CJK COMPATIBILITY IDEOGRAPH-F93A
+F93B ; NFKC_SCF; 788C # Lo CJK COMPATIBILITY IDEOGRAPH-F93B
+F93C ; NFKC_SCF; 797F # Lo CJK COMPATIBILITY IDEOGRAPH-F93C
+F93D ; NFKC_SCF; 7DA0 # Lo CJK COMPATIBILITY IDEOGRAPH-F93D
+F93E ; NFKC_SCF; 83C9 # Lo CJK COMPATIBILITY IDEOGRAPH-F93E
+F93F ; NFKC_SCF; 9304 # Lo CJK COMPATIBILITY IDEOGRAPH-F93F
+F940 ; NFKC_SCF; 9E7F # Lo CJK COMPATIBILITY IDEOGRAPH-F940
+F941 ; NFKC_SCF; 8AD6 # Lo CJK COMPATIBILITY IDEOGRAPH-F941
+F942 ; NFKC_SCF; 58DF # Lo CJK COMPATIBILITY IDEOGRAPH-F942
+F943 ; NFKC_SCF; 5F04 # Lo CJK COMPATIBILITY IDEOGRAPH-F943
+F944 ; NFKC_SCF; 7C60 # Lo CJK COMPATIBILITY IDEOGRAPH-F944
+F945 ; NFKC_SCF; 807E # Lo CJK COMPATIBILITY IDEOGRAPH-F945
+F946 ; NFKC_SCF; 7262 # Lo CJK COMPATIBILITY IDEOGRAPH-F946
+F947 ; NFKC_SCF; 78CA # Lo CJK COMPATIBILITY IDEOGRAPH-F947
+F948 ; NFKC_SCF; 8CC2 # Lo CJK COMPATIBILITY IDEOGRAPH-F948
+F949 ; NFKC_SCF; 96F7 # Lo CJK COMPATIBILITY IDEOGRAPH-F949
+F94A ; NFKC_SCF; 58D8 # Lo CJK COMPATIBILITY IDEOGRAPH-F94A
+F94B ; NFKC_SCF; 5C62 # Lo CJK COMPATIBILITY IDEOGRAPH-F94B
+F94C ; NFKC_SCF; 6A13 # Lo CJK COMPATIBILITY IDEOGRAPH-F94C
+F94D ; NFKC_SCF; 6DDA # Lo CJK COMPATIBILITY IDEOGRAPH-F94D
+F94E ; NFKC_SCF; 6F0F # Lo CJK COMPATIBILITY IDEOGRAPH-F94E
+F94F ; NFKC_SCF; 7D2F # Lo CJK COMPATIBILITY IDEOGRAPH-F94F
+F950 ; NFKC_SCF; 7E37 # Lo CJK COMPATIBILITY IDEOGRAPH-F950
+F951 ; NFKC_SCF; 964B # Lo CJK COMPATIBILITY IDEOGRAPH-F951
+F952 ; NFKC_SCF; 52D2 # Lo CJK COMPATIBILITY IDEOGRAPH-F952
+F953 ; NFKC_SCF; 808B # Lo CJK COMPATIBILITY IDEOGRAPH-F953
+F954 ; NFKC_SCF; 51DC # Lo CJK COMPATIBILITY IDEOGRAPH-F954
+F955 ; NFKC_SCF; 51CC # Lo CJK COMPATIBILITY IDEOGRAPH-F955
+F956 ; NFKC_SCF; 7A1C # Lo CJK COMPATIBILITY IDEOGRAPH-F956
+F957 ; NFKC_SCF; 7DBE # Lo CJK COMPATIBILITY IDEOGRAPH-F957
+F958 ; NFKC_SCF; 83F1 # Lo CJK COMPATIBILITY IDEOGRAPH-F958
+F959 ; NFKC_SCF; 9675 # Lo CJK COMPATIBILITY IDEOGRAPH-F959
+F95A ; NFKC_SCF; 8B80 # Lo CJK COMPATIBILITY IDEOGRAPH-F95A
+F95B ; NFKC_SCF; 62CF # Lo CJK COMPATIBILITY IDEOGRAPH-F95B
+F95C ; NFKC_SCF; 6A02 # Lo CJK COMPATIBILITY IDEOGRAPH-F95C
+F95D ; NFKC_SCF; 8AFE # Lo CJK COMPATIBILITY IDEOGRAPH-F95D
+F95E ; NFKC_SCF; 4E39 # Lo CJK COMPATIBILITY IDEOGRAPH-F95E
+F95F ; NFKC_SCF; 5BE7 # Lo CJK COMPATIBILITY IDEOGRAPH-F95F
+F960 ; NFKC_SCF; 6012 # Lo CJK COMPATIBILITY IDEOGRAPH-F960
+F961 ; NFKC_SCF; 7387 # Lo CJK COMPATIBILITY IDEOGRAPH-F961
+F962 ; NFKC_SCF; 7570 # Lo CJK COMPATIBILITY IDEOGRAPH-F962
+F963 ; NFKC_SCF; 5317 # Lo CJK COMPATIBILITY IDEOGRAPH-F963
+F964 ; NFKC_SCF; 78FB # Lo CJK COMPATIBILITY IDEOGRAPH-F964
+F965 ; NFKC_SCF; 4FBF # Lo CJK COMPATIBILITY IDEOGRAPH-F965
+F966 ; NFKC_SCF; 5FA9 # Lo CJK COMPATIBILITY IDEOGRAPH-F966
+F967 ; NFKC_SCF; 4E0D # Lo CJK COMPATIBILITY IDEOGRAPH-F967
+F968 ; NFKC_SCF; 6CCC # Lo CJK COMPATIBILITY IDEOGRAPH-F968
+F969 ; NFKC_SCF; 6578 # Lo CJK COMPATIBILITY IDEOGRAPH-F969
+F96A ; NFKC_SCF; 7D22 # Lo CJK COMPATIBILITY IDEOGRAPH-F96A
+F96B ; NFKC_SCF; 53C3 # Lo CJK COMPATIBILITY IDEOGRAPH-F96B
+F96C ; NFKC_SCF; 585E # Lo CJK COMPATIBILITY IDEOGRAPH-F96C
+F96D ; NFKC_SCF; 7701 # Lo CJK COMPATIBILITY IDEOGRAPH-F96D
+F96E ; NFKC_SCF; 8449 # Lo CJK COMPATIBILITY IDEOGRAPH-F96E
+F96F ; NFKC_SCF; 8AAA # Lo CJK COMPATIBILITY IDEOGRAPH-F96F
+F970 ; NFKC_SCF; 6BBA # Lo CJK COMPATIBILITY IDEOGRAPH-F970
+F971 ; NFKC_SCF; 8FB0 # Lo CJK COMPATIBILITY IDEOGRAPH-F971
+F972 ; NFKC_SCF; 6C88 # Lo CJK COMPATIBILITY IDEOGRAPH-F972
+F973 ; NFKC_SCF; 62FE # Lo CJK COMPATIBILITY IDEOGRAPH-F973
+F974 ; NFKC_SCF; 82E5 # Lo CJK COMPATIBILITY IDEOGRAPH-F974
+F975 ; NFKC_SCF; 63A0 # Lo CJK COMPATIBILITY IDEOGRAPH-F975
+F976 ; NFKC_SCF; 7565 # Lo CJK COMPATIBILITY IDEOGRAPH-F976
+F977 ; NFKC_SCF; 4EAE # Lo CJK COMPATIBILITY IDEOGRAPH-F977
+F978 ; NFKC_SCF; 5169 # Lo CJK COMPATIBILITY IDEOGRAPH-F978
+F979 ; NFKC_SCF; 51C9 # Lo CJK COMPATIBILITY IDEOGRAPH-F979
+F97A ; NFKC_SCF; 6881 # Lo CJK COMPATIBILITY IDEOGRAPH-F97A
+F97B ; NFKC_SCF; 7CE7 # Lo CJK COMPATIBILITY IDEOGRAPH-F97B
+F97C ; NFKC_SCF; 826F # Lo CJK COMPATIBILITY IDEOGRAPH-F97C
+F97D ; NFKC_SCF; 8AD2 # Lo CJK COMPATIBILITY IDEOGRAPH-F97D
+F97E ; NFKC_SCF; 91CF # Lo CJK COMPATIBILITY IDEOGRAPH-F97E
+F97F ; NFKC_SCF; 52F5 # Lo CJK COMPATIBILITY IDEOGRAPH-F97F
+F980 ; NFKC_SCF; 5442 # Lo CJK COMPATIBILITY IDEOGRAPH-F980
+F981 ; NFKC_SCF; 5973 # Lo CJK COMPATIBILITY IDEOGRAPH-F981
+F982 ; NFKC_SCF; 5EEC # Lo CJK COMPATIBILITY IDEOGRAPH-F982
+F983 ; NFKC_SCF; 65C5 # Lo CJK COMPATIBILITY IDEOGRAPH-F983
+F984 ; NFKC_SCF; 6FFE # Lo CJK COMPATIBILITY IDEOGRAPH-F984
+F985 ; NFKC_SCF; 792A # Lo CJK COMPATIBILITY IDEOGRAPH-F985
+F986 ; NFKC_SCF; 95AD # Lo CJK COMPATIBILITY IDEOGRAPH-F986
+F987 ; NFKC_SCF; 9A6A # Lo CJK COMPATIBILITY IDEOGRAPH-F987
+F988 ; NFKC_SCF; 9E97 # Lo CJK COMPATIBILITY IDEOGRAPH-F988
+F989 ; NFKC_SCF; 9ECE # Lo CJK COMPATIBILITY IDEOGRAPH-F989
+F98A ; NFKC_SCF; 529B # Lo CJK COMPATIBILITY IDEOGRAPH-F98A
+F98B ; NFKC_SCF; 66C6 # Lo CJK COMPATIBILITY IDEOGRAPH-F98B
+F98C ; NFKC_SCF; 6B77 # Lo CJK COMPATIBILITY IDEOGRAPH-F98C
+F98D ; NFKC_SCF; 8F62 # Lo CJK COMPATIBILITY IDEOGRAPH-F98D
+F98E ; NFKC_SCF; 5E74 # Lo CJK COMPATIBILITY IDEOGRAPH-F98E
+F98F ; NFKC_SCF; 6190 # Lo CJK COMPATIBILITY IDEOGRAPH-F98F
+F990 ; NFKC_SCF; 6200 # Lo CJK COMPATIBILITY IDEOGRAPH-F990
+F991 ; NFKC_SCF; 649A # Lo CJK COMPATIBILITY IDEOGRAPH-F991
+F992 ; NFKC_SCF; 6F23 # Lo CJK COMPATIBILITY IDEOGRAPH-F992
+F993 ; NFKC_SCF; 7149 # Lo CJK COMPATIBILITY IDEOGRAPH-F993
+F994 ; NFKC_SCF; 7489 # Lo CJK COMPATIBILITY IDEOGRAPH-F994
+F995 ; NFKC_SCF; 79CA # Lo CJK COMPATIBILITY IDEOGRAPH-F995
+F996 ; NFKC_SCF; 7DF4 # Lo CJK COMPATIBILITY IDEOGRAPH-F996
+F997 ; NFKC_SCF; 806F # Lo CJK COMPATIBILITY IDEOGRAPH-F997
+F998 ; NFKC_SCF; 8F26 # Lo CJK COMPATIBILITY IDEOGRAPH-F998
+F999 ; NFKC_SCF; 84EE # Lo CJK COMPATIBILITY IDEOGRAPH-F999
+F99A ; NFKC_SCF; 9023 # Lo CJK COMPATIBILITY IDEOGRAPH-F99A
+F99B ; NFKC_SCF; 934A # Lo CJK COMPATIBILITY IDEOGRAPH-F99B
+F99C ; NFKC_SCF; 5217 # Lo CJK COMPATIBILITY IDEOGRAPH-F99C
+F99D ; NFKC_SCF; 52A3 # Lo CJK COMPATIBILITY IDEOGRAPH-F99D
+F99E ; NFKC_SCF; 54BD # Lo CJK COMPATIBILITY IDEOGRAPH-F99E
+F99F ; NFKC_SCF; 70C8 # Lo CJK COMPATIBILITY IDEOGRAPH-F99F
+F9A0 ; NFKC_SCF; 88C2 # Lo CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9A1 ; NFKC_SCF; 8AAA # Lo CJK COMPATIBILITY IDEOGRAPH-F9A1
+F9A2 ; NFKC_SCF; 5EC9 # Lo CJK COMPATIBILITY IDEOGRAPH-F9A2
+F9A3 ; NFKC_SCF; 5FF5 # Lo CJK COMPATIBILITY IDEOGRAPH-F9A3
+F9A4 ; NFKC_SCF; 637B # Lo CJK COMPATIBILITY IDEOGRAPH-F9A4
+F9A5 ; NFKC_SCF; 6BAE # Lo CJK COMPATIBILITY IDEOGRAPH-F9A5
+F9A6 ; NFKC_SCF; 7C3E # Lo CJK COMPATIBILITY IDEOGRAPH-F9A6
+F9A7 ; NFKC_SCF; 7375 # Lo CJK COMPATIBILITY IDEOGRAPH-F9A7
+F9A8 ; NFKC_SCF; 4EE4 # Lo CJK COMPATIBILITY IDEOGRAPH-F9A8
+F9A9 ; NFKC_SCF; 56F9 # Lo CJK COMPATIBILITY IDEOGRAPH-F9A9
+F9AA ; NFKC_SCF; 5BE7 # Lo CJK COMPATIBILITY IDEOGRAPH-F9AA
+F9AB ; NFKC_SCF; 5DBA # Lo CJK COMPATIBILITY IDEOGRAPH-F9AB
+F9AC ; NFKC_SCF; 601C # Lo CJK COMPATIBILITY IDEOGRAPH-F9AC
+F9AD ; NFKC_SCF; 73B2 # Lo CJK COMPATIBILITY IDEOGRAPH-F9AD
+F9AE ; NFKC_SCF; 7469 # Lo CJK COMPATIBILITY IDEOGRAPH-F9AE
+F9AF ; NFKC_SCF; 7F9A # Lo CJK COMPATIBILITY IDEOGRAPH-F9AF
+F9B0 ; NFKC_SCF; 8046 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B0
+F9B1 ; NFKC_SCF; 9234 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B1
+F9B2 ; NFKC_SCF; 96F6 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B2
+F9B3 ; NFKC_SCF; 9748 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B3
+F9B4 ; NFKC_SCF; 9818 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B4
+F9B5 ; NFKC_SCF; 4F8B # Lo CJK COMPATIBILITY IDEOGRAPH-F9B5
+F9B6 ; NFKC_SCF; 79AE # Lo CJK COMPATIBILITY IDEOGRAPH-F9B6
+F9B7 ; NFKC_SCF; 91B4 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9B8 ; NFKC_SCF; 96B8 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9B9 ; NFKC_SCF; 60E1 # Lo CJK COMPATIBILITY IDEOGRAPH-F9B9
+F9BA ; NFKC_SCF; 4E86 # Lo CJK COMPATIBILITY IDEOGRAPH-F9BA
+F9BB ; NFKC_SCF; 50DA # Lo CJK COMPATIBILITY IDEOGRAPH-F9BB
+F9BC ; NFKC_SCF; 5BEE # Lo CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD ; NFKC_SCF; 5C3F # Lo CJK COMPATIBILITY IDEOGRAPH-F9BD
+F9BE ; NFKC_SCF; 6599 # Lo CJK COMPATIBILITY IDEOGRAPH-F9BE
+F9BF ; NFKC_SCF; 6A02 # Lo CJK COMPATIBILITY IDEOGRAPH-F9BF
+F9C0 ; NFKC_SCF; 71CE # Lo CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9C1 ; NFKC_SCF; 7642 # Lo CJK COMPATIBILITY IDEOGRAPH-F9C1
+F9C2 ; NFKC_SCF; 84FC # Lo CJK COMPATIBILITY IDEOGRAPH-F9C2
+F9C3 ; NFKC_SCF; 907C # Lo CJK COMPATIBILITY IDEOGRAPH-F9C3
+F9C4 ; NFKC_SCF; 9F8D # Lo CJK COMPATIBILITY IDEOGRAPH-F9C4
+F9C5 ; NFKC_SCF; 6688 # Lo CJK COMPATIBILITY IDEOGRAPH-F9C5
+F9C6 ; NFKC_SCF; 962E # Lo CJK COMPATIBILITY IDEOGRAPH-F9C6
+F9C7 ; NFKC_SCF; 5289 # Lo CJK COMPATIBILITY IDEOGRAPH-F9C7
+F9C8 ; NFKC_SCF; 677B # Lo CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9C9 ; NFKC_SCF; 67F3 # Lo CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9CA ; NFKC_SCF; 6D41 # Lo CJK COMPATIBILITY IDEOGRAPH-F9CA
+F9CB ; NFKC_SCF; 6E9C # Lo CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9CC ; NFKC_SCF; 7409 # Lo CJK COMPATIBILITY IDEOGRAPH-F9CC
+F9CD ; NFKC_SCF; 7559 # Lo CJK COMPATIBILITY IDEOGRAPH-F9CD
+F9CE ; NFKC_SCF; 786B # Lo CJK COMPATIBILITY IDEOGRAPH-F9CE
+F9CF ; NFKC_SCF; 7D10 # Lo CJK COMPATIBILITY IDEOGRAPH-F9CF
+F9D0 ; NFKC_SCF; 985E # Lo CJK COMPATIBILITY IDEOGRAPH-F9D0
+F9D1 ; NFKC_SCF; 516D # Lo CJK COMPATIBILITY IDEOGRAPH-F9D1
+F9D2 ; NFKC_SCF; 622E # Lo CJK COMPATIBILITY IDEOGRAPH-F9D2
+F9D3 ; NFKC_SCF; 9678 # Lo CJK COMPATIBILITY IDEOGRAPH-F9D3
+F9D4 ; NFKC_SCF; 502B # Lo CJK COMPATIBILITY IDEOGRAPH-F9D4
+F9D5 ; NFKC_SCF; 5D19 # Lo CJK COMPATIBILITY IDEOGRAPH-F9D5
+F9D6 ; NFKC_SCF; 6DEA # Lo CJK COMPATIBILITY IDEOGRAPH-F9D6
+F9D7 ; NFKC_SCF; 8F2A # Lo CJK COMPATIBILITY IDEOGRAPH-F9D7
+F9D8 ; NFKC_SCF; 5F8B # Lo CJK COMPATIBILITY IDEOGRAPH-F9D8
+F9D9 ; NFKC_SCF; 6144 # Lo CJK COMPATIBILITY IDEOGRAPH-F9D9
+F9DA ; NFKC_SCF; 6817 # Lo CJK COMPATIBILITY IDEOGRAPH-F9DA
+F9DB ; NFKC_SCF; 7387 # Lo CJK COMPATIBILITY IDEOGRAPH-F9DB
+F9DC ; NFKC_SCF; 9686 # Lo CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9DD ; NFKC_SCF; 5229 # Lo CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9DE ; NFKC_SCF; 540F # Lo CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9DF ; NFKC_SCF; 5C65 # Lo CJK COMPATIBILITY IDEOGRAPH-F9DF
+F9E0 ; NFKC_SCF; 6613 # Lo CJK COMPATIBILITY IDEOGRAPH-F9E0
+F9E1 ; NFKC_SCF; 674E # Lo CJK COMPATIBILITY IDEOGRAPH-F9E1
+F9E2 ; NFKC_SCF; 68A8 # Lo CJK COMPATIBILITY IDEOGRAPH-F9E2
+F9E3 ; NFKC_SCF; 6CE5 # Lo CJK COMPATIBILITY IDEOGRAPH-F9E3
+F9E4 ; NFKC_SCF; 7406 # Lo CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9E5 ; NFKC_SCF; 75E2 # Lo CJK COMPATIBILITY IDEOGRAPH-F9E5
+F9E6 ; NFKC_SCF; 7F79 # Lo CJK COMPATIBILITY IDEOGRAPH-F9E6
+F9E7 ; NFKC_SCF; 88CF # Lo CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8 ; NFKC_SCF; 88E1 # Lo CJK COMPATIBILITY IDEOGRAPH-F9E8
+F9E9 ; NFKC_SCF; 91CC # Lo CJK COMPATIBILITY IDEOGRAPH-F9E9
+F9EA ; NFKC_SCF; 96E2 # Lo CJK COMPATIBILITY IDEOGRAPH-F9EA
+F9EB ; NFKC_SCF; 533F # Lo CJK COMPATIBILITY IDEOGRAPH-F9EB
+F9EC ; NFKC_SCF; 6EBA # Lo CJK COMPATIBILITY IDEOGRAPH-F9EC
+F9ED ; NFKC_SCF; 541D # Lo CJK COMPATIBILITY IDEOGRAPH-F9ED
+F9EE ; NFKC_SCF; 71D0 # Lo CJK COMPATIBILITY IDEOGRAPH-F9EE
+F9EF ; NFKC_SCF; 7498 # Lo CJK COMPATIBILITY IDEOGRAPH-F9EF
+F9F0 ; NFKC_SCF; 85FA # Lo CJK COMPATIBILITY IDEOGRAPH-F9F0
+F9F1 ; NFKC_SCF; 96A3 # Lo CJK COMPATIBILITY IDEOGRAPH-F9F1
+F9F2 ; NFKC_SCF; 9C57 # Lo CJK COMPATIBILITY IDEOGRAPH-F9F2
+F9F3 ; NFKC_SCF; 9E9F # Lo CJK COMPATIBILITY IDEOGRAPH-F9F3
+F9F4 ; NFKC_SCF; 6797 # Lo CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9F5 ; NFKC_SCF; 6DCB # Lo CJK COMPATIBILITY IDEOGRAPH-F9F5
+F9F6 ; NFKC_SCF; 81E8 # Lo CJK COMPATIBILITY IDEOGRAPH-F9F6
+F9F7 ; NFKC_SCF; 7ACB # Lo CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8 ; NFKC_SCF; 7B20 # Lo CJK COMPATIBILITY IDEOGRAPH-F9F8
+F9F9 ; NFKC_SCF; 7C92 # Lo CJK COMPATIBILITY IDEOGRAPH-F9F9
+F9FA ; NFKC_SCF; 72C0 # Lo CJK COMPATIBILITY IDEOGRAPH-F9FA
+F9FB ; NFKC_SCF; 7099 # Lo CJK COMPATIBILITY IDEOGRAPH-F9FB
+F9FC ; NFKC_SCF; 8B58 # Lo CJK COMPATIBILITY IDEOGRAPH-F9FC
+F9FD ; NFKC_SCF; 4EC0 # Lo CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9FE ; NFKC_SCF; 8336 # Lo CJK COMPATIBILITY IDEOGRAPH-F9FE
+F9FF ; NFKC_SCF; 523A # Lo CJK COMPATIBILITY IDEOGRAPH-F9FF
+FA00 ; NFKC_SCF; 5207 # Lo CJK COMPATIBILITY IDEOGRAPH-FA00
+FA01 ; NFKC_SCF; 5EA6 # Lo CJK COMPATIBILITY IDEOGRAPH-FA01
+FA02 ; NFKC_SCF; 62D3 # Lo CJK COMPATIBILITY IDEOGRAPH-FA02
+FA03 ; NFKC_SCF; 7CD6 # Lo CJK COMPATIBILITY IDEOGRAPH-FA03
+FA04 ; NFKC_SCF; 5B85 # Lo CJK COMPATIBILITY IDEOGRAPH-FA04
+FA05 ; NFKC_SCF; 6D1E # Lo CJK COMPATIBILITY IDEOGRAPH-FA05
+FA06 ; NFKC_SCF; 66B4 # Lo CJK COMPATIBILITY IDEOGRAPH-FA06
+FA07 ; NFKC_SCF; 8F3B # Lo CJK COMPATIBILITY IDEOGRAPH-FA07
+FA08 ; NFKC_SCF; 884C # Lo CJK COMPATIBILITY IDEOGRAPH-FA08
+FA09 ; NFKC_SCF; 964D # Lo CJK COMPATIBILITY IDEOGRAPH-FA09
+FA0A ; NFKC_SCF; 898B # Lo CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA0B ; NFKC_SCF; 5ED3 # Lo CJK COMPATIBILITY IDEOGRAPH-FA0B
+FA0C ; NFKC_SCF; 5140 # Lo CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA0D ; NFKC_SCF; 55C0 # Lo CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA10 ; NFKC_SCF; 585A # Lo CJK COMPATIBILITY IDEOGRAPH-FA10
+FA12 ; NFKC_SCF; 6674 # Lo CJK COMPATIBILITY IDEOGRAPH-FA12
+FA15 ; NFKC_SCF; 51DE # Lo CJK COMPATIBILITY IDEOGRAPH-FA15
+FA16 ; NFKC_SCF; 732A # Lo CJK COMPATIBILITY IDEOGRAPH-FA16
+FA17 ; NFKC_SCF; 76CA # Lo CJK COMPATIBILITY IDEOGRAPH-FA17
+FA18 ; NFKC_SCF; 793C # Lo CJK COMPATIBILITY IDEOGRAPH-FA18
+FA19 ; NFKC_SCF; 795E # Lo CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A ; NFKC_SCF; 7965 # Lo CJK COMPATIBILITY IDEOGRAPH-FA1A
+FA1B ; NFKC_SCF; 798F # Lo CJK COMPATIBILITY IDEOGRAPH-FA1B
+FA1C ; NFKC_SCF; 9756 # Lo CJK COMPATIBILITY IDEOGRAPH-FA1C
+FA1D ; NFKC_SCF; 7CBE # Lo CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA1E ; NFKC_SCF; 7FBD # Lo CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA20 ; NFKC_SCF; 8612 # Lo CJK COMPATIBILITY IDEOGRAPH-FA20
+FA22 ; NFKC_SCF; 8AF8 # Lo CJK COMPATIBILITY IDEOGRAPH-FA22
+FA25 ; NFKC_SCF; 9038 # Lo CJK COMPATIBILITY IDEOGRAPH-FA25
+FA26 ; NFKC_SCF; 90FD # Lo CJK COMPATIBILITY IDEOGRAPH-FA26
+FA2A ; NFKC_SCF; 98EF # Lo CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B ; NFKC_SCF; 98FC # Lo CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C ; NFKC_SCF; 9928 # Lo CJK COMPATIBILITY IDEOGRAPH-FA2C
+FA2D ; NFKC_SCF; 9DB4 # Lo CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA2E ; NFKC_SCF; 90DE # Lo CJK COMPATIBILITY IDEOGRAPH-FA2E
+FA2F ; NFKC_SCF; 96B7 # Lo CJK COMPATIBILITY IDEOGRAPH-FA2F
+FA30 ; NFKC_SCF; 4FAE # Lo CJK COMPATIBILITY IDEOGRAPH-FA30
+FA31 ; NFKC_SCF; 50E7 # Lo CJK COMPATIBILITY IDEOGRAPH-FA31
+FA32 ; NFKC_SCF; 514D # Lo CJK COMPATIBILITY IDEOGRAPH-FA32
+FA33 ; NFKC_SCF; 52C9 # Lo CJK COMPATIBILITY IDEOGRAPH-FA33
+FA34 ; NFKC_SCF; 52E4 # Lo CJK COMPATIBILITY IDEOGRAPH-FA34
+FA35 ; NFKC_SCF; 5351 # Lo CJK COMPATIBILITY IDEOGRAPH-FA35
+FA36 ; NFKC_SCF; 559D # Lo CJK COMPATIBILITY IDEOGRAPH-FA36
+FA37 ; NFKC_SCF; 5606 # Lo CJK COMPATIBILITY IDEOGRAPH-FA37
+FA38 ; NFKC_SCF; 5668 # Lo CJK COMPATIBILITY IDEOGRAPH-FA38
+FA39 ; NFKC_SCF; 5840 # Lo CJK COMPATIBILITY IDEOGRAPH-FA39
+FA3A ; NFKC_SCF; 58A8 # Lo CJK COMPATIBILITY IDEOGRAPH-FA3A
+FA3B ; NFKC_SCF; 5C64 # Lo CJK COMPATIBILITY IDEOGRAPH-FA3B
+FA3C ; NFKC_SCF; 5C6E # Lo CJK COMPATIBILITY IDEOGRAPH-FA3C
+FA3D ; NFKC_SCF; 6094 # Lo CJK COMPATIBILITY IDEOGRAPH-FA3D
+FA3E ; NFKC_SCF; 6168 # Lo CJK COMPATIBILITY IDEOGRAPH-FA3E
+FA3F ; NFKC_SCF; 618E # Lo CJK COMPATIBILITY IDEOGRAPH-FA3F
+FA40 ; NFKC_SCF; 61F2 # Lo CJK COMPATIBILITY IDEOGRAPH-FA40
+FA41 ; NFKC_SCF; 654F # Lo CJK COMPATIBILITY IDEOGRAPH-FA41
+FA42 ; NFKC_SCF; 65E2 # Lo CJK COMPATIBILITY IDEOGRAPH-FA42
+FA43 ; NFKC_SCF; 6691 # Lo CJK COMPATIBILITY IDEOGRAPH-FA43
+FA44 ; NFKC_SCF; 6885 # Lo CJK COMPATIBILITY IDEOGRAPH-FA44
+FA45 ; NFKC_SCF; 6D77 # Lo CJK COMPATIBILITY IDEOGRAPH-FA45
+FA46 ; NFKC_SCF; 6E1A # Lo CJK COMPATIBILITY IDEOGRAPH-FA46
+FA47 ; NFKC_SCF; 6F22 # Lo CJK COMPATIBILITY IDEOGRAPH-FA47
+FA48 ; NFKC_SCF; 716E # Lo CJK COMPATIBILITY IDEOGRAPH-FA48
+FA49 ; NFKC_SCF; 722B # Lo CJK COMPATIBILITY IDEOGRAPH-FA49
+FA4A ; NFKC_SCF; 7422 # Lo CJK COMPATIBILITY IDEOGRAPH-FA4A
+FA4B ; NFKC_SCF; 7891 # Lo CJK COMPATIBILITY IDEOGRAPH-FA4B
+FA4C ; NFKC_SCF; 793E # Lo CJK COMPATIBILITY IDEOGRAPH-FA4C
+FA4D ; NFKC_SCF; 7949 # Lo CJK COMPATIBILITY IDEOGRAPH-FA4D
+FA4E ; NFKC_SCF; 7948 # Lo CJK COMPATIBILITY IDEOGRAPH-FA4E
+FA4F ; NFKC_SCF; 7950 # Lo CJK COMPATIBILITY IDEOGRAPH-FA4F
+FA50 ; NFKC_SCF; 7956 # Lo CJK COMPATIBILITY IDEOGRAPH-FA50
+FA51 ; NFKC_SCF; 795D # Lo CJK COMPATIBILITY IDEOGRAPH-FA51
+FA52 ; NFKC_SCF; 798D # Lo CJK COMPATIBILITY IDEOGRAPH-FA52
+FA53 ; NFKC_SCF; 798E # Lo CJK COMPATIBILITY IDEOGRAPH-FA53
+FA54 ; NFKC_SCF; 7A40 # Lo CJK COMPATIBILITY IDEOGRAPH-FA54
+FA55 ; NFKC_SCF; 7A81 # Lo CJK COMPATIBILITY IDEOGRAPH-FA55
+FA56 ; NFKC_SCF; 7BC0 # Lo CJK COMPATIBILITY IDEOGRAPH-FA56
+FA57 ; NFKC_SCF; 7DF4 # Lo CJK COMPATIBILITY IDEOGRAPH-FA57
+FA58 ; NFKC_SCF; 7E09 # Lo CJK COMPATIBILITY IDEOGRAPH-FA58
+FA59 ; NFKC_SCF; 7E41 # Lo CJK COMPATIBILITY IDEOGRAPH-FA59
+FA5A ; NFKC_SCF; 7F72 # Lo CJK COMPATIBILITY IDEOGRAPH-FA5A
+FA5B ; NFKC_SCF; 8005 # Lo CJK COMPATIBILITY IDEOGRAPH-FA5B
+FA5C ; NFKC_SCF; 81ED # Lo CJK COMPATIBILITY IDEOGRAPH-FA5C
+FA5D..FA5E ; NFKC_SCF; 8279 # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA5D..CJK COMPATIBILITY IDEOGRAPH-FA5E
+FA5F ; NFKC_SCF; 8457 # Lo CJK COMPATIBILITY IDEOGRAPH-FA5F
+FA60 ; NFKC_SCF; 8910 # Lo CJK COMPATIBILITY IDEOGRAPH-FA60
+FA61 ; NFKC_SCF; 8996 # Lo CJK COMPATIBILITY IDEOGRAPH-FA61
+FA62 ; NFKC_SCF; 8B01 # Lo CJK COMPATIBILITY IDEOGRAPH-FA62
+FA63 ; NFKC_SCF; 8B39 # Lo CJK COMPATIBILITY IDEOGRAPH-FA63
+FA64 ; NFKC_SCF; 8CD3 # Lo CJK COMPATIBILITY IDEOGRAPH-FA64
+FA65 ; NFKC_SCF; 8D08 # Lo CJK COMPATIBILITY IDEOGRAPH-FA65
+FA66 ; NFKC_SCF; 8FB6 # Lo CJK COMPATIBILITY IDEOGRAPH-FA66
+FA67 ; NFKC_SCF; 9038 # Lo CJK COMPATIBILITY IDEOGRAPH-FA67
+FA68 ; NFKC_SCF; 96E3 # Lo CJK COMPATIBILITY IDEOGRAPH-FA68
+FA69 ; NFKC_SCF; 97FF # Lo CJK COMPATIBILITY IDEOGRAPH-FA69
+FA6A ; NFKC_SCF; 983B # Lo CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA6B ; NFKC_SCF; 6075 # Lo CJK COMPATIBILITY IDEOGRAPH-FA6B
+FA6C ; NFKC_SCF; 242EE # Lo CJK COMPATIBILITY IDEOGRAPH-FA6C
+FA6D ; NFKC_SCF; 8218 # Lo CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA70 ; NFKC_SCF; 4E26 # Lo CJK COMPATIBILITY IDEOGRAPH-FA70
+FA71 ; NFKC_SCF; 51B5 # Lo CJK COMPATIBILITY IDEOGRAPH-FA71
+FA72 ; NFKC_SCF; 5168 # Lo CJK COMPATIBILITY IDEOGRAPH-FA72
+FA73 ; NFKC_SCF; 4F80 # Lo CJK COMPATIBILITY IDEOGRAPH-FA73
+FA74 ; NFKC_SCF; 5145 # Lo CJK COMPATIBILITY IDEOGRAPH-FA74
+FA75 ; NFKC_SCF; 5180 # Lo CJK COMPATIBILITY IDEOGRAPH-FA75
+FA76 ; NFKC_SCF; 52C7 # Lo CJK COMPATIBILITY IDEOGRAPH-FA76
+FA77 ; NFKC_SCF; 52FA # Lo CJK COMPATIBILITY IDEOGRAPH-FA77
+FA78 ; NFKC_SCF; 559D # Lo CJK COMPATIBILITY IDEOGRAPH-FA78
+FA79 ; NFKC_SCF; 5555 # Lo CJK COMPATIBILITY IDEOGRAPH-FA79
+FA7A ; NFKC_SCF; 5599 # Lo CJK COMPATIBILITY IDEOGRAPH-FA7A
+FA7B ; NFKC_SCF; 55E2 # Lo CJK COMPATIBILITY IDEOGRAPH-FA7B
+FA7C ; NFKC_SCF; 585A # Lo CJK COMPATIBILITY IDEOGRAPH-FA7C
+FA7D ; NFKC_SCF; 58B3 # Lo CJK COMPATIBILITY IDEOGRAPH-FA7D
+FA7E ; NFKC_SCF; 5944 # Lo CJK COMPATIBILITY IDEOGRAPH-FA7E
+FA7F ; NFKC_SCF; 5954 # Lo CJK COMPATIBILITY IDEOGRAPH-FA7F
+FA80 ; NFKC_SCF; 5A62 # Lo CJK COMPATIBILITY IDEOGRAPH-FA80
+FA81 ; NFKC_SCF; 5B28 # Lo CJK COMPATIBILITY IDEOGRAPH-FA81
+FA82 ; NFKC_SCF; 5ED2 # Lo CJK COMPATIBILITY IDEOGRAPH-FA82
+FA83 ; NFKC_SCF; 5ED9 # Lo CJK COMPATIBILITY IDEOGRAPH-FA83
+FA84 ; NFKC_SCF; 5F69 # Lo CJK COMPATIBILITY IDEOGRAPH-FA84
+FA85 ; NFKC_SCF; 5FAD # Lo CJK COMPATIBILITY IDEOGRAPH-FA85
+FA86 ; NFKC_SCF; 60D8 # Lo CJK COMPATIBILITY IDEOGRAPH-FA86
+FA87 ; NFKC_SCF; 614E # Lo CJK COMPATIBILITY IDEOGRAPH-FA87
+FA88 ; NFKC_SCF; 6108 # Lo CJK COMPATIBILITY IDEOGRAPH-FA88
+FA89 ; NFKC_SCF; 618E # Lo CJK COMPATIBILITY IDEOGRAPH-FA89
+FA8A ; NFKC_SCF; 6160 # Lo CJK COMPATIBILITY IDEOGRAPH-FA8A
+FA8B ; NFKC_SCF; 61F2 # Lo CJK COMPATIBILITY IDEOGRAPH-FA8B
+FA8C ; NFKC_SCF; 6234 # Lo CJK COMPATIBILITY IDEOGRAPH-FA8C
+FA8D ; NFKC_SCF; 63C4 # Lo CJK COMPATIBILITY IDEOGRAPH-FA8D
+FA8E ; NFKC_SCF; 641C # Lo CJK COMPATIBILITY IDEOGRAPH-FA8E
+FA8F ; NFKC_SCF; 6452 # Lo CJK COMPATIBILITY IDEOGRAPH-FA8F
+FA90 ; NFKC_SCF; 6556 # Lo CJK COMPATIBILITY IDEOGRAPH-FA90
+FA91 ; NFKC_SCF; 6674 # Lo CJK COMPATIBILITY IDEOGRAPH-FA91
+FA92 ; NFKC_SCF; 6717 # Lo CJK COMPATIBILITY IDEOGRAPH-FA92
+FA93 ; NFKC_SCF; 671B # Lo CJK COMPATIBILITY IDEOGRAPH-FA93
+FA94 ; NFKC_SCF; 6756 # Lo CJK COMPATIBILITY IDEOGRAPH-FA94
+FA95 ; NFKC_SCF; 6B79 # Lo CJK COMPATIBILITY IDEOGRAPH-FA95
+FA96 ; NFKC_SCF; 6BBA # Lo CJK COMPATIBILITY IDEOGRAPH-FA96
+FA97 ; NFKC_SCF; 6D41 # Lo CJK COMPATIBILITY IDEOGRAPH-FA97
+FA98 ; NFKC_SCF; 6EDB # Lo CJK COMPATIBILITY IDEOGRAPH-FA98
+FA99 ; NFKC_SCF; 6ECB # Lo CJK COMPATIBILITY IDEOGRAPH-FA99
+FA9A ; NFKC_SCF; 6F22 # Lo CJK COMPATIBILITY IDEOGRAPH-FA9A
+FA9B ; NFKC_SCF; 701E # Lo CJK COMPATIBILITY IDEOGRAPH-FA9B
+FA9C ; NFKC_SCF; 716E # Lo CJK COMPATIBILITY IDEOGRAPH-FA9C
+FA9D ; NFKC_SCF; 77A7 # Lo CJK COMPATIBILITY IDEOGRAPH-FA9D
+FA9E ; NFKC_SCF; 7235 # Lo CJK COMPATIBILITY IDEOGRAPH-FA9E
+FA9F ; NFKC_SCF; 72AF # Lo CJK COMPATIBILITY IDEOGRAPH-FA9F
+FAA0 ; NFKC_SCF; 732A # Lo CJK COMPATIBILITY IDEOGRAPH-FAA0
+FAA1 ; NFKC_SCF; 7471 # Lo CJK COMPATIBILITY IDEOGRAPH-FAA1
+FAA2 ; NFKC_SCF; 7506 # Lo CJK COMPATIBILITY IDEOGRAPH-FAA2
+FAA3 ; NFKC_SCF; 753B # Lo CJK COMPATIBILITY IDEOGRAPH-FAA3
+FAA4 ; NFKC_SCF; 761D # Lo CJK COMPATIBILITY IDEOGRAPH-FAA4
+FAA5 ; NFKC_SCF; 761F # Lo CJK COMPATIBILITY IDEOGRAPH-FAA5
+FAA6 ; NFKC_SCF; 76CA # Lo CJK COMPATIBILITY IDEOGRAPH-FAA6
+FAA7 ; NFKC_SCF; 76DB # Lo CJK COMPATIBILITY IDEOGRAPH-FAA7
+FAA8 ; NFKC_SCF; 76F4 # Lo CJK COMPATIBILITY IDEOGRAPH-FAA8
+FAA9 ; NFKC_SCF; 774A # Lo CJK COMPATIBILITY IDEOGRAPH-FAA9
+FAAA ; NFKC_SCF; 7740 # Lo CJK COMPATIBILITY IDEOGRAPH-FAAA
+FAAB ; NFKC_SCF; 78CC # Lo CJK COMPATIBILITY IDEOGRAPH-FAAB
+FAAC ; NFKC_SCF; 7AB1 # Lo CJK COMPATIBILITY IDEOGRAPH-FAAC
+FAAD ; NFKC_SCF; 7BC0 # Lo CJK COMPATIBILITY IDEOGRAPH-FAAD
+FAAE ; NFKC_SCF; 7C7B # Lo CJK COMPATIBILITY IDEOGRAPH-FAAE
+FAAF ; NFKC_SCF; 7D5B # Lo CJK COMPATIBILITY IDEOGRAPH-FAAF
+FAB0 ; NFKC_SCF; 7DF4 # Lo CJK COMPATIBILITY IDEOGRAPH-FAB0
+FAB1 ; NFKC_SCF; 7F3E # Lo CJK COMPATIBILITY IDEOGRAPH-FAB1
+FAB2 ; NFKC_SCF; 8005 # Lo CJK COMPATIBILITY IDEOGRAPH-FAB2
+FAB3 ; NFKC_SCF; 8352 # Lo CJK COMPATIBILITY IDEOGRAPH-FAB3
+FAB4 ; NFKC_SCF; 83EF # Lo CJK COMPATIBILITY IDEOGRAPH-FAB4
+FAB5 ; NFKC_SCF; 8779 # Lo CJK COMPATIBILITY IDEOGRAPH-FAB5
+FAB6 ; NFKC_SCF; 8941 # Lo CJK COMPATIBILITY IDEOGRAPH-FAB6
+FAB7 ; NFKC_SCF; 8986 # Lo CJK COMPATIBILITY IDEOGRAPH-FAB7
+FAB8 ; NFKC_SCF; 8996 # Lo CJK COMPATIBILITY IDEOGRAPH-FAB8
+FAB9 ; NFKC_SCF; 8ABF # Lo CJK COMPATIBILITY IDEOGRAPH-FAB9
+FABA ; NFKC_SCF; 8AF8 # Lo CJK COMPATIBILITY IDEOGRAPH-FABA
+FABB ; NFKC_SCF; 8ACB # Lo CJK COMPATIBILITY IDEOGRAPH-FABB
+FABC ; NFKC_SCF; 8B01 # Lo CJK COMPATIBILITY IDEOGRAPH-FABC
+FABD ; NFKC_SCF; 8AFE # Lo CJK COMPATIBILITY IDEOGRAPH-FABD
+FABE ; NFKC_SCF; 8AED # Lo CJK COMPATIBILITY IDEOGRAPH-FABE
+FABF ; NFKC_SCF; 8B39 # Lo CJK COMPATIBILITY IDEOGRAPH-FABF
+FAC0 ; NFKC_SCF; 8B8A # Lo CJK COMPATIBILITY IDEOGRAPH-FAC0
+FAC1 ; NFKC_SCF; 8D08 # Lo CJK COMPATIBILITY IDEOGRAPH-FAC1
+FAC2 ; NFKC_SCF; 8F38 # Lo CJK COMPATIBILITY IDEOGRAPH-FAC2
+FAC3 ; NFKC_SCF; 9072 # Lo CJK COMPATIBILITY IDEOGRAPH-FAC3
+FAC4 ; NFKC_SCF; 9199 # Lo CJK COMPATIBILITY IDEOGRAPH-FAC4
+FAC5 ; NFKC_SCF; 9276 # Lo CJK COMPATIBILITY IDEOGRAPH-FAC5
+FAC6 ; NFKC_SCF; 967C # Lo CJK COMPATIBILITY IDEOGRAPH-FAC6
+FAC7 ; NFKC_SCF; 96E3 # Lo CJK COMPATIBILITY IDEOGRAPH-FAC7
+FAC8 ; NFKC_SCF; 9756 # Lo CJK COMPATIBILITY IDEOGRAPH-FAC8
+FAC9 ; NFKC_SCF; 97DB # Lo CJK COMPATIBILITY IDEOGRAPH-FAC9
+FACA ; NFKC_SCF; 97FF # Lo CJK COMPATIBILITY IDEOGRAPH-FACA
+FACB ; NFKC_SCF; 980B # Lo CJK COMPATIBILITY IDEOGRAPH-FACB
+FACC ; NFKC_SCF; 983B # Lo CJK COMPATIBILITY IDEOGRAPH-FACC
+FACD ; NFKC_SCF; 9B12 # Lo CJK COMPATIBILITY IDEOGRAPH-FACD
+FACE ; NFKC_SCF; 9F9C # Lo CJK COMPATIBILITY IDEOGRAPH-FACE
+FACF ; NFKC_SCF; 2284A # Lo CJK COMPATIBILITY IDEOGRAPH-FACF
+FAD0 ; NFKC_SCF; 22844 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD0
+FAD1 ; NFKC_SCF; 233D5 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD1
+FAD2 ; NFKC_SCF; 3B9D # Lo CJK COMPATIBILITY IDEOGRAPH-FAD2
+FAD3 ; NFKC_SCF; 4018 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD3
+FAD4 ; NFKC_SCF; 4039 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD4
+FAD5 ; NFKC_SCF; 25249 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD5
+FAD6 ; NFKC_SCF; 25CD0 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD6
+FAD7 ; NFKC_SCF; 27ED3 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD7
+FAD8 ; NFKC_SCF; 9F43 # Lo CJK COMPATIBILITY IDEOGRAPH-FAD8
+FAD9 ; NFKC_SCF; 9F8E # Lo CJK COMPATIBILITY IDEOGRAPH-FAD9
+FB00 ; NFKC_SCF; 0066 0066 # L& LATIN SMALL LIGATURE FF
+FB01 ; NFKC_SCF; 0066 0069 # L& LATIN SMALL LIGATURE FI
+FB02 ; NFKC_SCF; 0066 006C # L& LATIN SMALL LIGATURE FL
+FB03 ; NFKC_SCF; 0066 0066 0069 # L& LATIN SMALL LIGATURE FFI
+FB04 ; NFKC_SCF; 0066 0066 006C # L& LATIN SMALL LIGATURE FFL
+FB05..FB06 ; NFKC_SCF; 0073 0074 # L& [2] LATIN SMALL LIGATURE LONG S T..LATIN SMALL LIGATURE ST
+FB13 ; NFKC_SCF; 0574 0576 # L& ARMENIAN SMALL LIGATURE MEN NOW
+FB14 ; NFKC_SCF; 0574 0565 # L& ARMENIAN SMALL LIGATURE MEN ECH
+FB15 ; NFKC_SCF; 0574 056B # L& ARMENIAN SMALL LIGATURE MEN INI
+FB16 ; NFKC_SCF; 057E 0576 # L& ARMENIAN SMALL LIGATURE VEW NOW
+FB17 ; NFKC_SCF; 0574 056D # L& ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; NFKC_SCF; 05D9 05B4 # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1F ; NFKC_SCF; 05F2 05B7 # Lo HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB20 ; NFKC_SCF; 05E2 # Lo HEBREW LETTER ALTERNATIVE AYIN
+FB21 ; NFKC_SCF; 05D0 # Lo HEBREW LETTER WIDE ALEF
+FB22 ; NFKC_SCF; 05D3 # Lo HEBREW LETTER WIDE DALET
+FB23 ; NFKC_SCF; 05D4 # Lo HEBREW LETTER WIDE HE
+FB24 ; NFKC_SCF; 05DB # Lo HEBREW LETTER WIDE KAF
+FB25 ; NFKC_SCF; 05DC # Lo HEBREW LETTER WIDE LAMED
+FB26 ; NFKC_SCF; 05DD # Lo HEBREW LETTER WIDE FINAL MEM
+FB27 ; NFKC_SCF; 05E8 # Lo HEBREW LETTER WIDE RESH
+FB28 ; NFKC_SCF; 05EA # Lo HEBREW LETTER WIDE TAV
+FB29 ; NFKC_SCF; 002B # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A ; NFKC_SCF; 05E9 05C1 # Lo HEBREW LETTER SHIN WITH SHIN DOT
+FB2B ; NFKC_SCF; 05E9 05C2 # Lo HEBREW LETTER SHIN WITH SIN DOT
+FB2C ; NFKC_SCF; 05E9 05BC 05C1 # Lo HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+FB2D ; NFKC_SCF; 05E9 05BC 05C2 # Lo HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2E ; NFKC_SCF; 05D0 05B7 # Lo HEBREW LETTER ALEF WITH PATAH
+FB2F ; NFKC_SCF; 05D0 05B8 # Lo HEBREW LETTER ALEF WITH QAMATS
+FB30 ; NFKC_SCF; 05D0 05BC # Lo HEBREW LETTER ALEF WITH MAPIQ
+FB31 ; NFKC_SCF; 05D1 05BC # Lo HEBREW LETTER BET WITH DAGESH
+FB32 ; NFKC_SCF; 05D2 05BC # Lo HEBREW LETTER GIMEL WITH DAGESH
+FB33 ; NFKC_SCF; 05D3 05BC # Lo HEBREW LETTER DALET WITH DAGESH
+FB34 ; NFKC_SCF; 05D4 05BC # Lo HEBREW LETTER HE WITH MAPIQ
+FB35 ; NFKC_SCF; 05D5 05BC # Lo HEBREW LETTER VAV WITH DAGESH
+FB36 ; NFKC_SCF; 05D6 05BC # Lo HEBREW LETTER ZAYIN WITH DAGESH
+FB38 ; NFKC_SCF; 05D8 05BC # Lo HEBREW LETTER TET WITH DAGESH
+FB39 ; NFKC_SCF; 05D9 05BC # Lo HEBREW LETTER YOD WITH DAGESH
+FB3A ; NFKC_SCF; 05DA 05BC # Lo HEBREW LETTER FINAL KAF WITH DAGESH
+FB3B ; NFKC_SCF; 05DB 05BC # Lo HEBREW LETTER KAF WITH DAGESH
+FB3C ; NFKC_SCF; 05DC 05BC # Lo HEBREW LETTER LAMED WITH DAGESH
+FB3E ; NFKC_SCF; 05DE 05BC # Lo HEBREW LETTER MEM WITH DAGESH
+FB40 ; NFKC_SCF; 05E0 05BC # Lo HEBREW LETTER NUN WITH DAGESH
+FB41 ; NFKC_SCF; 05E1 05BC # Lo HEBREW LETTER SAMEKH WITH DAGESH
+FB43 ; NFKC_SCF; 05E3 05BC # Lo HEBREW LETTER FINAL PE WITH DAGESH
+FB44 ; NFKC_SCF; 05E4 05BC # Lo HEBREW LETTER PE WITH DAGESH
+FB46 ; NFKC_SCF; 05E6 05BC # Lo HEBREW LETTER TSADI WITH DAGESH
+FB47 ; NFKC_SCF; 05E7 05BC # Lo HEBREW LETTER QOF WITH DAGESH
+FB48 ; NFKC_SCF; 05E8 05BC # Lo HEBREW LETTER RESH WITH DAGESH
+FB49 ; NFKC_SCF; 05E9 05BC # Lo HEBREW LETTER SHIN WITH DAGESH
+FB4A ; NFKC_SCF; 05EA 05BC # Lo HEBREW LETTER TAV WITH DAGESH
+FB4B ; NFKC_SCF; 05D5 05B9 # Lo HEBREW LETTER VAV WITH HOLAM
+FB4C ; NFKC_SCF; 05D1 05BF # Lo HEBREW LETTER BET WITH RAFE
+FB4D ; NFKC_SCF; 05DB 05BF # Lo HEBREW LETTER KAF WITH RAFE
+FB4E ; NFKC_SCF; 05E4 05BF # Lo HEBREW LETTER PE WITH RAFE
+FB4F ; NFKC_SCF; 05D0 05DC # Lo HEBREW LIGATURE ALEF LAMED
+FB50..FB51 ; NFKC_SCF; 0671 # Lo [2] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER ALEF WASLA FINAL FORM
+FB52..FB55 ; NFKC_SCF; 067B # Lo [4] ARABIC LETTER BEEH ISOLATED FORM..ARABIC LETTER BEEH MEDIAL FORM
+FB56..FB59 ; NFKC_SCF; 067E # Lo [4] ARABIC LETTER PEH ISOLATED FORM..ARABIC LETTER PEH MEDIAL FORM
+FB5A..FB5D ; NFKC_SCF; 0680 # Lo [4] ARABIC LETTER BEHEH ISOLATED FORM..ARABIC LETTER BEHEH MEDIAL FORM
+FB5E..FB61 ; NFKC_SCF; 067A # Lo [4] ARABIC LETTER TTEHEH ISOLATED FORM..ARABIC LETTER TTEHEH MEDIAL FORM
+FB62..FB65 ; NFKC_SCF; 067F # Lo [4] ARABIC LETTER TEHEH ISOLATED FORM..ARABIC LETTER TEHEH MEDIAL FORM
+FB66..FB69 ; NFKC_SCF; 0679 # Lo [4] ARABIC LETTER TTEH ISOLATED FORM..ARABIC LETTER TTEH MEDIAL FORM
+FB6A..FB6D ; NFKC_SCF; 06A4 # Lo [4] ARABIC LETTER VEH ISOLATED FORM..ARABIC LETTER VEH MEDIAL FORM
+FB6E..FB71 ; NFKC_SCF; 06A6 # Lo [4] ARABIC LETTER PEHEH ISOLATED FORM..ARABIC LETTER PEHEH MEDIAL FORM
+FB72..FB75 ; NFKC_SCF; 0684 # Lo [4] ARABIC LETTER DYEH ISOLATED FORM..ARABIC LETTER DYEH MEDIAL FORM
+FB76..FB79 ; NFKC_SCF; 0683 # Lo [4] ARABIC LETTER NYEH ISOLATED FORM..ARABIC LETTER NYEH MEDIAL FORM
+FB7A..FB7D ; NFKC_SCF; 0686 # Lo [4] ARABIC LETTER TCHEH ISOLATED FORM..ARABIC LETTER TCHEH MEDIAL FORM
+FB7E..FB81 ; NFKC_SCF; 0687 # Lo [4] ARABIC LETTER TCHEHEH ISOLATED FORM..ARABIC LETTER TCHEHEH MEDIAL FORM
+FB82..FB83 ; NFKC_SCF; 068D # Lo [2] ARABIC LETTER DDAHAL ISOLATED FORM..ARABIC LETTER DDAHAL FINAL FORM
+FB84..FB85 ; NFKC_SCF; 068C # Lo [2] ARABIC LETTER DAHAL ISOLATED FORM..ARABIC LETTER DAHAL FINAL FORM
+FB86..FB87 ; NFKC_SCF; 068E # Lo [2] ARABIC LETTER DUL ISOLATED FORM..ARABIC LETTER DUL FINAL FORM
+FB88..FB89 ; NFKC_SCF; 0688 # Lo [2] ARABIC LETTER DDAL ISOLATED FORM..ARABIC LETTER DDAL FINAL FORM
+FB8A..FB8B ; NFKC_SCF; 0698 # Lo [2] ARABIC LETTER JEH ISOLATED FORM..ARABIC LETTER JEH FINAL FORM
+FB8C..FB8D ; NFKC_SCF; 0691 # Lo [2] ARABIC LETTER RREH ISOLATED FORM..ARABIC LETTER RREH FINAL FORM
+FB8E..FB91 ; NFKC_SCF; 06A9 # Lo [4] ARABIC LETTER KEHEH ISOLATED FORM..ARABIC LETTER KEHEH MEDIAL FORM
+FB92..FB95 ; NFKC_SCF; 06AF # Lo [4] ARABIC LETTER GAF ISOLATED FORM..ARABIC LETTER GAF MEDIAL FORM
+FB96..FB99 ; NFKC_SCF; 06B3 # Lo [4] ARABIC LETTER GUEH ISOLATED FORM..ARABIC LETTER GUEH MEDIAL FORM
+FB9A..FB9D ; NFKC_SCF; 06B1 # Lo [4] ARABIC LETTER NGOEH ISOLATED FORM..ARABIC LETTER NGOEH MEDIAL FORM
+FB9E..FB9F ; NFKC_SCF; 06BA # Lo [2] ARABIC LETTER NOON GHUNNA ISOLATED FORM..ARABIC LETTER NOON GHUNNA FINAL FORM
+FBA0..FBA3 ; NFKC_SCF; 06BB # Lo [4] ARABIC LETTER RNOON ISOLATED FORM..ARABIC LETTER RNOON MEDIAL FORM
+FBA4..FBA5 ; NFKC_SCF; 06C0 # Lo [2] ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM..ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA6..FBA9 ; NFKC_SCF; 06C1 # Lo [4] ARABIC LETTER HEH GOAL ISOLATED FORM..ARABIC LETTER HEH GOAL MEDIAL FORM
+FBAA..FBAD ; NFKC_SCF; 06BE # Lo [4] ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM..ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAE..FBAF ; NFKC_SCF; 06D2 # Lo [2] ARABIC LETTER YEH BARREE ISOLATED FORM..ARABIC LETTER YEH BARREE FINAL FORM
+FBB0..FBB1 ; NFKC_SCF; 06D3 # Lo [2] ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBD3..FBD6 ; NFKC_SCF; 06AD # Lo [4] ARABIC LETTER NG ISOLATED FORM..ARABIC LETTER NG MEDIAL FORM
+FBD7..FBD8 ; NFKC_SCF; 06C7 # Lo [2] ARABIC LETTER U ISOLATED FORM..ARABIC LETTER U FINAL FORM
+FBD9..FBDA ; NFKC_SCF; 06C6 # Lo [2] ARABIC LETTER OE ISOLATED FORM..ARABIC LETTER OE FINAL FORM
+FBDB..FBDC ; NFKC_SCF; 06C8 # Lo [2] ARABIC LETTER YU ISOLATED FORM..ARABIC LETTER YU FINAL FORM
+FBDD ; NFKC_SCF; 06C7 0674 # Lo ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBDE..FBDF ; NFKC_SCF; 06CB # Lo [2] ARABIC LETTER VE ISOLATED FORM..ARABIC LETTER VE FINAL FORM
+FBE0..FBE1 ; NFKC_SCF; 06C5 # Lo [2] ARABIC LETTER KIRGHIZ OE ISOLATED FORM..ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE2..FBE3 ; NFKC_SCF; 06C9 # Lo [2] ARABIC LETTER KIRGHIZ YU ISOLATED FORM..ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE4..FBE7 ; NFKC_SCF; 06D0 # Lo [4] ARABIC LETTER E ISOLATED FORM..ARABIC LETTER E MEDIAL FORM
+FBE8..FBE9 ; NFKC_SCF; 0649 # Lo [2] ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM..ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FBEA..FBEB ; NFKC_SCF; 0626 0627 # Lo [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEC..FBED ; NFKC_SCF; 0626 06D5 # Lo [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEE..FBEF ; NFKC_SCF; 0626 0648 # Lo [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+FBF0..FBF1 ; NFKC_SCF; 0626 06C7 # Lo [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF2..FBF3 ; NFKC_SCF; 0626 06C6 # Lo [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF4..FBF5 ; NFKC_SCF; 0626 06C8 # Lo [2] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF6..FBF8 ; NFKC_SCF; 0626 06D0 # Lo [3] ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF9..FBFB ; NFKC_SCF; 0626 0649 # Lo [3] ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM..ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFC..FBFF ; NFKC_SCF; 06CC # Lo [4] ARABIC LETTER FARSI YEH ISOLATED FORM..ARABIC LETTER FARSI YEH MEDIAL FORM
+FC00 ; NFKC_SCF; 0626 062C # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC01 ; NFKC_SCF; 0626 062D # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC02 ; NFKC_SCF; 0626 0645 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC03 ; NFKC_SCF; 0626 0649 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC04 ; NFKC_SCF; 0626 064A # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FC05 ; NFKC_SCF; 0628 062C # Lo ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC06 ; NFKC_SCF; 0628 062D # Lo ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FC07 ; NFKC_SCF; 0628 062E # Lo ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FC08 ; NFKC_SCF; 0628 0645 # Lo ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC09 ; NFKC_SCF; 0628 0649 # Lo ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC0A ; NFKC_SCF; 0628 064A # Lo ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+FC0B ; NFKC_SCF; 062A 062C # Lo ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FC0C ; NFKC_SCF; 062A 062D # Lo ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FC0D ; NFKC_SCF; 062A 062E # Lo ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FC0E ; NFKC_SCF; 062A 0645 # Lo ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FC0F ; NFKC_SCF; 062A 0649 # Lo ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+FC10 ; NFKC_SCF; 062A 064A # Lo ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+FC11 ; NFKC_SCF; 062B 062C # Lo ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC12 ; NFKC_SCF; 062B 0645 # Lo ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC13 ; NFKC_SCF; 062B 0649 # Lo ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC14 ; NFKC_SCF; 062B 064A # Lo ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+FC15 ; NFKC_SCF; 062C 062D # Lo ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FC16 ; NFKC_SCF; 062C 0645 # Lo ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FC17 ; NFKC_SCF; 062D 062C # Lo ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FC18 ; NFKC_SCF; 062D 0645 # Lo ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FC19 ; NFKC_SCF; 062E 062C # Lo ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A ; NFKC_SCF; 062E 062D # Lo ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FC1B ; NFKC_SCF; 062E 0645 # Lo ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FC1C ; NFKC_SCF; 0633 062C # Lo ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FC1D ; NFKC_SCF; 0633 062D # Lo ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FC1E ; NFKC_SCF; 0633 062E # Lo ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FC1F ; NFKC_SCF; 0633 0645 # Lo ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+FC20 ; NFKC_SCF; 0635 062D # Lo ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FC21 ; NFKC_SCF; 0635 0645 # Lo ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FC22 ; NFKC_SCF; 0636 062C # Lo ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FC23 ; NFKC_SCF; 0636 062D # Lo ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FC24 ; NFKC_SCF; 0636 062E # Lo ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FC25 ; NFKC_SCF; 0636 0645 # Lo ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FC26 ; NFKC_SCF; 0637 062D # Lo ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FC27 ; NFKC_SCF; 0637 0645 # Lo ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FC28 ; NFKC_SCF; 0638 0645 # Lo ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+FC29 ; NFKC_SCF; 0639 062C # Lo ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FC2A ; NFKC_SCF; 0639 0645 # Lo ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FC2B ; NFKC_SCF; 063A 062C # Lo ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FC2C ; NFKC_SCF; 063A 0645 # Lo ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FC2D ; NFKC_SCF; 0641 062C # Lo ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FC2E ; NFKC_SCF; 0641 062D # Lo ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FC2F ; NFKC_SCF; 0641 062E # Lo ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+FC30 ; NFKC_SCF; 0641 0645 # Lo ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FC31 ; NFKC_SCF; 0641 0649 # Lo ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC32 ; NFKC_SCF; 0641 064A # Lo ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+FC33 ; NFKC_SCF; 0642 062D # Lo ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FC34 ; NFKC_SCF; 0642 0645 # Lo ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FC35 ; NFKC_SCF; 0642 0649 # Lo ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC36 ; NFKC_SCF; 0642 064A # Lo ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+FC37 ; NFKC_SCF; 0643 0627 # Lo ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FC38 ; NFKC_SCF; 0643 062C # Lo ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FC39 ; NFKC_SCF; 0643 062D # Lo ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FC3A ; NFKC_SCF; 0643 062E # Lo ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FC3B ; NFKC_SCF; 0643 0644 # Lo ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FC3C ; NFKC_SCF; 0643 0645 # Lo ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FC3D ; NFKC_SCF; 0643 0649 # Lo ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC3E ; NFKC_SCF; 0643 064A # Lo ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+FC3F ; NFKC_SCF; 0644 062C # Lo ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+FC40 ; NFKC_SCF; 0644 062D # Lo ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FC41 ; NFKC_SCF; 0644 062E # Lo ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FC42 ; NFKC_SCF; 0644 0645 # Lo ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FC43 ; NFKC_SCF; 0644 0649 # Lo ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC44 ; NFKC_SCF; 0644 064A # Lo ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+FC45 ; NFKC_SCF; 0645 062C # Lo ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FC46 ; NFKC_SCF; 0645 062D # Lo ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FC47 ; NFKC_SCF; 0645 062E # Lo ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FC48 ; NFKC_SCF; 0645 0645 # Lo ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FC49 ; NFKC_SCF; 0645 0649 # Lo ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A ; NFKC_SCF; 0645 064A # Lo ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+FC4B ; NFKC_SCF; 0646 062C # Lo ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FC4C ; NFKC_SCF; 0646 062D # Lo ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FC4D ; NFKC_SCF; 0646 062E # Lo ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC4E ; NFKC_SCF; 0646 0645 # Lo ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FC4F ; NFKC_SCF; 0646 0649 # Lo ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+FC50 ; NFKC_SCF; 0646 064A # Lo ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+FC51 ; NFKC_SCF; 0647 062C # Lo ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FC52 ; NFKC_SCF; 0647 0645 # Lo ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FC53 ; NFKC_SCF; 0647 0649 # Lo ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54 ; NFKC_SCF; 0647 064A # Lo ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+FC55 ; NFKC_SCF; 064A 062C # Lo ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FC56 ; NFKC_SCF; 064A 062D # Lo ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FC57 ; NFKC_SCF; 064A 062E # Lo ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC58 ; NFKC_SCF; 064A 0645 # Lo ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FC59 ; NFKC_SCF; 064A 0649 # Lo ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC5A ; NFKC_SCF; 064A 064A # Lo ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+FC5B ; NFKC_SCF; 0630 0670 # Lo ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5C ; NFKC_SCF; 0631 0670 # Lo ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5D ; NFKC_SCF; 0649 0670 # Lo ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5E ; NFKC_SCF; 0020 064C 0651 # Lo ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
+FC5F ; NFKC_SCF; 0020 064D 0651 # Lo ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
+FC60 ; NFKC_SCF; 0020 064E 0651 # Lo ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
+FC61 ; NFKC_SCF; 0020 064F 0651 # Lo ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
+FC62 ; NFKC_SCF; 0020 0650 0651 # Lo ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
+FC63 ; NFKC_SCF; 0020 0651 0670 # Lo ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC64 ; NFKC_SCF; 0626 0631 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65 ; NFKC_SCF; 0626 0632 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC66 ; NFKC_SCF; 0626 0645 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC67 ; NFKC_SCF; 0626 0646 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC68 ; NFKC_SCF; 0626 0649 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC69 ; NFKC_SCF; 0626 064A # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC6A ; NFKC_SCF; 0628 0631 # Lo ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B ; NFKC_SCF; 0628 0632 # Lo ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC6C ; NFKC_SCF; 0628 0645 # Lo ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC6D ; NFKC_SCF; 0628 0646 # Lo ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FC6E ; NFKC_SCF; 0628 0649 # Lo ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC6F ; NFKC_SCF; 0628 064A # Lo ARABIC LIGATURE BEH WITH YEH FINAL FORM
+FC70 ; NFKC_SCF; 062A 0631 # Lo ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71 ; NFKC_SCF; 062A 0632 # Lo ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FC72 ; NFKC_SCF; 062A 0645 # Lo ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC73 ; NFKC_SCF; 062A 0646 # Lo ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FC74 ; NFKC_SCF; 062A 0649 # Lo ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC75 ; NFKC_SCF; 062A 064A # Lo ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC76 ; NFKC_SCF; 062B 0631 # Lo ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77 ; NFKC_SCF; 062B 0632 # Lo ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FC78 ; NFKC_SCF; 062B 0645 # Lo ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC79 ; NFKC_SCF; 062B 0646 # Lo ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FC7A ; NFKC_SCF; 062B 0649 # Lo ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC7B ; NFKC_SCF; 062B 064A # Lo ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC7C ; NFKC_SCF; 0641 0649 # Lo ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC7D ; NFKC_SCF; 0641 064A # Lo ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC7E ; NFKC_SCF; 0642 0649 # Lo ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC7F ; NFKC_SCF; 0642 064A # Lo ARABIC LIGATURE QAF WITH YEH FINAL FORM
+FC80 ; NFKC_SCF; 0643 0627 # Lo ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC81 ; NFKC_SCF; 0643 0644 # Lo ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC82 ; NFKC_SCF; 0643 0645 # Lo ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC83 ; NFKC_SCF; 0643 0649 # Lo ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC84 ; NFKC_SCF; 0643 064A # Lo ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC85 ; NFKC_SCF; 0644 0645 # Lo ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC86 ; NFKC_SCF; 0644 0649 # Lo ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC87 ; NFKC_SCF; 0644 064A # Lo ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC88 ; NFKC_SCF; 0645 0627 # Lo ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FC89 ; NFKC_SCF; 0645 0645 # Lo ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC8A ; NFKC_SCF; 0646 0631 # Lo ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B ; NFKC_SCF; 0646 0632 # Lo ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FC8C ; NFKC_SCF; 0646 0645 # Lo ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC8D ; NFKC_SCF; 0646 0646 # Lo ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FC8E ; NFKC_SCF; 0646 0649 # Lo ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC8F ; NFKC_SCF; 0646 064A # Lo ARABIC LIGATURE NOON WITH YEH FINAL FORM
+FC90 ; NFKC_SCF; 0649 0670 # Lo ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC91 ; NFKC_SCF; 064A 0631 # Lo ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92 ; NFKC_SCF; 064A 0632 # Lo ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FC93 ; NFKC_SCF; 064A 0645 # Lo ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC94 ; NFKC_SCF; 064A 0646 # Lo ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FC95 ; NFKC_SCF; 064A 0649 # Lo ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC96 ; NFKC_SCF; 064A 064A # Lo ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC97 ; NFKC_SCF; 0626 062C # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC98 ; NFKC_SCF; 0626 062D # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC99 ; NFKC_SCF; 0626 062E # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC9A ; NFKC_SCF; 0626 0645 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FC9B ; NFKC_SCF; 0626 0647 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FC9C ; NFKC_SCF; 0628 062C # Lo ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC9D ; NFKC_SCF; 0628 062D # Lo ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC9E ; NFKC_SCF; 0628 062E # Lo ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC9F ; NFKC_SCF; 0628 0645 # Lo ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+FCA0 ; NFKC_SCF; 0628 0647 # Lo ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCA1 ; NFKC_SCF; 062A 062C # Lo ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FCA2 ; NFKC_SCF; 062A 062D # Lo ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FCA3 ; NFKC_SCF; 062A 062E # Lo ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FCA4 ; NFKC_SCF; 062A 0645 # Lo ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCA5 ; NFKC_SCF; 062A 0647 # Lo ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCA6 ; NFKC_SCF; 062B 0645 # Lo ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCA7 ; NFKC_SCF; 062C 062D # Lo ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FCA8 ; NFKC_SCF; 062C 0645 # Lo ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FCA9 ; NFKC_SCF; 062D 062C # Lo ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FCAA ; NFKC_SCF; 062D 0645 # Lo ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FCAB ; NFKC_SCF; 062E 062C # Lo ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FCAC ; NFKC_SCF; 062E 0645 # Lo ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FCAD ; NFKC_SCF; 0633 062C # Lo ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FCAE ; NFKC_SCF; 0633 062D # Lo ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FCAF ; NFKC_SCF; 0633 062E # Lo ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+FCB0 ; NFKC_SCF; 0633 0645 # Lo ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCB1 ; NFKC_SCF; 0635 062D # Lo ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FCB2 ; NFKC_SCF; 0635 062E # Lo ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FCB3 ; NFKC_SCF; 0635 0645 # Lo ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FCB4 ; NFKC_SCF; 0636 062C # Lo ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FCB5 ; NFKC_SCF; 0636 062D # Lo ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FCB6 ; NFKC_SCF; 0636 062E # Lo ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FCB7 ; NFKC_SCF; 0636 0645 # Lo ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FCB8 ; NFKC_SCF; 0637 062D # Lo ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FCB9 ; NFKC_SCF; 0638 0645 # Lo ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FCBA ; NFKC_SCF; 0639 062C # Lo ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FCBB ; NFKC_SCF; 0639 0645 # Lo ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FCBC ; NFKC_SCF; 063A 062C # Lo ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FCBD ; NFKC_SCF; 063A 0645 # Lo ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FCBE ; NFKC_SCF; 0641 062C # Lo ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FCBF ; NFKC_SCF; 0641 062D # Lo ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+FCC0 ; NFKC_SCF; 0641 062E # Lo ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FCC1 ; NFKC_SCF; 0641 0645 # Lo ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FCC2 ; NFKC_SCF; 0642 062D # Lo ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FCC3 ; NFKC_SCF; 0642 0645 # Lo ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FCC4 ; NFKC_SCF; 0643 062C # Lo ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FCC5 ; NFKC_SCF; 0643 062D # Lo ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FCC6 ; NFKC_SCF; 0643 062E # Lo ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FCC7 ; NFKC_SCF; 0643 0644 # Lo ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCC8 ; NFKC_SCF; 0643 0645 # Lo ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCC9 ; NFKC_SCF; 0644 062C # Lo ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FCCA ; NFKC_SCF; 0644 062D # Lo ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FCCB ; NFKC_SCF; 0644 062E # Lo ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FCCC ; NFKC_SCF; 0644 0645 # Lo ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCCD ; NFKC_SCF; 0644 0647 # Lo ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FCCE ; NFKC_SCF; 0645 062C # Lo ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FCCF ; NFKC_SCF; 0645 062D # Lo ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+FCD0 ; NFKC_SCF; 0645 062E # Lo ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FCD1 ; NFKC_SCF; 0645 0645 # Lo ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FCD2 ; NFKC_SCF; 0646 062C # Lo ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FCD3 ; NFKC_SCF; 0646 062D # Lo ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FCD4 ; NFKC_SCF; 0646 062E # Lo ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FCD5 ; NFKC_SCF; 0646 0645 # Lo ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCD6 ; NFKC_SCF; 0646 0647 # Lo ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCD7 ; NFKC_SCF; 0647 062C # Lo ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FCD8 ; NFKC_SCF; 0647 0645 # Lo ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FCD9 ; NFKC_SCF; 0647 0670 # Lo ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCDA ; NFKC_SCF; 064A 062C # Lo ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FCDB ; NFKC_SCF; 064A 062D # Lo ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FCDC ; NFKC_SCF; 064A 062E # Lo ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FCDD ; NFKC_SCF; 064A 0645 # Lo ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCDE ; NFKC_SCF; 064A 0647 # Lo ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCDF ; NFKC_SCF; 0626 0645 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FCE0 ; NFKC_SCF; 0626 0647 # Lo ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FCE1 ; NFKC_SCF; 0628 0645 # Lo ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FCE2 ; NFKC_SCF; 0628 0647 # Lo ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FCE3 ; NFKC_SCF; 062A 0645 # Lo ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FCE4 ; NFKC_SCF; 062A 0647 # Lo ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FCE5 ; NFKC_SCF; 062B 0645 # Lo ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FCE6 ; NFKC_SCF; 062B 0647 # Lo ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FCE7 ; NFKC_SCF; 0633 0645 # Lo ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FCE8 ; NFKC_SCF; 0633 0647 # Lo ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FCE9 ; NFKC_SCF; 0634 0645 # Lo ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FCEA ; NFKC_SCF; 0634 0647 # Lo ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FCEB ; NFKC_SCF; 0643 0644 # Lo ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FCEC ; NFKC_SCF; 0643 0645 # Lo ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FCED ; NFKC_SCF; 0644 0645 # Lo ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FCEE ; NFKC_SCF; 0646 0645 # Lo ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FCEF ; NFKC_SCF; 0646 0647 # Lo ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+FCF0 ; NFKC_SCF; 064A 0645 # Lo ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FCF1 ; NFKC_SCF; 064A 0647 # Lo ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FCF2 ; NFKC_SCF; 0640 064E 0651 # Lo ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
+FCF3 ; NFKC_SCF; 0640 064F 0651 # Lo ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
+FCF4 ; NFKC_SCF; 0640 0650 0651 # Lo ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
+FCF5 ; NFKC_SCF; 0637 0649 # Lo ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FCF6 ; NFKC_SCF; 0637 064A # Lo ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+FCF7 ; NFKC_SCF; 0639 0649 # Lo ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FCF8 ; NFKC_SCF; 0639 064A # Lo ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+FCF9 ; NFKC_SCF; 063A 0649 # Lo ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FCFA ; NFKC_SCF; 063A 064A # Lo ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+FCFB ; NFKC_SCF; 0633 0649 # Lo ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFC ; NFKC_SCF; 0633 064A # Lo ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+FCFD ; NFKC_SCF; 0634 0649 # Lo ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFE ; NFKC_SCF; 0634 064A # Lo ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+FCFF ; NFKC_SCF; 062D 0649 # Lo ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+FD00 ; NFKC_SCF; 062D 064A # Lo ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+FD01 ; NFKC_SCF; 062C 0649 # Lo ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD02 ; NFKC_SCF; 062C 064A # Lo ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+FD03 ; NFKC_SCF; 062E 0649 # Lo ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD04 ; NFKC_SCF; 062E 064A # Lo ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+FD05 ; NFKC_SCF; 0635 0649 # Lo ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD06 ; NFKC_SCF; 0635 064A # Lo ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+FD07 ; NFKC_SCF; 0636 0649 # Lo ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD08 ; NFKC_SCF; 0636 064A # Lo ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+FD09 ; NFKC_SCF; 0634 062C # Lo ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD0A ; NFKC_SCF; 0634 062D # Lo ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD0B ; NFKC_SCF; 0634 062E # Lo ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD0C ; NFKC_SCF; 0634 0645 # Lo ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD0D ; NFKC_SCF; 0634 0631 # Lo ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD0E ; NFKC_SCF; 0633 0631 # Lo ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FD0F ; NFKC_SCF; 0635 0631 # Lo ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+FD10 ; NFKC_SCF; 0636 0631 # Lo ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FD11 ; NFKC_SCF; 0637 0649 # Lo ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FD12 ; NFKC_SCF; 0637 064A # Lo ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FD13 ; NFKC_SCF; 0639 0649 # Lo ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FD14 ; NFKC_SCF; 0639 064A # Lo ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FD15 ; NFKC_SCF; 063A 0649 # Lo ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FD16 ; NFKC_SCF; 063A 064A # Lo ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FD17 ; NFKC_SCF; 0633 0649 # Lo ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FD18 ; NFKC_SCF; 0633 064A # Lo ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FD19 ; NFKC_SCF; 0634 0649 # Lo ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FD1A ; NFKC_SCF; 0634 064A # Lo ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FD1B ; NFKC_SCF; 062D 0649 # Lo ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FD1C ; NFKC_SCF; 062D 064A # Lo ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD1D ; NFKC_SCF; 062C 0649 # Lo ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD1E ; NFKC_SCF; 062C 064A # Lo ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD1F ; NFKC_SCF; 062E 0649 # Lo ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+FD20 ; NFKC_SCF; 062E 064A # Lo ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD21 ; NFKC_SCF; 0635 0649 # Lo ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD22 ; NFKC_SCF; 0635 064A # Lo ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD23 ; NFKC_SCF; 0636 0649 # Lo ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD24 ; NFKC_SCF; 0636 064A # Lo ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD25 ; NFKC_SCF; 0634 062C # Lo ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD26 ; NFKC_SCF; 0634 062D # Lo ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD27 ; NFKC_SCF; 0634 062E # Lo ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD28 ; NFKC_SCF; 0634 0645 # Lo ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD29 ; NFKC_SCF; 0634 0631 # Lo ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD2A ; NFKC_SCF; 0633 0631 # Lo ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD2B ; NFKC_SCF; 0635 0631 # Lo ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD2C ; NFKC_SCF; 0636 0631 # Lo ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD2D ; NFKC_SCF; 0634 062C # Lo ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD2E ; NFKC_SCF; 0634 062D # Lo ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD2F ; NFKC_SCF; 0634 062E # Lo ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+FD30 ; NFKC_SCF; 0634 0645 # Lo ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FD31 ; NFKC_SCF; 0633 0647 # Lo ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FD32 ; NFKC_SCF; 0634 0647 # Lo ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FD33 ; NFKC_SCF; 0637 0645 # Lo ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD34 ; NFKC_SCF; 0633 062C # Lo ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FD35 ; NFKC_SCF; 0633 062D # Lo ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FD36 ; NFKC_SCF; 0633 062E # Lo ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FD37 ; NFKC_SCF; 0634 062C # Lo ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD38 ; NFKC_SCF; 0634 062D # Lo ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD39 ; NFKC_SCF; 0634 062E # Lo ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD3A ; NFKC_SCF; 0637 0645 # Lo ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FD3B ; NFKC_SCF; 0638 0645 # Lo ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FD3C..FD3D ; NFKC_SCF; 0627 064B # Lo [2] ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD50 ; NFKC_SCF; 062A 062C 0645 # Lo ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FD51..FD52 ; NFKC_SCF; 062A 062D 062C # Lo [2] ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM..ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD53 ; NFKC_SCF; 062A 062D 0645 # Lo ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FD54 ; NFKC_SCF; 062A 062E 0645 # Lo ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FD55 ; NFKC_SCF; 062A 0645 062C # Lo ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56 ; NFKC_SCF; 062A 0645 062D # Lo ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57 ; NFKC_SCF; 062A 0645 062E # Lo ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FD58..FD59 ; NFKC_SCF; 062C 0645 062D # Lo [2] ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD5A ; NFKC_SCF; 062D 0645 064A # Lo ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD5B ; NFKC_SCF; 062D 0645 0649 # Lo ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5C ; NFKC_SCF; 0633 062D 062C # Lo ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FD5D ; NFKC_SCF; 0633 062C 062D # Lo ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E ; NFKC_SCF; 0633 062C 0649 # Lo ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD5F..FD60 ; NFKC_SCF; 0633 0645 062D # Lo [2] ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD61 ; NFKC_SCF; 0633 0645 062C # Lo ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD62..FD63 ; NFKC_SCF; 0633 0645 0645 # Lo [2] ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD64..FD65 ; NFKC_SCF; 0635 062D 062D # Lo [2] ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM..ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD66 ; NFKC_SCF; 0635 0645 0645 # Lo ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD67..FD68 ; NFKC_SCF; 0634 062D 0645 # Lo [2] ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD69 ; NFKC_SCF; 0634 062C 064A # Lo ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD6A..FD6B ; NFKC_SCF; 0634 0645 062E # Lo [2] ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6C..FD6D ; NFKC_SCF; 0634 0645 0645 # Lo [2] ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6E ; NFKC_SCF; 0636 062D 0649 # Lo ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD6F..FD70 ; NFKC_SCF; 0636 062E 0645 # Lo [2] ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD71..FD72 ; NFKC_SCF; 0637 0645 062D # Lo [2] ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD73 ; NFKC_SCF; 0637 0645 0645 # Lo ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74 ; NFKC_SCF; 0637 0645 064A # Lo ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD75 ; NFKC_SCF; 0639 062C 0645 # Lo ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FD76..FD77 ; NFKC_SCF; 0639 0645 0645 # Lo [2] ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD78 ; NFKC_SCF; 0639 0645 0649 # Lo ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD79 ; NFKC_SCF; 063A 0645 0645 # Lo ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7A ; NFKC_SCF; 063A 0645 064A # Lo ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD7B ; NFKC_SCF; 063A 0645 0649 # Lo ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7C..FD7D ; NFKC_SCF; 0641 062E 0645 # Lo [2] ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7E ; NFKC_SCF; 0642 0645 062D # Lo ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F ; NFKC_SCF; 0642 0645 0645 # Lo ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+FD80 ; NFKC_SCF; 0644 062D 0645 # Lo ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD81 ; NFKC_SCF; 0644 062D 064A # Lo ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FD82 ; NFKC_SCF; 0644 062D 0649 # Lo ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD83..FD84 ; NFKC_SCF; 0644 062C 062C # Lo [2] ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM..ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FD85..FD86 ; NFKC_SCF; 0644 062E 0645 # Lo [2] ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD87..FD88 ; NFKC_SCF; 0644 0645 062D # Lo [2] ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD89 ; NFKC_SCF; 0645 062D 062C # Lo ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A ; NFKC_SCF; 0645 062D 0645 # Lo ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FD8B ; NFKC_SCF; 0645 062D 064A # Lo ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FD8C ; NFKC_SCF; 0645 062C 062D # Lo ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD8D ; NFKC_SCF; 0645 062C 0645 # Lo ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FD8E ; NFKC_SCF; 0645 062E 062C # Lo ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F ; NFKC_SCF; 0645 062E 0645 # Lo ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92 ; NFKC_SCF; 0645 062C 062E # Lo ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD93 ; NFKC_SCF; 0647 0645 062C # Lo ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94 ; NFKC_SCF; 0647 0645 0645 # Lo ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FD95 ; NFKC_SCF; 0646 062D 0645 # Lo ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96 ; NFKC_SCF; 0646 062D 0649 # Lo ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD97..FD98 ; NFKC_SCF; 0646 062C 0645 # Lo [2] ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD99 ; NFKC_SCF; 0646 062C 0649 # Lo ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9A ; NFKC_SCF; 0646 0645 064A # Lo ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FD9B ; NFKC_SCF; 0646 0645 0649 # Lo ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9C..FD9D ; NFKC_SCF; 064A 0645 0645 # Lo [2] ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9E ; NFKC_SCF; 0628 062E 064A # Lo ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FD9F ; NFKC_SCF; 062A 062C 064A # Lo ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+FDA0 ; NFKC_SCF; 062A 062C 0649 # Lo ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDA1 ; NFKC_SCF; 062A 062E 064A # Lo ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FDA2 ; NFKC_SCF; 062A 062E 0649 # Lo ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA3 ; NFKC_SCF; 062A 0645 064A # Lo ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FDA4 ; NFKC_SCF; 062A 0645 0649 # Lo ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5 ; NFKC_SCF; 062C 0645 064A # Lo ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FDA6 ; NFKC_SCF; 062C 062D 0649 # Lo ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDA7 ; NFKC_SCF; 062C 0645 0649 # Lo ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA8 ; NFKC_SCF; 0633 062E 0649 # Lo ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA9 ; NFKC_SCF; 0635 062D 064A # Lo ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FDAA ; NFKC_SCF; 0634 062D 064A # Lo ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FDAB ; NFKC_SCF; 0636 062D 064A # Lo ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FDAC ; NFKC_SCF; 0644 062C 064A # Lo ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FDAD ; NFKC_SCF; 0644 0645 064A # Lo ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FDAE ; NFKC_SCF; 064A 062D 064A # Lo ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FDAF ; NFKC_SCF; 064A 062C 064A # Lo ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+FDB0 ; NFKC_SCF; 064A 0645 064A # Lo ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FDB1 ; NFKC_SCF; 0645 0645 064A # Lo ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FDB2 ; NFKC_SCF; 0642 0645 064A # Lo ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FDB3 ; NFKC_SCF; 0646 062D 064A # Lo ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FDB4 ; NFKC_SCF; 0642 0645 062D # Lo ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FDB5 ; NFKC_SCF; 0644 062D 0645 # Lo ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FDB6 ; NFKC_SCF; 0639 0645 064A # Lo ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FDB7 ; NFKC_SCF; 0643 0645 064A # Lo ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FDB8 ; NFKC_SCF; 0646 062C 062D # Lo ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDB9 ; NFKC_SCF; 0645 062E 064A # Lo ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FDBA ; NFKC_SCF; 0644 062C 0645 # Lo ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBB ; NFKC_SCF; 0643 0645 0645 # Lo ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDBC ; NFKC_SCF; 0644 062C 0645 # Lo ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDBD ; NFKC_SCF; 0646 062C 062D # Lo ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FDBE ; NFKC_SCF; 062C 062D 064A # Lo ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDBF ; NFKC_SCF; 062D 062C 064A # Lo ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+FDC0 ; NFKC_SCF; 0645 062C 064A # Lo ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FDC1 ; NFKC_SCF; 0641 0645 064A # Lo ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FDC2 ; NFKC_SCF; 0628 062D 064A # Lo ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FDC3 ; NFKC_SCF; 0643 0645 0645 # Lo ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDC4 ; NFKC_SCF; 0639 062C 0645 # Lo ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FDC5 ; NFKC_SCF; 0635 0645 0645 # Lo ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FDC6 ; NFKC_SCF; 0633 062E 064A # Lo ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FDC7 ; NFKC_SCF; 0646 062C 064A # Lo ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDF0 ; NFKC_SCF; 0635 0644 06D2 # Lo ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF1 ; NFKC_SCF; 0642 0644 06D2 # Lo ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF2 ; NFKC_SCF; 0627 0644 0644 0647 #Lo ARABIC LIGATURE ALLAH ISOLATED FORM
+FDF3 ; NFKC_SCF; 0627 0643 0628 0631 #Lo ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF4 ; NFKC_SCF; 0645 062D 0645 062F #Lo ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FDF5 ; NFKC_SCF; 0635 0644 0639 0645 #Lo ARABIC LIGATURE SALAM ISOLATED FORM
+FDF6 ; NFKC_SCF; 0631 0633 0648 0644 #Lo ARABIC LIGATURE RASOUL ISOLATED FORM
+FDF7 ; NFKC_SCF; 0639 0644 064A 0647 #Lo ARABIC LIGATURE ALAYHE ISOLATED FORM
+FDF8 ; NFKC_SCF; 0648 0633 0644 0645 #Lo ARABIC LIGATURE WASALLAM ISOLATED FORM
+FDF9 ; NFKC_SCF; 0635 0644 0649 # Lo ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA ; NFKC_SCF; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 #Lo ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDFB ; NFKC_SCF; 062C 0644 0020 062C 0644 0627 0644 0647 #Lo ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; NFKC_SCF; 0631 06CC 0627 0644 #Sc RIAL SIGN
+FE00..FE0F ; NFKC_SCF; # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10 ; NFKC_SCF; 002C # Po PRESENTATION FORM FOR VERTICAL COMMA
+FE11 ; NFKC_SCF; 3001 # Po PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
+FE12 ; NFKC_SCF; 3002 # Po PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13 ; NFKC_SCF; 003A # Po PRESENTATION FORM FOR VERTICAL COLON
+FE14 ; NFKC_SCF; 003B # Po PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15 ; NFKC_SCF; 0021 # Po PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
+FE16 ; NFKC_SCF; 003F # Po PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; NFKC_SCF; 3016 # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; NFKC_SCF; 3017 # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; NFKC_SCF; 002E 002E 002E # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE30 ; NFKC_SCF; 002E 002E # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31 ; NFKC_SCF; 2014 # Pd PRESENTATION FORM FOR VERTICAL EM DASH
+FE32 ; NFKC_SCF; 2013 # Pd PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; NFKC_SCF; 005F # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; NFKC_SCF; 0028 # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; NFKC_SCF; 0029 # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; NFKC_SCF; 007B # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; NFKC_SCF; 007D # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; NFKC_SCF; 3014 # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; NFKC_SCF; 3015 # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; NFKC_SCF; 3010 # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; NFKC_SCF; 3011 # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; NFKC_SCF; 300A # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; NFKC_SCF; 300B # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; NFKC_SCF; 3008 # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; NFKC_SCF; 3009 # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; NFKC_SCF; 300C # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; NFKC_SCF; 300D # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; NFKC_SCF; 300E # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; NFKC_SCF; 300F # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE47 ; NFKC_SCF; 005B # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; NFKC_SCF; 005D # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; NFKC_SCF; 0020 0305 # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; NFKC_SCF; 005F # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50 ; NFKC_SCF; 002C # Po SMALL COMMA
+FE51 ; NFKC_SCF; 3001 # Po SMALL IDEOGRAPHIC COMMA
+FE52 ; NFKC_SCF; 002E # Po SMALL FULL STOP
+FE54 ; NFKC_SCF; 003B # Po SMALL SEMICOLON
+FE55 ; NFKC_SCF; 003A # Po SMALL COLON
+FE56 ; NFKC_SCF; 003F # Po SMALL QUESTION MARK
+FE57 ; NFKC_SCF; 0021 # Po SMALL EXCLAMATION MARK
+FE58 ; NFKC_SCF; 2014 # Pd SMALL EM DASH
+FE59 ; NFKC_SCF; 0028 # Ps SMALL LEFT PARENTHESIS
+FE5A ; NFKC_SCF; 0029 # Pe SMALL RIGHT PARENTHESIS
+FE5B ; NFKC_SCF; 007B # Ps SMALL LEFT CURLY BRACKET
+FE5C ; NFKC_SCF; 007D # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; NFKC_SCF; 3014 # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; NFKC_SCF; 3015 # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F ; NFKC_SCF; 0023 # Po SMALL NUMBER SIGN
+FE60 ; NFKC_SCF; 0026 # Po SMALL AMPERSAND
+FE61 ; NFKC_SCF; 002A # Po SMALL ASTERISK
+FE62 ; NFKC_SCF; 002B # Sm SMALL PLUS SIGN
+FE63 ; NFKC_SCF; 002D # Pd SMALL HYPHEN-MINUS
+FE64 ; NFKC_SCF; 003C # Sm SMALL LESS-THAN SIGN
+FE65 ; NFKC_SCF; 003E # Sm SMALL GREATER-THAN SIGN
+FE66 ; NFKC_SCF; 003D # Sm SMALL EQUALS SIGN
+FE68 ; NFKC_SCF; 005C # Po SMALL REVERSE SOLIDUS
+FE69 ; NFKC_SCF; 0024 # Sc SMALL DOLLAR SIGN
+FE6A ; NFKC_SCF; 0025 # Po SMALL PERCENT SIGN
+FE6B ; NFKC_SCF; 0040 # Po SMALL COMMERCIAL AT
+FE70 ; NFKC_SCF; 0020 064B # Lo ARABIC FATHATAN ISOLATED FORM
+FE71 ; NFKC_SCF; 0640 064B # Lo ARABIC TATWEEL WITH FATHATAN ABOVE
+FE72 ; NFKC_SCF; 0020 064C # Lo ARABIC DAMMATAN ISOLATED FORM
+FE74 ; NFKC_SCF; 0020 064D # Lo ARABIC KASRATAN ISOLATED FORM
+FE76 ; NFKC_SCF; 0020 064E # Lo ARABIC FATHA ISOLATED FORM
+FE77 ; NFKC_SCF; 0640 064E # Lo ARABIC FATHA MEDIAL FORM
+FE78 ; NFKC_SCF; 0020 064F # Lo ARABIC DAMMA ISOLATED FORM
+FE79 ; NFKC_SCF; 0640 064F # Lo ARABIC DAMMA MEDIAL FORM
+FE7A ; NFKC_SCF; 0020 0650 # Lo ARABIC KASRA ISOLATED FORM
+FE7B ; NFKC_SCF; 0640 0650 # Lo ARABIC KASRA MEDIAL FORM
+FE7C ; NFKC_SCF; 0020 0651 # Lo ARABIC SHADDA ISOLATED FORM
+FE7D ; NFKC_SCF; 0640 0651 # Lo ARABIC SHADDA MEDIAL FORM
+FE7E ; NFKC_SCF; 0020 0652 # Lo ARABIC SUKUN ISOLATED FORM
+FE7F ; NFKC_SCF; 0640 0652 # Lo ARABIC SUKUN MEDIAL FORM
+FE80 ; NFKC_SCF; 0621 # Lo ARABIC LETTER HAMZA ISOLATED FORM
+FE81..FE82 ; NFKC_SCF; 0622 # Lo [2] ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE83..FE84 ; NFKC_SCF; 0623 # Lo [2] ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE85..FE86 ; NFKC_SCF; 0624 # Lo [2] ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE87..FE88 ; NFKC_SCF; 0625 # Lo [2] ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE89..FE8C ; NFKC_SCF; 0626 # Lo [4] ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8D..FE8E ; NFKC_SCF; 0627 # Lo [2] ARABIC LETTER ALEF ISOLATED FORM..ARABIC LETTER ALEF FINAL FORM
+FE8F..FE92 ; NFKC_SCF; 0628 # Lo [4] ARABIC LETTER BEH ISOLATED FORM..ARABIC LETTER BEH MEDIAL FORM
+FE93..FE94 ; NFKC_SCF; 0629 # Lo [2] ARABIC LETTER TEH MARBUTA ISOLATED FORM..ARABIC LETTER TEH MARBUTA FINAL FORM
+FE95..FE98 ; NFKC_SCF; 062A # Lo [4] ARABIC LETTER TEH ISOLATED FORM..ARABIC LETTER TEH MEDIAL FORM
+FE99..FE9C ; NFKC_SCF; 062B # Lo [4] ARABIC LETTER THEH ISOLATED FORM..ARABIC LETTER THEH MEDIAL FORM
+FE9D..FEA0 ; NFKC_SCF; 062C # Lo [4] ARABIC LETTER JEEM ISOLATED FORM..ARABIC LETTER JEEM MEDIAL FORM
+FEA1..FEA4 ; NFKC_SCF; 062D # Lo [4] ARABIC LETTER HAH ISOLATED FORM..ARABIC LETTER HAH MEDIAL FORM
+FEA5..FEA8 ; NFKC_SCF; 062E # Lo [4] ARABIC LETTER KHAH ISOLATED FORM..ARABIC LETTER KHAH MEDIAL FORM
+FEA9..FEAA ; NFKC_SCF; 062F # Lo [2] ARABIC LETTER DAL ISOLATED FORM..ARABIC LETTER DAL FINAL FORM
+FEAB..FEAC ; NFKC_SCF; 0630 # Lo [2] ARABIC LETTER THAL ISOLATED FORM..ARABIC LETTER THAL FINAL FORM
+FEAD..FEAE ; NFKC_SCF; 0631 # Lo [2] ARABIC LETTER REH ISOLATED FORM..ARABIC LETTER REH FINAL FORM
+FEAF..FEB0 ; NFKC_SCF; 0632 # Lo [2] ARABIC LETTER ZAIN ISOLATED FORM..ARABIC LETTER ZAIN FINAL FORM
+FEB1..FEB4 ; NFKC_SCF; 0633 # Lo [4] ARABIC LETTER SEEN ISOLATED FORM..ARABIC LETTER SEEN MEDIAL FORM
+FEB5..FEB8 ; NFKC_SCF; 0634 # Lo [4] ARABIC LETTER SHEEN ISOLATED FORM..ARABIC LETTER SHEEN MEDIAL FORM
+FEB9..FEBC ; NFKC_SCF; 0635 # Lo [4] ARABIC LETTER SAD ISOLATED FORM..ARABIC LETTER SAD MEDIAL FORM
+FEBD..FEC0 ; NFKC_SCF; 0636 # Lo [4] ARABIC LETTER DAD ISOLATED FORM..ARABIC LETTER DAD MEDIAL FORM
+FEC1..FEC4 ; NFKC_SCF; 0637 # Lo [4] ARABIC LETTER TAH ISOLATED FORM..ARABIC LETTER TAH MEDIAL FORM
+FEC5..FEC8 ; NFKC_SCF; 0638 # Lo [4] ARABIC LETTER ZAH ISOLATED FORM..ARABIC LETTER ZAH MEDIAL FORM
+FEC9..FECC ; NFKC_SCF; 0639 # Lo [4] ARABIC LETTER AIN ISOLATED FORM..ARABIC LETTER AIN MEDIAL FORM
+FECD..FED0 ; NFKC_SCF; 063A # Lo [4] ARABIC LETTER GHAIN ISOLATED FORM..ARABIC LETTER GHAIN MEDIAL FORM
+FED1..FED4 ; NFKC_SCF; 0641 # Lo [4] ARABIC LETTER FEH ISOLATED FORM..ARABIC LETTER FEH MEDIAL FORM
+FED5..FED8 ; NFKC_SCF; 0642 # Lo [4] ARABIC LETTER QAF ISOLATED FORM..ARABIC LETTER QAF MEDIAL FORM
+FED9..FEDC ; NFKC_SCF; 0643 # Lo [4] ARABIC LETTER KAF ISOLATED FORM..ARABIC LETTER KAF MEDIAL FORM
+FEDD..FEE0 ; NFKC_SCF; 0644 # Lo [4] ARABIC LETTER LAM ISOLATED FORM..ARABIC LETTER LAM MEDIAL FORM
+FEE1..FEE4 ; NFKC_SCF; 0645 # Lo [4] ARABIC LETTER MEEM ISOLATED FORM..ARABIC LETTER MEEM MEDIAL FORM
+FEE5..FEE8 ; NFKC_SCF; 0646 # Lo [4] ARABIC LETTER NOON ISOLATED FORM..ARABIC LETTER NOON MEDIAL FORM
+FEE9..FEEC ; NFKC_SCF; 0647 # Lo [4] ARABIC LETTER HEH ISOLATED FORM..ARABIC LETTER HEH MEDIAL FORM
+FEED..FEEE ; NFKC_SCF; 0648 # Lo [2] ARABIC LETTER WAW ISOLATED FORM..ARABIC LETTER WAW FINAL FORM
+FEEF..FEF0 ; NFKC_SCF; 0649 # Lo [2] ARABIC LETTER ALEF MAKSURA ISOLATED FORM..ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEF1..FEF4 ; NFKC_SCF; 064A # Lo [4] ARABIC LETTER YEH ISOLATED FORM..ARABIC LETTER YEH MEDIAL FORM
+FEF5..FEF6 ; NFKC_SCF; 0644 0622 # Lo [2] ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF7..FEF8 ; NFKC_SCF; 0644 0623 # Lo [2] ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF9..FEFA ; NFKC_SCF; 0644 0625 # Lo [2] ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEFB..FEFC ; NFKC_SCF; 0644 0627 # Lo [2] ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF ; NFKC_SCF; # Cf ZERO WIDTH NO-BREAK SPACE
+FF01 ; NFKC_SCF; 0021 # Po FULLWIDTH EXCLAMATION MARK
+FF02 ; NFKC_SCF; 0022 # Po FULLWIDTH QUOTATION MARK
+FF03 ; NFKC_SCF; 0023 # Po FULLWIDTH NUMBER SIGN
+FF04 ; NFKC_SCF; 0024 # Sc FULLWIDTH DOLLAR SIGN
+FF05 ; NFKC_SCF; 0025 # Po FULLWIDTH PERCENT SIGN
+FF06 ; NFKC_SCF; 0026 # Po FULLWIDTH AMPERSAND
+FF07 ; NFKC_SCF; 0027 # Po FULLWIDTH APOSTROPHE
+FF08 ; NFKC_SCF; 0028 # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; NFKC_SCF; 0029 # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; NFKC_SCF; 002A # Po FULLWIDTH ASTERISK
+FF0B ; NFKC_SCF; 002B # Sm FULLWIDTH PLUS SIGN
+FF0C ; NFKC_SCF; 002C # Po FULLWIDTH COMMA
+FF0D ; NFKC_SCF; 002D # Pd FULLWIDTH HYPHEN-MINUS
+FF0E ; NFKC_SCF; 002E # Po FULLWIDTH FULL STOP
+FF0F ; NFKC_SCF; 002F # Po FULLWIDTH SOLIDUS
+FF10 ; NFKC_SCF; 0030 # Nd FULLWIDTH DIGIT ZERO
+FF11 ; NFKC_SCF; 0031 # Nd FULLWIDTH DIGIT ONE
+FF12 ; NFKC_SCF; 0032 # Nd FULLWIDTH DIGIT TWO
+FF13 ; NFKC_SCF; 0033 # Nd FULLWIDTH DIGIT THREE
+FF14 ; NFKC_SCF; 0034 # Nd FULLWIDTH DIGIT FOUR
+FF15 ; NFKC_SCF; 0035 # Nd FULLWIDTH DIGIT FIVE
+FF16 ; NFKC_SCF; 0036 # Nd FULLWIDTH DIGIT SIX
+FF17 ; NFKC_SCF; 0037 # Nd FULLWIDTH DIGIT SEVEN
+FF18 ; NFKC_SCF; 0038 # Nd FULLWIDTH DIGIT EIGHT
+FF19 ; NFKC_SCF; 0039 # Nd FULLWIDTH DIGIT NINE
+FF1A ; NFKC_SCF; 003A # Po FULLWIDTH COLON
+FF1B ; NFKC_SCF; 003B # Po FULLWIDTH SEMICOLON
+FF1C ; NFKC_SCF; 003C # Sm FULLWIDTH LESS-THAN SIGN
+FF1D ; NFKC_SCF; 003D # Sm FULLWIDTH EQUALS SIGN
+FF1E ; NFKC_SCF; 003E # Sm FULLWIDTH GREATER-THAN SIGN
+FF1F ; NFKC_SCF; 003F # Po FULLWIDTH QUESTION MARK
+FF20 ; NFKC_SCF; 0040 # Po FULLWIDTH COMMERCIAL AT
+FF21 ; NFKC_SCF; 0061 # L& FULLWIDTH LATIN CAPITAL LETTER A
+FF22 ; NFKC_SCF; 0062 # L& FULLWIDTH LATIN CAPITAL LETTER B
+FF23 ; NFKC_SCF; 0063 # L& FULLWIDTH LATIN CAPITAL LETTER C
+FF24 ; NFKC_SCF; 0064 # L& FULLWIDTH LATIN CAPITAL LETTER D
+FF25 ; NFKC_SCF; 0065 # L& FULLWIDTH LATIN CAPITAL LETTER E
+FF26 ; NFKC_SCF; 0066 # L& FULLWIDTH LATIN CAPITAL LETTER F
+FF27 ; NFKC_SCF; 0067 # L& FULLWIDTH LATIN CAPITAL LETTER G
+FF28 ; NFKC_SCF; 0068 # L& FULLWIDTH LATIN CAPITAL LETTER H
+FF29 ; NFKC_SCF; 0069 # L& FULLWIDTH LATIN CAPITAL LETTER I
+FF2A ; NFKC_SCF; 006A # L& FULLWIDTH LATIN CAPITAL LETTER J
+FF2B ; NFKC_SCF; 006B # L& FULLWIDTH LATIN CAPITAL LETTER K
+FF2C ; NFKC_SCF; 006C # L& FULLWIDTH LATIN CAPITAL LETTER L
+FF2D ; NFKC_SCF; 006D # L& FULLWIDTH LATIN CAPITAL LETTER M
+FF2E ; NFKC_SCF; 006E # L& FULLWIDTH LATIN CAPITAL LETTER N
+FF2F ; NFKC_SCF; 006F # L& FULLWIDTH LATIN CAPITAL LETTER O
+FF30 ; NFKC_SCF; 0070 # L& FULLWIDTH LATIN CAPITAL LETTER P
+FF31 ; NFKC_SCF; 0071 # L& FULLWIDTH LATIN CAPITAL LETTER Q
+FF32 ; NFKC_SCF; 0072 # L& FULLWIDTH LATIN CAPITAL LETTER R
+FF33 ; NFKC_SCF; 0073 # L& FULLWIDTH LATIN CAPITAL LETTER S
+FF34 ; NFKC_SCF; 0074 # L& FULLWIDTH LATIN CAPITAL LETTER T
+FF35 ; NFKC_SCF; 0075 # L& FULLWIDTH LATIN CAPITAL LETTER U
+FF36 ; NFKC_SCF; 0076 # L& FULLWIDTH LATIN CAPITAL LETTER V
+FF37 ; NFKC_SCF; 0077 # L& FULLWIDTH LATIN CAPITAL LETTER W
+FF38 ; NFKC_SCF; 0078 # L& FULLWIDTH LATIN CAPITAL LETTER X
+FF39 ; NFKC_SCF; 0079 # L& FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A ; NFKC_SCF; 007A # L& FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; NFKC_SCF; 005B # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; NFKC_SCF; 005C # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; NFKC_SCF; 005D # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; NFKC_SCF; 005E # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; NFKC_SCF; 005F # Pc FULLWIDTH LOW LINE
+FF40 ; NFKC_SCF; 0060 # Sk FULLWIDTH GRAVE ACCENT
+FF41 ; NFKC_SCF; 0061 # L& FULLWIDTH LATIN SMALL LETTER A
+FF42 ; NFKC_SCF; 0062 # L& FULLWIDTH LATIN SMALL LETTER B
+FF43 ; NFKC_SCF; 0063 # L& FULLWIDTH LATIN SMALL LETTER C
+FF44 ; NFKC_SCF; 0064 # L& FULLWIDTH LATIN SMALL LETTER D
+FF45 ; NFKC_SCF; 0065 # L& FULLWIDTH LATIN SMALL LETTER E
+FF46 ; NFKC_SCF; 0066 # L& FULLWIDTH LATIN SMALL LETTER F
+FF47 ; NFKC_SCF; 0067 # L& FULLWIDTH LATIN SMALL LETTER G
+FF48 ; NFKC_SCF; 0068 # L& FULLWIDTH LATIN SMALL LETTER H
+FF49 ; NFKC_SCF; 0069 # L& FULLWIDTH LATIN SMALL LETTER I
+FF4A ; NFKC_SCF; 006A # L& FULLWIDTH LATIN SMALL LETTER J
+FF4B ; NFKC_SCF; 006B # L& FULLWIDTH LATIN SMALL LETTER K
+FF4C ; NFKC_SCF; 006C # L& FULLWIDTH LATIN SMALL LETTER L
+FF4D ; NFKC_SCF; 006D # L& FULLWIDTH LATIN SMALL LETTER M
+FF4E ; NFKC_SCF; 006E # L& FULLWIDTH LATIN SMALL LETTER N
+FF4F ; NFKC_SCF; 006F # L& FULLWIDTH LATIN SMALL LETTER O
+FF50 ; NFKC_SCF; 0070 # L& FULLWIDTH LATIN SMALL LETTER P
+FF51 ; NFKC_SCF; 0071 # L& FULLWIDTH LATIN SMALL LETTER Q
+FF52 ; NFKC_SCF; 0072 # L& FULLWIDTH LATIN SMALL LETTER R
+FF53 ; NFKC_SCF; 0073 # L& FULLWIDTH LATIN SMALL LETTER S
+FF54 ; NFKC_SCF; 0074 # L& FULLWIDTH LATIN SMALL LETTER T
+FF55 ; NFKC_SCF; 0075 # L& FULLWIDTH LATIN SMALL LETTER U
+FF56 ; NFKC_SCF; 0076 # L& FULLWIDTH LATIN SMALL LETTER V
+FF57 ; NFKC_SCF; 0077 # L& FULLWIDTH LATIN SMALL LETTER W
+FF58 ; NFKC_SCF; 0078 # L& FULLWIDTH LATIN SMALL LETTER X
+FF59 ; NFKC_SCF; 0079 # L& FULLWIDTH LATIN SMALL LETTER Y
+FF5A ; NFKC_SCF; 007A # L& FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; NFKC_SCF; 007B # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; NFKC_SCF; 007C # Sm FULLWIDTH VERTICAL LINE
+FF5D ; NFKC_SCF; 007D # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; NFKC_SCF; 007E # Sm FULLWIDTH TILDE
+FF5F ; NFKC_SCF; 2985 # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; NFKC_SCF; 2986 # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; NFKC_SCF; 3002 # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; NFKC_SCF; 300C # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; NFKC_SCF; 300D # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64 ; NFKC_SCF; 3001 # Po HALFWIDTH IDEOGRAPHIC COMMA
+FF65 ; NFKC_SCF; 30FB # Po HALFWIDTH KATAKANA MIDDLE DOT
+FF66 ; NFKC_SCF; 30F2 # Lo HALFWIDTH KATAKANA LETTER WO
+FF67 ; NFKC_SCF; 30A1 # Lo HALFWIDTH KATAKANA LETTER SMALL A
+FF68 ; NFKC_SCF; 30A3 # Lo HALFWIDTH KATAKANA LETTER SMALL I
+FF69 ; NFKC_SCF; 30A5 # Lo HALFWIDTH KATAKANA LETTER SMALL U
+FF6A ; NFKC_SCF; 30A7 # Lo HALFWIDTH KATAKANA LETTER SMALL E
+FF6B ; NFKC_SCF; 30A9 # Lo HALFWIDTH KATAKANA LETTER SMALL O
+FF6C ; NFKC_SCF; 30E3 # Lo HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D ; NFKC_SCF; 30E5 # Lo HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E ; NFKC_SCF; 30E7 # Lo HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F ; NFKC_SCF; 30C3 # Lo HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; NFKC_SCF; 30FC # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71 ; NFKC_SCF; 30A2 # Lo HALFWIDTH KATAKANA LETTER A
+FF72 ; NFKC_SCF; 30A4 # Lo HALFWIDTH KATAKANA LETTER I
+FF73 ; NFKC_SCF; 30A6 # Lo HALFWIDTH KATAKANA LETTER U
+FF74 ; NFKC_SCF; 30A8 # Lo HALFWIDTH KATAKANA LETTER E
+FF75 ; NFKC_SCF; 30AA # Lo HALFWIDTH KATAKANA LETTER O
+FF76 ; NFKC_SCF; 30AB # Lo HALFWIDTH KATAKANA LETTER KA
+FF77 ; NFKC_SCF; 30AD # Lo HALFWIDTH KATAKANA LETTER KI
+FF78 ; NFKC_SCF; 30AF # Lo HALFWIDTH KATAKANA LETTER KU
+FF79 ; NFKC_SCF; 30B1 # Lo HALFWIDTH KATAKANA LETTER KE
+FF7A ; NFKC_SCF; 30B3 # Lo HALFWIDTH KATAKANA LETTER KO
+FF7B ; NFKC_SCF; 30B5 # Lo HALFWIDTH KATAKANA LETTER SA
+FF7C ; NFKC_SCF; 30B7 # Lo HALFWIDTH KATAKANA LETTER SI
+FF7D ; NFKC_SCF; 30B9 # Lo HALFWIDTH KATAKANA LETTER SU
+FF7E ; NFKC_SCF; 30BB # Lo HALFWIDTH KATAKANA LETTER SE
+FF7F ; NFKC_SCF; 30BD # Lo HALFWIDTH KATAKANA LETTER SO
+FF80 ; NFKC_SCF; 30BF # Lo HALFWIDTH KATAKANA LETTER TA
+FF81 ; NFKC_SCF; 30C1 # Lo HALFWIDTH KATAKANA LETTER TI
+FF82 ; NFKC_SCF; 30C4 # Lo HALFWIDTH KATAKANA LETTER TU
+FF83 ; NFKC_SCF; 30C6 # Lo HALFWIDTH KATAKANA LETTER TE
+FF84 ; NFKC_SCF; 30C8 # Lo HALFWIDTH KATAKANA LETTER TO
+FF85 ; NFKC_SCF; 30CA # Lo HALFWIDTH KATAKANA LETTER NA
+FF86 ; NFKC_SCF; 30CB # Lo HALFWIDTH KATAKANA LETTER NI
+FF87 ; NFKC_SCF; 30CC # Lo HALFWIDTH KATAKANA LETTER NU
+FF88 ; NFKC_SCF; 30CD # Lo HALFWIDTH KATAKANA LETTER NE
+FF89 ; NFKC_SCF; 30CE # Lo HALFWIDTH KATAKANA LETTER NO
+FF8A ; NFKC_SCF; 30CF # Lo HALFWIDTH KATAKANA LETTER HA
+FF8B ; NFKC_SCF; 30D2 # Lo HALFWIDTH KATAKANA LETTER HI
+FF8C ; NFKC_SCF; 30D5 # Lo HALFWIDTH KATAKANA LETTER HU
+FF8D ; NFKC_SCF; 30D8 # Lo HALFWIDTH KATAKANA LETTER HE
+FF8E ; NFKC_SCF; 30DB # Lo HALFWIDTH KATAKANA LETTER HO
+FF8F ; NFKC_SCF; 30DE # Lo HALFWIDTH KATAKANA LETTER MA
+FF90 ; NFKC_SCF; 30DF # Lo HALFWIDTH KATAKANA LETTER MI
+FF91 ; NFKC_SCF; 30E0 # Lo HALFWIDTH KATAKANA LETTER MU
+FF92 ; NFKC_SCF; 30E1 # Lo HALFWIDTH KATAKANA LETTER ME
+FF93 ; NFKC_SCF; 30E2 # Lo HALFWIDTH KATAKANA LETTER MO
+FF94 ; NFKC_SCF; 30E4 # Lo HALFWIDTH KATAKANA LETTER YA
+FF95 ; NFKC_SCF; 30E6 # Lo HALFWIDTH KATAKANA LETTER YU
+FF96 ; NFKC_SCF; 30E8 # Lo HALFWIDTH KATAKANA LETTER YO
+FF97 ; NFKC_SCF; 30E9 # Lo HALFWIDTH KATAKANA LETTER RA
+FF98 ; NFKC_SCF; 30EA # Lo HALFWIDTH KATAKANA LETTER RI
+FF99 ; NFKC_SCF; 30EB # Lo HALFWIDTH KATAKANA LETTER RU
+FF9A ; NFKC_SCF; 30EC # Lo HALFWIDTH KATAKANA LETTER RE
+FF9B ; NFKC_SCF; 30ED # Lo HALFWIDTH KATAKANA LETTER RO
+FF9C ; NFKC_SCF; 30EF # Lo HALFWIDTH KATAKANA LETTER WA
+FF9D ; NFKC_SCF; 30F3 # Lo HALFWIDTH KATAKANA LETTER N
+FF9E ; NFKC_SCF; 3099 # Lm HALFWIDTH KATAKANA VOICED SOUND MARK
+FF9F ; NFKC_SCF; 309A # Lm HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0 ; NFKC_SCF; # Lo HALFWIDTH HANGUL FILLER
+FFA1 ; NFKC_SCF; 1100 # Lo HALFWIDTH HANGUL LETTER KIYEOK
+FFA2 ; NFKC_SCF; 1101 # Lo HALFWIDTH HANGUL LETTER SSANGKIYEOK
+FFA3 ; NFKC_SCF; 11AA # Lo HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+FFA4 ; NFKC_SCF; 1102 # Lo HALFWIDTH HANGUL LETTER NIEUN
+FFA5 ; NFKC_SCF; 11AC # Lo HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+FFA6 ; NFKC_SCF; 11AD # Lo HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+FFA7 ; NFKC_SCF; 1103 # Lo HALFWIDTH HANGUL LETTER TIKEUT
+FFA8 ; NFKC_SCF; 1104 # Lo HALFWIDTH HANGUL LETTER SSANGTIKEUT
+FFA9 ; NFKC_SCF; 1105 # Lo HALFWIDTH HANGUL LETTER RIEUL
+FFAA ; NFKC_SCF; 11B0 # Lo HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+FFAB ; NFKC_SCF; 11B1 # Lo HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+FFAC ; NFKC_SCF; 11B2 # Lo HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+FFAD ; NFKC_SCF; 11B3 # Lo HALFWIDTH HANGUL LETTER RIEUL-SIOS
+FFAE ; NFKC_SCF; 11B4 # Lo HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+FFAF ; NFKC_SCF; 11B5 # Lo HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+FFB0 ; NFKC_SCF; 111A # Lo HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+FFB1 ; NFKC_SCF; 1106 # Lo HALFWIDTH HANGUL LETTER MIEUM
+FFB2 ; NFKC_SCF; 1107 # Lo HALFWIDTH HANGUL LETTER PIEUP
+FFB3 ; NFKC_SCF; 1108 # Lo HALFWIDTH HANGUL LETTER SSANGPIEUP
+FFB4 ; NFKC_SCF; 1121 # Lo HALFWIDTH HANGUL LETTER PIEUP-SIOS
+FFB5 ; NFKC_SCF; 1109 # Lo HALFWIDTH HANGUL LETTER SIOS
+FFB6 ; NFKC_SCF; 110A # Lo HALFWIDTH HANGUL LETTER SSANGSIOS
+FFB7 ; NFKC_SCF; 110B # Lo HALFWIDTH HANGUL LETTER IEUNG
+FFB8 ; NFKC_SCF; 110C # Lo HALFWIDTH HANGUL LETTER CIEUC
+FFB9 ; NFKC_SCF; 110D # Lo HALFWIDTH HANGUL LETTER SSANGCIEUC
+FFBA ; NFKC_SCF; 110E # Lo HALFWIDTH HANGUL LETTER CHIEUCH
+FFBB ; NFKC_SCF; 110F # Lo HALFWIDTH HANGUL LETTER KHIEUKH
+FFBC ; NFKC_SCF; 1110 # Lo HALFWIDTH HANGUL LETTER THIEUTH
+FFBD ; NFKC_SCF; 1111 # Lo HALFWIDTH HANGUL LETTER PHIEUPH
+FFBE ; NFKC_SCF; 1112 # Lo HALFWIDTH HANGUL LETTER HIEUH
+FFC2 ; NFKC_SCF; 1161 # Lo HALFWIDTH HANGUL LETTER A
+FFC3 ; NFKC_SCF; 1162 # Lo HALFWIDTH HANGUL LETTER AE
+FFC4 ; NFKC_SCF; 1163 # Lo HALFWIDTH HANGUL LETTER YA
+FFC5 ; NFKC_SCF; 1164 # Lo HALFWIDTH HANGUL LETTER YAE
+FFC6 ; NFKC_SCF; 1165 # Lo HALFWIDTH HANGUL LETTER EO
+FFC7 ; NFKC_SCF; 1166 # Lo HALFWIDTH HANGUL LETTER E
+FFCA ; NFKC_SCF; 1167 # Lo HALFWIDTH HANGUL LETTER YEO
+FFCB ; NFKC_SCF; 1168 # Lo HALFWIDTH HANGUL LETTER YE
+FFCC ; NFKC_SCF; 1169 # Lo HALFWIDTH HANGUL LETTER O
+FFCD ; NFKC_SCF; 116A # Lo HALFWIDTH HANGUL LETTER WA
+FFCE ; NFKC_SCF; 116B # Lo HALFWIDTH HANGUL LETTER WAE
+FFCF ; NFKC_SCF; 116C # Lo HALFWIDTH HANGUL LETTER OE
+FFD2 ; NFKC_SCF; 116D # Lo HALFWIDTH HANGUL LETTER YO
+FFD3 ; NFKC_SCF; 116E # Lo HALFWIDTH HANGUL LETTER U
+FFD4 ; NFKC_SCF; 116F # Lo HALFWIDTH HANGUL LETTER WEO
+FFD5 ; NFKC_SCF; 1170 # Lo HALFWIDTH HANGUL LETTER WE
+FFD6 ; NFKC_SCF; 1171 # Lo HALFWIDTH HANGUL LETTER WI
+FFD7 ; NFKC_SCF; 1172 # Lo HALFWIDTH HANGUL LETTER YU
+FFDA ; NFKC_SCF; 1173 # Lo HALFWIDTH HANGUL LETTER EU
+FFDB ; NFKC_SCF; 1174 # Lo HALFWIDTH HANGUL LETTER YI
+FFDC ; NFKC_SCF; 1175 # Lo HALFWIDTH HANGUL LETTER I
+FFE0 ; NFKC_SCF; 00A2 # Sc FULLWIDTH CENT SIGN
+FFE1 ; NFKC_SCF; 00A3 # Sc FULLWIDTH POUND SIGN
+FFE2 ; NFKC_SCF; 00AC # Sm FULLWIDTH NOT SIGN
+FFE3 ; NFKC_SCF; 0020 0304 # Sk FULLWIDTH MACRON
+FFE4 ; NFKC_SCF; 00A6 # So FULLWIDTH BROKEN BAR
+FFE5 ; NFKC_SCF; 00A5 # Sc FULLWIDTH YEN SIGN
+FFE6 ; NFKC_SCF; 20A9 # Sc FULLWIDTH WON SIGN
+FFE8 ; NFKC_SCF; 2502 # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9 ; NFKC_SCF; 2190 # Sm HALFWIDTH LEFTWARDS ARROW
+FFEA ; NFKC_SCF; 2191 # Sm HALFWIDTH UPWARDS ARROW
+FFEB ; NFKC_SCF; 2192 # Sm HALFWIDTH RIGHTWARDS ARROW
+FFEC ; NFKC_SCF; 2193 # Sm HALFWIDTH DOWNWARDS ARROW
+FFED ; NFKC_SCF; 25A0 # So HALFWIDTH BLACK SQUARE
+FFEE ; NFKC_SCF; 25CB # So HALFWIDTH WHITE CIRCLE
+FFF0..FFF8 ; NFKC_SCF; # Cn [9] <reserved-FFF0>..<reserved-FFF8>
+10400 ; NFKC_SCF; 10428 # L& DESERET CAPITAL LETTER LONG I
+10401 ; NFKC_SCF; 10429 # L& DESERET CAPITAL LETTER LONG E
+10402 ; NFKC_SCF; 1042A # L& DESERET CAPITAL LETTER LONG A
+10403 ; NFKC_SCF; 1042B # L& DESERET CAPITAL LETTER LONG AH
+10404 ; NFKC_SCF; 1042C # L& DESERET CAPITAL LETTER LONG O
+10405 ; NFKC_SCF; 1042D # L& DESERET CAPITAL LETTER LONG OO
+10406 ; NFKC_SCF; 1042E # L& DESERET CAPITAL LETTER SHORT I
+10407 ; NFKC_SCF; 1042F # L& DESERET CAPITAL LETTER SHORT E
+10408 ; NFKC_SCF; 10430 # L& DESERET CAPITAL LETTER SHORT A
+10409 ; NFKC_SCF; 10431 # L& DESERET CAPITAL LETTER SHORT AH
+1040A ; NFKC_SCF; 10432 # L& DESERET CAPITAL LETTER SHORT O
+1040B ; NFKC_SCF; 10433 # L& DESERET CAPITAL LETTER SHORT OO
+1040C ; NFKC_SCF; 10434 # L& DESERET CAPITAL LETTER AY
+1040D ; NFKC_SCF; 10435 # L& DESERET CAPITAL LETTER OW
+1040E ; NFKC_SCF; 10436 # L& DESERET CAPITAL LETTER WU
+1040F ; NFKC_SCF; 10437 # L& DESERET CAPITAL LETTER YEE
+10410 ; NFKC_SCF; 10438 # L& DESERET CAPITAL LETTER H
+10411 ; NFKC_SCF; 10439 # L& DESERET CAPITAL LETTER PEE
+10412 ; NFKC_SCF; 1043A # L& DESERET CAPITAL LETTER BEE
+10413 ; NFKC_SCF; 1043B # L& DESERET CAPITAL LETTER TEE
+10414 ; NFKC_SCF; 1043C # L& DESERET CAPITAL LETTER DEE
+10415 ; NFKC_SCF; 1043D # L& DESERET CAPITAL LETTER CHEE
+10416 ; NFKC_SCF; 1043E # L& DESERET CAPITAL LETTER JEE
+10417 ; NFKC_SCF; 1043F # L& DESERET CAPITAL LETTER KAY
+10418 ; NFKC_SCF; 10440 # L& DESERET CAPITAL LETTER GAY
+10419 ; NFKC_SCF; 10441 # L& DESERET CAPITAL LETTER EF
+1041A ; NFKC_SCF; 10442 # L& DESERET CAPITAL LETTER VEE
+1041B ; NFKC_SCF; 10443 # L& DESERET CAPITAL LETTER ETH
+1041C ; NFKC_SCF; 10444 # L& DESERET CAPITAL LETTER THEE
+1041D ; NFKC_SCF; 10445 # L& DESERET CAPITAL LETTER ES
+1041E ; NFKC_SCF; 10446 # L& DESERET CAPITAL LETTER ZEE
+1041F ; NFKC_SCF; 10447 # L& DESERET CAPITAL LETTER ESH
+10420 ; NFKC_SCF; 10448 # L& DESERET CAPITAL LETTER ZHEE
+10421 ; NFKC_SCF; 10449 # L& DESERET CAPITAL LETTER ER
+10422 ; NFKC_SCF; 1044A # L& DESERET CAPITAL LETTER EL
+10423 ; NFKC_SCF; 1044B # L& DESERET CAPITAL LETTER EM
+10424 ; NFKC_SCF; 1044C # L& DESERET CAPITAL LETTER EN
+10425 ; NFKC_SCF; 1044D # L& DESERET CAPITAL LETTER ENG
+10426 ; NFKC_SCF; 1044E # L& DESERET CAPITAL LETTER OI
+10427 ; NFKC_SCF; 1044F # L& DESERET CAPITAL LETTER EW
+104B0 ; NFKC_SCF; 104D8 # L& OSAGE CAPITAL LETTER A
+104B1 ; NFKC_SCF; 104D9 # L& OSAGE CAPITAL LETTER AI
+104B2 ; NFKC_SCF; 104DA # L& OSAGE CAPITAL LETTER AIN
+104B3 ; NFKC_SCF; 104DB # L& OSAGE CAPITAL LETTER AH
+104B4 ; NFKC_SCF; 104DC # L& OSAGE CAPITAL LETTER BRA
+104B5 ; NFKC_SCF; 104DD # L& OSAGE CAPITAL LETTER CHA
+104B6 ; NFKC_SCF; 104DE # L& OSAGE CAPITAL LETTER EHCHA
+104B7 ; NFKC_SCF; 104DF # L& OSAGE CAPITAL LETTER E
+104B8 ; NFKC_SCF; 104E0 # L& OSAGE CAPITAL LETTER EIN
+104B9 ; NFKC_SCF; 104E1 # L& OSAGE CAPITAL LETTER HA
+104BA ; NFKC_SCF; 104E2 # L& OSAGE CAPITAL LETTER HYA
+104BB ; NFKC_SCF; 104E3 # L& OSAGE CAPITAL LETTER I
+104BC ; NFKC_SCF; 104E4 # L& OSAGE CAPITAL LETTER KA
+104BD ; NFKC_SCF; 104E5 # L& OSAGE CAPITAL LETTER EHKA
+104BE ; NFKC_SCF; 104E6 # L& OSAGE CAPITAL LETTER KYA
+104BF ; NFKC_SCF; 104E7 # L& OSAGE CAPITAL LETTER LA
+104C0 ; NFKC_SCF; 104E8 # L& OSAGE CAPITAL LETTER MA
+104C1 ; NFKC_SCF; 104E9 # L& OSAGE CAPITAL LETTER NA
+104C2 ; NFKC_SCF; 104EA # L& OSAGE CAPITAL LETTER O
+104C3 ; NFKC_SCF; 104EB # L& OSAGE CAPITAL LETTER OIN
+104C4 ; NFKC_SCF; 104EC # L& OSAGE CAPITAL LETTER PA
+104C5 ; NFKC_SCF; 104ED # L& OSAGE CAPITAL LETTER EHPA
+104C6 ; NFKC_SCF; 104EE # L& OSAGE CAPITAL LETTER SA
+104C7 ; NFKC_SCF; 104EF # L& OSAGE CAPITAL LETTER SHA
+104C8 ; NFKC_SCF; 104F0 # L& OSAGE CAPITAL LETTER TA
+104C9 ; NFKC_SCF; 104F1 # L& OSAGE CAPITAL LETTER EHTA
+104CA ; NFKC_SCF; 104F2 # L& OSAGE CAPITAL LETTER TSA
+104CB ; NFKC_SCF; 104F3 # L& OSAGE CAPITAL LETTER EHTSA
+104CC ; NFKC_SCF; 104F4 # L& OSAGE CAPITAL LETTER TSHA
+104CD ; NFKC_SCF; 104F5 # L& OSAGE CAPITAL LETTER DHA
+104CE ; NFKC_SCF; 104F6 # L& OSAGE CAPITAL LETTER U
+104CF ; NFKC_SCF; 104F7 # L& OSAGE CAPITAL LETTER WA
+104D0 ; NFKC_SCF; 104F8 # L& OSAGE CAPITAL LETTER KHA
+104D1 ; NFKC_SCF; 104F9 # L& OSAGE CAPITAL LETTER GHA
+104D2 ; NFKC_SCF; 104FA # L& OSAGE CAPITAL LETTER ZA
+104D3 ; NFKC_SCF; 104FB # L& OSAGE CAPITAL LETTER ZHA
+10570 ; NFKC_SCF; 10597 # L& VITHKUQI CAPITAL LETTER A
+10571 ; NFKC_SCF; 10598 # L& VITHKUQI CAPITAL LETTER BBE
+10572 ; NFKC_SCF; 10599 # L& VITHKUQI CAPITAL LETTER BE
+10573 ; NFKC_SCF; 1059A # L& VITHKUQI CAPITAL LETTER CE
+10574 ; NFKC_SCF; 1059B # L& VITHKUQI CAPITAL LETTER CHE
+10575 ; NFKC_SCF; 1059C # L& VITHKUQI CAPITAL LETTER DE
+10576 ; NFKC_SCF; 1059D # L& VITHKUQI CAPITAL LETTER DHE
+10577 ; NFKC_SCF; 1059E # L& VITHKUQI CAPITAL LETTER EI
+10578 ; NFKC_SCF; 1059F # L& VITHKUQI CAPITAL LETTER E
+10579 ; NFKC_SCF; 105A0 # L& VITHKUQI CAPITAL LETTER FE
+1057A ; NFKC_SCF; 105A1 # L& VITHKUQI CAPITAL LETTER GA
+1057C ; NFKC_SCF; 105A3 # L& VITHKUQI CAPITAL LETTER HA
+1057D ; NFKC_SCF; 105A4 # L& VITHKUQI CAPITAL LETTER HHA
+1057E ; NFKC_SCF; 105A5 # L& VITHKUQI CAPITAL LETTER I
+1057F ; NFKC_SCF; 105A6 # L& VITHKUQI CAPITAL LETTER IJE
+10580 ; NFKC_SCF; 105A7 # L& VITHKUQI CAPITAL LETTER JE
+10581 ; NFKC_SCF; 105A8 # L& VITHKUQI CAPITAL LETTER KA
+10582 ; NFKC_SCF; 105A9 # L& VITHKUQI CAPITAL LETTER LA
+10583 ; NFKC_SCF; 105AA # L& VITHKUQI CAPITAL LETTER LLA
+10584 ; NFKC_SCF; 105AB # L& VITHKUQI CAPITAL LETTER ME
+10585 ; NFKC_SCF; 105AC # L& VITHKUQI CAPITAL LETTER NE
+10586 ; NFKC_SCF; 105AD # L& VITHKUQI CAPITAL LETTER NJE
+10587 ; NFKC_SCF; 105AE # L& VITHKUQI CAPITAL LETTER O
+10588 ; NFKC_SCF; 105AF # L& VITHKUQI CAPITAL LETTER PE
+10589 ; NFKC_SCF; 105B0 # L& VITHKUQI CAPITAL LETTER QA
+1058A ; NFKC_SCF; 105B1 # L& VITHKUQI CAPITAL LETTER RE
+1058C ; NFKC_SCF; 105B3 # L& VITHKUQI CAPITAL LETTER SE
+1058D ; NFKC_SCF; 105B4 # L& VITHKUQI CAPITAL LETTER SHE
+1058E ; NFKC_SCF; 105B5 # L& VITHKUQI CAPITAL LETTER TE
+1058F ; NFKC_SCF; 105B6 # L& VITHKUQI CAPITAL LETTER THE
+10590 ; NFKC_SCF; 105B7 # L& VITHKUQI CAPITAL LETTER U
+10591 ; NFKC_SCF; 105B8 # L& VITHKUQI CAPITAL LETTER VE
+10592 ; NFKC_SCF; 105B9 # L& VITHKUQI CAPITAL LETTER XE
+10594 ; NFKC_SCF; 105BB # L& VITHKUQI CAPITAL LETTER Y
+10595 ; NFKC_SCF; 105BC # L& VITHKUQI CAPITAL LETTER ZE
+10781 ; NFKC_SCF; 02D0 # Lm MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON
+10782 ; NFKC_SCF; 02D1 # Lm MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
+10783 ; NFKC_SCF; 00E6 # Lm MODIFIER LETTER SMALL AE
+10784 ; NFKC_SCF; 0299 # Lm MODIFIER LETTER SMALL CAPITAL B
+10785 ; NFKC_SCF; 0253 # Lm MODIFIER LETTER SMALL B WITH HOOK
+10787 ; NFKC_SCF; 02A3 # Lm MODIFIER LETTER SMALL DZ DIGRAPH
+10788 ; NFKC_SCF; AB66 # Lm MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK
+10789 ; NFKC_SCF; 02A5 # Lm MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL
+1078A ; NFKC_SCF; 02A4 # Lm MODIFIER LETTER SMALL DEZH DIGRAPH
+1078B ; NFKC_SCF; 0256 # Lm MODIFIER LETTER SMALL D WITH TAIL
+1078C ; NFKC_SCF; 0257 # Lm MODIFIER LETTER SMALL D WITH HOOK
+1078D ; NFKC_SCF; 1D91 # Lm MODIFIER LETTER SMALL D WITH HOOK AND TAIL
+1078E ; NFKC_SCF; 0258 # Lm MODIFIER LETTER SMALL REVERSED E
+1078F ; NFKC_SCF; 025E # Lm MODIFIER LETTER SMALL CLOSED REVERSED OPEN E
+10790 ; NFKC_SCF; 02A9 # Lm MODIFIER LETTER SMALL FENG DIGRAPH
+10791 ; NFKC_SCF; 0264 # Lm MODIFIER LETTER SMALL RAMS HORN
+10792 ; NFKC_SCF; 0262 # Lm MODIFIER LETTER SMALL CAPITAL G
+10793 ; NFKC_SCF; 0260 # Lm MODIFIER LETTER SMALL G WITH HOOK
+10794 ; NFKC_SCF; 029B # Lm MODIFIER LETTER SMALL CAPITAL G WITH HOOK
+10795 ; NFKC_SCF; 0127 # Lm MODIFIER LETTER SMALL H WITH STROKE
+10796 ; NFKC_SCF; 029C # Lm MODIFIER LETTER SMALL CAPITAL H
+10797 ; NFKC_SCF; 0267 # Lm MODIFIER LETTER SMALL HENG WITH HOOK
+10798 ; NFKC_SCF; 0284 # Lm MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK
+10799 ; NFKC_SCF; 02AA # Lm MODIFIER LETTER SMALL LS DIGRAPH
+1079A ; NFKC_SCF; 02AB # Lm MODIFIER LETTER SMALL LZ DIGRAPH
+1079B ; NFKC_SCF; 026C # Lm MODIFIER LETTER SMALL L WITH BELT
+1079C ; NFKC_SCF; 1DF04 # Lm MODIFIER LETTER SMALL CAPITAL L WITH BELT
+1079D ; NFKC_SCF; A78E # Lm MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT
+1079E ; NFKC_SCF; 026E # Lm MODIFIER LETTER SMALL LEZH
+1079F ; NFKC_SCF; 1DF05 # Lm MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK
+107A0 ; NFKC_SCF; 028E # Lm MODIFIER LETTER SMALL TURNED Y
+107A1 ; NFKC_SCF; 1DF06 # Lm MODIFIER LETTER SMALL TURNED Y WITH BELT
+107A2 ; NFKC_SCF; 00F8 # Lm MODIFIER LETTER SMALL O WITH STROKE
+107A3 ; NFKC_SCF; 0276 # Lm MODIFIER LETTER SMALL CAPITAL OE
+107A4 ; NFKC_SCF; 0277 # Lm MODIFIER LETTER SMALL CLOSED OMEGA
+107A5 ; NFKC_SCF; 0071 # Lm MODIFIER LETTER SMALL Q
+107A6 ; NFKC_SCF; 027A # Lm MODIFIER LETTER SMALL TURNED R WITH LONG LEG
+107A7 ; NFKC_SCF; 1DF08 # Lm MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK
+107A8 ; NFKC_SCF; 027D # Lm MODIFIER LETTER SMALL R WITH TAIL
+107A9 ; NFKC_SCF; 027E # Lm MODIFIER LETTER SMALL R WITH FISHHOOK
+107AA ; NFKC_SCF; 0280 # Lm MODIFIER LETTER SMALL CAPITAL R
+107AB ; NFKC_SCF; 02A8 # Lm MODIFIER LETTER SMALL TC DIGRAPH WITH CURL
+107AC ; NFKC_SCF; 02A6 # Lm MODIFIER LETTER SMALL TS DIGRAPH
+107AD ; NFKC_SCF; AB67 # Lm MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK
+107AE ; NFKC_SCF; 02A7 # Lm MODIFIER LETTER SMALL TESH DIGRAPH
+107AF ; NFKC_SCF; 0288 # Lm MODIFIER LETTER SMALL T WITH RETROFLEX HOOK
+107B0 ; NFKC_SCF; 2C71 # Lm MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2 ; NFKC_SCF; 028F # Lm MODIFIER LETTER SMALL CAPITAL Y
+107B3 ; NFKC_SCF; 02A1 # Lm MODIFIER LETTER GLOTTAL STOP WITH STROKE
+107B4 ; NFKC_SCF; 02A2 # Lm MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE
+107B5 ; NFKC_SCF; 0298 # Lm MODIFIER LETTER BILABIAL CLICK
+107B6 ; NFKC_SCF; 01C0 # Lm MODIFIER LETTER DENTAL CLICK
+107B7 ; NFKC_SCF; 01C1 # Lm MODIFIER LETTER LATERAL CLICK
+107B8 ; NFKC_SCF; 01C2 # Lm MODIFIER LETTER ALVEOLAR CLICK
+107B9 ; NFKC_SCF; 1DF0A # Lm MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+107BA ; NFKC_SCF; 1DF1E # Lm MODIFIER LETTER SMALL S WITH CURL
+10C80 ; NFKC_SCF; 10CC0 # L& OLD HUNGARIAN CAPITAL LETTER A
+10C81 ; NFKC_SCF; 10CC1 # L& OLD HUNGARIAN CAPITAL LETTER AA
+10C82 ; NFKC_SCF; 10CC2 # L& OLD HUNGARIAN CAPITAL LETTER EB
+10C83 ; NFKC_SCF; 10CC3 # L& OLD HUNGARIAN CAPITAL LETTER AMB
+10C84 ; NFKC_SCF; 10CC4 # L& OLD HUNGARIAN CAPITAL LETTER EC
+10C85 ; NFKC_SCF; 10CC5 # L& OLD HUNGARIAN CAPITAL LETTER ENC
+10C86 ; NFKC_SCF; 10CC6 # L& OLD HUNGARIAN CAPITAL LETTER ECS
+10C87 ; NFKC_SCF; 10CC7 # L& OLD HUNGARIAN CAPITAL LETTER ED
+10C88 ; NFKC_SCF; 10CC8 # L& OLD HUNGARIAN CAPITAL LETTER AND
+10C89 ; NFKC_SCF; 10CC9 # L& OLD HUNGARIAN CAPITAL LETTER E
+10C8A ; NFKC_SCF; 10CCA # L& OLD HUNGARIAN CAPITAL LETTER CLOSE E
+10C8B ; NFKC_SCF; 10CCB # L& OLD HUNGARIAN CAPITAL LETTER EE
+10C8C ; NFKC_SCF; 10CCC # L& OLD HUNGARIAN CAPITAL LETTER EF
+10C8D ; NFKC_SCF; 10CCD # L& OLD HUNGARIAN CAPITAL LETTER EG
+10C8E ; NFKC_SCF; 10CCE # L& OLD HUNGARIAN CAPITAL LETTER EGY
+10C8F ; NFKC_SCF; 10CCF # L& OLD HUNGARIAN CAPITAL LETTER EH
+10C90 ; NFKC_SCF; 10CD0 # L& OLD HUNGARIAN CAPITAL LETTER I
+10C91 ; NFKC_SCF; 10CD1 # L& OLD HUNGARIAN CAPITAL LETTER II
+10C92 ; NFKC_SCF; 10CD2 # L& OLD HUNGARIAN CAPITAL LETTER EJ
+10C93 ; NFKC_SCF; 10CD3 # L& OLD HUNGARIAN CAPITAL LETTER EK
+10C94 ; NFKC_SCF; 10CD4 # L& OLD HUNGARIAN CAPITAL LETTER AK
+10C95 ; NFKC_SCF; 10CD5 # L& OLD HUNGARIAN CAPITAL LETTER UNK
+10C96 ; NFKC_SCF; 10CD6 # L& OLD HUNGARIAN CAPITAL LETTER EL
+10C97 ; NFKC_SCF; 10CD7 # L& OLD HUNGARIAN CAPITAL LETTER ELY
+10C98 ; NFKC_SCF; 10CD8 # L& OLD HUNGARIAN CAPITAL LETTER EM
+10C99 ; NFKC_SCF; 10CD9 # L& OLD HUNGARIAN CAPITAL LETTER EN
+10C9A ; NFKC_SCF; 10CDA # L& OLD HUNGARIAN CAPITAL LETTER ENY
+10C9B ; NFKC_SCF; 10CDB # L& OLD HUNGARIAN CAPITAL LETTER O
+10C9C ; NFKC_SCF; 10CDC # L& OLD HUNGARIAN CAPITAL LETTER OO
+10C9D ; NFKC_SCF; 10CDD # L& OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE
+10C9E ; NFKC_SCF; 10CDE # L& OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE
+10C9F ; NFKC_SCF; 10CDF # L& OLD HUNGARIAN CAPITAL LETTER OEE
+10CA0 ; NFKC_SCF; 10CE0 # L& OLD HUNGARIAN CAPITAL LETTER EP
+10CA1 ; NFKC_SCF; 10CE1 # L& OLD HUNGARIAN CAPITAL LETTER EMP
+10CA2 ; NFKC_SCF; 10CE2 # L& OLD HUNGARIAN CAPITAL LETTER ER
+10CA3 ; NFKC_SCF; 10CE3 # L& OLD HUNGARIAN CAPITAL LETTER SHORT ER
+10CA4 ; NFKC_SCF; 10CE4 # L& OLD HUNGARIAN CAPITAL LETTER ES
+10CA5 ; NFKC_SCF; 10CE5 # L& OLD HUNGARIAN CAPITAL LETTER ESZ
+10CA6 ; NFKC_SCF; 10CE6 # L& OLD HUNGARIAN CAPITAL LETTER ET
+10CA7 ; NFKC_SCF; 10CE7 # L& OLD HUNGARIAN CAPITAL LETTER ENT
+10CA8 ; NFKC_SCF; 10CE8 # L& OLD HUNGARIAN CAPITAL LETTER ETY
+10CA9 ; NFKC_SCF; 10CE9 # L& OLD HUNGARIAN CAPITAL LETTER ECH
+10CAA ; NFKC_SCF; 10CEA # L& OLD HUNGARIAN CAPITAL LETTER U
+10CAB ; NFKC_SCF; 10CEB # L& OLD HUNGARIAN CAPITAL LETTER UU
+10CAC ; NFKC_SCF; 10CEC # L& OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE
+10CAD ; NFKC_SCF; 10CED # L& OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE
+10CAE ; NFKC_SCF; 10CEE # L& OLD HUNGARIAN CAPITAL LETTER EV
+10CAF ; NFKC_SCF; 10CEF # L& OLD HUNGARIAN CAPITAL LETTER EZ
+10CB0 ; NFKC_SCF; 10CF0 # L& OLD HUNGARIAN CAPITAL LETTER EZS
+10CB1 ; NFKC_SCF; 10CF1 # L& OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN
+10CB2 ; NFKC_SCF; 10CF2 # L& OLD HUNGARIAN CAPITAL LETTER US
+118A0 ; NFKC_SCF; 118C0 # L& WARANG CITI CAPITAL LETTER NGAA
+118A1 ; NFKC_SCF; 118C1 # L& WARANG CITI CAPITAL LETTER A
+118A2 ; NFKC_SCF; 118C2 # L& WARANG CITI CAPITAL LETTER WI
+118A3 ; NFKC_SCF; 118C3 # L& WARANG CITI CAPITAL LETTER YU
+118A4 ; NFKC_SCF; 118C4 # L& WARANG CITI CAPITAL LETTER YA
+118A5 ; NFKC_SCF; 118C5 # L& WARANG CITI CAPITAL LETTER YO
+118A6 ; NFKC_SCF; 118C6 # L& WARANG CITI CAPITAL LETTER II
+118A7 ; NFKC_SCF; 118C7 # L& WARANG CITI CAPITAL LETTER UU
+118A8 ; NFKC_SCF; 118C8 # L& WARANG CITI CAPITAL LETTER E
+118A9 ; NFKC_SCF; 118C9 # L& WARANG CITI CAPITAL LETTER O
+118AA ; NFKC_SCF; 118CA # L& WARANG CITI CAPITAL LETTER ANG
+118AB ; NFKC_SCF; 118CB # L& WARANG CITI CAPITAL LETTER GA
+118AC ; NFKC_SCF; 118CC # L& WARANG CITI CAPITAL LETTER KO
+118AD ; NFKC_SCF; 118CD # L& WARANG CITI CAPITAL LETTER ENY
+118AE ; NFKC_SCF; 118CE # L& WARANG CITI CAPITAL LETTER YUJ
+118AF ; NFKC_SCF; 118CF # L& WARANG CITI CAPITAL LETTER UC
+118B0 ; NFKC_SCF; 118D0 # L& WARANG CITI CAPITAL LETTER ENN
+118B1 ; NFKC_SCF; 118D1 # L& WARANG CITI CAPITAL LETTER ODD
+118B2 ; NFKC_SCF; 118D2 # L& WARANG CITI CAPITAL LETTER TTE
+118B3 ; NFKC_SCF; 118D3 # L& WARANG CITI CAPITAL LETTER NUNG
+118B4 ; NFKC_SCF; 118D4 # L& WARANG CITI CAPITAL LETTER DA
+118B5 ; NFKC_SCF; 118D5 # L& WARANG CITI CAPITAL LETTER AT
+118B6 ; NFKC_SCF; 118D6 # L& WARANG CITI CAPITAL LETTER AM
+118B7 ; NFKC_SCF; 118D7 # L& WARANG CITI CAPITAL LETTER BU
+118B8 ; NFKC_SCF; 118D8 # L& WARANG CITI CAPITAL LETTER PU
+118B9 ; NFKC_SCF; 118D9 # L& WARANG CITI CAPITAL LETTER HIYO
+118BA ; NFKC_SCF; 118DA # L& WARANG CITI CAPITAL LETTER HOLO
+118BB ; NFKC_SCF; 118DB # L& WARANG CITI CAPITAL LETTER HORR
+118BC ; NFKC_SCF; 118DC # L& WARANG CITI CAPITAL LETTER HAR
+118BD ; NFKC_SCF; 118DD # L& WARANG CITI CAPITAL LETTER SSUU
+118BE ; NFKC_SCF; 118DE # L& WARANG CITI CAPITAL LETTER SII
+118BF ; NFKC_SCF; 118DF # L& WARANG CITI CAPITAL LETTER VIYO
+16E40 ; NFKC_SCF; 16E60 # L& MEDEFAIDRIN CAPITAL LETTER M
+16E41 ; NFKC_SCF; 16E61 # L& MEDEFAIDRIN CAPITAL LETTER S
+16E42 ; NFKC_SCF; 16E62 # L& MEDEFAIDRIN CAPITAL LETTER V
+16E43 ; NFKC_SCF; 16E63 # L& MEDEFAIDRIN CAPITAL LETTER W
+16E44 ; NFKC_SCF; 16E64 # L& MEDEFAIDRIN CAPITAL LETTER ATIU
+16E45 ; NFKC_SCF; 16E65 # L& MEDEFAIDRIN CAPITAL LETTER Z
+16E46 ; NFKC_SCF; 16E66 # L& MEDEFAIDRIN CAPITAL LETTER KP
+16E47 ; NFKC_SCF; 16E67 # L& MEDEFAIDRIN CAPITAL LETTER P
+16E48 ; NFKC_SCF; 16E68 # L& MEDEFAIDRIN CAPITAL LETTER T
+16E49 ; NFKC_SCF; 16E69 # L& MEDEFAIDRIN CAPITAL LETTER G
+16E4A ; NFKC_SCF; 16E6A # L& MEDEFAIDRIN CAPITAL LETTER F
+16E4B ; NFKC_SCF; 16E6B # L& MEDEFAIDRIN CAPITAL LETTER I
+16E4C ; NFKC_SCF; 16E6C # L& MEDEFAIDRIN CAPITAL LETTER K
+16E4D ; NFKC_SCF; 16E6D # L& MEDEFAIDRIN CAPITAL LETTER A
+16E4E ; NFKC_SCF; 16E6E # L& MEDEFAIDRIN CAPITAL LETTER J
+16E4F ; NFKC_SCF; 16E6F # L& MEDEFAIDRIN CAPITAL LETTER E
+16E50 ; NFKC_SCF; 16E70 # L& MEDEFAIDRIN CAPITAL LETTER B
+16E51 ; NFKC_SCF; 16E71 # L& MEDEFAIDRIN CAPITAL LETTER C
+16E52 ; NFKC_SCF; 16E72 # L& MEDEFAIDRIN CAPITAL LETTER U
+16E53 ; NFKC_SCF; 16E73 # L& MEDEFAIDRIN CAPITAL LETTER YU
+16E54 ; NFKC_SCF; 16E74 # L& MEDEFAIDRIN CAPITAL LETTER L
+16E55 ; NFKC_SCF; 16E75 # L& MEDEFAIDRIN CAPITAL LETTER Q
+16E56 ; NFKC_SCF; 16E76 # L& MEDEFAIDRIN CAPITAL LETTER HP
+16E57 ; NFKC_SCF; 16E77 # L& MEDEFAIDRIN CAPITAL LETTER NY
+16E58 ; NFKC_SCF; 16E78 # L& MEDEFAIDRIN CAPITAL LETTER X
+16E59 ; NFKC_SCF; 16E79 # L& MEDEFAIDRIN CAPITAL LETTER D
+16E5A ; NFKC_SCF; 16E7A # L& MEDEFAIDRIN CAPITAL LETTER OE
+16E5B ; NFKC_SCF; 16E7B # L& MEDEFAIDRIN CAPITAL LETTER N
+16E5C ; NFKC_SCF; 16E7C # L& MEDEFAIDRIN CAPITAL LETTER R
+16E5D ; NFKC_SCF; 16E7D # L& MEDEFAIDRIN CAPITAL LETTER O
+16E5E ; NFKC_SCF; 16E7E # L& MEDEFAIDRIN CAPITAL LETTER AI
+16E5F ; NFKC_SCF; 16E7F # L& MEDEFAIDRIN CAPITAL LETTER Y
+1BCA0..1BCA3 ; NFKC_SCF; # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1D15E ; NFKC_SCF; 1D157 1D165 # So MUSICAL SYMBOL HALF NOTE
+1D15F ; NFKC_SCF; 1D158 1D165 # So MUSICAL SYMBOL QUARTER NOTE
+1D160 ; NFKC_SCF; 1D158 1D165 1D16E #So MUSICAL SYMBOL EIGHTH NOTE
+1D161 ; NFKC_SCF; 1D158 1D165 1D16F #So MUSICAL SYMBOL SIXTEENTH NOTE
+1D162 ; NFKC_SCF; 1D158 1D165 1D170 #So MUSICAL SYMBOL THIRTY-SECOND NOTE
+1D163 ; NFKC_SCF; 1D158 1D165 1D171 #So MUSICAL SYMBOL SIXTY-FOURTH NOTE
+1D164 ; NFKC_SCF; 1D158 1D165 1D172 #So MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D173..1D17A ; NFKC_SCF; # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D1BB ; NFKC_SCF; 1D1B9 1D165 # So MUSICAL SYMBOL MINIMA
+1D1BC ; NFKC_SCF; 1D1BA 1D165 # So MUSICAL SYMBOL MINIMA BLACK
+1D1BD ; NFKC_SCF; 1D1B9 1D165 1D16E #So MUSICAL SYMBOL SEMIMINIMA WHITE
+1D1BE ; NFKC_SCF; 1D1BA 1D165 1D16E #So MUSICAL SYMBOL SEMIMINIMA BLACK
+1D1BF ; NFKC_SCF; 1D1B9 1D165 1D16F #So MUSICAL SYMBOL FUSA WHITE
+1D1C0 ; NFKC_SCF; 1D1BA 1D165 1D16F #So MUSICAL SYMBOL FUSA BLACK
+1D400 ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD CAPITAL A
+1D401 ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD CAPITAL B
+1D402 ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD CAPITAL C
+1D403 ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD CAPITAL D
+1D404 ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD CAPITAL E
+1D405 ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD CAPITAL F
+1D406 ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD CAPITAL G
+1D407 ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD CAPITAL H
+1D408 ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD CAPITAL I
+1D409 ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD CAPITAL J
+1D40A ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD CAPITAL K
+1D40B ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD CAPITAL L
+1D40C ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD CAPITAL M
+1D40D ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD CAPITAL N
+1D40E ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD CAPITAL O
+1D40F ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD CAPITAL P
+1D410 ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD CAPITAL Q
+1D411 ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD CAPITAL R
+1D412 ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD CAPITAL S
+1D413 ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD CAPITAL T
+1D414 ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD CAPITAL U
+1D415 ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD CAPITAL V
+1D416 ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD CAPITAL W
+1D417 ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD CAPITAL X
+1D418 ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD CAPITAL Y
+1D419 ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD CAPITAL Z
+1D41A ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD SMALL A
+1D41B ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD SMALL B
+1D41C ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD SMALL C
+1D41D ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD SMALL D
+1D41E ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD SMALL E
+1D41F ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD SMALL F
+1D420 ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD SMALL G
+1D421 ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD SMALL H
+1D422 ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD SMALL I
+1D423 ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD SMALL J
+1D424 ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD SMALL K
+1D425 ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD SMALL L
+1D426 ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD SMALL M
+1D427 ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD SMALL N
+1D428 ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD SMALL O
+1D429 ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD SMALL P
+1D42A ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD SMALL Q
+1D42B ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD SMALL R
+1D42C ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD SMALL S
+1D42D ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD SMALL T
+1D42E ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD SMALL U
+1D42F ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD SMALL V
+1D430 ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD SMALL W
+1D431 ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD SMALL X
+1D432 ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD SMALL Y
+1D433 ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD SMALL Z
+1D434 ; NFKC_SCF; 0061 # L& MATHEMATICAL ITALIC CAPITAL A
+1D435 ; NFKC_SCF; 0062 # L& MATHEMATICAL ITALIC CAPITAL B
+1D436 ; NFKC_SCF; 0063 # L& MATHEMATICAL ITALIC CAPITAL C
+1D437 ; NFKC_SCF; 0064 # L& MATHEMATICAL ITALIC CAPITAL D
+1D438 ; NFKC_SCF; 0065 # L& MATHEMATICAL ITALIC CAPITAL E
+1D439 ; NFKC_SCF; 0066 # L& MATHEMATICAL ITALIC CAPITAL F
+1D43A ; NFKC_SCF; 0067 # L& MATHEMATICAL ITALIC CAPITAL G
+1D43B ; NFKC_SCF; 0068 # L& MATHEMATICAL ITALIC CAPITAL H
+1D43C ; NFKC_SCF; 0069 # L& MATHEMATICAL ITALIC CAPITAL I
+1D43D ; NFKC_SCF; 006A # L& MATHEMATICAL ITALIC CAPITAL J
+1D43E ; NFKC_SCF; 006B # L& MATHEMATICAL ITALIC CAPITAL K
+1D43F ; NFKC_SCF; 006C # L& MATHEMATICAL ITALIC CAPITAL L
+1D440 ; NFKC_SCF; 006D # L& MATHEMATICAL ITALIC CAPITAL M
+1D441 ; NFKC_SCF; 006E # L& MATHEMATICAL ITALIC CAPITAL N
+1D442 ; NFKC_SCF; 006F # L& MATHEMATICAL ITALIC CAPITAL O
+1D443 ; NFKC_SCF; 0070 # L& MATHEMATICAL ITALIC CAPITAL P
+1D444 ; NFKC_SCF; 0071 # L& MATHEMATICAL ITALIC CAPITAL Q
+1D445 ; NFKC_SCF; 0072 # L& MATHEMATICAL ITALIC CAPITAL R
+1D446 ; NFKC_SCF; 0073 # L& MATHEMATICAL ITALIC CAPITAL S
+1D447 ; NFKC_SCF; 0074 # L& MATHEMATICAL ITALIC CAPITAL T
+1D448 ; NFKC_SCF; 0075 # L& MATHEMATICAL ITALIC CAPITAL U
+1D449 ; NFKC_SCF; 0076 # L& MATHEMATICAL ITALIC CAPITAL V
+1D44A ; NFKC_SCF; 0077 # L& MATHEMATICAL ITALIC CAPITAL W
+1D44B ; NFKC_SCF; 0078 # L& MATHEMATICAL ITALIC CAPITAL X
+1D44C ; NFKC_SCF; 0079 # L& MATHEMATICAL ITALIC CAPITAL Y
+1D44D ; NFKC_SCF; 007A # L& MATHEMATICAL ITALIC CAPITAL Z
+1D44E ; NFKC_SCF; 0061 # L& MATHEMATICAL ITALIC SMALL A
+1D44F ; NFKC_SCF; 0062 # L& MATHEMATICAL ITALIC SMALL B
+1D450 ; NFKC_SCF; 0063 # L& MATHEMATICAL ITALIC SMALL C
+1D451 ; NFKC_SCF; 0064 # L& MATHEMATICAL ITALIC SMALL D
+1D452 ; NFKC_SCF; 0065 # L& MATHEMATICAL ITALIC SMALL E
+1D453 ; NFKC_SCF; 0066 # L& MATHEMATICAL ITALIC SMALL F
+1D454 ; NFKC_SCF; 0067 # L& MATHEMATICAL ITALIC SMALL G
+1D456 ; NFKC_SCF; 0069 # L& MATHEMATICAL ITALIC SMALL I
+1D457 ; NFKC_SCF; 006A # L& MATHEMATICAL ITALIC SMALL J
+1D458 ; NFKC_SCF; 006B # L& MATHEMATICAL ITALIC SMALL K
+1D459 ; NFKC_SCF; 006C # L& MATHEMATICAL ITALIC SMALL L
+1D45A ; NFKC_SCF; 006D # L& MATHEMATICAL ITALIC SMALL M
+1D45B ; NFKC_SCF; 006E # L& MATHEMATICAL ITALIC SMALL N
+1D45C ; NFKC_SCF; 006F # L& MATHEMATICAL ITALIC SMALL O
+1D45D ; NFKC_SCF; 0070 # L& MATHEMATICAL ITALIC SMALL P
+1D45E ; NFKC_SCF; 0071 # L& MATHEMATICAL ITALIC SMALL Q
+1D45F ; NFKC_SCF; 0072 # L& MATHEMATICAL ITALIC SMALL R
+1D460 ; NFKC_SCF; 0073 # L& MATHEMATICAL ITALIC SMALL S
+1D461 ; NFKC_SCF; 0074 # L& MATHEMATICAL ITALIC SMALL T
+1D462 ; NFKC_SCF; 0075 # L& MATHEMATICAL ITALIC SMALL U
+1D463 ; NFKC_SCF; 0076 # L& MATHEMATICAL ITALIC SMALL V
+1D464 ; NFKC_SCF; 0077 # L& MATHEMATICAL ITALIC SMALL W
+1D465 ; NFKC_SCF; 0078 # L& MATHEMATICAL ITALIC SMALL X
+1D466 ; NFKC_SCF; 0079 # L& MATHEMATICAL ITALIC SMALL Y
+1D467 ; NFKC_SCF; 007A # L& MATHEMATICAL ITALIC SMALL Z
+1D468 ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD ITALIC CAPITAL A
+1D469 ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD ITALIC CAPITAL B
+1D46A ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD ITALIC CAPITAL C
+1D46B ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD ITALIC CAPITAL D
+1D46C ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD ITALIC CAPITAL E
+1D46D ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD ITALIC CAPITAL F
+1D46E ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD ITALIC CAPITAL G
+1D46F ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD ITALIC CAPITAL H
+1D470 ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD ITALIC CAPITAL I
+1D471 ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD ITALIC CAPITAL J
+1D472 ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD ITALIC CAPITAL K
+1D473 ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD ITALIC CAPITAL L
+1D474 ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD ITALIC CAPITAL M
+1D475 ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD ITALIC CAPITAL N
+1D476 ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD ITALIC CAPITAL O
+1D477 ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD ITALIC CAPITAL P
+1D478 ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD ITALIC CAPITAL Q
+1D479 ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD ITALIC CAPITAL R
+1D47A ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD ITALIC CAPITAL S
+1D47B ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD ITALIC CAPITAL T
+1D47C ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD ITALIC CAPITAL U
+1D47D ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD ITALIC CAPITAL V
+1D47E ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD ITALIC CAPITAL W
+1D47F ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD ITALIC CAPITAL X
+1D480 ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD ITALIC CAPITAL Y
+1D481 ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD ITALIC CAPITAL Z
+1D482 ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD ITALIC SMALL A
+1D483 ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD ITALIC SMALL B
+1D484 ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD ITALIC SMALL C
+1D485 ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD ITALIC SMALL D
+1D486 ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD ITALIC SMALL E
+1D487 ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD ITALIC SMALL F
+1D488 ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD ITALIC SMALL G
+1D489 ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD ITALIC SMALL H
+1D48A ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD ITALIC SMALL I
+1D48B ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD ITALIC SMALL J
+1D48C ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD ITALIC SMALL K
+1D48D ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD ITALIC SMALL L
+1D48E ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD ITALIC SMALL M
+1D48F ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD ITALIC SMALL N
+1D490 ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD ITALIC SMALL O
+1D491 ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD ITALIC SMALL P
+1D492 ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD ITALIC SMALL Q
+1D493 ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD ITALIC SMALL R
+1D494 ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD ITALIC SMALL S
+1D495 ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD ITALIC SMALL T
+1D496 ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD ITALIC SMALL U
+1D497 ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD ITALIC SMALL V
+1D498 ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD ITALIC SMALL W
+1D499 ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD ITALIC SMALL X
+1D49A ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD ITALIC SMALL Y
+1D49B ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD ITALIC SMALL Z
+1D49C ; NFKC_SCF; 0061 # L& MATHEMATICAL SCRIPT CAPITAL A
+1D49E ; NFKC_SCF; 0063 # L& MATHEMATICAL SCRIPT CAPITAL C
+1D49F ; NFKC_SCF; 0064 # L& MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; NFKC_SCF; 0067 # L& MATHEMATICAL SCRIPT CAPITAL G
+1D4A5 ; NFKC_SCF; 006A # L& MATHEMATICAL SCRIPT CAPITAL J
+1D4A6 ; NFKC_SCF; 006B # L& MATHEMATICAL SCRIPT CAPITAL K
+1D4A9 ; NFKC_SCF; 006E # L& MATHEMATICAL SCRIPT CAPITAL N
+1D4AA ; NFKC_SCF; 006F # L& MATHEMATICAL SCRIPT CAPITAL O
+1D4AB ; NFKC_SCF; 0070 # L& MATHEMATICAL SCRIPT CAPITAL P
+1D4AC ; NFKC_SCF; 0071 # L& MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE ; NFKC_SCF; 0073 # L& MATHEMATICAL SCRIPT CAPITAL S
+1D4AF ; NFKC_SCF; 0074 # L& MATHEMATICAL SCRIPT CAPITAL T
+1D4B0 ; NFKC_SCF; 0075 # L& MATHEMATICAL SCRIPT CAPITAL U
+1D4B1 ; NFKC_SCF; 0076 # L& MATHEMATICAL SCRIPT CAPITAL V
+1D4B2 ; NFKC_SCF; 0077 # L& MATHEMATICAL SCRIPT CAPITAL W
+1D4B3 ; NFKC_SCF; 0078 # L& MATHEMATICAL SCRIPT CAPITAL X
+1D4B4 ; NFKC_SCF; 0079 # L& MATHEMATICAL SCRIPT CAPITAL Y
+1D4B5 ; NFKC_SCF; 007A # L& MATHEMATICAL SCRIPT CAPITAL Z
+1D4B6 ; NFKC_SCF; 0061 # L& MATHEMATICAL SCRIPT SMALL A
+1D4B7 ; NFKC_SCF; 0062 # L& MATHEMATICAL SCRIPT SMALL B
+1D4B8 ; NFKC_SCF; 0063 # L& MATHEMATICAL SCRIPT SMALL C
+1D4B9 ; NFKC_SCF; 0064 # L& MATHEMATICAL SCRIPT SMALL D
+1D4BB ; NFKC_SCF; 0066 # L& MATHEMATICAL SCRIPT SMALL F
+1D4BD ; NFKC_SCF; 0068 # L& MATHEMATICAL SCRIPT SMALL H
+1D4BE ; NFKC_SCF; 0069 # L& MATHEMATICAL SCRIPT SMALL I
+1D4BF ; NFKC_SCF; 006A # L& MATHEMATICAL SCRIPT SMALL J
+1D4C0 ; NFKC_SCF; 006B # L& MATHEMATICAL SCRIPT SMALL K
+1D4C1 ; NFKC_SCF; 006C # L& MATHEMATICAL SCRIPT SMALL L
+1D4C2 ; NFKC_SCF; 006D # L& MATHEMATICAL SCRIPT SMALL M
+1D4C3 ; NFKC_SCF; 006E # L& MATHEMATICAL SCRIPT SMALL N
+1D4C5 ; NFKC_SCF; 0070 # L& MATHEMATICAL SCRIPT SMALL P
+1D4C6 ; NFKC_SCF; 0071 # L& MATHEMATICAL SCRIPT SMALL Q
+1D4C7 ; NFKC_SCF; 0072 # L& MATHEMATICAL SCRIPT SMALL R
+1D4C8 ; NFKC_SCF; 0073 # L& MATHEMATICAL SCRIPT SMALL S
+1D4C9 ; NFKC_SCF; 0074 # L& MATHEMATICAL SCRIPT SMALL T
+1D4CA ; NFKC_SCF; 0075 # L& MATHEMATICAL SCRIPT SMALL U
+1D4CB ; NFKC_SCF; 0076 # L& MATHEMATICAL SCRIPT SMALL V
+1D4CC ; NFKC_SCF; 0077 # L& MATHEMATICAL SCRIPT SMALL W
+1D4CD ; NFKC_SCF; 0078 # L& MATHEMATICAL SCRIPT SMALL X
+1D4CE ; NFKC_SCF; 0079 # L& MATHEMATICAL SCRIPT SMALL Y
+1D4CF ; NFKC_SCF; 007A # L& MATHEMATICAL SCRIPT SMALL Z
+1D4D0 ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD SCRIPT CAPITAL A
+1D4D1 ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD SCRIPT CAPITAL B
+1D4D2 ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD SCRIPT CAPITAL C
+1D4D3 ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD SCRIPT CAPITAL D
+1D4D4 ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD SCRIPT CAPITAL E
+1D4D5 ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD SCRIPT CAPITAL F
+1D4D6 ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD SCRIPT CAPITAL G
+1D4D7 ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD SCRIPT CAPITAL H
+1D4D8 ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD SCRIPT CAPITAL I
+1D4D9 ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD SCRIPT CAPITAL J
+1D4DA ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD SCRIPT CAPITAL K
+1D4DB ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD SCRIPT CAPITAL L
+1D4DC ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD SCRIPT CAPITAL M
+1D4DD ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD SCRIPT CAPITAL N
+1D4DE ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD SCRIPT CAPITAL O
+1D4DF ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD SCRIPT CAPITAL P
+1D4E0 ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD SCRIPT CAPITAL Q
+1D4E1 ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD SCRIPT CAPITAL R
+1D4E2 ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD SCRIPT CAPITAL S
+1D4E3 ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD SCRIPT CAPITAL T
+1D4E4 ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD SCRIPT CAPITAL U
+1D4E5 ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD SCRIPT CAPITAL V
+1D4E6 ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD SCRIPT CAPITAL W
+1D4E7 ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD SCRIPT CAPITAL X
+1D4E8 ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD SCRIPT CAPITAL Y
+1D4E9 ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD SCRIPT CAPITAL Z
+1D4EA ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD SCRIPT SMALL A
+1D4EB ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD SCRIPT SMALL B
+1D4EC ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD SCRIPT SMALL C
+1D4ED ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD SCRIPT SMALL D
+1D4EE ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD SCRIPT SMALL E
+1D4EF ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD SCRIPT SMALL F
+1D4F0 ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD SCRIPT SMALL G
+1D4F1 ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD SCRIPT SMALL H
+1D4F2 ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD SCRIPT SMALL I
+1D4F3 ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD SCRIPT SMALL J
+1D4F4 ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD SCRIPT SMALL K
+1D4F5 ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD SCRIPT SMALL L
+1D4F6 ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD SCRIPT SMALL M
+1D4F7 ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD SCRIPT SMALL N
+1D4F8 ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD SCRIPT SMALL O
+1D4F9 ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD SCRIPT SMALL P
+1D4FA ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD SCRIPT SMALL Q
+1D4FB ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD SCRIPT SMALL R
+1D4FC ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD SCRIPT SMALL S
+1D4FD ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD SCRIPT SMALL T
+1D4FE ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD SCRIPT SMALL U
+1D4FF ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD SCRIPT SMALL V
+1D500 ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD SCRIPT SMALL W
+1D501 ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD SCRIPT SMALL X
+1D502 ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD SCRIPT SMALL Y
+1D503 ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD SCRIPT SMALL Z
+1D504 ; NFKC_SCF; 0061 # L& MATHEMATICAL FRAKTUR CAPITAL A
+1D505 ; NFKC_SCF; 0062 # L& MATHEMATICAL FRAKTUR CAPITAL B
+1D507 ; NFKC_SCF; 0064 # L& MATHEMATICAL FRAKTUR CAPITAL D
+1D508 ; NFKC_SCF; 0065 # L& MATHEMATICAL FRAKTUR CAPITAL E
+1D509 ; NFKC_SCF; 0066 # L& MATHEMATICAL FRAKTUR CAPITAL F
+1D50A ; NFKC_SCF; 0067 # L& MATHEMATICAL FRAKTUR CAPITAL G
+1D50D ; NFKC_SCF; 006A # L& MATHEMATICAL FRAKTUR CAPITAL J
+1D50E ; NFKC_SCF; 006B # L& MATHEMATICAL FRAKTUR CAPITAL K
+1D50F ; NFKC_SCF; 006C # L& MATHEMATICAL FRAKTUR CAPITAL L
+1D510 ; NFKC_SCF; 006D # L& MATHEMATICAL FRAKTUR CAPITAL M
+1D511 ; NFKC_SCF; 006E # L& MATHEMATICAL FRAKTUR CAPITAL N
+1D512 ; NFKC_SCF; 006F # L& MATHEMATICAL FRAKTUR CAPITAL O
+1D513 ; NFKC_SCF; 0070 # L& MATHEMATICAL FRAKTUR CAPITAL P
+1D514 ; NFKC_SCF; 0071 # L& MATHEMATICAL FRAKTUR CAPITAL Q
+1D516 ; NFKC_SCF; 0073 # L& MATHEMATICAL FRAKTUR CAPITAL S
+1D517 ; NFKC_SCF; 0074 # L& MATHEMATICAL FRAKTUR CAPITAL T
+1D518 ; NFKC_SCF; 0075 # L& MATHEMATICAL FRAKTUR CAPITAL U
+1D519 ; NFKC_SCF; 0076 # L& MATHEMATICAL FRAKTUR CAPITAL V
+1D51A ; NFKC_SCF; 0077 # L& MATHEMATICAL FRAKTUR CAPITAL W
+1D51B ; NFKC_SCF; 0078 # L& MATHEMATICAL FRAKTUR CAPITAL X
+1D51C ; NFKC_SCF; 0079 # L& MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E ; NFKC_SCF; 0061 # L& MATHEMATICAL FRAKTUR SMALL A
+1D51F ; NFKC_SCF; 0062 # L& MATHEMATICAL FRAKTUR SMALL B
+1D520 ; NFKC_SCF; 0063 # L& MATHEMATICAL FRAKTUR SMALL C
+1D521 ; NFKC_SCF; 0064 # L& MATHEMATICAL FRAKTUR SMALL D
+1D522 ; NFKC_SCF; 0065 # L& MATHEMATICAL FRAKTUR SMALL E
+1D523 ; NFKC_SCF; 0066 # L& MATHEMATICAL FRAKTUR SMALL F
+1D524 ; NFKC_SCF; 0067 # L& MATHEMATICAL FRAKTUR SMALL G
+1D525 ; NFKC_SCF; 0068 # L& MATHEMATICAL FRAKTUR SMALL H
+1D526 ; NFKC_SCF; 0069 # L& MATHEMATICAL FRAKTUR SMALL I
+1D527 ; NFKC_SCF; 006A # L& MATHEMATICAL FRAKTUR SMALL J
+1D528 ; NFKC_SCF; 006B # L& MATHEMATICAL FRAKTUR SMALL K
+1D529 ; NFKC_SCF; 006C # L& MATHEMATICAL FRAKTUR SMALL L
+1D52A ; NFKC_SCF; 006D # L& MATHEMATICAL FRAKTUR SMALL M
+1D52B ; NFKC_SCF; 006E # L& MATHEMATICAL FRAKTUR SMALL N
+1D52C ; NFKC_SCF; 006F # L& MATHEMATICAL FRAKTUR SMALL O
+1D52D ; NFKC_SCF; 0070 # L& MATHEMATICAL FRAKTUR SMALL P
+1D52E ; NFKC_SCF; 0071 # L& MATHEMATICAL FRAKTUR SMALL Q
+1D52F ; NFKC_SCF; 0072 # L& MATHEMATICAL FRAKTUR SMALL R
+1D530 ; NFKC_SCF; 0073 # L& MATHEMATICAL FRAKTUR SMALL S
+1D531 ; NFKC_SCF; 0074 # L& MATHEMATICAL FRAKTUR SMALL T
+1D532 ; NFKC_SCF; 0075 # L& MATHEMATICAL FRAKTUR SMALL U
+1D533 ; NFKC_SCF; 0076 # L& MATHEMATICAL FRAKTUR SMALL V
+1D534 ; NFKC_SCF; 0077 # L& MATHEMATICAL FRAKTUR SMALL W
+1D535 ; NFKC_SCF; 0078 # L& MATHEMATICAL FRAKTUR SMALL X
+1D536 ; NFKC_SCF; 0079 # L& MATHEMATICAL FRAKTUR SMALL Y
+1D537 ; NFKC_SCF; 007A # L& MATHEMATICAL FRAKTUR SMALL Z
+1D538 ; NFKC_SCF; 0061 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+1D539 ; NFKC_SCF; 0062 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B ; NFKC_SCF; 0064 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+1D53C ; NFKC_SCF; 0065 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+1D53D ; NFKC_SCF; 0066 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+1D53E ; NFKC_SCF; 0067 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540 ; NFKC_SCF; 0069 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+1D541 ; NFKC_SCF; 006A # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+1D542 ; NFKC_SCF; 006B # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+1D543 ; NFKC_SCF; 006C # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+1D544 ; NFKC_SCF; 006D # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; NFKC_SCF; 006F # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A ; NFKC_SCF; 0073 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+1D54B ; NFKC_SCF; 0074 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+1D54C ; NFKC_SCF; 0075 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+1D54D ; NFKC_SCF; 0076 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+1D54E ; NFKC_SCF; 0077 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+1D54F ; NFKC_SCF; 0078 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+1D550 ; NFKC_SCF; 0079 # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552 ; NFKC_SCF; 0061 # L& MATHEMATICAL DOUBLE-STRUCK SMALL A
+1D553 ; NFKC_SCF; 0062 # L& MATHEMATICAL DOUBLE-STRUCK SMALL B
+1D554 ; NFKC_SCF; 0063 # L& MATHEMATICAL DOUBLE-STRUCK SMALL C
+1D555 ; NFKC_SCF; 0064 # L& MATHEMATICAL DOUBLE-STRUCK SMALL D
+1D556 ; NFKC_SCF; 0065 # L& MATHEMATICAL DOUBLE-STRUCK SMALL E
+1D557 ; NFKC_SCF; 0066 # L& MATHEMATICAL DOUBLE-STRUCK SMALL F
+1D558 ; NFKC_SCF; 0067 # L& MATHEMATICAL DOUBLE-STRUCK SMALL G
+1D559 ; NFKC_SCF; 0068 # L& MATHEMATICAL DOUBLE-STRUCK SMALL H
+1D55A ; NFKC_SCF; 0069 # L& MATHEMATICAL DOUBLE-STRUCK SMALL I
+1D55B ; NFKC_SCF; 006A # L& MATHEMATICAL DOUBLE-STRUCK SMALL J
+1D55C ; NFKC_SCF; 006B # L& MATHEMATICAL DOUBLE-STRUCK SMALL K
+1D55D ; NFKC_SCF; 006C # L& MATHEMATICAL DOUBLE-STRUCK SMALL L
+1D55E ; NFKC_SCF; 006D # L& MATHEMATICAL DOUBLE-STRUCK SMALL M
+1D55F ; NFKC_SCF; 006E # L& MATHEMATICAL DOUBLE-STRUCK SMALL N
+1D560 ; NFKC_SCF; 006F # L& MATHEMATICAL DOUBLE-STRUCK SMALL O
+1D561 ; NFKC_SCF; 0070 # L& MATHEMATICAL DOUBLE-STRUCK SMALL P
+1D562 ; NFKC_SCF; 0071 # L& MATHEMATICAL DOUBLE-STRUCK SMALL Q
+1D563 ; NFKC_SCF; 0072 # L& MATHEMATICAL DOUBLE-STRUCK SMALL R
+1D564 ; NFKC_SCF; 0073 # L& MATHEMATICAL DOUBLE-STRUCK SMALL S
+1D565 ; NFKC_SCF; 0074 # L& MATHEMATICAL DOUBLE-STRUCK SMALL T
+1D566 ; NFKC_SCF; 0075 # L& MATHEMATICAL DOUBLE-STRUCK SMALL U
+1D567 ; NFKC_SCF; 0076 # L& MATHEMATICAL DOUBLE-STRUCK SMALL V
+1D568 ; NFKC_SCF; 0077 # L& MATHEMATICAL DOUBLE-STRUCK SMALL W
+1D569 ; NFKC_SCF; 0078 # L& MATHEMATICAL DOUBLE-STRUCK SMALL X
+1D56A ; NFKC_SCF; 0079 # L& MATHEMATICAL DOUBLE-STRUCK SMALL Y
+1D56B ; NFKC_SCF; 007A # L& MATHEMATICAL DOUBLE-STRUCK SMALL Z
+1D56C ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL A
+1D56D ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL B
+1D56E ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL C
+1D56F ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL D
+1D570 ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL E
+1D571 ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL F
+1D572 ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL G
+1D573 ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL H
+1D574 ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL I
+1D575 ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD FRAKTUR CAPITAL J
+1D576 ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD FRAKTUR CAPITAL K
+1D577 ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD FRAKTUR CAPITAL L
+1D578 ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD FRAKTUR CAPITAL M
+1D579 ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD FRAKTUR CAPITAL N
+1D57A ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD FRAKTUR CAPITAL O
+1D57B ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL P
+1D57C ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+1D57D ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL R
+1D57E ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL S
+1D57F ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL T
+1D580 ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL U
+1D581 ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL V
+1D582 ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL W
+1D583 ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL X
+1D584 ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+1D585 ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+1D586 ; NFKC_SCF; 0061 # L& MATHEMATICAL BOLD FRAKTUR SMALL A
+1D587 ; NFKC_SCF; 0062 # L& MATHEMATICAL BOLD FRAKTUR SMALL B
+1D588 ; NFKC_SCF; 0063 # L& MATHEMATICAL BOLD FRAKTUR SMALL C
+1D589 ; NFKC_SCF; 0064 # L& MATHEMATICAL BOLD FRAKTUR SMALL D
+1D58A ; NFKC_SCF; 0065 # L& MATHEMATICAL BOLD FRAKTUR SMALL E
+1D58B ; NFKC_SCF; 0066 # L& MATHEMATICAL BOLD FRAKTUR SMALL F
+1D58C ; NFKC_SCF; 0067 # L& MATHEMATICAL BOLD FRAKTUR SMALL G
+1D58D ; NFKC_SCF; 0068 # L& MATHEMATICAL BOLD FRAKTUR SMALL H
+1D58E ; NFKC_SCF; 0069 # L& MATHEMATICAL BOLD FRAKTUR SMALL I
+1D58F ; NFKC_SCF; 006A # L& MATHEMATICAL BOLD FRAKTUR SMALL J
+1D590 ; NFKC_SCF; 006B # L& MATHEMATICAL BOLD FRAKTUR SMALL K
+1D591 ; NFKC_SCF; 006C # L& MATHEMATICAL BOLD FRAKTUR SMALL L
+1D592 ; NFKC_SCF; 006D # L& MATHEMATICAL BOLD FRAKTUR SMALL M
+1D593 ; NFKC_SCF; 006E # L& MATHEMATICAL BOLD FRAKTUR SMALL N
+1D594 ; NFKC_SCF; 006F # L& MATHEMATICAL BOLD FRAKTUR SMALL O
+1D595 ; NFKC_SCF; 0070 # L& MATHEMATICAL BOLD FRAKTUR SMALL P
+1D596 ; NFKC_SCF; 0071 # L& MATHEMATICAL BOLD FRAKTUR SMALL Q
+1D597 ; NFKC_SCF; 0072 # L& MATHEMATICAL BOLD FRAKTUR SMALL R
+1D598 ; NFKC_SCF; 0073 # L& MATHEMATICAL BOLD FRAKTUR SMALL S
+1D599 ; NFKC_SCF; 0074 # L& MATHEMATICAL BOLD FRAKTUR SMALL T
+1D59A ; NFKC_SCF; 0075 # L& MATHEMATICAL BOLD FRAKTUR SMALL U
+1D59B ; NFKC_SCF; 0076 # L& MATHEMATICAL BOLD FRAKTUR SMALL V
+1D59C ; NFKC_SCF; 0077 # L& MATHEMATICAL BOLD FRAKTUR SMALL W
+1D59D ; NFKC_SCF; 0078 # L& MATHEMATICAL BOLD FRAKTUR SMALL X
+1D59E ; NFKC_SCF; 0079 # L& MATHEMATICAL BOLD FRAKTUR SMALL Y
+1D59F ; NFKC_SCF; 007A # L& MATHEMATICAL BOLD FRAKTUR SMALL Z
+1D5A0 ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF CAPITAL A
+1D5A1 ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF CAPITAL B
+1D5A2 ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF CAPITAL C
+1D5A3 ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF CAPITAL D
+1D5A4 ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF CAPITAL E
+1D5A5 ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF CAPITAL F
+1D5A6 ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF CAPITAL G
+1D5A7 ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF CAPITAL H
+1D5A8 ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF CAPITAL I
+1D5A9 ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF CAPITAL J
+1D5AA ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF CAPITAL K
+1D5AB ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF CAPITAL L
+1D5AC ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF CAPITAL M
+1D5AD ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF CAPITAL N
+1D5AE ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF CAPITAL O
+1D5AF ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF CAPITAL P
+1D5B0 ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF CAPITAL Q
+1D5B1 ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF CAPITAL R
+1D5B2 ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF CAPITAL S
+1D5B3 ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF CAPITAL T
+1D5B4 ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF CAPITAL U
+1D5B5 ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF CAPITAL V
+1D5B6 ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF CAPITAL W
+1D5B7 ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF CAPITAL X
+1D5B8 ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF CAPITAL Y
+1D5B9 ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF CAPITAL Z
+1D5BA ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF SMALL A
+1D5BB ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF SMALL B
+1D5BC ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF SMALL C
+1D5BD ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF SMALL D
+1D5BE ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF SMALL E
+1D5BF ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF SMALL F
+1D5C0 ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF SMALL G
+1D5C1 ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF SMALL H
+1D5C2 ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF SMALL I
+1D5C3 ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF SMALL J
+1D5C4 ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF SMALL K
+1D5C5 ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF SMALL L
+1D5C6 ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF SMALL M
+1D5C7 ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF SMALL N
+1D5C8 ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF SMALL O
+1D5C9 ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF SMALL P
+1D5CA ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF SMALL Q
+1D5CB ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF SMALL R
+1D5CC ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF SMALL S
+1D5CD ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF SMALL T
+1D5CE ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF SMALL U
+1D5CF ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF SMALL V
+1D5D0 ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF SMALL W
+1D5D1 ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF SMALL X
+1D5D2 ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF SMALL Y
+1D5D3 ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF SMALL Z
+1D5D4 ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+1D5D5 ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+1D5D6 ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+1D5D7 ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+1D5D8 ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+1D5D9 ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+1D5DA ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+1D5DB ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+1D5DC ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+1D5DD ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+1D5DE ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+1D5DF ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+1D5E0 ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+1D5E1 ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+1D5E2 ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+1D5E3 ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+1D5E4 ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+1D5E5 ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+1D5E6 ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+1D5E7 ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+1D5E8 ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+1D5E9 ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+1D5EA ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+1D5EB ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+1D5EC ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+1D5ED ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+1D5EE ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF BOLD SMALL A
+1D5EF ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF BOLD SMALL B
+1D5F0 ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF BOLD SMALL C
+1D5F1 ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF BOLD SMALL D
+1D5F2 ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF BOLD SMALL E
+1D5F3 ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF BOLD SMALL F
+1D5F4 ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF BOLD SMALL G
+1D5F5 ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF BOLD SMALL H
+1D5F6 ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF BOLD SMALL I
+1D5F7 ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF BOLD SMALL J
+1D5F8 ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF BOLD SMALL K
+1D5F9 ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF BOLD SMALL L
+1D5FA ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF BOLD SMALL M
+1D5FB ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF BOLD SMALL N
+1D5FC ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF BOLD SMALL O
+1D5FD ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF BOLD SMALL P
+1D5FE ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF BOLD SMALL Q
+1D5FF ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF BOLD SMALL R
+1D600 ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF BOLD SMALL S
+1D601 ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF BOLD SMALL T
+1D602 ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF BOLD SMALL U
+1D603 ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF BOLD SMALL V
+1D604 ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF BOLD SMALL W
+1D605 ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF BOLD SMALL X
+1D606 ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF BOLD SMALL Y
+1D607 ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF BOLD SMALL Z
+1D608 ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+1D609 ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+1D60A ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+1D60B ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+1D60C ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+1D60D ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+1D60E ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+1D60F ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+1D610 ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+1D611 ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+1D612 ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+1D613 ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+1D614 ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+1D615 ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+1D616 ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+1D617 ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+1D618 ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+1D619 ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+1D61A ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+1D61B ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+1D61C ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+1D61D ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+1D61E ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+1D61F ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+1D620 ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+1D621 ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+1D622 ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL A
+1D623 ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL B
+1D624 ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL C
+1D625 ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL D
+1D626 ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL E
+1D627 ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL F
+1D628 ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL G
+1D629 ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL H
+1D62A ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL I
+1D62B ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF ITALIC SMALL J
+1D62C ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF ITALIC SMALL K
+1D62D ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF ITALIC SMALL L
+1D62E ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF ITALIC SMALL M
+1D62F ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF ITALIC SMALL N
+1D630 ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF ITALIC SMALL O
+1D631 ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL P
+1D632 ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+1D633 ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL R
+1D634 ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL S
+1D635 ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL T
+1D636 ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL U
+1D637 ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL V
+1D638 ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL W
+1D639 ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL X
+1D63A ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+1D63B ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+1D63C ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+1D63D ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+1D63E ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+1D63F ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+1D640 ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+1D641 ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+1D642 ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+1D643 ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+1D644 ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+1D645 ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+1D646 ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+1D647 ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+1D648 ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+1D649 ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+1D64A ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+1D64B ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+1D64C ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+1D64D ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+1D64E ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+1D64F ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+1D650 ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+1D651 ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+1D652 ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+1D653 ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+1D654 ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+1D655 ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+1D656 ; NFKC_SCF; 0061 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+1D657 ; NFKC_SCF; 0062 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+1D658 ; NFKC_SCF; 0063 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+1D659 ; NFKC_SCF; 0064 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+1D65A ; NFKC_SCF; 0065 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+1D65B ; NFKC_SCF; 0066 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+1D65C ; NFKC_SCF; 0067 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+1D65D ; NFKC_SCF; 0068 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+1D65E ; NFKC_SCF; 0069 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+1D65F ; NFKC_SCF; 006A # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+1D660 ; NFKC_SCF; 006B # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+1D661 ; NFKC_SCF; 006C # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+1D662 ; NFKC_SCF; 006D # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+1D663 ; NFKC_SCF; 006E # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+1D664 ; NFKC_SCF; 006F # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+1D665 ; NFKC_SCF; 0070 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+1D666 ; NFKC_SCF; 0071 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+1D667 ; NFKC_SCF; 0072 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+1D668 ; NFKC_SCF; 0073 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+1D669 ; NFKC_SCF; 0074 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+1D66A ; NFKC_SCF; 0075 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+1D66B ; NFKC_SCF; 0076 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+1D66C ; NFKC_SCF; 0077 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+1D66D ; NFKC_SCF; 0078 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+1D66E ; NFKC_SCF; 0079 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+1D66F ; NFKC_SCF; 007A # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+1D670 ; NFKC_SCF; 0061 # L& MATHEMATICAL MONOSPACE CAPITAL A
+1D671 ; NFKC_SCF; 0062 # L& MATHEMATICAL MONOSPACE CAPITAL B
+1D672 ; NFKC_SCF; 0063 # L& MATHEMATICAL MONOSPACE CAPITAL C
+1D673 ; NFKC_SCF; 0064 # L& MATHEMATICAL MONOSPACE CAPITAL D
+1D674 ; NFKC_SCF; 0065 # L& MATHEMATICAL MONOSPACE CAPITAL E
+1D675 ; NFKC_SCF; 0066 # L& MATHEMATICAL MONOSPACE CAPITAL F
+1D676 ; NFKC_SCF; 0067 # L& MATHEMATICAL MONOSPACE CAPITAL G
+1D677 ; NFKC_SCF; 0068 # L& MATHEMATICAL MONOSPACE CAPITAL H
+1D678 ; NFKC_SCF; 0069 # L& MATHEMATICAL MONOSPACE CAPITAL I
+1D679 ; NFKC_SCF; 006A # L& MATHEMATICAL MONOSPACE CAPITAL J
+1D67A ; NFKC_SCF; 006B # L& MATHEMATICAL MONOSPACE CAPITAL K
+1D67B ; NFKC_SCF; 006C # L& MATHEMATICAL MONOSPACE CAPITAL L
+1D67C ; NFKC_SCF; 006D # L& MATHEMATICAL MONOSPACE CAPITAL M
+1D67D ; NFKC_SCF; 006E # L& MATHEMATICAL MONOSPACE CAPITAL N
+1D67E ; NFKC_SCF; 006F # L& MATHEMATICAL MONOSPACE CAPITAL O
+1D67F ; NFKC_SCF; 0070 # L& MATHEMATICAL MONOSPACE CAPITAL P
+1D680 ; NFKC_SCF; 0071 # L& MATHEMATICAL MONOSPACE CAPITAL Q
+1D681 ; NFKC_SCF; 0072 # L& MATHEMATICAL MONOSPACE CAPITAL R
+1D682 ; NFKC_SCF; 0073 # L& MATHEMATICAL MONOSPACE CAPITAL S
+1D683 ; NFKC_SCF; 0074 # L& MATHEMATICAL MONOSPACE CAPITAL T
+1D684 ; NFKC_SCF; 0075 # L& MATHEMATICAL MONOSPACE CAPITAL U
+1D685 ; NFKC_SCF; 0076 # L& MATHEMATICAL MONOSPACE CAPITAL V
+1D686 ; NFKC_SCF; 0077 # L& MATHEMATICAL MONOSPACE CAPITAL W
+1D687 ; NFKC_SCF; 0078 # L& MATHEMATICAL MONOSPACE CAPITAL X
+1D688 ; NFKC_SCF; 0079 # L& MATHEMATICAL MONOSPACE CAPITAL Y
+1D689 ; NFKC_SCF; 007A # L& MATHEMATICAL MONOSPACE CAPITAL Z
+1D68A ; NFKC_SCF; 0061 # L& MATHEMATICAL MONOSPACE SMALL A
+1D68B ; NFKC_SCF; 0062 # L& MATHEMATICAL MONOSPACE SMALL B
+1D68C ; NFKC_SCF; 0063 # L& MATHEMATICAL MONOSPACE SMALL C
+1D68D ; NFKC_SCF; 0064 # L& MATHEMATICAL MONOSPACE SMALL D
+1D68E ; NFKC_SCF; 0065 # L& MATHEMATICAL MONOSPACE SMALL E
+1D68F ; NFKC_SCF; 0066 # L& MATHEMATICAL MONOSPACE SMALL F
+1D690 ; NFKC_SCF; 0067 # L& MATHEMATICAL MONOSPACE SMALL G
+1D691 ; NFKC_SCF; 0068 # L& MATHEMATICAL MONOSPACE SMALL H
+1D692 ; NFKC_SCF; 0069 # L& MATHEMATICAL MONOSPACE SMALL I
+1D693 ; NFKC_SCF; 006A # L& MATHEMATICAL MONOSPACE SMALL J
+1D694 ; NFKC_SCF; 006B # L& MATHEMATICAL MONOSPACE SMALL K
+1D695 ; NFKC_SCF; 006C # L& MATHEMATICAL MONOSPACE SMALL L
+1D696 ; NFKC_SCF; 006D # L& MATHEMATICAL MONOSPACE SMALL M
+1D697 ; NFKC_SCF; 006E # L& MATHEMATICAL MONOSPACE SMALL N
+1D698 ; NFKC_SCF; 006F # L& MATHEMATICAL MONOSPACE SMALL O
+1D699 ; NFKC_SCF; 0070 # L& MATHEMATICAL MONOSPACE SMALL P
+1D69A ; NFKC_SCF; 0071 # L& MATHEMATICAL MONOSPACE SMALL Q
+1D69B ; NFKC_SCF; 0072 # L& MATHEMATICAL MONOSPACE SMALL R
+1D69C ; NFKC_SCF; 0073 # L& MATHEMATICAL MONOSPACE SMALL S
+1D69D ; NFKC_SCF; 0074 # L& MATHEMATICAL MONOSPACE SMALL T
+1D69E ; NFKC_SCF; 0075 # L& MATHEMATICAL MONOSPACE SMALL U
+1D69F ; NFKC_SCF; 0076 # L& MATHEMATICAL MONOSPACE SMALL V
+1D6A0 ; NFKC_SCF; 0077 # L& MATHEMATICAL MONOSPACE SMALL W
+1D6A1 ; NFKC_SCF; 0078 # L& MATHEMATICAL MONOSPACE SMALL X
+1D6A2 ; NFKC_SCF; 0079 # L& MATHEMATICAL MONOSPACE SMALL Y
+1D6A3 ; NFKC_SCF; 007A # L& MATHEMATICAL MONOSPACE SMALL Z
+1D6A4 ; NFKC_SCF; 0131 # L& MATHEMATICAL ITALIC SMALL DOTLESS I
+1D6A5 ; NFKC_SCF; 0237 # L& MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8 ; NFKC_SCF; 03B1 # L& MATHEMATICAL BOLD CAPITAL ALPHA
+1D6A9 ; NFKC_SCF; 03B2 # L& MATHEMATICAL BOLD CAPITAL BETA
+1D6AA ; NFKC_SCF; 03B3 # L& MATHEMATICAL BOLD CAPITAL GAMMA
+1D6AB ; NFKC_SCF; 03B4 # L& MATHEMATICAL BOLD CAPITAL DELTA
+1D6AC ; NFKC_SCF; 03B5 # L& MATHEMATICAL BOLD CAPITAL EPSILON
+1D6AD ; NFKC_SCF; 03B6 # L& MATHEMATICAL BOLD CAPITAL ZETA
+1D6AE ; NFKC_SCF; 03B7 # L& MATHEMATICAL BOLD CAPITAL ETA
+1D6AF ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD CAPITAL THETA
+1D6B0 ; NFKC_SCF; 03B9 # L& MATHEMATICAL BOLD CAPITAL IOTA
+1D6B1 ; NFKC_SCF; 03BA # L& MATHEMATICAL BOLD CAPITAL KAPPA
+1D6B2 ; NFKC_SCF; 03BB # L& MATHEMATICAL BOLD CAPITAL LAMDA
+1D6B3 ; NFKC_SCF; 03BC # L& MATHEMATICAL BOLD CAPITAL MU
+1D6B4 ; NFKC_SCF; 03BD # L& MATHEMATICAL BOLD CAPITAL NU
+1D6B5 ; NFKC_SCF; 03BE # L& MATHEMATICAL BOLD CAPITAL XI
+1D6B6 ; NFKC_SCF; 03BF # L& MATHEMATICAL BOLD CAPITAL OMICRON
+1D6B7 ; NFKC_SCF; 03C0 # L& MATHEMATICAL BOLD CAPITAL PI
+1D6B8 ; NFKC_SCF; 03C1 # L& MATHEMATICAL BOLD CAPITAL RHO
+1D6B9 ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+1D6BA ; NFKC_SCF; 03C3 # L& MATHEMATICAL BOLD CAPITAL SIGMA
+1D6BB ; NFKC_SCF; 03C4 # L& MATHEMATICAL BOLD CAPITAL TAU
+1D6BC ; NFKC_SCF; 03C5 # L& MATHEMATICAL BOLD CAPITAL UPSILON
+1D6BD ; NFKC_SCF; 03C6 # L& MATHEMATICAL BOLD CAPITAL PHI
+1D6BE ; NFKC_SCF; 03C7 # L& MATHEMATICAL BOLD CAPITAL CHI
+1D6BF ; NFKC_SCF; 03C8 # L& MATHEMATICAL BOLD CAPITAL PSI
+1D6C0 ; NFKC_SCF; 03C9 # L& MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; NFKC_SCF; 2207 # Sm MATHEMATICAL BOLD NABLA
+1D6C2 ; NFKC_SCF; 03B1 # L& MATHEMATICAL BOLD SMALL ALPHA
+1D6C3 ; NFKC_SCF; 03B2 # L& MATHEMATICAL BOLD SMALL BETA
+1D6C4 ; NFKC_SCF; 03B3 # L& MATHEMATICAL BOLD SMALL GAMMA
+1D6C5 ; NFKC_SCF; 03B4 # L& MATHEMATICAL BOLD SMALL DELTA
+1D6C6 ; NFKC_SCF; 03B5 # L& MATHEMATICAL BOLD SMALL EPSILON
+1D6C7 ; NFKC_SCF; 03B6 # L& MATHEMATICAL BOLD SMALL ZETA
+1D6C8 ; NFKC_SCF; 03B7 # L& MATHEMATICAL BOLD SMALL ETA
+1D6C9 ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD SMALL THETA
+1D6CA ; NFKC_SCF; 03B9 # L& MATHEMATICAL BOLD SMALL IOTA
+1D6CB ; NFKC_SCF; 03BA # L& MATHEMATICAL BOLD SMALL KAPPA
+1D6CC ; NFKC_SCF; 03BB # L& MATHEMATICAL BOLD SMALL LAMDA
+1D6CD ; NFKC_SCF; 03BC # L& MATHEMATICAL BOLD SMALL MU
+1D6CE ; NFKC_SCF; 03BD # L& MATHEMATICAL BOLD SMALL NU
+1D6CF ; NFKC_SCF; 03BE # L& MATHEMATICAL BOLD SMALL XI
+1D6D0 ; NFKC_SCF; 03BF # L& MATHEMATICAL BOLD SMALL OMICRON
+1D6D1 ; NFKC_SCF; 03C0 # L& MATHEMATICAL BOLD SMALL PI
+1D6D2 ; NFKC_SCF; 03C1 # L& MATHEMATICAL BOLD SMALL RHO
+1D6D3..1D6D4 ; NFKC_SCF; 03C3 # L& [2] MATHEMATICAL BOLD SMALL FINAL SIGMA..MATHEMATICAL BOLD SMALL SIGMA
+1D6D5 ; NFKC_SCF; 03C4 # L& MATHEMATICAL BOLD SMALL TAU
+1D6D6 ; NFKC_SCF; 03C5 # L& MATHEMATICAL BOLD SMALL UPSILON
+1D6D7 ; NFKC_SCF; 03C6 # L& MATHEMATICAL BOLD SMALL PHI
+1D6D8 ; NFKC_SCF; 03C7 # L& MATHEMATICAL BOLD SMALL CHI
+1D6D9 ; NFKC_SCF; 03C8 # L& MATHEMATICAL BOLD SMALL PSI
+1D6DA ; NFKC_SCF; 03C9 # L& MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; NFKC_SCF; 2202 # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC ; NFKC_SCF; 03B5 # L& MATHEMATICAL BOLD EPSILON SYMBOL
+1D6DD ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD THETA SYMBOL
+1D6DE ; NFKC_SCF; 03BA # L& MATHEMATICAL BOLD KAPPA SYMBOL
+1D6DF ; NFKC_SCF; 03C6 # L& MATHEMATICAL BOLD PHI SYMBOL
+1D6E0 ; NFKC_SCF; 03C1 # L& MATHEMATICAL BOLD RHO SYMBOL
+1D6E1 ; NFKC_SCF; 03C0 # L& MATHEMATICAL BOLD PI SYMBOL
+1D6E2 ; NFKC_SCF; 03B1 # L& MATHEMATICAL ITALIC CAPITAL ALPHA
+1D6E3 ; NFKC_SCF; 03B2 # L& MATHEMATICAL ITALIC CAPITAL BETA
+1D6E4 ; NFKC_SCF; 03B3 # L& MATHEMATICAL ITALIC CAPITAL GAMMA
+1D6E5 ; NFKC_SCF; 03B4 # L& MATHEMATICAL ITALIC CAPITAL DELTA
+1D6E6 ; NFKC_SCF; 03B5 # L& MATHEMATICAL ITALIC CAPITAL EPSILON
+1D6E7 ; NFKC_SCF; 03B6 # L& MATHEMATICAL ITALIC CAPITAL ZETA
+1D6E8 ; NFKC_SCF; 03B7 # L& MATHEMATICAL ITALIC CAPITAL ETA
+1D6E9 ; NFKC_SCF; 03B8 # L& MATHEMATICAL ITALIC CAPITAL THETA
+1D6EA ; NFKC_SCF; 03B9 # L& MATHEMATICAL ITALIC CAPITAL IOTA
+1D6EB ; NFKC_SCF; 03BA # L& MATHEMATICAL ITALIC CAPITAL KAPPA
+1D6EC ; NFKC_SCF; 03BB # L& MATHEMATICAL ITALIC CAPITAL LAMDA
+1D6ED ; NFKC_SCF; 03BC # L& MATHEMATICAL ITALIC CAPITAL MU
+1D6EE ; NFKC_SCF; 03BD # L& MATHEMATICAL ITALIC CAPITAL NU
+1D6EF ; NFKC_SCF; 03BE # L& MATHEMATICAL ITALIC CAPITAL XI
+1D6F0 ; NFKC_SCF; 03BF # L& MATHEMATICAL ITALIC CAPITAL OMICRON
+1D6F1 ; NFKC_SCF; 03C0 # L& MATHEMATICAL ITALIC CAPITAL PI
+1D6F2 ; NFKC_SCF; 03C1 # L& MATHEMATICAL ITALIC CAPITAL RHO
+1D6F3 ; NFKC_SCF; 03B8 # L& MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+1D6F4 ; NFKC_SCF; 03C3 # L& MATHEMATICAL ITALIC CAPITAL SIGMA
+1D6F5 ; NFKC_SCF; 03C4 # L& MATHEMATICAL ITALIC CAPITAL TAU
+1D6F6 ; NFKC_SCF; 03C5 # L& MATHEMATICAL ITALIC CAPITAL UPSILON
+1D6F7 ; NFKC_SCF; 03C6 # L& MATHEMATICAL ITALIC CAPITAL PHI
+1D6F8 ; NFKC_SCF; 03C7 # L& MATHEMATICAL ITALIC CAPITAL CHI
+1D6F9 ; NFKC_SCF; 03C8 # L& MATHEMATICAL ITALIC CAPITAL PSI
+1D6FA ; NFKC_SCF; 03C9 # L& MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; NFKC_SCF; 2207 # Sm MATHEMATICAL ITALIC NABLA
+1D6FC ; NFKC_SCF; 03B1 # L& MATHEMATICAL ITALIC SMALL ALPHA
+1D6FD ; NFKC_SCF; 03B2 # L& MATHEMATICAL ITALIC SMALL BETA
+1D6FE ; NFKC_SCF; 03B3 # L& MATHEMATICAL ITALIC SMALL GAMMA
+1D6FF ; NFKC_SCF; 03B4 # L& MATHEMATICAL ITALIC SMALL DELTA
+1D700 ; NFKC_SCF; 03B5 # L& MATHEMATICAL ITALIC SMALL EPSILON
+1D701 ; NFKC_SCF; 03B6 # L& MATHEMATICAL ITALIC SMALL ZETA
+1D702 ; NFKC_SCF; 03B7 # L& MATHEMATICAL ITALIC SMALL ETA
+1D703 ; NFKC_SCF; 03B8 # L& MATHEMATICAL ITALIC SMALL THETA
+1D704 ; NFKC_SCF; 03B9 # L& MATHEMATICAL ITALIC SMALL IOTA
+1D705 ; NFKC_SCF; 03BA # L& MATHEMATICAL ITALIC SMALL KAPPA
+1D706 ; NFKC_SCF; 03BB # L& MATHEMATICAL ITALIC SMALL LAMDA
+1D707 ; NFKC_SCF; 03BC # L& MATHEMATICAL ITALIC SMALL MU
+1D708 ; NFKC_SCF; 03BD # L& MATHEMATICAL ITALIC SMALL NU
+1D709 ; NFKC_SCF; 03BE # L& MATHEMATICAL ITALIC SMALL XI
+1D70A ; NFKC_SCF; 03BF # L& MATHEMATICAL ITALIC SMALL OMICRON
+1D70B ; NFKC_SCF; 03C0 # L& MATHEMATICAL ITALIC SMALL PI
+1D70C ; NFKC_SCF; 03C1 # L& MATHEMATICAL ITALIC SMALL RHO
+1D70D..1D70E ; NFKC_SCF; 03C3 # L& [2] MATHEMATICAL ITALIC SMALL FINAL SIGMA..MATHEMATICAL ITALIC SMALL SIGMA
+1D70F ; NFKC_SCF; 03C4 # L& MATHEMATICAL ITALIC SMALL TAU
+1D710 ; NFKC_SCF; 03C5 # L& MATHEMATICAL ITALIC SMALL UPSILON
+1D711 ; NFKC_SCF; 03C6 # L& MATHEMATICAL ITALIC SMALL PHI
+1D712 ; NFKC_SCF; 03C7 # L& MATHEMATICAL ITALIC SMALL CHI
+1D713 ; NFKC_SCF; 03C8 # L& MATHEMATICAL ITALIC SMALL PSI
+1D714 ; NFKC_SCF; 03C9 # L& MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; NFKC_SCF; 2202 # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716 ; NFKC_SCF; 03B5 # L& MATHEMATICAL ITALIC EPSILON SYMBOL
+1D717 ; NFKC_SCF; 03B8 # L& MATHEMATICAL ITALIC THETA SYMBOL
+1D718 ; NFKC_SCF; 03BA # L& MATHEMATICAL ITALIC KAPPA SYMBOL
+1D719 ; NFKC_SCF; 03C6 # L& MATHEMATICAL ITALIC PHI SYMBOL
+1D71A ; NFKC_SCF; 03C1 # L& MATHEMATICAL ITALIC RHO SYMBOL
+1D71B ; NFKC_SCF; 03C0 # L& MATHEMATICAL ITALIC PI SYMBOL
+1D71C ; NFKC_SCF; 03B1 # L& MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+1D71D ; NFKC_SCF; 03B2 # L& MATHEMATICAL BOLD ITALIC CAPITAL BETA
+1D71E ; NFKC_SCF; 03B3 # L& MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+1D71F ; NFKC_SCF; 03B4 # L& MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+1D720 ; NFKC_SCF; 03B5 # L& MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+1D721 ; NFKC_SCF; 03B6 # L& MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+1D722 ; NFKC_SCF; 03B7 # L& MATHEMATICAL BOLD ITALIC CAPITAL ETA
+1D723 ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD ITALIC CAPITAL THETA
+1D724 ; NFKC_SCF; 03B9 # L& MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+1D725 ; NFKC_SCF; 03BA # L& MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+1D726 ; NFKC_SCF; 03BB # L& MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+1D727 ; NFKC_SCF; 03BC # L& MATHEMATICAL BOLD ITALIC CAPITAL MU
+1D728 ; NFKC_SCF; 03BD # L& MATHEMATICAL BOLD ITALIC CAPITAL NU
+1D729 ; NFKC_SCF; 03BE # L& MATHEMATICAL BOLD ITALIC CAPITAL XI
+1D72A ; NFKC_SCF; 03BF # L& MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+1D72B ; NFKC_SCF; 03C0 # L& MATHEMATICAL BOLD ITALIC CAPITAL PI
+1D72C ; NFKC_SCF; 03C1 # L& MATHEMATICAL BOLD ITALIC CAPITAL RHO
+1D72D ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+1D72E ; NFKC_SCF; 03C3 # L& MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+1D72F ; NFKC_SCF; 03C4 # L& MATHEMATICAL BOLD ITALIC CAPITAL TAU
+1D730 ; NFKC_SCF; 03C5 # L& MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+1D731 ; NFKC_SCF; 03C6 # L& MATHEMATICAL BOLD ITALIC CAPITAL PHI
+1D732 ; NFKC_SCF; 03C7 # L& MATHEMATICAL BOLD ITALIC CAPITAL CHI
+1D733 ; NFKC_SCF; 03C8 # L& MATHEMATICAL BOLD ITALIC CAPITAL PSI
+1D734 ; NFKC_SCF; 03C9 # L& MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; NFKC_SCF; 2207 # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736 ; NFKC_SCF; 03B1 # L& MATHEMATICAL BOLD ITALIC SMALL ALPHA
+1D737 ; NFKC_SCF; 03B2 # L& MATHEMATICAL BOLD ITALIC SMALL BETA
+1D738 ; NFKC_SCF; 03B3 # L& MATHEMATICAL BOLD ITALIC SMALL GAMMA
+1D739 ; NFKC_SCF; 03B4 # L& MATHEMATICAL BOLD ITALIC SMALL DELTA
+1D73A ; NFKC_SCF; 03B5 # L& MATHEMATICAL BOLD ITALIC SMALL EPSILON
+1D73B ; NFKC_SCF; 03B6 # L& MATHEMATICAL BOLD ITALIC SMALL ZETA
+1D73C ; NFKC_SCF; 03B7 # L& MATHEMATICAL BOLD ITALIC SMALL ETA
+1D73D ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD ITALIC SMALL THETA
+1D73E ; NFKC_SCF; 03B9 # L& MATHEMATICAL BOLD ITALIC SMALL IOTA
+1D73F ; NFKC_SCF; 03BA # L& MATHEMATICAL BOLD ITALIC SMALL KAPPA
+1D740 ; NFKC_SCF; 03BB # L& MATHEMATICAL BOLD ITALIC SMALL LAMDA
+1D741 ; NFKC_SCF; 03BC # L& MATHEMATICAL BOLD ITALIC SMALL MU
+1D742 ; NFKC_SCF; 03BD # L& MATHEMATICAL BOLD ITALIC SMALL NU
+1D743 ; NFKC_SCF; 03BE # L& MATHEMATICAL BOLD ITALIC SMALL XI
+1D744 ; NFKC_SCF; 03BF # L& MATHEMATICAL BOLD ITALIC SMALL OMICRON
+1D745 ; NFKC_SCF; 03C0 # L& MATHEMATICAL BOLD ITALIC SMALL PI
+1D746 ; NFKC_SCF; 03C1 # L& MATHEMATICAL BOLD ITALIC SMALL RHO
+1D747..1D748 ; NFKC_SCF; 03C3 # L& [2] MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL BOLD ITALIC SMALL SIGMA
+1D749 ; NFKC_SCF; 03C4 # L& MATHEMATICAL BOLD ITALIC SMALL TAU
+1D74A ; NFKC_SCF; 03C5 # L& MATHEMATICAL BOLD ITALIC SMALL UPSILON
+1D74B ; NFKC_SCF; 03C6 # L& MATHEMATICAL BOLD ITALIC SMALL PHI
+1D74C ; NFKC_SCF; 03C7 # L& MATHEMATICAL BOLD ITALIC SMALL CHI
+1D74D ; NFKC_SCF; 03C8 # L& MATHEMATICAL BOLD ITALIC SMALL PSI
+1D74E ; NFKC_SCF; 03C9 # L& MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; NFKC_SCF; 2202 # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750 ; NFKC_SCF; 03B5 # L& MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
+1D751 ; NFKC_SCF; 03B8 # L& MATHEMATICAL BOLD ITALIC THETA SYMBOL
+1D752 ; NFKC_SCF; 03BA # L& MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
+1D753 ; NFKC_SCF; 03C6 # L& MATHEMATICAL BOLD ITALIC PHI SYMBOL
+1D754 ; NFKC_SCF; 03C1 # L& MATHEMATICAL BOLD ITALIC RHO SYMBOL
+1D755 ; NFKC_SCF; 03C0 # L& MATHEMATICAL BOLD ITALIC PI SYMBOL
+1D756 ; NFKC_SCF; 03B1 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+1D757 ; NFKC_SCF; 03B2 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+1D758 ; NFKC_SCF; 03B3 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+1D759 ; NFKC_SCF; 03B4 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+1D75A ; NFKC_SCF; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+1D75B ; NFKC_SCF; 03B6 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+1D75C ; NFKC_SCF; 03B7 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+1D75D ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+1D75E ; NFKC_SCF; 03B9 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+1D75F ; NFKC_SCF; 03BA # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+1D760 ; NFKC_SCF; 03BB # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+1D761 ; NFKC_SCF; 03BC # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+1D762 ; NFKC_SCF; 03BD # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+1D763 ; NFKC_SCF; 03BE # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+1D764 ; NFKC_SCF; 03BF # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+1D765 ; NFKC_SCF; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+1D766 ; NFKC_SCF; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+1D767 ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+1D768 ; NFKC_SCF; 03C3 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+1D769 ; NFKC_SCF; 03C4 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+1D76A ; NFKC_SCF; 03C5 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+1D76B ; NFKC_SCF; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+1D76C ; NFKC_SCF; 03C7 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+1D76D ; NFKC_SCF; 03C8 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+1D76E ; NFKC_SCF; 03C9 # L& MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; NFKC_SCF; 2207 # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770 ; NFKC_SCF; 03B1 # L& MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
+1D771 ; NFKC_SCF; 03B2 # L& MATHEMATICAL SANS-SERIF BOLD SMALL BETA
+1D772 ; NFKC_SCF; 03B3 # L& MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
+1D773 ; NFKC_SCF; 03B4 # L& MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
+1D774 ; NFKC_SCF; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
+1D775 ; NFKC_SCF; 03B6 # L& MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
+1D776 ; NFKC_SCF; 03B7 # L& MATHEMATICAL SANS-SERIF BOLD SMALL ETA
+1D777 ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD SMALL THETA
+1D778 ; NFKC_SCF; 03B9 # L& MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
+1D779 ; NFKC_SCF; 03BA # L& MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
+1D77A ; NFKC_SCF; 03BB # L& MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
+1D77B ; NFKC_SCF; 03BC # L& MATHEMATICAL SANS-SERIF BOLD SMALL MU
+1D77C ; NFKC_SCF; 03BD # L& MATHEMATICAL SANS-SERIF BOLD SMALL NU
+1D77D ; NFKC_SCF; 03BE # L& MATHEMATICAL SANS-SERIF BOLD SMALL XI
+1D77E ; NFKC_SCF; 03BF # L& MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
+1D77F ; NFKC_SCF; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD SMALL PI
+1D780 ; NFKC_SCF; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD SMALL RHO
+1D781..1D782 ; NFKC_SCF; 03C3 # L& [2] MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+1D783 ; NFKC_SCF; 03C4 # L& MATHEMATICAL SANS-SERIF BOLD SMALL TAU
+1D784 ; NFKC_SCF; 03C5 # L& MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
+1D785 ; NFKC_SCF; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD SMALL PHI
+1D786 ; NFKC_SCF; 03C7 # L& MATHEMATICAL SANS-SERIF BOLD SMALL CHI
+1D787 ; NFKC_SCF; 03C8 # L& MATHEMATICAL SANS-SERIF BOLD SMALL PSI
+1D788 ; NFKC_SCF; 03C9 # L& MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; NFKC_SCF; 2202 # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A ; NFKC_SCF; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
+1D78B ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
+1D78C ; NFKC_SCF; 03BA # L& MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
+1D78D ; NFKC_SCF; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
+1D78E ; NFKC_SCF; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
+1D78F ; NFKC_SCF; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+1D790 ; NFKC_SCF; 03B1 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+1D791 ; NFKC_SCF; 03B2 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+1D792 ; NFKC_SCF; 03B3 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+1D793 ; NFKC_SCF; 03B4 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+1D794 ; NFKC_SCF; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+1D795 ; NFKC_SCF; 03B6 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+1D796 ; NFKC_SCF; 03B7 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+1D797 ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+1D798 ; NFKC_SCF; 03B9 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+1D799 ; NFKC_SCF; 03BA # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+1D79A ; NFKC_SCF; 03BB # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+1D79B ; NFKC_SCF; 03BC # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+1D79C ; NFKC_SCF; 03BD # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+1D79D ; NFKC_SCF; 03BE # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+1D79E ; NFKC_SCF; 03BF # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+1D79F ; NFKC_SCF; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+1D7A0 ; NFKC_SCF; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+1D7A1 ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+1D7A2 ; NFKC_SCF; 03C3 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+1D7A3 ; NFKC_SCF; 03C4 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+1D7A4 ; NFKC_SCF; 03C5 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+1D7A5 ; NFKC_SCF; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+1D7A6 ; NFKC_SCF; 03C7 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+1D7A7 ; NFKC_SCF; 03C8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+1D7A8 ; NFKC_SCF; 03C9 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; NFKC_SCF; 2207 # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA ; NFKC_SCF; 03B1 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
+1D7AB ; NFKC_SCF; 03B2 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
+1D7AC ; NFKC_SCF; 03B3 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
+1D7AD ; NFKC_SCF; 03B4 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
+1D7AE ; NFKC_SCF; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
+1D7AF ; NFKC_SCF; 03B6 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
+1D7B0 ; NFKC_SCF; 03B7 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
+1D7B1 ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
+1D7B2 ; NFKC_SCF; 03B9 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
+1D7B3 ; NFKC_SCF; 03BA # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
+1D7B4 ; NFKC_SCF; 03BB # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
+1D7B5 ; NFKC_SCF; 03BC # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
+1D7B6 ; NFKC_SCF; 03BD # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
+1D7B7 ; NFKC_SCF; 03BE # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
+1D7B8 ; NFKC_SCF; 03BF # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
+1D7B9 ; NFKC_SCF; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
+1D7BA ; NFKC_SCF; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
+1D7BB..1D7BC ; NFKC_SCF; 03C3 # L& [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
+1D7BD ; NFKC_SCF; 03C4 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
+1D7BE ; NFKC_SCF; 03C5 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
+1D7BF ; NFKC_SCF; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
+1D7C0 ; NFKC_SCF; 03C7 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
+1D7C1 ; NFKC_SCF; 03C8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
+1D7C2 ; NFKC_SCF; 03C9 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; NFKC_SCF; 2202 # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4 ; NFKC_SCF; 03B5 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+1D7C5 ; NFKC_SCF; 03B8 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
+1D7C6 ; NFKC_SCF; 03BA # L& MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+1D7C7 ; NFKC_SCF; 03C6 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
+1D7C8 ; NFKC_SCF; 03C1 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
+1D7C9 ; NFKC_SCF; 03C0 # L& MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+1D7CA..1D7CB ; NFKC_SCF; 03DD # L& [2] MATHEMATICAL BOLD CAPITAL DIGAMMA..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE ; NFKC_SCF; 0030 # Nd MATHEMATICAL BOLD DIGIT ZERO
+1D7CF ; NFKC_SCF; 0031 # Nd MATHEMATICAL BOLD DIGIT ONE
+1D7D0 ; NFKC_SCF; 0032 # Nd MATHEMATICAL BOLD DIGIT TWO
+1D7D1 ; NFKC_SCF; 0033 # Nd MATHEMATICAL BOLD DIGIT THREE
+1D7D2 ; NFKC_SCF; 0034 # Nd MATHEMATICAL BOLD DIGIT FOUR
+1D7D3 ; NFKC_SCF; 0035 # Nd MATHEMATICAL BOLD DIGIT FIVE
+1D7D4 ; NFKC_SCF; 0036 # Nd MATHEMATICAL BOLD DIGIT SIX
+1D7D5 ; NFKC_SCF; 0037 # Nd MATHEMATICAL BOLD DIGIT SEVEN
+1D7D6 ; NFKC_SCF; 0038 # Nd MATHEMATICAL BOLD DIGIT EIGHT
+1D7D7 ; NFKC_SCF; 0039 # Nd MATHEMATICAL BOLD DIGIT NINE
+1D7D8 ; NFKC_SCF; 0030 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+1D7D9 ; NFKC_SCF; 0031 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+1D7DA ; NFKC_SCF; 0032 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+1D7DB ; NFKC_SCF; 0033 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+1D7DC ; NFKC_SCF; 0034 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+1D7DD ; NFKC_SCF; 0035 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+1D7DE ; NFKC_SCF; 0036 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+1D7DF ; NFKC_SCF; 0037 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+1D7E0 ; NFKC_SCF; 0038 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+1D7E1 ; NFKC_SCF; 0039 # Nd MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+1D7E2 ; NFKC_SCF; 0030 # Nd MATHEMATICAL SANS-SERIF DIGIT ZERO
+1D7E3 ; NFKC_SCF; 0031 # Nd MATHEMATICAL SANS-SERIF DIGIT ONE
+1D7E4 ; NFKC_SCF; 0032 # Nd MATHEMATICAL SANS-SERIF DIGIT TWO
+1D7E5 ; NFKC_SCF; 0033 # Nd MATHEMATICAL SANS-SERIF DIGIT THREE
+1D7E6 ; NFKC_SCF; 0034 # Nd MATHEMATICAL SANS-SERIF DIGIT FOUR
+1D7E7 ; NFKC_SCF; 0035 # Nd MATHEMATICAL SANS-SERIF DIGIT FIVE
+1D7E8 ; NFKC_SCF; 0036 # Nd MATHEMATICAL SANS-SERIF DIGIT SIX
+1D7E9 ; NFKC_SCF; 0037 # Nd MATHEMATICAL SANS-SERIF DIGIT SEVEN
+1D7EA ; NFKC_SCF; 0038 # Nd MATHEMATICAL SANS-SERIF DIGIT EIGHT
+1D7EB ; NFKC_SCF; 0039 # Nd MATHEMATICAL SANS-SERIF DIGIT NINE
+1D7EC ; NFKC_SCF; 0030 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+1D7ED ; NFKC_SCF; 0031 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+1D7EE ; NFKC_SCF; 0032 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+1D7EF ; NFKC_SCF; 0033 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+1D7F0 ; NFKC_SCF; 0034 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+1D7F1 ; NFKC_SCF; 0035 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+1D7F2 ; NFKC_SCF; 0036 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+1D7F3 ; NFKC_SCF; 0037 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+1D7F4 ; NFKC_SCF; 0038 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+1D7F5 ; NFKC_SCF; 0039 # Nd MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+1D7F6 ; NFKC_SCF; 0030 # Nd MATHEMATICAL MONOSPACE DIGIT ZERO
+1D7F7 ; NFKC_SCF; 0031 # Nd MATHEMATICAL MONOSPACE DIGIT ONE
+1D7F8 ; NFKC_SCF; 0032 # Nd MATHEMATICAL MONOSPACE DIGIT TWO
+1D7F9 ; NFKC_SCF; 0033 # Nd MATHEMATICAL MONOSPACE DIGIT THREE
+1D7FA ; NFKC_SCF; 0034 # Nd MATHEMATICAL MONOSPACE DIGIT FOUR
+1D7FB ; NFKC_SCF; 0035 # Nd MATHEMATICAL MONOSPACE DIGIT FIVE
+1D7FC ; NFKC_SCF; 0036 # Nd MATHEMATICAL MONOSPACE DIGIT SIX
+1D7FD ; NFKC_SCF; 0037 # Nd MATHEMATICAL MONOSPACE DIGIT SEVEN
+1D7FE ; NFKC_SCF; 0038 # Nd MATHEMATICAL MONOSPACE DIGIT EIGHT
+1D7FF ; NFKC_SCF; 0039 # Nd MATHEMATICAL MONOSPACE DIGIT NINE
+1E030 ; NFKC_SCF; 0430 # Lm MODIFIER LETTER CYRILLIC SMALL A
+1E031 ; NFKC_SCF; 0431 # Lm MODIFIER LETTER CYRILLIC SMALL BE
+1E032 ; NFKC_SCF; 0432 # Lm MODIFIER LETTER CYRILLIC SMALL VE
+1E033 ; NFKC_SCF; 0433 # Lm MODIFIER LETTER CYRILLIC SMALL GHE
+1E034 ; NFKC_SCF; 0434 # Lm MODIFIER LETTER CYRILLIC SMALL DE
+1E035 ; NFKC_SCF; 0435 # Lm MODIFIER LETTER CYRILLIC SMALL IE
+1E036 ; NFKC_SCF; 0436 # Lm MODIFIER LETTER CYRILLIC SMALL ZHE
+1E037 ; NFKC_SCF; 0437 # Lm MODIFIER LETTER CYRILLIC SMALL ZE
+1E038 ; NFKC_SCF; 0438 # Lm MODIFIER LETTER CYRILLIC SMALL I
+1E039 ; NFKC_SCF; 043A # Lm MODIFIER LETTER CYRILLIC SMALL KA
+1E03A ; NFKC_SCF; 043B # Lm MODIFIER LETTER CYRILLIC SMALL EL
+1E03B ; NFKC_SCF; 043C # Lm MODIFIER LETTER CYRILLIC SMALL EM
+1E03C ; NFKC_SCF; 043E # Lm MODIFIER LETTER CYRILLIC SMALL O
+1E03D ; NFKC_SCF; 043F # Lm MODIFIER LETTER CYRILLIC SMALL PE
+1E03E ; NFKC_SCF; 0440 # Lm MODIFIER LETTER CYRILLIC SMALL ER
+1E03F ; NFKC_SCF; 0441 # Lm MODIFIER LETTER CYRILLIC SMALL ES
+1E040 ; NFKC_SCF; 0442 # Lm MODIFIER LETTER CYRILLIC SMALL TE
+1E041 ; NFKC_SCF; 0443 # Lm MODIFIER LETTER CYRILLIC SMALL U
+1E042 ; NFKC_SCF; 0444 # Lm MODIFIER LETTER CYRILLIC SMALL EF
+1E043 ; NFKC_SCF; 0445 # Lm MODIFIER LETTER CYRILLIC SMALL HA
+1E044 ; NFKC_SCF; 0446 # Lm MODIFIER LETTER CYRILLIC SMALL TSE
+1E045 ; NFKC_SCF; 0447 # Lm MODIFIER LETTER CYRILLIC SMALL CHE
+1E046 ; NFKC_SCF; 0448 # Lm MODIFIER LETTER CYRILLIC SMALL SHA
+1E047 ; NFKC_SCF; 044B # Lm MODIFIER LETTER CYRILLIC SMALL YERU
+1E048 ; NFKC_SCF; 044D # Lm MODIFIER LETTER CYRILLIC SMALL E
+1E049 ; NFKC_SCF; 044E # Lm MODIFIER LETTER CYRILLIC SMALL YU
+1E04A ; NFKC_SCF; A689 # Lm MODIFIER LETTER CYRILLIC SMALL DZZE
+1E04B ; NFKC_SCF; 04D9 # Lm MODIFIER LETTER CYRILLIC SMALL SCHWA
+1E04C ; NFKC_SCF; 0456 # Lm MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+1E04D ; NFKC_SCF; 0458 # Lm MODIFIER LETTER CYRILLIC SMALL JE
+1E04E ; NFKC_SCF; 04E9 # Lm MODIFIER LETTER CYRILLIC SMALL BARRED O
+1E04F ; NFKC_SCF; 04AF # Lm MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+1E050 ; NFKC_SCF; 04CF # Lm MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+1E051 ; NFKC_SCF; 0430 # Lm CYRILLIC SUBSCRIPT SMALL LETTER A
+1E052 ; NFKC_SCF; 0431 # Lm CYRILLIC SUBSCRIPT SMALL LETTER BE
+1E053 ; NFKC_SCF; 0432 # Lm CYRILLIC SUBSCRIPT SMALL LETTER VE
+1E054 ; NFKC_SCF; 0433 # Lm CYRILLIC SUBSCRIPT SMALL LETTER GHE
+1E055 ; NFKC_SCF; 0434 # Lm CYRILLIC SUBSCRIPT SMALL LETTER DE
+1E056 ; NFKC_SCF; 0435 # Lm CYRILLIC SUBSCRIPT SMALL LETTER IE
+1E057 ; NFKC_SCF; 0436 # Lm CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+1E058 ; NFKC_SCF; 0437 # Lm CYRILLIC SUBSCRIPT SMALL LETTER ZE
+1E059 ; NFKC_SCF; 0438 # Lm CYRILLIC SUBSCRIPT SMALL LETTER I
+1E05A ; NFKC_SCF; 043A # Lm CYRILLIC SUBSCRIPT SMALL LETTER KA
+1E05B ; NFKC_SCF; 043B # Lm CYRILLIC SUBSCRIPT SMALL LETTER EL
+1E05C ; NFKC_SCF; 043E # Lm CYRILLIC SUBSCRIPT SMALL LETTER O
+1E05D ; NFKC_SCF; 043F # Lm CYRILLIC SUBSCRIPT SMALL LETTER PE
+1E05E ; NFKC_SCF; 0441 # Lm CYRILLIC SUBSCRIPT SMALL LETTER ES
+1E05F ; NFKC_SCF; 0443 # Lm CYRILLIC SUBSCRIPT SMALL LETTER U
+1E060 ; NFKC_SCF; 0444 # Lm CYRILLIC SUBSCRIPT SMALL LETTER EF
+1E061 ; NFKC_SCF; 0445 # Lm CYRILLIC SUBSCRIPT SMALL LETTER HA
+1E062 ; NFKC_SCF; 0446 # Lm CYRILLIC SUBSCRIPT SMALL LETTER TSE
+1E063 ; NFKC_SCF; 0447 # Lm CYRILLIC SUBSCRIPT SMALL LETTER CHE
+1E064 ; NFKC_SCF; 0448 # Lm CYRILLIC SUBSCRIPT SMALL LETTER SHA
+1E065 ; NFKC_SCF; 044A # Lm CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+1E066 ; NFKC_SCF; 044B # Lm CYRILLIC SUBSCRIPT SMALL LETTER YERU
+1E067 ; NFKC_SCF; 0491 # Lm CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+1E068 ; NFKC_SCF; 0456 # Lm CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E069 ; NFKC_SCF; 0455 # Lm CYRILLIC SUBSCRIPT SMALL LETTER DZE
+1E06A ; NFKC_SCF; 045F # Lm CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+1E06B ; NFKC_SCF; 04AB # Lm MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+1E06C ; NFKC_SCF; A651 # Lm MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+1E06D ; NFKC_SCF; 04B1 # Lm MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E900 ; NFKC_SCF; 1E922 # L& ADLAM CAPITAL LETTER ALIF
+1E901 ; NFKC_SCF; 1E923 # L& ADLAM CAPITAL LETTER DAALI
+1E902 ; NFKC_SCF; 1E924 # L& ADLAM CAPITAL LETTER LAAM
+1E903 ; NFKC_SCF; 1E925 # L& ADLAM CAPITAL LETTER MIIM
+1E904 ; NFKC_SCF; 1E926 # L& ADLAM CAPITAL LETTER BA
+1E905 ; NFKC_SCF; 1E927 # L& ADLAM CAPITAL LETTER SINNYIIYHE
+1E906 ; NFKC_SCF; 1E928 # L& ADLAM CAPITAL LETTER PE
+1E907 ; NFKC_SCF; 1E929 # L& ADLAM CAPITAL LETTER BHE
+1E908 ; NFKC_SCF; 1E92A # L& ADLAM CAPITAL LETTER RA
+1E909 ; NFKC_SCF; 1E92B # L& ADLAM CAPITAL LETTER E
+1E90A ; NFKC_SCF; 1E92C # L& ADLAM CAPITAL LETTER FA
+1E90B ; NFKC_SCF; 1E92D # L& ADLAM CAPITAL LETTER I
+1E90C ; NFKC_SCF; 1E92E # L& ADLAM CAPITAL LETTER O
+1E90D ; NFKC_SCF; 1E92F # L& ADLAM CAPITAL LETTER DHA
+1E90E ; NFKC_SCF; 1E930 # L& ADLAM CAPITAL LETTER YHE
+1E90F ; NFKC_SCF; 1E931 # L& ADLAM CAPITAL LETTER WAW
+1E910 ; NFKC_SCF; 1E932 # L& ADLAM CAPITAL LETTER NUN
+1E911 ; NFKC_SCF; 1E933 # L& ADLAM CAPITAL LETTER KAF
+1E912 ; NFKC_SCF; 1E934 # L& ADLAM CAPITAL LETTER YA
+1E913 ; NFKC_SCF; 1E935 # L& ADLAM CAPITAL LETTER U
+1E914 ; NFKC_SCF; 1E936 # L& ADLAM CAPITAL LETTER JIIM
+1E915 ; NFKC_SCF; 1E937 # L& ADLAM CAPITAL LETTER CHI
+1E916 ; NFKC_SCF; 1E938 # L& ADLAM CAPITAL LETTER HA
+1E917 ; NFKC_SCF; 1E939 # L& ADLAM CAPITAL LETTER QAAF
+1E918 ; NFKC_SCF; 1E93A # L& ADLAM CAPITAL LETTER GA
+1E919 ; NFKC_SCF; 1E93B # L& ADLAM CAPITAL LETTER NYA
+1E91A ; NFKC_SCF; 1E93C # L& ADLAM CAPITAL LETTER TU
+1E91B ; NFKC_SCF; 1E93D # L& ADLAM CAPITAL LETTER NHA
+1E91C ; NFKC_SCF; 1E93E # L& ADLAM CAPITAL LETTER VA
+1E91D ; NFKC_SCF; 1E93F # L& ADLAM CAPITAL LETTER KHA
+1E91E ; NFKC_SCF; 1E940 # L& ADLAM CAPITAL LETTER GBE
+1E91F ; NFKC_SCF; 1E941 # L& ADLAM CAPITAL LETTER ZAL
+1E920 ; NFKC_SCF; 1E942 # L& ADLAM CAPITAL LETTER KPO
+1E921 ; NFKC_SCF; 1E943 # L& ADLAM CAPITAL LETTER SHA
+1EE00 ; NFKC_SCF; 0627 # Lo ARABIC MATHEMATICAL ALEF
+1EE01 ; NFKC_SCF; 0628 # Lo ARABIC MATHEMATICAL BEH
+1EE02 ; NFKC_SCF; 062C # Lo ARABIC MATHEMATICAL JEEM
+1EE03 ; NFKC_SCF; 062F # Lo ARABIC MATHEMATICAL DAL
+1EE05 ; NFKC_SCF; 0648 # Lo ARABIC MATHEMATICAL WAW
+1EE06 ; NFKC_SCF; 0632 # Lo ARABIC MATHEMATICAL ZAIN
+1EE07 ; NFKC_SCF; 062D # Lo ARABIC MATHEMATICAL HAH
+1EE08 ; NFKC_SCF; 0637 # Lo ARABIC MATHEMATICAL TAH
+1EE09 ; NFKC_SCF; 064A # Lo ARABIC MATHEMATICAL YEH
+1EE0A ; NFKC_SCF; 0643 # Lo ARABIC MATHEMATICAL KAF
+1EE0B ; NFKC_SCF; 0644 # Lo ARABIC MATHEMATICAL LAM
+1EE0C ; NFKC_SCF; 0645 # Lo ARABIC MATHEMATICAL MEEM
+1EE0D ; NFKC_SCF; 0646 # Lo ARABIC MATHEMATICAL NOON
+1EE0E ; NFKC_SCF; 0633 # Lo ARABIC MATHEMATICAL SEEN
+1EE0F ; NFKC_SCF; 0639 # Lo ARABIC MATHEMATICAL AIN
+1EE10 ; NFKC_SCF; 0641 # Lo ARABIC MATHEMATICAL FEH
+1EE11 ; NFKC_SCF; 0635 # Lo ARABIC MATHEMATICAL SAD
+1EE12 ; NFKC_SCF; 0642 # Lo ARABIC MATHEMATICAL QAF
+1EE13 ; NFKC_SCF; 0631 # Lo ARABIC MATHEMATICAL REH
+1EE14 ; NFKC_SCF; 0634 # Lo ARABIC MATHEMATICAL SHEEN
+1EE15 ; NFKC_SCF; 062A # Lo ARABIC MATHEMATICAL TEH
+1EE16 ; NFKC_SCF; 062B # Lo ARABIC MATHEMATICAL THEH
+1EE17 ; NFKC_SCF; 062E # Lo ARABIC MATHEMATICAL KHAH
+1EE18 ; NFKC_SCF; 0630 # Lo ARABIC MATHEMATICAL THAL
+1EE19 ; NFKC_SCF; 0636 # Lo ARABIC MATHEMATICAL DAD
+1EE1A ; NFKC_SCF; 0638 # Lo ARABIC MATHEMATICAL ZAH
+1EE1B ; NFKC_SCF; 063A # Lo ARABIC MATHEMATICAL GHAIN
+1EE1C ; NFKC_SCF; 066E # Lo ARABIC MATHEMATICAL DOTLESS BEH
+1EE1D ; NFKC_SCF; 06BA # Lo ARABIC MATHEMATICAL DOTLESS NOON
+1EE1E ; NFKC_SCF; 06A1 # Lo ARABIC MATHEMATICAL DOTLESS FEH
+1EE1F ; NFKC_SCF; 066F # Lo ARABIC MATHEMATICAL DOTLESS QAF
+1EE21 ; NFKC_SCF; 0628 # Lo ARABIC MATHEMATICAL INITIAL BEH
+1EE22 ; NFKC_SCF; 062C # Lo ARABIC MATHEMATICAL INITIAL JEEM
+1EE24 ; NFKC_SCF; 0647 # Lo ARABIC MATHEMATICAL INITIAL HEH
+1EE27 ; NFKC_SCF; 062D # Lo ARABIC MATHEMATICAL INITIAL HAH
+1EE29 ; NFKC_SCF; 064A # Lo ARABIC MATHEMATICAL INITIAL YEH
+1EE2A ; NFKC_SCF; 0643 # Lo ARABIC MATHEMATICAL INITIAL KAF
+1EE2B ; NFKC_SCF; 0644 # Lo ARABIC MATHEMATICAL INITIAL LAM
+1EE2C ; NFKC_SCF; 0645 # Lo ARABIC MATHEMATICAL INITIAL MEEM
+1EE2D ; NFKC_SCF; 0646 # Lo ARABIC MATHEMATICAL INITIAL NOON
+1EE2E ; NFKC_SCF; 0633 # Lo ARABIC MATHEMATICAL INITIAL SEEN
+1EE2F ; NFKC_SCF; 0639 # Lo ARABIC MATHEMATICAL INITIAL AIN
+1EE30 ; NFKC_SCF; 0641 # Lo ARABIC MATHEMATICAL INITIAL FEH
+1EE31 ; NFKC_SCF; 0635 # Lo ARABIC MATHEMATICAL INITIAL SAD
+1EE32 ; NFKC_SCF; 0642 # Lo ARABIC MATHEMATICAL INITIAL QAF
+1EE34 ; NFKC_SCF; 0634 # Lo ARABIC MATHEMATICAL INITIAL SHEEN
+1EE35 ; NFKC_SCF; 062A # Lo ARABIC MATHEMATICAL INITIAL TEH
+1EE36 ; NFKC_SCF; 062B # Lo ARABIC MATHEMATICAL INITIAL THEH
+1EE37 ; NFKC_SCF; 062E # Lo ARABIC MATHEMATICAL INITIAL KHAH
+1EE39 ; NFKC_SCF; 0636 # Lo ARABIC MATHEMATICAL INITIAL DAD
+1EE3B ; NFKC_SCF; 063A # Lo ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42 ; NFKC_SCF; 062C # Lo ARABIC MATHEMATICAL TAILED JEEM
+1EE47 ; NFKC_SCF; 062D # Lo ARABIC MATHEMATICAL TAILED HAH
+1EE49 ; NFKC_SCF; 064A # Lo ARABIC MATHEMATICAL TAILED YEH
+1EE4B ; NFKC_SCF; 0644 # Lo ARABIC MATHEMATICAL TAILED LAM
+1EE4D ; NFKC_SCF; 0646 # Lo ARABIC MATHEMATICAL TAILED NOON
+1EE4E ; NFKC_SCF; 0633 # Lo ARABIC MATHEMATICAL TAILED SEEN
+1EE4F ; NFKC_SCF; 0639 # Lo ARABIC MATHEMATICAL TAILED AIN
+1EE51 ; NFKC_SCF; 0635 # Lo ARABIC MATHEMATICAL TAILED SAD
+1EE52 ; NFKC_SCF; 0642 # Lo ARABIC MATHEMATICAL TAILED QAF
+1EE54 ; NFKC_SCF; 0634 # Lo ARABIC MATHEMATICAL TAILED SHEEN
+1EE57 ; NFKC_SCF; 062E # Lo ARABIC MATHEMATICAL TAILED KHAH
+1EE59 ; NFKC_SCF; 0636 # Lo ARABIC MATHEMATICAL TAILED DAD
+1EE5B ; NFKC_SCF; 063A # Lo ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D ; NFKC_SCF; 06BA # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F ; NFKC_SCF; 066F # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61 ; NFKC_SCF; 0628 # Lo ARABIC MATHEMATICAL STRETCHED BEH
+1EE62 ; NFKC_SCF; 062C # Lo ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64 ; NFKC_SCF; 0647 # Lo ARABIC MATHEMATICAL STRETCHED HEH
+1EE67 ; NFKC_SCF; 062D # Lo ARABIC MATHEMATICAL STRETCHED HAH
+1EE68 ; NFKC_SCF; 0637 # Lo ARABIC MATHEMATICAL STRETCHED TAH
+1EE69 ; NFKC_SCF; 064A # Lo ARABIC MATHEMATICAL STRETCHED YEH
+1EE6A ; NFKC_SCF; 0643 # Lo ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C ; NFKC_SCF; 0645 # Lo ARABIC MATHEMATICAL STRETCHED MEEM
+1EE6D ; NFKC_SCF; 0646 # Lo ARABIC MATHEMATICAL STRETCHED NOON
+1EE6E ; NFKC_SCF; 0633 # Lo ARABIC MATHEMATICAL STRETCHED SEEN
+1EE6F ; NFKC_SCF; 0639 # Lo ARABIC MATHEMATICAL STRETCHED AIN
+1EE70 ; NFKC_SCF; 0641 # Lo ARABIC MATHEMATICAL STRETCHED FEH
+1EE71 ; NFKC_SCF; 0635 # Lo ARABIC MATHEMATICAL STRETCHED SAD
+1EE72 ; NFKC_SCF; 0642 # Lo ARABIC MATHEMATICAL STRETCHED QAF
+1EE74 ; NFKC_SCF; 0634 # Lo ARABIC MATHEMATICAL STRETCHED SHEEN
+1EE75 ; NFKC_SCF; 062A # Lo ARABIC MATHEMATICAL STRETCHED TEH
+1EE76 ; NFKC_SCF; 062B # Lo ARABIC MATHEMATICAL STRETCHED THEH
+1EE77 ; NFKC_SCF; 062E # Lo ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79 ; NFKC_SCF; 0636 # Lo ARABIC MATHEMATICAL STRETCHED DAD
+1EE7A ; NFKC_SCF; 0638 # Lo ARABIC MATHEMATICAL STRETCHED ZAH
+1EE7B ; NFKC_SCF; 063A # Lo ARABIC MATHEMATICAL STRETCHED GHAIN
+1EE7C ; NFKC_SCF; 066E # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E ; NFKC_SCF; 06A1 # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80 ; NFKC_SCF; 0627 # Lo ARABIC MATHEMATICAL LOOPED ALEF
+1EE81 ; NFKC_SCF; 0628 # Lo ARABIC MATHEMATICAL LOOPED BEH
+1EE82 ; NFKC_SCF; 062C # Lo ARABIC MATHEMATICAL LOOPED JEEM
+1EE83 ; NFKC_SCF; 062F # Lo ARABIC MATHEMATICAL LOOPED DAL
+1EE84 ; NFKC_SCF; 0647 # Lo ARABIC MATHEMATICAL LOOPED HEH
+1EE85 ; NFKC_SCF; 0648 # Lo ARABIC MATHEMATICAL LOOPED WAW
+1EE86 ; NFKC_SCF; 0632 # Lo ARABIC MATHEMATICAL LOOPED ZAIN
+1EE87 ; NFKC_SCF; 062D # Lo ARABIC MATHEMATICAL LOOPED HAH
+1EE88 ; NFKC_SCF; 0637 # Lo ARABIC MATHEMATICAL LOOPED TAH
+1EE89 ; NFKC_SCF; 064A # Lo ARABIC MATHEMATICAL LOOPED YEH
+1EE8B ; NFKC_SCF; 0644 # Lo ARABIC MATHEMATICAL LOOPED LAM
+1EE8C ; NFKC_SCF; 0645 # Lo ARABIC MATHEMATICAL LOOPED MEEM
+1EE8D ; NFKC_SCF; 0646 # Lo ARABIC MATHEMATICAL LOOPED NOON
+1EE8E ; NFKC_SCF; 0633 # Lo ARABIC MATHEMATICAL LOOPED SEEN
+1EE8F ; NFKC_SCF; 0639 # Lo ARABIC MATHEMATICAL LOOPED AIN
+1EE90 ; NFKC_SCF; 0641 # Lo ARABIC MATHEMATICAL LOOPED FEH
+1EE91 ; NFKC_SCF; 0635 # Lo ARABIC MATHEMATICAL LOOPED SAD
+1EE92 ; NFKC_SCF; 0642 # Lo ARABIC MATHEMATICAL LOOPED QAF
+1EE93 ; NFKC_SCF; 0631 # Lo ARABIC MATHEMATICAL LOOPED REH
+1EE94 ; NFKC_SCF; 0634 # Lo ARABIC MATHEMATICAL LOOPED SHEEN
+1EE95 ; NFKC_SCF; 062A # Lo ARABIC MATHEMATICAL LOOPED TEH
+1EE96 ; NFKC_SCF; 062B # Lo ARABIC MATHEMATICAL LOOPED THEH
+1EE97 ; NFKC_SCF; 062E # Lo ARABIC MATHEMATICAL LOOPED KHAH
+1EE98 ; NFKC_SCF; 0630 # Lo ARABIC MATHEMATICAL LOOPED THAL
+1EE99 ; NFKC_SCF; 0636 # Lo ARABIC MATHEMATICAL LOOPED DAD
+1EE9A ; NFKC_SCF; 0638 # Lo ARABIC MATHEMATICAL LOOPED ZAH
+1EE9B ; NFKC_SCF; 063A # Lo ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1 ; NFKC_SCF; 0628 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
+1EEA2 ; NFKC_SCF; 062C # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
+1EEA3 ; NFKC_SCF; 062F # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5 ; NFKC_SCF; 0648 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
+1EEA6 ; NFKC_SCF; 0632 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
+1EEA7 ; NFKC_SCF; 062D # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
+1EEA8 ; NFKC_SCF; 0637 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
+1EEA9 ; NFKC_SCF; 064A # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB ; NFKC_SCF; 0644 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
+1EEAC ; NFKC_SCF; 0645 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
+1EEAD ; NFKC_SCF; 0646 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
+1EEAE ; NFKC_SCF; 0633 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
+1EEAF ; NFKC_SCF; 0639 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
+1EEB0 ; NFKC_SCF; 0641 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
+1EEB1 ; NFKC_SCF; 0635 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
+1EEB2 ; NFKC_SCF; 0642 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
+1EEB3 ; NFKC_SCF; 0631 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK REH
+1EEB4 ; NFKC_SCF; 0634 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
+1EEB5 ; NFKC_SCF; 062A # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
+1EEB6 ; NFKC_SCF; 062B # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
+1EEB7 ; NFKC_SCF; 062E # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
+1EEB8 ; NFKC_SCF; 0630 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
+1EEB9 ; NFKC_SCF; 0636 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
+1EEBA ; NFKC_SCF; 0638 # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
+1EEBB ; NFKC_SCF; 063A # Lo ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1F100 ; NFKC_SCF; 0030 002E # No DIGIT ZERO FULL STOP
+1F101 ; NFKC_SCF; 0030 002C # No DIGIT ZERO COMMA
+1F102 ; NFKC_SCF; 0031 002C # No DIGIT ONE COMMA
+1F103 ; NFKC_SCF; 0032 002C # No DIGIT TWO COMMA
+1F104 ; NFKC_SCF; 0033 002C # No DIGIT THREE COMMA
+1F105 ; NFKC_SCF; 0034 002C # No DIGIT FOUR COMMA
+1F106 ; NFKC_SCF; 0035 002C # No DIGIT FIVE COMMA
+1F107 ; NFKC_SCF; 0036 002C # No DIGIT SIX COMMA
+1F108 ; NFKC_SCF; 0037 002C # No DIGIT SEVEN COMMA
+1F109 ; NFKC_SCF; 0038 002C # No DIGIT EIGHT COMMA
+1F10A ; NFKC_SCF; 0039 002C # No DIGIT NINE COMMA
+1F110 ; NFKC_SCF; 0028 0061 0029 # So PARENTHESIZED LATIN CAPITAL LETTER A
+1F111 ; NFKC_SCF; 0028 0062 0029 # So PARENTHESIZED LATIN CAPITAL LETTER B
+1F112 ; NFKC_SCF; 0028 0063 0029 # So PARENTHESIZED LATIN CAPITAL LETTER C
+1F113 ; NFKC_SCF; 0028 0064 0029 # So PARENTHESIZED LATIN CAPITAL LETTER D
+1F114 ; NFKC_SCF; 0028 0065 0029 # So PARENTHESIZED LATIN CAPITAL LETTER E
+1F115 ; NFKC_SCF; 0028 0066 0029 # So PARENTHESIZED LATIN CAPITAL LETTER F
+1F116 ; NFKC_SCF; 0028 0067 0029 # So PARENTHESIZED LATIN CAPITAL LETTER G
+1F117 ; NFKC_SCF; 0028 0068 0029 # So PARENTHESIZED LATIN CAPITAL LETTER H
+1F118 ; NFKC_SCF; 0028 0069 0029 # So PARENTHESIZED LATIN CAPITAL LETTER I
+1F119 ; NFKC_SCF; 0028 006A 0029 # So PARENTHESIZED LATIN CAPITAL LETTER J
+1F11A ; NFKC_SCF; 0028 006B 0029 # So PARENTHESIZED LATIN CAPITAL LETTER K
+1F11B ; NFKC_SCF; 0028 006C 0029 # So PARENTHESIZED LATIN CAPITAL LETTER L
+1F11C ; NFKC_SCF; 0028 006D 0029 # So PARENTHESIZED LATIN CAPITAL LETTER M
+1F11D ; NFKC_SCF; 0028 006E 0029 # So PARENTHESIZED LATIN CAPITAL LETTER N
+1F11E ; NFKC_SCF; 0028 006F 0029 # So PARENTHESIZED LATIN CAPITAL LETTER O
+1F11F ; NFKC_SCF; 0028 0070 0029 # So PARENTHESIZED LATIN CAPITAL LETTER P
+1F120 ; NFKC_SCF; 0028 0071 0029 # So PARENTHESIZED LATIN CAPITAL LETTER Q
+1F121 ; NFKC_SCF; 0028 0072 0029 # So PARENTHESIZED LATIN CAPITAL LETTER R
+1F122 ; NFKC_SCF; 0028 0073 0029 # So PARENTHESIZED LATIN CAPITAL LETTER S
+1F123 ; NFKC_SCF; 0028 0074 0029 # So PARENTHESIZED LATIN CAPITAL LETTER T
+1F124 ; NFKC_SCF; 0028 0075 0029 # So PARENTHESIZED LATIN CAPITAL LETTER U
+1F125 ; NFKC_SCF; 0028 0076 0029 # So PARENTHESIZED LATIN CAPITAL LETTER V
+1F126 ; NFKC_SCF; 0028 0077 0029 # So PARENTHESIZED LATIN CAPITAL LETTER W
+1F127 ; NFKC_SCF; 0028 0078 0029 # So PARENTHESIZED LATIN CAPITAL LETTER X
+1F128 ; NFKC_SCF; 0028 0079 0029 # So PARENTHESIZED LATIN CAPITAL LETTER Y
+1F129 ; NFKC_SCF; 0028 007A 0029 # So PARENTHESIZED LATIN CAPITAL LETTER Z
+1F12A ; NFKC_SCF; 3014 0073 3015 # So TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
+1F12B ; NFKC_SCF; 0063 # So CIRCLED ITALIC LATIN CAPITAL LETTER C
+1F12C ; NFKC_SCF; 0072 # So CIRCLED ITALIC LATIN CAPITAL LETTER R
+1F12D ; NFKC_SCF; 0063 0064 # So CIRCLED CD
+1F12E ; NFKC_SCF; 0077 007A # So CIRCLED WZ
+1F130 ; NFKC_SCF; 0061 # So SQUARED LATIN CAPITAL LETTER A
+1F131 ; NFKC_SCF; 0062 # So SQUARED LATIN CAPITAL LETTER B
+1F132 ; NFKC_SCF; 0063 # So SQUARED LATIN CAPITAL LETTER C
+1F133 ; NFKC_SCF; 0064 # So SQUARED LATIN CAPITAL LETTER D
+1F134 ; NFKC_SCF; 0065 # So SQUARED LATIN CAPITAL LETTER E
+1F135 ; NFKC_SCF; 0066 # So SQUARED LATIN CAPITAL LETTER F
+1F136 ; NFKC_SCF; 0067 # So SQUARED LATIN CAPITAL LETTER G
+1F137 ; NFKC_SCF; 0068 # So SQUARED LATIN CAPITAL LETTER H
+1F138 ; NFKC_SCF; 0069 # So SQUARED LATIN CAPITAL LETTER I
+1F139 ; NFKC_SCF; 006A # So SQUARED LATIN CAPITAL LETTER J
+1F13A ; NFKC_SCF; 006B # So SQUARED LATIN CAPITAL LETTER K
+1F13B ; NFKC_SCF; 006C # So SQUARED LATIN CAPITAL LETTER L
+1F13C ; NFKC_SCF; 006D # So SQUARED LATIN CAPITAL LETTER M
+1F13D ; NFKC_SCF; 006E # So SQUARED LATIN CAPITAL LETTER N
+1F13E ; NFKC_SCF; 006F # So SQUARED LATIN CAPITAL LETTER O
+1F13F ; NFKC_SCF; 0070 # So SQUARED LATIN CAPITAL LETTER P
+1F140 ; NFKC_SCF; 0071 # So SQUARED LATIN CAPITAL LETTER Q
+1F141 ; NFKC_SCF; 0072 # So SQUARED LATIN CAPITAL LETTER R
+1F142 ; NFKC_SCF; 0073 # So SQUARED LATIN CAPITAL LETTER S
+1F143 ; NFKC_SCF; 0074 # So SQUARED LATIN CAPITAL LETTER T
+1F144 ; NFKC_SCF; 0075 # So SQUARED LATIN CAPITAL LETTER U
+1F145 ; NFKC_SCF; 0076 # So SQUARED LATIN CAPITAL LETTER V
+1F146 ; NFKC_SCF; 0077 # So SQUARED LATIN CAPITAL LETTER W
+1F147 ; NFKC_SCF; 0078 # So SQUARED LATIN CAPITAL LETTER X
+1F148 ; NFKC_SCF; 0079 # So SQUARED LATIN CAPITAL LETTER Y
+1F149 ; NFKC_SCF; 007A # So SQUARED LATIN CAPITAL LETTER Z
+1F14A ; NFKC_SCF; 0068 0076 # So SQUARED HV
+1F14B ; NFKC_SCF; 006D 0076 # So SQUARED MV
+1F14C ; NFKC_SCF; 0073 0064 # So SQUARED SD
+1F14D ; NFKC_SCF; 0073 0073 # So SQUARED SS
+1F14E ; NFKC_SCF; 0070 0070 0076 # So SQUARED PPV
+1F14F ; NFKC_SCF; 0077 0063 # So SQUARED WC
+1F16A ; NFKC_SCF; 006D 0063 # So RAISED MC SIGN
+1F16B ; NFKC_SCF; 006D 0064 # So RAISED MD SIGN
+1F16C ; NFKC_SCF; 006D 0072 # So RAISED MR SIGN
+1F190 ; NFKC_SCF; 0064 006A # So SQUARE DJ
+1F200 ; NFKC_SCF; 307B 304B # So SQUARE HIRAGANA HOKA
+1F201 ; NFKC_SCF; 30B3 30B3 # So SQUARED KATAKANA KOKO
+1F202 ; NFKC_SCF; 30B5 # So SQUARED KATAKANA SA
+1F210 ; NFKC_SCF; 624B # So SQUARED CJK UNIFIED IDEOGRAPH-624B
+1F211 ; NFKC_SCF; 5B57 # So SQUARED CJK UNIFIED IDEOGRAPH-5B57
+1F212 ; NFKC_SCF; 53CC # So SQUARED CJK UNIFIED IDEOGRAPH-53CC
+1F213 ; NFKC_SCF; 30C7 # So SQUARED KATAKANA DE
+1F214 ; NFKC_SCF; 4E8C # So SQUARED CJK UNIFIED IDEOGRAPH-4E8C
+1F215 ; NFKC_SCF; 591A # So SQUARED CJK UNIFIED IDEOGRAPH-591A
+1F216 ; NFKC_SCF; 89E3 # So SQUARED CJK UNIFIED IDEOGRAPH-89E3
+1F217 ; NFKC_SCF; 5929 # So SQUARED CJK UNIFIED IDEOGRAPH-5929
+1F218 ; NFKC_SCF; 4EA4 # So SQUARED CJK UNIFIED IDEOGRAPH-4EA4
+1F219 ; NFKC_SCF; 6620 # So SQUARED CJK UNIFIED IDEOGRAPH-6620
+1F21A ; NFKC_SCF; 7121 # So SQUARED CJK UNIFIED IDEOGRAPH-7121
+1F21B ; NFKC_SCF; 6599 # So SQUARED CJK UNIFIED IDEOGRAPH-6599
+1F21C ; NFKC_SCF; 524D # So SQUARED CJK UNIFIED IDEOGRAPH-524D
+1F21D ; NFKC_SCF; 5F8C # So SQUARED CJK UNIFIED IDEOGRAPH-5F8C
+1F21E ; NFKC_SCF; 518D # So SQUARED CJK UNIFIED IDEOGRAPH-518D
+1F21F ; NFKC_SCF; 65B0 # So SQUARED CJK UNIFIED IDEOGRAPH-65B0
+1F220 ; NFKC_SCF; 521D # So SQUARED CJK UNIFIED IDEOGRAPH-521D
+1F221 ; NFKC_SCF; 7D42 # So SQUARED CJK UNIFIED IDEOGRAPH-7D42
+1F222 ; NFKC_SCF; 751F # So SQUARED CJK UNIFIED IDEOGRAPH-751F
+1F223 ; NFKC_SCF; 8CA9 # So SQUARED CJK UNIFIED IDEOGRAPH-8CA9
+1F224 ; NFKC_SCF; 58F0 # So SQUARED CJK UNIFIED IDEOGRAPH-58F0
+1F225 ; NFKC_SCF; 5439 # So SQUARED CJK UNIFIED IDEOGRAPH-5439
+1F226 ; NFKC_SCF; 6F14 # So SQUARED CJK UNIFIED IDEOGRAPH-6F14
+1F227 ; NFKC_SCF; 6295 # So SQUARED CJK UNIFIED IDEOGRAPH-6295
+1F228 ; NFKC_SCF; 6355 # So SQUARED CJK UNIFIED IDEOGRAPH-6355
+1F229 ; NFKC_SCF; 4E00 # So SQUARED CJK UNIFIED IDEOGRAPH-4E00
+1F22A ; NFKC_SCF; 4E09 # So SQUARED CJK UNIFIED IDEOGRAPH-4E09
+1F22B ; NFKC_SCF; 904A # So SQUARED CJK UNIFIED IDEOGRAPH-904A
+1F22C ; NFKC_SCF; 5DE6 # So SQUARED CJK UNIFIED IDEOGRAPH-5DE6
+1F22D ; NFKC_SCF; 4E2D # So SQUARED CJK UNIFIED IDEOGRAPH-4E2D
+1F22E ; NFKC_SCF; 53F3 # So SQUARED CJK UNIFIED IDEOGRAPH-53F3
+1F22F ; NFKC_SCF; 6307 # So SQUARED CJK UNIFIED IDEOGRAPH-6307
+1F230 ; NFKC_SCF; 8D70 # So SQUARED CJK UNIFIED IDEOGRAPH-8D70
+1F231 ; NFKC_SCF; 6253 # So SQUARED CJK UNIFIED IDEOGRAPH-6253
+1F232 ; NFKC_SCF; 7981 # So SQUARED CJK UNIFIED IDEOGRAPH-7981
+1F233 ; NFKC_SCF; 7A7A # So SQUARED CJK UNIFIED IDEOGRAPH-7A7A
+1F234 ; NFKC_SCF; 5408 # So SQUARED CJK UNIFIED IDEOGRAPH-5408
+1F235 ; NFKC_SCF; 6E80 # So SQUARED CJK UNIFIED IDEOGRAPH-6E80
+1F236 ; NFKC_SCF; 6709 # So SQUARED CJK UNIFIED IDEOGRAPH-6709
+1F237 ; NFKC_SCF; 6708 # So SQUARED CJK UNIFIED IDEOGRAPH-6708
+1F238 ; NFKC_SCF; 7533 # So SQUARED CJK UNIFIED IDEOGRAPH-7533
+1F239 ; NFKC_SCF; 5272 # So SQUARED CJK UNIFIED IDEOGRAPH-5272
+1F23A ; NFKC_SCF; 55B6 # So SQUARED CJK UNIFIED IDEOGRAPH-55B6
+1F23B ; NFKC_SCF; 914D # So SQUARED CJK UNIFIED IDEOGRAPH-914D
+1F240 ; NFKC_SCF; 3014 672C 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F241 ; NFKC_SCF; 3014 4E09 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; NFKC_SCF; 3014 4E8C 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F243 ; NFKC_SCF; 3014 5B89 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F244 ; NFKC_SCF; 3014 70B9 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F245 ; NFKC_SCF; 3014 6253 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F246 ; NFKC_SCF; 3014 76D7 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+1F247 ; NFKC_SCF; 3014 52DD 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F248 ; NFKC_SCF; 3014 6557 3015 # So TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F250 ; NFKC_SCF; 5F97 # So CIRCLED IDEOGRAPH ADVANTAGE
+1F251 ; NFKC_SCF; 53EF # So CIRCLED IDEOGRAPH ACCEPT
+1FBF0 ; NFKC_SCF; 0030 # Nd SEGMENTED DIGIT ZERO
+1FBF1 ; NFKC_SCF; 0031 # Nd SEGMENTED DIGIT ONE
+1FBF2 ; NFKC_SCF; 0032 # Nd SEGMENTED DIGIT TWO
+1FBF3 ; NFKC_SCF; 0033 # Nd SEGMENTED DIGIT THREE
+1FBF4 ; NFKC_SCF; 0034 # Nd SEGMENTED DIGIT FOUR
+1FBF5 ; NFKC_SCF; 0035 # Nd SEGMENTED DIGIT FIVE
+1FBF6 ; NFKC_SCF; 0036 # Nd SEGMENTED DIGIT SIX
+1FBF7 ; NFKC_SCF; 0037 # Nd SEGMENTED DIGIT SEVEN
+1FBF8 ; NFKC_SCF; 0038 # Nd SEGMENTED DIGIT EIGHT
+1FBF9 ; NFKC_SCF; 0039 # Nd SEGMENTED DIGIT NINE
+2F800 ; NFKC_SCF; 4E3D # Lo CJK COMPATIBILITY IDEOGRAPH-2F800
+2F801 ; NFKC_SCF; 4E38 # Lo CJK COMPATIBILITY IDEOGRAPH-2F801
+2F802 ; NFKC_SCF; 4E41 # Lo CJK COMPATIBILITY IDEOGRAPH-2F802
+2F803 ; NFKC_SCF; 20122 # Lo CJK COMPATIBILITY IDEOGRAPH-2F803
+2F804 ; NFKC_SCF; 4F60 # Lo CJK COMPATIBILITY IDEOGRAPH-2F804
+2F805 ; NFKC_SCF; 4FAE # Lo CJK COMPATIBILITY IDEOGRAPH-2F805
+2F806 ; NFKC_SCF; 4FBB # Lo CJK COMPATIBILITY IDEOGRAPH-2F806
+2F807 ; NFKC_SCF; 5002 # Lo CJK COMPATIBILITY IDEOGRAPH-2F807
+2F808 ; NFKC_SCF; 507A # Lo CJK COMPATIBILITY IDEOGRAPH-2F808
+2F809 ; NFKC_SCF; 5099 # Lo CJK COMPATIBILITY IDEOGRAPH-2F809
+2F80A ; NFKC_SCF; 50E7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F80A
+2F80B ; NFKC_SCF; 50CF # Lo CJK COMPATIBILITY IDEOGRAPH-2F80B
+2F80C ; NFKC_SCF; 349E # Lo CJK COMPATIBILITY IDEOGRAPH-2F80C
+2F80D ; NFKC_SCF; 2063A # Lo CJK COMPATIBILITY IDEOGRAPH-2F80D
+2F80E ; NFKC_SCF; 514D # Lo CJK COMPATIBILITY IDEOGRAPH-2F80E
+2F80F ; NFKC_SCF; 5154 # Lo CJK COMPATIBILITY IDEOGRAPH-2F80F
+2F810 ; NFKC_SCF; 5164 # Lo CJK COMPATIBILITY IDEOGRAPH-2F810
+2F811 ; NFKC_SCF; 5177 # Lo CJK COMPATIBILITY IDEOGRAPH-2F811
+2F812 ; NFKC_SCF; 2051C # Lo CJK COMPATIBILITY IDEOGRAPH-2F812
+2F813 ; NFKC_SCF; 34B9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F813
+2F814 ; NFKC_SCF; 5167 # Lo CJK COMPATIBILITY IDEOGRAPH-2F814
+2F815 ; NFKC_SCF; 518D # Lo CJK COMPATIBILITY IDEOGRAPH-2F815
+2F816 ; NFKC_SCF; 2054B # Lo CJK COMPATIBILITY IDEOGRAPH-2F816
+2F817 ; NFKC_SCF; 5197 # Lo CJK COMPATIBILITY IDEOGRAPH-2F817
+2F818 ; NFKC_SCF; 51A4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F818
+2F819 ; NFKC_SCF; 4ECC # Lo CJK COMPATIBILITY IDEOGRAPH-2F819
+2F81A ; NFKC_SCF; 51AC # Lo CJK COMPATIBILITY IDEOGRAPH-2F81A
+2F81B ; NFKC_SCF; 51B5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F81B
+2F81C ; NFKC_SCF; 291DF # Lo CJK COMPATIBILITY IDEOGRAPH-2F81C
+2F81D ; NFKC_SCF; 51F5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F81D
+2F81E ; NFKC_SCF; 5203 # Lo CJK COMPATIBILITY IDEOGRAPH-2F81E
+2F81F ; NFKC_SCF; 34DF # Lo CJK COMPATIBILITY IDEOGRAPH-2F81F
+2F820 ; NFKC_SCF; 523B # Lo CJK COMPATIBILITY IDEOGRAPH-2F820
+2F821 ; NFKC_SCF; 5246 # Lo CJK COMPATIBILITY IDEOGRAPH-2F821
+2F822 ; NFKC_SCF; 5272 # Lo CJK COMPATIBILITY IDEOGRAPH-2F822
+2F823 ; NFKC_SCF; 5277 # Lo CJK COMPATIBILITY IDEOGRAPH-2F823
+2F824 ; NFKC_SCF; 3515 # Lo CJK COMPATIBILITY IDEOGRAPH-2F824
+2F825 ; NFKC_SCF; 52C7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F825
+2F826 ; NFKC_SCF; 52C9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F826
+2F827 ; NFKC_SCF; 52E4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F827
+2F828 ; NFKC_SCF; 52FA # Lo CJK COMPATIBILITY IDEOGRAPH-2F828
+2F829 ; NFKC_SCF; 5305 # Lo CJK COMPATIBILITY IDEOGRAPH-2F829
+2F82A ; NFKC_SCF; 5306 # Lo CJK COMPATIBILITY IDEOGRAPH-2F82A
+2F82B ; NFKC_SCF; 5317 # Lo CJK COMPATIBILITY IDEOGRAPH-2F82B
+2F82C ; NFKC_SCF; 5349 # Lo CJK COMPATIBILITY IDEOGRAPH-2F82C
+2F82D ; NFKC_SCF; 5351 # Lo CJK COMPATIBILITY IDEOGRAPH-2F82D
+2F82E ; NFKC_SCF; 535A # Lo CJK COMPATIBILITY IDEOGRAPH-2F82E
+2F82F ; NFKC_SCF; 5373 # Lo CJK COMPATIBILITY IDEOGRAPH-2F82F
+2F830 ; NFKC_SCF; 537D # Lo CJK COMPATIBILITY IDEOGRAPH-2F830
+2F831..2F833 ; NFKC_SCF; 537F # Lo [3] CJK COMPATIBILITY IDEOGRAPH-2F831..CJK COMPATIBILITY IDEOGRAPH-2F833
+2F834 ; NFKC_SCF; 20A2C # Lo CJK COMPATIBILITY IDEOGRAPH-2F834
+2F835 ; NFKC_SCF; 7070 # Lo CJK COMPATIBILITY IDEOGRAPH-2F835
+2F836 ; NFKC_SCF; 53CA # Lo CJK COMPATIBILITY IDEOGRAPH-2F836
+2F837 ; NFKC_SCF; 53DF # Lo CJK COMPATIBILITY IDEOGRAPH-2F837
+2F838 ; NFKC_SCF; 20B63 # Lo CJK COMPATIBILITY IDEOGRAPH-2F838
+2F839 ; NFKC_SCF; 53EB # Lo CJK COMPATIBILITY IDEOGRAPH-2F839
+2F83A ; NFKC_SCF; 53F1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F83A
+2F83B ; NFKC_SCF; 5406 # Lo CJK COMPATIBILITY IDEOGRAPH-2F83B
+2F83C ; NFKC_SCF; 549E # Lo CJK COMPATIBILITY IDEOGRAPH-2F83C
+2F83D ; NFKC_SCF; 5438 # Lo CJK COMPATIBILITY IDEOGRAPH-2F83D
+2F83E ; NFKC_SCF; 5448 # Lo CJK COMPATIBILITY IDEOGRAPH-2F83E
+2F83F ; NFKC_SCF; 5468 # Lo CJK COMPATIBILITY IDEOGRAPH-2F83F
+2F840 ; NFKC_SCF; 54A2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F840
+2F841 ; NFKC_SCF; 54F6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F841
+2F842 ; NFKC_SCF; 5510 # Lo CJK COMPATIBILITY IDEOGRAPH-2F842
+2F843 ; NFKC_SCF; 5553 # Lo CJK COMPATIBILITY IDEOGRAPH-2F843
+2F844 ; NFKC_SCF; 5563 # Lo CJK COMPATIBILITY IDEOGRAPH-2F844
+2F845..2F846 ; NFKC_SCF; 5584 # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F845..CJK COMPATIBILITY IDEOGRAPH-2F846
+2F847 ; NFKC_SCF; 5599 # Lo CJK COMPATIBILITY IDEOGRAPH-2F847
+2F848 ; NFKC_SCF; 55AB # Lo CJK COMPATIBILITY IDEOGRAPH-2F848
+2F849 ; NFKC_SCF; 55B3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F849
+2F84A ; NFKC_SCF; 55C2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F84A
+2F84B ; NFKC_SCF; 5716 # Lo CJK COMPATIBILITY IDEOGRAPH-2F84B
+2F84C ; NFKC_SCF; 5606 # Lo CJK COMPATIBILITY IDEOGRAPH-2F84C
+2F84D ; NFKC_SCF; 5717 # Lo CJK COMPATIBILITY IDEOGRAPH-2F84D
+2F84E ; NFKC_SCF; 5651 # Lo CJK COMPATIBILITY IDEOGRAPH-2F84E
+2F84F ; NFKC_SCF; 5674 # Lo CJK COMPATIBILITY IDEOGRAPH-2F84F
+2F850 ; NFKC_SCF; 5207 # Lo CJK COMPATIBILITY IDEOGRAPH-2F850
+2F851 ; NFKC_SCF; 58EE # Lo CJK COMPATIBILITY IDEOGRAPH-2F851
+2F852 ; NFKC_SCF; 57CE # Lo CJK COMPATIBILITY IDEOGRAPH-2F852
+2F853 ; NFKC_SCF; 57F4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F853
+2F854 ; NFKC_SCF; 580D # Lo CJK COMPATIBILITY IDEOGRAPH-2F854
+2F855 ; NFKC_SCF; 578B # Lo CJK COMPATIBILITY IDEOGRAPH-2F855
+2F856 ; NFKC_SCF; 5832 # Lo CJK COMPATIBILITY IDEOGRAPH-2F856
+2F857 ; NFKC_SCF; 5831 # Lo CJK COMPATIBILITY IDEOGRAPH-2F857
+2F858 ; NFKC_SCF; 58AC # Lo CJK COMPATIBILITY IDEOGRAPH-2F858
+2F859 ; NFKC_SCF; 214E4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F859
+2F85A ; NFKC_SCF; 58F2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F85A
+2F85B ; NFKC_SCF; 58F7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F85B
+2F85C ; NFKC_SCF; 5906 # Lo CJK COMPATIBILITY IDEOGRAPH-2F85C
+2F85D ; NFKC_SCF; 591A # Lo CJK COMPATIBILITY IDEOGRAPH-2F85D
+2F85E ; NFKC_SCF; 5922 # Lo CJK COMPATIBILITY IDEOGRAPH-2F85E
+2F85F ; NFKC_SCF; 5962 # Lo CJK COMPATIBILITY IDEOGRAPH-2F85F
+2F860 ; NFKC_SCF; 216A8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F860
+2F861 ; NFKC_SCF; 216EA # Lo CJK COMPATIBILITY IDEOGRAPH-2F861
+2F862 ; NFKC_SCF; 59EC # Lo CJK COMPATIBILITY IDEOGRAPH-2F862
+2F863 ; NFKC_SCF; 5A1B # Lo CJK COMPATIBILITY IDEOGRAPH-2F863
+2F864 ; NFKC_SCF; 5A27 # Lo CJK COMPATIBILITY IDEOGRAPH-2F864
+2F865 ; NFKC_SCF; 59D8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F865
+2F866 ; NFKC_SCF; 5A66 # Lo CJK COMPATIBILITY IDEOGRAPH-2F866
+2F867 ; NFKC_SCF; 36EE # Lo CJK COMPATIBILITY IDEOGRAPH-2F867
+2F868 ; NFKC_SCF; 36FC # Lo CJK COMPATIBILITY IDEOGRAPH-2F868
+2F869 ; NFKC_SCF; 5B08 # Lo CJK COMPATIBILITY IDEOGRAPH-2F869
+2F86A..2F86B ; NFKC_SCF; 5B3E # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F86A..CJK COMPATIBILITY IDEOGRAPH-2F86B
+2F86C ; NFKC_SCF; 219C8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F86C
+2F86D ; NFKC_SCF; 5BC3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F86D
+2F86E ; NFKC_SCF; 5BD8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F86E
+2F86F ; NFKC_SCF; 5BE7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F86F
+2F870 ; NFKC_SCF; 5BF3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F870
+2F871 ; NFKC_SCF; 21B18 # Lo CJK COMPATIBILITY IDEOGRAPH-2F871
+2F872 ; NFKC_SCF; 5BFF # Lo CJK COMPATIBILITY IDEOGRAPH-2F872
+2F873 ; NFKC_SCF; 5C06 # Lo CJK COMPATIBILITY IDEOGRAPH-2F873
+2F874 ; NFKC_SCF; 5F53 # Lo CJK COMPATIBILITY IDEOGRAPH-2F874
+2F875 ; NFKC_SCF; 5C22 # Lo CJK COMPATIBILITY IDEOGRAPH-2F875
+2F876 ; NFKC_SCF; 3781 # Lo CJK COMPATIBILITY IDEOGRAPH-2F876
+2F877 ; NFKC_SCF; 5C60 # Lo CJK COMPATIBILITY IDEOGRAPH-2F877
+2F878 ; NFKC_SCF; 5C6E # Lo CJK COMPATIBILITY IDEOGRAPH-2F878
+2F879 ; NFKC_SCF; 5CC0 # Lo CJK COMPATIBILITY IDEOGRAPH-2F879
+2F87A ; NFKC_SCF; 5C8D # Lo CJK COMPATIBILITY IDEOGRAPH-2F87A
+2F87B ; NFKC_SCF; 21DE4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F87B
+2F87C ; NFKC_SCF; 5D43 # Lo CJK COMPATIBILITY IDEOGRAPH-2F87C
+2F87D ; NFKC_SCF; 21DE6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F87D
+2F87E ; NFKC_SCF; 5D6E # Lo CJK COMPATIBILITY IDEOGRAPH-2F87E
+2F87F ; NFKC_SCF; 5D6B # Lo CJK COMPATIBILITY IDEOGRAPH-2F87F
+2F880 ; NFKC_SCF; 5D7C # Lo CJK COMPATIBILITY IDEOGRAPH-2F880
+2F881 ; NFKC_SCF; 5DE1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F881
+2F882 ; NFKC_SCF; 5DE2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F882
+2F883 ; NFKC_SCF; 382F # Lo CJK COMPATIBILITY IDEOGRAPH-2F883
+2F884 ; NFKC_SCF; 5DFD # Lo CJK COMPATIBILITY IDEOGRAPH-2F884
+2F885 ; NFKC_SCF; 5E28 # Lo CJK COMPATIBILITY IDEOGRAPH-2F885
+2F886 ; NFKC_SCF; 5E3D # Lo CJK COMPATIBILITY IDEOGRAPH-2F886
+2F887 ; NFKC_SCF; 5E69 # Lo CJK COMPATIBILITY IDEOGRAPH-2F887
+2F888 ; NFKC_SCF; 3862 # Lo CJK COMPATIBILITY IDEOGRAPH-2F888
+2F889 ; NFKC_SCF; 22183 # Lo CJK COMPATIBILITY IDEOGRAPH-2F889
+2F88A ; NFKC_SCF; 387C # Lo CJK COMPATIBILITY IDEOGRAPH-2F88A
+2F88B ; NFKC_SCF; 5EB0 # Lo CJK COMPATIBILITY IDEOGRAPH-2F88B
+2F88C ; NFKC_SCF; 5EB3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F88C
+2F88D ; NFKC_SCF; 5EB6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F88D
+2F88E ; NFKC_SCF; 5ECA # Lo CJK COMPATIBILITY IDEOGRAPH-2F88E
+2F88F ; NFKC_SCF; 2A392 # Lo CJK COMPATIBILITY IDEOGRAPH-2F88F
+2F890 ; NFKC_SCF; 5EFE # Lo CJK COMPATIBILITY IDEOGRAPH-2F890
+2F891..2F892 ; NFKC_SCF; 22331 # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F891..CJK COMPATIBILITY IDEOGRAPH-2F892
+2F893 ; NFKC_SCF; 8201 # Lo CJK COMPATIBILITY IDEOGRAPH-2F893
+2F894..2F895 ; NFKC_SCF; 5F22 # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F894..CJK COMPATIBILITY IDEOGRAPH-2F895
+2F896 ; NFKC_SCF; 38C7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F896
+2F897 ; NFKC_SCF; 232B8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F897
+2F898 ; NFKC_SCF; 261DA # Lo CJK COMPATIBILITY IDEOGRAPH-2F898
+2F899 ; NFKC_SCF; 5F62 # Lo CJK COMPATIBILITY IDEOGRAPH-2F899
+2F89A ; NFKC_SCF; 5F6B # Lo CJK COMPATIBILITY IDEOGRAPH-2F89A
+2F89B ; NFKC_SCF; 38E3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F89B
+2F89C ; NFKC_SCF; 5F9A # Lo CJK COMPATIBILITY IDEOGRAPH-2F89C
+2F89D ; NFKC_SCF; 5FCD # Lo CJK COMPATIBILITY IDEOGRAPH-2F89D
+2F89E ; NFKC_SCF; 5FD7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F89E
+2F89F ; NFKC_SCF; 5FF9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F89F
+2F8A0 ; NFKC_SCF; 6081 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A0
+2F8A1 ; NFKC_SCF; 393A # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A1
+2F8A2 ; NFKC_SCF; 391C # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A2
+2F8A3 ; NFKC_SCF; 6094 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A3
+2F8A4 ; NFKC_SCF; 226D4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A4
+2F8A5 ; NFKC_SCF; 60C7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A5
+2F8A6 ; NFKC_SCF; 6148 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A6
+2F8A7 ; NFKC_SCF; 614C # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A7
+2F8A8 ; NFKC_SCF; 614E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A8
+2F8A9 ; NFKC_SCF; 614C # Lo CJK COMPATIBILITY IDEOGRAPH-2F8A9
+2F8AA ; NFKC_SCF; 617A # Lo CJK COMPATIBILITY IDEOGRAPH-2F8AA
+2F8AB ; NFKC_SCF; 618E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8AB
+2F8AC ; NFKC_SCF; 61B2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8AC
+2F8AD ; NFKC_SCF; 61A4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8AD
+2F8AE ; NFKC_SCF; 61AF # Lo CJK COMPATIBILITY IDEOGRAPH-2F8AE
+2F8AF ; NFKC_SCF; 61DE # Lo CJK COMPATIBILITY IDEOGRAPH-2F8AF
+2F8B0 ; NFKC_SCF; 61F2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B0
+2F8B1 ; NFKC_SCF; 61F6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B1
+2F8B2 ; NFKC_SCF; 6210 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B2
+2F8B3 ; NFKC_SCF; 621B # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B3
+2F8B4 ; NFKC_SCF; 625D # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B4
+2F8B5 ; NFKC_SCF; 62B1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B5
+2F8B6 ; NFKC_SCF; 62D4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B6
+2F8B7 ; NFKC_SCF; 6350 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B7
+2F8B8 ; NFKC_SCF; 22B0C # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B8
+2F8B9 ; NFKC_SCF; 633D # Lo CJK COMPATIBILITY IDEOGRAPH-2F8B9
+2F8BA ; NFKC_SCF; 62FC # Lo CJK COMPATIBILITY IDEOGRAPH-2F8BA
+2F8BB ; NFKC_SCF; 6368 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8BB
+2F8BC ; NFKC_SCF; 6383 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8BC
+2F8BD ; NFKC_SCF; 63E4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8BD
+2F8BE ; NFKC_SCF; 22BF1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8BE
+2F8BF ; NFKC_SCF; 6422 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8BF
+2F8C0 ; NFKC_SCF; 63C5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C0
+2F8C1 ; NFKC_SCF; 63A9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C1
+2F8C2 ; NFKC_SCF; 3A2E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C2
+2F8C3 ; NFKC_SCF; 6469 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C3
+2F8C4 ; NFKC_SCF; 647E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C4
+2F8C5 ; NFKC_SCF; 649D # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C5
+2F8C6 ; NFKC_SCF; 6477 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C6
+2F8C7 ; NFKC_SCF; 3A6C # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C7
+2F8C8 ; NFKC_SCF; 654F # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C8
+2F8C9 ; NFKC_SCF; 656C # Lo CJK COMPATIBILITY IDEOGRAPH-2F8C9
+2F8CA ; NFKC_SCF; 2300A # Lo CJK COMPATIBILITY IDEOGRAPH-2F8CA
+2F8CB ; NFKC_SCF; 65E3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8CB
+2F8CC ; NFKC_SCF; 66F8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8CC
+2F8CD ; NFKC_SCF; 6649 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8CD
+2F8CE ; NFKC_SCF; 3B19 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8CE
+2F8CF ; NFKC_SCF; 6691 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8CF
+2F8D0 ; NFKC_SCF; 3B08 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D0
+2F8D1 ; NFKC_SCF; 3AE4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D1
+2F8D2 ; NFKC_SCF; 5192 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D2
+2F8D3 ; NFKC_SCF; 5195 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D3
+2F8D4 ; NFKC_SCF; 6700 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D4
+2F8D5 ; NFKC_SCF; 669C # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D5
+2F8D6 ; NFKC_SCF; 80AD # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D6
+2F8D7 ; NFKC_SCF; 43D9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D7
+2F8D8 ; NFKC_SCF; 6717 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D8
+2F8D9 ; NFKC_SCF; 671B # Lo CJK COMPATIBILITY IDEOGRAPH-2F8D9
+2F8DA ; NFKC_SCF; 6721 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8DA
+2F8DB ; NFKC_SCF; 675E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8DB
+2F8DC ; NFKC_SCF; 6753 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8DC
+2F8DD ; NFKC_SCF; 233C3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8DD
+2F8DE ; NFKC_SCF; 3B49 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8DE
+2F8DF ; NFKC_SCF; 67FA # Lo CJK COMPATIBILITY IDEOGRAPH-2F8DF
+2F8E0 ; NFKC_SCF; 6785 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E0
+2F8E1 ; NFKC_SCF; 6852 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E1
+2F8E2 ; NFKC_SCF; 6885 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E2
+2F8E3 ; NFKC_SCF; 2346D # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E3
+2F8E4 ; NFKC_SCF; 688E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E4
+2F8E5 ; NFKC_SCF; 681F # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E5
+2F8E6 ; NFKC_SCF; 6914 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E6
+2F8E7 ; NFKC_SCF; 3B9D # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E7
+2F8E8 ; NFKC_SCF; 6942 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E8
+2F8E9 ; NFKC_SCF; 69A3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8E9
+2F8EA ; NFKC_SCF; 69EA # Lo CJK COMPATIBILITY IDEOGRAPH-2F8EA
+2F8EB ; NFKC_SCF; 6AA8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8EB
+2F8EC ; NFKC_SCF; 236A3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8EC
+2F8ED ; NFKC_SCF; 6ADB # Lo CJK COMPATIBILITY IDEOGRAPH-2F8ED
+2F8EE ; NFKC_SCF; 3C18 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8EE
+2F8EF ; NFKC_SCF; 6B21 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8EF
+2F8F0 ; NFKC_SCF; 238A7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F0
+2F8F1 ; NFKC_SCF; 6B54 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F1
+2F8F2 ; NFKC_SCF; 3C4E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F2
+2F8F3 ; NFKC_SCF; 6B72 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F3
+2F8F4 ; NFKC_SCF; 6B9F # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F4
+2F8F5 ; NFKC_SCF; 6BBA # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F5
+2F8F6 ; NFKC_SCF; 6BBB # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F6
+2F8F7 ; NFKC_SCF; 23A8D # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F7
+2F8F8 ; NFKC_SCF; 21D0B # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F8
+2F8F9 ; NFKC_SCF; 23AFA # Lo CJK COMPATIBILITY IDEOGRAPH-2F8F9
+2F8FA ; NFKC_SCF; 6C4E # Lo CJK COMPATIBILITY IDEOGRAPH-2F8FA
+2F8FB ; NFKC_SCF; 23CBC # Lo CJK COMPATIBILITY IDEOGRAPH-2F8FB
+2F8FC ; NFKC_SCF; 6CBF # Lo CJK COMPATIBILITY IDEOGRAPH-2F8FC
+2F8FD ; NFKC_SCF; 6CCD # Lo CJK COMPATIBILITY IDEOGRAPH-2F8FD
+2F8FE ; NFKC_SCF; 6C67 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8FE
+2F8FF ; NFKC_SCF; 6D16 # Lo CJK COMPATIBILITY IDEOGRAPH-2F8FF
+2F900 ; NFKC_SCF; 6D3E # Lo CJK COMPATIBILITY IDEOGRAPH-2F900
+2F901 ; NFKC_SCF; 6D77 # Lo CJK COMPATIBILITY IDEOGRAPH-2F901
+2F902 ; NFKC_SCF; 6D41 # Lo CJK COMPATIBILITY IDEOGRAPH-2F902
+2F903 ; NFKC_SCF; 6D69 # Lo CJK COMPATIBILITY IDEOGRAPH-2F903
+2F904 ; NFKC_SCF; 6D78 # Lo CJK COMPATIBILITY IDEOGRAPH-2F904
+2F905 ; NFKC_SCF; 6D85 # Lo CJK COMPATIBILITY IDEOGRAPH-2F905
+2F906 ; NFKC_SCF; 23D1E # Lo CJK COMPATIBILITY IDEOGRAPH-2F906
+2F907 ; NFKC_SCF; 6D34 # Lo CJK COMPATIBILITY IDEOGRAPH-2F907
+2F908 ; NFKC_SCF; 6E2F # Lo CJK COMPATIBILITY IDEOGRAPH-2F908
+2F909 ; NFKC_SCF; 6E6E # Lo CJK COMPATIBILITY IDEOGRAPH-2F909
+2F90A ; NFKC_SCF; 3D33 # Lo CJK COMPATIBILITY IDEOGRAPH-2F90A
+2F90B ; NFKC_SCF; 6ECB # Lo CJK COMPATIBILITY IDEOGRAPH-2F90B
+2F90C ; NFKC_SCF; 6EC7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F90C
+2F90D ; NFKC_SCF; 23ED1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F90D
+2F90E ; NFKC_SCF; 6DF9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F90E
+2F90F ; NFKC_SCF; 6F6E # Lo CJK COMPATIBILITY IDEOGRAPH-2F90F
+2F910 ; NFKC_SCF; 23F5E # Lo CJK COMPATIBILITY IDEOGRAPH-2F910
+2F911 ; NFKC_SCF; 23F8E # Lo CJK COMPATIBILITY IDEOGRAPH-2F911
+2F912 ; NFKC_SCF; 6FC6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F912
+2F913 ; NFKC_SCF; 7039 # Lo CJK COMPATIBILITY IDEOGRAPH-2F913
+2F914 ; NFKC_SCF; 701E # Lo CJK COMPATIBILITY IDEOGRAPH-2F914
+2F915 ; NFKC_SCF; 701B # Lo CJK COMPATIBILITY IDEOGRAPH-2F915
+2F916 ; NFKC_SCF; 3D96 # Lo CJK COMPATIBILITY IDEOGRAPH-2F916
+2F917 ; NFKC_SCF; 704A # Lo CJK COMPATIBILITY IDEOGRAPH-2F917
+2F918 ; NFKC_SCF; 707D # Lo CJK COMPATIBILITY IDEOGRAPH-2F918
+2F919 ; NFKC_SCF; 7077 # Lo CJK COMPATIBILITY IDEOGRAPH-2F919
+2F91A ; NFKC_SCF; 70AD # Lo CJK COMPATIBILITY IDEOGRAPH-2F91A
+2F91B ; NFKC_SCF; 20525 # Lo CJK COMPATIBILITY IDEOGRAPH-2F91B
+2F91C ; NFKC_SCF; 7145 # Lo CJK COMPATIBILITY IDEOGRAPH-2F91C
+2F91D ; NFKC_SCF; 24263 # Lo CJK COMPATIBILITY IDEOGRAPH-2F91D
+2F91E ; NFKC_SCF; 719C # Lo CJK COMPATIBILITY IDEOGRAPH-2F91E
+2F91F ; NFKC_SCF; 243AB # Lo CJK COMPATIBILITY IDEOGRAPH-2F91F
+2F920 ; NFKC_SCF; 7228 # Lo CJK COMPATIBILITY IDEOGRAPH-2F920
+2F921 ; NFKC_SCF; 7235 # Lo CJK COMPATIBILITY IDEOGRAPH-2F921
+2F922 ; NFKC_SCF; 7250 # Lo CJK COMPATIBILITY IDEOGRAPH-2F922
+2F923 ; NFKC_SCF; 24608 # Lo CJK COMPATIBILITY IDEOGRAPH-2F923
+2F924 ; NFKC_SCF; 7280 # Lo CJK COMPATIBILITY IDEOGRAPH-2F924
+2F925 ; NFKC_SCF; 7295 # Lo CJK COMPATIBILITY IDEOGRAPH-2F925
+2F926 ; NFKC_SCF; 24735 # Lo CJK COMPATIBILITY IDEOGRAPH-2F926
+2F927 ; NFKC_SCF; 24814 # Lo CJK COMPATIBILITY IDEOGRAPH-2F927
+2F928 ; NFKC_SCF; 737A # Lo CJK COMPATIBILITY IDEOGRAPH-2F928
+2F929 ; NFKC_SCF; 738B # Lo CJK COMPATIBILITY IDEOGRAPH-2F929
+2F92A ; NFKC_SCF; 3EAC # Lo CJK COMPATIBILITY IDEOGRAPH-2F92A
+2F92B ; NFKC_SCF; 73A5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F92B
+2F92C..2F92D ; NFKC_SCF; 3EB8 # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F92C..CJK COMPATIBILITY IDEOGRAPH-2F92D
+2F92E ; NFKC_SCF; 7447 # Lo CJK COMPATIBILITY IDEOGRAPH-2F92E
+2F92F ; NFKC_SCF; 745C # Lo CJK COMPATIBILITY IDEOGRAPH-2F92F
+2F930 ; NFKC_SCF; 7471 # Lo CJK COMPATIBILITY IDEOGRAPH-2F930
+2F931 ; NFKC_SCF; 7485 # Lo CJK COMPATIBILITY IDEOGRAPH-2F931
+2F932 ; NFKC_SCF; 74CA # Lo CJK COMPATIBILITY IDEOGRAPH-2F932
+2F933 ; NFKC_SCF; 3F1B # Lo CJK COMPATIBILITY IDEOGRAPH-2F933
+2F934 ; NFKC_SCF; 7524 # Lo CJK COMPATIBILITY IDEOGRAPH-2F934
+2F935 ; NFKC_SCF; 24C36 # Lo CJK COMPATIBILITY IDEOGRAPH-2F935
+2F936 ; NFKC_SCF; 753E # Lo CJK COMPATIBILITY IDEOGRAPH-2F936
+2F937 ; NFKC_SCF; 24C92 # Lo CJK COMPATIBILITY IDEOGRAPH-2F937
+2F938 ; NFKC_SCF; 7570 # Lo CJK COMPATIBILITY IDEOGRAPH-2F938
+2F939 ; NFKC_SCF; 2219F # Lo CJK COMPATIBILITY IDEOGRAPH-2F939
+2F93A ; NFKC_SCF; 7610 # Lo CJK COMPATIBILITY IDEOGRAPH-2F93A
+2F93B ; NFKC_SCF; 24FA1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F93B
+2F93C ; NFKC_SCF; 24FB8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F93C
+2F93D ; NFKC_SCF; 25044 # Lo CJK COMPATIBILITY IDEOGRAPH-2F93D
+2F93E ; NFKC_SCF; 3FFC # Lo CJK COMPATIBILITY IDEOGRAPH-2F93E
+2F93F ; NFKC_SCF; 4008 # Lo CJK COMPATIBILITY IDEOGRAPH-2F93F
+2F940 ; NFKC_SCF; 76F4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F940
+2F941 ; NFKC_SCF; 250F3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F941
+2F942 ; NFKC_SCF; 250F2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F942
+2F943 ; NFKC_SCF; 25119 # Lo CJK COMPATIBILITY IDEOGRAPH-2F943
+2F944 ; NFKC_SCF; 25133 # Lo CJK COMPATIBILITY IDEOGRAPH-2F944
+2F945 ; NFKC_SCF; 771E # Lo CJK COMPATIBILITY IDEOGRAPH-2F945
+2F946..2F947 ; NFKC_SCF; 771F # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F946..CJK COMPATIBILITY IDEOGRAPH-2F947
+2F948 ; NFKC_SCF; 774A # Lo CJK COMPATIBILITY IDEOGRAPH-2F948
+2F949 ; NFKC_SCF; 4039 # Lo CJK COMPATIBILITY IDEOGRAPH-2F949
+2F94A ; NFKC_SCF; 778B # Lo CJK COMPATIBILITY IDEOGRAPH-2F94A
+2F94B ; NFKC_SCF; 4046 # Lo CJK COMPATIBILITY IDEOGRAPH-2F94B
+2F94C ; NFKC_SCF; 4096 # Lo CJK COMPATIBILITY IDEOGRAPH-2F94C
+2F94D ; NFKC_SCF; 2541D # Lo CJK COMPATIBILITY IDEOGRAPH-2F94D
+2F94E ; NFKC_SCF; 784E # Lo CJK COMPATIBILITY IDEOGRAPH-2F94E
+2F94F ; NFKC_SCF; 788C # Lo CJK COMPATIBILITY IDEOGRAPH-2F94F
+2F950 ; NFKC_SCF; 78CC # Lo CJK COMPATIBILITY IDEOGRAPH-2F950
+2F951 ; NFKC_SCF; 40E3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F951
+2F952 ; NFKC_SCF; 25626 # Lo CJK COMPATIBILITY IDEOGRAPH-2F952
+2F953 ; NFKC_SCF; 7956 # Lo CJK COMPATIBILITY IDEOGRAPH-2F953
+2F954 ; NFKC_SCF; 2569A # Lo CJK COMPATIBILITY IDEOGRAPH-2F954
+2F955 ; NFKC_SCF; 256C5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F955
+2F956 ; NFKC_SCF; 798F # Lo CJK COMPATIBILITY IDEOGRAPH-2F956
+2F957 ; NFKC_SCF; 79EB # Lo CJK COMPATIBILITY IDEOGRAPH-2F957
+2F958 ; NFKC_SCF; 412F # Lo CJK COMPATIBILITY IDEOGRAPH-2F958
+2F959 ; NFKC_SCF; 7A40 # Lo CJK COMPATIBILITY IDEOGRAPH-2F959
+2F95A ; NFKC_SCF; 7A4A # Lo CJK COMPATIBILITY IDEOGRAPH-2F95A
+2F95B ; NFKC_SCF; 7A4F # Lo CJK COMPATIBILITY IDEOGRAPH-2F95B
+2F95C ; NFKC_SCF; 2597C # Lo CJK COMPATIBILITY IDEOGRAPH-2F95C
+2F95D..2F95E ; NFKC_SCF; 25AA7 # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F95D..CJK COMPATIBILITY IDEOGRAPH-2F95E
+2F95F ; NFKC_SCF; 7AEE # Lo CJK COMPATIBILITY IDEOGRAPH-2F95F
+2F960 ; NFKC_SCF; 4202 # Lo CJK COMPATIBILITY IDEOGRAPH-2F960
+2F961 ; NFKC_SCF; 25BAB # Lo CJK COMPATIBILITY IDEOGRAPH-2F961
+2F962 ; NFKC_SCF; 7BC6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F962
+2F963 ; NFKC_SCF; 7BC9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F963
+2F964 ; NFKC_SCF; 4227 # Lo CJK COMPATIBILITY IDEOGRAPH-2F964
+2F965 ; NFKC_SCF; 25C80 # Lo CJK COMPATIBILITY IDEOGRAPH-2F965
+2F966 ; NFKC_SCF; 7CD2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F966
+2F967 ; NFKC_SCF; 42A0 # Lo CJK COMPATIBILITY IDEOGRAPH-2F967
+2F968 ; NFKC_SCF; 7CE8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F968
+2F969 ; NFKC_SCF; 7CE3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F969
+2F96A ; NFKC_SCF; 7D00 # Lo CJK COMPATIBILITY IDEOGRAPH-2F96A
+2F96B ; NFKC_SCF; 25F86 # Lo CJK COMPATIBILITY IDEOGRAPH-2F96B
+2F96C ; NFKC_SCF; 7D63 # Lo CJK COMPATIBILITY IDEOGRAPH-2F96C
+2F96D ; NFKC_SCF; 4301 # Lo CJK COMPATIBILITY IDEOGRAPH-2F96D
+2F96E ; NFKC_SCF; 7DC7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F96E
+2F96F ; NFKC_SCF; 7E02 # Lo CJK COMPATIBILITY IDEOGRAPH-2F96F
+2F970 ; NFKC_SCF; 7E45 # Lo CJK COMPATIBILITY IDEOGRAPH-2F970
+2F971 ; NFKC_SCF; 4334 # Lo CJK COMPATIBILITY IDEOGRAPH-2F971
+2F972 ; NFKC_SCF; 26228 # Lo CJK COMPATIBILITY IDEOGRAPH-2F972
+2F973 ; NFKC_SCF; 26247 # Lo CJK COMPATIBILITY IDEOGRAPH-2F973
+2F974 ; NFKC_SCF; 4359 # Lo CJK COMPATIBILITY IDEOGRAPH-2F974
+2F975 ; NFKC_SCF; 262D9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F975
+2F976 ; NFKC_SCF; 7F7A # Lo CJK COMPATIBILITY IDEOGRAPH-2F976
+2F977 ; NFKC_SCF; 2633E # Lo CJK COMPATIBILITY IDEOGRAPH-2F977
+2F978 ; NFKC_SCF; 7F95 # Lo CJK COMPATIBILITY IDEOGRAPH-2F978
+2F979 ; NFKC_SCF; 7FFA # Lo CJK COMPATIBILITY IDEOGRAPH-2F979
+2F97A ; NFKC_SCF; 8005 # Lo CJK COMPATIBILITY IDEOGRAPH-2F97A
+2F97B ; NFKC_SCF; 264DA # Lo CJK COMPATIBILITY IDEOGRAPH-2F97B
+2F97C ; NFKC_SCF; 26523 # Lo CJK COMPATIBILITY IDEOGRAPH-2F97C
+2F97D ; NFKC_SCF; 8060 # Lo CJK COMPATIBILITY IDEOGRAPH-2F97D
+2F97E ; NFKC_SCF; 265A8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F97E
+2F97F ; NFKC_SCF; 8070 # Lo CJK COMPATIBILITY IDEOGRAPH-2F97F
+2F980 ; NFKC_SCF; 2335F # Lo CJK COMPATIBILITY IDEOGRAPH-2F980
+2F981 ; NFKC_SCF; 43D5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F981
+2F982 ; NFKC_SCF; 80B2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F982
+2F983 ; NFKC_SCF; 8103 # Lo CJK COMPATIBILITY IDEOGRAPH-2F983
+2F984 ; NFKC_SCF; 440B # Lo CJK COMPATIBILITY IDEOGRAPH-2F984
+2F985 ; NFKC_SCF; 813E # Lo CJK COMPATIBILITY IDEOGRAPH-2F985
+2F986 ; NFKC_SCF; 5AB5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F986
+2F987 ; NFKC_SCF; 267A7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F987
+2F988 ; NFKC_SCF; 267B5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F988
+2F989 ; NFKC_SCF; 23393 # Lo CJK COMPATIBILITY IDEOGRAPH-2F989
+2F98A ; NFKC_SCF; 2339C # Lo CJK COMPATIBILITY IDEOGRAPH-2F98A
+2F98B ; NFKC_SCF; 8201 # Lo CJK COMPATIBILITY IDEOGRAPH-2F98B
+2F98C ; NFKC_SCF; 8204 # Lo CJK COMPATIBILITY IDEOGRAPH-2F98C
+2F98D ; NFKC_SCF; 8F9E # Lo CJK COMPATIBILITY IDEOGRAPH-2F98D
+2F98E ; NFKC_SCF; 446B # Lo CJK COMPATIBILITY IDEOGRAPH-2F98E
+2F98F ; NFKC_SCF; 8291 # Lo CJK COMPATIBILITY IDEOGRAPH-2F98F
+2F990 ; NFKC_SCF; 828B # Lo CJK COMPATIBILITY IDEOGRAPH-2F990
+2F991 ; NFKC_SCF; 829D # Lo CJK COMPATIBILITY IDEOGRAPH-2F991
+2F992 ; NFKC_SCF; 52B3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F992
+2F993 ; NFKC_SCF; 82B1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F993
+2F994 ; NFKC_SCF; 82B3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F994
+2F995 ; NFKC_SCF; 82BD # Lo CJK COMPATIBILITY IDEOGRAPH-2F995
+2F996 ; NFKC_SCF; 82E6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F996
+2F997 ; NFKC_SCF; 26B3C # Lo CJK COMPATIBILITY IDEOGRAPH-2F997
+2F998 ; NFKC_SCF; 82E5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F998
+2F999 ; NFKC_SCF; 831D # Lo CJK COMPATIBILITY IDEOGRAPH-2F999
+2F99A ; NFKC_SCF; 8363 # Lo CJK COMPATIBILITY IDEOGRAPH-2F99A
+2F99B ; NFKC_SCF; 83AD # Lo CJK COMPATIBILITY IDEOGRAPH-2F99B
+2F99C ; NFKC_SCF; 8323 # Lo CJK COMPATIBILITY IDEOGRAPH-2F99C
+2F99D ; NFKC_SCF; 83BD # Lo CJK COMPATIBILITY IDEOGRAPH-2F99D
+2F99E ; NFKC_SCF; 83E7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F99E
+2F99F ; NFKC_SCF; 8457 # Lo CJK COMPATIBILITY IDEOGRAPH-2F99F
+2F9A0 ; NFKC_SCF; 8353 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A0
+2F9A1 ; NFKC_SCF; 83CA # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A1
+2F9A2 ; NFKC_SCF; 83CC # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A2
+2F9A3 ; NFKC_SCF; 83DC # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A3
+2F9A4 ; NFKC_SCF; 26C36 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A4
+2F9A5 ; NFKC_SCF; 26D6B # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A5
+2F9A6 ; NFKC_SCF; 26CD5 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A6
+2F9A7 ; NFKC_SCF; 452B # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A7
+2F9A8 ; NFKC_SCF; 84F1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A8
+2F9A9 ; NFKC_SCF; 84F3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9A9
+2F9AA ; NFKC_SCF; 8516 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9AA
+2F9AB ; NFKC_SCF; 273CA # Lo CJK COMPATIBILITY IDEOGRAPH-2F9AB
+2F9AC ; NFKC_SCF; 8564 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9AC
+2F9AD ; NFKC_SCF; 26F2C # Lo CJK COMPATIBILITY IDEOGRAPH-2F9AD
+2F9AE ; NFKC_SCF; 455D # Lo CJK COMPATIBILITY IDEOGRAPH-2F9AE
+2F9AF ; NFKC_SCF; 4561 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9AF
+2F9B0 ; NFKC_SCF; 26FB1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B0
+2F9B1 ; NFKC_SCF; 270D2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B1
+2F9B2 ; NFKC_SCF; 456B # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B2
+2F9B3 ; NFKC_SCF; 8650 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B3
+2F9B4 ; NFKC_SCF; 865C # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B4
+2F9B5 ; NFKC_SCF; 8667 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B5
+2F9B6 ; NFKC_SCF; 8669 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B6
+2F9B7 ; NFKC_SCF; 86A9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B7
+2F9B8 ; NFKC_SCF; 8688 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B8
+2F9B9 ; NFKC_SCF; 870E # Lo CJK COMPATIBILITY IDEOGRAPH-2F9B9
+2F9BA ; NFKC_SCF; 86E2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9BA
+2F9BB ; NFKC_SCF; 8779 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9BB
+2F9BC ; NFKC_SCF; 8728 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9BC
+2F9BD ; NFKC_SCF; 876B # Lo CJK COMPATIBILITY IDEOGRAPH-2F9BD
+2F9BE ; NFKC_SCF; 8786 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9BE
+2F9BF ; NFKC_SCF; 45D7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9BF
+2F9C0 ; NFKC_SCF; 87E1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C0
+2F9C1 ; NFKC_SCF; 8801 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C1
+2F9C2 ; NFKC_SCF; 45F9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C2
+2F9C3 ; NFKC_SCF; 8860 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C3
+2F9C4 ; NFKC_SCF; 8863 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C4
+2F9C5 ; NFKC_SCF; 27667 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C5
+2F9C6 ; NFKC_SCF; 88D7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C6
+2F9C7 ; NFKC_SCF; 88DE # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C7
+2F9C8 ; NFKC_SCF; 4635 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C8
+2F9C9 ; NFKC_SCF; 88FA # Lo CJK COMPATIBILITY IDEOGRAPH-2F9C9
+2F9CA ; NFKC_SCF; 34BB # Lo CJK COMPATIBILITY IDEOGRAPH-2F9CA
+2F9CB ; NFKC_SCF; 278AE # Lo CJK COMPATIBILITY IDEOGRAPH-2F9CB
+2F9CC ; NFKC_SCF; 27966 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9CC
+2F9CD ; NFKC_SCF; 46BE # Lo CJK COMPATIBILITY IDEOGRAPH-2F9CD
+2F9CE ; NFKC_SCF; 46C7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9CE
+2F9CF ; NFKC_SCF; 8AA0 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9CF
+2F9D0 ; NFKC_SCF; 8AED # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D0
+2F9D1 ; NFKC_SCF; 8B8A # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D1
+2F9D2 ; NFKC_SCF; 8C55 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D2
+2F9D3 ; NFKC_SCF; 27CA8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D3
+2F9D4 ; NFKC_SCF; 8CAB # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D4
+2F9D5 ; NFKC_SCF; 8CC1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D5
+2F9D6 ; NFKC_SCF; 8D1B # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D6
+2F9D7 ; NFKC_SCF; 8D77 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D7
+2F9D8 ; NFKC_SCF; 27F2F # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D8
+2F9D9 ; NFKC_SCF; 20804 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9D9
+2F9DA ; NFKC_SCF; 8DCB # Lo CJK COMPATIBILITY IDEOGRAPH-2F9DA
+2F9DB ; NFKC_SCF; 8DBC # Lo CJK COMPATIBILITY IDEOGRAPH-2F9DB
+2F9DC ; NFKC_SCF; 8DF0 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9DC
+2F9DD ; NFKC_SCF; 208DE # Lo CJK COMPATIBILITY IDEOGRAPH-2F9DD
+2F9DE ; NFKC_SCF; 8ED4 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9DE
+2F9DF ; NFKC_SCF; 8F38 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9DF
+2F9E0 ; NFKC_SCF; 285D2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E0
+2F9E1 ; NFKC_SCF; 285ED # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E1
+2F9E2 ; NFKC_SCF; 9094 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E2
+2F9E3 ; NFKC_SCF; 90F1 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E3
+2F9E4 ; NFKC_SCF; 9111 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E4
+2F9E5 ; NFKC_SCF; 2872E # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E5
+2F9E6 ; NFKC_SCF; 911B # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E6
+2F9E7 ; NFKC_SCF; 9238 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E7
+2F9E8 ; NFKC_SCF; 92D7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E8
+2F9E9 ; NFKC_SCF; 92D8 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9E9
+2F9EA ; NFKC_SCF; 927C # Lo CJK COMPATIBILITY IDEOGRAPH-2F9EA
+2F9EB ; NFKC_SCF; 93F9 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9EB
+2F9EC ; NFKC_SCF; 9415 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9EC
+2F9ED ; NFKC_SCF; 28BFA # Lo CJK COMPATIBILITY IDEOGRAPH-2F9ED
+2F9EE ; NFKC_SCF; 958B # Lo CJK COMPATIBILITY IDEOGRAPH-2F9EE
+2F9EF ; NFKC_SCF; 4995 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9EF
+2F9F0 ; NFKC_SCF; 95B7 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F0
+2F9F1 ; NFKC_SCF; 28D77 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F1
+2F9F2 ; NFKC_SCF; 49E6 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F2
+2F9F3 ; NFKC_SCF; 96C3 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F3
+2F9F4 ; NFKC_SCF; 5DB2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F4
+2F9F5 ; NFKC_SCF; 9723 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F5
+2F9F6 ; NFKC_SCF; 29145 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F6
+2F9F7 ; NFKC_SCF; 2921A # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F7
+2F9F8 ; NFKC_SCF; 4A6E # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F8
+2F9F9 ; NFKC_SCF; 4A76 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9F9
+2F9FA ; NFKC_SCF; 97E0 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9FA
+2F9FB ; NFKC_SCF; 2940A # Lo CJK COMPATIBILITY IDEOGRAPH-2F9FB
+2F9FC ; NFKC_SCF; 4AB2 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9FC
+2F9FD ; NFKC_SCF; 29496 # Lo CJK COMPATIBILITY IDEOGRAPH-2F9FD
+2F9FE..2F9FF ; NFKC_SCF; 980B # Lo [2] CJK COMPATIBILITY IDEOGRAPH-2F9FE..CJK COMPATIBILITY IDEOGRAPH-2F9FF
+2FA00 ; NFKC_SCF; 9829 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA00
+2FA01 ; NFKC_SCF; 295B6 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA01
+2FA02 ; NFKC_SCF; 98E2 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA02
+2FA03 ; NFKC_SCF; 4B33 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA03
+2FA04 ; NFKC_SCF; 9929 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA04
+2FA05 ; NFKC_SCF; 99A7 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA05
+2FA06 ; NFKC_SCF; 99C2 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA06
+2FA07 ; NFKC_SCF; 99FE # Lo CJK COMPATIBILITY IDEOGRAPH-2FA07
+2FA08 ; NFKC_SCF; 4BCE # Lo CJK COMPATIBILITY IDEOGRAPH-2FA08
+2FA09 ; NFKC_SCF; 29B30 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA09
+2FA0A ; NFKC_SCF; 9B12 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA0A
+2FA0B ; NFKC_SCF; 9C40 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA0B
+2FA0C ; NFKC_SCF; 9CFD # Lo CJK COMPATIBILITY IDEOGRAPH-2FA0C
+2FA0D ; NFKC_SCF; 4CCE # Lo CJK COMPATIBILITY IDEOGRAPH-2FA0D
+2FA0E ; NFKC_SCF; 4CED # Lo CJK COMPATIBILITY IDEOGRAPH-2FA0E
+2FA0F ; NFKC_SCF; 9D67 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA0F
+2FA10 ; NFKC_SCF; 2A0CE # Lo CJK COMPATIBILITY IDEOGRAPH-2FA10
+2FA11 ; NFKC_SCF; 4CF8 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA11
+2FA12 ; NFKC_SCF; 2A105 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA12
+2FA13 ; NFKC_SCF; 2A20E # Lo CJK COMPATIBILITY IDEOGRAPH-2FA13
+2FA14 ; NFKC_SCF; 2A291 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA14
+2FA15 ; NFKC_SCF; 9EBB # Lo CJK COMPATIBILITY IDEOGRAPH-2FA15
+2FA16 ; NFKC_SCF; 4D56 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA16
+2FA17 ; NFKC_SCF; 9EF9 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA17
+2FA18 ; NFKC_SCF; 9EFE # Lo CJK COMPATIBILITY IDEOGRAPH-2FA18
+2FA19 ; NFKC_SCF; 9F05 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA19
+2FA1A ; NFKC_SCF; 9F0F # Lo CJK COMPATIBILITY IDEOGRAPH-2FA1A
+2FA1B ; NFKC_SCF; 9F16 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA1B
+2FA1C ; NFKC_SCF; 9F3B # Lo CJK COMPATIBILITY IDEOGRAPH-2FA1C
+2FA1D ; NFKC_SCF; 2A600 # Lo CJK COMPATIBILITY IDEOGRAPH-2FA1D
+E0000 ; NFKC_SCF; # Cn <reserved-E0000>
+E0001 ; NFKC_SCF; # Cf LANGUAGE TAG
+E0002..E001F ; NFKC_SCF; # Cn [30] <reserved-E0002>..<reserved-E001F>
+E0020..E007F ; NFKC_SCF; # Cf [96] TAG SPACE..CANCEL TAG
+E0080..E00FF ; NFKC_SCF; # Cn [128] <reserved-E0080>..<reserved-E00FF>
+E0100..E01EF ; NFKC_SCF; # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+E01F0..E0FFF ; NFKC_SCF; # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
+
+# Total code points: 10453
# ================================================
@@ -9164,6 +15410,7 @@ E01F0..E0FFF ; NFKC_CF; # Cn [3600] <reserved-E01F0>..<reserved-
17B4..17B5 ; Changes_When_NFKC_Casefolded # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
180B..180D ; Changes_When_NFKC_Casefolded # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180E ; Changes_When_NFKC_Casefolded # Cf MONGOLIAN VOWEL SEPARATOR
+180F ; Changes_When_NFKC_Casefolded # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1C80..1C88 ; Changes_When_NFKC_Casefolded # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
1C90..1CBA ; Changes_When_NFKC_Casefolded # L& [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
1CBD..1CBF ; Changes_When_NFKC_Casefolded # L& [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
@@ -9399,7 +15646,7 @@ E01F0..E0FFF ; NFKC_CF; # Cn [3600] <reserved-E01F0>..<reserved-
2A0C ; Changes_When_NFKC_Casefolded # Sm QUADRUPLE INTEGRAL OPERATOR
2A74..2A76 ; Changes_When_NFKC_Casefolded # Sm [3] DOUBLE COLON EQUAL..THREE CONSECUTIVE EQUALS SIGNS
2ADC ; Changes_When_NFKC_Casefolded # Sm FORKING
-2C00..2C2E ; Changes_When_NFKC_Casefolded # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C00..2C2F ; Changes_When_NFKC_Casefolded # L& [48] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
2C60 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER L WITH DOUBLE BAR
2C62..2C64 ; Changes_When_NFKC_Casefolded # L& [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
2C67 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER H WITH DESCENDER
@@ -9590,9 +15837,14 @@ A7B8 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER U W
A7BA ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER GLOTTAL A
A7BC ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER GLOTTAL I
A7BE ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER GLOTTAL U
+A7C0 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER OLD POLISH O
A7C2 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER ANGLICANA W
A7C4..A7C7 ; Changes_When_NFKC_Casefolded # L& [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
A7C9 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+A7D0 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER CLOSED INSULAR G
+A7D6 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER MIDDLE SCOTS S
+A7D8 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER SIGMOID S
+A7F2..A7F4 ; Changes_When_NFKC_Casefolded # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
A7F5 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER REVERSED HALF H
A7F8..A7F9 ; Changes_When_NFKC_Casefolded # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
AB5C..AB5F ; Changes_When_NFKC_Casefolded # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
@@ -9723,6 +15975,13 @@ FFED..FFEE ; Changes_When_NFKC_Casefolded # So [2] HALFWIDTH BLACK SQUARE..
FFF0..FFF8 ; Changes_When_NFKC_Casefolded # Cn [9] <reserved-FFF0>..<reserved-FFF8>
10400..10427 ; Changes_When_NFKC_Casefolded # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
104B0..104D3 ; Changes_When_NFKC_Casefolded # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
+10570..1057A ; Changes_When_NFKC_Casefolded # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+1057C..1058A ; Changes_When_NFKC_Casefolded # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+1058C..10592 ; Changes_When_NFKC_Casefolded # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+10594..10595 ; Changes_When_NFKC_Casefolded # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
+10781..10785 ; Changes_When_NFKC_Casefolded # Lm [5] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; Changes_When_NFKC_Casefolded # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; Changes_When_NFKC_Casefolded # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
10C80..10CB2 ; Changes_When_NFKC_Casefolded # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
118A0..118BF ; Changes_When_NFKC_Casefolded # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
16E40..16E5F ; Changes_When_NFKC_Casefolded # L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
@@ -9771,6 +16030,7 @@ FFF0..FFF8 ; Changes_When_NFKC_Casefolded # Cn [9] <reserved-FFF0>..<reserv
1D7C3 ; Changes_When_NFKC_Casefolded # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
1D7C4..1D7CB ; Changes_When_NFKC_Casefolded # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
1D7CE..1D7FF ; Changes_When_NFKC_Casefolded # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1E030..1E06D ; Changes_When_NFKC_Casefolded # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E900..1E921 ; Changes_When_NFKC_Casefolded # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA
1EE00..1EE03 ; Changes_When_NFKC_Casefolded # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; Changes_When_NFKC_Casefolded # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
@@ -9824,6 +16084,6 @@ E0080..E00FF ; Changes_When_NFKC_Casefolded # Cn [128] <reserved-E0080>..<reser
E0100..E01EF ; Changes_When_NFKC_Casefolded # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
E01F0..E0FFF ; Changes_When_NFKC_Casefolded # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
-# Total code points: 10329
+# Total code points: 10491
# EOF
diff --git a/util/unicode/data/EastAsianWidth.txt b/util/unicode/data/EastAsianWidth.txt
new file mode 100644
index 0000000000..02df4df475
--- /dev/null
+++ b/util/unicode/data/EastAsianWidth.txt
@@ -0,0 +1,2621 @@
+# EastAsianWidth-15.1.0.txt
+# Date: 2023-07-28, 23:34:08 GMT
+# © 2023 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
+#
+# Unicode Character Database
+# For documentation, see https://www.unicode.org/reports/tr44/
+#
+# East_Asian_Width Property
+#
+# This file is a normative contributory data file in the
+# Unicode Character Database.
+#
+# The format is two fields separated by a semicolon.
+# Field 0: Unicode code point value or range of code point values
+# Field 1: East_Asian_Width property, consisting of one of the following values:
+# "A", "F", "H", "N", "Na", "W"
+# - All code points, assigned or unassigned, that are not listed
+# explicitly are given the value "N".
+# - The unassigned code points in the following blocks default to "W":
+# CJK Unified Ideographs Extension A: U+3400..U+4DBF
+# CJK Unified Ideographs: U+4E00..U+9FFF
+# CJK Compatibility Ideographs: U+F900..U+FAFF
+# - All undesignated code points in Planes 2 and 3, whether inside or
+# outside of allocated blocks, default to "W":
+# Plane 2: U+20000..U+2FFFD
+# Plane 3: U+30000..U+3FFFD
+#
+# Character ranges are specified as for other property files in the
+# Unicode Character Database.
+#
+# The comments following the number sign "#" list the General_Category
+# property value or the L& alias of the derived value LC, the Unicode
+# character name or names, and, in lines with ranges of code points,
+# the code point count in square brackets.
+#
+# For more information, see UAX #11: East Asian Width,
+# at https://www.unicode.org/reports/tr11/
+#
+# @missing: 0000..10FFFF; N
+0000..001F ; N # Cc [32] <control-0000>..<control-001F>
+0020 ; Na # Zs SPACE
+0021..0023 ; Na # Po [3] EXCLAMATION MARK..NUMBER SIGN
+0024 ; Na # Sc DOLLAR SIGN
+0025..0027 ; Na # Po [3] PERCENT SIGN..APOSTROPHE
+0028 ; Na # Ps LEFT PARENTHESIS
+0029 ; Na # Pe RIGHT PARENTHESIS
+002A ; Na # Po ASTERISK
+002B ; Na # Sm PLUS SIGN
+002C ; Na # Po COMMA
+002D ; Na # Pd HYPHEN-MINUS
+002E..002F ; Na # Po [2] FULL STOP..SOLIDUS
+0030..0039 ; Na # Nd [10] DIGIT ZERO..DIGIT NINE
+003A..003B ; Na # Po [2] COLON..SEMICOLON
+003C..003E ; Na # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F..0040 ; Na # Po [2] QUESTION MARK..COMMERCIAL AT
+0041..005A ; Na # Lu [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+005B ; Na # Ps LEFT SQUARE BRACKET
+005C ; Na # Po REVERSE SOLIDUS
+005D ; Na # Pe RIGHT SQUARE BRACKET
+005E ; Na # Sk CIRCUMFLEX ACCENT
+005F ; Na # Pc LOW LINE
+0060 ; Na # Sk GRAVE ACCENT
+0061..007A ; Na # Ll [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B ; Na # Ps LEFT CURLY BRACKET
+007C ; Na # Sm VERTICAL LINE
+007D ; Na # Pe RIGHT CURLY BRACKET
+007E ; Na # Sm TILDE
+007F ; N # Cc <control-007F>
+0080..009F ; N # Cc [32] <control-0080>..<control-009F>
+00A0 ; N # Zs NO-BREAK SPACE
+00A1 ; A # Po INVERTED EXCLAMATION MARK
+00A2..00A3 ; Na # Sc [2] CENT SIGN..POUND SIGN
+00A4 ; A # Sc CURRENCY SIGN
+00A5 ; Na # Sc YEN SIGN
+00A6 ; Na # So BROKEN BAR
+00A7 ; A # Po SECTION SIGN
+00A8 ; A # Sk DIAERESIS
+00A9 ; N # So COPYRIGHT SIGN
+00AA ; A # Lo FEMININE ORDINAL INDICATOR
+00AB ; N # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC ; Na # Sm NOT SIGN
+00AD ; A # Cf SOFT HYPHEN
+00AE ; A # So REGISTERED SIGN
+00AF ; Na # Sk MACRON
+00B0 ; A # So DEGREE SIGN
+00B1 ; A # Sm PLUS-MINUS SIGN
+00B2..00B3 ; A # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4 ; A # Sk ACUTE ACCENT
+00B5 ; N # Ll MICRO SIGN
+00B6..00B7 ; A # Po [2] PILCROW SIGN..MIDDLE DOT
+00B8 ; A # Sk CEDILLA
+00B9 ; A # No SUPERSCRIPT ONE
+00BA ; A # Lo MASCULINE ORDINAL INDICATOR
+00BB ; N # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE ; A # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00BF ; A # Po INVERTED QUESTION MARK
+00C0..00C5 ; N # Lu [6] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER A WITH RING ABOVE
+00C6 ; A # Lu LATIN CAPITAL LETTER AE
+00C7..00CF ; N # Lu [9] LATIN CAPITAL LETTER C WITH CEDILLA..LATIN CAPITAL LETTER I WITH DIAERESIS
+00D0 ; A # Lu LATIN CAPITAL LETTER ETH
+00D1..00D6 ; N # Lu [6] LATIN CAPITAL LETTER N WITH TILDE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7 ; A # Sm MULTIPLICATION SIGN
+00D8 ; A # Lu LATIN CAPITAL LETTER O WITH STROKE
+00D9..00DD ; N # Lu [5] LATIN CAPITAL LETTER U WITH GRAVE..LATIN CAPITAL LETTER Y WITH ACUTE
+00DE..00E1 ; A # L& [4] LATIN CAPITAL LETTER THORN..LATIN SMALL LETTER A WITH ACUTE
+00E2..00E5 ; N # Ll [4] LATIN SMALL LETTER A WITH CIRCUMFLEX..LATIN SMALL LETTER A WITH RING ABOVE
+00E6 ; A # Ll LATIN SMALL LETTER AE
+00E7 ; N # Ll LATIN SMALL LETTER C WITH CEDILLA
+00E8..00EA ; A # Ll [3] LATIN SMALL LETTER E WITH GRAVE..LATIN SMALL LETTER E WITH CIRCUMFLEX
+00EB ; N # Ll LATIN SMALL LETTER E WITH DIAERESIS
+00EC..00ED ; A # Ll [2] LATIN SMALL LETTER I WITH GRAVE..LATIN SMALL LETTER I WITH ACUTE
+00EE..00EF ; N # Ll [2] LATIN SMALL LETTER I WITH CIRCUMFLEX..LATIN SMALL LETTER I WITH DIAERESIS
+00F0 ; A # Ll LATIN SMALL LETTER ETH
+00F1 ; N # Ll LATIN SMALL LETTER N WITH TILDE
+00F2..00F3 ; A # Ll [2] LATIN SMALL LETTER O WITH GRAVE..LATIN SMALL LETTER O WITH ACUTE
+00F4..00F6 ; N # Ll [3] LATIN SMALL LETTER O WITH CIRCUMFLEX..LATIN SMALL LETTER O WITH DIAERESIS
+00F7 ; A # Sm DIVISION SIGN
+00F8..00FA ; A # Ll [3] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER U WITH ACUTE
+00FB ; N # Ll LATIN SMALL LETTER U WITH CIRCUMFLEX
+00FC ; A # Ll LATIN SMALL LETTER U WITH DIAERESIS
+00FD ; N # Ll LATIN SMALL LETTER Y WITH ACUTE
+00FE ; A # Ll LATIN SMALL LETTER THORN
+00FF ; N # Ll LATIN SMALL LETTER Y WITH DIAERESIS
+0100 ; N # Lu LATIN CAPITAL LETTER A WITH MACRON
+0101 ; A # Ll LATIN SMALL LETTER A WITH MACRON
+0102..0110 ; N # L& [15] LATIN CAPITAL LETTER A WITH BREVE..LATIN CAPITAL LETTER D WITH STROKE
+0111 ; A # Ll LATIN SMALL LETTER D WITH STROKE
+0112 ; N # Lu LATIN CAPITAL LETTER E WITH MACRON
+0113 ; A # Ll LATIN SMALL LETTER E WITH MACRON
+0114..011A ; N # L& [7] LATIN CAPITAL LETTER E WITH BREVE..LATIN CAPITAL LETTER E WITH CARON
+011B ; A # Ll LATIN SMALL LETTER E WITH CARON
+011C..0125 ; N # L& [10] LATIN CAPITAL LETTER G WITH CIRCUMFLEX..LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126..0127 ; A # L& [2] LATIN CAPITAL LETTER H WITH STROKE..LATIN SMALL LETTER H WITH STROKE
+0128..012A ; N # L& [3] LATIN CAPITAL LETTER I WITH TILDE..LATIN CAPITAL LETTER I WITH MACRON
+012B ; A # Ll LATIN SMALL LETTER I WITH MACRON
+012C..0130 ; N # L& [5] LATIN CAPITAL LETTER I WITH BREVE..LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131..0133 ; A # L& [3] LATIN SMALL LETTER DOTLESS I..LATIN SMALL LIGATURE IJ
+0134..0137 ; N # L& [4] LATIN CAPITAL LETTER J WITH CIRCUMFLEX..LATIN SMALL LETTER K WITH CEDILLA
+0138 ; A # Ll LATIN SMALL LETTER KRA
+0139..013E ; N # L& [6] LATIN CAPITAL LETTER L WITH ACUTE..LATIN SMALL LETTER L WITH CARON
+013F..0142 ; A # L& [4] LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH STROKE
+0143 ; N # Lu LATIN CAPITAL LETTER N WITH ACUTE
+0144 ; A # Ll LATIN SMALL LETTER N WITH ACUTE
+0145..0147 ; N # L& [3] LATIN CAPITAL LETTER N WITH CEDILLA..LATIN CAPITAL LETTER N WITH CARON
+0148..014B ; A # L& [4] LATIN SMALL LETTER N WITH CARON..LATIN SMALL LETTER ENG
+014C ; N # Lu LATIN CAPITAL LETTER O WITH MACRON
+014D ; A # Ll LATIN SMALL LETTER O WITH MACRON
+014E..0151 ; N # L& [4] LATIN CAPITAL LETTER O WITH BREVE..LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152..0153 ; A # L& [2] LATIN CAPITAL LIGATURE OE..LATIN SMALL LIGATURE OE
+0154..0165 ; N # L& [18] LATIN CAPITAL LETTER R WITH ACUTE..LATIN SMALL LETTER T WITH CARON
+0166..0167 ; A # L& [2] LATIN CAPITAL LETTER T WITH STROKE..LATIN SMALL LETTER T WITH STROKE
+0168..016A ; N # L& [3] LATIN CAPITAL LETTER U WITH TILDE..LATIN CAPITAL LETTER U WITH MACRON
+016B ; A # Ll LATIN SMALL LETTER U WITH MACRON
+016C..017F ; N # L& [20] LATIN CAPITAL LETTER U WITH BREVE..LATIN SMALL LETTER LONG S
+0180..01BA ; N # L& [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB ; N # Lo LATIN LETTER TWO WITH STROKE
+01BC..01BF ; N # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3 ; N # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..01CD ; N # L& [10] LATIN CAPITAL LETTER DZ WITH CARON..LATIN CAPITAL LETTER A WITH CARON
+01CE ; A # Ll LATIN SMALL LETTER A WITH CARON
+01CF ; N # Lu LATIN CAPITAL LETTER I WITH CARON
+01D0 ; A # Ll LATIN SMALL LETTER I WITH CARON
+01D1 ; N # Lu LATIN CAPITAL LETTER O WITH CARON
+01D2 ; A # Ll LATIN SMALL LETTER O WITH CARON
+01D3 ; N # Lu LATIN CAPITAL LETTER U WITH CARON
+01D4 ; A # Ll LATIN SMALL LETTER U WITH CARON
+01D5 ; N # Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6 ; A # Ll LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7 ; N # Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8 ; A # Ll LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9 ; N # Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA ; A # Ll LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB ; N # Lu LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC ; A # Ll LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+01DD..024F ; N # L& [115] LATIN SMALL LETTER TURNED E..LATIN SMALL LETTER Y WITH STROKE
+0250 ; N # Ll LATIN SMALL LETTER TURNED A
+0251 ; A # Ll LATIN SMALL LETTER ALPHA
+0252..0260 ; N # Ll [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK
+0261 ; A # Ll LATIN SMALL LETTER SCRIPT G
+0262..0293 ; N # Ll [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL
+0294 ; N # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF ; N # Ll [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02C1 ; N # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C3 ; N # Sk [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD
+02C4 ; A # Sk MODIFIER LETTER UP ARROWHEAD
+02C5 ; N # Sk MODIFIER LETTER DOWN ARROWHEAD
+02C6 ; N # Lm MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7 ; A # Lm CARON
+02C8 ; N # Lm MODIFIER LETTER VERTICAL LINE
+02C9..02CB ; A # Lm [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
+02CC ; N # Lm MODIFIER LETTER LOW VERTICAL LINE
+02CD ; A # Lm MODIFIER LETTER LOW MACRON
+02CE..02CF ; N # Lm [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
+02D0 ; A # Lm MODIFIER LETTER TRIANGULAR COLON
+02D1 ; N # Lm MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7 ; N # Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02D8..02DB ; A # Sk [4] BREVE..OGONEK
+02DC ; N # Sk SMALL TILDE
+02DD ; A # Sk DOUBLE ACUTE ACCENT
+02DE ; N # Sk MODIFIER LETTER RHOTIC HOOK
+02DF ; A # Sk MODIFIER LETTER CROSS ACCENT
+02E0..02E4 ; N # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02EB ; N # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; N # Lm MODIFIER LETTER VOICING
+02ED ; N # Sk MODIFIER LETTER UNASPIRATED
+02EE ; N # Lm MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF ; N # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300..036F ; A # Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
+0370..0373 ; N # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0374 ; N # Lm GREEK NUMERAL SIGN
+0375 ; N # Sk GREEK LOWER NUMERAL SIGN
+0376..0377 ; N # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A ; N # Lm GREEK YPOGEGRAMMENI
+037B..037D ; N # Ll [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E ; N # Po GREEK QUESTION MARK
+037F ; N # Lu GREEK CAPITAL LETTER YOT
+0384..0385 ; N # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386 ; N # Lu GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387 ; N # Po GREEK ANO TELEIA
+0388..038A ; N # Lu [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; N # Lu GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..0390 ; N # L& [3] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391..03A1 ; A # Lu [17] GREEK CAPITAL LETTER ALPHA..GREEK CAPITAL LETTER RHO
+03A3..03A9 ; A # Lu [7] GREEK CAPITAL LETTER SIGMA..GREEK CAPITAL LETTER OMEGA
+03AA..03B0 ; N # L& [7] GREEK CAPITAL LETTER IOTA WITH DIALYTIKA..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+03B1..03C1 ; A # Ll [17] GREEK SMALL LETTER ALPHA..GREEK SMALL LETTER RHO
+03C2 ; N # Ll GREEK SMALL LETTER FINAL SIGMA
+03C3..03C9 ; A # Ll [7] GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA
+03CA..03F5 ; N # L& [44] GREEK SMALL LETTER IOTA WITH DIALYTIKA..GREEK LUNATE EPSILON SYMBOL
+03F6 ; N # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..03FF ; N # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400 ; N # Lu CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401 ; A # Lu CYRILLIC CAPITAL LETTER IO
+0402..040F ; N # Lu [14] CYRILLIC CAPITAL LETTER DJE..CYRILLIC CAPITAL LETTER DZHE
+0410..044F ; A # L& [64] CYRILLIC CAPITAL LETTER A..CYRILLIC SMALL LETTER YA
+0450 ; N # Ll CYRILLIC SMALL LETTER IE WITH GRAVE
+0451 ; A # Ll CYRILLIC SMALL LETTER IO
+0452..0481 ; N # L& [48] CYRILLIC SMALL LETTER DJE..CYRILLIC SMALL LETTER KOPPA
+0482 ; N # So CYRILLIC THOUSANDS SIGN
+0483..0487 ; N # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489 ; N # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..04FF ; N # L& [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
+0500..052F ; N # L& [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
+0531..0556 ; N # Lu [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559 ; N # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F ; N # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0560..0588 ; N # Ll [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
+0589 ; N # Po ARMENIAN FULL STOP
+058A ; N # Pd ARMENIAN HYPHEN
+058D..058E ; N # So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F ; N # Sc ARMENIAN DRAM SIGN
+0591..05BD ; N # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE ; N # Pd HEBREW PUNCTUATION MAQAF
+05BF ; N # Mn HEBREW POINT RAFE
+05C0 ; N # Po HEBREW PUNCTUATION PASEQ
+05C1..05C2 ; N # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3 ; N # Po HEBREW PUNCTUATION SOF PASUQ
+05C4..05C5 ; N # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6 ; N # Po HEBREW PUNCTUATION NUN HAFUKHA
+05C7 ; N # Mn HEBREW POINT QAMATS QATAN
+05D0..05EA ; N # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05EF..05F2 ; N # Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3..05F4 ; N # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+0600..0605 ; N # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+0606..0608 ; N # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A ; N # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B ; N # Sc AFGHANI SIGN
+060C..060D ; N # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+060E..060F ; N # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+0610..061A ; N # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061B ; N # Po ARABIC SEMICOLON
+061C ; N # Cf ARABIC LETTER MARK
+061D..061F ; N # Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
+0620..063F ; N # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640 ; N # Lm ARABIC TATWEEL
+0641..064A ; N # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+064B..065F ; N # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+0660..0669 ; N # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A..066D ; N # Po [4] ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E..066F ; N # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0670 ; N # Mn ARABIC LETTER SUPERSCRIPT ALEF
+0671..06D3 ; N # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4 ; N # Po ARABIC FULL STOP
+06D5 ; N # Lo ARABIC LETTER AE
+06D6..06DC ; N # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DD ; N # Cf ARABIC END OF AYAH
+06DE ; N # So ARABIC START OF RUB EL HIZB
+06DF..06E4 ; N # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E5..06E6 ; N # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E7..06E8 ; N # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06E9 ; N # So ARABIC PLACE OF SAJDAH
+06EA..06ED ; N # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF ; N # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9 ; N # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FC ; N # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FD..06FE ; N # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF ; N # Lo ARABIC LETTER HEH WITH INVERTED V
+0700..070D ; N # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070F ; N # Cf SYRIAC ABBREVIATION MARK
+0710 ; N # Lo SYRIAC LETTER ALAPH
+0711 ; N # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0712..072F ; N # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A ; N # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074D..074F ; N # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0750..077F ; N # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0780..07A5 ; N # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU
+07A6..07B0 ; N # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07B1 ; N # Lo THAANA LETTER NAA
+07C0..07C9 ; N # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA ; N # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07EB..07F3 ; N # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07F4..07F5 ; N # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07F6 ; N # So NKO SYMBOL OO DENNEN
+07F7..07F9 ; N # Po [3] NKO SYMBOL GBAKURUNEN..NKO EXCLAMATION MARK
+07FA ; N # Lm NKO LAJANYALAN
+07FD ; N # Mn NKO DANTAYALAN
+07FE..07FF ; N # Sc [2] NKO DOROME SIGN..NKO TAMAN SIGN
+0800..0815 ; N # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
+0816..0819 ; N # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081A ; N # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B..0823 ; N # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+0824 ; N # Lm SAMARITAN MODIFIER LETTER SHORT A
+0825..0827 ; N # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+0828 ; N # Lm SAMARITAN MODIFIER LETTER I
+0829..082D ; N # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+0830..083E ; N # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+0840..0858 ; N # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+0859..085B ; N # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+085E ; N # Po MANDAIC PUNCTUATION
+0860..086A ; N # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
+0870..0887 ; N # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+0888 ; N # Sk ARABIC RAISED ROUND DOT
+0889..088E ; N # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+0890..0891 ; N # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+0898..089F ; N # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08A0..08C8 ; N # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
+08C9 ; N # Lm ARABIC SMALL FARSI YEH
+08CA..08E1 ; N # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
+08E2 ; N # Cf ARABIC DISPUTED END OF AYAH
+08E3..08FF ; N # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
+0900..0902 ; N # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903 ; N # Mc DEVANAGARI SIGN VISARGA
+0904..0939 ; N # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093A ; N # Mn DEVANAGARI VOWEL SIGN OE
+093B ; N # Mc DEVANAGARI VOWEL SIGN OOE
+093C ; N # Mn DEVANAGARI SIGN NUKTA
+093D ; N # Lo DEVANAGARI SIGN AVAGRAHA
+093E..0940 ; N # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948 ; N # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C ; N # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+094D ; N # Mn DEVANAGARI SIGN VIRAMA
+094E..094F ; N # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+0950 ; N # Lo DEVANAGARI OM
+0951..0957 ; N # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+0958..0961 ; N # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0962..0963 ; N # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965 ; N # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F ; N # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970 ; N # Po DEVANAGARI ABBREVIATION SIGN
+0971 ; N # Lm DEVANAGARI SIGN HIGH SPACING DOT
+0972..097F ; N # Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
+0980 ; N # Lo BENGALI ANJI
+0981 ; N # Mn BENGALI SIGN CANDRABINDU
+0982..0983 ; N # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C ; N # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990 ; N # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8 ; N # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0 ; N # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2 ; N # Lo BENGALI LETTER LA
+09B6..09B9 ; N # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BC ; N # Mn BENGALI SIGN NUKTA
+09BD ; N # Lo BENGALI SIGN AVAGRAHA
+09BE..09C0 ; N # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4 ; N # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8 ; N # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; N # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD ; N # Mn BENGALI SIGN VIRAMA
+09CE ; N # Lo BENGALI LETTER KHANDA TA
+09D7 ; N # Mc BENGALI AU LENGTH MARK
+09DC..09DD ; N # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1 ; N # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09E2..09E3 ; N # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09E6..09EF ; N # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1 ; N # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3 ; N # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F9 ; N # No [6] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA ; N # So BENGALI ISSHAR
+09FB ; N # Sc BENGALI GANDA MARK
+09FC ; N # Lo BENGALI LETTER VEDIC ANUSVARA
+09FD ; N # Po BENGALI ABBREVIATION SIGN
+09FE ; N # Mn BENGALI SANDHI MARK
+0A01..0A02 ; N # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03 ; N # Mc GURMUKHI SIGN VISARGA
+0A05..0A0A ; N # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10 ; N # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28 ; N # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30 ; N # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33 ; N # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36 ; N # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39 ; N # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3C ; N # Mn GURMUKHI SIGN NUKTA
+0A3E..0A40 ; N # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42 ; N # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; N # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D ; N # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51 ; N # Mn GURMUKHI SIGN UDAAT
+0A59..0A5C ; N # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E ; N # Lo GURMUKHI LETTER FA
+0A66..0A6F ; N # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71 ; N # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74 ; N # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75 ; N # Mn GURMUKHI SIGN YAKASH
+0A76 ; N # Po GURMUKHI ABBREVIATION SIGN
+0A81..0A82 ; N # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83 ; N # Mc GUJARATI SIGN VISARGA
+0A85..0A8D ; N # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91 ; N # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8 ; N # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0 ; N # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3 ; N # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9 ; N # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABC ; N # Mn GUJARATI SIGN NUKTA
+0ABD ; N # Lo GUJARATI SIGN AVAGRAHA
+0ABE..0AC0 ; N # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5 ; N # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; N # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9 ; N # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; N # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0ACD ; N # Mn GUJARATI SIGN VIRAMA
+0AD0 ; N # Lo GUJARATI OM
+0AE0..0AE1 ; N # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AE2..0AE3 ; N # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AE6..0AEF ; N # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0 ; N # Po GUJARATI ABBREVIATION SIGN
+0AF1 ; N # Sc GUJARATI RUPEE SIGN
+0AF9 ; N # Lo GUJARATI LETTER ZHA
+0AFA..0AFF ; N # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+0B01 ; N # Mn ORIYA SIGN CANDRABINDU
+0B02..0B03 ; N # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C ; N # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10 ; N # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28 ; N # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30 ; N # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33 ; N # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39 ; N # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3C ; N # Mn ORIYA SIGN NUKTA
+0B3D ; N # Lo ORIYA SIGN AVAGRAHA
+0B3E ; N # Mc ORIYA VOWEL SIGN AA
+0B3F ; N # Mn ORIYA VOWEL SIGN I
+0B40 ; N # Mc ORIYA VOWEL SIGN II
+0B41..0B44 ; N # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48 ; N # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; N # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D ; N # Mn ORIYA SIGN VIRAMA
+0B55..0B56 ; N # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
+0B57 ; N # Mc ORIYA AU LENGTH MARK
+0B5C..0B5D ; N # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61 ; N # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63 ; N # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B66..0B6F ; N # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70 ; N # So ORIYA ISSHAR
+0B71 ; N # Lo ORIYA LETTER WA
+0B72..0B77 ; N # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B82 ; N # Mn TAMIL SIGN ANUSVARA
+0B83 ; N # Lo TAMIL SIGN VISARGA
+0B85..0B8A ; N # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90 ; N # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95 ; N # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A ; N # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C ; N # Lo TAMIL LETTER JA
+0B9E..0B9F ; N # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4 ; N # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA ; N # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9 ; N # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF ; N # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0 ; N # Mn TAMIL VOWEL SIGN II
+0BC1..0BC2 ; N # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; N # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; N # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD ; N # Mn TAMIL SIGN VIRAMA
+0BD0 ; N # Lo TAMIL OM
+0BD7 ; N # Mc TAMIL AU LENGTH MARK
+0BE6..0BEF ; N # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2 ; N # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8 ; N # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9 ; N # Sc TAMIL RUPEE SIGN
+0BFA ; N # So TAMIL NUMBER SIGN
+0C00 ; N # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03 ; N # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04 ; N # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C05..0C0C ; N # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10 ; N # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28 ; N # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C39 ; N # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3C ; N # Mn TELUGU SIGN NUKTA
+0C3D ; N # Lo TELUGU SIGN AVAGRAHA
+0C3E..0C40 ; N # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44 ; N # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48 ; N # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; N # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; N # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C58..0C5A ; N # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C5D ; N # Lo TELUGU LETTER NAKAARA POLLU
+0C60..0C61 ; N # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63 ; N # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C66..0C6F ; N # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C77 ; N # Po TELUGU SIGN SIDDHAM
+0C78..0C7E ; N # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F ; N # So TELUGU SIGN TUUMU
+0C80 ; N # Lo KANNADA SIGN SPACING CANDRABINDU
+0C81 ; N # Mn KANNADA SIGN CANDRABINDU
+0C82..0C83 ; N # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C84 ; N # Po KANNADA SIGN SIDDHAM
+0C85..0C8C ; N # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90 ; N # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8 ; N # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3 ; N # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9 ; N # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBC ; N # Mn KANNADA SIGN NUKTA
+0CBD ; N # Lo KANNADA SIGN AVAGRAHA
+0CBE ; N # Mc KANNADA VOWEL SIGN AA
+0CBF ; N # Mn KANNADA VOWEL SIGN I
+0CC0..0CC4 ; N # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6 ; N # Mn KANNADA VOWEL SIGN E
+0CC7..0CC8 ; N # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; N # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD ; N # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6 ; N # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDD..0CDE ; N # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
+0CE0..0CE1 ; N # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3 ; N # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE6..0CEF ; N # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF1..0CF2 ; N # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3 ; N # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+0D00..0D01 ; N # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
+0D02..0D03 ; N # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D04..0D0C ; N # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
+0D0E..0D10 ; N # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D3A ; N # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+0D3B..0D3C ; N # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+0D3D ; N # Lo MALAYALAM SIGN AVAGRAHA
+0D3E..0D40 ; N # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44 ; N # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48 ; N # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C ; N # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D4D ; N # Mn MALAYALAM SIGN VIRAMA
+0D4E ; N # Lo MALAYALAM LETTER DOT REPH
+0D4F ; N # So MALAYALAM SIGN PARA
+0D54..0D56 ; N # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
+0D57 ; N # Mc MALAYALAM AU LENGTH MARK
+0D58..0D5E ; N # No [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
+0D5F..0D61 ; N # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
+0D62..0D63 ; N # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D66..0D6F ; N # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D78 ; N # No [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
+0D79 ; N # So MALAYALAM DATE MARK
+0D7A..0D7F ; N # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D81 ; N # Mn SINHALA SIGN CANDRABINDU
+0D82..0D83 ; N # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D85..0D96 ; N # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1 ; N # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB ; N # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD ; N # Lo SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6 ; N # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DCA ; N # Mn SINHALA SIGN AL-LAKUNA
+0DCF..0DD1 ; N # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4 ; N # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; N # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF ; N # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF ; N # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF2..0DF3 ; N # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4 ; N # Po SINHALA PUNCTUATION KUNDDALIYA
+0E01..0E30 ; N # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31 ; N # Mn THAI CHARACTER MAI HAN-AKAT
+0E32..0E33 ; N # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A ; N # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3F ; N # Sc THAI CURRENCY SYMBOL BAHT
+0E40..0E45 ; N # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E46 ; N # Lm THAI CHARACTER MAIYAMOK
+0E47..0E4E ; N # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0E4F ; N # Po THAI CHARACTER FONGMAN
+0E50..0E59 ; N # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B ; N # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E81..0E82 ; N # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84 ; N # Lo LAO LETTER KHO TAM
+0E86..0E8A ; N # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; N # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
+0EA5 ; N # Lo LAO LETTER LO LOOT
+0EA7..0EB0 ; N # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
+0EB1 ; N # Mn LAO VOWEL SIGN MAI KAN
+0EB2..0EB3 ; N # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EBC ; N # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
+0EBD ; N # Lo LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4 ; N # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6 ; N # Lm LAO KO LA
+0EC8..0ECE ; N # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
+0ED0..0ED9 ; N # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDF ; N # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
+0F00 ; N # Lo TIBETAN SYLLABLE OM
+0F01..0F03 ; N # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04..0F12 ; N # Po [15] TIBETAN MARK INITIAL YIG MGO MDUN MA..TIBETAN MARK RGYA GRAM SHAD
+0F13 ; N # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14 ; N # Po TIBETAN MARK GTER TSHEG
+0F15..0F17 ; N # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19 ; N # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F ; N # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29 ; N # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33 ; N # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+0F34 ; N # So TIBETAN MARK BSDUS RTAGS
+0F35 ; N # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36 ; N # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37 ; N # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38 ; N # So TIBETAN MARK CHE MGO
+0F39 ; N # Mn TIBETAN MARK TSA -PHRU
+0F3A ; N # Ps TIBETAN MARK GUG RTAGS GYON
+0F3B ; N # Pe TIBETAN MARK GUG RTAGS GYAS
+0F3C ; N # Ps TIBETAN MARK ANG KHANG GYON
+0F3D ; N # Pe TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F ; N # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F40..0F47 ; N # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C ; N # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F71..0F7E ; N # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F7F ; N # Mc TIBETAN SIGN RNAM BCAD
+0F80..0F84 ; N # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F85 ; N # Po TIBETAN MARK PALUTA
+0F86..0F87 ; N # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F88..0F8C ; N # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
+0F8D..0F97 ; N # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; N # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FC5 ; N # So [8] TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC6 ; N # Mn TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC ; N # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF ; N # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD4 ; N # Po [5] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5..0FD8 ; N # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9..0FDA ; N # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+1000..102A ; N # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C ; N # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030 ; N # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031 ; N # Mc MYANMAR VOWEL SIGN E
+1032..1037 ; N # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1038 ; N # Mc MYANMAR SIGN VISARGA
+1039..103A ; N # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C ; N # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E ; N # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+103F ; N # Lo MYANMAR LETTER GREAT SA
+1040..1049 ; N # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104F ; N # Po [6] MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050..1055 ; N # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+1056..1057 ; N # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059 ; N # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105A..105D ; N # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+105E..1060 ; N # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061 ; N # Lo MYANMAR LETTER SGAW KAREN SHA
+1062..1064 ; N # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1065..1066 ; N # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D ; N # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070 ; N # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074 ; N # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1075..1081 ; N # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+1082 ; N # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084 ; N # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086 ; N # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C ; N # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; N # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108E ; N # Lo MYANMAR LETTER RUMAI PALAUNG FA
+108F ; N # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099 ; N # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+109A..109C ; N # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
+109D ; N # Mn MYANMAR VOWEL SIGN AITON AI
+109E..109F ; N # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5 ; N # Lu [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7 ; N # Lu GEORGIAN CAPITAL LETTER YN
+10CD ; N # Lu GEORGIAN CAPITAL LETTER AEN
+10D0..10FA ; N # Ll [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB ; N # Po GEORGIAN PARAGRAPH SEPARATOR
+10FC ; N # Lm MODIFIER LETTER GEORGIAN NAR
+10FD..10FF ; N # Ll [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100..115F ; W # Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+1160..11FF ; N # Lo [160] HANGUL JUNGSEONG FILLER..HANGUL JONGSEONG SSANGNIEUN
+1200..1248 ; N # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D ; N # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256 ; N # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258 ; N # Lo ETHIOPIC SYLLABLE QHWA
+125A..125D ; N # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288 ; N # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D ; N # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0 ; N # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5 ; N # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE ; N # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0 ; N # Lo ETHIOPIC SYLLABLE KXWA
+12C2..12C5 ; N # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6 ; N # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310 ; N # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315 ; N # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A ; N # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135D..135F ; N # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1360..1368 ; N # Po [9] ETHIOPIC SECTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
+1369..137C ; N # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+1380..138F ; N # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399 ; N # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+13A0..13F5 ; N # Lu [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
+13F8..13FD ; N # Ll [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
+1400 ; N # Pd CANADIAN SYLLABICS HYPHEN
+1401..166C ; N # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D ; N # So CANADIAN SYLLABICS CHI SIGN
+166E ; N # Po CANADIAN SYLLABICS FULL STOP
+166F..167F ; N # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1680 ; N # Zs OGHAM SPACE MARK
+1681..169A ; N # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B ; N # Ps OGHAM FEATHER MARK
+169C ; N # Pe OGHAM REVERSED FEATHER MARK
+16A0..16EA ; N # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB..16ED ; N # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+16EE..16F0 ; N # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; N # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+1700..1711 ; N # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
+1712..1714 ; N # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1715 ; N # Mc TAGALOG SIGN PAMUDPOD
+171F ; N # Lo TAGALOG LETTER ARCHAIC RA
+1720..1731 ; N # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1733 ; N # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+1734 ; N # Mc HANUNOO SIGN PAMUDPOD
+1735..1736 ; N # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1740..1751 ; N # Lo [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753 ; N # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1760..176C ; N # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770 ; N # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773 ; N # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1780..17B3 ; N # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5 ; N # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6 ; N # Mc KHMER VOWEL SIGN AA
+17B7..17BD ; N # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5 ; N # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6 ; N # Mn KHMER SIGN NIKAHIT
+17C7..17C8 ; N # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3 ; N # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17D4..17D6 ; N # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7 ; N # Lm KHMER SIGN LEK TOO
+17D8..17DA ; N # Po [3] KHMER SIGN BEYYAL..KHMER SIGN KOOMUUT
+17DB ; N # Sc KHMER CURRENCY SYMBOL RIEL
+17DC ; N # Lo KHMER SIGN AVAKRAHASANYA
+17DD ; N # Mn KHMER SIGN ATTHACAN
+17E0..17E9 ; N # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9 ; N # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+1800..1805 ; N # Po [6] MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
+1806 ; N # Pd MONGOLIAN TODO SOFT HYPHEN
+1807..180A ; N # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+180B..180D ; N # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; N # Cf MONGOLIAN VOWEL SEPARATOR
+180F ; N # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
+1810..1819 ; N # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842 ; N # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843 ; N # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1878 ; N # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
+1880..1884 ; N # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885..1886 ; N # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
+1887..18A8 ; N # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9 ; N # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+18AA ; N # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+18B0..18F5 ; N # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+1900..191E ; N # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+1920..1922 ; N # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926 ; N # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928 ; N # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B ; N # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931 ; N # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932 ; N # Mn LIMBU SMALL LETTER ANUSVARA
+1933..1938 ; N # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B ; N # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1940 ; N # So LIMBU SIGN LOO
+1944..1945 ; N # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F ; N # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+1950..196D ; N # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974 ; N # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1980..19AB ; N # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+19B0..19C9 ; N # Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
+19D0..19D9 ; N # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA ; N # No NEW TAI LUE THAM DIGIT ONE
+19DE..19DF ; N # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF ; N # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A16 ; N # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A17..1A18 ; N # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A19..1A1A ; N # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+1A1B ; N # Mn BUGINESE VOWEL SIGN AE
+1A1E..1A1F ; N # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20..1A54 ; N # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
+1A55 ; N # Mc TAI THAM CONSONANT SIGN MEDIAL RA
+1A56 ; N # Mn TAI THAM CONSONANT SIGN MEDIAL LA
+1A57 ; N # Mc TAI THAM CONSONANT SIGN LA TANG LAI
+1A58..1A5E ; N # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+1A60 ; N # Mn TAI THAM SIGN SAKOT
+1A61 ; N # Mc TAI THAM VOWEL SIGN A
+1A62 ; N # Mn TAI THAM VOWEL SIGN MAI SAT
+1A63..1A64 ; N # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
+1A65..1A6C ; N # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+1A6D..1A72 ; N # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+1A73..1A7C ; N # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+1A7F ; N # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1A80..1A89 ; N # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+1A90..1A99 ; N # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1AA0..1AA6 ; N # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7 ; N # Lm TAI THAM SIGN MAI YAMOK
+1AA8..1AAD ; N # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AB0..1ABD ; N # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; N # Me COMBINING PARENTHESES OVERLAY
+1ABF..1ACE ; N # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
+1B00..1B03 ; N # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04 ; N # Mc BALINESE SIGN BISAH
+1B05..1B33 ; N # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B34 ; N # Mn BALINESE SIGN REREKAN
+1B35 ; N # Mc BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A ; N # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B ; N # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; N # Mn BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41 ; N # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; N # Mn BALINESE VOWEL SIGN PEPET
+1B43..1B44 ; N # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
+1B45..1B4C ; N # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
+1B50..1B59 ; N # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B60 ; N # Po [7] BALINESE PANTI..BALINESE PAMENENG
+1B61..1B6A ; N # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73 ; N # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C ; N # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D..1B7E ; N # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
+1B80..1B81 ; N # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82 ; N # Mc SUNDANESE SIGN PANGWISAD
+1B83..1BA0 ; N # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1 ; N # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5 ; N # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7 ; N # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9 ; N # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA ; N # Mc SUNDANESE SIGN PAMAAEH
+1BAB..1BAD ; N # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAE..1BAF ; N # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9 ; N # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF ; N # Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1BC0..1BE5 ; N # Lo [38] BATAK LETTER A..BATAK LETTER U
+1BE6 ; N # Mn BATAK SIGN TOMPI
+1BE7 ; N # Mc BATAK VOWEL SIGN E
+1BE8..1BE9 ; N # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BEA..1BEC ; N # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BED ; N # Mn BATAK VOWEL SIGN KARO O
+1BEE ; N # Mc BATAK VOWEL SIGN U
+1BEF..1BF1 ; N # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+1BF2..1BF3 ; N # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
+1BFC..1BFF ; N # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00..1C23 ; N # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B ; N # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33 ; N # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35 ; N # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36..1C37 ; N # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1C3B..1C3F ; N # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49 ; N # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F ; N # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C50..1C59 ; N # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77 ; N # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D ; N # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F ; N # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1C80..1C88 ; N # Ll [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
+1C90..1CBA ; N # Lu [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBD..1CBF ; N # Lu [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+1CC0..1CC7 ; N # Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CD0..1CD2 ; N # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3 ; N # Po VEDIC SIGN NIHSHVASA
+1CD4..1CE0 ; N # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1 ; N # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE2..1CE8 ; N # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CE9..1CEC ; N # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CED ; N # Mn VEDIC SIGN TIRYAK
+1CEE..1CF3 ; N # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF4 ; N # Mn VEDIC TONE CANDRA ABOVE
+1CF5..1CF6 ; N # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF7 ; N # Mc VEDIC SIGN ATIKRAMA
+1CF8..1CF9 ; N # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1CFA ; N # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
+1D00..1D2B ; N # Ll [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C..1D6A ; N # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B..1D77 ; N # Ll [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78 ; N # Lm MODIFIER LETTER CYRILLIC EN
+1D79..1D7F ; N # Ll [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
+1D80..1D9A ; N # Ll [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBF ; N # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DC0..1DFF ; N # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00..1EFF ; N # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
+1F00..1F15 ; N # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; N # Lu [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; N # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; N # Lu [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; N # Ll [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; N # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; N # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; N # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; N # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; N # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; N # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; N # Sk GREEK KORONIS
+1FBE ; N # Ll GREEK PROSGEGRAMMENI
+1FBF..1FC1 ; N # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; N # Ll [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; N # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; N # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; N # Ll [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; N # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; N # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; N # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF ; N # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4 ; N # Ll [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; N # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD..1FFE ; N # Sk [2] GREEK OXIA..GREEK DASIA
+2000..200A ; N # Zs [11] EN QUAD..HAIR SPACE
+200B..200F ; N # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK
+2010 ; A # Pd HYPHEN
+2011..2012 ; N # Pd [2] NON-BREAKING HYPHEN..FIGURE DASH
+2013..2015 ; A # Pd [3] EN DASH..HORIZONTAL BAR
+2016 ; A # Po DOUBLE VERTICAL LINE
+2017 ; N # Po DOUBLE LOW LINE
+2018 ; A # Pi LEFT SINGLE QUOTATION MARK
+2019 ; A # Pf RIGHT SINGLE QUOTATION MARK
+201A ; N # Ps SINGLE LOW-9 QUOTATION MARK
+201B ; N # Pi SINGLE HIGH-REVERSED-9 QUOTATION MARK
+201C ; A # Pi LEFT DOUBLE QUOTATION MARK
+201D ; A # Pf RIGHT DOUBLE QUOTATION MARK
+201E ; N # Ps DOUBLE LOW-9 QUOTATION MARK
+201F ; N # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2022 ; A # Po [3] DAGGER..BULLET
+2023 ; N # Po TRIANGULAR BULLET
+2024..2027 ; A # Po [4] ONE DOT LEADER..HYPHENATION POINT
+2028 ; N # Zl LINE SEPARATOR
+2029 ; N # Zp PARAGRAPH SEPARATOR
+202A..202E ; N # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F ; N # Zs NARROW NO-BREAK SPACE
+2030 ; A # Po PER MILLE SIGN
+2031 ; N # Po PER TEN THOUSAND SIGN
+2032..2033 ; A # Po [2] PRIME..DOUBLE PRIME
+2034 ; N # Po TRIPLE PRIME
+2035 ; A # Po REVERSED PRIME
+2036..2038 ; N # Po [3] REVERSED DOUBLE PRIME..CARET
+2039 ; N # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A ; N # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B ; A # Po REFERENCE MARK
+203C..203D ; N # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
+203E ; A # Po OVERLINE
+203F..2040 ; N # Pc [2] UNDERTIE..CHARACTER TIE
+2041..2043 ; N # Po [3] CARET INSERTION POINT..HYPHEN BULLET
+2044 ; N # Sm FRACTION SLASH
+2045 ; N # Ps LEFT SQUARE BRACKET WITH QUILL
+2046 ; N # Pe RIGHT SQUARE BRACKET WITH QUILL
+2047..2051 ; N # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY
+2052 ; N # Sm COMMERCIAL MINUS SIGN
+2053 ; N # Po SWUNG DASH
+2054 ; N # Pc INVERTED UNDERTIE
+2055..205E ; N # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS
+205F ; N # Zs MEDIUM MATHEMATICAL SPACE
+2060..2064 ; N # Cf [5] WORD JOINER..INVISIBLE PLUS
+2066..206F ; N # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+2070 ; N # No SUPERSCRIPT ZERO
+2071 ; N # Lm SUPERSCRIPT LATIN SMALL LETTER I
+2074 ; A # No SUPERSCRIPT FOUR
+2075..2079 ; N # No [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
+207A..207C ; N # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D ; N # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; N # Pe SUPERSCRIPT RIGHT PARENTHESIS
+207F ; A # Lm SUPERSCRIPT LATIN SMALL LETTER N
+2080 ; N # No SUBSCRIPT ZERO
+2081..2084 ; A # No [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
+2085..2089 ; N # No [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
+208A..208C ; N # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D ; N # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; N # Pe SUBSCRIPT RIGHT PARENTHESIS
+2090..209C ; N # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+20A0..20A8 ; N # Sc [9] EURO-CURRENCY SIGN..RUPEE SIGN
+20A9 ; H # Sc WON SIGN
+20AA..20AB ; N # Sc [2] NEW SHEQEL SIGN..DONG SIGN
+20AC ; A # Sc EURO SIGN
+20AD..20C0 ; N # Sc [20] KIP SIGN..SOM SIGN
+20D0..20DC ; N # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0 ; N # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1 ; N # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4 ; N # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0 ; N # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2100..2101 ; N # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102 ; N # Lu DOUBLE-STRUCK CAPITAL C
+2103 ; A # So DEGREE CELSIUS
+2104 ; N # So CENTRE LINE SYMBOL
+2105 ; A # So CARE OF
+2106 ; N # So CADA UNA
+2107 ; N # Lu EULER CONSTANT
+2108 ; N # So SCRUPLE
+2109 ; A # So DEGREE FAHRENHEIT
+210A..2112 ; N # L& [9] SCRIPT SMALL G..SCRIPT CAPITAL L
+2113 ; A # Ll SCRIPT SMALL L
+2114 ; N # So L B BAR SYMBOL
+2115 ; N # Lu DOUBLE-STRUCK CAPITAL N
+2116 ; A # So NUMERO SIGN
+2117 ; N # So SOUND RECORDING COPYRIGHT
+2118 ; N # Sm SCRIPT CAPITAL P
+2119..211D ; N # Lu [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+211E..2120 ; N # So [3] PRESCRIPTION TAKE..SERVICE MARK
+2121..2122 ; A # So [2] TELEPHONE SIGN..TRADE MARK SIGN
+2123 ; N # So VERSICLE
+2124 ; N # Lu DOUBLE-STRUCK CAPITAL Z
+2125 ; N # So OUNCE SIGN
+2126 ; A # Lu OHM SIGN
+2127 ; N # So INVERTED OHM SIGN
+2128 ; N # Lu BLACK-LETTER CAPITAL Z
+2129 ; N # So TURNED GREEK SMALL LETTER IOTA
+212A ; N # Lu KELVIN SIGN
+212B ; A # Lu ANGSTROM SIGN
+212C..212D ; N # Lu [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
+212E ; N # So ESTIMATED SYMBOL
+212F..2134 ; N # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
+2135..2138 ; N # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; N # Ll INFORMATION SOURCE
+213A..213B ; N # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F ; N # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140..2144 ; N # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+2145..2149 ; N # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214A ; N # So PROPERTY LINE
+214B ; N # Sm TURNED AMPERSAND
+214C..214D ; N # So [2] PER SIGN..AKTIESELSKAB
+214E ; N # Ll TURNED SMALL F
+214F ; N # So SYMBOL FOR SAMARITAN SOURCE
+2150..2152 ; N # No [3] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE TENTH
+2153..2154 ; A # No [2] VULGAR FRACTION ONE THIRD..VULGAR FRACTION TWO THIRDS
+2155..215A ; N # No [6] VULGAR FRACTION ONE FIFTH..VULGAR FRACTION FIVE SIXTHS
+215B..215E ; A # No [4] VULGAR FRACTION ONE EIGHTH..VULGAR FRACTION SEVEN EIGHTHS
+215F ; N # No FRACTION NUMERATOR ONE
+2160..216B ; A # Nl [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
+216C..216F ; N # Nl [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
+2170..2179 ; A # Nl [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
+217A..2182 ; N # Nl [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
+2183..2184 ; N # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188 ; N # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2189 ; A # No VULGAR FRACTION ZERO THIRDS
+218A..218B ; N # So [2] TURNED DIGIT TWO..TURNED DIGIT THREE
+2190..2194 ; A # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199 ; A # So [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B ; N # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+219C..219F ; N # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A0 ; N # Sm RIGHTWARDS TWO HEADED ARROW
+21A1..21A2 ; N # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A3 ; N # Sm RIGHTWARDS ARROW WITH TAIL
+21A4..21A5 ; N # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A6 ; N # Sm RIGHTWARDS ARROW FROM BAR
+21A7..21AD ; N # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AE ; N # Sm LEFT RIGHT ARROW WITH STROKE
+21AF..21B7 ; N # So [9] DOWNWARDS ZIGZAG ARROW..CLOCKWISE TOP SEMICIRCLE ARROW
+21B8..21B9 ; A # So [2] NORTH WEST ARROW TO LONG BAR..LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR
+21BA..21CD ; N # So [20] ANTICLOCKWISE OPEN CIRCLE ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; N # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1 ; N # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2 ; A # Sm RIGHTWARDS DOUBLE ARROW
+21D3 ; N # So DOWNWARDS DOUBLE ARROW
+21D4 ; A # Sm LEFT RIGHT DOUBLE ARROW
+21D5..21E6 ; N # So [18] UP DOWN DOUBLE ARROW..LEFTWARDS WHITE ARROW
+21E7 ; A # So UPWARDS WHITE ARROW
+21E8..21F3 ; N # So [12] RIGHTWARDS WHITE ARROW..UP DOWN WHITE ARROW
+21F4..21FF ; N # Sm [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
+2200 ; A # Sm FOR ALL
+2201 ; N # Sm COMPLEMENT
+2202..2203 ; A # Sm [2] PARTIAL DIFFERENTIAL..THERE EXISTS
+2204..2206 ; N # Sm [3] THERE DOES NOT EXIST..INCREMENT
+2207..2208 ; A # Sm [2] NABLA..ELEMENT OF
+2209..220A ; N # Sm [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
+220B ; A # Sm CONTAINS AS MEMBER
+220C..220E ; N # Sm [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
+220F ; A # Sm N-ARY PRODUCT
+2210 ; N # Sm N-ARY COPRODUCT
+2211 ; A # Sm N-ARY SUMMATION
+2212..2214 ; N # Sm [3] MINUS SIGN..DOT PLUS
+2215 ; A # Sm DIVISION SLASH
+2216..2219 ; N # Sm [4] SET MINUS..BULLET OPERATOR
+221A ; A # Sm SQUARE ROOT
+221B..221C ; N # Sm [2] CUBE ROOT..FOURTH ROOT
+221D..2220 ; A # Sm [4] PROPORTIONAL TO..ANGLE
+2221..2222 ; N # Sm [2] MEASURED ANGLE..SPHERICAL ANGLE
+2223 ; A # Sm DIVIDES
+2224 ; N # Sm DOES NOT DIVIDE
+2225 ; A # Sm PARALLEL TO
+2226 ; N # Sm NOT PARALLEL TO
+2227..222C ; A # Sm [6] LOGICAL AND..DOUBLE INTEGRAL
+222D ; N # Sm TRIPLE INTEGRAL
+222E ; A # Sm CONTOUR INTEGRAL
+222F..2233 ; N # Sm [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
+2234..2237 ; A # Sm [4] THEREFORE..PROPORTION
+2238..223B ; N # Sm [4] DOT MINUS..HOMOTHETIC
+223C..223D ; A # Sm [2] TILDE OPERATOR..REVERSED TILDE
+223E..2247 ; N # Sm [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248 ; A # Sm ALMOST EQUAL TO
+2249..224B ; N # Sm [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
+224C ; A # Sm ALL EQUAL TO
+224D..2251 ; N # Sm [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
+2252 ; A # Sm APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253..225F ; N # Sm [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
+2260..2261 ; A # Sm [2] NOT EQUAL TO..IDENTICAL TO
+2262..2263 ; N # Sm [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
+2264..2267 ; A # Sm [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
+2268..2269 ; N # Sm [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
+226A..226B ; A # Sm [2] MUCH LESS-THAN..MUCH GREATER-THAN
+226C..226D ; N # Sm [2] BETWEEN..NOT EQUIVALENT TO
+226E..226F ; A # Sm [2] NOT LESS-THAN..NOT GREATER-THAN
+2270..2281 ; N # Sm [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
+2282..2283 ; A # Sm [2] SUBSET OF..SUPERSET OF
+2284..2285 ; N # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2286..2287 ; A # Sm [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
+2288..2294 ; N # Sm [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
+2295 ; A # Sm CIRCLED PLUS
+2296..2298 ; N # Sm [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
+2299 ; A # Sm CIRCLED DOT OPERATOR
+229A..22A4 ; N # Sm [11] CIRCLED RING OPERATOR..DOWN TACK
+22A5 ; A # Sm UP TACK
+22A6..22BE ; N # Sm [25] ASSERTION..RIGHT ANGLE WITH ARC
+22BF ; A # Sm RIGHT TRIANGLE
+22C0..22FF ; N # Sm [64] N-ARY LOGICAL AND..Z NOTATION BAG MEMBERSHIP
+2300..2307 ; N # So [8] DIAMETER SIGN..WAVY LINE
+2308 ; N # Ps LEFT CEILING
+2309 ; N # Pe RIGHT CEILING
+230A ; N # Ps LEFT FLOOR
+230B ; N # Pe RIGHT FLOOR
+230C..2311 ; N # So [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
+2312 ; A # So ARC
+2313..2319 ; N # So [7] SEGMENT..TURNED NOT SIGN
+231A..231B ; W # So [2] WATCH..HOURGLASS
+231C..231F ; N # So [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
+2320..2321 ; N # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328 ; N # So [7] FROWN..KEYBOARD
+2329 ; W # Ps LEFT-POINTING ANGLE BRACKET
+232A ; W # Pe RIGHT-POINTING ANGLE BRACKET
+232B..237B ; N # So [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C ; N # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A ; N # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3 ; N # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB ; N # So [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1 ; N # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23E8 ; N # So [7] WHITE TRAPEZIUM..DECIMAL EXPONENT SYMBOL
+23E9..23EC ; W # So [4] BLACK RIGHT-POINTING DOUBLE TRIANGLE..BLACK DOWN-POINTING DOUBLE TRIANGLE
+23ED..23EF ; N # So [3] BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F0 ; W # So ALARM CLOCK
+23F1..23F2 ; N # So [2] STOPWATCH..TIMER CLOCK
+23F3 ; W # So HOURGLASS WITH FLOWING SAND
+23F4..23FF ; N # So [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL
+2400..2426 ; N # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A ; N # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B ; A # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9 ; A # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA ; N # No CIRCLED DIGIT ZERO
+24EB..24FF ; A # No [21] NEGATIVE CIRCLED NUMBER ELEVEN..NEGATIVE CIRCLED DIGIT ZERO
+2500..254B ; A # So [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C..254F ; N # So [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550..2573 ; A # So [36] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT DIAGONAL CROSS
+2574..257F ; N # So [12] BOX DRAWINGS LIGHT LEFT..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580..258F ; A # So [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
+2590..2591 ; N # So [2] RIGHT HALF BLOCK..LIGHT SHADE
+2592..2595 ; A # So [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
+2596..259F ; N # So [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0..25A1 ; A # So [2] BLACK SQUARE..WHITE SQUARE
+25A2 ; N # So WHITE SQUARE WITH ROUNDED CORNERS
+25A3..25A9 ; A # So [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA..25B1 ; N # So [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
+25B2..25B3 ; A # So [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
+25B4..25B5 ; N # So [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
+25B6 ; A # So BLACK RIGHT-POINTING TRIANGLE
+25B7 ; A # Sm WHITE RIGHT-POINTING TRIANGLE
+25B8..25BB ; N # So [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
+25BC..25BD ; A # So [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
+25BE..25BF ; N # So [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
+25C0 ; A # So BLACK LEFT-POINTING TRIANGLE
+25C1 ; A # Sm WHITE LEFT-POINTING TRIANGLE
+25C2..25C5 ; N # So [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
+25C6..25C8 ; A # So [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9..25CA ; N # So [2] FISHEYE..LOZENGE
+25CB ; A # So WHITE CIRCLE
+25CC..25CD ; N # So [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
+25CE..25D1 ; A # So [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
+25D2..25E1 ; N # So [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
+25E2..25E5 ; A # So [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
+25E6..25EE ; N # So [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF ; A # So LARGE CIRCLE
+25F0..25F7 ; N # So [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FC ; N # Sm [5] UPPER LEFT TRIANGLE..BLACK MEDIUM SQUARE
+25FD..25FE ; W # Sm [2] WHITE MEDIUM SMALL SQUARE..BLACK MEDIUM SMALL SQUARE
+25FF ; N # Sm LOWER RIGHT TRIANGLE
+2600..2604 ; N # So [5] BLACK SUN WITH RAYS..COMET
+2605..2606 ; A # So [2] BLACK STAR..WHITE STAR
+2607..2608 ; N # So [2] LIGHTNING..THUNDERSTORM
+2609 ; A # So SUN
+260A..260D ; N # So [4] ASCENDING NODE..OPPOSITION
+260E..260F ; A # So [2] BLACK TELEPHONE..WHITE TELEPHONE
+2610..2613 ; N # So [4] BALLOT BOX..SALTIRE
+2614..2615 ; W # So [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
+2616..261B ; N # So [6] WHITE SHOGI PIECE..BLACK RIGHT POINTING INDEX
+261C ; A # So WHITE LEFT POINTING INDEX
+261D ; N # So WHITE UP POINTING INDEX
+261E ; A # So WHITE RIGHT POINTING INDEX
+261F..263F ; N # So [33] WHITE DOWN POINTING INDEX..MERCURY
+2640 ; A # So FEMALE SIGN
+2641 ; N # So EARTH
+2642 ; A # So MALE SIGN
+2643..2647 ; N # So [5] JUPITER..PLUTO
+2648..2653 ; W # So [12] ARIES..PISCES
+2654..265F ; N # So [12] WHITE CHESS KING..BLACK CHESS PAWN
+2660..2661 ; A # So [2] BLACK SPADE SUIT..WHITE HEART SUIT
+2662 ; N # So WHITE DIAMOND SUIT
+2663..2665 ; A # So [3] BLACK CLUB SUIT..BLACK HEART SUIT
+2666 ; N # So BLACK DIAMOND SUIT
+2667..266A ; A # So [4] WHITE CLUB SUIT..EIGHTH NOTE
+266B ; N # So BEAMED EIGHTH NOTES
+266C..266D ; A # So [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
+266E ; N # So MUSIC NATURAL SIGN
+266F ; A # Sm MUSIC SHARP SIGN
+2670..267E ; N # So [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
+267F ; W # So WHEELCHAIR SYMBOL
+2680..2692 ; N # So [19] DIE FACE-1..HAMMER AND PICK
+2693 ; W # So ANCHOR
+2694..269D ; N # So [10] CROSSED SWORDS..OUTLINED WHITE STAR
+269E..269F ; A # So [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
+26A0 ; N # So WARNING SIGN
+26A1 ; W # So HIGH VOLTAGE SIGN
+26A2..26A9 ; N # So [8] DOUBLED FEMALE SIGN..HORIZONTAL MALE WITH STROKE SIGN
+26AA..26AB ; W # So [2] MEDIUM WHITE CIRCLE..MEDIUM BLACK CIRCLE
+26AC..26BC ; N # So [17] MEDIUM SMALL WHITE CIRCLE..SESQUIQUADRATE
+26BD..26BE ; W # So [2] SOCCER BALL..BASEBALL
+26BF ; A # So SQUARED KEY
+26C0..26C3 ; N # So [4] WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
+26C4..26C5 ; W # So [2] SNOWMAN WITHOUT SNOW..SUN BEHIND CLOUD
+26C6..26CD ; A # So [8] RAIN..DISABLED CAR
+26CE ; W # So OPHIUCHUS
+26CF..26D3 ; A # So [5] PICK..CHAINS
+26D4 ; W # So NO ENTRY
+26D5..26E1 ; A # So [13] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..RESTRICTED LEFT ENTRY-2
+26E2 ; N # So ASTRONOMICAL SYMBOL FOR URANUS
+26E3 ; A # So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4..26E7 ; N # So [4] PENTAGRAM..INVERTED PENTAGRAM
+26E8..26E9 ; A # So [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
+26EA ; W # So CHURCH
+26EB..26F1 ; A # So [7] CASTLE..UMBRELLA ON GROUND
+26F2..26F3 ; W # So [2] FOUNTAIN..FLAG IN HOLE
+26F4 ; A # So FERRY
+26F5 ; W # So SAILBOAT
+26F6..26F9 ; A # So [4] SQUARE FOUR CORNERS..PERSON WITH BALL
+26FA ; W # So TENT
+26FB..26FC ; A # So [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
+26FD ; W # So FUEL PUMP
+26FE..26FF ; A # So [2] CUP ON BLACK SQUARE..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700..2704 ; N # So [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
+2705 ; W # So WHITE HEAVY CHECK MARK
+2706..2709 ; N # So [4] TELEPHONE LOCATION SIGN..ENVELOPE
+270A..270B ; W # So [2] RAISED FIST..RAISED HAND
+270C..2727 ; N # So [28] VICTORY HAND..WHITE FOUR POINTED STAR
+2728 ; W # So SPARKLES
+2729..273C ; N # So [20] STRESS OUTLINED WHITE STAR..OPEN CENTRE TEARDROP-SPOKED ASTERISK
+273D ; A # So HEAVY TEARDROP-SPOKED ASTERISK
+273E..274B ; N # So [14] SIX PETALLED BLACK AND WHITE FLORETTE..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274C ; W # So CROSS MARK
+274D ; N # So SHADOWED WHITE CIRCLE
+274E ; W # So NEGATIVE SQUARED CROSS MARK
+274F..2752 ; N # So [4] LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
+2753..2755 ; W # So [3] BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT
+2756 ; N # So BLACK DIAMOND MINUS WHITE X
+2757 ; W # So HEAVY EXCLAMATION MARK SYMBOL
+2758..2767 ; N # So [16] LIGHT VERTICAL BAR..ROTATED FLORAL HEART BULLET
+2768 ; N # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
+2769 ; N # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A ; N # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B ; N # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C ; N # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D ; N # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E ; N # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F ; N # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770 ; N # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771 ; N # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; N # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773 ; N # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; N # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775 ; N # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..277F ; A # No [10] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED NUMBER TEN
+2780..2793 ; N # No [20] DINGBAT CIRCLED SANS-SERIF DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794 ; N # So HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2795..2797 ; W # So [3] HEAVY PLUS SIGN..HEAVY DIVISION SIGN
+2798..27AF ; N # So [24] HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B0 ; W # So CURLY LOOP
+27B1..27BE ; N # So [14] NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
+27BF ; W # So DOUBLE CURLY LOOP
+27C0..27C4 ; N # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5 ; N # Ps LEFT S-SHAPED BAG DELIMITER
+27C6 ; N # Pe RIGHT S-SHAPED BAG DELIMITER
+27C7..27E5 ; N # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
+27E6 ; Na # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7 ; Na # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8 ; Na # Ps MATHEMATICAL LEFT ANGLE BRACKET
+27E9 ; Na # Pe MATHEMATICAL RIGHT ANGLE BRACKET
+27EA ; Na # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB ; Na # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC ; Na # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED ; Na # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE ; N # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF ; N # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF ; N # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF ; N # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2900..297F ; N # Sm [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
+2980..2982 ; N # Sm [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
+2983 ; N # Ps LEFT WHITE CURLY BRACKET
+2984 ; N # Pe RIGHT WHITE CURLY BRACKET
+2985 ; Na # Ps LEFT WHITE PARENTHESIS
+2986 ; Na # Pe RIGHT WHITE PARENTHESIS
+2987 ; N # Ps Z NOTATION LEFT IMAGE BRACKET
+2988 ; N # Pe Z NOTATION RIGHT IMAGE BRACKET
+2989 ; N # Ps Z NOTATION LEFT BINDING BRACKET
+298A ; N # Pe Z NOTATION RIGHT BINDING BRACKET
+298B ; N # Ps LEFT SQUARE BRACKET WITH UNDERBAR
+298C ; N # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
+298D ; N # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E ; N # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F ; N # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990 ; N # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991 ; N # Ps LEFT ANGLE BRACKET WITH DOT
+2992 ; N # Pe RIGHT ANGLE BRACKET WITH DOT
+2993 ; N # Ps LEFT ARC LESS-THAN BRACKET
+2994 ; N # Pe RIGHT ARC GREATER-THAN BRACKET
+2995 ; N # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996 ; N # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997 ; N # Ps LEFT BLACK TORTOISE SHELL BRACKET
+2998 ; N # Pe RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7 ; N # Sm [63] DOTTED FENCE..BLACK HOURGLASS
+29D8 ; N # Ps LEFT WIGGLY FENCE
+29D9 ; N # Pe RIGHT WIGGLY FENCE
+29DA ; N # Ps LEFT DOUBLE WIGGLY FENCE
+29DB ; N # Pe RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB ; N # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC ; N # Ps LEFT-POINTING CURVED ANGLE BRACKET
+29FD ; N # Pe RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..29FF ; N # Sm [2] TINY..MINY
+2A00..2AFF ; N # Sm [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
+2B00..2B1A ; N # So [27] NORTH EAST WHITE ARROW..DOTTED SQUARE
+2B1B..2B1C ; W # So [2] BLACK LARGE SQUARE..WHITE LARGE SQUARE
+2B1D..2B2F ; N # So [19] BLACK VERY SMALL SQUARE..WHITE VERTICAL ELLIPSE
+2B30..2B44 ; N # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B45..2B46 ; N # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B47..2B4C ; N # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B4F ; N # So [3] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
+2B50 ; W # So WHITE MEDIUM STAR
+2B51..2B54 ; N # So [4] BLACK SMALL STAR..WHITE RIGHT-POINTING PENTAGON
+2B55 ; W # So HEAVY LARGE CIRCLE
+2B56..2B59 ; A # So [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE
+2B5A..2B73 ; N # So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95 ; N # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B97..2BFF ; N # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
+2C00..2C5F ; N # L& [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
+2C60..2C7B ; N # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D ; N # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+2C7E..2C7F ; N # Lu [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C80..2CE4 ; N # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA ; N # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CEB..2CEE ; N # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CEF..2CF1 ; N # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2CF2..2CF3 ; N # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF9..2CFC ; N # Po [4] COPTIC OLD NUBIAN FULL STOP..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD ; N # No COPTIC FRACTION ONE HALF
+2CFE..2CFF ; N # Po [2] COPTIC FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25 ; N # Ll [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27 ; N # Ll GEORGIAN SMALL LETTER YN
+2D2D ; N # Ll GEORGIAN SMALL LETTER AEN
+2D30..2D67 ; N # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D6F ; N # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70 ; N # Po TIFINAGH SEPARATOR MARK
+2D7F ; N # Mn TIFINAGH CONSONANT JOINER
+2D80..2D96 ; N # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6 ; N # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE ; N # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6 ; N # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE ; N # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6 ; N # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE ; N # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6 ; N # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE ; N # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DE0..2DFF ; N # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00..2E01 ; N # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02 ; N # Pi LEFT SUBSTITUTION BRACKET
+2E03 ; N # Pf RIGHT SUBSTITUTION BRACKET
+2E04 ; N # Pi LEFT DOTTED SUBSTITUTION BRACKET
+2E05 ; N # Pf RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08 ; N # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E09 ; N # Pi LEFT TRANSPOSITION BRACKET
+2E0A ; N # Pf RIGHT TRANSPOSITION BRACKET
+2E0B ; N # Po RAISED SQUARE
+2E0C ; N # Pi LEFT RAISED OMISSION BRACKET
+2E0D ; N # Pf RIGHT RAISED OMISSION BRACKET
+2E0E..2E16 ; N # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE
+2E17 ; N # Pd DOUBLE OBLIQUE HYPHEN
+2E18..2E19 ; N # Po [2] INVERTED INTERROBANG..PALM BRANCH
+2E1A ; N # Pd HYPHEN WITH DIAERESIS
+2E1B ; N # Po TILDE WITH RING ABOVE
+2E1C ; N # Pi LEFT LOW PARAPHRASE BRACKET
+2E1D ; N # Pf RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F ; N # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20 ; N # Pi LEFT VERTICAL BAR WITH QUILL
+2E21 ; N # Pf RIGHT VERTICAL BAR WITH QUILL
+2E22 ; N # Ps TOP LEFT HALF BRACKET
+2E23 ; N # Pe TOP RIGHT HALF BRACKET
+2E24 ; N # Ps BOTTOM LEFT HALF BRACKET
+2E25 ; N # Pe BOTTOM RIGHT HALF BRACKET
+2E26 ; N # Ps LEFT SIDEWAYS U BRACKET
+2E27 ; N # Pe RIGHT SIDEWAYS U BRACKET
+2E28 ; N # Ps LEFT DOUBLE PARENTHESIS
+2E29 ; N # Pe RIGHT DOUBLE PARENTHESIS
+2E2A..2E2E ; N # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK
+2E2F ; N # Lm VERTICAL TILDE
+2E30..2E39 ; N # Po [10] RING POINT..TOP HALF SECTION SIGN
+2E3A..2E3B ; N # Pd [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3F ; N # Po [4] STENOGRAPHIC FULL STOP..CAPITULUM
+2E40 ; N # Pd DOUBLE HYPHEN
+2E41 ; N # Po REVERSED COMMA
+2E42 ; N # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E43..2E4F ; N # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
+2E50..2E51 ; N # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
+2E52..2E54 ; N # Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
+2E55 ; N # Ps LEFT SQUARE BRACKET WITH STROKE
+2E56 ; N # Pe RIGHT SQUARE BRACKET WITH STROKE
+2E57 ; N # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
+2E58 ; N # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+2E59 ; N # Ps TOP HALF LEFT PARENTHESIS
+2E5A ; N # Pe TOP HALF RIGHT PARENTHESIS
+2E5B ; N # Ps BOTTOM HALF LEFT PARENTHESIS
+2E5C ; N # Pe BOTTOM HALF RIGHT PARENTHESIS
+2E5D ; N # Pd OBLIQUE HYPHEN
+2E80..2E99 ; W # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3 ; W # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5 ; W # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FF0..2FFF ; W # So [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
+3000 ; F # Zs IDEOGRAPHIC SPACE
+3001..3003 ; W # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
+3004 ; W # So JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005 ; W # Lm IDEOGRAPHIC ITERATION MARK
+3006 ; W # Lo IDEOGRAPHIC CLOSING MARK
+3007 ; W # Nl IDEOGRAPHIC NUMBER ZERO
+3008 ; W # Ps LEFT ANGLE BRACKET
+3009 ; W # Pe RIGHT ANGLE BRACKET
+300A ; W # Ps LEFT DOUBLE ANGLE BRACKET
+300B ; W # Pe RIGHT DOUBLE ANGLE BRACKET
+300C ; W # Ps LEFT CORNER BRACKET
+300D ; W # Pe RIGHT CORNER BRACKET
+300E ; W # Ps LEFT WHITE CORNER BRACKET
+300F ; W # Pe RIGHT WHITE CORNER BRACKET
+3010 ; W # Ps LEFT BLACK LENTICULAR BRACKET
+3011 ; W # Pe RIGHT BLACK LENTICULAR BRACKET
+3012..3013 ; W # So [2] POSTAL MARK..GETA MARK
+3014 ; W # Ps LEFT TORTOISE SHELL BRACKET
+3015 ; W # Pe RIGHT TORTOISE SHELL BRACKET
+3016 ; W # Ps LEFT WHITE LENTICULAR BRACKET
+3017 ; W # Pe RIGHT WHITE LENTICULAR BRACKET
+3018 ; W # Ps LEFT WHITE TORTOISE SHELL BRACKET
+3019 ; W # Pe RIGHT WHITE TORTOISE SHELL BRACKET
+301A ; W # Ps LEFT WHITE SQUARE BRACKET
+301B ; W # Pe RIGHT WHITE SQUARE BRACKET
+301C ; W # Pd WAVE DASH
+301D ; W # Ps REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F ; W # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+3020 ; W # So POSTAL MARK FACE
+3021..3029 ; W # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+302A..302D ; W # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F ; W # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3030 ; W # Pd WAVY DASH
+3031..3035 ; W # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+3036..3037 ; W # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038..303A ; W # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B ; W # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
+303C ; W # Lo MASU MARK
+303D ; W # Po PART ALTERNATION MARK
+303E ; W # So IDEOGRAPHIC VARIATION INDICATOR
+303F ; N # So IDEOGRAPHIC HALF FILL SPACE
+3041..3096 ; W # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
+3099..309A ; W # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B..309C ; W # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E ; W # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F ; W # Lo HIRAGANA DIGRAPH YORI
+30A0 ; W # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1..30FA ; W # Lo [90] KATAKANA LETTER SMALL A..KATAKANA LETTER VO
+30FB ; W # Po KATAKANA MIDDLE DOT
+30FC..30FE ; W # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK
+30FF ; W # Lo KATAKANA DIGRAPH KOTO
+3105..312F ; W # Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
+3131..318E ; W # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3190..3191 ; W # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195 ; W # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F ; W # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0..31BF ; W # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
+31C0..31E3 ; W # So [36] CJK STROKE T..CJK STROKE Q
+31EF ; W # So IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
+31F0..31FF ; W # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200..321E ; W # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229 ; W # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3247 ; W # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+3248..324F ; A # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250 ; W # So PARTNERSHIP SIGN
+3251..325F ; W # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327F ; W # So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+3280..3289 ; W # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; W # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF ; W # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FF ; W # So [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
+3300..33FF ; W # So [256] SQUARE APAATO..SQUARE GAL
+3400..4DBF ; W # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
+4DC0..4DFF ; N # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FFF ; W # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
+A000..A014 ; W # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+A015 ; W # Lm YI SYLLABLE WU
+A016..A48C ; W # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6 ; W # So [55] YI RADICAL QOT..YI RADICAL KE
+A4D0..A4F7 ; N # Lo [40] LISU LETTER BA..LISU LETTER OE
+A4F8..A4FD ; N # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
+A4FE..A4FF ; N # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500..A60B ; N # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C ; N # Lm VAI SYLLABLE LENGTHENER
+A60D..A60F ; N # Po [3] VAI COMMA..VAI QUESTION MARK
+A610..A61F ; N # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629 ; N # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B ; N # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A640..A66D ; N # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E ; N # Lo CYRILLIC LETTER MULTIOCULAR O
+A66F ; N # Mn COMBINING CYRILLIC VZMET
+A670..A672 ; N # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673 ; N # Po SLAVONIC ASTERISK
+A674..A67D ; N # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A67E ; N # Po CYRILLIC KAVYKA
+A67F ; N # Lm CYRILLIC PAYEROK
+A680..A69B ; N # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D ; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A69E..A69F ; N # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+A6A0..A6E5 ; N # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF ; N # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0..A6F1 ; N # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2..A6F7 ; N # Po [6] BAMUM NJAEMLI..BAMUM QUESTION MARK
+A700..A716 ; N # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F ; N # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; N # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722..A76F ; N # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770 ; N # Lm MODIFIER LETTER US
+A771..A787 ; N # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A788 ; N # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; N # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B..A78E ; N # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+A78F ; N # Lo LATIN LETTER SINOLOGICAL DOT
+A790..A7CA ; N # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7D0..A7D1 ; N # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
+A7D3 ; N # Ll LATIN SMALL LETTER DOUBLE THORN
+A7D5..A7D9 ; N # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4 ; N # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
+A7F5..A7F6 ; N # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
+A7F7 ; N # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8..A7F9 ; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA ; N # Ll LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A7FF ; N # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+A800..A801 ; N # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
+A802 ; N # Mn SYLOTI NAGRI SIGN DVISVARA
+A803..A805 ; N # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A806 ; N # Mn SYLOTI NAGRI SIGN HASANTA
+A807..A80A ; N # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B ; N # Mn SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822 ; N # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A823..A824 ; N # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826 ; N # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827 ; N # Mc SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B ; N # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A82C ; N # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
+A830..A835 ; N # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
+A836..A837 ; N # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+A838 ; N # Sc NORTH INDIC RUPEE MARK
+A839 ; N # So NORTH INDIC QUANTITY MARK
+A840..A873 ; N # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A877 ; N # Po [4] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A880..A881 ; N # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A882..A8B3 ; N # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8B4..A8C3 ; N # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4..A8C5 ; N # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
+A8CE..A8CF ; N # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9 ; N # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8E0..A8F1 ; N # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8F2..A8F7 ; N # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA ; N # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB ; N # Lo DEVANAGARI HEADSTROKE
+A8FC ; N # Po DEVANAGARI SIGN SIDDHAM
+A8FD..A8FE ; N # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
+A8FF ; N # Mn DEVANAGARI VOWEL SIGN AY
+A900..A909 ; N # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925 ; N # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92D ; N # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F ; N # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930..A946 ; N # Lo [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951 ; N # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953 ; N # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A95F ; N # Po REJANG SECTION MARK
+A960..A97C ; W # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A980..A982 ; N # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+A983 ; N # Mc JAVANESE SIGN WIGNYAN
+A984..A9B2 ; N # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9B3 ; N # Mn JAVANESE SIGN CECAK TELU
+A9B4..A9B5 ; N # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+A9B6..A9B9 ; N # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+A9BA..A9BB ; N # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+A9BC..A9BD ; N # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9C0 ; N # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
+A9C1..A9CD ; N # Po [13] JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
+A9CF ; N # Lm JAVANESE PANGRANGKEP
+A9D0..A9D9 ; N # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9DE..A9DF ; N # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4 ; N # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5 ; N # Mn MYANMAR SIGN SHAN SAW
+A9E6 ; N # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF ; N # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9 ; N # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE ; N # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
+AA00..AA28 ; N # Lo [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E ; N # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30 ; N # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32 ; N # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34 ; N # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36 ; N # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42 ; N # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43 ; N # Mn CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B ; N # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C ; N # Mn CHAM CONSONANT SIGN FINAL M
+AA4D ; N # Mc CHAM CONSONANT SIGN FINAL H
+AA50..AA59 ; N # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C..AA5F ; N # Po [4] CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+AA60..AA6F ; N # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
+AA70 ; N # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AA71..AA76 ; N # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
+AA77..AA79 ; N # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A ; N # Lo MYANMAR LETTER AITON RA
+AA7B ; N # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; N # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; N # Mc MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F ; N # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
+AA80..AAAF ; N # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AAB0 ; N # Mn TAI VIET MAI KANG
+AAB1 ; N # Lo TAI VIET VOWEL AA
+AAB2..AAB4 ; N # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB5..AAB6 ; N # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
+AAB7..AAB8 ; N # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AAB9..AABD ; N # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
+AABE..AABF ; N # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC0 ; N # Lo TAI VIET TONE MAI NUENG
+AAC1 ; N # Mn TAI VIET TONE MAI THO
+AAC2 ; N # Lo TAI VIET TONE MAI SONG
+AADB..AADC ; N # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
+AADD ; N # Lm TAI VIET SYMBOL SAM
+AADE..AADF ; N # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0..AAEA ; N # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAEB ; N # Mc MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED ; N # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF ; N # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1 ; N # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2 ; N # Lo MEETEI MAYEK ANJI
+AAF3..AAF4 ; N # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5 ; N # Mc MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6 ; N # Mn MEETEI MAYEK VIRAMA
+AB01..AB06 ; N # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB09..AB0E ; N # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB11..AB16 ; N # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB20..AB26 ; N # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB28..AB2E ; N # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A ; N # Ll [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B ; N # Sk MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F ; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB60..AB68 ; N # Ll [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69 ; N # Lm MODIFIER LETTER SMALL TURNED W
+AB6A..AB6B ; N # Sk [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
+AB70..ABBF ; N # Ll [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
+ABC0..ABE2 ; N # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
+ABE3..ABE4 ; N # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ABE5 ; N # Mn MEETEI MAYEK VOWEL SIGN ANAP
+ABE6..ABE7 ; N # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8 ; N # Mn MEETEI MAYEK VOWEL SIGN UNAP
+ABE9..ABEA ; N # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB ; N # Po MEETEI MAYEK CHEIKHEI
+ABEC ; N # Mc MEETEI MAYEK LUM IYEK
+ABED ; N # Mn MEETEI MAYEK APUN IYEK
+ABF0..ABF9 ; N # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+AC00..D7A3 ; W # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+D7B0..D7C6 ; N # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7CB..D7FB ; N # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D800..DB7F ; N # Cs [896] <surrogate-D800>..<surrogate-DB7F>
+DB80..DBFF ; N # Cs [128] <surrogate-DB80>..<surrogate-DBFF>
+DC00..DFFF ; N # Cs [1024] <surrogate-DC00>..<surrogate-DFFF>
+E000..F8FF ; A # Co [6400] <private-use-E000>..<private-use-F8FF>
+F900..FA6D ; W # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E..FA6F ; W # Cn [2] <reserved-FA6E>..<reserved-FA6F>
+FA70..FAD9 ; W # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA..FAFF ; W # Cn [38] <reserved-FADA>..<reserved-FAFF>
+FB00..FB06 ; N # Ll [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; N # Ll [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; N # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1E ; N # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F..FB28 ; N # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29 ; N # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36 ; N # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; N # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; N # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; N # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; N # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F ; N # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+FB50..FBB1 ; N # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2..FBC2 ; N # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
+FBD3..FD3D ; N # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E ; N # Pe ORNATE LEFT PARENTHESIS
+FD3F ; N # Ps ORNATE RIGHT PARENTHESIS
+FD40..FD4F ; N # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
+FD50..FD8F ; N # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; N # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDCF ; N # So ARABIC LIGATURE SALAAMUHU ALAYNAA
+FDF0..FDFB ; N # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; N # Sc RIAL SIGN
+FDFD..FDFF ; N # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
+FE00..FE0F ; A # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10..FE16 ; W # Po [7] PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; W # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE20..FE2F ; N # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+FE30 ; W # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32 ; W # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; W # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46 ; W # Po [2] SESAME DOT..WHITE SESAME DOT
+FE47 ; W # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; W # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; W # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; W # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50..FE52 ; W # Po [3] SMALL COMMA..SMALL FULL STOP
+FE54..FE57 ; W # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK
+FE58 ; W # Pd SMALL EM DASH
+FE59 ; W # Ps SMALL LEFT PARENTHESIS
+FE5A ; W # Pe SMALL RIGHT PARENTHESIS
+FE5B ; W # Ps SMALL LEFT CURLY BRACKET
+FE5C ; W # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; W # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; W # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61 ; W # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62 ; W # Sm SMALL PLUS SIGN
+FE63 ; W # Pd SMALL HYPHEN-MINUS
+FE64..FE66 ; W # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68 ; W # Po SMALL REVERSE SOLIDUS
+FE69 ; W # Sc SMALL DOLLAR SIGN
+FE6A..FE6B ; W # Po [2] SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+FE70..FE74 ; N # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; N # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF ; N # Cf ZERO WIDTH NO-BREAK SPACE
+FF01..FF03 ; F # Po [3] FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+FF04 ; F # Sc FULLWIDTH DOLLAR SIGN
+FF05..FF07 ; F # Po [3] FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+FF08 ; F # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; F # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; F # Po FULLWIDTH ASTERISK
+FF0B ; F # Sm FULLWIDTH PLUS SIGN
+FF0C ; F # Po FULLWIDTH COMMA
+FF0D ; F # Pd FULLWIDTH HYPHEN-MINUS
+FF0E..FF0F ; F # Po [2] FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+FF10..FF19 ; F # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B ; F # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E ; F # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F..FF20 ; F # Po [2] FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+FF21..FF3A ; F # Lu [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; F # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; F # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; F # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; F # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; F # Pc FULLWIDTH LOW LINE
+FF40 ; F # Sk FULLWIDTH GRAVE ACCENT
+FF41..FF5A ; F # Ll [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; F # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; F # Sm FULLWIDTH VERTICAL LINE
+FF5D ; F # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; F # Sm FULLWIDTH TILDE
+FF5F ; F # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; F # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; H # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; H # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; H # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64..FF65 ; H # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+FF66..FF6F ; H # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; H # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D ; H # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F ; H # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE ; H # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; H # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; H # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; H # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; H # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0..FFE1 ; F # Sc [2] FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+FFE2 ; F # Sm FULLWIDTH NOT SIGN
+FFE3 ; F # Sk FULLWIDTH MACRON
+FFE4 ; F # So FULLWIDTH BROKEN BAR
+FFE5..FFE6 ; F # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8 ; H # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC ; H # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE ; H # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFF9..FFFB ; N # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC ; N # So OBJECT REPLACEMENT CHARACTER
+FFFD ; A # So REPLACEMENT CHARACTER
+10000..1000B ; N # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026 ; N # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A ; N # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D ; N # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D ; N # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D ; N # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA ; N # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10100..10102 ; N # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10107..10133 ; N # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10137..1013F ; N # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..10174 ; N # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178 ; N # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189 ; N # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A..1018B ; N # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C..1018E ; N # So [3] GREEK SINUSOID SIGN..NOMISMA SIGN
+10190..1019C ; N # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
+101A0 ; N # So GREEK SYMBOL TAU RHO
+101D0..101FC ; N # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD ; N # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10280..1029C ; N # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0 ; N # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
+102E0 ; N # Mn COPTIC EPACT THOUSANDS MARK
+102E1..102FB ; N # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F ; N # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+10320..10323 ; N # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+1032D..1032F ; N # Lo [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE
+10330..10340 ; N # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; N # Nl GOTHIC LETTER NINETY
+10342..10349 ; N # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A ; N # Nl GOTHIC LETTER NINE HUNDRED
+10350..10375 ; N # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A ; N # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10380..1039D ; N # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F ; N # Po UGARITIC WORD DIVIDER
+103A0..103C3 ; N # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF ; N # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0 ; N # Po OLD PERSIAN WORD DIVIDER
+103D1..103D5 ; N # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+10400..1044F ; N # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10450..1047F ; N # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+10480..1049D ; N # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
+104A0..104A9 ; N # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+104B0..104D3 ; N # Lu [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
+104D8..104FB ; N # Ll [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+10500..10527 ; N # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563 ; N # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F ; N # Po CAUCASIAN ALBANIAN CITATION MARK
+10570..1057A ; N # Lu [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+1057C..1058A ; N # Lu [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+1058C..10592 ; N # Lu [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+10594..10595 ; N # Lu [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
+10597..105A1 ; N # Ll [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+105A3..105B1 ; N # Ll [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+105B3..105B9 ; N # Ll [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+105BB..105BC ; N # Ll [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+10600..10736 ; N # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; N # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; N # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10780..10785 ; N # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; N # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; N # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+10800..10805 ; N # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808 ; N # Lo CYPRIOT SYLLABLE JO
+1080A..10835 ; N # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838 ; N # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C ; N # Lo CYPRIOT SYLLABLE ZA
+1083F ; N # Lo CYPRIOT SYLLABLE ZO
+10840..10855 ; N # Lo [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10857 ; N # Po IMPERIAL ARAMAIC SECTION SIGN
+10858..1085F ; N # No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876 ; N # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878 ; N # So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F ; N # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E ; N # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF ; N # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+108E0..108F2 ; N # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
+108F4..108F5 ; N # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
+108FB..108FF ; N # No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
+10900..10915 ; N # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..1091B ; N # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+1091F ; N # Po PHOENICIAN WORD SEPARATOR
+10920..10939 ; N # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F ; N # Po LYDIAN TRIANGULAR MARK
+10980..1099F ; N # Lo [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+109A0..109B7 ; N # Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
+109BC..109BD ; N # No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
+109BE..109BF ; N # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+109C0..109CF ; N # No [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
+109D2..109FF ; N # No [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
+10A00 ; N # Lo KHAROSHTHI LETTER A
+10A01..10A03 ; N # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; N # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F ; N # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A10..10A13 ; N # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17 ; N # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A35 ; N # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
+10A38..10A3A ; N # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F ; N # Mn KHAROSHTHI VIRAMA
+10A40..10A48 ; N # No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
+10A50..10A58 ; N # Po [9] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+10A60..10A7C ; N # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D..10A7E ; N # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+10A7F ; N # Po OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C ; N # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F ; N # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7 ; N # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8 ; N # So MANICHAEAN SIGN UD
+10AC9..10AE4 ; N # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6 ; N # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF ; N # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF6 ; N # Po [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER
+10B00..10B35 ; N # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
+10B39..10B3F ; N # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40..10B55 ; N # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B58..10B5F ; N # No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60..10B72 ; N # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B78..10B7F ; N # No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91 ; N # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C ; N # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF ; N # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10C00..10C48 ; N # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10C80..10CB2 ; N # Lu [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+10CC0..10CF2 ; N # Ll [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+10CFA..10CFF ; N # No [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
+10D00..10D23 ; N # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
+10D24..10D27 ; N # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10D30..10D39 ; N # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+10E60..10E7E ; N # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10E80..10EA9 ; N # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
+10EAB..10EAC ; N # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EAD ; N # Pd YEZIDI HYPHENATION MARK
+10EB0..10EB1 ; N # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF ; N # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
+10F00..10F1C ; N # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+10F1D..10F26 ; N # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
+10F27 ; N # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
+10F30..10F45 ; N # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10F46..10F50 ; N # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+10F51..10F54 ; N # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
+10F55..10F59 ; N # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F70..10F81 ; N # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
+10F82..10F85 ; N # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
+10F86..10F89 ; N # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
+10FB0..10FC4 ; N # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
+10FC5..10FCB ; N # No [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
+10FE0..10FF6 ; N # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
+11000 ; N # Mc BRAHMI SIGN CANDRABINDU
+11001 ; N # Mn BRAHMI SIGN ANUSVARA
+11002 ; N # Mc BRAHMI SIGN VISARGA
+11003..11037 ; N # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+11038..11046 ; N # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11047..1104D ; N # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
+11052..11065 ; N # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F ; N # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+11070 ; N # Mn BRAHMI SIGN OLD TAMIL VIRAMA
+11071..11072 ; N # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
+11073..11074 ; N # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+11075 ; N # Lo BRAHMI LETTER OLD TAMIL LLA
+1107F ; N # Mn BRAHMI NUMBER JOINER
+11080..11081 ; N # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+11082 ; N # Mc KAITHI SIGN VISARGA
+11083..110AF ; N # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
+110B0..110B2 ; N # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+110B3..110B6 ; N # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B7..110B8 ; N # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+110B9..110BA ; N # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110BB..110BC ; N # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+110BD ; N # Cf KAITHI NUMBER SIGN
+110BE..110C1 ; N # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110C2 ; N # Mn KAITHI VOWEL SIGN VOCALIC R
+110CD ; N # Cf KAITHI NUMBER SIGN ABOVE
+110D0..110E8 ; N # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110F0..110F9 ; N # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+11100..11102 ; N # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126 ; N # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B ; N # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C ; N # Mc CHAKMA VOWEL SIGN E
+1112D..11134 ; N # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F ; N # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143 ; N # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11144 ; N # Lo CHAKMA LETTER LHAA
+11145..11146 ; N # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
+11147 ; N # Lo CHAKMA LETTER VAA
+11150..11172 ; N # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173 ; N # Mn MAHAJANI SIGN NUKTA
+11174..11175 ; N # Po [2] MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176 ; N # Lo MAHAJANI LIGATURE SHRI
+11180..11181 ; N # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182 ; N # Mc SHARADA SIGN VISARGA
+11183..111B2 ; N # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5 ; N # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE ; N # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0 ; N # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4 ; N # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C8 ; N # Po [4] SHARADA DANDA..SHARADA SEPARATOR
+111C9..111CC ; N # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+111CD ; N # Po SHARADA SUTRA MARK
+111CE ; N # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E
+111CF ; N # Mn SHARADA SIGN INVERTED CANDRABINDU
+111D0..111D9 ; N # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA ; N # Lo SHARADA EKAM
+111DB ; N # Po SHARADA SIGN SIDDHAM
+111DC ; N # Lo SHARADA HEADSTROKE
+111DD..111DF ; N # Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
+111E1..111F4 ; N # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211 ; N # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B ; N # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E ; N # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231 ; N # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233 ; N # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234 ; N # Mn KHOJKI SIGN ANUSVARA
+11235 ; N # Mc KHOJKI SIGN VIRAMA
+11236..11237 ; N # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..1123D ; N # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+1123E ; N # Mn KHOJKI SIGN SUKUN
+1123F..11240 ; N # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241 ; N # Mn KHOJKI VOWEL SIGN VOCALIC R
+11280..11286 ; N # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
+11288 ; N # Lo MULTANI LETTER GHA
+1128A..1128D ; N # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
+1128F..1129D ; N # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA
+1129F..112A8 ; N # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA
+112A9 ; N # Po MULTANI SECTION MARK
+112B0..112DE ; N # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF ; N # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2 ; N # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA ; N # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9 ; N # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11300..11301 ; N # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
+11302..11303 ; N # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C ; N # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; N # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; N # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; N # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; N # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; N # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133B..1133C ; N # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+1133D ; N # Lo GRANTHA SIGN AVAGRAHA
+1133E..1133F ; N # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340 ; N # Mn GRANTHA VOWEL SIGN II
+11341..11344 ; N # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; N # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134D ; N # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+11350 ; N # Lo GRANTHA OM
+11357 ; N # Mc GRANTHA AU LENGTH MARK
+1135D..11361 ; N # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
+11362..11363 ; N # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C ; N # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; N # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11400..11434 ; N # Lo [53] NEWA LETTER A..NEWA LETTER HA
+11435..11437 ; N # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
+11438..1143F ; N # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+11440..11441 ; N # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
+11442..11444 ; N # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+11445 ; N # Mc NEWA SIGN VISARGA
+11446 ; N # Mn NEWA SIGN NUKTA
+11447..1144A ; N # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+1144B..1144F ; N # Po [5] NEWA DANDA..NEWA ABBREVIATION SIGN
+11450..11459 ; N # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
+1145A..1145B ; N # Po [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
+1145D ; N # Po NEWA INSERTION SIGN
+1145E ; N # Mn NEWA SANDHI MARK
+1145F..11461 ; N # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
+11480..114AF ; N # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2 ; N # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8 ; N # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; N # Mc TIRHUTA VOWEL SIGN E
+114BA ; N # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE ; N # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0 ; N # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1 ; N # Mc TIRHUTA SIGN VISARGA
+114C2..114C3 ; N # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5 ; N # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6 ; N # Po TIRHUTA ABBREVIATION SIGN
+114C7 ; N # Lo TIRHUTA OM
+114D0..114D9 ; N # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE ; N # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1 ; N # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5 ; N # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB ; N # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD ; N # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE ; N # Mc SIDDHAM SIGN VISARGA
+115BF..115C0 ; N # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1..115D7 ; N # Po [23] SIDDHAM SIGN SIDDHAM..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
+115D8..115DB ; N # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
+115DC..115DD ; N # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
+11600..1162F ; N # Lo [48] MODI LETTER A..MODI LETTER LLA
+11630..11632 ; N # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A ; N # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C ; N # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D ; N # Mn MODI SIGN ANUSVARA
+1163E ; N # Mc MODI SIGN VISARGA
+1163F..11640 ; N # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11643 ; N # Po [3] MODI DANDA..MODI ABBREVIATION SIGN
+11644 ; N # Lo MODI SIGN HUVA
+11650..11659 ; N # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
+11660..1166C ; N # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+11680..116AA ; N # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB ; N # Mn TAKRI SIGN ANUSVARA
+116AC ; N # Mc TAKRI SIGN VISARGA
+116AD ; N # Mn TAKRI VOWEL SIGN AA
+116AE..116AF ; N # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5 ; N # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6 ; N # Mc TAKRI SIGN VIRAMA
+116B7 ; N # Mn TAKRI SIGN NUKTA
+116B8 ; N # Lo TAKRI LETTER ARCHAIC KHA
+116B9 ; N # Po TAKRI ABBREVIATION SIGN
+116C0..116C9 ; N # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+11700..1171A ; N # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
+1171D..1171F ; N # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
+11720..11721 ; N # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
+11722..11725 ; N # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+11726 ; N # Mc AHOM VOWEL SIGN E
+11727..1172B ; N # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+11730..11739 ; N # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
+1173A..1173B ; N # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
+1173C..1173E ; N # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
+1173F ; N # So AHOM SYMBOL VI
+11740..11746 ; N # Lo [7] AHOM LETTER CA..AHOM LETTER LLA
+11800..1182B ; N # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
+1182C..1182E ; N # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
+1182F..11837 ; N # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+11838 ; N # Mc DOGRA SIGN VISARGA
+11839..1183A ; N # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+1183B ; N # Po DOGRA ABBREVIATION SIGN
+118A0..118DF ; N # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9 ; N # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2 ; N # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF ; N # Lo WARANG CITI OM
+11900..11906 ; N # Lo [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E
+11909 ; N # Lo DIVES AKURU LETTER O
+1190C..11913 ; N # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
+11915..11916 ; N # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
+11918..1192F ; N # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
+11930..11935 ; N # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
+11937..11938 ; N # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
+1193B..1193C ; N # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
+1193D ; N # Mc DIVES AKURU SIGN HALANTA
+1193E ; N # Mn DIVES AKURU VIRAMA
+1193F ; N # Lo DIVES AKURU PREFIXED NASAL SIGN
+11940 ; N # Mc DIVES AKURU MEDIAL YA
+11941 ; N # Lo DIVES AKURU INITIAL RA
+11942 ; N # Mc DIVES AKURU MEDIAL RA
+11943 ; N # Mn DIVES AKURU SIGN NUKTA
+11944..11946 ; N # Po [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
+11950..11959 ; N # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
+119A0..119A7 ; N # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; N # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119D1..119D3 ; N # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7 ; N # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; N # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF ; N # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E0 ; N # Mn NANDINAGARI SIGN VIRAMA
+119E1 ; N # Lo NANDINAGARI SIGN AVAGRAHA
+119E2 ; N # Po NANDINAGARI SIGN SIDDHAM
+119E3 ; N # Lo NANDINAGARI HEADSTROKE
+119E4 ; N # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+11A00 ; N # Lo ZANABAZAR SQUARE LETTER A
+11A01..11A0A ; N # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+11A0B..11A32 ; N # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
+11A33..11A38 ; N # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+11A39 ; N # Mc ZANABAZAR SQUARE SIGN VISARGA
+11A3A ; N # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
+11A3B..11A3E ; N # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A3F..11A46 ; N # Po [8] ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
+11A47 ; N # Mn ZANABAZAR SQUARE SUBJOINER
+11A50 ; N # Lo SOYOMBO LETTER A
+11A51..11A56 ; N # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+11A57..11A58 ; N # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
+11A59..11A5B ; N # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
+11A5C..11A89 ; N # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A8A..11A96 ; N # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
+11A97 ; N # Mc SOYOMBO SIGN VISARGA
+11A98..11A99 ; N # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+11A9A..11A9C ; N # Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
+11A9D ; N # Lo SOYOMBO MARK PLUTA
+11A9E..11AA2 ; N # Po [5] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
+11AB0..11ABF ; N # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
+11AC0..11AF8 ; N # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09 ; N # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+11C00..11C08 ; N # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
+11C0A..11C2E ; N # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
+11C2F ; N # Mc BHAIKSUKI VOWEL SIGN AA
+11C30..11C36 ; N # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
+11C38..11C3D ; N # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
+11C3E ; N # Mc BHAIKSUKI SIGN VISARGA
+11C3F ; N # Mn BHAIKSUKI SIGN VIRAMA
+11C40 ; N # Lo BHAIKSUKI SIGN AVAGRAHA
+11C41..11C45 ; N # Po [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
+11C50..11C59 ; N # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
+11C5A..11C6C ; N # No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
+11C70..11C71 ; N # Po [2] MARCHEN HEAD MARK..MARCHEN MARK SHAD
+11C72..11C8F ; N # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A
+11C92..11CA7 ; N # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+11CA9 ; N # Mc MARCHEN SUBJOINED LETTER YA
+11CAA..11CB0 ; N # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
+11CB1 ; N # Mc MARCHEN VOWEL SIGN I
+11CB2..11CB3 ; N # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+11CB4 ; N # Mc MARCHEN VOWEL SIGN O
+11CB5..11CB6 ; N # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
+11D00..11D06 ; N # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
+11D08..11D09 ; N # Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
+11D0B..11D30 ; N # Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
+11D31..11D36 ; N # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
+11D3A ; N # Mn MASARAM GONDI VOWEL SIGN E
+11D3C..11D3D ; N # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+11D3F..11D45 ; N # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
+11D46 ; N # Lo MASARAM GONDI REPHA
+11D47 ; N # Mn MASARAM GONDI RA-KARA
+11D50..11D59 ; N # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
+11D60..11D65 ; N # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
+11D67..11D68 ; N # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
+11D6A..11D89 ; N # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
+11D8A..11D8E ; N # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
+11D90..11D91 ; N # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D93..11D94 ; N # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
+11D95 ; N # Mn GUNJALA GONDI SIGN ANUSVARA
+11D96 ; N # Mc GUNJALA GONDI SIGN VISARGA
+11D97 ; N # Mn GUNJALA GONDI VIRAMA
+11D98 ; N # Lo GUNJALA GONDI OM
+11DA0..11DA9 ; N # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11EE0..11EF2 ; N # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11EF3..11EF4 ; N # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11EF5..11EF6 ; N # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11EF7..11EF8 ; N # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01 ; N # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02 ; N # Lo KAWI SIGN REPHA
+11F03 ; N # Mc KAWI SIGN VISARGA
+11F04..11F10 ; N # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33 ; N # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35 ; N # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; N # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; N # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; N # Mn KAWI VOWEL SIGN EU
+11F41 ; N # Mc KAWI SIGN KILLER
+11F42 ; N # Mn KAWI CONJOINER
+11F43..11F4F ; N # Po [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59 ; N # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+11FB0 ; N # Lo LISU LETTER YHA
+11FC0..11FD4 ; N # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
+11FD5..11FDC ; N # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
+11FDD..11FE0 ; N # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
+11FE1..11FF1 ; N # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
+11FFF ; N # Po TAMIL PUNCTUATION END OF TEXT
+12000..12399 ; N # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
+12400..1246E ; N # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474 ; N # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+12480..12543 ; N # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+12F90..12FF0 ; N # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
+12FF1..12FF2 ; N # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
+13000..1342F ; N # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F ; N # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440 ; N # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446 ; N # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455 ; N # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+14400..14646 ; N # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+16800..16A38 ; N # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E ; N # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69 ; N # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F ; N # Po [2] MRO DANDA..MRO DOUBLE DANDA
+16A70..16ABE ; N # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
+16AC0..16AC9 ; N # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
+16AD0..16AED ; N # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4 ; N # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5 ; N # Po BASSA VAH FULL STOP
+16B00..16B2F ; N # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36 ; N # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B3B ; N # Po [5] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F ; N # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43 ; N # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44 ; N # Po PAHAWH HMONG SIGN XAUS
+16B45 ; N # So PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59 ; N # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61 ; N # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77 ; N # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; N # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16E40..16E7F ; N # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+16E80..16E96 ; N # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
+16E97..16E9A ; N # Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH
+16F00..16F4A ; N # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F4F ; N # Mn MIAO SIGN CONSONANT MODIFIER BAR
+16F50 ; N # Lo MIAO LETTER NASALIZATION
+16F51..16F87 ; N # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+16F8F..16F92 ; N # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F ; N # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+16FE0..16FE1 ; W # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
+16FE2 ; W # Po OLD CHINESE HOOK MARK
+16FE3 ; W # Lm OLD CHINESE ITERATION MARK
+16FE4 ; W # Mn KHITAN SMALL SCRIPT FILLER
+16FF0..16FF1 ; W # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
+17000..187F7 ; W # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
+18800..18AFF ; W # Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
+18B00..18CD5 ; W # Lo [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5
+18D00..18D08 ; W # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
+1AFF0..1AFF3 ; W # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF5..1AFFB ; W # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFD..1AFFE ; W # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1B000..1B0FF ; W # Lo [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
+1B100..1B122 ; W # Lo [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
+1B132 ; W # Lo HIRAGANA LETTER SMALL KO
+1B150..1B152 ; W # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155 ; W # Lo KATAKANA LETTER SMALL KO
+1B164..1B167 ; W # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
+1B170..1B2FB ; W # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
+1BC00..1BC6A ; N # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C ; N # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; N # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99 ; N # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C ; N # So DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E ; N # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F ; N # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3 ; N # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1CF00..1CF2D ; N # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; N # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+1CF50..1CFC3 ; N # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
+1D000..1D0F5 ; N # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126 ; N # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164 ; N # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D166 ; N # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D167..1D169 ; N # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16A..1D16C ; N # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16D..1D172 ; N # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A ; N # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D182 ; N # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D183..1D184 ; N # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D185..1D18B ; N # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D18C..1D1A9 ; N # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AA..1D1AD ; N # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D1AE..1D1EA ; N # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
+1D200..1D241 ; N # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D242..1D244 ; N # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1D245 ; N # So GREEK MUSICAL LEIMMA
+1D2C0..1D2D3 ; N # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
+1D2E0..1D2F3 ; N # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
+1D300..1D356 ; N # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D378 ; N # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
+1D400..1D454 ; N # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C ; N # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; N # Lu [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; N # Lu MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; N # Lu [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; N # Lu [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; N # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; N # Ll MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; N # Ll [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505 ; N # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; N # Lu [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; N # Lu [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; N # Lu [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539 ; N # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; N # Lu [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; N # Lu [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; N # Lu MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; N # Lu [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; N # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; N # Lu [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; N # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA ; N # Ll [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; N # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA ; N # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; N # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714 ; N # Ll [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; N # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734 ; N # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; N # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E ; N # Ll [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; N # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E ; N # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; N # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788 ; N # Ll [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; N # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8 ; N # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2 ; N # Ll [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; N # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB ; N # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF ; N # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1D800..1D9FF ; N # So [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
+1DA00..1DA36 ; N # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+1DA37..1DA3A ; N # So [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
+1DA3B..1DA6C ; N # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+1DA6D..1DA74 ; N # So [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75 ; N # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA76..1DA83 ; N # So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
+1DA84 ; N # Mn SIGNWRITING LOCATION HEAD NECK
+1DA85..1DA86 ; N # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
+1DA87..1DA8B ; N # Po [5] SIGNWRITING COMMA..SIGNWRITING PARENTHESIS
+1DA9B..1DA9F ; N # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA1..1DAAF ; N # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+1DF00..1DF09 ; N # Ll [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+1DF0A ; N # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+1DF0B..1DF1E ; N # Ll [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A ; N # Ll [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E000..1E006 ; N # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E008..1E018 ; N # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E01B..1E021 ; N # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E023..1E024 ; N # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E026..1E02A ; N # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D ; N # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F ; N # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E100..1E12C ; N # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E130..1E136 ; N # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E137..1E13D ; N # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E140..1E149 ; N # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14E ; N # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E14F ; N # So NYIAKENG PUACHUE HMONG CIRCLED CA
+1E290..1E2AD ; N # Lo [30] TOTO LETTER PA..TOTO LETTER A
+1E2AE ; N # Mn TOTO SIGN RISING TONE
+1E2C0..1E2EB ; N # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E2EC..1E2EF ; N # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E2F0..1E2F9 ; N # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E2FF ; N # Sc WANCHO NGUN SIGN
+1E4D0..1E4EA ; N # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB ; N # Lm NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF ; N # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9 ; N # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+1E7E0..1E7E6 ; N # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E8..1E7EB ; N # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7ED..1E7EE ; N # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7F0..1E7FE ; N # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
+1E800..1E8C4 ; N # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF ; N # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6 ; N # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E900..1E943 ; N # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
+1E944..1E94A ; N # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1E94B ; N # Lm ADLAM NASALIZATION MARK
+1E950..1E959 ; N # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
+1E95E..1E95F ; N # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
+1EC71..1ECAB ; N # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
+1ECAC ; N # So INDIC SIYAQ PLACEHOLDER
+1ECAD..1ECAF ; N # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
+1ECB0 ; N # Sc INDIC SIYAQ RUPEE MARK
+1ECB1..1ECB4 ; N # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ED01..1ED2D ; N # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
+1ED2E ; N # So OTTOMAN SIYAQ MARRATAN
+1ED2F..1ED3D ; N # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
+1EE00..1EE03 ; N # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F ; N # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22 ; N # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24 ; N # Lo ARABIC MATHEMATICAL INITIAL HEH
+1EE27 ; N # Lo ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32 ; N # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37 ; N # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39 ; N # Lo ARABIC MATHEMATICAL INITIAL DAD
+1EE3B ; N # Lo ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42 ; N # Lo ARABIC MATHEMATICAL TAILED JEEM
+1EE47 ; N # Lo ARABIC MATHEMATICAL TAILED HAH
+1EE49 ; N # Lo ARABIC MATHEMATICAL TAILED YEH
+1EE4B ; N # Lo ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F ; N # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52 ; N # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54 ; N # Lo ARABIC MATHEMATICAL TAILED SHEEN
+1EE57 ; N # Lo ARABIC MATHEMATICAL TAILED KHAH
+1EE59 ; N # Lo ARABIC MATHEMATICAL TAILED DAD
+1EE5B ; N # Lo ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D ; N # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F ; N # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62 ; N # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64 ; N # Lo ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A ; N # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72 ; N # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77 ; N # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C ; N # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E ; N # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89 ; N # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B ; N # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3 ; N # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9 ; N # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB ; N # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1 ; N # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1F000..1F003 ; N # So [4] MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND
+1F004 ; W # So MAHJONG TILE RED DRAGON
+1F005..1F02B ; N # So [39] MAHJONG TILE GREEN DRAGON..MAHJONG TILE BACK
+1F030..1F093 ; N # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F0A0..1F0AE ; N # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+1F0B1..1F0BF ; N # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
+1F0C1..1F0CE ; N # So [14] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD KING OF DIAMONDS
+1F0CF ; W # So PLAYING CARD BLACK JOKER
+1F0D1..1F0F5 ; N # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F100..1F10A ; A # No [11] DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+1F10B..1F10C ; N # No [2] DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F10D..1F10F ; N # So [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+1F110..1F12D ; A # So [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
+1F12E..1F12F ; N # So [2] CIRCLED WZ..COPYLEFT SYMBOL
+1F130..1F169 ; A # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F16A..1F16F ; N # So [6] RAISED MC SIGN..CIRCLED HUMAN FIGURE
+1F170..1F18D ; A # So [30] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED SA
+1F18E ; W # So NEGATIVE SQUARED AB
+1F18F..1F190 ; A # So [2] NEGATIVE SQUARED WC..SQUARE DJ
+1F191..1F19A ; W # So [10] SQUARED CL..SQUARED VS
+1F19B..1F1AC ; A # So [18] SQUARED THREE D..SQUARED VOD
+1F1AD ; N # So MASK WORK SYMBOL
+1F1E6..1F1FF ; N # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+1F200..1F202 ; W # So [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
+1F210..1F23B ; W # So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
+1F240..1F248 ; W # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F250..1F251 ; W # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+1F260..1F265 ; W # So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
+1F300..1F320 ; W # So [33] CYCLONE..SHOOTING STAR
+1F321..1F32C ; N # So [12] THERMOMETER..WIND BLOWING FACE
+1F32D..1F335 ; W # So [9] HOT DOG..CACTUS
+1F336 ; N # So HOT PEPPER
+1F337..1F37C ; W # So [70] TULIP..BABY BOTTLE
+1F37D ; N # So FORK AND KNIFE WITH PLATE
+1F37E..1F393 ; W # So [22] BOTTLE WITH POPPING CORK..GRADUATION CAP
+1F394..1F39F ; N # So [12] HEART WITH TIP ON THE LEFT..ADMISSION TICKETS
+1F3A0..1F3CA ; W # So [43] CAROUSEL HORSE..SWIMMER
+1F3CB..1F3CE ; N # So [4] WEIGHT LIFTER..RACING CAR
+1F3CF..1F3D3 ; W # So [5] CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL
+1F3D4..1F3DF ; N # So [12] SNOW CAPPED MOUNTAIN..STADIUM
+1F3E0..1F3F0 ; W # So [17] HOUSE BUILDING..EUROPEAN CASTLE
+1F3F1..1F3F3 ; N # So [3] WHITE PENNANT..WAVING WHITE FLAG
+1F3F4 ; W # So WAVING BLACK FLAG
+1F3F5..1F3F7 ; N # So [3] ROSETTE..LABEL
+1F3F8..1F3FA ; W # So [3] BADMINTON RACQUET AND SHUTTLECOCK..AMPHORA
+1F3FB..1F3FF ; W # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
+1F400..1F43E ; W # So [63] RAT..PAW PRINTS
+1F43F ; N # So CHIPMUNK
+1F440 ; W # So EYES
+1F441 ; N # So EYE
+1F442..1F4FC ; W # So [187] EAR..VIDEOCASSETTE
+1F4FD..1F4FE ; N # So [2] FILM PROJECTOR..PORTABLE STEREO
+1F4FF..1F53D ; W # So [63] PRAYER BEADS..DOWN-POINTING SMALL RED TRIANGLE
+1F53E..1F54A ; N # So [13] LOWER RIGHT SHADOWED WHITE CIRCLE..DOVE OF PEACE
+1F54B..1F54E ; W # So [4] KAABA..MENORAH WITH NINE BRANCHES
+1F54F ; N # So BOWL OF HYGIEIA
+1F550..1F567 ; W # So [24] CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
+1F568..1F579 ; N # So [18] RIGHT SPEAKER..JOYSTICK
+1F57A ; W # So MAN DANCING
+1F57B..1F594 ; N # So [26] LEFT HAND TELEPHONE RECEIVER..REVERSED VICTORY HAND
+1F595..1F596 ; W # So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+1F597..1F5A3 ; N # So [13] WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX
+1F5A4 ; W # So BLACK HEART
+1F5A5..1F5FA ; N # So [86] DESKTOP COMPUTER..WORLD MAP
+1F5FB..1F5FF ; W # So [5] MOUNT FUJI..MOYAI
+1F600..1F64F ; W # So [80] GRINNING FACE..PERSON WITH FOLDED HANDS
+1F650..1F67F ; N # So [48] NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
+1F680..1F6C5 ; W # So [70] ROCKET..LEFT LUGGAGE
+1F6C6..1F6CB ; N # So [6] TRIANGLE WITH ROUNDED CORNERS..COUCH AND LAMP
+1F6CC ; W # So SLEEPING ACCOMMODATION
+1F6CD..1F6CF ; N # So [3] SHOPPING BAGS..BED
+1F6D0..1F6D2 ; W # So [3] PLACE OF WORSHIP..SHOPPING TROLLEY
+1F6D3..1F6D4 ; N # So [2] STUPA..PAGODA
+1F6D5..1F6D7 ; W # So [3] HINDU TEMPLE..ELEVATOR
+1F6DC..1F6DF ; W # So [4] WIRELESS..RING BUOY
+1F6E0..1F6EA ; N # So [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE
+1F6EB..1F6EC ; W # So [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING
+1F6F0..1F6F3 ; N # So [4] SATELLITE..PASSENGER SHIP
+1F6F4..1F6FC ; W # So [9] SCOOTER..ROLLER SKATE
+1F700..1F776 ; N # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F77F ; N # So [5] HAUMEA..ORCUS
+1F780..1F7D9 ; N # So [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR
+1F7E0..1F7EB ; W # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
+1F7F0 ; W # So HEAVY EQUALS SIGN
+1F800..1F80B ; N # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F810..1F847 ; N # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F850..1F859 ; N # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F860..1F887 ; N # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F890..1F8AD ; N # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+1F8B0..1F8B1 ; N # So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
+1F900..1F90B ; N # So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
+1F90C..1F93A ; W # So [47] PINCHED FINGERS..FENCER
+1F93B ; N # So MODERN PENTATHLON
+1F93C..1F945 ; W # So [10] WRESTLERS..GOAL NET
+1F946 ; N # So RIFLE
+1F947..1F9FF ; W # So [185] FIRST PLACE MEDAL..NAZAR AMULET
+1FA00..1FA53 ; N # So [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
+1FA60..1FA6D ; N # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA70..1FA7C ; W # So [13] BALLET SHOES..CRUTCH
+1FA80..1FA88 ; W # So [9] YO-YO..FLUTE
+1FA90..1FABD ; W # So [46] RINGED PLANET..WING
+1FABF..1FAC5 ; W # So [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB ; W # So [14] MOOSE..PEA POD
+1FAE0..1FAE8 ; W # So [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8 ; W # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
+1FB00..1FB92 ; N # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
+1FB94..1FBCA ; N # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
+1FBF0..1FBF9 ; N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
+20000..2A6DF ; W # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
+2A6E0..2A6FF ; W # Cn [32] <reserved-2A6E0>..<reserved-2A6FF>
+2A700..2B739 ; W # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F ; W # Cn [6] <reserved-2B73A>..<reserved-2B73F>
+2B740..2B81D ; W # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+2B81E..2B81F ; W # Cn [2] <reserved-2B81E>..<reserved-2B81F>
+2B820..2CEA1 ; W # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
+2CEA2..2CEAF ; W # Cn [14] <reserved-2CEA2>..<reserved-2CEAF>
+2CEB0..2EBE0 ; W # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+2EBE1..2EBEF ; W # Cn [15] <reserved-2EBE1>..<reserved-2EBEF>
+2EBF0..2EE5D ; W # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
+2EE5E..2F7FF ; W # Cn [2466] <reserved-2EE5E>..<reserved-2F7FF>
+2F800..2FA1D ; W # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E..2FA1F ; W # Cn [2] <reserved-2FA1E>..<reserved-2FA1F>
+2FA20..2FFFD ; W # Cn [1502] <reserved-2FA20>..<reserved-2FFFD>
+30000..3134A ; W # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+3134B..3134F ; W # Cn [5] <reserved-3134B>..<reserved-3134F>
+31350..323AF ; W # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD ; W # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
+E0001 ; N # Cf LANGUAGE TAG
+E0020..E007F ; N # Cf [96] TAG SPACE..CANCEL TAG
+E0100..E01EF ; A # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+F0000..FFFFD ; A # Co [65534] <private-use-F0000>..<private-use-FFFFD>
+100000..10FFFD ; A # Co [65534] <private-use-100000>..<private-use-10FFFD>
+
+# EOF
diff --git a/util/unicode/data/GraphemeBreakProperty.txt b/util/unicode/data/GraphemeBreakProperty.txt
index 6ee92f6eec..12453cbdb5 100644
--- a/util/unicode/data/GraphemeBreakProperty.txt
+++ b/util/unicode/data/GraphemeBreakProperty.txt
@@ -1,11 +1,11 @@
-# GraphemeBreakProperty-13.0.0.txt
-# Date: 2019-10-21, 14:30:35 GMT
-# © 2019 Unicode®, Inc.
+# GraphemeBreakProperty-15.1.0.txt
+# Date: 2023-01-05, 20:34:41 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
@@ -21,6 +21,7 @@
0600..0605 ; Prepend # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
06DD ; Prepend # Cf ARABIC END OF AYAH
070F ; Prepend # Cf SYRIAC ABBREVIATION MARK
+0890..0891 ; Prepend # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
08E2 ; Prepend # Cf ARABIC DISPUTED END OF AYAH
0D4E ; Prepend # Lo MALAYALAM LETTER DOT REPH
110BD ; Prepend # Cf KAITHI NUMBER SIGN
@@ -31,8 +32,9 @@
11A3A ; Prepend # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
11A84..11A89 ; Prepend # Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA
11D46 ; Prepend # Lo MASARAM GONDI REPHA
+11F02 ; Prepend # Lo KAWI SIGN REPHA
-# Total code points: 24
+# Total code points: 27
# ================================================
@@ -66,7 +68,7 @@
FEFF ; Control # Cf ZERO WIDTH NO-BREAK SPACE
FFF0..FFF8 ; Control # Cn [9] <reserved-FFF0>..<reserved-FFF8>
FFF9..FFFB ; Control # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-13430..13438 ; Control # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F ; Control # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
1BCA0..1BCA3 ; Control # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Control # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0000 ; Control # Cn <reserved-E0000>
@@ -75,7 +77,7 @@ E0002..E001F ; Control # Cn [30] <reserved-E0002>..<reserved-E001F>
E0080..E00FF ; Control # Cn [128] <reserved-E0080>..<reserved-E00FF>
E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
-# Total code points: 3886
+# Total code points: 3893
# ================================================
@@ -104,7 +106,8 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08D3..08E1 ; Extend # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
+0898..089F ; Extend # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08CA..08E1 ; Extend # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E3..0902 ; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
093C ; Extend # Mn DEVANAGARI SIGN NUKTA
@@ -151,6 +154,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
0BD7 ; Extend # Mc TAMIL AU LENGTH MARK
0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C04 ; Extend # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C3C ; Extend # Mn TELUGU SIGN NUKTA
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
0C4A..0C4D ; Extend # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
@@ -182,7 +186,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD ; Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE ; Extend # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -206,7 +210,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
109D ; Extend # Mn MYANMAR VOWEL SIGN AITON AI
135D..135F ; Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1712..1714 ; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
-1732..1734 ; Extend # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1732..1733 ; Extend # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
1752..1753 ; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773 ; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
17B4..17B5 ; Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
@@ -215,6 +219,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
17C9..17D3 ; Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD ; Extend # Mn KHMER SIGN ATTHACAN
180B..180D ; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180F ; Extend # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1885..1886 ; Extend # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
18A9 ; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922 ; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
@@ -232,7 +237,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
-1ABF..1AC0 ; Extend # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
+1ABF..1ACE ; Extend # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B34 ; Extend # Mn BALINESE SIGN REREKAN
1B35 ; Extend # Mc BALINESE VOWEL SIGN TEDUNG
@@ -256,8 +261,7 @@ E01F0..E0FFF ; Control # Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
1CED ; Extend # Mn VEDIC SIGN TIRYAK
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
-1DC0..1DF9 ; Extend # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
-1DFB..1DFF ; Extend # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1DC0..1DFF ; Extend # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C ; Extend # Cf ZERO WIDTH NON-JOINER
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
@@ -321,12 +325,17 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF ; Extend # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11070 ; Extend # Mn BRAHMI SIGN OLD TAMIL VIRAMA
+11073..11074 ; Extend # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B9..110BA ; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110C2 ; Extend # Mn KAITHI VOWEL SIGN VOCALIC R
11100..11102 ; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112D..11134 ; Extend # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
@@ -339,6 +348,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11234 ; Extend # Mn KHOJKI SIGN ANUSVARA
11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; Extend # Mn KHOJKI SIGN SUKUN
+11241 ; Extend # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
11300..11301 ; Extend # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
@@ -406,12 +416,20 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11D95 ; Extend # Mn GUNJALA GONDI SIGN ANUSVARA
11D97 ; Extend # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11F00..11F01 ; Extend # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F36..11F3A ; Extend # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F40 ; Extend # Mn KAWI VOWEL SIGN EU
+11F42 ; Extend # Mn KAWI CONJOINER
+13440 ; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455 ; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
16F8F..16F92 ; Extend # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
16FE4 ; Extend # Mn KHITAN SMALL SCRIPT FILLER
1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1CF00..1CF2D ; Extend # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; Extend # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1D165 ; Extend # Mc MUSICAL SYMBOL COMBINING STEM
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16E..1D172 ; Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
@@ -430,15 +448,18 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1E01B..1E021 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F ; Extend # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E2AE ; Extend # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 1984
+# Total code points: 2130
# ================================================
@@ -479,6 +500,7 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
0CC3..0CC4 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
0CC7..0CC8 ; SpacingMark # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
0CCA..0CCB ; SpacingMark # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CF3 ; SpacingMark # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D02..0D03 ; SpacingMark # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3F..0D40 ; SpacingMark # Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
0D46..0D48 ; SpacingMark # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
@@ -495,6 +517,8 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
103B..103C ; SpacingMark # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
1056..1057 ; SpacingMark # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
1084 ; SpacingMark # Mc MYANMAR VOWEL SIGN SHAN E
+1715 ; SpacingMark # Mc TAGALOG SIGN PAMUDPOD
+1734 ; SpacingMark # Mc HANUNOO SIGN PAMUDPOD
17B6 ; SpacingMark # Mc KHMER VOWEL SIGN AA
17BE..17C5 ; SpacingMark # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
17C7..17C8 ; SpacingMark # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
@@ -579,7 +603,6 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK
116AC ; SpacingMark # Mc TAKRI SIGN VISARGA
116AE..116AF ; SpacingMark # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
116B6 ; SpacingMark # Mc TAKRI SIGN VIRAMA
-11720..11721 ; SpacingMark # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
11726 ; SpacingMark # Mc AHOM VOWEL SIGN E
1182C..1182E ; SpacingMark # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
11838 ; SpacingMark # Mc DOGRA SIGN VISARGA
@@ -603,12 +626,16 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK
11D93..11D94 ; SpacingMark # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
11D96 ; SpacingMark # Mc GUNJALA GONDI SIGN VISARGA
11EF5..11EF6 ; SpacingMark # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F03 ; SpacingMark # Mc KAWI SIGN VISARGA
+11F34..11F35 ; SpacingMark # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F3E..11F3F ; SpacingMark # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F41 ; SpacingMark # Mc KAWI SIGN KILLER
16F51..16F87 ; SpacingMark # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
16FF0..16FF1 ; SpacingMark # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
1D166 ; SpacingMark # Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D16D ; SpacingMark # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT
-# Total code points: 388
+# Total code points: 395
# ================================================
diff --git a/util/unicode/data/IdnaMappingTable.txt b/util/unicode/data/IdnaMappingTable.txt
new file mode 100644
index 0000000000..3fb44638b6
--- /dev/null
+++ b/util/unicode/data/IdnaMappingTable.txt
@@ -0,0 +1,9026 @@
+# IdnaMappingTable.txt
+# Date: 2023-08-10, 22:32:27 GMT
+# © 2023 Unicode®, Inc.
+# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
+#
+# Unicode IDNA Compatible Preprocessing for UTS #46
+# Version: 15.1.0
+#
+# For documentation and usage, see https://www.unicode.org/reports/tr46
+#
+0000..002C ; disallowed_STD3_valid # 1.1 <control-0000>..COMMA
+002D..002E ; valid # 1.1 HYPHEN-MINUS..FULL STOP
+002F ; disallowed_STD3_valid # 1.1 SOLIDUS
+0030..0039 ; valid # 1.1 DIGIT ZERO..DIGIT NINE
+003A..0040 ; disallowed_STD3_valid # 1.1 COLON..COMMERCIAL AT
+0041 ; mapped ; 0061 # 1.1 LATIN CAPITAL LETTER A
+0042 ; mapped ; 0062 # 1.1 LATIN CAPITAL LETTER B
+0043 ; mapped ; 0063 # 1.1 LATIN CAPITAL LETTER C
+0044 ; mapped ; 0064 # 1.1 LATIN CAPITAL LETTER D
+0045 ; mapped ; 0065 # 1.1 LATIN CAPITAL LETTER E
+0046 ; mapped ; 0066 # 1.1 LATIN CAPITAL LETTER F
+0047 ; mapped ; 0067 # 1.1 LATIN CAPITAL LETTER G
+0048 ; mapped ; 0068 # 1.1 LATIN CAPITAL LETTER H
+0049 ; mapped ; 0069 # 1.1 LATIN CAPITAL LETTER I
+004A ; mapped ; 006A # 1.1 LATIN CAPITAL LETTER J
+004B ; mapped ; 006B # 1.1 LATIN CAPITAL LETTER K
+004C ; mapped ; 006C # 1.1 LATIN CAPITAL LETTER L
+004D ; mapped ; 006D # 1.1 LATIN CAPITAL LETTER M
+004E ; mapped ; 006E # 1.1 LATIN CAPITAL LETTER N
+004F ; mapped ; 006F # 1.1 LATIN CAPITAL LETTER O
+0050 ; mapped ; 0070 # 1.1 LATIN CAPITAL LETTER P
+0051 ; mapped ; 0071 # 1.1 LATIN CAPITAL LETTER Q
+0052 ; mapped ; 0072 # 1.1 LATIN CAPITAL LETTER R
+0053 ; mapped ; 0073 # 1.1 LATIN CAPITAL LETTER S
+0054 ; mapped ; 0074 # 1.1 LATIN CAPITAL LETTER T
+0055 ; mapped ; 0075 # 1.1 LATIN CAPITAL LETTER U
+0056 ; mapped ; 0076 # 1.1 LATIN CAPITAL LETTER V
+0057 ; mapped ; 0077 # 1.1 LATIN CAPITAL LETTER W
+0058 ; mapped ; 0078 # 1.1 LATIN CAPITAL LETTER X
+0059 ; mapped ; 0079 # 1.1 LATIN CAPITAL LETTER Y
+005A ; mapped ; 007A # 1.1 LATIN CAPITAL LETTER Z
+005B..0060 ; disallowed_STD3_valid # 1.1 LEFT SQUARE BRACKET..GRAVE ACCENT
+0061..007A ; valid # 1.1 LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B..007F ; disallowed_STD3_valid # 1.1 LEFT CURLY BRACKET..<control-007F>
+0080..009F ; disallowed # 1.1 <control-0080>..<control-009F>
+00A0 ; disallowed_STD3_mapped ; 0020 # 1.1 NO-BREAK SPACE
+00A1..00A7 ; valid ; ; NV8 # 1.1 INVERTED EXCLAMATION MARK..SECTION SIGN
+00A8 ; disallowed_STD3_mapped ; 0020 0308 # 1.1 DIAERESIS
+00A9 ; valid ; ; NV8 # 1.1 COPYRIGHT SIGN
+00AA ; mapped ; 0061 # 1.1 FEMININE ORDINAL INDICATOR
+00AB..00AC ; valid ; ; NV8 # 1.1 LEFT-POINTING DOUBLE ANGLE QUOTATION MARK..NOT SIGN
+00AD ; ignored # 1.1 SOFT HYPHEN
+00AE ; valid ; ; NV8 # 1.1 REGISTERED SIGN
+00AF ; disallowed_STD3_mapped ; 0020 0304 # 1.1 MACRON
+00B0..00B1 ; valid ; ; NV8 # 1.1 DEGREE SIGN..PLUS-MINUS SIGN
+00B2 ; mapped ; 0032 # 1.1 SUPERSCRIPT TWO
+00B3 ; mapped ; 0033 # 1.1 SUPERSCRIPT THREE
+00B4 ; disallowed_STD3_mapped ; 0020 0301 # 1.1 ACUTE ACCENT
+00B5 ; mapped ; 03BC # 1.1 MICRO SIGN
+00B6 ; valid ; ; NV8 # 1.1 PILCROW SIGN
+00B7 ; valid # 1.1 MIDDLE DOT
+00B8 ; disallowed_STD3_mapped ; 0020 0327 # 1.1 CEDILLA
+00B9 ; mapped ; 0031 # 1.1 SUPERSCRIPT ONE
+00BA ; mapped ; 006F # 1.1 MASCULINE ORDINAL INDICATOR
+00BB ; valid ; ; NV8 # 1.1 RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC ; mapped ; 0031 2044 0034 #1.1 VULGAR FRACTION ONE QUARTER
+00BD ; mapped ; 0031 2044 0032 #1.1 VULGAR FRACTION ONE HALF
+00BE ; mapped ; 0033 2044 0034 #1.1 VULGAR FRACTION THREE QUARTERS
+00BF ; valid ; ; NV8 # 1.1 INVERTED QUESTION MARK
+00C0 ; mapped ; 00E0 # 1.1 LATIN CAPITAL LETTER A WITH GRAVE
+00C1 ; mapped ; 00E1 # 1.1 LATIN CAPITAL LETTER A WITH ACUTE
+00C2 ; mapped ; 00E2 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+00C3 ; mapped ; 00E3 # 1.1 LATIN CAPITAL LETTER A WITH TILDE
+00C4 ; mapped ; 00E4 # 1.1 LATIN CAPITAL LETTER A WITH DIAERESIS
+00C5 ; mapped ; 00E5 # 1.1 LATIN CAPITAL LETTER A WITH RING ABOVE
+00C6 ; mapped ; 00E6 # 1.1 LATIN CAPITAL LETTER AE
+00C7 ; mapped ; 00E7 # 1.1 LATIN CAPITAL LETTER C WITH CEDILLA
+00C8 ; mapped ; 00E8 # 1.1 LATIN CAPITAL LETTER E WITH GRAVE
+00C9 ; mapped ; 00E9 # 1.1 LATIN CAPITAL LETTER E WITH ACUTE
+00CA ; mapped ; 00EA # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+00CB ; mapped ; 00EB # 1.1 LATIN CAPITAL LETTER E WITH DIAERESIS
+00CC ; mapped ; 00EC # 1.1 LATIN CAPITAL LETTER I WITH GRAVE
+00CD ; mapped ; 00ED # 1.1 LATIN CAPITAL LETTER I WITH ACUTE
+00CE ; mapped ; 00EE # 1.1 LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+00CF ; mapped ; 00EF # 1.1 LATIN CAPITAL LETTER I WITH DIAERESIS
+00D0 ; mapped ; 00F0 # 1.1 LATIN CAPITAL LETTER ETH
+00D1 ; mapped ; 00F1 # 1.1 LATIN CAPITAL LETTER N WITH TILDE
+00D2 ; mapped ; 00F2 # 1.1 LATIN CAPITAL LETTER O WITH GRAVE
+00D3 ; mapped ; 00F3 # 1.1 LATIN CAPITAL LETTER O WITH ACUTE
+00D4 ; mapped ; 00F4 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+00D5 ; mapped ; 00F5 # 1.1 LATIN CAPITAL LETTER O WITH TILDE
+00D6 ; mapped ; 00F6 # 1.1 LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7 ; valid ; ; NV8 # 1.1 MULTIPLICATION SIGN
+00D8 ; mapped ; 00F8 # 1.1 LATIN CAPITAL LETTER O WITH STROKE
+00D9 ; mapped ; 00F9 # 1.1 LATIN CAPITAL LETTER U WITH GRAVE
+00DA ; mapped ; 00FA # 1.1 LATIN CAPITAL LETTER U WITH ACUTE
+00DB ; mapped ; 00FB # 1.1 LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+00DC ; mapped ; 00FC # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS
+00DD ; mapped ; 00FD # 1.1 LATIN CAPITAL LETTER Y WITH ACUTE
+00DE ; mapped ; 00FE # 1.1 LATIN CAPITAL LETTER THORN
+00DF ; deviation ; 0073 0073 # 1.1 LATIN SMALL LETTER SHARP S
+00E0..00F6 ; valid # 1.1 LATIN SMALL LETTER A WITH GRAVE..LATIN SMALL LETTER O WITH DIAERESIS
+00F7 ; valid ; ; NV8 # 1.1 DIVISION SIGN
+00F8..00FF ; valid # 1.1 LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0100 ; mapped ; 0101 # 1.1 LATIN CAPITAL LETTER A WITH MACRON
+0101 ; valid # 1.1 LATIN SMALL LETTER A WITH MACRON
+0102 ; mapped ; 0103 # 1.1 LATIN CAPITAL LETTER A WITH BREVE
+0103 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE
+0104 ; mapped ; 0105 # 1.1 LATIN CAPITAL LETTER A WITH OGONEK
+0105 ; valid # 1.1 LATIN SMALL LETTER A WITH OGONEK
+0106 ; mapped ; 0107 # 1.1 LATIN CAPITAL LETTER C WITH ACUTE
+0107 ; valid # 1.1 LATIN SMALL LETTER C WITH ACUTE
+0108 ; mapped ; 0109 # 1.1 LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+0109 ; valid # 1.1 LATIN SMALL LETTER C WITH CIRCUMFLEX
+010A ; mapped ; 010B # 1.1 LATIN CAPITAL LETTER C WITH DOT ABOVE
+010B ; valid # 1.1 LATIN SMALL LETTER C WITH DOT ABOVE
+010C ; mapped ; 010D # 1.1 LATIN CAPITAL LETTER C WITH CARON
+010D ; valid # 1.1 LATIN SMALL LETTER C WITH CARON
+010E ; mapped ; 010F # 1.1 LATIN CAPITAL LETTER D WITH CARON
+010F ; valid # 1.1 LATIN SMALL LETTER D WITH CARON
+0110 ; mapped ; 0111 # 1.1 LATIN CAPITAL LETTER D WITH STROKE
+0111 ; valid # 1.1 LATIN SMALL LETTER D WITH STROKE
+0112 ; mapped ; 0113 # 1.1 LATIN CAPITAL LETTER E WITH MACRON
+0113 ; valid # 1.1 LATIN SMALL LETTER E WITH MACRON
+0114 ; mapped ; 0115 # 1.1 LATIN CAPITAL LETTER E WITH BREVE
+0115 ; valid # 1.1 LATIN SMALL LETTER E WITH BREVE
+0116 ; mapped ; 0117 # 1.1 LATIN CAPITAL LETTER E WITH DOT ABOVE
+0117 ; valid # 1.1 LATIN SMALL LETTER E WITH DOT ABOVE
+0118 ; mapped ; 0119 # 1.1 LATIN CAPITAL LETTER E WITH OGONEK
+0119 ; valid # 1.1 LATIN SMALL LETTER E WITH OGONEK
+011A ; mapped ; 011B # 1.1 LATIN CAPITAL LETTER E WITH CARON
+011B ; valid # 1.1 LATIN SMALL LETTER E WITH CARON
+011C ; mapped ; 011D # 1.1 LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+011D ; valid # 1.1 LATIN SMALL LETTER G WITH CIRCUMFLEX
+011E ; mapped ; 011F # 1.1 LATIN CAPITAL LETTER G WITH BREVE
+011F ; valid # 1.1 LATIN SMALL LETTER G WITH BREVE
+0120 ; mapped ; 0121 # 1.1 LATIN CAPITAL LETTER G WITH DOT ABOVE
+0121 ; valid # 1.1 LATIN SMALL LETTER G WITH DOT ABOVE
+0122 ; mapped ; 0123 # 1.1 LATIN CAPITAL LETTER G WITH CEDILLA
+0123 ; valid # 1.1 LATIN SMALL LETTER G WITH CEDILLA
+0124 ; mapped ; 0125 # 1.1 LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+0125 ; valid # 1.1 LATIN SMALL LETTER H WITH CIRCUMFLEX
+0126 ; mapped ; 0127 # 1.1 LATIN CAPITAL LETTER H WITH STROKE
+0127 ; valid # 1.1 LATIN SMALL LETTER H WITH STROKE
+0128 ; mapped ; 0129 # 1.1 LATIN CAPITAL LETTER I WITH TILDE
+0129 ; valid # 1.1 LATIN SMALL LETTER I WITH TILDE
+012A ; mapped ; 012B # 1.1 LATIN CAPITAL LETTER I WITH MACRON
+012B ; valid # 1.1 LATIN SMALL LETTER I WITH MACRON
+012C ; mapped ; 012D # 1.1 LATIN CAPITAL LETTER I WITH BREVE
+012D ; valid # 1.1 LATIN SMALL LETTER I WITH BREVE
+012E ; mapped ; 012F # 1.1 LATIN CAPITAL LETTER I WITH OGONEK
+012F ; valid # 1.1 LATIN SMALL LETTER I WITH OGONEK
+0130 ; mapped ; 0069 0307 # 1.1 LATIN CAPITAL LETTER I WITH DOT ABOVE
+0131 ; valid # 1.1 LATIN SMALL LETTER DOTLESS I
+0132..0133 ; mapped ; 0069 006A # 1.1 LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ
+0134 ; mapped ; 0135 # 1.1 LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+0135 ; valid # 1.1 LATIN SMALL LETTER J WITH CIRCUMFLEX
+0136 ; mapped ; 0137 # 1.1 LATIN CAPITAL LETTER K WITH CEDILLA
+0137..0138 ; valid # 1.1 LATIN SMALL LETTER K WITH CEDILLA..LATIN SMALL LETTER KRA
+0139 ; mapped ; 013A # 1.1 LATIN CAPITAL LETTER L WITH ACUTE
+013A ; valid # 1.1 LATIN SMALL LETTER L WITH ACUTE
+013B ; mapped ; 013C # 1.1 LATIN CAPITAL LETTER L WITH CEDILLA
+013C ; valid # 1.1 LATIN SMALL LETTER L WITH CEDILLA
+013D ; mapped ; 013E # 1.1 LATIN CAPITAL LETTER L WITH CARON
+013E ; valid # 1.1 LATIN SMALL LETTER L WITH CARON
+013F..0140 ; mapped ; 006C 00B7 # 1.1 LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT
+0141 ; mapped ; 0142 # 1.1 LATIN CAPITAL LETTER L WITH STROKE
+0142 ; valid # 1.1 LATIN SMALL LETTER L WITH STROKE
+0143 ; mapped ; 0144 # 1.1 LATIN CAPITAL LETTER N WITH ACUTE
+0144 ; valid # 1.1 LATIN SMALL LETTER N WITH ACUTE
+0145 ; mapped ; 0146 # 1.1 LATIN CAPITAL LETTER N WITH CEDILLA
+0146 ; valid # 1.1 LATIN SMALL LETTER N WITH CEDILLA
+0147 ; mapped ; 0148 # 1.1 LATIN CAPITAL LETTER N WITH CARON
+0148 ; valid # 1.1 LATIN SMALL LETTER N WITH CARON
+0149 ; mapped ; 02BC 006E # 1.1 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+014A ; mapped ; 014B # 1.1 LATIN CAPITAL LETTER ENG
+014B ; valid # 1.1 LATIN SMALL LETTER ENG
+014C ; mapped ; 014D # 1.1 LATIN CAPITAL LETTER O WITH MACRON
+014D ; valid # 1.1 LATIN SMALL LETTER O WITH MACRON
+014E ; mapped ; 014F # 1.1 LATIN CAPITAL LETTER O WITH BREVE
+014F ; valid # 1.1 LATIN SMALL LETTER O WITH BREVE
+0150 ; mapped ; 0151 # 1.1 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+0151 ; valid # 1.1 LATIN SMALL LETTER O WITH DOUBLE ACUTE
+0152 ; mapped ; 0153 # 1.1 LATIN CAPITAL LIGATURE OE
+0153 ; valid # 1.1 LATIN SMALL LIGATURE OE
+0154 ; mapped ; 0155 # 1.1 LATIN CAPITAL LETTER R WITH ACUTE
+0155 ; valid # 1.1 LATIN SMALL LETTER R WITH ACUTE
+0156 ; mapped ; 0157 # 1.1 LATIN CAPITAL LETTER R WITH CEDILLA
+0157 ; valid # 1.1 LATIN SMALL LETTER R WITH CEDILLA
+0158 ; mapped ; 0159 # 1.1 LATIN CAPITAL LETTER R WITH CARON
+0159 ; valid # 1.1 LATIN SMALL LETTER R WITH CARON
+015A ; mapped ; 015B # 1.1 LATIN CAPITAL LETTER S WITH ACUTE
+015B ; valid # 1.1 LATIN SMALL LETTER S WITH ACUTE
+015C ; mapped ; 015D # 1.1 LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+015D ; valid # 1.1 LATIN SMALL LETTER S WITH CIRCUMFLEX
+015E ; mapped ; 015F # 1.1 LATIN CAPITAL LETTER S WITH CEDILLA
+015F ; valid # 1.1 LATIN SMALL LETTER S WITH CEDILLA
+0160 ; mapped ; 0161 # 1.1 LATIN CAPITAL LETTER S WITH CARON
+0161 ; valid # 1.1 LATIN SMALL LETTER S WITH CARON
+0162 ; mapped ; 0163 # 1.1 LATIN CAPITAL LETTER T WITH CEDILLA
+0163 ; valid # 1.1 LATIN SMALL LETTER T WITH CEDILLA
+0164 ; mapped ; 0165 # 1.1 LATIN CAPITAL LETTER T WITH CARON
+0165 ; valid # 1.1 LATIN SMALL LETTER T WITH CARON
+0166 ; mapped ; 0167 # 1.1 LATIN CAPITAL LETTER T WITH STROKE
+0167 ; valid # 1.1 LATIN SMALL LETTER T WITH STROKE
+0168 ; mapped ; 0169 # 1.1 LATIN CAPITAL LETTER U WITH TILDE
+0169 ; valid # 1.1 LATIN SMALL LETTER U WITH TILDE
+016A ; mapped ; 016B # 1.1 LATIN CAPITAL LETTER U WITH MACRON
+016B ; valid # 1.1 LATIN SMALL LETTER U WITH MACRON
+016C ; mapped ; 016D # 1.1 LATIN CAPITAL LETTER U WITH BREVE
+016D ; valid # 1.1 LATIN SMALL LETTER U WITH BREVE
+016E ; mapped ; 016F # 1.1 LATIN CAPITAL LETTER U WITH RING ABOVE
+016F ; valid # 1.1 LATIN SMALL LETTER U WITH RING ABOVE
+0170 ; mapped ; 0171 # 1.1 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+0171 ; valid # 1.1 LATIN SMALL LETTER U WITH DOUBLE ACUTE
+0172 ; mapped ; 0173 # 1.1 LATIN CAPITAL LETTER U WITH OGONEK
+0173 ; valid # 1.1 LATIN SMALL LETTER U WITH OGONEK
+0174 ; mapped ; 0175 # 1.1 LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+0175 ; valid # 1.1 LATIN SMALL LETTER W WITH CIRCUMFLEX
+0176 ; mapped ; 0177 # 1.1 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+0177 ; valid # 1.1 LATIN SMALL LETTER Y WITH CIRCUMFLEX
+0178 ; mapped ; 00FF # 1.1 LATIN CAPITAL LETTER Y WITH DIAERESIS
+0179 ; mapped ; 017A # 1.1 LATIN CAPITAL LETTER Z WITH ACUTE
+017A ; valid # 1.1 LATIN SMALL LETTER Z WITH ACUTE
+017B ; mapped ; 017C # 1.1 LATIN CAPITAL LETTER Z WITH DOT ABOVE
+017C ; valid # 1.1 LATIN SMALL LETTER Z WITH DOT ABOVE
+017D ; mapped ; 017E # 1.1 LATIN CAPITAL LETTER Z WITH CARON
+017E ; valid # 1.1 LATIN SMALL LETTER Z WITH CARON
+017F ; mapped ; 0073 # 1.1 LATIN SMALL LETTER LONG S
+0180 ; valid # 1.1 LATIN SMALL LETTER B WITH STROKE
+0181 ; mapped ; 0253 # 1.1 LATIN CAPITAL LETTER B WITH HOOK
+0182 ; mapped ; 0183 # 1.1 LATIN CAPITAL LETTER B WITH TOPBAR
+0183 ; valid # 1.1 LATIN SMALL LETTER B WITH TOPBAR
+0184 ; mapped ; 0185 # 1.1 LATIN CAPITAL LETTER TONE SIX
+0185 ; valid # 1.1 LATIN SMALL LETTER TONE SIX
+0186 ; mapped ; 0254 # 1.1 LATIN CAPITAL LETTER OPEN O
+0187 ; mapped ; 0188 # 1.1 LATIN CAPITAL LETTER C WITH HOOK
+0188 ; valid # 1.1 LATIN SMALL LETTER C WITH HOOK
+0189 ; mapped ; 0256 # 1.1 LATIN CAPITAL LETTER AFRICAN D
+018A ; mapped ; 0257 # 1.1 LATIN CAPITAL LETTER D WITH HOOK
+018B ; mapped ; 018C # 1.1 LATIN CAPITAL LETTER D WITH TOPBAR
+018C..018D ; valid # 1.1 LATIN SMALL LETTER D WITH TOPBAR..LATIN SMALL LETTER TURNED DELTA
+018E ; mapped ; 01DD # 1.1 LATIN CAPITAL LETTER REVERSED E
+018F ; mapped ; 0259 # 1.1 LATIN CAPITAL LETTER SCHWA
+0190 ; mapped ; 025B # 1.1 LATIN CAPITAL LETTER OPEN E
+0191 ; mapped ; 0192 # 1.1 LATIN CAPITAL LETTER F WITH HOOK
+0192 ; valid # 1.1 LATIN SMALL LETTER F WITH HOOK
+0193 ; mapped ; 0260 # 1.1 LATIN CAPITAL LETTER G WITH HOOK
+0194 ; mapped ; 0263 # 1.1 LATIN CAPITAL LETTER GAMMA
+0195 ; valid # 1.1 LATIN SMALL LETTER HV
+0196 ; mapped ; 0269 # 1.1 LATIN CAPITAL LETTER IOTA
+0197 ; mapped ; 0268 # 1.1 LATIN CAPITAL LETTER I WITH STROKE
+0198 ; mapped ; 0199 # 1.1 LATIN CAPITAL LETTER K WITH HOOK
+0199..019B ; valid # 1.1 LATIN SMALL LETTER K WITH HOOK..LATIN SMALL LETTER LAMBDA WITH STROKE
+019C ; mapped ; 026F # 1.1 LATIN CAPITAL LETTER TURNED M
+019D ; mapped ; 0272 # 1.1 LATIN CAPITAL LETTER N WITH LEFT HOOK
+019E ; valid # 1.1 LATIN SMALL LETTER N WITH LONG RIGHT LEG
+019F ; mapped ; 0275 # 1.1 LATIN CAPITAL LETTER O WITH MIDDLE TILDE
+01A0 ; mapped ; 01A1 # 1.1 LATIN CAPITAL LETTER O WITH HORN
+01A1 ; valid # 1.1 LATIN SMALL LETTER O WITH HORN
+01A2 ; mapped ; 01A3 # 1.1 LATIN CAPITAL LETTER OI
+01A3 ; valid # 1.1 LATIN SMALL LETTER OI
+01A4 ; mapped ; 01A5 # 1.1 LATIN CAPITAL LETTER P WITH HOOK
+01A5 ; valid # 1.1 LATIN SMALL LETTER P WITH HOOK
+01A6 ; mapped ; 0280 # 1.1 LATIN LETTER YR
+01A7 ; mapped ; 01A8 # 1.1 LATIN CAPITAL LETTER TONE TWO
+01A8 ; valid # 1.1 LATIN SMALL LETTER TONE TWO
+01A9 ; mapped ; 0283 # 1.1 LATIN CAPITAL LETTER ESH
+01AA..01AB ; valid # 1.1 LATIN LETTER REVERSED ESH LOOP..LATIN SMALL LETTER T WITH PALATAL HOOK
+01AC ; mapped ; 01AD # 1.1 LATIN CAPITAL LETTER T WITH HOOK
+01AD ; valid # 1.1 LATIN SMALL LETTER T WITH HOOK
+01AE ; mapped ; 0288 # 1.1 LATIN CAPITAL LETTER T WITH RETROFLEX HOOK
+01AF ; mapped ; 01B0 # 1.1 LATIN CAPITAL LETTER U WITH HORN
+01B0 ; valid # 1.1 LATIN SMALL LETTER U WITH HORN
+01B1 ; mapped ; 028A # 1.1 LATIN CAPITAL LETTER UPSILON
+01B2 ; mapped ; 028B # 1.1 LATIN CAPITAL LETTER V WITH HOOK
+01B3 ; mapped ; 01B4 # 1.1 LATIN CAPITAL LETTER Y WITH HOOK
+01B4 ; valid # 1.1 LATIN SMALL LETTER Y WITH HOOK
+01B5 ; mapped ; 01B6 # 1.1 LATIN CAPITAL LETTER Z WITH STROKE
+01B6 ; valid # 1.1 LATIN SMALL LETTER Z WITH STROKE
+01B7 ; mapped ; 0292 # 1.1 LATIN CAPITAL LETTER EZH
+01B8 ; mapped ; 01B9 # 1.1 LATIN CAPITAL LETTER EZH REVERSED
+01B9..01BB ; valid # 1.1 LATIN SMALL LETTER EZH REVERSED..LATIN LETTER TWO WITH STROKE
+01BC ; mapped ; 01BD # 1.1 LATIN CAPITAL LETTER TONE FIVE
+01BD..01C3 ; valid # 1.1 LATIN SMALL LETTER TONE FIVE..LATIN LETTER RETROFLEX CLICK
+01C4..01C6 ; mapped ; 0064 017E # 1.1 LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER DZ WITH CARON
+01C7..01C9 ; mapped ; 006C 006A # 1.1 LATIN CAPITAL LETTER LJ..LATIN SMALL LETTER LJ
+01CA..01CC ; mapped ; 006E 006A # 1.1 LATIN CAPITAL LETTER NJ..LATIN SMALL LETTER NJ
+01CD ; mapped ; 01CE # 1.1 LATIN CAPITAL LETTER A WITH CARON
+01CE ; valid # 1.1 LATIN SMALL LETTER A WITH CARON
+01CF ; mapped ; 01D0 # 1.1 LATIN CAPITAL LETTER I WITH CARON
+01D0 ; valid # 1.1 LATIN SMALL LETTER I WITH CARON
+01D1 ; mapped ; 01D2 # 1.1 LATIN CAPITAL LETTER O WITH CARON
+01D2 ; valid # 1.1 LATIN SMALL LETTER O WITH CARON
+01D3 ; mapped ; 01D4 # 1.1 LATIN CAPITAL LETTER U WITH CARON
+01D4 ; valid # 1.1 LATIN SMALL LETTER U WITH CARON
+01D5 ; mapped ; 01D6 # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+01D6 ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+01D7 ; mapped ; 01D8 # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+01D8 ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+01D9 ; mapped ; 01DA # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+01DA ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+01DB ; mapped ; 01DC # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+01DC..01DD ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE..LATIN SMALL LETTER TURNED E
+01DE ; mapped ; 01DF # 1.1 LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON
+01DF ; valid # 1.1 LATIN SMALL LETTER A WITH DIAERESIS AND MACRON
+01E0 ; mapped ; 01E1 # 1.1 LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON
+01E1 ; valid # 1.1 LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON
+01E2 ; mapped ; 01E3 # 1.1 LATIN CAPITAL LETTER AE WITH MACRON
+01E3 ; valid # 1.1 LATIN SMALL LETTER AE WITH MACRON
+01E4 ; mapped ; 01E5 # 1.1 LATIN CAPITAL LETTER G WITH STROKE
+01E5 ; valid # 1.1 LATIN SMALL LETTER G WITH STROKE
+01E6 ; mapped ; 01E7 # 1.1 LATIN CAPITAL LETTER G WITH CARON
+01E7 ; valid # 1.1 LATIN SMALL LETTER G WITH CARON
+01E8 ; mapped ; 01E9 # 1.1 LATIN CAPITAL LETTER K WITH CARON
+01E9 ; valid # 1.1 LATIN SMALL LETTER K WITH CARON
+01EA ; mapped ; 01EB # 1.1 LATIN CAPITAL LETTER O WITH OGONEK
+01EB ; valid # 1.1 LATIN SMALL LETTER O WITH OGONEK
+01EC ; mapped ; 01ED # 1.1 LATIN CAPITAL LETTER O WITH OGONEK AND MACRON
+01ED ; valid # 1.1 LATIN SMALL LETTER O WITH OGONEK AND MACRON
+01EE ; mapped ; 01EF # 1.1 LATIN CAPITAL LETTER EZH WITH CARON
+01EF..01F0 ; valid # 1.1 LATIN SMALL LETTER EZH WITH CARON..LATIN SMALL LETTER J WITH CARON
+01F1..01F3 ; mapped ; 0064 007A # 1.1 LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ
+01F4 ; mapped ; 01F5 # 1.1 LATIN CAPITAL LETTER G WITH ACUTE
+01F5 ; valid # 1.1 LATIN SMALL LETTER G WITH ACUTE
+01F6 ; mapped ; 0195 # 3.0 LATIN CAPITAL LETTER HWAIR
+01F7 ; mapped ; 01BF # 3.0 LATIN CAPITAL LETTER WYNN
+01F8 ; mapped ; 01F9 # 3.0 LATIN CAPITAL LETTER N WITH GRAVE
+01F9 ; valid # 3.0 LATIN SMALL LETTER N WITH GRAVE
+01FA ; mapped ; 01FB # 1.1 LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE
+01FB ; valid # 1.1 LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE
+01FC ; mapped ; 01FD # 1.1 LATIN CAPITAL LETTER AE WITH ACUTE
+01FD ; valid # 1.1 LATIN SMALL LETTER AE WITH ACUTE
+01FE ; mapped ; 01FF # 1.1 LATIN CAPITAL LETTER O WITH STROKE AND ACUTE
+01FF ; valid # 1.1 LATIN SMALL LETTER O WITH STROKE AND ACUTE
+0200 ; mapped ; 0201 # 1.1 LATIN CAPITAL LETTER A WITH DOUBLE GRAVE
+0201 ; valid # 1.1 LATIN SMALL LETTER A WITH DOUBLE GRAVE
+0202 ; mapped ; 0203 # 1.1 LATIN CAPITAL LETTER A WITH INVERTED BREVE
+0203 ; valid # 1.1 LATIN SMALL LETTER A WITH INVERTED BREVE
+0204 ; mapped ; 0205 # 1.1 LATIN CAPITAL LETTER E WITH DOUBLE GRAVE
+0205 ; valid # 1.1 LATIN SMALL LETTER E WITH DOUBLE GRAVE
+0206 ; mapped ; 0207 # 1.1 LATIN CAPITAL LETTER E WITH INVERTED BREVE
+0207 ; valid # 1.1 LATIN SMALL LETTER E WITH INVERTED BREVE
+0208 ; mapped ; 0209 # 1.1 LATIN CAPITAL LETTER I WITH DOUBLE GRAVE
+0209 ; valid # 1.1 LATIN SMALL LETTER I WITH DOUBLE GRAVE
+020A ; mapped ; 020B # 1.1 LATIN CAPITAL LETTER I WITH INVERTED BREVE
+020B ; valid # 1.1 LATIN SMALL LETTER I WITH INVERTED BREVE
+020C ; mapped ; 020D # 1.1 LATIN CAPITAL LETTER O WITH DOUBLE GRAVE
+020D ; valid # 1.1 LATIN SMALL LETTER O WITH DOUBLE GRAVE
+020E ; mapped ; 020F # 1.1 LATIN CAPITAL LETTER O WITH INVERTED BREVE
+020F ; valid # 1.1 LATIN SMALL LETTER O WITH INVERTED BREVE
+0210 ; mapped ; 0211 # 1.1 LATIN CAPITAL LETTER R WITH DOUBLE GRAVE
+0211 ; valid # 1.1 LATIN SMALL LETTER R WITH DOUBLE GRAVE
+0212 ; mapped ; 0213 # 1.1 LATIN CAPITAL LETTER R WITH INVERTED BREVE
+0213 ; valid # 1.1 LATIN SMALL LETTER R WITH INVERTED BREVE
+0214 ; mapped ; 0215 # 1.1 LATIN CAPITAL LETTER U WITH DOUBLE GRAVE
+0215 ; valid # 1.1 LATIN SMALL LETTER U WITH DOUBLE GRAVE
+0216 ; mapped ; 0217 # 1.1 LATIN CAPITAL LETTER U WITH INVERTED BREVE
+0217 ; valid # 1.1 LATIN SMALL LETTER U WITH INVERTED BREVE
+0218 ; mapped ; 0219 # 3.0 LATIN CAPITAL LETTER S WITH COMMA BELOW
+0219 ; valid # 3.0 LATIN SMALL LETTER S WITH COMMA BELOW
+021A ; mapped ; 021B # 3.0 LATIN CAPITAL LETTER T WITH COMMA BELOW
+021B ; valid # 3.0 LATIN SMALL LETTER T WITH COMMA BELOW
+021C ; mapped ; 021D # 3.0 LATIN CAPITAL LETTER YOGH
+021D ; valid # 3.0 LATIN SMALL LETTER YOGH
+021E ; mapped ; 021F # 3.0 LATIN CAPITAL LETTER H WITH CARON
+021F ; valid # 3.0 LATIN SMALL LETTER H WITH CARON
+0220 ; mapped ; 019E # 3.2 LATIN CAPITAL LETTER N WITH LONG RIGHT LEG
+0221 ; valid # 4.0 LATIN SMALL LETTER D WITH CURL
+0222 ; mapped ; 0223 # 3.0 LATIN CAPITAL LETTER OU
+0223 ; valid # 3.0 LATIN SMALL LETTER OU
+0224 ; mapped ; 0225 # 3.0 LATIN CAPITAL LETTER Z WITH HOOK
+0225 ; valid # 3.0 LATIN SMALL LETTER Z WITH HOOK
+0226 ; mapped ; 0227 # 3.0 LATIN CAPITAL LETTER A WITH DOT ABOVE
+0227 ; valid # 3.0 LATIN SMALL LETTER A WITH DOT ABOVE
+0228 ; mapped ; 0229 # 3.0 LATIN CAPITAL LETTER E WITH CEDILLA
+0229 ; valid # 3.0 LATIN SMALL LETTER E WITH CEDILLA
+022A ; mapped ; 022B # 3.0 LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON
+022B ; valid # 3.0 LATIN SMALL LETTER O WITH DIAERESIS AND MACRON
+022C ; mapped ; 022D # 3.0 LATIN CAPITAL LETTER O WITH TILDE AND MACRON
+022D ; valid # 3.0 LATIN SMALL LETTER O WITH TILDE AND MACRON
+022E ; mapped ; 022F # 3.0 LATIN CAPITAL LETTER O WITH DOT ABOVE
+022F ; valid # 3.0 LATIN SMALL LETTER O WITH DOT ABOVE
+0230 ; mapped ; 0231 # 3.0 LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON
+0231 ; valid # 3.0 LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON
+0232 ; mapped ; 0233 # 3.0 LATIN CAPITAL LETTER Y WITH MACRON
+0233 ; valid # 3.0 LATIN SMALL LETTER Y WITH MACRON
+0234..0236 ; valid # 4.0 LATIN SMALL LETTER L WITH CURL..LATIN SMALL LETTER T WITH CURL
+0237..0239 ; valid # 4.1 LATIN SMALL LETTER DOTLESS J..LATIN SMALL LETTER QP DIGRAPH
+023A ; mapped ; 2C65 # 4.1 LATIN CAPITAL LETTER A WITH STROKE
+023B ; mapped ; 023C # 4.1 LATIN CAPITAL LETTER C WITH STROKE
+023C ; valid # 4.1 LATIN SMALL LETTER C WITH STROKE
+023D ; mapped ; 019A # 4.1 LATIN CAPITAL LETTER L WITH BAR
+023E ; mapped ; 2C66 # 4.1 LATIN CAPITAL LETTER T WITH DIAGONAL STROKE
+023F..0240 ; valid # 4.1 LATIN SMALL LETTER S WITH SWASH TAIL..LATIN SMALL LETTER Z WITH SWASH TAIL
+0241 ; mapped ; 0242 # 4.1 LATIN CAPITAL LETTER GLOTTAL STOP
+0242 ; valid # 5.0 LATIN SMALL LETTER GLOTTAL STOP
+0243 ; mapped ; 0180 # 5.0 LATIN CAPITAL LETTER B WITH STROKE
+0244 ; mapped ; 0289 # 5.0 LATIN CAPITAL LETTER U BAR
+0245 ; mapped ; 028C # 5.0 LATIN CAPITAL LETTER TURNED V
+0246 ; mapped ; 0247 # 5.0 LATIN CAPITAL LETTER E WITH STROKE
+0247 ; valid # 5.0 LATIN SMALL LETTER E WITH STROKE
+0248 ; mapped ; 0249 # 5.0 LATIN CAPITAL LETTER J WITH STROKE
+0249 ; valid # 5.0 LATIN SMALL LETTER J WITH STROKE
+024A ; mapped ; 024B # 5.0 LATIN CAPITAL LETTER SMALL Q WITH HOOK TAIL
+024B ; valid # 5.0 LATIN SMALL LETTER Q WITH HOOK TAIL
+024C ; mapped ; 024D # 5.0 LATIN CAPITAL LETTER R WITH STROKE
+024D ; valid # 5.0 LATIN SMALL LETTER R WITH STROKE
+024E ; mapped ; 024F # 5.0 LATIN CAPITAL LETTER Y WITH STROKE
+024F ; valid # 5.0 LATIN SMALL LETTER Y WITH STROKE
+0250..02A8 ; valid # 1.1 LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER TC DIGRAPH WITH CURL
+02A9..02AD ; valid # 3.0 LATIN SMALL LETTER FENG DIGRAPH..LATIN LETTER BIDENTAL PERCUSSIVE
+02AE..02AF ; valid # 4.0 LATIN SMALL LETTER TURNED H WITH FISHHOOK..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0 ; mapped ; 0068 # 1.1 MODIFIER LETTER SMALL H
+02B1 ; mapped ; 0266 # 1.1 MODIFIER LETTER SMALL H WITH HOOK
+02B2 ; mapped ; 006A # 1.1 MODIFIER LETTER SMALL J
+02B3 ; mapped ; 0072 # 1.1 MODIFIER LETTER SMALL R
+02B4 ; mapped ; 0279 # 1.1 MODIFIER LETTER SMALL TURNED R
+02B5 ; mapped ; 027B # 1.1 MODIFIER LETTER SMALL TURNED R WITH HOOK
+02B6 ; mapped ; 0281 # 1.1 MODIFIER LETTER SMALL CAPITAL INVERTED R
+02B7 ; mapped ; 0077 # 1.1 MODIFIER LETTER SMALL W
+02B8 ; mapped ; 0079 # 1.1 MODIFIER LETTER SMALL Y
+02B9..02C1 ; valid # 1.1 MODIFIER LETTER PRIME..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5 ; valid ; ; NV8 # 1.1 MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6..02D1 ; valid # 1.1 MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7 ; valid ; ; NV8 # 1.1 MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02D8 ; disallowed_STD3_mapped ; 0020 0306 # 1.1 BREVE
+02D9 ; disallowed_STD3_mapped ; 0020 0307 # 1.1 DOT ABOVE
+02DA ; disallowed_STD3_mapped ; 0020 030A # 1.1 RING ABOVE
+02DB ; disallowed_STD3_mapped ; 0020 0328 # 1.1 OGONEK
+02DC ; disallowed_STD3_mapped ; 0020 0303 # 1.1 SMALL TILDE
+02DD ; disallowed_STD3_mapped ; 0020 030B # 1.1 DOUBLE ACUTE ACCENT
+02DE ; valid ; ; NV8 # 1.1 MODIFIER LETTER RHOTIC HOOK
+02DF ; valid ; ; NV8 # 3.0 MODIFIER LETTER CROSS ACCENT
+02E0 ; mapped ; 0263 # 1.1 MODIFIER LETTER SMALL GAMMA
+02E1 ; mapped ; 006C # 1.1 MODIFIER LETTER SMALL L
+02E2 ; mapped ; 0073 # 1.1 MODIFIER LETTER SMALL S
+02E3 ; mapped ; 0078 # 1.1 MODIFIER LETTER SMALL X
+02E4 ; mapped ; 0295 # 1.1 MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02E9 ; valid ; ; NV8 # 1.1 MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER EXTRA-LOW TONE BAR
+02EA..02EB ; valid ; ; NV8 # 3.0 MODIFIER LETTER YIN DEPARTING TONE MARK..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; valid # 3.0 MODIFIER LETTER VOICING
+02ED ; valid ; ; NV8 # 3.0 MODIFIER LETTER UNASPIRATED
+02EE ; valid # 3.0 MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF ; valid ; ; NV8 # 4.0 MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300..033F ; valid # 1.1 COMBINING GRAVE ACCENT..COMBINING DOUBLE OVERLINE
+0340 ; mapped ; 0300 # 1.1 COMBINING GRAVE TONE MARK
+0341 ; mapped ; 0301 # 1.1 COMBINING ACUTE TONE MARK
+0342 ; valid # 1.1 COMBINING GREEK PERISPOMENI
+0343 ; mapped ; 0313 # 1.1 COMBINING GREEK KORONIS
+0344 ; mapped ; 0308 0301 # 1.1 COMBINING GREEK DIALYTIKA TONOS
+0345 ; mapped ; 03B9 # 1.1 COMBINING GREEK YPOGEGRAMMENI
+0346..034E ; valid # 3.0 COMBINING BRIDGE ABOVE..COMBINING UPWARDS ARROW BELOW
+034F ; ignored # 3.2 COMBINING GRAPHEME JOINER
+0350..0357 ; valid # 4.0 COMBINING RIGHT ARROWHEAD ABOVE..COMBINING RIGHT HALF RING ABOVE
+0358..035C ; valid # 4.1 COMBINING DOT ABOVE RIGHT..COMBINING DOUBLE BREVE BELOW
+035D..035F ; valid # 4.0 COMBINING DOUBLE BREVE..COMBINING DOUBLE MACRON BELOW
+0360..0361 ; valid # 1.1 COMBINING DOUBLE TILDE..COMBINING DOUBLE INVERTED BREVE
+0362 ; valid # 3.0 COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+0363..036F ; valid # 3.2 COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
+0370 ; mapped ; 0371 # 5.1 GREEK CAPITAL LETTER HETA
+0371 ; valid # 5.1 GREEK SMALL LETTER HETA
+0372 ; mapped ; 0373 # 5.1 GREEK CAPITAL LETTER ARCHAIC SAMPI
+0373 ; valid # 5.1 GREEK SMALL LETTER ARCHAIC SAMPI
+0374 ; mapped ; 02B9 # 1.1 GREEK NUMERAL SIGN
+0375 ; valid # 1.1 GREEK LOWER NUMERAL SIGN
+0376 ; mapped ; 0377 # 5.1 GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA
+0377 ; valid # 5.1 GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+0378..0379 ; disallowed # NA <reserved-0378>..<reserved-0379>
+037A ; disallowed_STD3_mapped ; 0020 03B9 # 1.1 GREEK YPOGEGRAMMENI
+037B..037D ; valid # 5.0 GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E ; disallowed_STD3_mapped ; 003B # 1.1 GREEK QUESTION MARK
+037F ; mapped ; 03F3 # 7.0 GREEK CAPITAL LETTER YOT
+0380..0383 ; disallowed # NA <reserved-0380>..<reserved-0383>
+0384 ; disallowed_STD3_mapped ; 0020 0301 # 1.1 GREEK TONOS
+0385 ; disallowed_STD3_mapped ; 0020 0308 0301 #1.1 GREEK DIALYTIKA TONOS
+0386 ; mapped ; 03AC # 1.1 GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387 ; mapped ; 00B7 # 1.1 GREEK ANO TELEIA
+0388 ; mapped ; 03AD # 1.1 GREEK CAPITAL LETTER EPSILON WITH TONOS
+0389 ; mapped ; 03AE # 1.1 GREEK CAPITAL LETTER ETA WITH TONOS
+038A ; mapped ; 03AF # 1.1 GREEK CAPITAL LETTER IOTA WITH TONOS
+038B ; disallowed # NA <reserved-038B>
+038C ; mapped ; 03CC # 1.1 GREEK CAPITAL LETTER OMICRON WITH TONOS
+038D ; disallowed # NA <reserved-038D>
+038E ; mapped ; 03CD # 1.1 GREEK CAPITAL LETTER UPSILON WITH TONOS
+038F ; mapped ; 03CE # 1.1 GREEK CAPITAL LETTER OMEGA WITH TONOS
+0390 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+0391 ; mapped ; 03B1 # 1.1 GREEK CAPITAL LETTER ALPHA
+0392 ; mapped ; 03B2 # 1.1 GREEK CAPITAL LETTER BETA
+0393 ; mapped ; 03B3 # 1.1 GREEK CAPITAL LETTER GAMMA
+0394 ; mapped ; 03B4 # 1.1 GREEK CAPITAL LETTER DELTA
+0395 ; mapped ; 03B5 # 1.1 GREEK CAPITAL LETTER EPSILON
+0396 ; mapped ; 03B6 # 1.1 GREEK CAPITAL LETTER ZETA
+0397 ; mapped ; 03B7 # 1.1 GREEK CAPITAL LETTER ETA
+0398 ; mapped ; 03B8 # 1.1 GREEK CAPITAL LETTER THETA
+0399 ; mapped ; 03B9 # 1.1 GREEK CAPITAL LETTER IOTA
+039A ; mapped ; 03BA # 1.1 GREEK CAPITAL LETTER KAPPA
+039B ; mapped ; 03BB # 1.1 GREEK CAPITAL LETTER LAMDA
+039C ; mapped ; 03BC # 1.1 GREEK CAPITAL LETTER MU
+039D ; mapped ; 03BD # 1.1 GREEK CAPITAL LETTER NU
+039E ; mapped ; 03BE # 1.1 GREEK CAPITAL LETTER XI
+039F ; mapped ; 03BF # 1.1 GREEK CAPITAL LETTER OMICRON
+03A0 ; mapped ; 03C0 # 1.1 GREEK CAPITAL LETTER PI
+03A1 ; mapped ; 03C1 # 1.1 GREEK CAPITAL LETTER RHO
+03A2 ; disallowed # NA <reserved-03A2>
+03A3 ; mapped ; 03C3 # 1.1 GREEK CAPITAL LETTER SIGMA
+03A4 ; mapped ; 03C4 # 1.1 GREEK CAPITAL LETTER TAU
+03A5 ; mapped ; 03C5 # 1.1 GREEK CAPITAL LETTER UPSILON
+03A6 ; mapped ; 03C6 # 1.1 GREEK CAPITAL LETTER PHI
+03A7 ; mapped ; 03C7 # 1.1 GREEK CAPITAL LETTER CHI
+03A8 ; mapped ; 03C8 # 1.1 GREEK CAPITAL LETTER PSI
+03A9 ; mapped ; 03C9 # 1.1 GREEK CAPITAL LETTER OMEGA
+03AA ; mapped ; 03CA # 1.1 GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+03AB ; mapped ; 03CB # 1.1 GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+03AC..03C1 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH TONOS..GREEK SMALL LETTER RHO
+03C2 ; deviation ; 03C3 # 1.1 GREEK SMALL LETTER FINAL SIGMA
+03C3..03CE ; valid # 1.1 GREEK SMALL LETTER SIGMA..GREEK SMALL LETTER OMEGA WITH TONOS
+03CF ; mapped ; 03D7 # 5.1 GREEK CAPITAL KAI SYMBOL
+03D0 ; mapped ; 03B2 # 1.1 GREEK BETA SYMBOL
+03D1 ; mapped ; 03B8 # 1.1 GREEK THETA SYMBOL
+03D2 ; mapped ; 03C5 # 1.1 GREEK UPSILON WITH HOOK SYMBOL
+03D3 ; mapped ; 03CD # 1.1 GREEK UPSILON WITH ACUTE AND HOOK SYMBOL
+03D4 ; mapped ; 03CB # 1.1 GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL
+03D5 ; mapped ; 03C6 # 1.1 GREEK PHI SYMBOL
+03D6 ; mapped ; 03C0 # 1.1 GREEK PI SYMBOL
+03D7 ; valid # 3.0 GREEK KAI SYMBOL
+03D8 ; mapped ; 03D9 # 3.2 GREEK LETTER ARCHAIC KOPPA
+03D9 ; valid # 3.2 GREEK SMALL LETTER ARCHAIC KOPPA
+03DA ; mapped ; 03DB # 1.1 GREEK LETTER STIGMA
+03DB ; valid # 3.0 GREEK SMALL LETTER STIGMA
+03DC ; mapped ; 03DD # 1.1 GREEK LETTER DIGAMMA
+03DD ; valid # 3.0 GREEK SMALL LETTER DIGAMMA
+03DE ; mapped ; 03DF # 1.1 GREEK LETTER KOPPA
+03DF ; valid # 3.0 GREEK SMALL LETTER KOPPA
+03E0 ; mapped ; 03E1 # 1.1 GREEK LETTER SAMPI
+03E1 ; valid # 3.0 GREEK SMALL LETTER SAMPI
+03E2 ; mapped ; 03E3 # 1.1 COPTIC CAPITAL LETTER SHEI
+03E3 ; valid # 1.1 COPTIC SMALL LETTER SHEI
+03E4 ; mapped ; 03E5 # 1.1 COPTIC CAPITAL LETTER FEI
+03E5 ; valid # 1.1 COPTIC SMALL LETTER FEI
+03E6 ; mapped ; 03E7 # 1.1 COPTIC CAPITAL LETTER KHEI
+03E7 ; valid # 1.1 COPTIC SMALL LETTER KHEI
+03E8 ; mapped ; 03E9 # 1.1 COPTIC CAPITAL LETTER HORI
+03E9 ; valid # 1.1 COPTIC SMALL LETTER HORI
+03EA ; mapped ; 03EB # 1.1 COPTIC CAPITAL LETTER GANGIA
+03EB ; valid # 1.1 COPTIC SMALL LETTER GANGIA
+03EC ; mapped ; 03ED # 1.1 COPTIC CAPITAL LETTER SHIMA
+03ED ; valid # 1.1 COPTIC SMALL LETTER SHIMA
+03EE ; mapped ; 03EF # 1.1 COPTIC CAPITAL LETTER DEI
+03EF ; valid # 1.1 COPTIC SMALL LETTER DEI
+03F0 ; mapped ; 03BA # 1.1 GREEK KAPPA SYMBOL
+03F1 ; mapped ; 03C1 # 1.1 GREEK RHO SYMBOL
+03F2 ; mapped ; 03C3 # 1.1 GREEK LUNATE SIGMA SYMBOL
+03F3 ; valid # 1.1 GREEK LETTER YOT
+03F4 ; mapped ; 03B8 # 3.1 GREEK CAPITAL THETA SYMBOL
+03F5 ; mapped ; 03B5 # 3.1 GREEK LUNATE EPSILON SYMBOL
+03F6 ; valid ; ; NV8 # 3.2 GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7 ; mapped ; 03F8 # 4.0 GREEK CAPITAL LETTER SHO
+03F8 ; valid # 4.0 GREEK SMALL LETTER SHO
+03F9 ; mapped ; 03C3 # 4.0 GREEK CAPITAL LUNATE SIGMA SYMBOL
+03FA ; mapped ; 03FB # 4.0 GREEK CAPITAL LETTER SAN
+03FB ; valid # 4.0 GREEK SMALL LETTER SAN
+03FC ; valid # 4.1 GREEK RHO WITH STROKE SYMBOL
+03FD ; mapped ; 037B # 4.1 GREEK CAPITAL REVERSED LUNATE SIGMA SYMBOL
+03FE ; mapped ; 037C # 4.1 GREEK CAPITAL DOTTED LUNATE SIGMA SYMBOL
+03FF ; mapped ; 037D # 4.1 GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400 ; mapped ; 0450 # 3.0 CYRILLIC CAPITAL LETTER IE WITH GRAVE
+0401 ; mapped ; 0451 # 1.1 CYRILLIC CAPITAL LETTER IO
+0402 ; mapped ; 0452 # 1.1 CYRILLIC CAPITAL LETTER DJE
+0403 ; mapped ; 0453 # 1.1 CYRILLIC CAPITAL LETTER GJE
+0404 ; mapped ; 0454 # 1.1 CYRILLIC CAPITAL LETTER UKRAINIAN IE
+0405 ; mapped ; 0455 # 1.1 CYRILLIC CAPITAL LETTER DZE
+0406 ; mapped ; 0456 # 1.1 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+0407 ; mapped ; 0457 # 1.1 CYRILLIC CAPITAL LETTER YI
+0408 ; mapped ; 0458 # 1.1 CYRILLIC CAPITAL LETTER JE
+0409 ; mapped ; 0459 # 1.1 CYRILLIC CAPITAL LETTER LJE
+040A ; mapped ; 045A # 1.1 CYRILLIC CAPITAL LETTER NJE
+040B ; mapped ; 045B # 1.1 CYRILLIC CAPITAL LETTER TSHE
+040C ; mapped ; 045C # 1.1 CYRILLIC CAPITAL LETTER KJE
+040D ; mapped ; 045D # 3.0 CYRILLIC CAPITAL LETTER I WITH GRAVE
+040E ; mapped ; 045E # 1.1 CYRILLIC CAPITAL LETTER SHORT U
+040F ; mapped ; 045F # 1.1 CYRILLIC CAPITAL LETTER DZHE
+0410 ; mapped ; 0430 # 1.1 CYRILLIC CAPITAL LETTER A
+0411 ; mapped ; 0431 # 1.1 CYRILLIC CAPITAL LETTER BE
+0412 ; mapped ; 0432 # 1.1 CYRILLIC CAPITAL LETTER VE
+0413 ; mapped ; 0433 # 1.1 CYRILLIC CAPITAL LETTER GHE
+0414 ; mapped ; 0434 # 1.1 CYRILLIC CAPITAL LETTER DE
+0415 ; mapped ; 0435 # 1.1 CYRILLIC CAPITAL LETTER IE
+0416 ; mapped ; 0436 # 1.1 CYRILLIC CAPITAL LETTER ZHE
+0417 ; mapped ; 0437 # 1.1 CYRILLIC CAPITAL LETTER ZE
+0418 ; mapped ; 0438 # 1.1 CYRILLIC CAPITAL LETTER I
+0419 ; mapped ; 0439 # 1.1 CYRILLIC CAPITAL LETTER SHORT I
+041A ; mapped ; 043A # 1.1 CYRILLIC CAPITAL LETTER KA
+041B ; mapped ; 043B # 1.1 CYRILLIC CAPITAL LETTER EL
+041C ; mapped ; 043C # 1.1 CYRILLIC CAPITAL LETTER EM
+041D ; mapped ; 043D # 1.1 CYRILLIC CAPITAL LETTER EN
+041E ; mapped ; 043E # 1.1 CYRILLIC CAPITAL LETTER O
+041F ; mapped ; 043F # 1.1 CYRILLIC CAPITAL LETTER PE
+0420 ; mapped ; 0440 # 1.1 CYRILLIC CAPITAL LETTER ER
+0421 ; mapped ; 0441 # 1.1 CYRILLIC CAPITAL LETTER ES
+0422 ; mapped ; 0442 # 1.1 CYRILLIC CAPITAL LETTER TE
+0423 ; mapped ; 0443 # 1.1 CYRILLIC CAPITAL LETTER U
+0424 ; mapped ; 0444 # 1.1 CYRILLIC CAPITAL LETTER EF
+0425 ; mapped ; 0445 # 1.1 CYRILLIC CAPITAL LETTER HA
+0426 ; mapped ; 0446 # 1.1 CYRILLIC CAPITAL LETTER TSE
+0427 ; mapped ; 0447 # 1.1 CYRILLIC CAPITAL LETTER CHE
+0428 ; mapped ; 0448 # 1.1 CYRILLIC CAPITAL LETTER SHA
+0429 ; mapped ; 0449 # 1.1 CYRILLIC CAPITAL LETTER SHCHA
+042A ; mapped ; 044A # 1.1 CYRILLIC CAPITAL LETTER HARD SIGN
+042B ; mapped ; 044B # 1.1 CYRILLIC CAPITAL LETTER YERU
+042C ; mapped ; 044C # 1.1 CYRILLIC CAPITAL LETTER SOFT SIGN
+042D ; mapped ; 044D # 1.1 CYRILLIC CAPITAL LETTER E
+042E ; mapped ; 044E # 1.1 CYRILLIC CAPITAL LETTER YU
+042F ; mapped ; 044F # 1.1 CYRILLIC CAPITAL LETTER YA
+0430..044F ; valid # 1.1 CYRILLIC SMALL LETTER A..CYRILLIC SMALL LETTER YA
+0450 ; valid # 3.0 CYRILLIC SMALL LETTER IE WITH GRAVE
+0451..045C ; valid # 1.1 CYRILLIC SMALL LETTER IO..CYRILLIC SMALL LETTER KJE
+045D ; valid # 3.0 CYRILLIC SMALL LETTER I WITH GRAVE
+045E..045F ; valid # 1.1 CYRILLIC SMALL LETTER SHORT U..CYRILLIC SMALL LETTER DZHE
+0460 ; mapped ; 0461 # 1.1 CYRILLIC CAPITAL LETTER OMEGA
+0461 ; valid # 1.1 CYRILLIC SMALL LETTER OMEGA
+0462 ; mapped ; 0463 # 1.1 CYRILLIC CAPITAL LETTER YAT
+0463 ; valid # 1.1 CYRILLIC SMALL LETTER YAT
+0464 ; mapped ; 0465 # 1.1 CYRILLIC CAPITAL LETTER IOTIFIED E
+0465 ; valid # 1.1 CYRILLIC SMALL LETTER IOTIFIED E
+0466 ; mapped ; 0467 # 1.1 CYRILLIC CAPITAL LETTER LITTLE YUS
+0467 ; valid # 1.1 CYRILLIC SMALL LETTER LITTLE YUS
+0468 ; mapped ; 0469 # 1.1 CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS
+0469 ; valid # 1.1 CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS
+046A ; mapped ; 046B # 1.1 CYRILLIC CAPITAL LETTER BIG YUS
+046B ; valid # 1.1 CYRILLIC SMALL LETTER BIG YUS
+046C ; mapped ; 046D # 1.1 CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS
+046D ; valid # 1.1 CYRILLIC SMALL LETTER IOTIFIED BIG YUS
+046E ; mapped ; 046F # 1.1 CYRILLIC CAPITAL LETTER KSI
+046F ; valid # 1.1 CYRILLIC SMALL LETTER KSI
+0470 ; mapped ; 0471 # 1.1 CYRILLIC CAPITAL LETTER PSI
+0471 ; valid # 1.1 CYRILLIC SMALL LETTER PSI
+0472 ; mapped ; 0473 # 1.1 CYRILLIC CAPITAL LETTER FITA
+0473 ; valid # 1.1 CYRILLIC SMALL LETTER FITA
+0474 ; mapped ; 0475 # 1.1 CYRILLIC CAPITAL LETTER IZHITSA
+0475 ; valid # 1.1 CYRILLIC SMALL LETTER IZHITSA
+0476 ; mapped ; 0477 # 1.1 CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0477 ; valid # 1.1 CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT
+0478 ; mapped ; 0479 # 1.1 CYRILLIC CAPITAL LETTER UK
+0479 ; valid # 1.1 CYRILLIC SMALL LETTER UK
+047A ; mapped ; 047B # 1.1 CYRILLIC CAPITAL LETTER ROUND OMEGA
+047B ; valid # 1.1 CYRILLIC SMALL LETTER ROUND OMEGA
+047C ; mapped ; 047D # 1.1 CYRILLIC CAPITAL LETTER OMEGA WITH TITLO
+047D ; valid # 1.1 CYRILLIC SMALL LETTER OMEGA WITH TITLO
+047E ; mapped ; 047F # 1.1 CYRILLIC CAPITAL LETTER OT
+047F ; valid # 1.1 CYRILLIC SMALL LETTER OT
+0480 ; mapped ; 0481 # 1.1 CYRILLIC CAPITAL LETTER KOPPA
+0481 ; valid # 1.1 CYRILLIC SMALL LETTER KOPPA
+0482 ; valid ; ; NV8 # 1.1 CYRILLIC THOUSANDS SIGN
+0483..0486 ; valid # 1.1 COMBINING CYRILLIC TITLO..COMBINING CYRILLIC PSILI PNEUMATA
+0487 ; valid # 5.1 COMBINING CYRILLIC POKRYTIE
+0488..0489 ; valid ; ; NV8 # 3.0 COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A ; mapped ; 048B # 3.2 CYRILLIC CAPITAL LETTER SHORT I WITH TAIL
+048B ; valid # 3.2 CYRILLIC SMALL LETTER SHORT I WITH TAIL
+048C ; mapped ; 048D # 3.0 CYRILLIC CAPITAL LETTER SEMISOFT SIGN
+048D ; valid # 3.0 CYRILLIC SMALL LETTER SEMISOFT SIGN
+048E ; mapped ; 048F # 3.0 CYRILLIC CAPITAL LETTER ER WITH TICK
+048F ; valid # 3.0 CYRILLIC SMALL LETTER ER WITH TICK
+0490 ; mapped ; 0491 # 1.1 CYRILLIC CAPITAL LETTER GHE WITH UPTURN
+0491 ; valid # 1.1 CYRILLIC SMALL LETTER GHE WITH UPTURN
+0492 ; mapped ; 0493 # 1.1 CYRILLIC CAPITAL LETTER GHE WITH STROKE
+0493 ; valid # 1.1 CYRILLIC SMALL LETTER GHE WITH STROKE
+0494 ; mapped ; 0495 # 1.1 CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK
+0495 ; valid # 1.1 CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK
+0496 ; mapped ; 0497 # 1.1 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER
+0497 ; valid # 1.1 CYRILLIC SMALL LETTER ZHE WITH DESCENDER
+0498 ; mapped ; 0499 # 1.1 CYRILLIC CAPITAL LETTER ZE WITH DESCENDER
+0499 ; valid # 1.1 CYRILLIC SMALL LETTER ZE WITH DESCENDER
+049A ; mapped ; 049B # 1.1 CYRILLIC CAPITAL LETTER KA WITH DESCENDER
+049B ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH DESCENDER
+049C ; mapped ; 049D # 1.1 CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE
+049D ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE
+049E ; mapped ; 049F # 1.1 CYRILLIC CAPITAL LETTER KA WITH STROKE
+049F ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH STROKE
+04A0 ; mapped ; 04A1 # 1.1 CYRILLIC CAPITAL LETTER BASHKIR KA
+04A1 ; valid # 1.1 CYRILLIC SMALL LETTER BASHKIR KA
+04A2 ; mapped ; 04A3 # 1.1 CYRILLIC CAPITAL LETTER EN WITH DESCENDER
+04A3 ; valid # 1.1 CYRILLIC SMALL LETTER EN WITH DESCENDER
+04A4 ; mapped ; 04A5 # 1.1 CYRILLIC CAPITAL LIGATURE EN GHE
+04A5 ; valid # 1.1 CYRILLIC SMALL LIGATURE EN GHE
+04A6 ; mapped ; 04A7 # 1.1 CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK
+04A7 ; valid # 1.1 CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK
+04A8 ; mapped ; 04A9 # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN HA
+04A9 ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN HA
+04AA ; mapped ; 04AB # 1.1 CYRILLIC CAPITAL LETTER ES WITH DESCENDER
+04AB ; valid # 1.1 CYRILLIC SMALL LETTER ES WITH DESCENDER
+04AC ; mapped ; 04AD # 1.1 CYRILLIC CAPITAL LETTER TE WITH DESCENDER
+04AD ; valid # 1.1 CYRILLIC SMALL LETTER TE WITH DESCENDER
+04AE ; mapped ; 04AF # 1.1 CYRILLIC CAPITAL LETTER STRAIGHT U
+04AF ; valid # 1.1 CYRILLIC SMALL LETTER STRAIGHT U
+04B0 ; mapped ; 04B1 # 1.1 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE
+04B1 ; valid # 1.1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE
+04B2 ; mapped ; 04B3 # 1.1 CYRILLIC CAPITAL LETTER HA WITH DESCENDER
+04B3 ; valid # 1.1 CYRILLIC SMALL LETTER HA WITH DESCENDER
+04B4 ; mapped ; 04B5 # 1.1 CYRILLIC CAPITAL LIGATURE TE TSE
+04B5 ; valid # 1.1 CYRILLIC SMALL LIGATURE TE TSE
+04B6 ; mapped ; 04B7 # 1.1 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER
+04B7 ; valid # 1.1 CYRILLIC SMALL LETTER CHE WITH DESCENDER
+04B8 ; mapped ; 04B9 # 1.1 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE
+04B9 ; valid # 1.1 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE
+04BA ; mapped ; 04BB # 1.1 CYRILLIC CAPITAL LETTER SHHA
+04BB ; valid # 1.1 CYRILLIC SMALL LETTER SHHA
+04BC ; mapped ; 04BD # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN CHE
+04BD ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN CHE
+04BE ; mapped ; 04BF # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER
+04BF ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER
+04C0 ; disallowed # 1.1 CYRILLIC LETTER PALOCHKA
+04C1 ; mapped ; 04C2 # 1.1 CYRILLIC CAPITAL LETTER ZHE WITH BREVE
+04C2 ; valid # 1.1 CYRILLIC SMALL LETTER ZHE WITH BREVE
+04C3 ; mapped ; 04C4 # 1.1 CYRILLIC CAPITAL LETTER KA WITH HOOK
+04C4 ; valid # 1.1 CYRILLIC SMALL LETTER KA WITH HOOK
+04C5 ; mapped ; 04C6 # 3.2 CYRILLIC CAPITAL LETTER EL WITH TAIL
+04C6 ; valid # 3.2 CYRILLIC SMALL LETTER EL WITH TAIL
+04C7 ; mapped ; 04C8 # 1.1 CYRILLIC CAPITAL LETTER EN WITH HOOK
+04C8 ; valid # 1.1 CYRILLIC SMALL LETTER EN WITH HOOK
+04C9 ; mapped ; 04CA # 3.2 CYRILLIC CAPITAL LETTER EN WITH TAIL
+04CA ; valid # 3.2 CYRILLIC SMALL LETTER EN WITH TAIL
+04CB ; mapped ; 04CC # 1.1 CYRILLIC CAPITAL LETTER KHAKASSIAN CHE
+04CC ; valid # 1.1 CYRILLIC SMALL LETTER KHAKASSIAN CHE
+04CD ; mapped ; 04CE # 3.2 CYRILLIC CAPITAL LETTER EM WITH TAIL
+04CE ; valid # 3.2 CYRILLIC SMALL LETTER EM WITH TAIL
+04CF ; valid # 5.0 CYRILLIC SMALL LETTER PALOCHKA
+04D0 ; mapped ; 04D1 # 1.1 CYRILLIC CAPITAL LETTER A WITH BREVE
+04D1 ; valid # 1.1 CYRILLIC SMALL LETTER A WITH BREVE
+04D2 ; mapped ; 04D3 # 1.1 CYRILLIC CAPITAL LETTER A WITH DIAERESIS
+04D3 ; valid # 1.1 CYRILLIC SMALL LETTER A WITH DIAERESIS
+04D4 ; mapped ; 04D5 # 1.1 CYRILLIC CAPITAL LIGATURE A IE
+04D5 ; valid # 1.1 CYRILLIC SMALL LIGATURE A IE
+04D6 ; mapped ; 04D7 # 1.1 CYRILLIC CAPITAL LETTER IE WITH BREVE
+04D7 ; valid # 1.1 CYRILLIC SMALL LETTER IE WITH BREVE
+04D8 ; mapped ; 04D9 # 1.1 CYRILLIC CAPITAL LETTER SCHWA
+04D9 ; valid # 1.1 CYRILLIC SMALL LETTER SCHWA
+04DA ; mapped ; 04DB # 1.1 CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS
+04DB ; valid # 1.1 CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS
+04DC ; mapped ; 04DD # 1.1 CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS
+04DD ; valid # 1.1 CYRILLIC SMALL LETTER ZHE WITH DIAERESIS
+04DE ; mapped ; 04DF # 1.1 CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS
+04DF ; valid # 1.1 CYRILLIC SMALL LETTER ZE WITH DIAERESIS
+04E0 ; mapped ; 04E1 # 1.1 CYRILLIC CAPITAL LETTER ABKHASIAN DZE
+04E1 ; valid # 1.1 CYRILLIC SMALL LETTER ABKHASIAN DZE
+04E2 ; mapped ; 04E3 # 1.1 CYRILLIC CAPITAL LETTER I WITH MACRON
+04E3 ; valid # 1.1 CYRILLIC SMALL LETTER I WITH MACRON
+04E4 ; mapped ; 04E5 # 1.1 CYRILLIC CAPITAL LETTER I WITH DIAERESIS
+04E5 ; valid # 1.1 CYRILLIC SMALL LETTER I WITH DIAERESIS
+04E6 ; mapped ; 04E7 # 1.1 CYRILLIC CAPITAL LETTER O WITH DIAERESIS
+04E7 ; valid # 1.1 CYRILLIC SMALL LETTER O WITH DIAERESIS
+04E8 ; mapped ; 04E9 # 1.1 CYRILLIC CAPITAL LETTER BARRED O
+04E9 ; valid # 1.1 CYRILLIC SMALL LETTER BARRED O
+04EA ; mapped ; 04EB # 1.1 CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS
+04EB ; valid # 1.1 CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS
+04EC ; mapped ; 04ED # 3.0 CYRILLIC CAPITAL LETTER E WITH DIAERESIS
+04ED ; valid # 3.0 CYRILLIC SMALL LETTER E WITH DIAERESIS
+04EE ; mapped ; 04EF # 1.1 CYRILLIC CAPITAL LETTER U WITH MACRON
+04EF ; valid # 1.1 CYRILLIC SMALL LETTER U WITH MACRON
+04F0 ; mapped ; 04F1 # 1.1 CYRILLIC CAPITAL LETTER U WITH DIAERESIS
+04F1 ; valid # 1.1 CYRILLIC SMALL LETTER U WITH DIAERESIS
+04F2 ; mapped ; 04F3 # 1.1 CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE
+04F3 ; valid # 1.1 CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE
+04F4 ; mapped ; 04F5 # 1.1 CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS
+04F5 ; valid # 1.1 CYRILLIC SMALL LETTER CHE WITH DIAERESIS
+04F6 ; mapped ; 04F7 # 4.1 CYRILLIC CAPITAL LETTER GHE WITH DESCENDER
+04F7 ; valid # 4.1 CYRILLIC SMALL LETTER GHE WITH DESCENDER
+04F8 ; mapped ; 04F9 # 1.1 CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS
+04F9 ; valid # 1.1 CYRILLIC SMALL LETTER YERU WITH DIAERESIS
+04FA ; mapped ; 04FB # 5.0 CYRILLIC CAPITAL LETTER GHE WITH STROKE AND HOOK
+04FB ; valid # 5.0 CYRILLIC SMALL LETTER GHE WITH STROKE AND HOOK
+04FC ; mapped ; 04FD # 5.0 CYRILLIC CAPITAL LETTER HA WITH HOOK
+04FD ; valid # 5.0 CYRILLIC SMALL LETTER HA WITH HOOK
+04FE ; mapped ; 04FF # 5.0 CYRILLIC CAPITAL LETTER HA WITH STROKE
+04FF ; valid # 5.0 CYRILLIC SMALL LETTER HA WITH STROKE
+0500 ; mapped ; 0501 # 3.2 CYRILLIC CAPITAL LETTER KOMI DE
+0501 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI DE
+0502 ; mapped ; 0503 # 3.2 CYRILLIC CAPITAL LETTER KOMI DJE
+0503 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI DJE
+0504 ; mapped ; 0505 # 3.2 CYRILLIC CAPITAL LETTER KOMI ZJE
+0505 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI ZJE
+0506 ; mapped ; 0507 # 3.2 CYRILLIC CAPITAL LETTER KOMI DZJE
+0507 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI DZJE
+0508 ; mapped ; 0509 # 3.2 CYRILLIC CAPITAL LETTER KOMI LJE
+0509 ; valid # 3.2 CYRILLIC SMALL LETTER KOMI LJE
+050A ; mapped ; 050B # 3.2 CYRILLIC CAPITAL LETTER KOMI NJE
+050B ; valid # 3.2 CYRILLIC SMALL LETTER KOMI NJE
+050C ; mapped ; 050D # 3.2 CYRILLIC CAPITAL LETTER KOMI SJE
+050D ; valid # 3.2 CYRILLIC SMALL LETTER KOMI SJE
+050E ; mapped ; 050F # 3.2 CYRILLIC CAPITAL LETTER KOMI TJE
+050F ; valid # 3.2 CYRILLIC SMALL LETTER KOMI TJE
+0510 ; mapped ; 0511 # 5.0 CYRILLIC CAPITAL LETTER REVERSED ZE
+0511 ; valid # 5.0 CYRILLIC SMALL LETTER REVERSED ZE
+0512 ; mapped ; 0513 # 5.0 CYRILLIC CAPITAL LETTER EL WITH HOOK
+0513 ; valid # 5.0 CYRILLIC SMALL LETTER EL WITH HOOK
+0514 ; mapped ; 0515 # 5.1 CYRILLIC CAPITAL LETTER LHA
+0515 ; valid # 5.1 CYRILLIC SMALL LETTER LHA
+0516 ; mapped ; 0517 # 5.1 CYRILLIC CAPITAL LETTER RHA
+0517 ; valid # 5.1 CYRILLIC SMALL LETTER RHA
+0518 ; mapped ; 0519 # 5.1 CYRILLIC CAPITAL LETTER YAE
+0519 ; valid # 5.1 CYRILLIC SMALL LETTER YAE
+051A ; mapped ; 051B # 5.1 CYRILLIC CAPITAL LETTER QA
+051B ; valid # 5.1 CYRILLIC SMALL LETTER QA
+051C ; mapped ; 051D # 5.1 CYRILLIC CAPITAL LETTER WE
+051D ; valid # 5.1 CYRILLIC SMALL LETTER WE
+051E ; mapped ; 051F # 5.1 CYRILLIC CAPITAL LETTER ALEUT KA
+051F ; valid # 5.1 CYRILLIC SMALL LETTER ALEUT KA
+0520 ; mapped ; 0521 # 5.1 CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK
+0521 ; valid # 5.1 CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+0522 ; mapped ; 0523 # 5.1 CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+0523 ; valid # 5.1 CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
+0524 ; mapped ; 0525 # 5.2 CYRILLIC CAPITAL LETTER PE WITH DESCENDER
+0525 ; valid # 5.2 CYRILLIC SMALL LETTER PE WITH DESCENDER
+0526 ; mapped ; 0527 # 6.0 CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
+0527 ; valid # 6.0 CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+0528 ; mapped ; 0529 # 7.0 CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK
+0529 ; valid # 7.0 CYRILLIC SMALL LETTER EN WITH LEFT HOOK
+052A ; mapped ; 052B # 7.0 CYRILLIC CAPITAL LETTER DZZHE
+052B ; valid # 7.0 CYRILLIC SMALL LETTER DZZHE
+052C ; mapped ; 052D # 7.0 CYRILLIC CAPITAL LETTER DCHE
+052D ; valid # 7.0 CYRILLIC SMALL LETTER DCHE
+052E ; mapped ; 052F # 7.0 CYRILLIC CAPITAL LETTER EL WITH DESCENDER
+052F ; valid # 7.0 CYRILLIC SMALL LETTER EL WITH DESCENDER
+0530 ; disallowed # NA <reserved-0530>
+0531 ; mapped ; 0561 # 1.1 ARMENIAN CAPITAL LETTER AYB
+0532 ; mapped ; 0562 # 1.1 ARMENIAN CAPITAL LETTER BEN
+0533 ; mapped ; 0563 # 1.1 ARMENIAN CAPITAL LETTER GIM
+0534 ; mapped ; 0564 # 1.1 ARMENIAN CAPITAL LETTER DA
+0535 ; mapped ; 0565 # 1.1 ARMENIAN CAPITAL LETTER ECH
+0536 ; mapped ; 0566 # 1.1 ARMENIAN CAPITAL LETTER ZA
+0537 ; mapped ; 0567 # 1.1 ARMENIAN CAPITAL LETTER EH
+0538 ; mapped ; 0568 # 1.1 ARMENIAN CAPITAL LETTER ET
+0539 ; mapped ; 0569 # 1.1 ARMENIAN CAPITAL LETTER TO
+053A ; mapped ; 056A # 1.1 ARMENIAN CAPITAL LETTER ZHE
+053B ; mapped ; 056B # 1.1 ARMENIAN CAPITAL LETTER INI
+053C ; mapped ; 056C # 1.1 ARMENIAN CAPITAL LETTER LIWN
+053D ; mapped ; 056D # 1.1 ARMENIAN CAPITAL LETTER XEH
+053E ; mapped ; 056E # 1.1 ARMENIAN CAPITAL LETTER CA
+053F ; mapped ; 056F # 1.1 ARMENIAN CAPITAL LETTER KEN
+0540 ; mapped ; 0570 # 1.1 ARMENIAN CAPITAL LETTER HO
+0541 ; mapped ; 0571 # 1.1 ARMENIAN CAPITAL LETTER JA
+0542 ; mapped ; 0572 # 1.1 ARMENIAN CAPITAL LETTER GHAD
+0543 ; mapped ; 0573 # 1.1 ARMENIAN CAPITAL LETTER CHEH
+0544 ; mapped ; 0574 # 1.1 ARMENIAN CAPITAL LETTER MEN
+0545 ; mapped ; 0575 # 1.1 ARMENIAN CAPITAL LETTER YI
+0546 ; mapped ; 0576 # 1.1 ARMENIAN CAPITAL LETTER NOW
+0547 ; mapped ; 0577 # 1.1 ARMENIAN CAPITAL LETTER SHA
+0548 ; mapped ; 0578 # 1.1 ARMENIAN CAPITAL LETTER VO
+0549 ; mapped ; 0579 # 1.1 ARMENIAN CAPITAL LETTER CHA
+054A ; mapped ; 057A # 1.1 ARMENIAN CAPITAL LETTER PEH
+054B ; mapped ; 057B # 1.1 ARMENIAN CAPITAL LETTER JHEH
+054C ; mapped ; 057C # 1.1 ARMENIAN CAPITAL LETTER RA
+054D ; mapped ; 057D # 1.1 ARMENIAN CAPITAL LETTER SEH
+054E ; mapped ; 057E # 1.1 ARMENIAN CAPITAL LETTER VEW
+054F ; mapped ; 057F # 1.1 ARMENIAN CAPITAL LETTER TIWN
+0550 ; mapped ; 0580 # 1.1 ARMENIAN CAPITAL LETTER REH
+0551 ; mapped ; 0581 # 1.1 ARMENIAN CAPITAL LETTER CO
+0552 ; mapped ; 0582 # 1.1 ARMENIAN CAPITAL LETTER YIWN
+0553 ; mapped ; 0583 # 1.1 ARMENIAN CAPITAL LETTER PIWR
+0554 ; mapped ; 0584 # 1.1 ARMENIAN CAPITAL LETTER KEH
+0555 ; mapped ; 0585 # 1.1 ARMENIAN CAPITAL LETTER OH
+0556 ; mapped ; 0586 # 1.1 ARMENIAN CAPITAL LETTER FEH
+0557..0558 ; disallowed # NA <reserved-0557>..<reserved-0558>
+0559 ; valid # 1.1 ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F ; valid ; ; NV8 # 1.1 ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0560 ; valid # 11.0 ARMENIAN SMALL LETTER TURNED AYB
+0561..0586 ; valid # 1.1 ARMENIAN SMALL LETTER AYB..ARMENIAN SMALL LETTER FEH
+0587 ; mapped ; 0565 0582 # 1.1 ARMENIAN SMALL LIGATURE ECH YIWN
+0588 ; valid # 11.0 ARMENIAN SMALL LETTER YI WITH STROKE
+0589 ; valid ; ; NV8 # 1.1 ARMENIAN FULL STOP
+058A ; valid ; ; NV8 # 3.0 ARMENIAN HYPHEN
+058B..058C ; disallowed # NA <reserved-058B>..<reserved-058C>
+058D..058E ; valid ; ; NV8 # 7.0 RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F ; valid ; ; NV8 # 6.1 ARMENIAN DRAM SIGN
+0590 ; disallowed # NA <reserved-0590>
+0591..05A1 ; valid # 2.0 HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER
+05A2 ; valid # 4.1 HEBREW ACCENT ATNAH HAFUKH
+05A3..05AF ; valid # 2.0 HEBREW ACCENT MUNAH..HEBREW MARK MASORA CIRCLE
+05B0..05B9 ; valid # 1.1 HEBREW POINT SHEVA..HEBREW POINT HOLAM
+05BA ; valid # 5.0 HEBREW POINT HOLAM HASER FOR VAV
+05BB..05BD ; valid # 1.1 HEBREW POINT QUBUTS..HEBREW POINT METEG
+05BE ; valid ; ; NV8 # 1.1 HEBREW PUNCTUATION MAQAF
+05BF ; valid # 1.1 HEBREW POINT RAFE
+05C0 ; valid ; ; NV8 # 1.1 HEBREW PUNCTUATION PASEQ
+05C1..05C2 ; valid # 1.1 HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3 ; valid ; ; NV8 # 1.1 HEBREW PUNCTUATION SOF PASUQ
+05C4 ; valid # 2.0 HEBREW MARK UPPER DOT
+05C5 ; valid # 4.1 HEBREW MARK LOWER DOT
+05C6 ; valid ; ; NV8 # 4.1 HEBREW PUNCTUATION NUN HAFUKHA
+05C7 ; valid # 4.1 HEBREW POINT QAMATS QATAN
+05C8..05CF ; disallowed # NA <reserved-05C8>..<reserved-05CF>
+05D0..05EA ; valid # 1.1 HEBREW LETTER ALEF..HEBREW LETTER TAV
+05EB..05EE ; disallowed # NA <reserved-05EB>..<reserved-05EE>
+05EF ; valid # 11.0 HEBREW YOD TRIANGLE
+05F0..05F4 ; valid # 1.1 HEBREW LIGATURE YIDDISH DOUBLE VAV..HEBREW PUNCTUATION GERSHAYIM
+05F5..05FF ; disallowed # NA <reserved-05F5>..<reserved-05FF>
+0600..0603 ; disallowed # 4.0 ARABIC NUMBER SIGN..ARABIC SIGN SAFHA
+0604 ; disallowed # 6.1 ARABIC SIGN SAMVAT
+0605 ; disallowed # 7.0 ARABIC NUMBER MARK ABOVE
+0606..060A ; valid ; ; NV8 # 5.1 ARABIC-INDIC CUBE ROOT..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B ; valid ; ; NV8 # 4.1 AFGHANI SIGN
+060C ; valid ; ; NV8 # 1.1 ARABIC COMMA
+060D..060F ; valid ; ; NV8 # 4.0 ARABIC DATE SEPARATOR..ARABIC SIGN MISRA
+0610..0615 ; valid # 4.0 ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL HIGH TAH
+0616..061A ; valid # 5.1 ARABIC SMALL HIGH LIGATURE ALEF WITH LAM WITH YEH..ARABIC SMALL KASRA
+061B ; valid ; ; NV8 # 1.1 ARABIC SEMICOLON
+061C ; disallowed # 6.3 ARABIC LETTER MARK
+061D ; valid ; ; NV8 # 14.0 ARABIC END OF TEXT MARK
+061E ; valid ; ; NV8 # 4.1 ARABIC TRIPLE DOT PUNCTUATION MARK
+061F ; valid ; ; NV8 # 1.1 ARABIC QUESTION MARK
+0620 ; valid # 6.0 ARABIC LETTER KASHMIRI YEH
+0621..063A ; valid # 1.1 ARABIC LETTER HAMZA..ARABIC LETTER GHAIN
+063B..063F ; valid # 5.1 ARABIC LETTER KEHEH WITH TWO DOTS ABOVE..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640 ; valid ; ; NV8 # 1.1 ARABIC TATWEEL
+0641..0652 ; valid # 1.1 ARABIC LETTER FEH..ARABIC SUKUN
+0653..0655 ; valid # 3.0 ARABIC MADDAH ABOVE..ARABIC HAMZA BELOW
+0656..0658 ; valid # 4.0 ARABIC SUBSCRIPT ALEF..ARABIC MARK NOON GHUNNA
+0659..065E ; valid # 4.1 ARABIC ZWARAKAY..ARABIC FATHA WITH TWO DOTS
+065F ; valid # 6.0 ARABIC WAVY HAMZA BELOW
+0660..0669 ; valid # 1.1 ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A..066D ; valid ; ; NV8 # 1.1 ARABIC PERCENT SIGN..ARABIC FIVE POINTED STAR
+066E..066F ; valid # 3.2 ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0670..0674 ; valid # 1.1 ARABIC LETTER SUPERSCRIPT ALEF..ARABIC LETTER HIGH HAMZA
+0675 ; mapped ; 0627 0674 # 1.1 ARABIC LETTER HIGH HAMZA ALEF
+0676 ; mapped ; 0648 0674 # 1.1 ARABIC LETTER HIGH HAMZA WAW
+0677 ; mapped ; 06C7 0674 # 1.1 ARABIC LETTER U WITH HAMZA ABOVE
+0678 ; mapped ; 064A 0674 # 1.1 ARABIC LETTER HIGH HAMZA YEH
+0679..06B7 ; valid # 1.1 ARABIC LETTER TTEH..ARABIC LETTER LAM WITH THREE DOTS ABOVE
+06B8..06B9 ; valid # 3.0 ARABIC LETTER LAM WITH THREE DOTS BELOW..ARABIC LETTER NOON WITH DOT BELOW
+06BA..06BE ; valid # 1.1 ARABIC LETTER NOON GHUNNA..ARABIC LETTER HEH DOACHASHMEE
+06BF ; valid # 3.0 ARABIC LETTER TCHEH WITH DOT ABOVE
+06C0..06CE ; valid # 1.1 ARABIC LETTER HEH WITH YEH ABOVE..ARABIC LETTER YEH WITH SMALL V
+06CF ; valid # 3.0 ARABIC LETTER WAW WITH DOT ABOVE
+06D0..06D3 ; valid # 1.1 ARABIC LETTER E..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4 ; valid ; ; NV8 # 1.1 ARABIC FULL STOP
+06D5..06DC ; valid # 1.1 ARABIC LETTER AE..ARABIC SMALL HIGH SEEN
+06DD ; disallowed # 1.1 ARABIC END OF AYAH
+06DE ; valid ; ; NV8 # 1.1 ARABIC START OF RUB EL HIZB
+06DF..06E8 ; valid # 1.1 ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH NOON
+06E9 ; valid ; ; NV8 # 1.1 ARABIC PLACE OF SAJDAH
+06EA..06ED ; valid # 1.1 ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF ; valid # 4.0 ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9 ; valid # 1.1 EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FE ; valid # 3.0 ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF ; valid # 4.0 ARABIC LETTER HEH WITH INVERTED V
+0700..070D ; valid ; ; NV8 # 3.0 SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070E ; disallowed # NA <reserved-070E>
+070F ; disallowed # 3.0 SYRIAC ABBREVIATION MARK
+0710..072C ; valid # 3.0 SYRIAC LETTER ALAPH..SYRIAC LETTER TAW
+072D..072F ; valid # 4.0 SYRIAC LETTER PERSIAN BHETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A ; valid # 3.0 SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074B..074C ; disallowed # NA <reserved-074B>..<reserved-074C>
+074D..074F ; valid # 4.0 SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0750..076D ; valid # 4.1 ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER SEEN WITH TWO DOTS VERTICALLY ABOVE
+076E..077F ; valid # 5.1 ARABIC LETTER HAH WITH SMALL ARABIC LETTER TAH BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0780..07B0 ; valid # 3.0 THAANA LETTER HAA..THAANA SUKUN
+07B1 ; valid # 3.2 THAANA LETTER NAA
+07B2..07BF ; disallowed # NA <reserved-07B2>..<reserved-07BF>
+07C0..07F5 ; valid # 5.0 NKO DIGIT ZERO..NKO LOW TONE APOSTROPHE
+07F6..07FA ; valid ; ; NV8 # 5.0 NKO SYMBOL OO DENNEN..NKO LAJANYALAN
+07FB..07FC ; disallowed # NA <reserved-07FB>..<reserved-07FC>
+07FD ; valid # 11.0 NKO DANTAYALAN
+07FE..07FF ; valid ; ; NV8 # 11.0 NKO DOROME SIGN..NKO TAMAN SIGN
+0800..082D ; valid # 5.2 SAMARITAN LETTER ALAF..SAMARITAN MARK NEQUDAA
+082E..082F ; disallowed # NA <reserved-082E>..<reserved-082F>
+0830..083E ; valid ; ; NV8 # 5.2 SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+083F ; disallowed # NA <reserved-083F>
+0840..085B ; valid # 6.0 MANDAIC LETTER HALQA..MANDAIC GEMINATION MARK
+085C..085D ; disallowed # NA <reserved-085C>..<reserved-085D>
+085E ; valid ; ; NV8 # 6.0 MANDAIC PUNCTUATION
+085F ; disallowed # NA <reserved-085F>
+0860..086A ; valid # 10.0 SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
+086B..086F ; disallowed # NA <reserved-086B>..<reserved-086F>
+0870..0887 ; valid # 14.0 ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+0888 ; valid ; ; NV8 # 14.0 ARABIC RAISED ROUND DOT
+0889..088E ; valid # 14.0 ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+088F ; disallowed # NA <reserved-088F>
+0890..0891 ; disallowed # 14.0 ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+0892..0897 ; disallowed # NA <reserved-0892>..<reserved-0897>
+0898..089F ; valid # 14.0 ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08A0 ; valid # 6.1 ARABIC LETTER BEH WITH SMALL V BELOW
+08A1 ; valid # 7.0 ARABIC LETTER BEH WITH HAMZA ABOVE
+08A2..08AC ; valid # 6.1 ARABIC LETTER JEEM WITH TWO DOTS ABOVE..ARABIC LETTER ROHINGYA YEH
+08AD..08B2 ; valid # 7.0 ARABIC LETTER LOW ALEF..ARABIC LETTER ZAIN WITH INVERTED V ABOVE
+08B3..08B4 ; valid # 8.0 ARABIC LETTER AIN WITH THREE DOTS BELOW..ARABIC LETTER KAF WITH DOT BELOW
+08B5 ; valid # 14.0 ARABIC LETTER QAF WITH DOT BELOW AND NO DOTS ABOVE
+08B6..08BD ; valid # 9.0 ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER AFRICAN NOON
+08BE..08C7 ; valid # 13.0 ARABIC LETTER PEH WITH SMALL V..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
+08C8..08D2 ; valid # 14.0 ARABIC LETTER GRAF..ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW
+08D3 ; valid # 11.0 ARABIC SMALL LOW WAW
+08D4..08E1 ; valid # 9.0 ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA
+08E2 ; disallowed # 9.0 ARABIC DISPUTED END OF AYAH
+08E3 ; valid # 8.0 ARABIC TURNED DAMMA BELOW
+08E4..08FE ; valid # 6.1 ARABIC CURLY FATHA..ARABIC DAMMA WITH DOT
+08FF ; valid # 7.0 ARABIC MARK SIDEWAYS NOON GHUNNA
+0900 ; valid # 5.2 DEVANAGARI SIGN INVERTED CANDRABINDU
+0901..0903 ; valid # 1.1 DEVANAGARI SIGN CANDRABINDU..DEVANAGARI SIGN VISARGA
+0904 ; valid # 4.0 DEVANAGARI LETTER SHORT A
+0905..0939 ; valid # 1.1 DEVANAGARI LETTER A..DEVANAGARI LETTER HA
+093A..093B ; valid # 6.0 DEVANAGARI VOWEL SIGN OE..DEVANAGARI VOWEL SIGN OOE
+093C..094D ; valid # 1.1 DEVANAGARI SIGN NUKTA..DEVANAGARI SIGN VIRAMA
+094E ; valid # 5.2 DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
+094F ; valid # 6.0 DEVANAGARI VOWEL SIGN AW
+0950..0954 ; valid # 1.1 DEVANAGARI OM..DEVANAGARI ACUTE ACCENT
+0955 ; valid # 5.2 DEVANAGARI VOWEL SIGN CANDRA LONG E
+0956..0957 ; valid # 6.0 DEVANAGARI VOWEL SIGN UE..DEVANAGARI VOWEL SIGN UUE
+0958 ; mapped ; 0915 093C # 1.1 DEVANAGARI LETTER QA
+0959 ; mapped ; 0916 093C # 1.1 DEVANAGARI LETTER KHHA
+095A ; mapped ; 0917 093C # 1.1 DEVANAGARI LETTER GHHA
+095B ; mapped ; 091C 093C # 1.1 DEVANAGARI LETTER ZA
+095C ; mapped ; 0921 093C # 1.1 DEVANAGARI LETTER DDDHA
+095D ; mapped ; 0922 093C # 1.1 DEVANAGARI LETTER RHA
+095E ; mapped ; 092B 093C # 1.1 DEVANAGARI LETTER FA
+095F ; mapped ; 092F 093C # 1.1 DEVANAGARI LETTER YYA
+0960..0963 ; valid # 1.1 DEVANAGARI LETTER VOCALIC RR..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965 ; valid ; ; NV8 # 1.1 DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F ; valid # 1.1 DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970 ; valid ; ; NV8 # 1.1 DEVANAGARI ABBREVIATION SIGN
+0971..0972 ; valid # 5.1 DEVANAGARI SIGN HIGH SPACING DOT..DEVANAGARI LETTER CANDRA A
+0973..0977 ; valid # 6.0 DEVANAGARI LETTER OE..DEVANAGARI LETTER UUE
+0978 ; valid # 7.0 DEVANAGARI LETTER MARWARI DDA
+0979..097A ; valid # 5.2 DEVANAGARI LETTER ZHA..DEVANAGARI LETTER HEAVY YA
+097B..097C ; valid # 5.0 DEVANAGARI LETTER GGA..DEVANAGARI LETTER JJA
+097D ; valid # 4.1 DEVANAGARI LETTER GLOTTAL STOP
+097E..097F ; valid # 5.0 DEVANAGARI LETTER DDDA..DEVANAGARI LETTER BBA
+0980 ; valid # 7.0 BENGALI ANJI
+0981..0983 ; valid # 1.1 BENGALI SIGN CANDRABINDU..BENGALI SIGN VISARGA
+0984 ; disallowed # NA <reserved-0984>
+0985..098C ; valid # 1.1 BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098D..098E ; disallowed # NA <reserved-098D>..<reserved-098E>
+098F..0990 ; valid # 1.1 BENGALI LETTER E..BENGALI LETTER AI
+0991..0992 ; disallowed # NA <reserved-0991>..<reserved-0992>
+0993..09A8 ; valid # 1.1 BENGALI LETTER O..BENGALI LETTER NA
+09A9 ; disallowed # NA <reserved-09A9>
+09AA..09B0 ; valid # 1.1 BENGALI LETTER PA..BENGALI LETTER RA
+09B1 ; disallowed # NA <reserved-09B1>
+09B2 ; valid # 1.1 BENGALI LETTER LA
+09B3..09B5 ; disallowed # NA <reserved-09B3>..<reserved-09B5>
+09B6..09B9 ; valid # 1.1 BENGALI LETTER SHA..BENGALI LETTER HA
+09BA..09BB ; disallowed # NA <reserved-09BA>..<reserved-09BB>
+09BC ; valid # 1.1 BENGALI SIGN NUKTA
+09BD ; valid # 4.0 BENGALI SIGN AVAGRAHA
+09BE..09C4 ; valid # 1.1 BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN VOCALIC RR
+09C5..09C6 ; disallowed # NA <reserved-09C5>..<reserved-09C6>
+09C7..09C8 ; valid # 1.1 BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09C9..09CA ; disallowed # NA <reserved-09C9>..<reserved-09CA>
+09CB..09CD ; valid # 1.1 BENGALI VOWEL SIGN O..BENGALI SIGN VIRAMA
+09CE ; valid # 4.1 BENGALI LETTER KHANDA TA
+09CF..09D6 ; disallowed # NA <reserved-09CF>..<reserved-09D6>
+09D7 ; valid # 1.1 BENGALI AU LENGTH MARK
+09D8..09DB ; disallowed # NA <reserved-09D8>..<reserved-09DB>
+09DC ; mapped ; 09A1 09BC # 1.1 BENGALI LETTER RRA
+09DD ; mapped ; 09A2 09BC # 1.1 BENGALI LETTER RHA
+09DE ; disallowed # NA <reserved-09DE>
+09DF ; mapped ; 09AF 09BC # 1.1 BENGALI LETTER YYA
+09E0..09E3 ; valid # 1.1 BENGALI LETTER VOCALIC RR..BENGALI VOWEL SIGN VOCALIC LL
+09E4..09E5 ; disallowed # NA <reserved-09E4>..<reserved-09E5>
+09E6..09F1 ; valid # 1.1 BENGALI DIGIT ZERO..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09FA ; valid ; ; NV8 # 1.1 BENGALI RUPEE MARK..BENGALI ISSHAR
+09FB ; valid ; ; NV8 # 5.2 BENGALI GANDA MARK
+09FC ; valid # 10.0 BENGALI LETTER VEDIC ANUSVARA
+09FD ; valid ; ; NV8 # 10.0 BENGALI ABBREVIATION SIGN
+09FE ; valid # 11.0 BENGALI SANDHI MARK
+09FF..0A00 ; disallowed # NA <reserved-09FF>..<reserved-0A00>
+0A01 ; valid # 4.0 GURMUKHI SIGN ADAK BINDI
+0A02 ; valid # 1.1 GURMUKHI SIGN BINDI
+0A03 ; valid # 4.0 GURMUKHI SIGN VISARGA
+0A04 ; disallowed # NA <reserved-0A04>
+0A05..0A0A ; valid # 1.1 GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0B..0A0E ; disallowed # NA <reserved-0A0B>..<reserved-0A0E>
+0A0F..0A10 ; valid # 1.1 GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A11..0A12 ; disallowed # NA <reserved-0A11>..<reserved-0A12>
+0A13..0A28 ; valid # 1.1 GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A29 ; disallowed # NA <reserved-0A29>
+0A2A..0A30 ; valid # 1.1 GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A31 ; disallowed # NA <reserved-0A31>
+0A32 ; valid # 1.1 GURMUKHI LETTER LA
+0A33 ; mapped ; 0A32 0A3C # 1.1 GURMUKHI LETTER LLA
+0A34 ; disallowed # NA <reserved-0A34>
+0A35 ; valid # 1.1 GURMUKHI LETTER VA
+0A36 ; mapped ; 0A38 0A3C # 1.1 GURMUKHI LETTER SHA
+0A37 ; disallowed # NA <reserved-0A37>
+0A38..0A39 ; valid # 1.1 GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3A..0A3B ; disallowed # NA <reserved-0A3A>..<reserved-0A3B>
+0A3C ; valid # 1.1 GURMUKHI SIGN NUKTA
+0A3D ; disallowed # NA <reserved-0A3D>
+0A3E..0A42 ; valid # 1.1 GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN UU
+0A43..0A46 ; disallowed # NA <reserved-0A43>..<reserved-0A46>
+0A47..0A48 ; valid # 1.1 GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A49..0A4A ; disallowed # NA <reserved-0A49>..<reserved-0A4A>
+0A4B..0A4D ; valid # 1.1 GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A4E..0A50 ; disallowed # NA <reserved-0A4E>..<reserved-0A50>
+0A51 ; valid # 5.1 GURMUKHI SIGN UDAAT
+0A52..0A58 ; disallowed # NA <reserved-0A52>..<reserved-0A58>
+0A59 ; mapped ; 0A16 0A3C # 1.1 GURMUKHI LETTER KHHA
+0A5A ; mapped ; 0A17 0A3C # 1.1 GURMUKHI LETTER GHHA
+0A5B ; mapped ; 0A1C 0A3C # 1.1 GURMUKHI LETTER ZA
+0A5C ; valid # 1.1 GURMUKHI LETTER RRA
+0A5D ; disallowed # NA <reserved-0A5D>
+0A5E ; mapped ; 0A2B 0A3C # 1.1 GURMUKHI LETTER FA
+0A5F..0A65 ; disallowed # NA <reserved-0A5F>..<reserved-0A65>
+0A66..0A74 ; valid # 1.1 GURMUKHI DIGIT ZERO..GURMUKHI EK ONKAR
+0A75 ; valid # 5.1 GURMUKHI SIGN YAKASH
+0A76 ; valid ; ; NV8 # 11.0 GURMUKHI ABBREVIATION SIGN
+0A77..0A80 ; disallowed # NA <reserved-0A77>..<reserved-0A80>
+0A81..0A83 ; valid # 1.1 GUJARATI SIGN CANDRABINDU..GUJARATI SIGN VISARGA
+0A84 ; disallowed # NA <reserved-0A84>
+0A85..0A8B ; valid # 1.1 GUJARATI LETTER A..GUJARATI LETTER VOCALIC R
+0A8C ; valid # 4.0 GUJARATI LETTER VOCALIC L
+0A8D ; valid # 1.1 GUJARATI VOWEL CANDRA E
+0A8E ; disallowed # NA <reserved-0A8E>
+0A8F..0A91 ; valid # 1.1 GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A92 ; disallowed # NA <reserved-0A92>
+0A93..0AA8 ; valid # 1.1 GUJARATI LETTER O..GUJARATI LETTER NA
+0AA9 ; disallowed # NA <reserved-0AA9>
+0AAA..0AB0 ; valid # 1.1 GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB1 ; disallowed # NA <reserved-0AB1>
+0AB2..0AB3 ; valid # 1.1 GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB4 ; disallowed # NA <reserved-0AB4>
+0AB5..0AB9 ; valid # 1.1 GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABA..0ABB ; disallowed # NA <reserved-0ABA>..<reserved-0ABB>
+0ABC..0AC5 ; valid # 1.1 GUJARATI SIGN NUKTA..GUJARATI VOWEL SIGN CANDRA E
+0AC6 ; disallowed # NA <reserved-0AC6>
+0AC7..0AC9 ; valid # 1.1 GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN CANDRA O
+0ACA ; disallowed # NA <reserved-0ACA>
+0ACB..0ACD ; valid # 1.1 GUJARATI VOWEL SIGN O..GUJARATI SIGN VIRAMA
+0ACE..0ACF ; disallowed # NA <reserved-0ACE>..<reserved-0ACF>
+0AD0 ; valid # 1.1 GUJARATI OM
+0AD1..0ADF ; disallowed # NA <reserved-0AD1>..<reserved-0ADF>
+0AE0 ; valid # 1.1 GUJARATI LETTER VOCALIC RR
+0AE1..0AE3 ; valid # 4.0 GUJARATI LETTER VOCALIC LL..GUJARATI VOWEL SIGN VOCALIC LL
+0AE4..0AE5 ; disallowed # NA <reserved-0AE4>..<reserved-0AE5>
+0AE6..0AEF ; valid # 1.1 GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0 ; valid ; ; NV8 # 6.1 GUJARATI ABBREVIATION SIGN
+0AF1 ; valid ; ; NV8 # 4.0 GUJARATI RUPEE SIGN
+0AF2..0AF8 ; disallowed # NA <reserved-0AF2>..<reserved-0AF8>
+0AF9 ; valid # 8.0 GUJARATI LETTER ZHA
+0AFA..0AFF ; valid # 10.0 GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+0B00 ; disallowed # NA <reserved-0B00>
+0B01..0B03 ; valid # 1.1 ORIYA SIGN CANDRABINDU..ORIYA SIGN VISARGA
+0B04 ; disallowed # NA <reserved-0B04>
+0B05..0B0C ; valid # 1.1 ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0D..0B0E ; disallowed # NA <reserved-0B0D>..<reserved-0B0E>
+0B0F..0B10 ; valid # 1.1 ORIYA LETTER E..ORIYA LETTER AI
+0B11..0B12 ; disallowed # NA <reserved-0B11>..<reserved-0B12>
+0B13..0B28 ; valid # 1.1 ORIYA LETTER O..ORIYA LETTER NA
+0B29 ; disallowed # NA <reserved-0B29>
+0B2A..0B30 ; valid # 1.1 ORIYA LETTER PA..ORIYA LETTER RA
+0B31 ; disallowed # NA <reserved-0B31>
+0B32..0B33 ; valid # 1.1 ORIYA LETTER LA..ORIYA LETTER LLA
+0B34 ; disallowed # NA <reserved-0B34>
+0B35 ; valid # 4.0 ORIYA LETTER VA
+0B36..0B39 ; valid # 1.1 ORIYA LETTER SHA..ORIYA LETTER HA
+0B3A..0B3B ; disallowed # NA <reserved-0B3A>..<reserved-0B3B>
+0B3C..0B43 ; valid # 1.1 ORIYA SIGN NUKTA..ORIYA VOWEL SIGN VOCALIC R
+0B44 ; valid # 5.1 ORIYA VOWEL SIGN VOCALIC RR
+0B45..0B46 ; disallowed # NA <reserved-0B45>..<reserved-0B46>
+0B47..0B48 ; valid # 1.1 ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B49..0B4A ; disallowed # NA <reserved-0B49>..<reserved-0B4A>
+0B4B..0B4D ; valid # 1.1 ORIYA VOWEL SIGN O..ORIYA SIGN VIRAMA
+0B4E..0B54 ; disallowed # NA <reserved-0B4E>..<reserved-0B54>
+0B55 ; valid # 13.0 ORIYA SIGN OVERLINE
+0B56..0B57 ; valid # 1.1 ORIYA AI LENGTH MARK..ORIYA AU LENGTH MARK
+0B58..0B5B ; disallowed # NA <reserved-0B58>..<reserved-0B5B>
+0B5C ; mapped ; 0B21 0B3C # 1.1 ORIYA LETTER RRA
+0B5D ; mapped ; 0B22 0B3C # 1.1 ORIYA LETTER RHA
+0B5E ; disallowed # NA <reserved-0B5E>
+0B5F..0B61 ; valid # 1.1 ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63 ; valid # 5.1 ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B64..0B65 ; disallowed # NA <reserved-0B64>..<reserved-0B65>
+0B66..0B6F ; valid # 1.1 ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70 ; valid ; ; NV8 # 1.1 ORIYA ISSHAR
+0B71 ; valid # 4.0 ORIYA LETTER WA
+0B72..0B77 ; valid ; ; NV8 # 6.0 ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B78..0B81 ; disallowed # NA <reserved-0B78>..<reserved-0B81>
+0B82..0B83 ; valid # 1.1 TAMIL SIGN ANUSVARA..TAMIL SIGN VISARGA
+0B84 ; disallowed # NA <reserved-0B84>
+0B85..0B8A ; valid # 1.1 TAMIL LETTER A..TAMIL LETTER UU
+0B8B..0B8D ; disallowed # NA <reserved-0B8B>..<reserved-0B8D>
+0B8E..0B90 ; valid # 1.1 TAMIL LETTER E..TAMIL LETTER AI
+0B91 ; disallowed # NA <reserved-0B91>
+0B92..0B95 ; valid # 1.1 TAMIL LETTER O..TAMIL LETTER KA
+0B96..0B98 ; disallowed # NA <reserved-0B96>..<reserved-0B98>
+0B99..0B9A ; valid # 1.1 TAMIL LETTER NGA..TAMIL LETTER CA
+0B9B ; disallowed # NA <reserved-0B9B>
+0B9C ; valid # 1.1 TAMIL LETTER JA
+0B9D ; disallowed # NA <reserved-0B9D>
+0B9E..0B9F ; valid # 1.1 TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA0..0BA2 ; disallowed # NA <reserved-0BA0>..<reserved-0BA2>
+0BA3..0BA4 ; valid # 1.1 TAMIL LETTER NNA..TAMIL LETTER TA
+0BA5..0BA7 ; disallowed # NA <reserved-0BA5>..<reserved-0BA7>
+0BA8..0BAA ; valid # 1.1 TAMIL LETTER NA..TAMIL LETTER PA
+0BAB..0BAD ; disallowed # NA <reserved-0BAB>..<reserved-0BAD>
+0BAE..0BB5 ; valid # 1.1 TAMIL LETTER MA..TAMIL LETTER VA
+0BB6 ; valid # 4.1 TAMIL LETTER SHA
+0BB7..0BB9 ; valid # 1.1 TAMIL LETTER SSA..TAMIL LETTER HA
+0BBA..0BBD ; disallowed # NA <reserved-0BBA>..<reserved-0BBD>
+0BBE..0BC2 ; valid # 1.1 TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN UU
+0BC3..0BC5 ; disallowed # NA <reserved-0BC3>..<reserved-0BC5>
+0BC6..0BC8 ; valid # 1.1 TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BC9 ; disallowed # NA <reserved-0BC9>
+0BCA..0BCD ; valid # 1.1 TAMIL VOWEL SIGN O..TAMIL SIGN VIRAMA
+0BCE..0BCF ; disallowed # NA <reserved-0BCE>..<reserved-0BCF>
+0BD0 ; valid # 5.1 TAMIL OM
+0BD1..0BD6 ; disallowed # NA <reserved-0BD1>..<reserved-0BD6>
+0BD7 ; valid # 1.1 TAMIL AU LENGTH MARK
+0BD8..0BE5 ; disallowed # NA <reserved-0BD8>..<reserved-0BE5>
+0BE6 ; valid # 4.1 TAMIL DIGIT ZERO
+0BE7..0BEF ; valid # 1.1 TAMIL DIGIT ONE..TAMIL DIGIT NINE
+0BF0..0BF2 ; valid ; ; NV8 # 1.1 TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BFA ; valid ; ; NV8 # 4.0 TAMIL DAY SIGN..TAMIL NUMBER SIGN
+0BFB..0BFF ; disallowed # NA <reserved-0BFB>..<reserved-0BFF>
+0C00 ; valid # 7.0 TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03 ; valid # 1.1 TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04 ; valid # 11.0 TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C05..0C0C ; valid # 1.1 TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0D ; disallowed # NA <reserved-0C0D>
+0C0E..0C10 ; valid # 1.1 TELUGU LETTER E..TELUGU LETTER AI
+0C11 ; disallowed # NA <reserved-0C11>
+0C12..0C28 ; valid # 1.1 TELUGU LETTER O..TELUGU LETTER NA
+0C29 ; disallowed # NA <reserved-0C29>
+0C2A..0C33 ; valid # 1.1 TELUGU LETTER PA..TELUGU LETTER LLA
+0C34 ; valid # 7.0 TELUGU LETTER LLLA
+0C35..0C39 ; valid # 1.1 TELUGU LETTER VA..TELUGU LETTER HA
+0C3A..0C3B ; disallowed # NA <reserved-0C3A>..<reserved-0C3B>
+0C3C ; valid # 14.0 TELUGU SIGN NUKTA
+0C3D ; valid # 5.1 TELUGU SIGN AVAGRAHA
+0C3E..0C44 ; valid # 1.1 TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN VOCALIC RR
+0C45 ; disallowed # NA <reserved-0C45>
+0C46..0C48 ; valid # 1.1 TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C49 ; disallowed # NA <reserved-0C49>
+0C4A..0C4D ; valid # 1.1 TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C4E..0C54 ; disallowed # NA <reserved-0C4E>..<reserved-0C54>
+0C55..0C56 ; valid # 1.1 TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C57 ; disallowed # NA <reserved-0C57>
+0C58..0C59 ; valid # 5.1 TELUGU LETTER TSA..TELUGU LETTER DZA
+0C5A ; valid # 8.0 TELUGU LETTER RRRA
+0C5B..0C5C ; disallowed # NA <reserved-0C5B>..<reserved-0C5C>
+0C5D ; valid # 14.0 TELUGU LETTER NAKAARA POLLU
+0C5E..0C5F ; disallowed # NA <reserved-0C5E>..<reserved-0C5F>
+0C60..0C61 ; valid # 1.1 TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63 ; valid # 5.1 TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C64..0C65 ; disallowed # NA <reserved-0C64>..<reserved-0C65>
+0C66..0C6F ; valid # 1.1 TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C70..0C76 ; disallowed # NA <reserved-0C70>..<reserved-0C76>
+0C77 ; valid ; ; NV8 # 12.0 TELUGU SIGN SIDDHAM
+0C78..0C7F ; valid ; ; NV8 # 5.1 TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU SIGN TUUMU
+0C80 ; valid # 9.0 KANNADA SIGN SPACING CANDRABINDU
+0C81 ; valid # 7.0 KANNADA SIGN CANDRABINDU
+0C82..0C83 ; valid # 1.1 KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C84 ; valid ; ; NV8 # 11.0 KANNADA SIGN SIDDHAM
+0C85..0C8C ; valid # 1.1 KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8D ; disallowed # NA <reserved-0C8D>
+0C8E..0C90 ; valid # 1.1 KANNADA LETTER E..KANNADA LETTER AI
+0C91 ; disallowed # NA <reserved-0C91>
+0C92..0CA8 ; valid # 1.1 KANNADA LETTER O..KANNADA LETTER NA
+0CA9 ; disallowed # NA <reserved-0CA9>
+0CAA..0CB3 ; valid # 1.1 KANNADA LETTER PA..KANNADA LETTER LLA
+0CB4 ; disallowed # NA <reserved-0CB4>
+0CB5..0CB9 ; valid # 1.1 KANNADA LETTER VA..KANNADA LETTER HA
+0CBA..0CBB ; disallowed # NA <reserved-0CBA>..<reserved-0CBB>
+0CBC..0CBD ; valid # 4.0 KANNADA SIGN NUKTA..KANNADA SIGN AVAGRAHA
+0CBE..0CC4 ; valid # 1.1 KANNADA VOWEL SIGN AA..KANNADA VOWEL SIGN VOCALIC RR
+0CC5 ; disallowed # NA <reserved-0CC5>
+0CC6..0CC8 ; valid # 1.1 KANNADA VOWEL SIGN E..KANNADA VOWEL SIGN AI
+0CC9 ; disallowed # NA <reserved-0CC9>
+0CCA..0CCD ; valid # 1.1 KANNADA VOWEL SIGN O..KANNADA SIGN VIRAMA
+0CCE..0CD4 ; disallowed # NA <reserved-0CCE>..<reserved-0CD4>
+0CD5..0CD6 ; valid # 1.1 KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CD7..0CDC ; disallowed # NA <reserved-0CD7>..<reserved-0CDC>
+0CDD ; valid # 14.0 KANNADA LETTER NAKAARA POLLU
+0CDE ; valid # 1.1 KANNADA LETTER FA
+0CDF ; disallowed # NA <reserved-0CDF>
+0CE0..0CE1 ; valid # 1.1 KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3 ; valid # 5.0 KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE4..0CE5 ; disallowed # NA <reserved-0CE4>..<reserved-0CE5>
+0CE6..0CEF ; valid # 1.1 KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF0 ; disallowed # NA <reserved-0CF0>
+0CF1..0CF2 ; valid # 5.0 KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3 ; valid # 15.0 KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+0CF4..0CFF ; disallowed # NA <reserved-0CF4>..<reserved-0CFF>
+0D00 ; valid # 10.0 MALAYALAM SIGN COMBINING ANUSVARA ABOVE
+0D01 ; valid # 7.0 MALAYALAM SIGN CANDRABINDU
+0D02..0D03 ; valid # 1.1 MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D04 ; valid # 13.0 MALAYALAM LETTER VEDIC ANUSVARA
+0D05..0D0C ; valid # 1.1 MALAYALAM LETTER A..MALAYALAM LETTER VOCALIC L
+0D0D ; disallowed # NA <reserved-0D0D>
+0D0E..0D10 ; valid # 1.1 MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D11 ; disallowed # NA <reserved-0D11>
+0D12..0D28 ; valid # 1.1 MALAYALAM LETTER O..MALAYALAM LETTER NA
+0D29 ; valid # 6.0 MALAYALAM LETTER NNNA
+0D2A..0D39 ; valid # 1.1 MALAYALAM LETTER PA..MALAYALAM LETTER HA
+0D3A ; valid # 6.0 MALAYALAM LETTER TTTA
+0D3B..0D3C ; valid # 10.0 MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+0D3D ; valid # 5.1 MALAYALAM SIGN AVAGRAHA
+0D3E..0D43 ; valid # 1.1 MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN VOCALIC R
+0D44 ; valid # 5.1 MALAYALAM VOWEL SIGN VOCALIC RR
+0D45 ; disallowed # NA <reserved-0D45>
+0D46..0D48 ; valid # 1.1 MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D49 ; disallowed # NA <reserved-0D49>
+0D4A..0D4D ; valid # 1.1 MALAYALAM VOWEL SIGN O..MALAYALAM SIGN VIRAMA
+0D4E ; valid # 6.0 MALAYALAM LETTER DOT REPH
+0D4F ; valid ; ; NV8 # 9.0 MALAYALAM SIGN PARA
+0D50..0D53 ; disallowed # NA <reserved-0D50>..<reserved-0D53>
+0D54..0D56 ; valid # 9.0 MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
+0D57 ; valid # 1.1 MALAYALAM AU LENGTH MARK
+0D58..0D5E ; valid ; ; NV8 # 9.0 MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
+0D5F ; valid # 8.0 MALAYALAM LETTER ARCHAIC II
+0D60..0D61 ; valid # 1.1 MALAYALAM LETTER VOCALIC RR..MALAYALAM LETTER VOCALIC LL
+0D62..0D63 ; valid # 5.1 MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D64..0D65 ; disallowed # NA <reserved-0D64>..<reserved-0D65>
+0D66..0D6F ; valid # 1.1 MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D75 ; valid ; ; NV8 # 5.1 MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE QUARTERS
+0D76..0D78 ; valid ; ; NV8 # 9.0 MALAYALAM FRACTION ONE SIXTEENTH..MALAYALAM FRACTION THREE SIXTEENTHS
+0D79 ; valid ; ; NV8 # 5.1 MALAYALAM DATE MARK
+0D7A..0D7F ; valid # 5.1 MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D80 ; disallowed # NA <reserved-0D80>
+0D81 ; valid # 13.0 SINHALA SIGN CANDRABINDU
+0D82..0D83 ; valid # 3.0 SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D84 ; disallowed # NA <reserved-0D84>
+0D85..0D96 ; valid # 3.0 SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D97..0D99 ; disallowed # NA <reserved-0D97>..<reserved-0D99>
+0D9A..0DB1 ; valid # 3.0 SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB2 ; disallowed # NA <reserved-0DB2>
+0DB3..0DBB ; valid # 3.0 SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBC ; disallowed # NA <reserved-0DBC>
+0DBD ; valid # 3.0 SINHALA LETTER DANTAJA LAYANNA
+0DBE..0DBF ; disallowed # NA <reserved-0DBE>..<reserved-0DBF>
+0DC0..0DC6 ; valid # 3.0 SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DC7..0DC9 ; disallowed # NA <reserved-0DC7>..<reserved-0DC9>
+0DCA ; valid # 3.0 SINHALA SIGN AL-LAKUNA
+0DCB..0DCE ; disallowed # NA <reserved-0DCB>..<reserved-0DCE>
+0DCF..0DD4 ; valid # 3.0 SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD5 ; disallowed # NA <reserved-0DD5>
+0DD6 ; valid # 3.0 SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD7 ; disallowed # NA <reserved-0DD7>
+0DD8..0DDF ; valid # 3.0 SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE0..0DE5 ; disallowed # NA <reserved-0DE0>..<reserved-0DE5>
+0DE6..0DEF ; valid # 7.0 SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF0..0DF1 ; disallowed # NA <reserved-0DF0>..<reserved-0DF1>
+0DF2..0DF3 ; valid # 3.0 SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4 ; valid ; ; NV8 # 3.0 SINHALA PUNCTUATION KUNDDALIYA
+0DF5..0E00 ; disallowed # NA <reserved-0DF5>..<reserved-0E00>
+0E01..0E32 ; valid # 1.1 THAI CHARACTER KO KAI..THAI CHARACTER SARA AA
+0E33 ; mapped ; 0E4D 0E32 # 1.1 THAI CHARACTER SARA AM
+0E34..0E3A ; valid # 1.1 THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3B..0E3E ; disallowed # NA <reserved-0E3B>..<reserved-0E3E>
+0E3F ; valid ; ; NV8 # 1.1 THAI CURRENCY SYMBOL BAHT
+0E40..0E4E ; valid # 1.1 THAI CHARACTER SARA E..THAI CHARACTER YAMAKKAN
+0E4F ; valid ; ; NV8 # 1.1 THAI CHARACTER FONGMAN
+0E50..0E59 ; valid # 1.1 THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B ; valid ; ; NV8 # 1.1 THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E5C..0E80 ; disallowed # NA <reserved-0E5C>..<reserved-0E80>
+0E81..0E82 ; valid # 1.1 LAO LETTER KO..LAO LETTER KHO SUNG
+0E83 ; disallowed # NA <reserved-0E83>
+0E84 ; valid # 1.1 LAO LETTER KHO TAM
+0E85 ; disallowed # NA <reserved-0E85>
+0E86 ; valid # 12.0 LAO LETTER PALI GHA
+0E87..0E88 ; valid # 1.1 LAO LETTER NGO..LAO LETTER CO
+0E89 ; valid # 12.0 LAO LETTER PALI CHA
+0E8A ; valid # 1.1 LAO LETTER SO TAM
+0E8B ; disallowed # NA <reserved-0E8B>
+0E8C ; valid # 12.0 LAO LETTER PALI JHA
+0E8D ; valid # 1.1 LAO LETTER NYO
+0E8E..0E93 ; valid # 12.0 LAO LETTER PALI NYA..LAO LETTER PALI NNA
+0E94..0E97 ; valid # 1.1 LAO LETTER DO..LAO LETTER THO TAM
+0E98 ; valid # 12.0 LAO LETTER PALI DHA
+0E99..0E9F ; valid # 1.1 LAO LETTER NO..LAO LETTER FO SUNG
+0EA0 ; valid # 12.0 LAO LETTER PALI BHA
+0EA1..0EA3 ; valid # 1.1 LAO LETTER MO..LAO LETTER LO LING
+0EA4 ; disallowed # NA <reserved-0EA4>
+0EA5 ; valid # 1.1 LAO LETTER LO LOOT
+0EA6 ; disallowed # NA <reserved-0EA6>
+0EA7 ; valid # 1.1 LAO LETTER WO
+0EA8..0EA9 ; valid # 12.0 LAO LETTER SANSKRIT SHA..LAO LETTER SANSKRIT SSA
+0EAA..0EAB ; valid # 1.1 LAO LETTER SO SUNG..LAO LETTER HO SUNG
+0EAC ; valid # 12.0 LAO LETTER PALI LLA
+0EAD..0EB2 ; valid # 1.1 LAO LETTER O..LAO VOWEL SIGN AA
+0EB3 ; mapped ; 0ECD 0EB2 # 1.1 LAO VOWEL SIGN AM
+0EB4..0EB9 ; valid # 1.1 LAO VOWEL SIGN I..LAO VOWEL SIGN UU
+0EBA ; valid # 12.0 LAO SIGN PALI VIRAMA
+0EBB..0EBD ; valid # 1.1 LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN NYO
+0EBE..0EBF ; disallowed # NA <reserved-0EBE>..<reserved-0EBF>
+0EC0..0EC4 ; valid # 1.1 LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC5 ; disallowed # NA <reserved-0EC5>
+0EC6 ; valid # 1.1 LAO KO LA
+0EC7 ; disallowed # NA <reserved-0EC7>
+0EC8..0ECD ; valid # 1.1 LAO TONE MAI EK..LAO NIGGAHITA
+0ECE ; valid # 15.0 LAO YAMAKKAN
+0ECF ; disallowed # NA <reserved-0ECF>
+0ED0..0ED9 ; valid # 1.1 LAO DIGIT ZERO..LAO DIGIT NINE
+0EDA..0EDB ; disallowed # NA <reserved-0EDA>..<reserved-0EDB>
+0EDC ; mapped ; 0EAB 0E99 # 1.1 LAO HO NO
+0EDD ; mapped ; 0EAB 0EA1 # 1.1 LAO HO MO
+0EDE..0EDF ; valid # 6.1 LAO LETTER KHMU GO..LAO LETTER KHMU NYO
+0EE0..0EFF ; disallowed # NA <reserved-0EE0>..<reserved-0EFF>
+0F00 ; valid # 2.0 TIBETAN SYLLABLE OM
+0F01..0F0A ; valid ; ; NV8 # 2.0 TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK BKA- SHOG YIG MGO
+0F0B ; valid # 2.0 TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C ; mapped ; 0F0B # 2.0 TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D..0F17 ; valid ; ; NV8 # 2.0 TIBETAN MARK SHAD..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19 ; valid # 2.0 TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F ; valid ; ; NV8 # 2.0 TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29 ; valid # 2.0 TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F34 ; valid ; ; NV8 # 2.0 TIBETAN DIGIT HALF ONE..TIBETAN MARK BSDUS RTAGS
+0F35 ; valid # 2.0 TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36 ; valid ; ; NV8 # 2.0 TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37 ; valid # 2.0 TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38 ; valid ; ; NV8 # 2.0 TIBETAN MARK CHE MGO
+0F39 ; valid # 2.0 TIBETAN MARK TSA -PHRU
+0F3A..0F3D ; valid ; ; NV8 # 2.0 TIBETAN MARK GUG RTAGS GYON..TIBETAN MARK ANG KHANG GYAS
+0F3E..0F42 ; valid # 2.0 TIBETAN SIGN YAR TSHES..TIBETAN LETTER GA
+0F43 ; mapped ; 0F42 0FB7 # 2.0 TIBETAN LETTER GHA
+0F44..0F47 ; valid # 2.0 TIBETAN LETTER NGA..TIBETAN LETTER JA
+0F48 ; disallowed # NA <reserved-0F48>
+0F49..0F4C ; valid # 2.0 TIBETAN LETTER NYA..TIBETAN LETTER DDA
+0F4D ; mapped ; 0F4C 0FB7 # 2.0 TIBETAN LETTER DDHA
+0F4E..0F51 ; valid # 2.0 TIBETAN LETTER NNA..TIBETAN LETTER DA
+0F52 ; mapped ; 0F51 0FB7 # 2.0 TIBETAN LETTER DHA
+0F53..0F56 ; valid # 2.0 TIBETAN LETTER NA..TIBETAN LETTER BA
+0F57 ; mapped ; 0F56 0FB7 # 2.0 TIBETAN LETTER BHA
+0F58..0F5B ; valid # 2.0 TIBETAN LETTER MA..TIBETAN LETTER DZA
+0F5C ; mapped ; 0F5B 0FB7 # 2.0 TIBETAN LETTER DZHA
+0F5D..0F68 ; valid # 2.0 TIBETAN LETTER WA..TIBETAN LETTER A
+0F69 ; mapped ; 0F40 0FB5 # 2.0 TIBETAN LETTER KSSA
+0F6A ; valid # 3.0 TIBETAN LETTER FIXED-FORM RA
+0F6B..0F6C ; valid # 5.1 TIBETAN LETTER KKA..TIBETAN LETTER RRA
+0F6D..0F70 ; disallowed # NA <reserved-0F6D>..<reserved-0F70>
+0F71..0F72 ; valid # 2.0 TIBETAN VOWEL SIGN AA..TIBETAN VOWEL SIGN I
+0F73 ; mapped ; 0F71 0F72 # 2.0 TIBETAN VOWEL SIGN II
+0F74 ; valid # 2.0 TIBETAN VOWEL SIGN U
+0F75 ; mapped ; 0F71 0F74 # 2.0 TIBETAN VOWEL SIGN UU
+0F76 ; mapped ; 0FB2 0F80 # 2.0 TIBETAN VOWEL SIGN VOCALIC R
+0F77 ; mapped ; 0FB2 0F71 0F80 #2.0 TIBETAN VOWEL SIGN VOCALIC RR
+0F78 ; mapped ; 0FB3 0F80 # 2.0 TIBETAN VOWEL SIGN VOCALIC L
+0F79 ; mapped ; 0FB3 0F71 0F80 #2.0 TIBETAN VOWEL SIGN VOCALIC LL
+0F7A..0F80 ; valid # 2.0 TIBETAN VOWEL SIGN E..TIBETAN VOWEL SIGN REVERSED I
+0F81 ; mapped ; 0F71 0F80 # 2.0 TIBETAN VOWEL SIGN REVERSED II
+0F82..0F84 ; valid # 2.0 TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA
+0F85 ; valid ; ; NV8 # 2.0 TIBETAN MARK PALUTA
+0F86..0F8B ; valid # 2.0 TIBETAN SIGN LCI RTAGS..TIBETAN SIGN GRU MED RGYINGS
+0F8C..0F8F ; valid # 6.0 TIBETAN SIGN INVERTED MCHU CAN..TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
+0F90..0F92 ; valid # 2.0 TIBETAN SUBJOINED LETTER KA..TIBETAN SUBJOINED LETTER GA
+0F93 ; mapped ; 0F92 0FB7 # 2.0 TIBETAN SUBJOINED LETTER GHA
+0F94..0F95 ; valid # 2.0 TIBETAN SUBJOINED LETTER NGA..TIBETAN SUBJOINED LETTER CA
+0F96 ; valid # 3.0 TIBETAN SUBJOINED LETTER CHA
+0F97 ; valid # 2.0 TIBETAN SUBJOINED LETTER JA
+0F98 ; disallowed # NA <reserved-0F98>
+0F99..0F9C ; valid # 2.0 TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER DDA
+0F9D ; mapped ; 0F9C 0FB7 # 2.0 TIBETAN SUBJOINED LETTER DDHA
+0F9E..0FA1 ; valid # 2.0 TIBETAN SUBJOINED LETTER NNA..TIBETAN SUBJOINED LETTER DA
+0FA2 ; mapped ; 0FA1 0FB7 # 2.0 TIBETAN SUBJOINED LETTER DHA
+0FA3..0FA6 ; valid # 2.0 TIBETAN SUBJOINED LETTER NA..TIBETAN SUBJOINED LETTER BA
+0FA7 ; mapped ; 0FA6 0FB7 # 2.0 TIBETAN SUBJOINED LETTER BHA
+0FA8..0FAB ; valid # 2.0 TIBETAN SUBJOINED LETTER MA..TIBETAN SUBJOINED LETTER DZA
+0FAC ; mapped ; 0FAB 0FB7 # 2.0 TIBETAN SUBJOINED LETTER DZHA
+0FAD ; valid # 2.0 TIBETAN SUBJOINED LETTER WA
+0FAE..0FB0 ; valid # 3.0 TIBETAN SUBJOINED LETTER ZHA..TIBETAN SUBJOINED LETTER -A
+0FB1..0FB7 ; valid # 2.0 TIBETAN SUBJOINED LETTER YA..TIBETAN SUBJOINED LETTER HA
+0FB8 ; valid # 3.0 TIBETAN SUBJOINED LETTER A
+0FB9 ; mapped ; 0F90 0FB5 # 2.0 TIBETAN SUBJOINED LETTER KSSA
+0FBA..0FBC ; valid # 3.0 TIBETAN SUBJOINED LETTER FIXED-FORM WA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBD ; disallowed # NA <reserved-0FBD>
+0FBE..0FC5 ; valid ; ; NV8 # 3.0 TIBETAN KU RU KHA..TIBETAN SYMBOL RDO RJE
+0FC6 ; valid # 3.0 TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC ; valid ; ; NV8 # 3.0 TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCD ; disallowed # NA <reserved-0FCD>
+0FCE ; valid ; ; NV8 # 5.1 TIBETAN SIGN RDEL NAG RDEL DKAR
+0FCF ; valid ; ; NV8 # 3.0 TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD1 ; valid ; ; NV8 # 4.1 TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0FD2..0FD4 ; valid ; ; NV8 # 5.1 TIBETAN MARK NYIS TSHEG..TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5..0FD8 ; valid ; ; NV8 # 5.2 RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9..0FDA ; valid ; ; NV8 # 6.0 TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+0FDB..0FFF ; disallowed # NA <reserved-0FDB>..<reserved-0FFF>
+1000..1021 ; valid # 3.0 MYANMAR LETTER KA..MYANMAR LETTER A
+1022 ; valid # 5.1 MYANMAR LETTER SHAN A
+1023..1027 ; valid # 3.0 MYANMAR LETTER I..MYANMAR LETTER E
+1028 ; valid # 5.1 MYANMAR LETTER MON E
+1029..102A ; valid # 3.0 MYANMAR LETTER O..MYANMAR LETTER AU
+102B ; valid # 5.1 MYANMAR VOWEL SIGN TALL AA
+102C..1032 ; valid # 3.0 MYANMAR VOWEL SIGN AA..MYANMAR VOWEL SIGN AI
+1033..1035 ; valid # 5.1 MYANMAR VOWEL SIGN MON II..MYANMAR VOWEL SIGN E ABOVE
+1036..1039 ; valid # 3.0 MYANMAR SIGN ANUSVARA..MYANMAR SIGN VIRAMA
+103A..103F ; valid # 5.1 MYANMAR SIGN ASAT..MYANMAR LETTER GREAT SA
+1040..1049 ; valid # 3.0 MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104F ; valid ; ; NV8 # 3.0 MYANMAR SIGN LITTLE SECTION..MYANMAR SYMBOL GENITIVE
+1050..1059 ; valid # 3.0 MYANMAR LETTER SHA..MYANMAR VOWEL SIGN VOCALIC LL
+105A..1099 ; valid # 5.1 MYANMAR LETTER MON NGA..MYANMAR SHAN DIGIT NINE
+109A..109D ; valid # 5.2 MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON AI
+109E..109F ; valid ; ; NV8 # 5.1 MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5 ; disallowed # 1.1 GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C6 ; disallowed # NA <reserved-10C6>
+10C7 ; mapped ; 2D27 # 6.1 GEORGIAN CAPITAL LETTER YN
+10C8..10CC ; disallowed # NA <reserved-10C8>..<reserved-10CC>
+10CD ; mapped ; 2D2D # 6.1 GEORGIAN CAPITAL LETTER AEN
+10CE..10CF ; disallowed # NA <reserved-10CE>..<reserved-10CF>
+10D0..10F6 ; valid # 1.1 GEORGIAN LETTER AN..GEORGIAN LETTER FI
+10F7..10F8 ; valid # 3.2 GEORGIAN LETTER YN..GEORGIAN LETTER ELIFI
+10F9..10FA ; valid # 4.1 GEORGIAN LETTER TURNED GAN..GEORGIAN LETTER AIN
+10FB ; valid ; ; NV8 # 1.1 GEORGIAN PARAGRAPH SEPARATOR
+10FC ; mapped ; 10DC # 4.1 MODIFIER LETTER GEORGIAN NAR
+10FD..10FF ; valid # 6.1 GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100..1159 ; valid ; ; NV8 # 1.1 HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG YEORINHIEUH
+115A..115E ; valid ; ; NV8 # 5.2 HANGUL CHOSEONG KIYEOK-TIKEUT..HANGUL CHOSEONG TIKEUT-RIEUL
+115F..1160 ; disallowed # 1.1 HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER
+1161..11A2 ; valid ; ; NV8 # 1.1 HANGUL JUNGSEONG A..HANGUL JUNGSEONG SSANGARAEA
+11A3..11A7 ; valid ; ; NV8 # 5.2 HANGUL JUNGSEONG A-EU..HANGUL JUNGSEONG O-YAE
+11A8..11F9 ; valid ; ; NV8 # 1.1 HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG YEORINHIEUH
+11FA..11FF ; valid ; ; NV8 # 5.2 HANGUL JONGSEONG KIYEOK-NIEUN..HANGUL JONGSEONG SSANGNIEUN
+1200..1206 ; valid # 3.0 ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE HO
+1207 ; valid # 4.1 ETHIOPIC SYLLABLE HOA
+1208..1246 ; valid # 3.0 ETHIOPIC SYLLABLE LA..ETHIOPIC SYLLABLE QO
+1247 ; valid # 4.1 ETHIOPIC SYLLABLE QOA
+1248 ; valid # 3.0 ETHIOPIC SYLLABLE QWA
+1249 ; disallowed # NA <reserved-1249>
+124A..124D ; valid # 3.0 ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+124E..124F ; disallowed # NA <reserved-124E>..<reserved-124F>
+1250..1256 ; valid # 3.0 ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1257 ; disallowed # NA <reserved-1257>
+1258 ; valid # 3.0 ETHIOPIC SYLLABLE QHWA
+1259 ; disallowed # NA <reserved-1259>
+125A..125D ; valid # 3.0 ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+125E..125F ; disallowed # NA <reserved-125E>..<reserved-125F>
+1260..1286 ; valid # 3.0 ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XO
+1287 ; valid # 4.1 ETHIOPIC SYLLABLE XOA
+1288 ; valid # 3.0 ETHIOPIC SYLLABLE XWA
+1289 ; disallowed # NA <reserved-1289>
+128A..128D ; valid # 3.0 ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+128E..128F ; disallowed # NA <reserved-128E>..<reserved-128F>
+1290..12AE ; valid # 3.0 ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KO
+12AF ; valid # 4.1 ETHIOPIC SYLLABLE KOA
+12B0 ; valid # 3.0 ETHIOPIC SYLLABLE KWA
+12B1 ; disallowed # NA <reserved-12B1>
+12B2..12B5 ; valid # 3.0 ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B6..12B7 ; disallowed # NA <reserved-12B6>..<reserved-12B7>
+12B8..12BE ; valid # 3.0 ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12BF ; disallowed # NA <reserved-12BF>
+12C0 ; valid # 3.0 ETHIOPIC SYLLABLE KXWA
+12C1 ; disallowed # NA <reserved-12C1>
+12C2..12C5 ; valid # 3.0 ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C6..12C7 ; disallowed # NA <reserved-12C6>..<reserved-12C7>
+12C8..12CE ; valid # 3.0 ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE WO
+12CF ; valid # 4.1 ETHIOPIC SYLLABLE WOA
+12D0..12D6 ; valid # 3.0 ETHIOPIC SYLLABLE PHARYNGEAL A..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D7 ; disallowed # NA <reserved-12D7>
+12D8..12EE ; valid # 3.0 ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE YO
+12EF ; valid # 4.1 ETHIOPIC SYLLABLE YOA
+12F0..130E ; valid # 3.0 ETHIOPIC SYLLABLE DA..ETHIOPIC SYLLABLE GO
+130F ; valid # 4.1 ETHIOPIC SYLLABLE GOA
+1310 ; valid # 3.0 ETHIOPIC SYLLABLE GWA
+1311 ; disallowed # NA <reserved-1311>
+1312..1315 ; valid # 3.0 ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1316..1317 ; disallowed # NA <reserved-1316>..<reserved-1317>
+1318..131E ; valid # 3.0 ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE GGO
+131F ; valid # 4.1 ETHIOPIC SYLLABLE GGWAA
+1320..1346 ; valid # 3.0 ETHIOPIC SYLLABLE THA..ETHIOPIC SYLLABLE TZO
+1347 ; valid # 4.1 ETHIOPIC SYLLABLE TZOA
+1348..135A ; valid # 3.0 ETHIOPIC SYLLABLE FA..ETHIOPIC SYLLABLE FYA
+135B..135C ; disallowed # NA <reserved-135B>..<reserved-135C>
+135D..135E ; valid # 6.0 ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING VOWEL LENGTH MARK
+135F ; valid # 4.1 ETHIOPIC COMBINING GEMINATION MARK
+1360 ; valid ; ; NV8 # 4.1 ETHIOPIC SECTION MARK
+1361..137C ; valid ; ; NV8 # 3.0 ETHIOPIC WORDSPACE..ETHIOPIC NUMBER TEN THOUSAND
+137D..137F ; disallowed # NA <reserved-137D>..<reserved-137F>
+1380..138F ; valid # 4.1 ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399 ; valid ; ; NV8 # 4.1 ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+139A..139F ; disallowed # NA <reserved-139A>..<reserved-139F>
+13A0..13F4 ; valid # 3.0 CHEROKEE LETTER A..CHEROKEE LETTER YV
+13F5 ; valid # 8.0 CHEROKEE LETTER MV
+13F6..13F7 ; disallowed # NA <reserved-13F6>..<reserved-13F7>
+13F8 ; mapped ; 13F0 # 8.0 CHEROKEE SMALL LETTER YE
+13F9 ; mapped ; 13F1 # 8.0 CHEROKEE SMALL LETTER YI
+13FA ; mapped ; 13F2 # 8.0 CHEROKEE SMALL LETTER YO
+13FB ; mapped ; 13F3 # 8.0 CHEROKEE SMALL LETTER YU
+13FC ; mapped ; 13F4 # 8.0 CHEROKEE SMALL LETTER YV
+13FD ; mapped ; 13F5 # 8.0 CHEROKEE SMALL LETTER MV
+13FE..13FF ; disallowed # NA <reserved-13FE>..<reserved-13FF>
+1400 ; valid ; ; NV8 # 5.2 CANADIAN SYLLABICS HYPHEN
+1401..166C ; valid # 3.0 CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D..166E ; valid ; ; NV8 # 3.0 CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP
+166F..1676 ; valid # 3.0 CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS NNGAA
+1677..167F ; valid # 5.2 CANADIAN SYLLABICS WOODS-CREE THWEE..CANADIAN SYLLABICS BLACKFOOT W
+1680 ; disallowed # 3.0 OGHAM SPACE MARK
+1681..169A ; valid # 3.0 OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B..169C ; valid ; ; NV8 # 3.0 OGHAM FEATHER MARK..OGHAM REVERSED FEATHER MARK
+169D..169F ; disallowed # NA <reserved-169D>..<reserved-169F>
+16A0..16EA ; valid # 3.0 RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB..16F0 ; valid ; ; NV8 # 3.0 RUNIC SINGLE PUNCTUATION..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; valid # 7.0 RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+16F9..16FF ; disallowed # NA <reserved-16F9>..<reserved-16FF>
+1700..170C ; valid # 3.2 TAGALOG LETTER A..TAGALOG LETTER YA
+170D ; valid # 14.0 TAGALOG LETTER RA
+170E..1714 ; valid # 3.2 TAGALOG LETTER LA..TAGALOG SIGN VIRAMA
+1715 ; valid # 14.0 TAGALOG SIGN PAMUDPOD
+1716..171E ; disallowed # NA <reserved-1716>..<reserved-171E>
+171F ; valid # 14.0 TAGALOG LETTER ARCHAIC RA
+1720..1734 ; valid # 3.2 HANUNOO LETTER A..HANUNOO SIGN PAMUDPOD
+1735..1736 ; valid ; ; NV8 # 3.2 PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1737..173F ; disallowed # NA <reserved-1737>..<reserved-173F>
+1740..1753 ; valid # 3.2 BUHID LETTER A..BUHID VOWEL SIGN U
+1754..175F ; disallowed # NA <reserved-1754>..<reserved-175F>
+1760..176C ; valid # 3.2 TAGBANWA LETTER A..TAGBANWA LETTER YA
+176D ; disallowed # NA <reserved-176D>
+176E..1770 ; valid # 3.2 TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1771 ; disallowed # NA <reserved-1771>
+1772..1773 ; valid # 3.2 TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1774..177F ; disallowed # NA <reserved-1774>..<reserved-177F>
+1780..17B3 ; valid # 3.0 KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5 ; disallowed # 3.0 KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6..17D3 ; valid # 3.0 KHMER VOWEL SIGN AA..KHMER SIGN BATHAMASAT
+17D4..17D6 ; valid ; ; NV8 # 3.0 KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH
+17D7 ; valid # 3.0 KHMER SIGN LEK TOO
+17D8..17DB ; valid ; ; NV8 # 3.0 KHMER SIGN BEYYAL..KHMER CURRENCY SYMBOL RIEL
+17DC ; valid # 3.0 KHMER SIGN AVAKRAHASANYA
+17DD ; valid # 4.0 KHMER SIGN ATTHACAN
+17DE..17DF ; disallowed # NA <reserved-17DE>..<reserved-17DF>
+17E0..17E9 ; valid # 3.0 KHMER DIGIT ZERO..KHMER DIGIT NINE
+17EA..17EF ; disallowed # NA <reserved-17EA>..<reserved-17EF>
+17F0..17F9 ; valid ; ; NV8 # 4.0 KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+17FA..17FF ; disallowed # NA <reserved-17FA>..<reserved-17FF>
+1800..1805 ; valid ; ; NV8 # 3.0 MONGOLIAN BIRGA..MONGOLIAN FOUR DOTS
+1806 ; disallowed # 3.0 MONGOLIAN TODO SOFT HYPHEN
+1807..180A ; valid ; ; NV8 # 3.0 MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
+180B..180D ; ignored # 3.0 MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; disallowed # 3.0 MONGOLIAN VOWEL SEPARATOR
+180F ; ignored # 14.0 MONGOLIAN FREE VARIATION SELECTOR FOUR
+1810..1819 ; valid # 3.0 MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+181A..181F ; disallowed # NA <reserved-181A>..<reserved-181F>
+1820..1877 ; valid # 3.0 MONGOLIAN LETTER A..MONGOLIAN LETTER MANCHU ZHA
+1878 ; valid # 11.0 MONGOLIAN LETTER CHA WITH TWO DOTS
+1879..187F ; disallowed # NA <reserved-1879>..<reserved-187F>
+1880..18A9 ; valid # 3.0 MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI DAGALGA
+18AA ; valid # 5.1 MONGOLIAN LETTER MANCHU ALI GALI LHA
+18AB..18AF ; disallowed # NA <reserved-18AB>..<reserved-18AF>
+18B0..18F5 ; valid # 5.2 CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+18F6..18FF ; disallowed # NA <reserved-18F6>..<reserved-18FF>
+1900..191C ; valid # 4.0 LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER HA
+191D..191E ; valid # 7.0 LIMBU LETTER GYAN..LIMBU LETTER TRA
+191F ; disallowed # NA <reserved-191F>
+1920..192B ; valid # 4.0 LIMBU VOWEL SIGN A..LIMBU SUBJOINED LETTER WA
+192C..192F ; disallowed # NA <reserved-192C>..<reserved-192F>
+1930..193B ; valid # 4.0 LIMBU SMALL LETTER KA..LIMBU SIGN SA-I
+193C..193F ; disallowed # NA <reserved-193C>..<reserved-193F>
+1940 ; valid ; ; NV8 # 4.0 LIMBU SIGN LOO
+1941..1943 ; disallowed # NA <reserved-1941>..<reserved-1943>
+1944..1945 ; valid ; ; NV8 # 4.0 LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..196D ; valid # 4.0 LIMBU DIGIT ZERO..TAI LE LETTER AI
+196E..196F ; disallowed # NA <reserved-196E>..<reserved-196F>
+1970..1974 ; valid # 4.0 TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1975..197F ; disallowed # NA <reserved-1975>..<reserved-197F>
+1980..19A9 ; valid # 4.1 NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW XVA
+19AA..19AB ; valid # 5.2 NEW TAI LUE LETTER HIGH SUA..NEW TAI LUE LETTER LOW SUA
+19AC..19AF ; disallowed # NA <reserved-19AC>..<reserved-19AF>
+19B0..19C9 ; valid # 4.1 NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
+19CA..19CF ; disallowed # NA <reserved-19CA>..<reserved-19CF>
+19D0..19D9 ; valid # 4.1 NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA ; valid ; ; XV8 # 5.2 NEW TAI LUE THAM DIGIT ONE
+19DB..19DD ; disallowed # NA <reserved-19DB>..<reserved-19DD>
+19DE..19DF ; valid ; ; NV8 # 4.1 NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF ; valid ; ; NV8 # 4.0 KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A1B ; valid # 4.1 BUGINESE LETTER KA..BUGINESE VOWEL SIGN AE
+1A1C..1A1D ; disallowed # NA <reserved-1A1C>..<reserved-1A1D>
+1A1E..1A1F ; valid ; ; NV8 # 4.1 BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20..1A5E ; valid # 5.2 TAI THAM LETTER HIGH KA..TAI THAM CONSONANT SIGN SA
+1A5F ; disallowed # NA <reserved-1A5F>
+1A60..1A7C ; valid # 5.2 TAI THAM SIGN SAKOT..TAI THAM SIGN KHUEN-LUE KARAN
+1A7D..1A7E ; disallowed # NA <reserved-1A7D>..<reserved-1A7E>
+1A7F..1A89 ; valid # 5.2 TAI THAM COMBINING CRYPTOGRAMMIC DOT..TAI THAM HORA DIGIT NINE
+1A8A..1A8F ; disallowed # NA <reserved-1A8A>..<reserved-1A8F>
+1A90..1A99 ; valid # 5.2 TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1A9A..1A9F ; disallowed # NA <reserved-1A9A>..<reserved-1A9F>
+1AA0..1AA6 ; valid ; ; NV8 # 5.2 TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7 ; valid # 5.2 TAI THAM SIGN MAI YAMOK
+1AA8..1AAD ; valid ; ; NV8 # 5.2 TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AAE..1AAF ; disallowed # NA <reserved-1AAE>..<reserved-1AAF>
+1AB0..1ABD ; valid # 7.0 COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; valid ; ; NV8 # 7.0 COMBINING PARENTHESES OVERLAY
+1ABF..1AC0 ; valid # 13.0 COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
+1AC1..1ACE ; valid # 14.0 COMBINING LEFT PARENTHESIS ABOVE LEFT..COMBINING LATIN SMALL LETTER INSULAR T
+1ACF..1AFF ; disallowed # NA <reserved-1ACF>..<reserved-1AFF>
+1B00..1B4B ; valid # 5.0 BALINESE SIGN ULU RICEM..BALINESE LETTER ASYURA SASAK
+1B4C ; valid # 14.0 BALINESE LETTER ARCHAIC JNYA
+1B4D..1B4F ; disallowed # NA <reserved-1B4D>..<reserved-1B4F>
+1B50..1B59 ; valid # 5.0 BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B6A ; valid ; ; NV8 # 5.0 BALINESE PANTI..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73 ; valid # 5.0 BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C ; valid ; ; NV8 # 5.0 BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D..1B7E ; valid ; ; NV8 # 14.0 BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
+1B7F ; disallowed # NA <reserved-1B7F>
+1B80..1BAA ; valid # 5.1 SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PAMAAEH
+1BAB..1BAD ; valid # 6.1 SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAE..1BB9 ; valid # 5.1 SUNDANESE LETTER KHA..SUNDANESE DIGIT NINE
+1BBA..1BBF ; valid # 6.1 SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1BC0..1BF3 ; valid # 6.0 BATAK LETTER A..BATAK PANONGONAN
+1BF4..1BFB ; disallowed # NA <reserved-1BF4>..<reserved-1BFB>
+1BFC..1BFF ; valid ; ; NV8 # 6.0 BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00..1C37 ; valid # 5.1 LEPCHA LETTER KA..LEPCHA SIGN NUKTA
+1C38..1C3A ; disallowed # NA <reserved-1C38>..<reserved-1C3A>
+1C3B..1C3F ; valid ; ; NV8 # 5.1 LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49 ; valid # 5.1 LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4A..1C4C ; disallowed # NA <reserved-1C4A>..<reserved-1C4C>
+1C4D..1C7D ; valid # 5.1 LEPCHA LETTER TTA..OL CHIKI AHAD
+1C7E..1C7F ; valid ; ; NV8 # 5.1 OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1C80 ; mapped ; 0432 # 9.0 CYRILLIC SMALL LETTER ROUNDED VE
+1C81 ; mapped ; 0434 # 9.0 CYRILLIC SMALL LETTER LONG-LEGGED DE
+1C82 ; mapped ; 043E # 9.0 CYRILLIC SMALL LETTER NARROW O
+1C83 ; mapped ; 0441 # 9.0 CYRILLIC SMALL LETTER WIDE ES
+1C84..1C85 ; mapped ; 0442 # 9.0 CYRILLIC SMALL LETTER TALL TE..CYRILLIC SMALL LETTER THREE-LEGGED TE
+1C86 ; mapped ; 044A # 9.0 CYRILLIC SMALL LETTER TALL HARD SIGN
+1C87 ; mapped ; 0463 # 9.0 CYRILLIC SMALL LETTER TALL YAT
+1C88 ; mapped ; A64B # 9.0 CYRILLIC SMALL LETTER UNBLENDED UK
+1C89..1C8F ; disallowed # NA <reserved-1C89>..<reserved-1C8F>
+1C90 ; mapped ; 10D0 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AN
+1C91 ; mapped ; 10D1 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER BAN
+1C92 ; mapped ; 10D2 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER GAN
+1C93 ; mapped ; 10D3 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER DON
+1C94 ; mapped ; 10D4 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER EN
+1C95 ; mapped ; 10D5 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER VIN
+1C96 ; mapped ; 10D6 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ZEN
+1C97 ; mapped ; 10D7 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER TAN
+1C98 ; mapped ; 10D8 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER IN
+1C99 ; mapped ; 10D9 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER KAN
+1C9A ; mapped ; 10DA # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER LAS
+1C9B ; mapped ; 10DB # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER MAN
+1C9C ; mapped ; 10DC # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER NAR
+1C9D ; mapped ; 10DD # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ON
+1C9E ; mapped ; 10DE # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER PAR
+1C9F ; mapped ; 10DF # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ZHAR
+1CA0 ; mapped ; 10E0 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER RAE
+1CA1 ; mapped ; 10E1 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER SAN
+1CA2 ; mapped ; 10E2 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER TAR
+1CA3 ; mapped ; 10E3 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER UN
+1CA4 ; mapped ; 10E4 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER PHAR
+1CA5 ; mapped ; 10E5 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER KHAR
+1CA6 ; mapped ; 10E6 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER GHAN
+1CA7 ; mapped ; 10E7 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER QAR
+1CA8 ; mapped ; 10E8 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER SHIN
+1CA9 ; mapped ; 10E9 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CHIN
+1CAA ; mapped ; 10EA # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CAN
+1CAB ; mapped ; 10EB # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER JIL
+1CAC ; mapped ; 10EC # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CIL
+1CAD ; mapped ; 10ED # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER CHAR
+1CAE ; mapped ; 10EE # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER XAN
+1CAF ; mapped ; 10EF # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER JHAN
+1CB0 ; mapped ; 10F0 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HAE
+1CB1 ; mapped ; 10F1 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HE
+1CB2 ; mapped ; 10F2 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HIE
+1CB3 ; mapped ; 10F3 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER WE
+1CB4 ; mapped ; 10F4 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HAR
+1CB5 ; mapped ; 10F5 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HOE
+1CB6 ; mapped ; 10F6 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER FI
+1CB7 ; mapped ; 10F7 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER YN
+1CB8 ; mapped ; 10F8 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER ELIFI
+1CB9 ; mapped ; 10F9 # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN
+1CBA ; mapped ; 10FA # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBB..1CBC ; disallowed # NA <reserved-1CBB>..<reserved-1CBC>
+1CBD ; mapped ; 10FD # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER AEN
+1CBE ; mapped ; 10FE # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN
+1CBF ; mapped ; 10FF # 11.0 GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+1CC0..1CC7 ; valid ; ; NV8 # 6.1 SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CC8..1CCF ; disallowed # NA <reserved-1CC8>..<reserved-1CCF>
+1CD0..1CD2 ; valid # 5.2 VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3 ; valid ; ; NV8 # 5.2 VEDIC SIGN NIHSHVASA
+1CD4..1CF2 ; valid # 5.2 VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC SIGN ARDHAVISARGA
+1CF3..1CF6 ; valid # 6.1 VEDIC SIGN ROTATED ARDHAVISARGA..VEDIC SIGN UPADHMANIYA
+1CF7 ; valid # 10.0 VEDIC SIGN ATIKRAMA
+1CF8..1CF9 ; valid # 7.0 VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1CFA ; valid # 12.0 VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
+1CFB..1CFF ; disallowed # NA <reserved-1CFB>..<reserved-1CFF>
+1D00..1D2B ; valid # 4.0 LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C ; mapped ; 0061 # 4.0 MODIFIER LETTER CAPITAL A
+1D2D ; mapped ; 00E6 # 4.0 MODIFIER LETTER CAPITAL AE
+1D2E ; mapped ; 0062 # 4.0 MODIFIER LETTER CAPITAL B
+1D2F ; valid # 4.0 MODIFIER LETTER CAPITAL BARRED B
+1D30 ; mapped ; 0064 # 4.0 MODIFIER LETTER CAPITAL D
+1D31 ; mapped ; 0065 # 4.0 MODIFIER LETTER CAPITAL E
+1D32 ; mapped ; 01DD # 4.0 MODIFIER LETTER CAPITAL REVERSED E
+1D33 ; mapped ; 0067 # 4.0 MODIFIER LETTER CAPITAL G
+1D34 ; mapped ; 0068 # 4.0 MODIFIER LETTER CAPITAL H
+1D35 ; mapped ; 0069 # 4.0 MODIFIER LETTER CAPITAL I
+1D36 ; mapped ; 006A # 4.0 MODIFIER LETTER CAPITAL J
+1D37 ; mapped ; 006B # 4.0 MODIFIER LETTER CAPITAL K
+1D38 ; mapped ; 006C # 4.0 MODIFIER LETTER CAPITAL L
+1D39 ; mapped ; 006D # 4.0 MODIFIER LETTER CAPITAL M
+1D3A ; mapped ; 006E # 4.0 MODIFIER LETTER CAPITAL N
+1D3B ; valid # 4.0 MODIFIER LETTER CAPITAL REVERSED N
+1D3C ; mapped ; 006F # 4.0 MODIFIER LETTER CAPITAL O
+1D3D ; mapped ; 0223 # 4.0 MODIFIER LETTER CAPITAL OU
+1D3E ; mapped ; 0070 # 4.0 MODIFIER LETTER CAPITAL P
+1D3F ; mapped ; 0072 # 4.0 MODIFIER LETTER CAPITAL R
+1D40 ; mapped ; 0074 # 4.0 MODIFIER LETTER CAPITAL T
+1D41 ; mapped ; 0075 # 4.0 MODIFIER LETTER CAPITAL U
+1D42 ; mapped ; 0077 # 4.0 MODIFIER LETTER CAPITAL W
+1D43 ; mapped ; 0061 # 4.0 MODIFIER LETTER SMALL A
+1D44 ; mapped ; 0250 # 4.0 MODIFIER LETTER SMALL TURNED A
+1D45 ; mapped ; 0251 # 4.0 MODIFIER LETTER SMALL ALPHA
+1D46 ; mapped ; 1D02 # 4.0 MODIFIER LETTER SMALL TURNED AE
+1D47 ; mapped ; 0062 # 4.0 MODIFIER LETTER SMALL B
+1D48 ; mapped ; 0064 # 4.0 MODIFIER LETTER SMALL D
+1D49 ; mapped ; 0065 # 4.0 MODIFIER LETTER SMALL E
+1D4A ; mapped ; 0259 # 4.0 MODIFIER LETTER SMALL SCHWA
+1D4B ; mapped ; 025B # 4.0 MODIFIER LETTER SMALL OPEN E
+1D4C ; mapped ; 025C # 4.0 MODIFIER LETTER SMALL TURNED OPEN E
+1D4D ; mapped ; 0067 # 4.0 MODIFIER LETTER SMALL G
+1D4E ; valid # 4.0 MODIFIER LETTER SMALL TURNED I
+1D4F ; mapped ; 006B # 4.0 MODIFIER LETTER SMALL K
+1D50 ; mapped ; 006D # 4.0 MODIFIER LETTER SMALL M
+1D51 ; mapped ; 014B # 4.0 MODIFIER LETTER SMALL ENG
+1D52 ; mapped ; 006F # 4.0 MODIFIER LETTER SMALL O
+1D53 ; mapped ; 0254 # 4.0 MODIFIER LETTER SMALL OPEN O
+1D54 ; mapped ; 1D16 # 4.0 MODIFIER LETTER SMALL TOP HALF O
+1D55 ; mapped ; 1D17 # 4.0 MODIFIER LETTER SMALL BOTTOM HALF O
+1D56 ; mapped ; 0070 # 4.0 MODIFIER LETTER SMALL P
+1D57 ; mapped ; 0074 # 4.0 MODIFIER LETTER SMALL T
+1D58 ; mapped ; 0075 # 4.0 MODIFIER LETTER SMALL U
+1D59 ; mapped ; 1D1D # 4.0 MODIFIER LETTER SMALL SIDEWAYS U
+1D5A ; mapped ; 026F # 4.0 MODIFIER LETTER SMALL TURNED M
+1D5B ; mapped ; 0076 # 4.0 MODIFIER LETTER SMALL V
+1D5C ; mapped ; 1D25 # 4.0 MODIFIER LETTER SMALL AIN
+1D5D ; mapped ; 03B2 # 4.0 MODIFIER LETTER SMALL BETA
+1D5E ; mapped ; 03B3 # 4.0 MODIFIER LETTER SMALL GREEK GAMMA
+1D5F ; mapped ; 03B4 # 4.0 MODIFIER LETTER SMALL DELTA
+1D60 ; mapped ; 03C6 # 4.0 MODIFIER LETTER SMALL GREEK PHI
+1D61 ; mapped ; 03C7 # 4.0 MODIFIER LETTER SMALL CHI
+1D62 ; mapped ; 0069 # 4.0 LATIN SUBSCRIPT SMALL LETTER I
+1D63 ; mapped ; 0072 # 4.0 LATIN SUBSCRIPT SMALL LETTER R
+1D64 ; mapped ; 0075 # 4.0 LATIN SUBSCRIPT SMALL LETTER U
+1D65 ; mapped ; 0076 # 4.0 LATIN SUBSCRIPT SMALL LETTER V
+1D66 ; mapped ; 03B2 # 4.0 GREEK SUBSCRIPT SMALL LETTER BETA
+1D67 ; mapped ; 03B3 # 4.0 GREEK SUBSCRIPT SMALL LETTER GAMMA
+1D68 ; mapped ; 03C1 # 4.0 GREEK SUBSCRIPT SMALL LETTER RHO
+1D69 ; mapped ; 03C6 # 4.0 GREEK SUBSCRIPT SMALL LETTER PHI
+1D6A ; mapped ; 03C7 # 4.0 GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B ; valid # 4.0 LATIN SMALL LETTER UE
+1D6C..1D77 ; valid # 4.1 LATIN SMALL LETTER B WITH MIDDLE TILDE..LATIN SMALL LETTER TURNED G
+1D78 ; mapped ; 043D # 4.1 MODIFIER LETTER CYRILLIC EN
+1D79..1D9A ; valid # 4.1 LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B ; mapped ; 0252 # 4.1 MODIFIER LETTER SMALL TURNED ALPHA
+1D9C ; mapped ; 0063 # 4.1 MODIFIER LETTER SMALL C
+1D9D ; mapped ; 0255 # 4.1 MODIFIER LETTER SMALL C WITH CURL
+1D9E ; mapped ; 00F0 # 4.1 MODIFIER LETTER SMALL ETH
+1D9F ; mapped ; 025C # 4.1 MODIFIER LETTER SMALL REVERSED OPEN E
+1DA0 ; mapped ; 0066 # 4.1 MODIFIER LETTER SMALL F
+1DA1 ; mapped ; 025F # 4.1 MODIFIER LETTER SMALL DOTLESS J WITH STROKE
+1DA2 ; mapped ; 0261 # 4.1 MODIFIER LETTER SMALL SCRIPT G
+1DA3 ; mapped ; 0265 # 4.1 MODIFIER LETTER SMALL TURNED H
+1DA4 ; mapped ; 0268 # 4.1 MODIFIER LETTER SMALL I WITH STROKE
+1DA5 ; mapped ; 0269 # 4.1 MODIFIER LETTER SMALL IOTA
+1DA6 ; mapped ; 026A # 4.1 MODIFIER LETTER SMALL CAPITAL I
+1DA7 ; mapped ; 1D7B # 4.1 MODIFIER LETTER SMALL CAPITAL I WITH STROKE
+1DA8 ; mapped ; 029D # 4.1 MODIFIER LETTER SMALL J WITH CROSSED-TAIL
+1DA9 ; mapped ; 026D # 4.1 MODIFIER LETTER SMALL L WITH RETROFLEX HOOK
+1DAA ; mapped ; 1D85 # 4.1 MODIFIER LETTER SMALL L WITH PALATAL HOOK
+1DAB ; mapped ; 029F # 4.1 MODIFIER LETTER SMALL CAPITAL L
+1DAC ; mapped ; 0271 # 4.1 MODIFIER LETTER SMALL M WITH HOOK
+1DAD ; mapped ; 0270 # 4.1 MODIFIER LETTER SMALL TURNED M WITH LONG LEG
+1DAE ; mapped ; 0272 # 4.1 MODIFIER LETTER SMALL N WITH LEFT HOOK
+1DAF ; mapped ; 0273 # 4.1 MODIFIER LETTER SMALL N WITH RETROFLEX HOOK
+1DB0 ; mapped ; 0274 # 4.1 MODIFIER LETTER SMALL CAPITAL N
+1DB1 ; mapped ; 0275 # 4.1 MODIFIER LETTER SMALL BARRED O
+1DB2 ; mapped ; 0278 # 4.1 MODIFIER LETTER SMALL PHI
+1DB3 ; mapped ; 0282 # 4.1 MODIFIER LETTER SMALL S WITH HOOK
+1DB4 ; mapped ; 0283 # 4.1 MODIFIER LETTER SMALL ESH
+1DB5 ; mapped ; 01AB # 4.1 MODIFIER LETTER SMALL T WITH PALATAL HOOK
+1DB6 ; mapped ; 0289 # 4.1 MODIFIER LETTER SMALL U BAR
+1DB7 ; mapped ; 028A # 4.1 MODIFIER LETTER SMALL UPSILON
+1DB8 ; mapped ; 1D1C # 4.1 MODIFIER LETTER SMALL CAPITAL U
+1DB9 ; mapped ; 028B # 4.1 MODIFIER LETTER SMALL V WITH HOOK
+1DBA ; mapped ; 028C # 4.1 MODIFIER LETTER SMALL TURNED V
+1DBB ; mapped ; 007A # 4.1 MODIFIER LETTER SMALL Z
+1DBC ; mapped ; 0290 # 4.1 MODIFIER LETTER SMALL Z WITH RETROFLEX HOOK
+1DBD ; mapped ; 0291 # 4.1 MODIFIER LETTER SMALL Z WITH CURL
+1DBE ; mapped ; 0292 # 4.1 MODIFIER LETTER SMALL EZH
+1DBF ; mapped ; 03B8 # 4.1 MODIFIER LETTER SMALL THETA
+1DC0..1DC3 ; valid # 4.1 COMBINING DOTTED GRAVE ACCENT..COMBINING SUSPENSION MARK
+1DC4..1DCA ; valid # 5.0 COMBINING MACRON-ACUTE..COMBINING LATIN SMALL LETTER R BELOW
+1DCB..1DE6 ; valid # 5.1 COMBINING BREVE-MACRON..COMBINING LATIN SMALL LETTER Z
+1DE7..1DF5 ; valid # 7.0 COMBINING LATIN SMALL LETTER ALPHA..COMBINING UP TACK ABOVE
+1DF6..1DF9 ; valid # 10.0 COMBINING KAVYKA ABOVE RIGHT..COMBINING WIDE INVERTED BRIDGE BELOW
+1DFA ; valid # 14.0 COMBINING DOT BELOW LEFT
+1DFB ; valid # 9.0 COMBINING DELETION MARK
+1DFC ; valid # 6.0 COMBINING DOUBLE INVERTED BREVE BELOW
+1DFD ; valid # 5.2 COMBINING ALMOST EQUAL TO BELOW
+1DFE..1DFF ; valid # 5.0 COMBINING LEFT ARROWHEAD ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00 ; mapped ; 1E01 # 1.1 LATIN CAPITAL LETTER A WITH RING BELOW
+1E01 ; valid # 1.1 LATIN SMALL LETTER A WITH RING BELOW
+1E02 ; mapped ; 1E03 # 1.1 LATIN CAPITAL LETTER B WITH DOT ABOVE
+1E03 ; valid # 1.1 LATIN SMALL LETTER B WITH DOT ABOVE
+1E04 ; mapped ; 1E05 # 1.1 LATIN CAPITAL LETTER B WITH DOT BELOW
+1E05 ; valid # 1.1 LATIN SMALL LETTER B WITH DOT BELOW
+1E06 ; mapped ; 1E07 # 1.1 LATIN CAPITAL LETTER B WITH LINE BELOW
+1E07 ; valid # 1.1 LATIN SMALL LETTER B WITH LINE BELOW
+1E08 ; mapped ; 1E09 # 1.1 LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE
+1E09 ; valid # 1.1 LATIN SMALL LETTER C WITH CEDILLA AND ACUTE
+1E0A ; mapped ; 1E0B # 1.1 LATIN CAPITAL LETTER D WITH DOT ABOVE
+1E0B ; valid # 1.1 LATIN SMALL LETTER D WITH DOT ABOVE
+1E0C ; mapped ; 1E0D # 1.1 LATIN CAPITAL LETTER D WITH DOT BELOW
+1E0D ; valid # 1.1 LATIN SMALL LETTER D WITH DOT BELOW
+1E0E ; mapped ; 1E0F # 1.1 LATIN CAPITAL LETTER D WITH LINE BELOW
+1E0F ; valid # 1.1 LATIN SMALL LETTER D WITH LINE BELOW
+1E10 ; mapped ; 1E11 # 1.1 LATIN CAPITAL LETTER D WITH CEDILLA
+1E11 ; valid # 1.1 LATIN SMALL LETTER D WITH CEDILLA
+1E12 ; mapped ; 1E13 # 1.1 LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW
+1E13 ; valid # 1.1 LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW
+1E14 ; mapped ; 1E15 # 1.1 LATIN CAPITAL LETTER E WITH MACRON AND GRAVE
+1E15 ; valid # 1.1 LATIN SMALL LETTER E WITH MACRON AND GRAVE
+1E16 ; mapped ; 1E17 # 1.1 LATIN CAPITAL LETTER E WITH MACRON AND ACUTE
+1E17 ; valid # 1.1 LATIN SMALL LETTER E WITH MACRON AND ACUTE
+1E18 ; mapped ; 1E19 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW
+1E19 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW
+1E1A ; mapped ; 1E1B # 1.1 LATIN CAPITAL LETTER E WITH TILDE BELOW
+1E1B ; valid # 1.1 LATIN SMALL LETTER E WITH TILDE BELOW
+1E1C ; mapped ; 1E1D # 1.1 LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE
+1E1D ; valid # 1.1 LATIN SMALL LETTER E WITH CEDILLA AND BREVE
+1E1E ; mapped ; 1E1F # 1.1 LATIN CAPITAL LETTER F WITH DOT ABOVE
+1E1F ; valid # 1.1 LATIN SMALL LETTER F WITH DOT ABOVE
+1E20 ; mapped ; 1E21 # 1.1 LATIN CAPITAL LETTER G WITH MACRON
+1E21 ; valid # 1.1 LATIN SMALL LETTER G WITH MACRON
+1E22 ; mapped ; 1E23 # 1.1 LATIN CAPITAL LETTER H WITH DOT ABOVE
+1E23 ; valid # 1.1 LATIN SMALL LETTER H WITH DOT ABOVE
+1E24 ; mapped ; 1E25 # 1.1 LATIN CAPITAL LETTER H WITH DOT BELOW
+1E25 ; valid # 1.1 LATIN SMALL LETTER H WITH DOT BELOW
+1E26 ; mapped ; 1E27 # 1.1 LATIN CAPITAL LETTER H WITH DIAERESIS
+1E27 ; valid # 1.1 LATIN SMALL LETTER H WITH DIAERESIS
+1E28 ; mapped ; 1E29 # 1.1 LATIN CAPITAL LETTER H WITH CEDILLA
+1E29 ; valid # 1.1 LATIN SMALL LETTER H WITH CEDILLA
+1E2A ; mapped ; 1E2B # 1.1 LATIN CAPITAL LETTER H WITH BREVE BELOW
+1E2B ; valid # 1.1 LATIN SMALL LETTER H WITH BREVE BELOW
+1E2C ; mapped ; 1E2D # 1.1 LATIN CAPITAL LETTER I WITH TILDE BELOW
+1E2D ; valid # 1.1 LATIN SMALL LETTER I WITH TILDE BELOW
+1E2E ; mapped ; 1E2F # 1.1 LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE
+1E2F ; valid # 1.1 LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE
+1E30 ; mapped ; 1E31 # 1.1 LATIN CAPITAL LETTER K WITH ACUTE
+1E31 ; valid # 1.1 LATIN SMALL LETTER K WITH ACUTE
+1E32 ; mapped ; 1E33 # 1.1 LATIN CAPITAL LETTER K WITH DOT BELOW
+1E33 ; valid # 1.1 LATIN SMALL LETTER K WITH DOT BELOW
+1E34 ; mapped ; 1E35 # 1.1 LATIN CAPITAL LETTER K WITH LINE BELOW
+1E35 ; valid # 1.1 LATIN SMALL LETTER K WITH LINE BELOW
+1E36 ; mapped ; 1E37 # 1.1 LATIN CAPITAL LETTER L WITH DOT BELOW
+1E37 ; valid # 1.1 LATIN SMALL LETTER L WITH DOT BELOW
+1E38 ; mapped ; 1E39 # 1.1 LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON
+1E39 ; valid # 1.1 LATIN SMALL LETTER L WITH DOT BELOW AND MACRON
+1E3A ; mapped ; 1E3B # 1.1 LATIN CAPITAL LETTER L WITH LINE BELOW
+1E3B ; valid # 1.1 LATIN SMALL LETTER L WITH LINE BELOW
+1E3C ; mapped ; 1E3D # 1.1 LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW
+1E3D ; valid # 1.1 LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW
+1E3E ; mapped ; 1E3F # 1.1 LATIN CAPITAL LETTER M WITH ACUTE
+1E3F ; valid # 1.1 LATIN SMALL LETTER M WITH ACUTE
+1E40 ; mapped ; 1E41 # 1.1 LATIN CAPITAL LETTER M WITH DOT ABOVE
+1E41 ; valid # 1.1 LATIN SMALL LETTER M WITH DOT ABOVE
+1E42 ; mapped ; 1E43 # 1.1 LATIN CAPITAL LETTER M WITH DOT BELOW
+1E43 ; valid # 1.1 LATIN SMALL LETTER M WITH DOT BELOW
+1E44 ; mapped ; 1E45 # 1.1 LATIN CAPITAL LETTER N WITH DOT ABOVE
+1E45 ; valid # 1.1 LATIN SMALL LETTER N WITH DOT ABOVE
+1E46 ; mapped ; 1E47 # 1.1 LATIN CAPITAL LETTER N WITH DOT BELOW
+1E47 ; valid # 1.1 LATIN SMALL LETTER N WITH DOT BELOW
+1E48 ; mapped ; 1E49 # 1.1 LATIN CAPITAL LETTER N WITH LINE BELOW
+1E49 ; valid # 1.1 LATIN SMALL LETTER N WITH LINE BELOW
+1E4A ; mapped ; 1E4B # 1.1 LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW
+1E4B ; valid # 1.1 LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW
+1E4C ; mapped ; 1E4D # 1.1 LATIN CAPITAL LETTER O WITH TILDE AND ACUTE
+1E4D ; valid # 1.1 LATIN SMALL LETTER O WITH TILDE AND ACUTE
+1E4E ; mapped ; 1E4F # 1.1 LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS
+1E4F ; valid # 1.1 LATIN SMALL LETTER O WITH TILDE AND DIAERESIS
+1E50 ; mapped ; 1E51 # 1.1 LATIN CAPITAL LETTER O WITH MACRON AND GRAVE
+1E51 ; valid # 1.1 LATIN SMALL LETTER O WITH MACRON AND GRAVE
+1E52 ; mapped ; 1E53 # 1.1 LATIN CAPITAL LETTER O WITH MACRON AND ACUTE
+1E53 ; valid # 1.1 LATIN SMALL LETTER O WITH MACRON AND ACUTE
+1E54 ; mapped ; 1E55 # 1.1 LATIN CAPITAL LETTER P WITH ACUTE
+1E55 ; valid # 1.1 LATIN SMALL LETTER P WITH ACUTE
+1E56 ; mapped ; 1E57 # 1.1 LATIN CAPITAL LETTER P WITH DOT ABOVE
+1E57 ; valid # 1.1 LATIN SMALL LETTER P WITH DOT ABOVE
+1E58 ; mapped ; 1E59 # 1.1 LATIN CAPITAL LETTER R WITH DOT ABOVE
+1E59 ; valid # 1.1 LATIN SMALL LETTER R WITH DOT ABOVE
+1E5A ; mapped ; 1E5B # 1.1 LATIN CAPITAL LETTER R WITH DOT BELOW
+1E5B ; valid # 1.1 LATIN SMALL LETTER R WITH DOT BELOW
+1E5C ; mapped ; 1E5D # 1.1 LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON
+1E5D ; valid # 1.1 LATIN SMALL LETTER R WITH DOT BELOW AND MACRON
+1E5E ; mapped ; 1E5F # 1.1 LATIN CAPITAL LETTER R WITH LINE BELOW
+1E5F ; valid # 1.1 LATIN SMALL LETTER R WITH LINE BELOW
+1E60 ; mapped ; 1E61 # 1.1 LATIN CAPITAL LETTER S WITH DOT ABOVE
+1E61 ; valid # 1.1 LATIN SMALL LETTER S WITH DOT ABOVE
+1E62 ; mapped ; 1E63 # 1.1 LATIN CAPITAL LETTER S WITH DOT BELOW
+1E63 ; valid # 1.1 LATIN SMALL LETTER S WITH DOT BELOW
+1E64 ; mapped ; 1E65 # 1.1 LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE
+1E65 ; valid # 1.1 LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE
+1E66 ; mapped ; 1E67 # 1.1 LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE
+1E67 ; valid # 1.1 LATIN SMALL LETTER S WITH CARON AND DOT ABOVE
+1E68 ; mapped ; 1E69 # 1.1 LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E69 ; valid # 1.1 LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE
+1E6A ; mapped ; 1E6B # 1.1 LATIN CAPITAL LETTER T WITH DOT ABOVE
+1E6B ; valid # 1.1 LATIN SMALL LETTER T WITH DOT ABOVE
+1E6C ; mapped ; 1E6D # 1.1 LATIN CAPITAL LETTER T WITH DOT BELOW
+1E6D ; valid # 1.1 LATIN SMALL LETTER T WITH DOT BELOW
+1E6E ; mapped ; 1E6F # 1.1 LATIN CAPITAL LETTER T WITH LINE BELOW
+1E6F ; valid # 1.1 LATIN SMALL LETTER T WITH LINE BELOW
+1E70 ; mapped ; 1E71 # 1.1 LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW
+1E71 ; valid # 1.1 LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW
+1E72 ; mapped ; 1E73 # 1.1 LATIN CAPITAL LETTER U WITH DIAERESIS BELOW
+1E73 ; valid # 1.1 LATIN SMALL LETTER U WITH DIAERESIS BELOW
+1E74 ; mapped ; 1E75 # 1.1 LATIN CAPITAL LETTER U WITH TILDE BELOW
+1E75 ; valid # 1.1 LATIN SMALL LETTER U WITH TILDE BELOW
+1E76 ; mapped ; 1E77 # 1.1 LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW
+1E77 ; valid # 1.1 LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW
+1E78 ; mapped ; 1E79 # 1.1 LATIN CAPITAL LETTER U WITH TILDE AND ACUTE
+1E79 ; valid # 1.1 LATIN SMALL LETTER U WITH TILDE AND ACUTE
+1E7A ; mapped ; 1E7B # 1.1 LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS
+1E7B ; valid # 1.1 LATIN SMALL LETTER U WITH MACRON AND DIAERESIS
+1E7C ; mapped ; 1E7D # 1.1 LATIN CAPITAL LETTER V WITH TILDE
+1E7D ; valid # 1.1 LATIN SMALL LETTER V WITH TILDE
+1E7E ; mapped ; 1E7F # 1.1 LATIN CAPITAL LETTER V WITH DOT BELOW
+1E7F ; valid # 1.1 LATIN SMALL LETTER V WITH DOT BELOW
+1E80 ; mapped ; 1E81 # 1.1 LATIN CAPITAL LETTER W WITH GRAVE
+1E81 ; valid # 1.1 LATIN SMALL LETTER W WITH GRAVE
+1E82 ; mapped ; 1E83 # 1.1 LATIN CAPITAL LETTER W WITH ACUTE
+1E83 ; valid # 1.1 LATIN SMALL LETTER W WITH ACUTE
+1E84 ; mapped ; 1E85 # 1.1 LATIN CAPITAL LETTER W WITH DIAERESIS
+1E85 ; valid # 1.1 LATIN SMALL LETTER W WITH DIAERESIS
+1E86 ; mapped ; 1E87 # 1.1 LATIN CAPITAL LETTER W WITH DOT ABOVE
+1E87 ; valid # 1.1 LATIN SMALL LETTER W WITH DOT ABOVE
+1E88 ; mapped ; 1E89 # 1.1 LATIN CAPITAL LETTER W WITH DOT BELOW
+1E89 ; valid # 1.1 LATIN SMALL LETTER W WITH DOT BELOW
+1E8A ; mapped ; 1E8B # 1.1 LATIN CAPITAL LETTER X WITH DOT ABOVE
+1E8B ; valid # 1.1 LATIN SMALL LETTER X WITH DOT ABOVE
+1E8C ; mapped ; 1E8D # 1.1 LATIN CAPITAL LETTER X WITH DIAERESIS
+1E8D ; valid # 1.1 LATIN SMALL LETTER X WITH DIAERESIS
+1E8E ; mapped ; 1E8F # 1.1 LATIN CAPITAL LETTER Y WITH DOT ABOVE
+1E8F ; valid # 1.1 LATIN SMALL LETTER Y WITH DOT ABOVE
+1E90 ; mapped ; 1E91 # 1.1 LATIN CAPITAL LETTER Z WITH CIRCUMFLEX
+1E91 ; valid # 1.1 LATIN SMALL LETTER Z WITH CIRCUMFLEX
+1E92 ; mapped ; 1E93 # 1.1 LATIN CAPITAL LETTER Z WITH DOT BELOW
+1E93 ; valid # 1.1 LATIN SMALL LETTER Z WITH DOT BELOW
+1E94 ; mapped ; 1E95 # 1.1 LATIN CAPITAL LETTER Z WITH LINE BELOW
+1E95..1E99 ; valid # 1.1 LATIN SMALL LETTER Z WITH LINE BELOW..LATIN SMALL LETTER Y WITH RING ABOVE
+1E9A ; mapped ; 0061 02BE # 1.1 LATIN SMALL LETTER A WITH RIGHT HALF RING
+1E9B ; mapped ; 1E61 # 2.0 LATIN SMALL LETTER LONG S WITH DOT ABOVE
+1E9C..1E9D ; valid # 5.1 LATIN SMALL LETTER LONG S WITH DIAGONAL STROKE..LATIN SMALL LETTER LONG S WITH HIGH STROKE
+1E9E ; mapped ; 00DF # 5.1 LATIN CAPITAL LETTER SHARP S
+1E9F ; valid # 5.1 LATIN SMALL LETTER DELTA
+1EA0 ; mapped ; 1EA1 # 1.1 LATIN CAPITAL LETTER A WITH DOT BELOW
+1EA1 ; valid # 1.1 LATIN SMALL LETTER A WITH DOT BELOW
+1EA2 ; mapped ; 1EA3 # 1.1 LATIN CAPITAL LETTER A WITH HOOK ABOVE
+1EA3 ; valid # 1.1 LATIN SMALL LETTER A WITH HOOK ABOVE
+1EA4 ; mapped ; 1EA5 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA5 ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+1EA6 ; mapped ; 1EA7 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA7 ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+1EA8 ; mapped ; 1EA9 # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EA9 ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+1EAA ; mapped ; 1EAB # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAB ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+1EAC ; mapped ; 1EAD # 1.1 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAD ; valid # 1.1 LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
+1EAE ; mapped ; 1EAF # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
+1EAF ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND ACUTE
+1EB0 ; mapped ; 1EB1 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
+1EB1 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND GRAVE
+1EB2 ; mapped ; 1EB3 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
+1EB3 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+1EB4 ; mapped ; 1EB5 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND TILDE
+1EB5 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND TILDE
+1EB6 ; mapped ; 1EB7 # 1.1 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
+1EB7 ; valid # 1.1 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+1EB8 ; mapped ; 1EB9 # 1.1 LATIN CAPITAL LETTER E WITH DOT BELOW
+1EB9 ; valid # 1.1 LATIN SMALL LETTER E WITH DOT BELOW
+1EBA ; mapped ; 1EBB # 1.1 LATIN CAPITAL LETTER E WITH HOOK ABOVE
+1EBB ; valid # 1.1 LATIN SMALL LETTER E WITH HOOK ABOVE
+1EBC ; mapped ; 1EBD # 1.1 LATIN CAPITAL LETTER E WITH TILDE
+1EBD ; valid # 1.1 LATIN SMALL LETTER E WITH TILDE
+1EBE ; mapped ; 1EBF # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EBF ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+1EC0 ; mapped ; 1EC1 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC1 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+1EC2 ; mapped ; 1EC3 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC3 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+1EC4 ; mapped ; 1EC5 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC5 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+1EC6 ; mapped ; 1EC7 # 1.1 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC7 ; valid # 1.1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
+1EC8 ; mapped ; 1EC9 # 1.1 LATIN CAPITAL LETTER I WITH HOOK ABOVE
+1EC9 ; valid # 1.1 LATIN SMALL LETTER I WITH HOOK ABOVE
+1ECA ; mapped ; 1ECB # 1.1 LATIN CAPITAL LETTER I WITH DOT BELOW
+1ECB ; valid # 1.1 LATIN SMALL LETTER I WITH DOT BELOW
+1ECC ; mapped ; 1ECD # 1.1 LATIN CAPITAL LETTER O WITH DOT BELOW
+1ECD ; valid # 1.1 LATIN SMALL LETTER O WITH DOT BELOW
+1ECE ; mapped ; 1ECF # 1.1 LATIN CAPITAL LETTER O WITH HOOK ABOVE
+1ECF ; valid # 1.1 LATIN SMALL LETTER O WITH HOOK ABOVE
+1ED0 ; mapped ; 1ED1 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED1 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+1ED2 ; mapped ; 1ED3 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED3 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+1ED4 ; mapped ; 1ED5 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED5 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+1ED6 ; mapped ; 1ED7 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED7 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+1ED8 ; mapped ; 1ED9 # 1.1 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1ED9 ; valid # 1.1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+1EDA ; mapped ; 1EDB # 1.1 LATIN CAPITAL LETTER O WITH HORN AND ACUTE
+1EDB ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND ACUTE
+1EDC ; mapped ; 1EDD # 1.1 LATIN CAPITAL LETTER O WITH HORN AND GRAVE
+1EDD ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND GRAVE
+1EDE ; mapped ; 1EDF # 1.1 LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
+1EDF ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+1EE0 ; mapped ; 1EE1 # 1.1 LATIN CAPITAL LETTER O WITH HORN AND TILDE
+1EE1 ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND TILDE
+1EE2 ; mapped ; 1EE3 # 1.1 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
+1EE3 ; valid # 1.1 LATIN SMALL LETTER O WITH HORN AND DOT BELOW
+1EE4 ; mapped ; 1EE5 # 1.1 LATIN CAPITAL LETTER U WITH DOT BELOW
+1EE5 ; valid # 1.1 LATIN SMALL LETTER U WITH DOT BELOW
+1EE6 ; mapped ; 1EE7 # 1.1 LATIN CAPITAL LETTER U WITH HOOK ABOVE
+1EE7 ; valid # 1.1 LATIN SMALL LETTER U WITH HOOK ABOVE
+1EE8 ; mapped ; 1EE9 # 1.1 LATIN CAPITAL LETTER U WITH HORN AND ACUTE
+1EE9 ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND ACUTE
+1EEA ; mapped ; 1EEB # 1.1 LATIN CAPITAL LETTER U WITH HORN AND GRAVE
+1EEB ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND GRAVE
+1EEC ; mapped ; 1EED # 1.1 LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
+1EED ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+1EEE ; mapped ; 1EEF # 1.1 LATIN CAPITAL LETTER U WITH HORN AND TILDE
+1EEF ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND TILDE
+1EF0 ; mapped ; 1EF1 # 1.1 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
+1EF1 ; valid # 1.1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW
+1EF2 ; mapped ; 1EF3 # 1.1 LATIN CAPITAL LETTER Y WITH GRAVE
+1EF3 ; valid # 1.1 LATIN SMALL LETTER Y WITH GRAVE
+1EF4 ; mapped ; 1EF5 # 1.1 LATIN CAPITAL LETTER Y WITH DOT BELOW
+1EF5 ; valid # 1.1 LATIN SMALL LETTER Y WITH DOT BELOW
+1EF6 ; mapped ; 1EF7 # 1.1 LATIN CAPITAL LETTER Y WITH HOOK ABOVE
+1EF7 ; valid # 1.1 LATIN SMALL LETTER Y WITH HOOK ABOVE
+1EF8 ; mapped ; 1EF9 # 1.1 LATIN CAPITAL LETTER Y WITH TILDE
+1EF9 ; valid # 1.1 LATIN SMALL LETTER Y WITH TILDE
+1EFA ; mapped ; 1EFB # 5.1 LATIN CAPITAL LETTER MIDDLE-WELSH LL
+1EFB ; valid # 5.1 LATIN SMALL LETTER MIDDLE-WELSH LL
+1EFC ; mapped ; 1EFD # 5.1 LATIN CAPITAL LETTER MIDDLE-WELSH V
+1EFD ; valid # 5.1 LATIN SMALL LETTER MIDDLE-WELSH V
+1EFE ; mapped ; 1EFF # 5.1 LATIN CAPITAL LETTER Y WITH LOOP
+1EFF ; valid # 5.1 LATIN SMALL LETTER Y WITH LOOP
+1F00..1F07 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F08 ; mapped ; 1F00 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI
+1F09 ; mapped ; 1F01 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA
+1F0A ; mapped ; 1F02 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+1F0B ; mapped ; 1F03 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+1F0C ; mapped ; 1F04 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+1F0D ; mapped ; 1F05 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+1F0E ; mapped ; 1F06 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+1F0F ; mapped ; 1F07 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI
+1F10..1F15 ; valid # 1.1 GREEK SMALL LETTER EPSILON WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F16..1F17 ; disallowed # NA <reserved-1F16>..<reserved-1F17>
+1F18 ; mapped ; 1F10 # 1.1 GREEK CAPITAL LETTER EPSILON WITH PSILI
+1F19 ; mapped ; 1F11 # 1.1 GREEK CAPITAL LETTER EPSILON WITH DASIA
+1F1A ; mapped ; 1F12 # 1.1 GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA
+1F1B ; mapped ; 1F13 # 1.1 GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA
+1F1C ; mapped ; 1F14 # 1.1 GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA
+1F1D ; mapped ; 1F15 # 1.1 GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F1E..1F1F ; disallowed # NA <reserved-1F1E>..<reserved-1F1F>
+1F20..1F27 ; valid # 1.1 GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+1F28 ; mapped ; 1F20 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI
+1F29 ; mapped ; 1F21 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA
+1F2A ; mapped ; 1F22 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+1F2B ; mapped ; 1F23 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+1F2C ; mapped ; 1F24 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+1F2D ; mapped ; 1F25 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+1F2E ; mapped ; 1F26 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+1F2F ; mapped ; 1F27 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI
+1F30..1F37 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH PSILI..GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F38 ; mapped ; 1F30 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI
+1F39 ; mapped ; 1F31 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA
+1F3A ; mapped ; 1F32 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA
+1F3B ; mapped ; 1F33 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA
+1F3C ; mapped ; 1F34 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA
+1F3D ; mapped ; 1F35 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA
+1F3E ; mapped ; 1F36 # 1.1 GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI
+1F3F ; mapped ; 1F37 # 1.1 GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI
+1F40..1F45 ; valid # 1.1 GREEK SMALL LETTER OMICRON WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F46..1F47 ; disallowed # NA <reserved-1F46>..<reserved-1F47>
+1F48 ; mapped ; 1F40 # 1.1 GREEK CAPITAL LETTER OMICRON WITH PSILI
+1F49 ; mapped ; 1F41 # 1.1 GREEK CAPITAL LETTER OMICRON WITH DASIA
+1F4A ; mapped ; 1F42 # 1.1 GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA
+1F4B ; mapped ; 1F43 # 1.1 GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA
+1F4C ; mapped ; 1F44 # 1.1 GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA
+1F4D ; mapped ; 1F45 # 1.1 GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F4E..1F4F ; disallowed # NA <reserved-1F4E>..<reserved-1F4F>
+1F50..1F57 ; valid # 1.1 GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F58 ; disallowed # NA <reserved-1F58>
+1F59 ; mapped ; 1F51 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5A ; disallowed # NA <reserved-1F5A>
+1F5B ; mapped ; 1F53 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5C ; disallowed # NA <reserved-1F5C>
+1F5D ; mapped ; 1F55 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5E ; disallowed # NA <reserved-1F5E>
+1F5F ; mapped ; 1F57 # 1.1 GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F60..1F67 ; valid # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI..GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F68 ; mapped ; 1F60 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI
+1F69 ; mapped ; 1F61 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA
+1F6A ; mapped ; 1F62 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+1F6B ; mapped ; 1F63 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+1F6C ; mapped ; 1F64 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+1F6D ; mapped ; 1F65 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+1F6E ; mapped ; 1F66 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+1F6F ; mapped ; 1F67 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI
+1F70 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH VARIA
+1F71 ; mapped ; 03AC # 1.1 GREEK SMALL LETTER ALPHA WITH OXIA
+1F72 ; valid # 1.1 GREEK SMALL LETTER EPSILON WITH VARIA
+1F73 ; mapped ; 03AD # 1.1 GREEK SMALL LETTER EPSILON WITH OXIA
+1F74 ; valid # 1.1 GREEK SMALL LETTER ETA WITH VARIA
+1F75 ; mapped ; 03AE # 1.1 GREEK SMALL LETTER ETA WITH OXIA
+1F76 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH VARIA
+1F77 ; mapped ; 03AF # 1.1 GREEK SMALL LETTER IOTA WITH OXIA
+1F78 ; valid # 1.1 GREEK SMALL LETTER OMICRON WITH VARIA
+1F79 ; mapped ; 03CC # 1.1 GREEK SMALL LETTER OMICRON WITH OXIA
+1F7A ; valid # 1.1 GREEK SMALL LETTER UPSILON WITH VARIA
+1F7B ; mapped ; 03CD # 1.1 GREEK SMALL LETTER UPSILON WITH OXIA
+1F7C ; valid # 1.1 GREEK SMALL LETTER OMEGA WITH VARIA
+1F7D ; mapped ; 03CE # 1.1 GREEK SMALL LETTER OMEGA WITH OXIA
+1F7E..1F7F ; disallowed # NA <reserved-1F7E>..<reserved-1F7F>
+1F80 ; mapped ; 1F00 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+1F81 ; mapped ; 1F01 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+1F82 ; mapped ; 1F02 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F83 ; mapped ; 1F03 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F84 ; mapped ; 1F04 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F85 ; mapped ; 1F05 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F86 ; mapped ; 1F06 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F87 ; mapped ; 1F07 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F88 ; mapped ; 1F00 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI
+1F89 ; mapped ; 1F01 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI
+1F8A ; mapped ; 1F02 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F8B ; mapped ; 1F03 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F8C ; mapped ; 1F04 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F8D ; mapped ; 1F05 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F8E ; mapped ; 1F06 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F8F ; mapped ; 1F07 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1F90 ; mapped ; 1F20 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+1F91 ; mapped ; 1F21 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+1F92 ; mapped ; 1F22 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1F93 ; mapped ; 1F23 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1F94 ; mapped ; 1F24 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1F95 ; mapped ; 1F25 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1F96 ; mapped ; 1F26 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1F97 ; mapped ; 1F27 03B9 # 1.1 GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1F98 ; mapped ; 1F20 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI
+1F99 ; mapped ; 1F21 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI
+1F9A ; mapped ; 1F22 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1F9B ; mapped ; 1F23 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1F9C ; mapped ; 1F24 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1F9D ; mapped ; 1F25 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1F9E ; mapped ; 1F26 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1F9F ; mapped ; 1F27 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FA0 ; mapped ; 1F60 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+1FA1 ; mapped ; 1F61 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+1FA2 ; mapped ; 1F62 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+1FA3 ; mapped ; 1F63 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+1FA4 ; mapped ; 1F64 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+1FA5 ; mapped ; 1F65 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+1FA6 ; mapped ; 1F66 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+1FA7 ; mapped ; 1F67 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI
+1FA8 ; mapped ; 1F60 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI
+1FA9 ; mapped ; 1F61 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI
+1FAA ; mapped ; 1F62 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI
+1FAB ; mapped ; 1F63 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI
+1FAC ; mapped ; 1F64 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI
+1FAD ; mapped ; 1F65 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI
+1FAE ; mapped ; 1F66 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI
+1FAF ; mapped ; 1F67 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI
+1FB0..1FB1 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH VRACHY..GREEK SMALL LETTER ALPHA WITH MACRON
+1FB2 ; mapped ; 1F70 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+1FB3 ; mapped ; 03B1 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+1FB4 ; mapped ; 03AC 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB5 ; disallowed # NA <reserved-1FB5>
+1FB6 ; valid # 1.1 GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+1FB7 ; mapped ; 1FB6 03B9 # 1.1 GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FB8 ; mapped ; 1FB0 # 1.1 GREEK CAPITAL LETTER ALPHA WITH VRACHY
+1FB9 ; mapped ; 1FB1 # 1.1 GREEK CAPITAL LETTER ALPHA WITH MACRON
+1FBA ; mapped ; 1F70 # 1.1 GREEK CAPITAL LETTER ALPHA WITH VARIA
+1FBB ; mapped ; 03AC # 1.1 GREEK CAPITAL LETTER ALPHA WITH OXIA
+1FBC ; mapped ; 03B1 03B9 # 1.1 GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; disallowed_STD3_mapped ; 0020 0313 # 1.1 GREEK KORONIS
+1FBE ; mapped ; 03B9 # 1.1 GREEK PROSGEGRAMMENI
+1FBF ; disallowed_STD3_mapped ; 0020 0313 # 1.1 GREEK PSILI
+1FC0 ; disallowed_STD3_mapped ; 0020 0342 # 1.1 GREEK PERISPOMENI
+1FC1 ; disallowed_STD3_mapped ; 0020 0308 0342 #1.1 GREEK DIALYTIKA AND PERISPOMENI
+1FC2 ; mapped ; 1F74 03B9 # 1.1 GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+1FC3 ; mapped ; 03B7 03B9 # 1.1 GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+1FC4 ; mapped ; 03AE 03B9 # 1.1 GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC5 ; disallowed # NA <reserved-1FC5>
+1FC6 ; valid # 1.1 GREEK SMALL LETTER ETA WITH PERISPOMENI
+1FC7 ; mapped ; 1FC6 03B9 # 1.1 GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FC8 ; mapped ; 1F72 # 1.1 GREEK CAPITAL LETTER EPSILON WITH VARIA
+1FC9 ; mapped ; 03AD # 1.1 GREEK CAPITAL LETTER EPSILON WITH OXIA
+1FCA ; mapped ; 1F74 # 1.1 GREEK CAPITAL LETTER ETA WITH VARIA
+1FCB ; mapped ; 03AE # 1.1 GREEK CAPITAL LETTER ETA WITH OXIA
+1FCC ; mapped ; 03B7 03B9 # 1.1 GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD ; disallowed_STD3_mapped ; 0020 0313 0300 #1.1 GREEK PSILI AND VARIA
+1FCE ; disallowed_STD3_mapped ; 0020 0313 0301 #1.1 GREEK PSILI AND OXIA
+1FCF ; disallowed_STD3_mapped ; 0020 0313 0342 #1.1 GREEK PSILI AND PERISPOMENI
+1FD0..1FD2 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+1FD3 ; mapped ; 0390 # 1.1 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD4..1FD5 ; disallowed # NA <reserved-1FD4>..<reserved-1FD5>
+1FD6..1FD7 ; valid # 1.1 GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI
+1FD8 ; mapped ; 1FD0 # 1.1 GREEK CAPITAL LETTER IOTA WITH VRACHY
+1FD9 ; mapped ; 1FD1 # 1.1 GREEK CAPITAL LETTER IOTA WITH MACRON
+1FDA ; mapped ; 1F76 # 1.1 GREEK CAPITAL LETTER IOTA WITH VARIA
+1FDB ; mapped ; 03AF # 1.1 GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDC ; disallowed # NA <reserved-1FDC>
+1FDD ; disallowed_STD3_mapped ; 0020 0314 0300 #1.1 GREEK DASIA AND VARIA
+1FDE ; disallowed_STD3_mapped ; 0020 0314 0301 #1.1 GREEK DASIA AND OXIA
+1FDF ; disallowed_STD3_mapped ; 0020 0314 0342 #1.1 GREEK DASIA AND PERISPOMENI
+1FE0..1FE2 ; valid # 1.1 GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+1FE3 ; mapped ; 03B0 # 1.1 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+1FE4..1FE7 ; valid # 1.1 GREEK SMALL LETTER RHO WITH PSILI..GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI
+1FE8 ; mapped ; 1FE0 # 1.1 GREEK CAPITAL LETTER UPSILON WITH VRACHY
+1FE9 ; mapped ; 1FE1 # 1.1 GREEK CAPITAL LETTER UPSILON WITH MACRON
+1FEA ; mapped ; 1F7A # 1.1 GREEK CAPITAL LETTER UPSILON WITH VARIA
+1FEB ; mapped ; 03CD # 1.1 GREEK CAPITAL LETTER UPSILON WITH OXIA
+1FEC ; mapped ; 1FE5 # 1.1 GREEK CAPITAL LETTER RHO WITH DASIA
+1FED ; disallowed_STD3_mapped ; 0020 0308 0300 #1.1 GREEK DIALYTIKA AND VARIA
+1FEE ; disallowed_STD3_mapped ; 0020 0308 0301 #1.1 GREEK DIALYTIKA AND OXIA
+1FEF ; disallowed_STD3_mapped ; 0060 # 1.1 GREEK VARIA
+1FF0..1FF1 ; disallowed # NA <reserved-1FF0>..<reserved-1FF1>
+1FF2 ; mapped ; 1F7C 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+1FF3 ; mapped ; 03C9 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+1FF4 ; mapped ; 03CE 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF5 ; disallowed # NA <reserved-1FF5>
+1FF6 ; valid # 1.1 GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+1FF7 ; mapped ; 1FF6 03B9 # 1.1 GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+1FF8 ; mapped ; 1F78 # 1.1 GREEK CAPITAL LETTER OMICRON WITH VARIA
+1FF9 ; mapped ; 03CC # 1.1 GREEK CAPITAL LETTER OMICRON WITH OXIA
+1FFA ; mapped ; 1F7C # 1.1 GREEK CAPITAL LETTER OMEGA WITH VARIA
+1FFB ; mapped ; 03CE # 1.1 GREEK CAPITAL LETTER OMEGA WITH OXIA
+1FFC ; mapped ; 03C9 03B9 # 1.1 GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD ; disallowed_STD3_mapped ; 0020 0301 # 1.1 GREEK OXIA
+1FFE ; disallowed_STD3_mapped ; 0020 0314 # 1.1 GREEK DASIA
+1FFF ; disallowed # NA <reserved-1FFF>
+2000..200A ; disallowed_STD3_mapped ; 0020 # 1.1 EN QUAD..HAIR SPACE
+200B ; ignored # 1.1 ZERO WIDTH SPACE
+200C..200D ; deviation ; # 1.1 ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
+200E..200F ; disallowed # 1.1 LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+2010 ; valid ; ; NV8 # 1.1 HYPHEN
+2011 ; mapped ; 2010 # 1.1 NON-BREAKING HYPHEN
+2012..2016 ; valid ; ; NV8 # 1.1 FIGURE DASH..DOUBLE VERTICAL LINE
+2017 ; disallowed_STD3_mapped ; 0020 0333 # 1.1 DOUBLE LOW LINE
+2018..2023 ; valid ; ; NV8 # 1.1 LEFT SINGLE QUOTATION MARK..TRIANGULAR BULLET
+2024..2026 ; disallowed # 1.1 ONE DOT LEADER..HORIZONTAL ELLIPSIS
+2027 ; valid ; ; NV8 # 1.1 HYPHENATION POINT
+2028..202E ; disallowed # 1.1 LINE SEPARATOR..RIGHT-TO-LEFT OVERRIDE
+202F ; disallowed_STD3_mapped ; 0020 # 3.0 NARROW NO-BREAK SPACE
+2030..2032 ; valid ; ; NV8 # 1.1 PER MILLE SIGN..PRIME
+2033 ; mapped ; 2032 2032 # 1.1 DOUBLE PRIME
+2034 ; mapped ; 2032 2032 2032 #1.1 TRIPLE PRIME
+2035 ; valid ; ; NV8 # 1.1 REVERSED PRIME
+2036 ; mapped ; 2035 2035 # 1.1 REVERSED DOUBLE PRIME
+2037 ; mapped ; 2035 2035 2035 #1.1 REVERSED TRIPLE PRIME
+2038..203B ; valid ; ; NV8 # 1.1 CARET..REFERENCE MARK
+203C ; disallowed_STD3_mapped ; 0021 0021 # 1.1 DOUBLE EXCLAMATION MARK
+203D ; valid ; ; NV8 # 1.1 INTERROBANG
+203E ; disallowed_STD3_mapped ; 0020 0305 # 1.1 OVERLINE
+203F..2046 ; valid ; ; NV8 # 1.1 UNDERTIE..RIGHT SQUARE BRACKET WITH QUILL
+2047 ; disallowed_STD3_mapped ; 003F 003F # 3.2 DOUBLE QUESTION MARK
+2048 ; disallowed_STD3_mapped ; 003F 0021 # 3.0 QUESTION EXCLAMATION MARK
+2049 ; disallowed_STD3_mapped ; 0021 003F # 3.0 EXCLAMATION QUESTION MARK
+204A..204D ; valid ; ; NV8 # 3.0 TIRONIAN SIGN ET..BLACK RIGHTWARDS BULLET
+204E..2052 ; valid ; ; NV8 # 3.2 LOW ASTERISK..COMMERCIAL MINUS SIGN
+2053..2054 ; valid ; ; NV8 # 4.0 SWUNG DASH..INVERTED UNDERTIE
+2055..2056 ; valid ; ; NV8 # 4.1 FLOWER PUNCTUATION MARK..THREE DOT PUNCTUATION
+2057 ; mapped ; 2032 2032 2032 2032 #3.2 QUADRUPLE PRIME
+2058..205E ; valid ; ; NV8 # 4.1 FOUR DOT PUNCTUATION..VERTICAL FOUR DOTS
+205F ; disallowed_STD3_mapped ; 0020 # 3.2 MEDIUM MATHEMATICAL SPACE
+2060 ; ignored # 3.2 WORD JOINER
+2061..2063 ; disallowed # 3.2 FUNCTION APPLICATION..INVISIBLE SEPARATOR
+2064 ; ignored # 5.1 INVISIBLE PLUS
+2065 ; disallowed # NA <reserved-2065>
+2066..2069 ; disallowed # 6.3 LEFT-TO-RIGHT ISOLATE..POP DIRECTIONAL ISOLATE
+206A..206F ; disallowed # 1.1 INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES
+2070 ; mapped ; 0030 # 1.1 SUPERSCRIPT ZERO
+2071 ; mapped ; 0069 # 3.2 SUPERSCRIPT LATIN SMALL LETTER I
+2072..2073 ; disallowed # NA <reserved-2072>..<reserved-2073>
+2074 ; mapped ; 0034 # 1.1 SUPERSCRIPT FOUR
+2075 ; mapped ; 0035 # 1.1 SUPERSCRIPT FIVE
+2076 ; mapped ; 0036 # 1.1 SUPERSCRIPT SIX
+2077 ; mapped ; 0037 # 1.1 SUPERSCRIPT SEVEN
+2078 ; mapped ; 0038 # 1.1 SUPERSCRIPT EIGHT
+2079 ; mapped ; 0039 # 1.1 SUPERSCRIPT NINE
+207A ; disallowed_STD3_mapped ; 002B # 1.1 SUPERSCRIPT PLUS SIGN
+207B ; mapped ; 2212 # 1.1 SUPERSCRIPT MINUS
+207C ; disallowed_STD3_mapped ; 003D # 1.1 SUPERSCRIPT EQUALS SIGN
+207D ; disallowed_STD3_mapped ; 0028 # 1.1 SUPERSCRIPT LEFT PARENTHESIS
+207E ; disallowed_STD3_mapped ; 0029 # 1.1 SUPERSCRIPT RIGHT PARENTHESIS
+207F ; mapped ; 006E # 1.1 SUPERSCRIPT LATIN SMALL LETTER N
+2080 ; mapped ; 0030 # 1.1 SUBSCRIPT ZERO
+2081 ; mapped ; 0031 # 1.1 SUBSCRIPT ONE
+2082 ; mapped ; 0032 # 1.1 SUBSCRIPT TWO
+2083 ; mapped ; 0033 # 1.1 SUBSCRIPT THREE
+2084 ; mapped ; 0034 # 1.1 SUBSCRIPT FOUR
+2085 ; mapped ; 0035 # 1.1 SUBSCRIPT FIVE
+2086 ; mapped ; 0036 # 1.1 SUBSCRIPT SIX
+2087 ; mapped ; 0037 # 1.1 SUBSCRIPT SEVEN
+2088 ; mapped ; 0038 # 1.1 SUBSCRIPT EIGHT
+2089 ; mapped ; 0039 # 1.1 SUBSCRIPT NINE
+208A ; disallowed_STD3_mapped ; 002B # 1.1 SUBSCRIPT PLUS SIGN
+208B ; mapped ; 2212 # 1.1 SUBSCRIPT MINUS
+208C ; disallowed_STD3_mapped ; 003D # 1.1 SUBSCRIPT EQUALS SIGN
+208D ; disallowed_STD3_mapped ; 0028 # 1.1 SUBSCRIPT LEFT PARENTHESIS
+208E ; disallowed_STD3_mapped ; 0029 # 1.1 SUBSCRIPT RIGHT PARENTHESIS
+208F ; disallowed # NA <reserved-208F>
+2090 ; mapped ; 0061 # 4.1 LATIN SUBSCRIPT SMALL LETTER A
+2091 ; mapped ; 0065 # 4.1 LATIN SUBSCRIPT SMALL LETTER E
+2092 ; mapped ; 006F # 4.1 LATIN SUBSCRIPT SMALL LETTER O
+2093 ; mapped ; 0078 # 4.1 LATIN SUBSCRIPT SMALL LETTER X
+2094 ; mapped ; 0259 # 4.1 LATIN SUBSCRIPT SMALL LETTER SCHWA
+2095 ; mapped ; 0068 # 6.0 LATIN SUBSCRIPT SMALL LETTER H
+2096 ; mapped ; 006B # 6.0 LATIN SUBSCRIPT SMALL LETTER K
+2097 ; mapped ; 006C # 6.0 LATIN SUBSCRIPT SMALL LETTER L
+2098 ; mapped ; 006D # 6.0 LATIN SUBSCRIPT SMALL LETTER M
+2099 ; mapped ; 006E # 6.0 LATIN SUBSCRIPT SMALL LETTER N
+209A ; mapped ; 0070 # 6.0 LATIN SUBSCRIPT SMALL LETTER P
+209B ; mapped ; 0073 # 6.0 LATIN SUBSCRIPT SMALL LETTER S
+209C ; mapped ; 0074 # 6.0 LATIN SUBSCRIPT SMALL LETTER T
+209D..209F ; disallowed # NA <reserved-209D>..<reserved-209F>
+20A0..20A7 ; valid ; ; NV8 # 1.1 EURO-CURRENCY SIGN..PESETA SIGN
+20A8 ; mapped ; 0072 0073 # 1.1 RUPEE SIGN
+20A9..20AA ; valid ; ; NV8 # 1.1 WON SIGN..NEW SHEQEL SIGN
+20AB ; valid ; ; NV8 # 2.0 DONG SIGN
+20AC ; valid ; ; NV8 # 2.1 EURO SIGN
+20AD..20AF ; valid ; ; NV8 # 3.0 KIP SIGN..DRACHMA SIGN
+20B0..20B1 ; valid ; ; NV8 # 3.2 GERMAN PENNY SIGN..PESO SIGN
+20B2..20B5 ; valid ; ; NV8 # 4.1 GUARANI SIGN..CEDI SIGN
+20B6..20B8 ; valid ; ; NV8 # 5.2 LIVRE TOURNOIS SIGN..TENGE SIGN
+20B9 ; valid ; ; NV8 # 6.0 INDIAN RUPEE SIGN
+20BA ; valid ; ; NV8 # 6.2 TURKISH LIRA SIGN
+20BB..20BD ; valid ; ; NV8 # 7.0 NORDIC MARK SIGN..RUBLE SIGN
+20BE ; valid ; ; NV8 # 8.0 LARI SIGN
+20BF ; valid ; ; NV8 # 10.0 BITCOIN SIGN
+20C0 ; valid ; ; NV8 # 14.0 SOM SIGN
+20C1..20CF ; disallowed # NA <reserved-20C1>..<reserved-20CF>
+20D0..20E1 ; valid ; ; NV8 # 1.1 COMBINING LEFT HARPOON ABOVE..COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E3 ; valid ; ; NV8 # 3.0 COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING KEYCAP
+20E4..20EA ; valid ; ; NV8 # 3.2 COMBINING ENCLOSING UPWARD POINTING TRIANGLE..COMBINING LEFTWARDS ARROW OVERLAY
+20EB ; valid ; ; NV8 # 4.1 COMBINING LONG DOUBLE SOLIDUS OVERLAY
+20EC..20EF ; valid ; ; NV8 # 5.0 COMBINING RIGHTWARDS HARPOON WITH BARB DOWNWARDS..COMBINING RIGHT ARROW BELOW
+20F0 ; valid ; ; NV8 # 5.1 COMBINING ASTERISK ABOVE
+20F1..20FF ; disallowed # NA <reserved-20F1>..<reserved-20FF>
+2100 ; disallowed_STD3_mapped ; 0061 002F 0063 #1.1 ACCOUNT OF
+2101 ; disallowed_STD3_mapped ; 0061 002F 0073 #1.1 ADDRESSED TO THE SUBJECT
+2102 ; mapped ; 0063 # 1.1 DOUBLE-STRUCK CAPITAL C
+2103 ; mapped ; 00B0 0063 # 1.1 DEGREE CELSIUS
+2104 ; valid ; ; NV8 # 1.1 CENTRE LINE SYMBOL
+2105 ; disallowed_STD3_mapped ; 0063 002F 006F #1.1 CARE OF
+2106 ; disallowed_STD3_mapped ; 0063 002F 0075 #1.1 CADA UNA
+2107 ; mapped ; 025B # 1.1 EULER CONSTANT
+2108 ; valid ; ; NV8 # 1.1 SCRUPLE
+2109 ; mapped ; 00B0 0066 # 1.1 DEGREE FAHRENHEIT
+210A ; mapped ; 0067 # 1.1 SCRIPT SMALL G
+210B..210E ; mapped ; 0068 # 1.1 SCRIPT CAPITAL H..PLANCK CONSTANT
+210F ; mapped ; 0127 # 1.1 PLANCK CONSTANT OVER TWO PI
+2110..2111 ; mapped ; 0069 # 1.1 SCRIPT CAPITAL I..BLACK-LETTER CAPITAL I
+2112..2113 ; mapped ; 006C # 1.1 SCRIPT CAPITAL L..SCRIPT SMALL L
+2114 ; valid ; ; NV8 # 1.1 L B BAR SYMBOL
+2115 ; mapped ; 006E # 1.1 DOUBLE-STRUCK CAPITAL N
+2116 ; mapped ; 006E 006F # 1.1 NUMERO SIGN
+2117..2118 ; valid ; ; NV8 # 1.1 SOUND RECORDING COPYRIGHT..SCRIPT CAPITAL P
+2119 ; mapped ; 0070 # 1.1 DOUBLE-STRUCK CAPITAL P
+211A ; mapped ; 0071 # 1.1 DOUBLE-STRUCK CAPITAL Q
+211B..211D ; mapped ; 0072 # 1.1 SCRIPT CAPITAL R..DOUBLE-STRUCK CAPITAL R
+211E..211F ; valid ; ; NV8 # 1.1 PRESCRIPTION TAKE..RESPONSE
+2120 ; mapped ; 0073 006D # 1.1 SERVICE MARK
+2121 ; mapped ; 0074 0065 006C #1.1 TELEPHONE SIGN
+2122 ; mapped ; 0074 006D # 1.1 TRADE MARK SIGN
+2123 ; valid ; ; NV8 # 1.1 VERSICLE
+2124 ; mapped ; 007A # 1.1 DOUBLE-STRUCK CAPITAL Z
+2125 ; valid ; ; NV8 # 1.1 OUNCE SIGN
+2126 ; mapped ; 03C9 # 1.1 OHM SIGN
+2127 ; valid ; ; NV8 # 1.1 INVERTED OHM SIGN
+2128 ; mapped ; 007A # 1.1 BLACK-LETTER CAPITAL Z
+2129 ; valid ; ; NV8 # 1.1 TURNED GREEK SMALL LETTER IOTA
+212A ; mapped ; 006B # 1.1 KELVIN SIGN
+212B ; mapped ; 00E5 # 1.1 ANGSTROM SIGN
+212C ; mapped ; 0062 # 1.1 SCRIPT CAPITAL B
+212D ; mapped ; 0063 # 1.1 BLACK-LETTER CAPITAL C
+212E ; valid ; ; NV8 # 1.1 ESTIMATED SYMBOL
+212F..2130 ; mapped ; 0065 # 1.1 SCRIPT SMALL E..SCRIPT CAPITAL E
+2131 ; mapped ; 0066 # 1.1 SCRIPT CAPITAL F
+2132 ; disallowed # 1.1 TURNED CAPITAL F
+2133 ; mapped ; 006D # 1.1 SCRIPT CAPITAL M
+2134 ; mapped ; 006F # 1.1 SCRIPT SMALL O
+2135 ; mapped ; 05D0 # 1.1 ALEF SYMBOL
+2136 ; mapped ; 05D1 # 1.1 BET SYMBOL
+2137 ; mapped ; 05D2 # 1.1 GIMEL SYMBOL
+2138 ; mapped ; 05D3 # 1.1 DALET SYMBOL
+2139 ; mapped ; 0069 # 3.0 INFORMATION SOURCE
+213A ; valid ; ; NV8 # 3.0 ROTATED CAPITAL Q
+213B ; mapped ; 0066 0061 0078 #4.0 FACSIMILE SIGN
+213C ; mapped ; 03C0 # 4.1 DOUBLE-STRUCK SMALL PI
+213D..213E ; mapped ; 03B3 # 3.2 DOUBLE-STRUCK SMALL GAMMA..DOUBLE-STRUCK CAPITAL GAMMA
+213F ; mapped ; 03C0 # 3.2 DOUBLE-STRUCK CAPITAL PI
+2140 ; mapped ; 2211 # 3.2 DOUBLE-STRUCK N-ARY SUMMATION
+2141..2144 ; valid ; ; NV8 # 3.2 TURNED SANS-SERIF CAPITAL G..TURNED SANS-SERIF CAPITAL Y
+2145..2146 ; mapped ; 0064 # 3.2 DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL D
+2147 ; mapped ; 0065 # 3.2 DOUBLE-STRUCK ITALIC SMALL E
+2148 ; mapped ; 0069 # 3.2 DOUBLE-STRUCK ITALIC SMALL I
+2149 ; mapped ; 006A # 3.2 DOUBLE-STRUCK ITALIC SMALL J
+214A..214B ; valid ; ; NV8 # 3.2 PROPERTY LINE..TURNED AMPERSAND
+214C ; valid ; ; NV8 # 4.1 PER SIGN
+214D ; valid ; ; NV8 # 5.0 AKTIESELSKAB
+214E ; valid # 5.0 TURNED SMALL F
+214F ; valid ; ; NV8 # 5.1 SYMBOL FOR SAMARITAN SOURCE
+2150 ; mapped ; 0031 2044 0037 #5.2 VULGAR FRACTION ONE SEVENTH
+2151 ; mapped ; 0031 2044 0039 #5.2 VULGAR FRACTION ONE NINTH
+2152 ; mapped ; 0031 2044 0031 0030 #5.2 VULGAR FRACTION ONE TENTH
+2153 ; mapped ; 0031 2044 0033 #1.1 VULGAR FRACTION ONE THIRD
+2154 ; mapped ; 0032 2044 0033 #1.1 VULGAR FRACTION TWO THIRDS
+2155 ; mapped ; 0031 2044 0035 #1.1 VULGAR FRACTION ONE FIFTH
+2156 ; mapped ; 0032 2044 0035 #1.1 VULGAR FRACTION TWO FIFTHS
+2157 ; mapped ; 0033 2044 0035 #1.1 VULGAR FRACTION THREE FIFTHS
+2158 ; mapped ; 0034 2044 0035 #1.1 VULGAR FRACTION FOUR FIFTHS
+2159 ; mapped ; 0031 2044 0036 #1.1 VULGAR FRACTION ONE SIXTH
+215A ; mapped ; 0035 2044 0036 #1.1 VULGAR FRACTION FIVE SIXTHS
+215B ; mapped ; 0031 2044 0038 #1.1 VULGAR FRACTION ONE EIGHTH
+215C ; mapped ; 0033 2044 0038 #1.1 VULGAR FRACTION THREE EIGHTHS
+215D ; mapped ; 0035 2044 0038 #1.1 VULGAR FRACTION FIVE EIGHTHS
+215E ; mapped ; 0037 2044 0038 #1.1 VULGAR FRACTION SEVEN EIGHTHS
+215F ; mapped ; 0031 2044 # 1.1 FRACTION NUMERATOR ONE
+2160 ; mapped ; 0069 # 1.1 ROMAN NUMERAL ONE
+2161 ; mapped ; 0069 0069 # 1.1 ROMAN NUMERAL TWO
+2162 ; mapped ; 0069 0069 0069 #1.1 ROMAN NUMERAL THREE
+2163 ; mapped ; 0069 0076 # 1.1 ROMAN NUMERAL FOUR
+2164 ; mapped ; 0076 # 1.1 ROMAN NUMERAL FIVE
+2165 ; mapped ; 0076 0069 # 1.1 ROMAN NUMERAL SIX
+2166 ; mapped ; 0076 0069 0069 #1.1 ROMAN NUMERAL SEVEN
+2167 ; mapped ; 0076 0069 0069 0069 #1.1 ROMAN NUMERAL EIGHT
+2168 ; mapped ; 0069 0078 # 1.1 ROMAN NUMERAL NINE
+2169 ; mapped ; 0078 # 1.1 ROMAN NUMERAL TEN
+216A ; mapped ; 0078 0069 # 1.1 ROMAN NUMERAL ELEVEN
+216B ; mapped ; 0078 0069 0069 #1.1 ROMAN NUMERAL TWELVE
+216C ; mapped ; 006C # 1.1 ROMAN NUMERAL FIFTY
+216D ; mapped ; 0063 # 1.1 ROMAN NUMERAL ONE HUNDRED
+216E ; mapped ; 0064 # 1.1 ROMAN NUMERAL FIVE HUNDRED
+216F ; mapped ; 006D # 1.1 ROMAN NUMERAL ONE THOUSAND
+2170 ; mapped ; 0069 # 1.1 SMALL ROMAN NUMERAL ONE
+2171 ; mapped ; 0069 0069 # 1.1 SMALL ROMAN NUMERAL TWO
+2172 ; mapped ; 0069 0069 0069 #1.1 SMALL ROMAN NUMERAL THREE
+2173 ; mapped ; 0069 0076 # 1.1 SMALL ROMAN NUMERAL FOUR
+2174 ; mapped ; 0076 # 1.1 SMALL ROMAN NUMERAL FIVE
+2175 ; mapped ; 0076 0069 # 1.1 SMALL ROMAN NUMERAL SIX
+2176 ; mapped ; 0076 0069 0069 #1.1 SMALL ROMAN NUMERAL SEVEN
+2177 ; mapped ; 0076 0069 0069 0069 #1.1 SMALL ROMAN NUMERAL EIGHT
+2178 ; mapped ; 0069 0078 # 1.1 SMALL ROMAN NUMERAL NINE
+2179 ; mapped ; 0078 # 1.1 SMALL ROMAN NUMERAL TEN
+217A ; mapped ; 0078 0069 # 1.1 SMALL ROMAN NUMERAL ELEVEN
+217B ; mapped ; 0078 0069 0069 #1.1 SMALL ROMAN NUMERAL TWELVE
+217C ; mapped ; 006C # 1.1 SMALL ROMAN NUMERAL FIFTY
+217D ; mapped ; 0063 # 1.1 SMALL ROMAN NUMERAL ONE HUNDRED
+217E ; mapped ; 0064 # 1.1 SMALL ROMAN NUMERAL FIVE HUNDRED
+217F ; mapped ; 006D # 1.1 SMALL ROMAN NUMERAL ONE THOUSAND
+2180..2182 ; valid ; ; NV8 # 1.1 ROMAN NUMERAL ONE THOUSAND C D..ROMAN NUMERAL TEN THOUSAND
+2183 ; disallowed # 3.0 ROMAN NUMERAL REVERSED ONE HUNDRED
+2184 ; valid # 5.0 LATIN SMALL LETTER REVERSED C
+2185..2188 ; valid ; ; NV8 # 5.1 ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2189 ; mapped ; 0030 2044 0033 #5.2 VULGAR FRACTION ZERO THIRDS
+218A..218B ; valid ; ; NV8 # 8.0 TURNED DIGIT TWO..TURNED DIGIT THREE
+218C..218F ; disallowed # NA <reserved-218C>..<reserved-218F>
+2190..21EA ; valid ; ; NV8 # 1.1 LEFTWARDS ARROW..UPWARDS WHITE ARROW FROM BAR
+21EB..21F3 ; valid ; ; NV8 # 3.0 UPWARDS WHITE ARROW ON PEDESTAL..UP DOWN WHITE ARROW
+21F4..21FF ; valid ; ; NV8 # 3.2 RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
+2200..222B ; valid ; ; NV8 # 1.1 FOR ALL..INTEGRAL
+222C ; mapped ; 222B 222B # 1.1 DOUBLE INTEGRAL
+222D ; mapped ; 222B 222B 222B #1.1 TRIPLE INTEGRAL
+222E ; valid ; ; NV8 # 1.1 CONTOUR INTEGRAL
+222F ; mapped ; 222E 222E # 1.1 SURFACE INTEGRAL
+2230 ; mapped ; 222E 222E 222E #1.1 VOLUME INTEGRAL
+2231..22F1 ; valid ; ; NV8 # 1.1 CLOCKWISE INTEGRAL..DOWN RIGHT DIAGONAL ELLIPSIS
+22F2..22FF ; valid ; ; NV8 # 3.2 ELEMENT OF WITH LONG HORIZONTAL STROKE..Z NOTATION BAG MEMBERSHIP
+2300 ; valid ; ; NV8 # 1.1 DIAMETER SIGN
+2301 ; valid ; ; NV8 # 3.0 ELECTRIC ARROW
+2302..2328 ; valid ; ; NV8 # 1.1 HOUSE..KEYBOARD
+2329 ; mapped ; 3008 # 1.1 LEFT-POINTING ANGLE BRACKET
+232A ; mapped ; 3009 # 1.1 RIGHT-POINTING ANGLE BRACKET
+232B..237A ; valid ; ; NV8 # 1.1 ERASE TO THE LEFT..APL FUNCTIONAL SYMBOL ALPHA
+237B ; valid ; ; NV8 # 3.0 NOT CHECK MARK
+237C ; valid ; ; NV8 # 3.2 RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A ; valid ; ; NV8 # 3.0 SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23CE ; valid ; ; NV8 # 3.2 LEFT PARENTHESIS UPPER HOOK..RETURN SYMBOL
+23CF..23D0 ; valid ; ; NV8 # 4.0 EJECT SYMBOL..VERTICAL LINE EXTENSION
+23D1..23DB ; valid ; ; NV8 # 4.1 METRICAL BREVE..FUSE
+23DC..23E7 ; valid ; ; NV8 # 5.0 TOP PARENTHESIS..ELECTRICAL INTERSECTION
+23E8 ; valid ; ; NV8 # 5.2 DECIMAL EXPONENT SYMBOL
+23E9..23F3 ; valid ; ; NV8 # 6.0 BLACK RIGHT-POINTING DOUBLE TRIANGLE..HOURGLASS WITH FLOWING SAND
+23F4..23FA ; valid ; ; NV8 # 7.0 BLACK MEDIUM LEFT-POINTING TRIANGLE..BLACK CIRCLE FOR RECORD
+23FB..23FE ; valid ; ; NV8 # 9.0 POWER SYMBOL..POWER SLEEP SYMBOL
+23FF ; valid ; ; NV8 # 10.0 OBSERVER EYE SYMBOL
+2400..2424 ; valid ; ; NV8 # 1.1 SYMBOL FOR NULL..SYMBOL FOR NEWLINE
+2425..2426 ; valid ; ; NV8 # 3.0 SYMBOL FOR DELETE FORM TWO..SYMBOL FOR SUBSTITUTE FORM TWO
+2427..243F ; disallowed # NA <reserved-2427>..<reserved-243F>
+2440..244A ; valid ; ; NV8 # 1.1 OCR HOOK..OCR DOUBLE BACKSLASH
+244B..245F ; disallowed # NA <reserved-244B>..<reserved-245F>
+2460 ; mapped ; 0031 # 1.1 CIRCLED DIGIT ONE
+2461 ; mapped ; 0032 # 1.1 CIRCLED DIGIT TWO
+2462 ; mapped ; 0033 # 1.1 CIRCLED DIGIT THREE
+2463 ; mapped ; 0034 # 1.1 CIRCLED DIGIT FOUR
+2464 ; mapped ; 0035 # 1.1 CIRCLED DIGIT FIVE
+2465 ; mapped ; 0036 # 1.1 CIRCLED DIGIT SIX
+2466 ; mapped ; 0037 # 1.1 CIRCLED DIGIT SEVEN
+2467 ; mapped ; 0038 # 1.1 CIRCLED DIGIT EIGHT
+2468 ; mapped ; 0039 # 1.1 CIRCLED DIGIT NINE
+2469 ; mapped ; 0031 0030 # 1.1 CIRCLED NUMBER TEN
+246A ; mapped ; 0031 0031 # 1.1 CIRCLED NUMBER ELEVEN
+246B ; mapped ; 0031 0032 # 1.1 CIRCLED NUMBER TWELVE
+246C ; mapped ; 0031 0033 # 1.1 CIRCLED NUMBER THIRTEEN
+246D ; mapped ; 0031 0034 # 1.1 CIRCLED NUMBER FOURTEEN
+246E ; mapped ; 0031 0035 # 1.1 CIRCLED NUMBER FIFTEEN
+246F ; mapped ; 0031 0036 # 1.1 CIRCLED NUMBER SIXTEEN
+2470 ; mapped ; 0031 0037 # 1.1 CIRCLED NUMBER SEVENTEEN
+2471 ; mapped ; 0031 0038 # 1.1 CIRCLED NUMBER EIGHTEEN
+2472 ; mapped ; 0031 0039 # 1.1 CIRCLED NUMBER NINETEEN
+2473 ; mapped ; 0032 0030 # 1.1 CIRCLED NUMBER TWENTY
+2474 ; disallowed_STD3_mapped ; 0028 0031 0029 #1.1 PARENTHESIZED DIGIT ONE
+2475 ; disallowed_STD3_mapped ; 0028 0032 0029 #1.1 PARENTHESIZED DIGIT TWO
+2476 ; disallowed_STD3_mapped ; 0028 0033 0029 #1.1 PARENTHESIZED DIGIT THREE
+2477 ; disallowed_STD3_mapped ; 0028 0034 0029 #1.1 PARENTHESIZED DIGIT FOUR
+2478 ; disallowed_STD3_mapped ; 0028 0035 0029 #1.1 PARENTHESIZED DIGIT FIVE
+2479 ; disallowed_STD3_mapped ; 0028 0036 0029 #1.1 PARENTHESIZED DIGIT SIX
+247A ; disallowed_STD3_mapped ; 0028 0037 0029 #1.1 PARENTHESIZED DIGIT SEVEN
+247B ; disallowed_STD3_mapped ; 0028 0038 0029 #1.1 PARENTHESIZED DIGIT EIGHT
+247C ; disallowed_STD3_mapped ; 0028 0039 0029 #1.1 PARENTHESIZED DIGIT NINE
+247D ; disallowed_STD3_mapped ; 0028 0031 0030 0029 #1.1 PARENTHESIZED NUMBER TEN
+247E ; disallowed_STD3_mapped ; 0028 0031 0031 0029 #1.1 PARENTHESIZED NUMBER ELEVEN
+247F ; disallowed_STD3_mapped ; 0028 0031 0032 0029 #1.1 PARENTHESIZED NUMBER TWELVE
+2480 ; disallowed_STD3_mapped ; 0028 0031 0033 0029 #1.1 PARENTHESIZED NUMBER THIRTEEN
+2481 ; disallowed_STD3_mapped ; 0028 0031 0034 0029 #1.1 PARENTHESIZED NUMBER FOURTEEN
+2482 ; disallowed_STD3_mapped ; 0028 0031 0035 0029 #1.1 PARENTHESIZED NUMBER FIFTEEN
+2483 ; disallowed_STD3_mapped ; 0028 0031 0036 0029 #1.1 PARENTHESIZED NUMBER SIXTEEN
+2484 ; disallowed_STD3_mapped ; 0028 0031 0037 0029 #1.1 PARENTHESIZED NUMBER SEVENTEEN
+2485 ; disallowed_STD3_mapped ; 0028 0031 0038 0029 #1.1 PARENTHESIZED NUMBER EIGHTEEN
+2486 ; disallowed_STD3_mapped ; 0028 0031 0039 0029 #1.1 PARENTHESIZED NUMBER NINETEEN
+2487 ; disallowed_STD3_mapped ; 0028 0032 0030 0029 #1.1 PARENTHESIZED NUMBER TWENTY
+2488..249B ; disallowed # 1.1 DIGIT ONE FULL STOP..NUMBER TWENTY FULL STOP
+249C ; disallowed_STD3_mapped ; 0028 0061 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER A
+249D ; disallowed_STD3_mapped ; 0028 0062 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER B
+249E ; disallowed_STD3_mapped ; 0028 0063 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER C
+249F ; disallowed_STD3_mapped ; 0028 0064 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER D
+24A0 ; disallowed_STD3_mapped ; 0028 0065 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER E
+24A1 ; disallowed_STD3_mapped ; 0028 0066 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER F
+24A2 ; disallowed_STD3_mapped ; 0028 0067 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER G
+24A3 ; disallowed_STD3_mapped ; 0028 0068 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER H
+24A4 ; disallowed_STD3_mapped ; 0028 0069 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER I
+24A5 ; disallowed_STD3_mapped ; 0028 006A 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER J
+24A6 ; disallowed_STD3_mapped ; 0028 006B 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER K
+24A7 ; disallowed_STD3_mapped ; 0028 006C 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER L
+24A8 ; disallowed_STD3_mapped ; 0028 006D 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER M
+24A9 ; disallowed_STD3_mapped ; 0028 006E 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER N
+24AA ; disallowed_STD3_mapped ; 0028 006F 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER O
+24AB ; disallowed_STD3_mapped ; 0028 0070 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER P
+24AC ; disallowed_STD3_mapped ; 0028 0071 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER Q
+24AD ; disallowed_STD3_mapped ; 0028 0072 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER R
+24AE ; disallowed_STD3_mapped ; 0028 0073 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER S
+24AF ; disallowed_STD3_mapped ; 0028 0074 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER T
+24B0 ; disallowed_STD3_mapped ; 0028 0075 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER U
+24B1 ; disallowed_STD3_mapped ; 0028 0076 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER V
+24B2 ; disallowed_STD3_mapped ; 0028 0077 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER W
+24B3 ; disallowed_STD3_mapped ; 0028 0078 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER X
+24B4 ; disallowed_STD3_mapped ; 0028 0079 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER Y
+24B5 ; disallowed_STD3_mapped ; 0028 007A 0029 #1.1 PARENTHESIZED LATIN SMALL LETTER Z
+24B6 ; mapped ; 0061 # 1.1 CIRCLED LATIN CAPITAL LETTER A
+24B7 ; mapped ; 0062 # 1.1 CIRCLED LATIN CAPITAL LETTER B
+24B8 ; mapped ; 0063 # 1.1 CIRCLED LATIN CAPITAL LETTER C
+24B9 ; mapped ; 0064 # 1.1 CIRCLED LATIN CAPITAL LETTER D
+24BA ; mapped ; 0065 # 1.1 CIRCLED LATIN CAPITAL LETTER E
+24BB ; mapped ; 0066 # 1.1 CIRCLED LATIN CAPITAL LETTER F
+24BC ; mapped ; 0067 # 1.1 CIRCLED LATIN CAPITAL LETTER G
+24BD ; mapped ; 0068 # 1.1 CIRCLED LATIN CAPITAL LETTER H
+24BE ; mapped ; 0069 # 1.1 CIRCLED LATIN CAPITAL LETTER I
+24BF ; mapped ; 006A # 1.1 CIRCLED LATIN CAPITAL LETTER J
+24C0 ; mapped ; 006B # 1.1 CIRCLED LATIN CAPITAL LETTER K
+24C1 ; mapped ; 006C # 1.1 CIRCLED LATIN CAPITAL LETTER L
+24C2 ; mapped ; 006D # 1.1 CIRCLED LATIN CAPITAL LETTER M
+24C3 ; mapped ; 006E # 1.1 CIRCLED LATIN CAPITAL LETTER N
+24C4 ; mapped ; 006F # 1.1 CIRCLED LATIN CAPITAL LETTER O
+24C5 ; mapped ; 0070 # 1.1 CIRCLED LATIN CAPITAL LETTER P
+24C6 ; mapped ; 0071 # 1.1 CIRCLED LATIN CAPITAL LETTER Q
+24C7 ; mapped ; 0072 # 1.1 CIRCLED LATIN CAPITAL LETTER R
+24C8 ; mapped ; 0073 # 1.1 CIRCLED LATIN CAPITAL LETTER S
+24C9 ; mapped ; 0074 # 1.1 CIRCLED LATIN CAPITAL LETTER T
+24CA ; mapped ; 0075 # 1.1 CIRCLED LATIN CAPITAL LETTER U
+24CB ; mapped ; 0076 # 1.1 CIRCLED LATIN CAPITAL LETTER V
+24CC ; mapped ; 0077 # 1.1 CIRCLED LATIN CAPITAL LETTER W
+24CD ; mapped ; 0078 # 1.1 CIRCLED LATIN CAPITAL LETTER X
+24CE ; mapped ; 0079 # 1.1 CIRCLED LATIN CAPITAL LETTER Y
+24CF ; mapped ; 007A # 1.1 CIRCLED LATIN CAPITAL LETTER Z
+24D0 ; mapped ; 0061 # 1.1 CIRCLED LATIN SMALL LETTER A
+24D1 ; mapped ; 0062 # 1.1 CIRCLED LATIN SMALL LETTER B
+24D2 ; mapped ; 0063 # 1.1 CIRCLED LATIN SMALL LETTER C
+24D3 ; mapped ; 0064 # 1.1 CIRCLED LATIN SMALL LETTER D
+24D4 ; mapped ; 0065 # 1.1 CIRCLED LATIN SMALL LETTER E
+24D5 ; mapped ; 0066 # 1.1 CIRCLED LATIN SMALL LETTER F
+24D6 ; mapped ; 0067 # 1.1 CIRCLED LATIN SMALL LETTER G
+24D7 ; mapped ; 0068 # 1.1 CIRCLED LATIN SMALL LETTER H
+24D8 ; mapped ; 0069 # 1.1 CIRCLED LATIN SMALL LETTER I
+24D9 ; mapped ; 006A # 1.1 CIRCLED LATIN SMALL LETTER J
+24DA ; mapped ; 006B # 1.1 CIRCLED LATIN SMALL LETTER K
+24DB ; mapped ; 006C # 1.1 CIRCLED LATIN SMALL LETTER L
+24DC ; mapped ; 006D # 1.1 CIRCLED LATIN SMALL LETTER M
+24DD ; mapped ; 006E # 1.1 CIRCLED LATIN SMALL LETTER N
+24DE ; mapped ; 006F # 1.1 CIRCLED LATIN SMALL LETTER O
+24DF ; mapped ; 0070 # 1.1 CIRCLED LATIN SMALL LETTER P
+24E0 ; mapped ; 0071 # 1.1 CIRCLED LATIN SMALL LETTER Q
+24E1 ; mapped ; 0072 # 1.1 CIRCLED LATIN SMALL LETTER R
+24E2 ; mapped ; 0073 # 1.1 CIRCLED LATIN SMALL LETTER S
+24E3 ; mapped ; 0074 # 1.1 CIRCLED LATIN SMALL LETTER T
+24E4 ; mapped ; 0075 # 1.1 CIRCLED LATIN SMALL LETTER U
+24E5 ; mapped ; 0076 # 1.1 CIRCLED LATIN SMALL LETTER V
+24E6 ; mapped ; 0077 # 1.1 CIRCLED LATIN SMALL LETTER W
+24E7 ; mapped ; 0078 # 1.1 CIRCLED LATIN SMALL LETTER X
+24E8 ; mapped ; 0079 # 1.1 CIRCLED LATIN SMALL LETTER Y
+24E9 ; mapped ; 007A # 1.1 CIRCLED LATIN SMALL LETTER Z
+24EA ; mapped ; 0030 # 1.1 CIRCLED DIGIT ZERO
+24EB..24FE ; valid ; ; NV8 # 3.2 NEGATIVE CIRCLED NUMBER ELEVEN..DOUBLE CIRCLED NUMBER TEN
+24FF ; valid ; ; NV8 # 4.0 NEGATIVE CIRCLED DIGIT ZERO
+2500..2595 ; valid ; ; NV8 # 1.1 BOX DRAWINGS LIGHT HORIZONTAL..RIGHT ONE EIGHTH BLOCK
+2596..259F ; valid ; ; NV8 # 3.2 QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0..25EF ; valid ; ; NV8 # 1.1 BLACK SQUARE..LARGE CIRCLE
+25F0..25F7 ; valid ; ; NV8 # 3.0 WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF ; valid ; ; NV8 # 3.2 UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..2613 ; valid ; ; NV8 # 1.1 BLACK SUN WITH RAYS..SALTIRE
+2614..2615 ; valid ; ; NV8 # 4.0 UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
+2616..2617 ; valid ; ; NV8 # 3.2 WHITE SHOGI PIECE..BLACK SHOGI PIECE
+2618 ; valid ; ; NV8 # 4.1 SHAMROCK
+2619 ; valid ; ; NV8 # 3.0 REVERSED ROTATED FLORAL HEART BULLET
+261A..266F ; valid ; ; NV8 # 1.1 BLACK LEFT POINTING INDEX..MUSIC SHARP SIGN
+2670..2671 ; valid ; ; NV8 # 3.0 WEST SYRIAC CROSS..EAST SYRIAC CROSS
+2672..267D ; valid ; ; NV8 # 3.2 UNIVERSAL RECYCLING SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL
+267E..267F ; valid ; ; NV8 # 4.1 PERMANENT PAPER SIGN..WHEELCHAIR SYMBOL
+2680..2689 ; valid ; ; NV8 # 3.2 DIE FACE-1..BLACK CIRCLE WITH TWO WHITE DOTS
+268A..2691 ; valid ; ; NV8 # 4.0 MONOGRAM FOR YANG..BLACK FLAG
+2692..269C ; valid ; ; NV8 # 4.1 HAMMER AND PICK..FLEUR-DE-LIS
+269D ; valid ; ; NV8 # 5.1 OUTLINED WHITE STAR
+269E..269F ; valid ; ; NV8 # 5.2 THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
+26A0..26A1 ; valid ; ; NV8 # 4.0 WARNING SIGN..HIGH VOLTAGE SIGN
+26A2..26B1 ; valid ; ; NV8 # 4.1 DOUBLED FEMALE SIGN..FUNERAL URN
+26B2 ; valid ; ; NV8 # 5.0 NEUTER
+26B3..26BC ; valid ; ; NV8 # 5.1 CERES..SESQUIQUADRATE
+26BD..26BF ; valid ; ; NV8 # 5.2 SOCCER BALL..SQUARED KEY
+26C0..26C3 ; valid ; ; NV8 # 5.1 WHITE DRAUGHTS MAN..BLACK DRAUGHTS KING
+26C4..26CD ; valid ; ; NV8 # 5.2 SNOWMAN WITHOUT SNOW..DISABLED CAR
+26CE ; valid ; ; NV8 # 6.0 OPHIUCHUS
+26CF..26E1 ; valid ; ; NV8 # 5.2 PICK..RESTRICTED LEFT ENTRY-2
+26E2 ; valid ; ; NV8 # 6.0 ASTRONOMICAL SYMBOL FOR URANUS
+26E3 ; valid ; ; NV8 # 5.2 HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4..26E7 ; valid ; ; NV8 # 6.0 PENTAGRAM..INVERTED PENTAGRAM
+26E8..26FF ; valid ; ; NV8 # 5.2 BLACK CROSS ON SHIELD..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700 ; valid ; ; NV8 # 7.0 BLACK SAFETY SCISSORS
+2701..2704 ; valid ; ; NV8 # 1.1 UPPER BLADE SCISSORS..WHITE SCISSORS
+2705 ; valid ; ; NV8 # 6.0 WHITE HEAVY CHECK MARK
+2706..2709 ; valid ; ; NV8 # 1.1 TELEPHONE LOCATION SIGN..ENVELOPE
+270A..270B ; valid ; ; NV8 # 6.0 RAISED FIST..RAISED HAND
+270C..2727 ; valid ; ; NV8 # 1.1 VICTORY HAND..WHITE FOUR POINTED STAR
+2728 ; valid ; ; NV8 # 6.0 SPARKLES
+2729..274B ; valid ; ; NV8 # 1.1 STRESS OUTLINED WHITE STAR..HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+274C ; valid ; ; NV8 # 6.0 CROSS MARK
+274D ; valid ; ; NV8 # 1.1 SHADOWED WHITE CIRCLE
+274E ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED CROSS MARK
+274F..2752 ; valid ; ; NV8 # 1.1 LOWER RIGHT DROP-SHADOWED WHITE SQUARE..UPPER RIGHT SHADOWED WHITE SQUARE
+2753..2755 ; valid ; ; NV8 # 6.0 BLACK QUESTION MARK ORNAMENT..WHITE EXCLAMATION MARK ORNAMENT
+2756 ; valid ; ; NV8 # 1.1 BLACK DIAMOND MINUS WHITE X
+2757 ; valid ; ; NV8 # 5.2 HEAVY EXCLAMATION MARK SYMBOL
+2758..275E ; valid ; ; NV8 # 1.1 LIGHT VERTICAL BAR..HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
+275F..2760 ; valid ; ; NV8 # 6.0 HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761..2767 ; valid ; ; NV8 # 1.1 CURVED STEM PARAGRAPH SIGN ORNAMENT..ROTATED FLORAL HEART BULLET
+2768..2775 ; valid ; ; NV8 # 3.2 MEDIUM LEFT PARENTHESIS ORNAMENT..MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2794 ; valid ; ; NV8 # 1.1 DINGBAT NEGATIVE CIRCLED DIGIT ONE..HEAVY WIDE-HEADED RIGHTWARDS ARROW
+2795..2797 ; valid ; ; NV8 # 6.0 HEAVY PLUS SIGN..HEAVY DIVISION SIGN
+2798..27AF ; valid ; ; NV8 # 1.1 HEAVY SOUTH EAST ARROW..NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+27B0 ; valid ; ; NV8 # 6.0 CURLY LOOP
+27B1..27BE ; valid ; ; NV8 # 1.1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW..OPEN-OUTLINED RIGHTWARDS ARROW
+27BF ; valid ; ; NV8 # 6.0 DOUBLE CURLY LOOP
+27C0..27C6 ; valid ; ; NV8 # 4.1 THREE DIMENSIONAL ANGLE..RIGHT S-SHAPED BAG DELIMITER
+27C7..27CA ; valid ; ; NV8 # 5.0 OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE
+27CB ; valid ; ; NV8 # 6.1 MATHEMATICAL RISING DIAGONAL
+27CC ; valid ; ; NV8 # 5.1 LONG DIVISION
+27CD ; valid ; ; NV8 # 6.1 MATHEMATICAL FALLING DIAGONAL
+27CE..27CF ; valid ; ; NV8 # 6.0 SQUARED LOGICAL AND..SQUARED LOGICAL OR
+27D0..27EB ; valid ; ; NV8 # 3.2 WHITE DIAMOND WITH CENTRED DOT..MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC..27EF ; valid ; ; NV8 # 5.1 MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET..MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF ; valid ; ; NV8 # 3.2 UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF ; valid ; ; NV8 # 3.0 BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2900..2A0B ; valid ; ; NV8 # 3.2 RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..SUMMATION WITH INTEGRAL
+2A0C ; mapped ; 222B 222B 222B 222B #3.2 QUADRUPLE INTEGRAL OPERATOR
+2A0D..2A73 ; valid ; ; NV8 # 3.2 FINITE PART INTEGRAL..EQUALS SIGN ABOVE TILDE OPERATOR
+2A74 ; disallowed_STD3_mapped ; 003A 003A 003D #3.2 DOUBLE COLON EQUAL
+2A75 ; disallowed_STD3_mapped ; 003D 003D # 3.2 TWO CONSECUTIVE EQUALS SIGNS
+2A76 ; disallowed_STD3_mapped ; 003D 003D 003D #3.2 THREE CONSECUTIVE EQUALS SIGNS
+2A77..2ADB ; valid ; ; NV8 # 3.2 EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW..TRANSVERSAL INTERSECTION
+2ADC ; mapped ; 2ADD 0338 # 3.2 FORKING
+2ADD..2AFF ; valid ; ; NV8 # 3.2 NONFORKING..N-ARY WHITE VERTICAL BAR
+2B00..2B0D ; valid ; ; NV8 # 4.0 NORTH EAST WHITE ARROW..UP DOWN BLACK ARROW
+2B0E..2B13 ; valid ; ; NV8 # 4.1 RIGHTWARDS ARROW WITH TIP DOWNWARDS..SQUARE WITH BOTTOM HALF BLACK
+2B14..2B1A ; valid ; ; NV8 # 5.0 SQUARE WITH UPPER RIGHT DIAGONAL HALF BLACK..DOTTED SQUARE
+2B1B..2B1F ; valid ; ; NV8 # 5.1 BLACK LARGE SQUARE..BLACK PENTAGON
+2B20..2B23 ; valid ; ; NV8 # 5.0 WHITE PENTAGON..HORIZONTAL BLACK HEXAGON
+2B24..2B4C ; valid ; ; NV8 # 5.1 BLACK LARGE CIRCLE..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B4F ; valid ; ; NV8 # 7.0 DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..SHORT BACKSLANTED SOUTH ARROW
+2B50..2B54 ; valid ; ; NV8 # 5.1 WHITE MEDIUM STAR..WHITE RIGHT-POINTING PENTAGON
+2B55..2B59 ; valid ; ; NV8 # 5.2 HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE
+2B5A..2B73 ; valid ; ; NV8 # 7.0 SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B74..2B75 ; disallowed # NA <reserved-2B74>..<reserved-2B75>
+2B76..2B95 ; valid ; ; NV8 # 7.0 NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B96 ; disallowed # NA <reserved-2B96>
+2B97 ; valid ; ; NV8 # 13.0 SYMBOL FOR TYPE A ELECTRONICS
+2B98..2BB9 ; valid ; ; NV8 # 7.0 THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD..UP ARROWHEAD IN A RECTANGLE BOX
+2BBA..2BBC ; valid ; ; NV8 # 11.0 OVERLAPPING WHITE SQUARES..OVERLAPPING BLACK SQUARES
+2BBD..2BC8 ; valid ; ; NV8 # 7.0 BALLOT BOX WITH LIGHT X..BLACK MEDIUM RIGHT-POINTING TRIANGLE CENTRED
+2BC9 ; valid ; ; NV8 # 12.0 NEPTUNE FORM TWO
+2BCA..2BD1 ; valid ; ; NV8 # 7.0 TOP HALF BLACK CIRCLE..UNCERTAINTY SIGN
+2BD2 ; valid ; ; NV8 # 10.0 GROUP MARK
+2BD3..2BEB ; valid ; ; NV8 # 11.0 PLUTO FORM TWO..STAR WITH RIGHT HALF BLACK
+2BEC..2BEF ; valid ; ; NV8 # 8.0 LEFTWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS..DOWNWARDS TWO-HEADED ARROW WITH TRIANGLE ARROWHEADS
+2BF0..2BFE ; valid ; ; NV8 # 11.0 ERIS FORM ONE..REVERSED RIGHT ANGLE
+2BFF ; valid ; ; NV8 # 12.0 HELLSCHREIBER PAUSE SYMBOL
+2C00 ; mapped ; 2C30 # 4.1 GLAGOLITIC CAPITAL LETTER AZU
+2C01 ; mapped ; 2C31 # 4.1 GLAGOLITIC CAPITAL LETTER BUKY
+2C02 ; mapped ; 2C32 # 4.1 GLAGOLITIC CAPITAL LETTER VEDE
+2C03 ; mapped ; 2C33 # 4.1 GLAGOLITIC CAPITAL LETTER GLAGOLI
+2C04 ; mapped ; 2C34 # 4.1 GLAGOLITIC CAPITAL LETTER DOBRO
+2C05 ; mapped ; 2C35 # 4.1 GLAGOLITIC CAPITAL LETTER YESTU
+2C06 ; mapped ; 2C36 # 4.1 GLAGOLITIC CAPITAL LETTER ZHIVETE
+2C07 ; mapped ; 2C37 # 4.1 GLAGOLITIC CAPITAL LETTER DZELO
+2C08 ; mapped ; 2C38 # 4.1 GLAGOLITIC CAPITAL LETTER ZEMLJA
+2C09 ; mapped ; 2C39 # 4.1 GLAGOLITIC CAPITAL LETTER IZHE
+2C0A ; mapped ; 2C3A # 4.1 GLAGOLITIC CAPITAL LETTER INITIAL IZHE
+2C0B ; mapped ; 2C3B # 4.1 GLAGOLITIC CAPITAL LETTER I
+2C0C ; mapped ; 2C3C # 4.1 GLAGOLITIC CAPITAL LETTER DJERVI
+2C0D ; mapped ; 2C3D # 4.1 GLAGOLITIC CAPITAL LETTER KAKO
+2C0E ; mapped ; 2C3E # 4.1 GLAGOLITIC CAPITAL LETTER LJUDIJE
+2C0F ; mapped ; 2C3F # 4.1 GLAGOLITIC CAPITAL LETTER MYSLITE
+2C10 ; mapped ; 2C40 # 4.1 GLAGOLITIC CAPITAL LETTER NASHI
+2C11 ; mapped ; 2C41 # 4.1 GLAGOLITIC CAPITAL LETTER ONU
+2C12 ; mapped ; 2C42 # 4.1 GLAGOLITIC CAPITAL LETTER POKOJI
+2C13 ; mapped ; 2C43 # 4.1 GLAGOLITIC CAPITAL LETTER RITSI
+2C14 ; mapped ; 2C44 # 4.1 GLAGOLITIC CAPITAL LETTER SLOVO
+2C15 ; mapped ; 2C45 # 4.1 GLAGOLITIC CAPITAL LETTER TVRIDO
+2C16 ; mapped ; 2C46 # 4.1 GLAGOLITIC CAPITAL LETTER UKU
+2C17 ; mapped ; 2C47 # 4.1 GLAGOLITIC CAPITAL LETTER FRITU
+2C18 ; mapped ; 2C48 # 4.1 GLAGOLITIC CAPITAL LETTER HERU
+2C19 ; mapped ; 2C49 # 4.1 GLAGOLITIC CAPITAL LETTER OTU
+2C1A ; mapped ; 2C4A # 4.1 GLAGOLITIC CAPITAL LETTER PE
+2C1B ; mapped ; 2C4B # 4.1 GLAGOLITIC CAPITAL LETTER SHTA
+2C1C ; mapped ; 2C4C # 4.1 GLAGOLITIC CAPITAL LETTER TSI
+2C1D ; mapped ; 2C4D # 4.1 GLAGOLITIC CAPITAL LETTER CHRIVI
+2C1E ; mapped ; 2C4E # 4.1 GLAGOLITIC CAPITAL LETTER SHA
+2C1F ; mapped ; 2C4F # 4.1 GLAGOLITIC CAPITAL LETTER YERU
+2C20 ; mapped ; 2C50 # 4.1 GLAGOLITIC CAPITAL LETTER YERI
+2C21 ; mapped ; 2C51 # 4.1 GLAGOLITIC CAPITAL LETTER YATI
+2C22 ; mapped ; 2C52 # 4.1 GLAGOLITIC CAPITAL LETTER SPIDERY HA
+2C23 ; mapped ; 2C53 # 4.1 GLAGOLITIC CAPITAL LETTER YU
+2C24 ; mapped ; 2C54 # 4.1 GLAGOLITIC CAPITAL LETTER SMALL YUS
+2C25 ; mapped ; 2C55 # 4.1 GLAGOLITIC CAPITAL LETTER SMALL YUS WITH TAIL
+2C26 ; mapped ; 2C56 # 4.1 GLAGOLITIC CAPITAL LETTER YO
+2C27 ; mapped ; 2C57 # 4.1 GLAGOLITIC CAPITAL LETTER IOTATED SMALL YUS
+2C28 ; mapped ; 2C58 # 4.1 GLAGOLITIC CAPITAL LETTER BIG YUS
+2C29 ; mapped ; 2C59 # 4.1 GLAGOLITIC CAPITAL LETTER IOTATED BIG YUS
+2C2A ; mapped ; 2C5A # 4.1 GLAGOLITIC CAPITAL LETTER FITA
+2C2B ; mapped ; 2C5B # 4.1 GLAGOLITIC CAPITAL LETTER IZHITSA
+2C2C ; mapped ; 2C5C # 4.1 GLAGOLITIC CAPITAL LETTER SHTAPIC
+2C2D ; mapped ; 2C5D # 4.1 GLAGOLITIC CAPITAL LETTER TROKUTASTI A
+2C2E ; mapped ; 2C5E # 4.1 GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C2F ; mapped ; 2C5F # 14.0 GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
+2C30..2C5E ; valid # 4.1 GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C5F ; valid # 14.0 GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
+2C60 ; mapped ; 2C61 # 5.0 LATIN CAPITAL LETTER L WITH DOUBLE BAR
+2C61 ; valid # 5.0 LATIN SMALL LETTER L WITH DOUBLE BAR
+2C62 ; mapped ; 026B # 5.0 LATIN CAPITAL LETTER L WITH MIDDLE TILDE
+2C63 ; mapped ; 1D7D # 5.0 LATIN CAPITAL LETTER P WITH STROKE
+2C64 ; mapped ; 027D # 5.0 LATIN CAPITAL LETTER R WITH TAIL
+2C65..2C66 ; valid # 5.0 LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
+2C67 ; mapped ; 2C68 # 5.0 LATIN CAPITAL LETTER H WITH DESCENDER
+2C68 ; valid # 5.0 LATIN SMALL LETTER H WITH DESCENDER
+2C69 ; mapped ; 2C6A # 5.0 LATIN CAPITAL LETTER K WITH DESCENDER
+2C6A ; valid # 5.0 LATIN SMALL LETTER K WITH DESCENDER
+2C6B ; mapped ; 2C6C # 5.0 LATIN CAPITAL LETTER Z WITH DESCENDER
+2C6C ; valid # 5.0 LATIN SMALL LETTER Z WITH DESCENDER
+2C6D ; mapped ; 0251 # 5.1 LATIN CAPITAL LETTER ALPHA
+2C6E ; mapped ; 0271 # 5.1 LATIN CAPITAL LETTER M WITH HOOK
+2C6F ; mapped ; 0250 # 5.1 LATIN CAPITAL LETTER TURNED A
+2C70 ; mapped ; 0252 # 5.2 LATIN CAPITAL LETTER TURNED ALPHA
+2C71 ; valid # 5.1 LATIN SMALL LETTER V WITH RIGHT HOOK
+2C72 ; mapped ; 2C73 # 5.1 LATIN CAPITAL LETTER W WITH HOOK
+2C73 ; valid # 5.1 LATIN SMALL LETTER W WITH HOOK
+2C74 ; valid # 5.0 LATIN SMALL LETTER V WITH CURL
+2C75 ; mapped ; 2C76 # 5.0 LATIN CAPITAL LETTER HALF H
+2C76..2C77 ; valid # 5.0 LATIN SMALL LETTER HALF H..LATIN SMALL LETTER TAILLESS PHI
+2C78..2C7B ; valid # 5.1 LATIN SMALL LETTER E WITH NOTCH..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C ; mapped ; 006A # 5.1 LATIN SUBSCRIPT SMALL LETTER J
+2C7D ; mapped ; 0076 # 5.1 MODIFIER LETTER CAPITAL V
+2C7E ; mapped ; 023F # 5.2 LATIN CAPITAL LETTER S WITH SWASH TAIL
+2C7F ; mapped ; 0240 # 5.2 LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C80 ; mapped ; 2C81 # 4.1 COPTIC CAPITAL LETTER ALFA
+2C81 ; valid # 4.1 COPTIC SMALL LETTER ALFA
+2C82 ; mapped ; 2C83 # 4.1 COPTIC CAPITAL LETTER VIDA
+2C83 ; valid # 4.1 COPTIC SMALL LETTER VIDA
+2C84 ; mapped ; 2C85 # 4.1 COPTIC CAPITAL LETTER GAMMA
+2C85 ; valid # 4.1 COPTIC SMALL LETTER GAMMA
+2C86 ; mapped ; 2C87 # 4.1 COPTIC CAPITAL LETTER DALDA
+2C87 ; valid # 4.1 COPTIC SMALL LETTER DALDA
+2C88 ; mapped ; 2C89 # 4.1 COPTIC CAPITAL LETTER EIE
+2C89 ; valid # 4.1 COPTIC SMALL LETTER EIE
+2C8A ; mapped ; 2C8B # 4.1 COPTIC CAPITAL LETTER SOU
+2C8B ; valid # 4.1 COPTIC SMALL LETTER SOU
+2C8C ; mapped ; 2C8D # 4.1 COPTIC CAPITAL LETTER ZATA
+2C8D ; valid # 4.1 COPTIC SMALL LETTER ZATA
+2C8E ; mapped ; 2C8F # 4.1 COPTIC CAPITAL LETTER HATE
+2C8F ; valid # 4.1 COPTIC SMALL LETTER HATE
+2C90 ; mapped ; 2C91 # 4.1 COPTIC CAPITAL LETTER THETHE
+2C91 ; valid # 4.1 COPTIC SMALL LETTER THETHE
+2C92 ; mapped ; 2C93 # 4.1 COPTIC CAPITAL LETTER IAUDA
+2C93 ; valid # 4.1 COPTIC SMALL LETTER IAUDA
+2C94 ; mapped ; 2C95 # 4.1 COPTIC CAPITAL LETTER KAPA
+2C95 ; valid # 4.1 COPTIC SMALL LETTER KAPA
+2C96 ; mapped ; 2C97 # 4.1 COPTIC CAPITAL LETTER LAULA
+2C97 ; valid # 4.1 COPTIC SMALL LETTER LAULA
+2C98 ; mapped ; 2C99 # 4.1 COPTIC CAPITAL LETTER MI
+2C99 ; valid # 4.1 COPTIC SMALL LETTER MI
+2C9A ; mapped ; 2C9B # 4.1 COPTIC CAPITAL LETTER NI
+2C9B ; valid # 4.1 COPTIC SMALL LETTER NI
+2C9C ; mapped ; 2C9D # 4.1 COPTIC CAPITAL LETTER KSI
+2C9D ; valid # 4.1 COPTIC SMALL LETTER KSI
+2C9E ; mapped ; 2C9F # 4.1 COPTIC CAPITAL LETTER O
+2C9F ; valid # 4.1 COPTIC SMALL LETTER O
+2CA0 ; mapped ; 2CA1 # 4.1 COPTIC CAPITAL LETTER PI
+2CA1 ; valid # 4.1 COPTIC SMALL LETTER PI
+2CA2 ; mapped ; 2CA3 # 4.1 COPTIC CAPITAL LETTER RO
+2CA3 ; valid # 4.1 COPTIC SMALL LETTER RO
+2CA4 ; mapped ; 2CA5 # 4.1 COPTIC CAPITAL LETTER SIMA
+2CA5 ; valid # 4.1 COPTIC SMALL LETTER SIMA
+2CA6 ; mapped ; 2CA7 # 4.1 COPTIC CAPITAL LETTER TAU
+2CA7 ; valid # 4.1 COPTIC SMALL LETTER TAU
+2CA8 ; mapped ; 2CA9 # 4.1 COPTIC CAPITAL LETTER UA
+2CA9 ; valid # 4.1 COPTIC SMALL LETTER UA
+2CAA ; mapped ; 2CAB # 4.1 COPTIC CAPITAL LETTER FI
+2CAB ; valid # 4.1 COPTIC SMALL LETTER FI
+2CAC ; mapped ; 2CAD # 4.1 COPTIC CAPITAL LETTER KHI
+2CAD ; valid # 4.1 COPTIC SMALL LETTER KHI
+2CAE ; mapped ; 2CAF # 4.1 COPTIC CAPITAL LETTER PSI
+2CAF ; valid # 4.1 COPTIC SMALL LETTER PSI
+2CB0 ; mapped ; 2CB1 # 4.1 COPTIC CAPITAL LETTER OOU
+2CB1 ; valid # 4.1 COPTIC SMALL LETTER OOU
+2CB2 ; mapped ; 2CB3 # 4.1 COPTIC CAPITAL LETTER DIALECT-P ALEF
+2CB3 ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P ALEF
+2CB4 ; mapped ; 2CB5 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC AIN
+2CB5 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC AIN
+2CB6 ; mapped ; 2CB7 # 4.1 COPTIC CAPITAL LETTER CRYPTOGRAMMIC EIE
+2CB7 ; valid # 4.1 COPTIC SMALL LETTER CRYPTOGRAMMIC EIE
+2CB8 ; mapped ; 2CB9 # 4.1 COPTIC CAPITAL LETTER DIALECT-P KAPA
+2CB9 ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P KAPA
+2CBA ; mapped ; 2CBB # 4.1 COPTIC CAPITAL LETTER DIALECT-P NI
+2CBB ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P NI
+2CBC ; mapped ; 2CBD # 4.1 COPTIC CAPITAL LETTER CRYPTOGRAMMIC NI
+2CBD ; valid # 4.1 COPTIC SMALL LETTER CRYPTOGRAMMIC NI
+2CBE ; mapped ; 2CBF # 4.1 COPTIC CAPITAL LETTER OLD COPTIC OOU
+2CBF ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC OOU
+2CC0 ; mapped ; 2CC1 # 4.1 COPTIC CAPITAL LETTER SAMPI
+2CC1 ; valid # 4.1 COPTIC SMALL LETTER SAMPI
+2CC2 ; mapped ; 2CC3 # 4.1 COPTIC CAPITAL LETTER CROSSED SHEI
+2CC3 ; valid # 4.1 COPTIC SMALL LETTER CROSSED SHEI
+2CC4 ; mapped ; 2CC5 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC SHEI
+2CC5 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC SHEI
+2CC6 ; mapped ; 2CC7 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC ESH
+2CC7 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC ESH
+2CC8 ; mapped ; 2CC9 # 4.1 COPTIC CAPITAL LETTER AKHMIMIC KHEI
+2CC9 ; valid # 4.1 COPTIC SMALL LETTER AKHMIMIC KHEI
+2CCA ; mapped ; 2CCB # 4.1 COPTIC CAPITAL LETTER DIALECT-P HORI
+2CCB ; valid # 4.1 COPTIC SMALL LETTER DIALECT-P HORI
+2CCC ; mapped ; 2CCD # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HORI
+2CCD ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HORI
+2CCE ; mapped ; 2CCF # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HA
+2CCF ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HA
+2CD0 ; mapped ; 2CD1 # 4.1 COPTIC CAPITAL LETTER L-SHAPED HA
+2CD1 ; valid # 4.1 COPTIC SMALL LETTER L-SHAPED HA
+2CD2 ; mapped ; 2CD3 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HEI
+2CD3 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HEI
+2CD4 ; mapped ; 2CD5 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC HAT
+2CD5 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC HAT
+2CD6 ; mapped ; 2CD7 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC GANGIA
+2CD7 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC GANGIA
+2CD8 ; mapped ; 2CD9 # 4.1 COPTIC CAPITAL LETTER OLD COPTIC DJA
+2CD9 ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC DJA
+2CDA ; mapped ; 2CDB # 4.1 COPTIC CAPITAL LETTER OLD COPTIC SHIMA
+2CDB ; valid # 4.1 COPTIC SMALL LETTER OLD COPTIC SHIMA
+2CDC ; mapped ; 2CDD # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN SHIMA
+2CDD ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN SHIMA
+2CDE ; mapped ; 2CDF # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN NGI
+2CDF ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN NGI
+2CE0 ; mapped ; 2CE1 # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN NYI
+2CE1 ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN NYI
+2CE2 ; mapped ; 2CE3 # 4.1 COPTIC CAPITAL LETTER OLD NUBIAN WAU
+2CE3..2CE4 ; valid # 4.1 COPTIC SMALL LETTER OLD NUBIAN WAU..COPTIC SYMBOL KAI
+2CE5..2CEA ; valid ; ; NV8 # 4.1 COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CEB ; mapped ; 2CEC # 5.2 COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
+2CEC ; valid # 5.2 COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
+2CED ; mapped ; 2CEE # 5.2 COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
+2CEE..2CF1 ; valid # 5.2 COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA..COPTIC COMBINING SPIRITUS LENIS
+2CF2 ; mapped ; 2CF3 # 6.1 COPTIC CAPITAL LETTER BOHAIRIC KHEI
+2CF3 ; valid # 6.1 COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF4..2CF8 ; disallowed # NA <reserved-2CF4>..<reserved-2CF8>
+2CF9..2CFF ; valid ; ; NV8 # 4.1 COPTIC OLD NUBIAN FULL STOP..COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25 ; valid # 4.1 GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D26 ; disallowed # NA <reserved-2D26>
+2D27 ; valid # 6.1 GEORGIAN SMALL LETTER YN
+2D28..2D2C ; disallowed # NA <reserved-2D28>..<reserved-2D2C>
+2D2D ; valid # 6.1 GEORGIAN SMALL LETTER AEN
+2D2E..2D2F ; disallowed # NA <reserved-2D2E>..<reserved-2D2F>
+2D30..2D65 ; valid # 4.1 TIFINAGH LETTER YA..TIFINAGH LETTER YAZZ
+2D66..2D67 ; valid # 6.1 TIFINAGH LETTER YE..TIFINAGH LETTER YO
+2D68..2D6E ; disallowed # NA <reserved-2D68>..<reserved-2D6E>
+2D6F ; mapped ; 2D61 # 4.1 TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70 ; valid ; ; NV8 # 6.0 TIFINAGH SEPARATOR MARK
+2D71..2D7E ; disallowed # NA <reserved-2D71>..<reserved-2D7E>
+2D7F ; valid # 6.0 TIFINAGH CONSONANT JOINER
+2D80..2D96 ; valid # 4.1 ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2D97..2D9F ; disallowed # NA <reserved-2D97>..<reserved-2D9F>
+2DA0..2DA6 ; valid # 4.1 ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA7 ; disallowed # NA <reserved-2DA7>
+2DA8..2DAE ; valid # 4.1 ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DAF ; disallowed # NA <reserved-2DAF>
+2DB0..2DB6 ; valid # 4.1 ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB7 ; disallowed # NA <reserved-2DB7>
+2DB8..2DBE ; valid # 4.1 ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DBF ; disallowed # NA <reserved-2DBF>
+2DC0..2DC6 ; valid # 4.1 ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC7 ; disallowed # NA <reserved-2DC7>
+2DC8..2DCE ; valid # 4.1 ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DCF ; disallowed # NA <reserved-2DCF>
+2DD0..2DD6 ; valid # 4.1 ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD7 ; disallowed # NA <reserved-2DD7>
+2DD8..2DDE ; valid # 4.1 ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DDF ; disallowed # NA <reserved-2DDF>
+2DE0..2DFF ; valid # 5.1 COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00..2E17 ; valid ; ; NV8 # 4.1 RIGHT ANGLE SUBSTITUTION MARKER..DOUBLE OBLIQUE HYPHEN
+2E18..2E1B ; valid ; ; NV8 # 5.1 INVERTED INTERROBANG..TILDE WITH RING ABOVE
+2E1C..2E1D ; valid ; ; NV8 # 4.1 LEFT LOW PARAPHRASE BRACKET..RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E2E ; valid ; ; NV8 # 5.1 TILDE WITH DOT ABOVE..REVERSED QUESTION MARK
+2E2F ; valid # 5.1 VERTICAL TILDE
+2E30 ; valid ; ; NV8 # 5.1 RING POINT
+2E31 ; valid ; ; NV8 # 5.2 WORD SEPARATOR MIDDLE DOT
+2E32..2E3B ; valid ; ; NV8 # 6.1 TURNED COMMA..THREE-EM DASH
+2E3C..2E42 ; valid ; ; NV8 # 7.0 STENOGRAPHIC FULL STOP..DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E43..2E44 ; valid ; ; NV8 # 9.0 DASH WITH LEFT UPTURN..DOUBLE SUSPENSION MARK
+2E45..2E49 ; valid ; ; NV8 # 10.0 INVERTED LOW KAVYKA..DOUBLE STACKED COMMA
+2E4A..2E4E ; valid ; ; NV8 # 11.0 DOTTED SOLIDUS..PUNCTUS ELEVATUS MARK
+2E4F ; valid ; ; NV8 # 12.0 CORNISH VERSE DIVIDER
+2E50..2E52 ; valid ; ; NV8 # 13.0 CROSS PATTY WITH RIGHT CROSSBAR..TIRONIAN SIGN CAPITAL ET
+2E53..2E5D ; valid ; ; NV8 # 14.0 MEDIEVAL EXCLAMATION MARK..OBLIQUE HYPHEN
+2E5E..2E7F ; disallowed # NA <reserved-2E5E>..<reserved-2E7F>
+2E80..2E99 ; valid ; ; NV8 # 3.0 CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9A ; disallowed # NA <reserved-2E9A>
+2E9B..2E9E ; valid ; ; NV8 # 3.0 CJK RADICAL CHOKE..CJK RADICAL DEATH
+2E9F ; mapped ; 6BCD # 3.0 CJK RADICAL MOTHER
+2EA0..2EF2 ; valid ; ; NV8 # 3.0 CJK RADICAL CIVILIAN..CJK RADICAL J-SIMPLIFIED TURTLE
+2EF3 ; mapped ; 9F9F # 3.0 CJK RADICAL C-SIMPLIFIED TURTLE
+2EF4..2EFF ; disallowed # NA <reserved-2EF4>..<reserved-2EFF>
+2F00 ; mapped ; 4E00 # 3.0 KANGXI RADICAL ONE
+2F01 ; mapped ; 4E28 # 3.0 KANGXI RADICAL LINE
+2F02 ; mapped ; 4E36 # 3.0 KANGXI RADICAL DOT
+2F03 ; mapped ; 4E3F # 3.0 KANGXI RADICAL SLASH
+2F04 ; mapped ; 4E59 # 3.0 KANGXI RADICAL SECOND
+2F05 ; mapped ; 4E85 # 3.0 KANGXI RADICAL HOOK
+2F06 ; mapped ; 4E8C # 3.0 KANGXI RADICAL TWO
+2F07 ; mapped ; 4EA0 # 3.0 KANGXI RADICAL LID
+2F08 ; mapped ; 4EBA # 3.0 KANGXI RADICAL MAN
+2F09 ; mapped ; 513F # 3.0 KANGXI RADICAL LEGS
+2F0A ; mapped ; 5165 # 3.0 KANGXI RADICAL ENTER
+2F0B ; mapped ; 516B # 3.0 KANGXI RADICAL EIGHT
+2F0C ; mapped ; 5182 # 3.0 KANGXI RADICAL DOWN BOX
+2F0D ; mapped ; 5196 # 3.0 KANGXI RADICAL COVER
+2F0E ; mapped ; 51AB # 3.0 KANGXI RADICAL ICE
+2F0F ; mapped ; 51E0 # 3.0 KANGXI RADICAL TABLE
+2F10 ; mapped ; 51F5 # 3.0 KANGXI RADICAL OPEN BOX
+2F11 ; mapped ; 5200 # 3.0 KANGXI RADICAL KNIFE
+2F12 ; mapped ; 529B # 3.0 KANGXI RADICAL POWER
+2F13 ; mapped ; 52F9 # 3.0 KANGXI RADICAL WRAP
+2F14 ; mapped ; 5315 # 3.0 KANGXI RADICAL SPOON
+2F15 ; mapped ; 531A # 3.0 KANGXI RADICAL RIGHT OPEN BOX
+2F16 ; mapped ; 5338 # 3.0 KANGXI RADICAL HIDING ENCLOSURE
+2F17 ; mapped ; 5341 # 3.0 KANGXI RADICAL TEN
+2F18 ; mapped ; 535C # 3.0 KANGXI RADICAL DIVINATION
+2F19 ; mapped ; 5369 # 3.0 KANGXI RADICAL SEAL
+2F1A ; mapped ; 5382 # 3.0 KANGXI RADICAL CLIFF
+2F1B ; mapped ; 53B6 # 3.0 KANGXI RADICAL PRIVATE
+2F1C ; mapped ; 53C8 # 3.0 KANGXI RADICAL AGAIN
+2F1D ; mapped ; 53E3 # 3.0 KANGXI RADICAL MOUTH
+2F1E ; mapped ; 56D7 # 3.0 KANGXI RADICAL ENCLOSURE
+2F1F ; mapped ; 571F # 3.0 KANGXI RADICAL EARTH
+2F20 ; mapped ; 58EB # 3.0 KANGXI RADICAL SCHOLAR
+2F21 ; mapped ; 5902 # 3.0 KANGXI RADICAL GO
+2F22 ; mapped ; 590A # 3.0 KANGXI RADICAL GO SLOWLY
+2F23 ; mapped ; 5915 # 3.0 KANGXI RADICAL EVENING
+2F24 ; mapped ; 5927 # 3.0 KANGXI RADICAL BIG
+2F25 ; mapped ; 5973 # 3.0 KANGXI RADICAL WOMAN
+2F26 ; mapped ; 5B50 # 3.0 KANGXI RADICAL CHILD
+2F27 ; mapped ; 5B80 # 3.0 KANGXI RADICAL ROOF
+2F28 ; mapped ; 5BF8 # 3.0 KANGXI RADICAL INCH
+2F29 ; mapped ; 5C0F # 3.0 KANGXI RADICAL SMALL
+2F2A ; mapped ; 5C22 # 3.0 KANGXI RADICAL LAME
+2F2B ; mapped ; 5C38 # 3.0 KANGXI RADICAL CORPSE
+2F2C ; mapped ; 5C6E # 3.0 KANGXI RADICAL SPROUT
+2F2D ; mapped ; 5C71 # 3.0 KANGXI RADICAL MOUNTAIN
+2F2E ; mapped ; 5DDB # 3.0 KANGXI RADICAL RIVER
+2F2F ; mapped ; 5DE5 # 3.0 KANGXI RADICAL WORK
+2F30 ; mapped ; 5DF1 # 3.0 KANGXI RADICAL ONESELF
+2F31 ; mapped ; 5DFE # 3.0 KANGXI RADICAL TURBAN
+2F32 ; mapped ; 5E72 # 3.0 KANGXI RADICAL DRY
+2F33 ; mapped ; 5E7A # 3.0 KANGXI RADICAL SHORT THREAD
+2F34 ; mapped ; 5E7F # 3.0 KANGXI RADICAL DOTTED CLIFF
+2F35 ; mapped ; 5EF4 # 3.0 KANGXI RADICAL LONG STRIDE
+2F36 ; mapped ; 5EFE # 3.0 KANGXI RADICAL TWO HANDS
+2F37 ; mapped ; 5F0B # 3.0 KANGXI RADICAL SHOOT
+2F38 ; mapped ; 5F13 # 3.0 KANGXI RADICAL BOW
+2F39 ; mapped ; 5F50 # 3.0 KANGXI RADICAL SNOUT
+2F3A ; mapped ; 5F61 # 3.0 KANGXI RADICAL BRISTLE
+2F3B ; mapped ; 5F73 # 3.0 KANGXI RADICAL STEP
+2F3C ; mapped ; 5FC3 # 3.0 KANGXI RADICAL HEART
+2F3D ; mapped ; 6208 # 3.0 KANGXI RADICAL HALBERD
+2F3E ; mapped ; 6236 # 3.0 KANGXI RADICAL DOOR
+2F3F ; mapped ; 624B # 3.0 KANGXI RADICAL HAND
+2F40 ; mapped ; 652F # 3.0 KANGXI RADICAL BRANCH
+2F41 ; mapped ; 6534 # 3.0 KANGXI RADICAL RAP
+2F42 ; mapped ; 6587 # 3.0 KANGXI RADICAL SCRIPT
+2F43 ; mapped ; 6597 # 3.0 KANGXI RADICAL DIPPER
+2F44 ; mapped ; 65A4 # 3.0 KANGXI RADICAL AXE
+2F45 ; mapped ; 65B9 # 3.0 KANGXI RADICAL SQUARE
+2F46 ; mapped ; 65E0 # 3.0 KANGXI RADICAL NOT
+2F47 ; mapped ; 65E5 # 3.0 KANGXI RADICAL SUN
+2F48 ; mapped ; 66F0 # 3.0 KANGXI RADICAL SAY
+2F49 ; mapped ; 6708 # 3.0 KANGXI RADICAL MOON
+2F4A ; mapped ; 6728 # 3.0 KANGXI RADICAL TREE
+2F4B ; mapped ; 6B20 # 3.0 KANGXI RADICAL LACK
+2F4C ; mapped ; 6B62 # 3.0 KANGXI RADICAL STOP
+2F4D ; mapped ; 6B79 # 3.0 KANGXI RADICAL DEATH
+2F4E ; mapped ; 6BB3 # 3.0 KANGXI RADICAL WEAPON
+2F4F ; mapped ; 6BCB # 3.0 KANGXI RADICAL DO NOT
+2F50 ; mapped ; 6BD4 # 3.0 KANGXI RADICAL COMPARE
+2F51 ; mapped ; 6BDB # 3.0 KANGXI RADICAL FUR
+2F52 ; mapped ; 6C0F # 3.0 KANGXI RADICAL CLAN
+2F53 ; mapped ; 6C14 # 3.0 KANGXI RADICAL STEAM
+2F54 ; mapped ; 6C34 # 3.0 KANGXI RADICAL WATER
+2F55 ; mapped ; 706B # 3.0 KANGXI RADICAL FIRE
+2F56 ; mapped ; 722A # 3.0 KANGXI RADICAL CLAW
+2F57 ; mapped ; 7236 # 3.0 KANGXI RADICAL FATHER
+2F58 ; mapped ; 723B # 3.0 KANGXI RADICAL DOUBLE X
+2F59 ; mapped ; 723F # 3.0 KANGXI RADICAL HALF TREE TRUNK
+2F5A ; mapped ; 7247 # 3.0 KANGXI RADICAL SLICE
+2F5B ; mapped ; 7259 # 3.0 KANGXI RADICAL FANG
+2F5C ; mapped ; 725B # 3.0 KANGXI RADICAL COW
+2F5D ; mapped ; 72AC # 3.0 KANGXI RADICAL DOG
+2F5E ; mapped ; 7384 # 3.0 KANGXI RADICAL PROFOUND
+2F5F ; mapped ; 7389 # 3.0 KANGXI RADICAL JADE
+2F60 ; mapped ; 74DC # 3.0 KANGXI RADICAL MELON
+2F61 ; mapped ; 74E6 # 3.0 KANGXI RADICAL TILE
+2F62 ; mapped ; 7518 # 3.0 KANGXI RADICAL SWEET
+2F63 ; mapped ; 751F # 3.0 KANGXI RADICAL LIFE
+2F64 ; mapped ; 7528 # 3.0 KANGXI RADICAL USE
+2F65 ; mapped ; 7530 # 3.0 KANGXI RADICAL FIELD
+2F66 ; mapped ; 758B # 3.0 KANGXI RADICAL BOLT OF CLOTH
+2F67 ; mapped ; 7592 # 3.0 KANGXI RADICAL SICKNESS
+2F68 ; mapped ; 7676 # 3.0 KANGXI RADICAL DOTTED TENT
+2F69 ; mapped ; 767D # 3.0 KANGXI RADICAL WHITE
+2F6A ; mapped ; 76AE # 3.0 KANGXI RADICAL SKIN
+2F6B ; mapped ; 76BF # 3.0 KANGXI RADICAL DISH
+2F6C ; mapped ; 76EE # 3.0 KANGXI RADICAL EYE
+2F6D ; mapped ; 77DB # 3.0 KANGXI RADICAL SPEAR
+2F6E ; mapped ; 77E2 # 3.0 KANGXI RADICAL ARROW
+2F6F ; mapped ; 77F3 # 3.0 KANGXI RADICAL STONE
+2F70 ; mapped ; 793A # 3.0 KANGXI RADICAL SPIRIT
+2F71 ; mapped ; 79B8 # 3.0 KANGXI RADICAL TRACK
+2F72 ; mapped ; 79BE # 3.0 KANGXI RADICAL GRAIN
+2F73 ; mapped ; 7A74 # 3.0 KANGXI RADICAL CAVE
+2F74 ; mapped ; 7ACB # 3.0 KANGXI RADICAL STAND
+2F75 ; mapped ; 7AF9 # 3.0 KANGXI RADICAL BAMBOO
+2F76 ; mapped ; 7C73 # 3.0 KANGXI RADICAL RICE
+2F77 ; mapped ; 7CF8 # 3.0 KANGXI RADICAL SILK
+2F78 ; mapped ; 7F36 # 3.0 KANGXI RADICAL JAR
+2F79 ; mapped ; 7F51 # 3.0 KANGXI RADICAL NET
+2F7A ; mapped ; 7F8A # 3.0 KANGXI RADICAL SHEEP
+2F7B ; mapped ; 7FBD # 3.0 KANGXI RADICAL FEATHER
+2F7C ; mapped ; 8001 # 3.0 KANGXI RADICAL OLD
+2F7D ; mapped ; 800C # 3.0 KANGXI RADICAL AND
+2F7E ; mapped ; 8012 # 3.0 KANGXI RADICAL PLOW
+2F7F ; mapped ; 8033 # 3.0 KANGXI RADICAL EAR
+2F80 ; mapped ; 807F # 3.0 KANGXI RADICAL BRUSH
+2F81 ; mapped ; 8089 # 3.0 KANGXI RADICAL MEAT
+2F82 ; mapped ; 81E3 # 3.0 KANGXI RADICAL MINISTER
+2F83 ; mapped ; 81EA # 3.0 KANGXI RADICAL SELF
+2F84 ; mapped ; 81F3 # 3.0 KANGXI RADICAL ARRIVE
+2F85 ; mapped ; 81FC # 3.0 KANGXI RADICAL MORTAR
+2F86 ; mapped ; 820C # 3.0 KANGXI RADICAL TONGUE
+2F87 ; mapped ; 821B # 3.0 KANGXI RADICAL OPPOSE
+2F88 ; mapped ; 821F # 3.0 KANGXI RADICAL BOAT
+2F89 ; mapped ; 826E # 3.0 KANGXI RADICAL STOPPING
+2F8A ; mapped ; 8272 # 3.0 KANGXI RADICAL COLOR
+2F8B ; mapped ; 8278 # 3.0 KANGXI RADICAL GRASS
+2F8C ; mapped ; 864D # 3.0 KANGXI RADICAL TIGER
+2F8D ; mapped ; 866B # 3.0 KANGXI RADICAL INSECT
+2F8E ; mapped ; 8840 # 3.0 KANGXI RADICAL BLOOD
+2F8F ; mapped ; 884C # 3.0 KANGXI RADICAL WALK ENCLOSURE
+2F90 ; mapped ; 8863 # 3.0 KANGXI RADICAL CLOTHES
+2F91 ; mapped ; 897E # 3.0 KANGXI RADICAL WEST
+2F92 ; mapped ; 898B # 3.0 KANGXI RADICAL SEE
+2F93 ; mapped ; 89D2 # 3.0 KANGXI RADICAL HORN
+2F94 ; mapped ; 8A00 # 3.0 KANGXI RADICAL SPEECH
+2F95 ; mapped ; 8C37 # 3.0 KANGXI RADICAL VALLEY
+2F96 ; mapped ; 8C46 # 3.0 KANGXI RADICAL BEAN
+2F97 ; mapped ; 8C55 # 3.0 KANGXI RADICAL PIG
+2F98 ; mapped ; 8C78 # 3.0 KANGXI RADICAL BADGER
+2F99 ; mapped ; 8C9D # 3.0 KANGXI RADICAL SHELL
+2F9A ; mapped ; 8D64 # 3.0 KANGXI RADICAL RED
+2F9B ; mapped ; 8D70 # 3.0 KANGXI RADICAL RUN
+2F9C ; mapped ; 8DB3 # 3.0 KANGXI RADICAL FOOT
+2F9D ; mapped ; 8EAB # 3.0 KANGXI RADICAL BODY
+2F9E ; mapped ; 8ECA # 3.0 KANGXI RADICAL CART
+2F9F ; mapped ; 8F9B # 3.0 KANGXI RADICAL BITTER
+2FA0 ; mapped ; 8FB0 # 3.0 KANGXI RADICAL MORNING
+2FA1 ; mapped ; 8FB5 # 3.0 KANGXI RADICAL WALK
+2FA2 ; mapped ; 9091 # 3.0 KANGXI RADICAL CITY
+2FA3 ; mapped ; 9149 # 3.0 KANGXI RADICAL WINE
+2FA4 ; mapped ; 91C6 # 3.0 KANGXI RADICAL DISTINGUISH
+2FA5 ; mapped ; 91CC # 3.0 KANGXI RADICAL VILLAGE
+2FA6 ; mapped ; 91D1 # 3.0 KANGXI RADICAL GOLD
+2FA7 ; mapped ; 9577 # 3.0 KANGXI RADICAL LONG
+2FA8 ; mapped ; 9580 # 3.0 KANGXI RADICAL GATE
+2FA9 ; mapped ; 961C # 3.0 KANGXI RADICAL MOUND
+2FAA ; mapped ; 96B6 # 3.0 KANGXI RADICAL SLAVE
+2FAB ; mapped ; 96B9 # 3.0 KANGXI RADICAL SHORT TAILED BIRD
+2FAC ; mapped ; 96E8 # 3.0 KANGXI RADICAL RAIN
+2FAD ; mapped ; 9751 # 3.0 KANGXI RADICAL BLUE
+2FAE ; mapped ; 975E # 3.0 KANGXI RADICAL WRONG
+2FAF ; mapped ; 9762 # 3.0 KANGXI RADICAL FACE
+2FB0 ; mapped ; 9769 # 3.0 KANGXI RADICAL LEATHER
+2FB1 ; mapped ; 97CB # 3.0 KANGXI RADICAL TANNED LEATHER
+2FB2 ; mapped ; 97ED # 3.0 KANGXI RADICAL LEEK
+2FB3 ; mapped ; 97F3 # 3.0 KANGXI RADICAL SOUND
+2FB4 ; mapped ; 9801 # 3.0 KANGXI RADICAL LEAF
+2FB5 ; mapped ; 98A8 # 3.0 KANGXI RADICAL WIND
+2FB6 ; mapped ; 98DB # 3.0 KANGXI RADICAL FLY
+2FB7 ; mapped ; 98DF # 3.0 KANGXI RADICAL EAT
+2FB8 ; mapped ; 9996 # 3.0 KANGXI RADICAL HEAD
+2FB9 ; mapped ; 9999 # 3.0 KANGXI RADICAL FRAGRANT
+2FBA ; mapped ; 99AC # 3.0 KANGXI RADICAL HORSE
+2FBB ; mapped ; 9AA8 # 3.0 KANGXI RADICAL BONE
+2FBC ; mapped ; 9AD8 # 3.0 KANGXI RADICAL TALL
+2FBD ; mapped ; 9ADF # 3.0 KANGXI RADICAL HAIR
+2FBE ; mapped ; 9B25 # 3.0 KANGXI RADICAL FIGHT
+2FBF ; mapped ; 9B2F # 3.0 KANGXI RADICAL SACRIFICIAL WINE
+2FC0 ; mapped ; 9B32 # 3.0 KANGXI RADICAL CAULDRON
+2FC1 ; mapped ; 9B3C # 3.0 KANGXI RADICAL GHOST
+2FC2 ; mapped ; 9B5A # 3.0 KANGXI RADICAL FISH
+2FC3 ; mapped ; 9CE5 # 3.0 KANGXI RADICAL BIRD
+2FC4 ; mapped ; 9E75 # 3.0 KANGXI RADICAL SALT
+2FC5 ; mapped ; 9E7F # 3.0 KANGXI RADICAL DEER
+2FC6 ; mapped ; 9EA5 # 3.0 KANGXI RADICAL WHEAT
+2FC7 ; mapped ; 9EBB # 3.0 KANGXI RADICAL HEMP
+2FC8 ; mapped ; 9EC3 # 3.0 KANGXI RADICAL YELLOW
+2FC9 ; mapped ; 9ECD # 3.0 KANGXI RADICAL MILLET
+2FCA ; mapped ; 9ED1 # 3.0 KANGXI RADICAL BLACK
+2FCB ; mapped ; 9EF9 # 3.0 KANGXI RADICAL EMBROIDERY
+2FCC ; mapped ; 9EFD # 3.0 KANGXI RADICAL FROG
+2FCD ; mapped ; 9F0E # 3.0 KANGXI RADICAL TRIPOD
+2FCE ; mapped ; 9F13 # 3.0 KANGXI RADICAL DRUM
+2FCF ; mapped ; 9F20 # 3.0 KANGXI RADICAL RAT
+2FD0 ; mapped ; 9F3B # 3.0 KANGXI RADICAL NOSE
+2FD1 ; mapped ; 9F4A # 3.0 KANGXI RADICAL EVEN
+2FD2 ; mapped ; 9F52 # 3.0 KANGXI RADICAL TOOTH
+2FD3 ; mapped ; 9F8D # 3.0 KANGXI RADICAL DRAGON
+2FD4 ; mapped ; 9F9C # 3.0 KANGXI RADICAL TURTLE
+2FD5 ; mapped ; 9FA0 # 3.0 KANGXI RADICAL FLUTE
+2FD6..2FEF ; disallowed # NA <reserved-2FD6>..<reserved-2FEF>
+2FF0..2FFB ; disallowed # 3.0 IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2FFC..2FFF ; disallowed # 15.1 IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
+3000 ; disallowed_STD3_mapped ; 0020 # 1.1 IDEOGRAPHIC SPACE
+3001 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC COMMA
+3002 ; mapped ; 002E # 1.1 IDEOGRAPHIC FULL STOP
+3003..3004 ; valid ; ; NV8 # 1.1 DITTO MARK..JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005..3007 ; valid # 1.1 IDEOGRAPHIC ITERATION MARK..IDEOGRAPHIC NUMBER ZERO
+3008..3029 ; valid ; ; NV8 # 1.1 LEFT ANGLE BRACKET..HANGZHOU NUMERAL NINE
+302A..302D ; valid # 1.1 IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..3035 ; valid ; ; NV8 # 1.1 HANGUL SINGLE DOT TONE MARK..VERTICAL KANA REPEAT MARK LOWER HALF
+3036 ; mapped ; 3012 # 1.1 CIRCLED POSTAL MARK
+3037 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038 ; mapped ; 5341 # 3.0 HANGZHOU NUMERAL TEN
+3039 ; mapped ; 5344 # 3.0 HANGZHOU NUMERAL TWENTY
+303A ; mapped ; 5345 # 3.0 HANGZHOU NUMERAL THIRTY
+303B ; valid ; ; NV8 # 3.2 VERTICAL IDEOGRAPHIC ITERATION MARK
+303C ; valid # 3.2 MASU MARK
+303D ; valid ; ; NV8 # 3.2 PART ALTERNATION MARK
+303E ; valid ; ; NV8 # 3.0 IDEOGRAPHIC VARIATION INDICATOR
+303F ; valid ; ; NV8 # 1.1 IDEOGRAPHIC HALF FILL SPACE
+3040 ; disallowed # NA <reserved-3040>
+3041..3094 ; valid # 1.1 HIRAGANA LETTER SMALL A..HIRAGANA LETTER VU
+3095..3096 ; valid # 3.2 HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE
+3097..3098 ; disallowed # NA <reserved-3097>..<reserved-3098>
+3099..309A ; valid # 1.1 COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B ; disallowed_STD3_mapped ; 0020 3099 # 1.1 KATAKANA-HIRAGANA VOICED SOUND MARK
+309C ; disallowed_STD3_mapped ; 0020 309A # 1.1 KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E ; valid # 1.1 HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F ; mapped ; 3088 308A # 3.2 HIRAGANA DIGRAPH YORI
+30A0 ; valid ; ; NV8 # 3.2 KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1..30FE ; valid # 1.1 KATAKANA LETTER SMALL A..KATAKANA VOICED ITERATION MARK
+30FF ; mapped ; 30B3 30C8 # 3.2 KATAKANA DIGRAPH KOTO
+3100..3104 ; disallowed # NA <reserved-3100>..<reserved-3104>
+3105..312C ; valid # 1.1 BOPOMOFO LETTER B..BOPOMOFO LETTER GN
+312D ; valid # 5.1 BOPOMOFO LETTER IH
+312E ; valid # 10.0 BOPOMOFO LETTER O WITH DOT ABOVE
+312F ; valid # 11.0 BOPOMOFO LETTER NN
+3130 ; disallowed # NA <reserved-3130>
+3131 ; mapped ; 1100 # 1.1 HANGUL LETTER KIYEOK
+3132 ; mapped ; 1101 # 1.1 HANGUL LETTER SSANGKIYEOK
+3133 ; mapped ; 11AA # 1.1 HANGUL LETTER KIYEOK-SIOS
+3134 ; mapped ; 1102 # 1.1 HANGUL LETTER NIEUN
+3135 ; mapped ; 11AC # 1.1 HANGUL LETTER NIEUN-CIEUC
+3136 ; mapped ; 11AD # 1.1 HANGUL LETTER NIEUN-HIEUH
+3137 ; mapped ; 1103 # 1.1 HANGUL LETTER TIKEUT
+3138 ; mapped ; 1104 # 1.1 HANGUL LETTER SSANGTIKEUT
+3139 ; mapped ; 1105 # 1.1 HANGUL LETTER RIEUL
+313A ; mapped ; 11B0 # 1.1 HANGUL LETTER RIEUL-KIYEOK
+313B ; mapped ; 11B1 # 1.1 HANGUL LETTER RIEUL-MIEUM
+313C ; mapped ; 11B2 # 1.1 HANGUL LETTER RIEUL-PIEUP
+313D ; mapped ; 11B3 # 1.1 HANGUL LETTER RIEUL-SIOS
+313E ; mapped ; 11B4 # 1.1 HANGUL LETTER RIEUL-THIEUTH
+313F ; mapped ; 11B5 # 1.1 HANGUL LETTER RIEUL-PHIEUPH
+3140 ; mapped ; 111A # 1.1 HANGUL LETTER RIEUL-HIEUH
+3141 ; mapped ; 1106 # 1.1 HANGUL LETTER MIEUM
+3142 ; mapped ; 1107 # 1.1 HANGUL LETTER PIEUP
+3143 ; mapped ; 1108 # 1.1 HANGUL LETTER SSANGPIEUP
+3144 ; mapped ; 1121 # 1.1 HANGUL LETTER PIEUP-SIOS
+3145 ; mapped ; 1109 # 1.1 HANGUL LETTER SIOS
+3146 ; mapped ; 110A # 1.1 HANGUL LETTER SSANGSIOS
+3147 ; mapped ; 110B # 1.1 HANGUL LETTER IEUNG
+3148 ; mapped ; 110C # 1.1 HANGUL LETTER CIEUC
+3149 ; mapped ; 110D # 1.1 HANGUL LETTER SSANGCIEUC
+314A ; mapped ; 110E # 1.1 HANGUL LETTER CHIEUCH
+314B ; mapped ; 110F # 1.1 HANGUL LETTER KHIEUKH
+314C ; mapped ; 1110 # 1.1 HANGUL LETTER THIEUTH
+314D ; mapped ; 1111 # 1.1 HANGUL LETTER PHIEUPH
+314E ; mapped ; 1112 # 1.1 HANGUL LETTER HIEUH
+314F ; mapped ; 1161 # 1.1 HANGUL LETTER A
+3150 ; mapped ; 1162 # 1.1 HANGUL LETTER AE
+3151 ; mapped ; 1163 # 1.1 HANGUL LETTER YA
+3152 ; mapped ; 1164 # 1.1 HANGUL LETTER YAE
+3153 ; mapped ; 1165 # 1.1 HANGUL LETTER EO
+3154 ; mapped ; 1166 # 1.1 HANGUL LETTER E
+3155 ; mapped ; 1167 # 1.1 HANGUL LETTER YEO
+3156 ; mapped ; 1168 # 1.1 HANGUL LETTER YE
+3157 ; mapped ; 1169 # 1.1 HANGUL LETTER O
+3158 ; mapped ; 116A # 1.1 HANGUL LETTER WA
+3159 ; mapped ; 116B # 1.1 HANGUL LETTER WAE
+315A ; mapped ; 116C # 1.1 HANGUL LETTER OE
+315B ; mapped ; 116D # 1.1 HANGUL LETTER YO
+315C ; mapped ; 116E # 1.1 HANGUL LETTER U
+315D ; mapped ; 116F # 1.1 HANGUL LETTER WEO
+315E ; mapped ; 1170 # 1.1 HANGUL LETTER WE
+315F ; mapped ; 1171 # 1.1 HANGUL LETTER WI
+3160 ; mapped ; 1172 # 1.1 HANGUL LETTER YU
+3161 ; mapped ; 1173 # 1.1 HANGUL LETTER EU
+3162 ; mapped ; 1174 # 1.1 HANGUL LETTER YI
+3163 ; mapped ; 1175 # 1.1 HANGUL LETTER I
+3164 ; disallowed # 1.1 HANGUL FILLER
+3165 ; mapped ; 1114 # 1.1 HANGUL LETTER SSANGNIEUN
+3166 ; mapped ; 1115 # 1.1 HANGUL LETTER NIEUN-TIKEUT
+3167 ; mapped ; 11C7 # 1.1 HANGUL LETTER NIEUN-SIOS
+3168 ; mapped ; 11C8 # 1.1 HANGUL LETTER NIEUN-PANSIOS
+3169 ; mapped ; 11CC # 1.1 HANGUL LETTER RIEUL-KIYEOK-SIOS
+316A ; mapped ; 11CE # 1.1 HANGUL LETTER RIEUL-TIKEUT
+316B ; mapped ; 11D3 # 1.1 HANGUL LETTER RIEUL-PIEUP-SIOS
+316C ; mapped ; 11D7 # 1.1 HANGUL LETTER RIEUL-PANSIOS
+316D ; mapped ; 11D9 # 1.1 HANGUL LETTER RIEUL-YEORINHIEUH
+316E ; mapped ; 111C # 1.1 HANGUL LETTER MIEUM-PIEUP
+316F ; mapped ; 11DD # 1.1 HANGUL LETTER MIEUM-SIOS
+3170 ; mapped ; 11DF # 1.1 HANGUL LETTER MIEUM-PANSIOS
+3171 ; mapped ; 111D # 1.1 HANGUL LETTER KAPYEOUNMIEUM
+3172 ; mapped ; 111E # 1.1 HANGUL LETTER PIEUP-KIYEOK
+3173 ; mapped ; 1120 # 1.1 HANGUL LETTER PIEUP-TIKEUT
+3174 ; mapped ; 1122 # 1.1 HANGUL LETTER PIEUP-SIOS-KIYEOK
+3175 ; mapped ; 1123 # 1.1 HANGUL LETTER PIEUP-SIOS-TIKEUT
+3176 ; mapped ; 1127 # 1.1 HANGUL LETTER PIEUP-CIEUC
+3177 ; mapped ; 1129 # 1.1 HANGUL LETTER PIEUP-THIEUTH
+3178 ; mapped ; 112B # 1.1 HANGUL LETTER KAPYEOUNPIEUP
+3179 ; mapped ; 112C # 1.1 HANGUL LETTER KAPYEOUNSSANGPIEUP
+317A ; mapped ; 112D # 1.1 HANGUL LETTER SIOS-KIYEOK
+317B ; mapped ; 112E # 1.1 HANGUL LETTER SIOS-NIEUN
+317C ; mapped ; 112F # 1.1 HANGUL LETTER SIOS-TIKEUT
+317D ; mapped ; 1132 # 1.1 HANGUL LETTER SIOS-PIEUP
+317E ; mapped ; 1136 # 1.1 HANGUL LETTER SIOS-CIEUC
+317F ; mapped ; 1140 # 1.1 HANGUL LETTER PANSIOS
+3180 ; mapped ; 1147 # 1.1 HANGUL LETTER SSANGIEUNG
+3181 ; mapped ; 114C # 1.1 HANGUL LETTER YESIEUNG
+3182 ; mapped ; 11F1 # 1.1 HANGUL LETTER YESIEUNG-SIOS
+3183 ; mapped ; 11F2 # 1.1 HANGUL LETTER YESIEUNG-PANSIOS
+3184 ; mapped ; 1157 # 1.1 HANGUL LETTER KAPYEOUNPHIEUPH
+3185 ; mapped ; 1158 # 1.1 HANGUL LETTER SSANGHIEUH
+3186 ; mapped ; 1159 # 1.1 HANGUL LETTER YEORINHIEUH
+3187 ; mapped ; 1184 # 1.1 HANGUL LETTER YO-YA
+3188 ; mapped ; 1185 # 1.1 HANGUL LETTER YO-YAE
+3189 ; mapped ; 1188 # 1.1 HANGUL LETTER YO-I
+318A ; mapped ; 1191 # 1.1 HANGUL LETTER YU-YEO
+318B ; mapped ; 1192 # 1.1 HANGUL LETTER YU-YE
+318C ; mapped ; 1194 # 1.1 HANGUL LETTER YU-I
+318D ; mapped ; 119E # 1.1 HANGUL LETTER ARAEA
+318E ; mapped ; 11A1 # 1.1 HANGUL LETTER ARAEAE
+318F ; disallowed # NA <reserved-318F>
+3190..3191 ; valid ; ; NV8 # 1.1 IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192 ; mapped ; 4E00 # 1.1 IDEOGRAPHIC ANNOTATION ONE MARK
+3193 ; mapped ; 4E8C # 1.1 IDEOGRAPHIC ANNOTATION TWO MARK
+3194 ; mapped ; 4E09 # 1.1 IDEOGRAPHIC ANNOTATION THREE MARK
+3195 ; mapped ; 56DB # 1.1 IDEOGRAPHIC ANNOTATION FOUR MARK
+3196 ; mapped ; 4E0A # 1.1 IDEOGRAPHIC ANNOTATION TOP MARK
+3197 ; mapped ; 4E2D # 1.1 IDEOGRAPHIC ANNOTATION MIDDLE MARK
+3198 ; mapped ; 4E0B # 1.1 IDEOGRAPHIC ANNOTATION BOTTOM MARK
+3199 ; mapped ; 7532 # 1.1 IDEOGRAPHIC ANNOTATION FIRST MARK
+319A ; mapped ; 4E59 # 1.1 IDEOGRAPHIC ANNOTATION SECOND MARK
+319B ; mapped ; 4E19 # 1.1 IDEOGRAPHIC ANNOTATION THIRD MARK
+319C ; mapped ; 4E01 # 1.1 IDEOGRAPHIC ANNOTATION FOURTH MARK
+319D ; mapped ; 5929 # 1.1 IDEOGRAPHIC ANNOTATION HEAVEN MARK
+319E ; mapped ; 5730 # 1.1 IDEOGRAPHIC ANNOTATION EARTH MARK
+319F ; mapped ; 4EBA # 1.1 IDEOGRAPHIC ANNOTATION MAN MARK
+31A0..31B7 ; valid # 3.0 BOPOMOFO LETTER BU..BOPOMOFO FINAL LETTER H
+31B8..31BA ; valid # 6.0 BOPOMOFO LETTER GH..BOPOMOFO LETTER ZY
+31BB..31BF ; valid # 13.0 BOPOMOFO FINAL LETTER G..BOPOMOFO LETTER AH
+31C0..31CF ; valid ; ; NV8 # 4.1 CJK STROKE T..CJK STROKE N
+31D0..31E3 ; valid ; ; NV8 # 5.1 CJK STROKE H..CJK STROKE Q
+31E4..31EE ; disallowed # NA <reserved-31E4>..<reserved-31EE>
+31EF ; disallowed # 15.1 IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
+31F0..31FF ; valid # 3.2 KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200 ; disallowed_STD3_mapped ; 0028 1100 0029 #1.1 PARENTHESIZED HANGUL KIYEOK
+3201 ; disallowed_STD3_mapped ; 0028 1102 0029 #1.1 PARENTHESIZED HANGUL NIEUN
+3202 ; disallowed_STD3_mapped ; 0028 1103 0029 #1.1 PARENTHESIZED HANGUL TIKEUT
+3203 ; disallowed_STD3_mapped ; 0028 1105 0029 #1.1 PARENTHESIZED HANGUL RIEUL
+3204 ; disallowed_STD3_mapped ; 0028 1106 0029 #1.1 PARENTHESIZED HANGUL MIEUM
+3205 ; disallowed_STD3_mapped ; 0028 1107 0029 #1.1 PARENTHESIZED HANGUL PIEUP
+3206 ; disallowed_STD3_mapped ; 0028 1109 0029 #1.1 PARENTHESIZED HANGUL SIOS
+3207 ; disallowed_STD3_mapped ; 0028 110B 0029 #1.1 PARENTHESIZED HANGUL IEUNG
+3208 ; disallowed_STD3_mapped ; 0028 110C 0029 #1.1 PARENTHESIZED HANGUL CIEUC
+3209 ; disallowed_STD3_mapped ; 0028 110E 0029 #1.1 PARENTHESIZED HANGUL CHIEUCH
+320A ; disallowed_STD3_mapped ; 0028 110F 0029 #1.1 PARENTHESIZED HANGUL KHIEUKH
+320B ; disallowed_STD3_mapped ; 0028 1110 0029 #1.1 PARENTHESIZED HANGUL THIEUTH
+320C ; disallowed_STD3_mapped ; 0028 1111 0029 #1.1 PARENTHESIZED HANGUL PHIEUPH
+320D ; disallowed_STD3_mapped ; 0028 1112 0029 #1.1 PARENTHESIZED HANGUL HIEUH
+320E ; disallowed_STD3_mapped ; 0028 AC00 0029 #1.1 PARENTHESIZED HANGUL KIYEOK A
+320F ; disallowed_STD3_mapped ; 0028 B098 0029 #1.1 PARENTHESIZED HANGUL NIEUN A
+3210 ; disallowed_STD3_mapped ; 0028 B2E4 0029 #1.1 PARENTHESIZED HANGUL TIKEUT A
+3211 ; disallowed_STD3_mapped ; 0028 B77C 0029 #1.1 PARENTHESIZED HANGUL RIEUL A
+3212 ; disallowed_STD3_mapped ; 0028 B9C8 0029 #1.1 PARENTHESIZED HANGUL MIEUM A
+3213 ; disallowed_STD3_mapped ; 0028 BC14 0029 #1.1 PARENTHESIZED HANGUL PIEUP A
+3214 ; disallowed_STD3_mapped ; 0028 C0AC 0029 #1.1 PARENTHESIZED HANGUL SIOS A
+3215 ; disallowed_STD3_mapped ; 0028 C544 0029 #1.1 PARENTHESIZED HANGUL IEUNG A
+3216 ; disallowed_STD3_mapped ; 0028 C790 0029 #1.1 PARENTHESIZED HANGUL CIEUC A
+3217 ; disallowed_STD3_mapped ; 0028 CC28 0029 #1.1 PARENTHESIZED HANGUL CHIEUCH A
+3218 ; disallowed_STD3_mapped ; 0028 CE74 0029 #1.1 PARENTHESIZED HANGUL KHIEUKH A
+3219 ; disallowed_STD3_mapped ; 0028 D0C0 0029 #1.1 PARENTHESIZED HANGUL THIEUTH A
+321A ; disallowed_STD3_mapped ; 0028 D30C 0029 #1.1 PARENTHESIZED HANGUL PHIEUPH A
+321B ; disallowed_STD3_mapped ; 0028 D558 0029 #1.1 PARENTHESIZED HANGUL HIEUH A
+321C ; disallowed_STD3_mapped ; 0028 C8FC 0029 #1.1 PARENTHESIZED HANGUL CIEUC U
+321D ; disallowed_STD3_mapped ; 0028 C624 C804 0029 #4.0 PARENTHESIZED KOREAN CHARACTER OJEON
+321E ; disallowed_STD3_mapped ; 0028 C624 D6C4 0029 #4.0 PARENTHESIZED KOREAN CHARACTER O HU
+321F ; disallowed # NA <reserved-321F>
+3220 ; disallowed_STD3_mapped ; 0028 4E00 0029 #1.1 PARENTHESIZED IDEOGRAPH ONE
+3221 ; disallowed_STD3_mapped ; 0028 4E8C 0029 #1.1 PARENTHESIZED IDEOGRAPH TWO
+3222 ; disallowed_STD3_mapped ; 0028 4E09 0029 #1.1 PARENTHESIZED IDEOGRAPH THREE
+3223 ; disallowed_STD3_mapped ; 0028 56DB 0029 #1.1 PARENTHESIZED IDEOGRAPH FOUR
+3224 ; disallowed_STD3_mapped ; 0028 4E94 0029 #1.1 PARENTHESIZED IDEOGRAPH FIVE
+3225 ; disallowed_STD3_mapped ; 0028 516D 0029 #1.1 PARENTHESIZED IDEOGRAPH SIX
+3226 ; disallowed_STD3_mapped ; 0028 4E03 0029 #1.1 PARENTHESIZED IDEOGRAPH SEVEN
+3227 ; disallowed_STD3_mapped ; 0028 516B 0029 #1.1 PARENTHESIZED IDEOGRAPH EIGHT
+3228 ; disallowed_STD3_mapped ; 0028 4E5D 0029 #1.1 PARENTHESIZED IDEOGRAPH NINE
+3229 ; disallowed_STD3_mapped ; 0028 5341 0029 #1.1 PARENTHESIZED IDEOGRAPH TEN
+322A ; disallowed_STD3_mapped ; 0028 6708 0029 #1.1 PARENTHESIZED IDEOGRAPH MOON
+322B ; disallowed_STD3_mapped ; 0028 706B 0029 #1.1 PARENTHESIZED IDEOGRAPH FIRE
+322C ; disallowed_STD3_mapped ; 0028 6C34 0029 #1.1 PARENTHESIZED IDEOGRAPH WATER
+322D ; disallowed_STD3_mapped ; 0028 6728 0029 #1.1 PARENTHESIZED IDEOGRAPH WOOD
+322E ; disallowed_STD3_mapped ; 0028 91D1 0029 #1.1 PARENTHESIZED IDEOGRAPH METAL
+322F ; disallowed_STD3_mapped ; 0028 571F 0029 #1.1 PARENTHESIZED IDEOGRAPH EARTH
+3230 ; disallowed_STD3_mapped ; 0028 65E5 0029 #1.1 PARENTHESIZED IDEOGRAPH SUN
+3231 ; disallowed_STD3_mapped ; 0028 682A 0029 #1.1 PARENTHESIZED IDEOGRAPH STOCK
+3232 ; disallowed_STD3_mapped ; 0028 6709 0029 #1.1 PARENTHESIZED IDEOGRAPH HAVE
+3233 ; disallowed_STD3_mapped ; 0028 793E 0029 #1.1 PARENTHESIZED IDEOGRAPH SOCIETY
+3234 ; disallowed_STD3_mapped ; 0028 540D 0029 #1.1 PARENTHESIZED IDEOGRAPH NAME
+3235 ; disallowed_STD3_mapped ; 0028 7279 0029 #1.1 PARENTHESIZED IDEOGRAPH SPECIAL
+3236 ; disallowed_STD3_mapped ; 0028 8CA1 0029 #1.1 PARENTHESIZED IDEOGRAPH FINANCIAL
+3237 ; disallowed_STD3_mapped ; 0028 795D 0029 #1.1 PARENTHESIZED IDEOGRAPH CONGRATULATION
+3238 ; disallowed_STD3_mapped ; 0028 52B4 0029 #1.1 PARENTHESIZED IDEOGRAPH LABOR
+3239 ; disallowed_STD3_mapped ; 0028 4EE3 0029 #1.1 PARENTHESIZED IDEOGRAPH REPRESENT
+323A ; disallowed_STD3_mapped ; 0028 547C 0029 #1.1 PARENTHESIZED IDEOGRAPH CALL
+323B ; disallowed_STD3_mapped ; 0028 5B66 0029 #1.1 PARENTHESIZED IDEOGRAPH STUDY
+323C ; disallowed_STD3_mapped ; 0028 76E3 0029 #1.1 PARENTHESIZED IDEOGRAPH SUPERVISE
+323D ; disallowed_STD3_mapped ; 0028 4F01 0029 #1.1 PARENTHESIZED IDEOGRAPH ENTERPRISE
+323E ; disallowed_STD3_mapped ; 0028 8CC7 0029 #1.1 PARENTHESIZED IDEOGRAPH RESOURCE
+323F ; disallowed_STD3_mapped ; 0028 5354 0029 #1.1 PARENTHESIZED IDEOGRAPH ALLIANCE
+3240 ; disallowed_STD3_mapped ; 0028 796D 0029 #1.1 PARENTHESIZED IDEOGRAPH FESTIVAL
+3241 ; disallowed_STD3_mapped ; 0028 4F11 0029 #1.1 PARENTHESIZED IDEOGRAPH REST
+3242 ; disallowed_STD3_mapped ; 0028 81EA 0029 #1.1 PARENTHESIZED IDEOGRAPH SELF
+3243 ; disallowed_STD3_mapped ; 0028 81F3 0029 #1.1 PARENTHESIZED IDEOGRAPH REACH
+3244 ; mapped ; 554F # 5.2 CIRCLED IDEOGRAPH QUESTION
+3245 ; mapped ; 5E7C # 5.2 CIRCLED IDEOGRAPH KINDERGARTEN
+3246 ; mapped ; 6587 # 5.2 CIRCLED IDEOGRAPH SCHOOL
+3247 ; mapped ; 7B8F # 5.2 CIRCLED IDEOGRAPH KOTO
+3248..324F ; valid ; ; NV8 # 5.2 CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250 ; mapped ; 0070 0074 0065 #4.0 PARTNERSHIP SIGN
+3251 ; mapped ; 0032 0031 # 3.2 CIRCLED NUMBER TWENTY ONE
+3252 ; mapped ; 0032 0032 # 3.2 CIRCLED NUMBER TWENTY TWO
+3253 ; mapped ; 0032 0033 # 3.2 CIRCLED NUMBER TWENTY THREE
+3254 ; mapped ; 0032 0034 # 3.2 CIRCLED NUMBER TWENTY FOUR
+3255 ; mapped ; 0032 0035 # 3.2 CIRCLED NUMBER TWENTY FIVE
+3256 ; mapped ; 0032 0036 # 3.2 CIRCLED NUMBER TWENTY SIX
+3257 ; mapped ; 0032 0037 # 3.2 CIRCLED NUMBER TWENTY SEVEN
+3258 ; mapped ; 0032 0038 # 3.2 CIRCLED NUMBER TWENTY EIGHT
+3259 ; mapped ; 0032 0039 # 3.2 CIRCLED NUMBER TWENTY NINE
+325A ; mapped ; 0033 0030 # 3.2 CIRCLED NUMBER THIRTY
+325B ; mapped ; 0033 0031 # 3.2 CIRCLED NUMBER THIRTY ONE
+325C ; mapped ; 0033 0032 # 3.2 CIRCLED NUMBER THIRTY TWO
+325D ; mapped ; 0033 0033 # 3.2 CIRCLED NUMBER THIRTY THREE
+325E ; mapped ; 0033 0034 # 3.2 CIRCLED NUMBER THIRTY FOUR
+325F ; mapped ; 0033 0035 # 3.2 CIRCLED NUMBER THIRTY FIVE
+3260 ; mapped ; 1100 # 1.1 CIRCLED HANGUL KIYEOK
+3261 ; mapped ; 1102 # 1.1 CIRCLED HANGUL NIEUN
+3262 ; mapped ; 1103 # 1.1 CIRCLED HANGUL TIKEUT
+3263 ; mapped ; 1105 # 1.1 CIRCLED HANGUL RIEUL
+3264 ; mapped ; 1106 # 1.1 CIRCLED HANGUL MIEUM
+3265 ; mapped ; 1107 # 1.1 CIRCLED HANGUL PIEUP
+3266 ; mapped ; 1109 # 1.1 CIRCLED HANGUL SIOS
+3267 ; mapped ; 110B # 1.1 CIRCLED HANGUL IEUNG
+3268 ; mapped ; 110C # 1.1 CIRCLED HANGUL CIEUC
+3269 ; mapped ; 110E # 1.1 CIRCLED HANGUL CHIEUCH
+326A ; mapped ; 110F # 1.1 CIRCLED HANGUL KHIEUKH
+326B ; mapped ; 1110 # 1.1 CIRCLED HANGUL THIEUTH
+326C ; mapped ; 1111 # 1.1 CIRCLED HANGUL PHIEUPH
+326D ; mapped ; 1112 # 1.1 CIRCLED HANGUL HIEUH
+326E ; mapped ; AC00 # 1.1 CIRCLED HANGUL KIYEOK A
+326F ; mapped ; B098 # 1.1 CIRCLED HANGUL NIEUN A
+3270 ; mapped ; B2E4 # 1.1 CIRCLED HANGUL TIKEUT A
+3271 ; mapped ; B77C # 1.1 CIRCLED HANGUL RIEUL A
+3272 ; mapped ; B9C8 # 1.1 CIRCLED HANGUL MIEUM A
+3273 ; mapped ; BC14 # 1.1 CIRCLED HANGUL PIEUP A
+3274 ; mapped ; C0AC # 1.1 CIRCLED HANGUL SIOS A
+3275 ; mapped ; C544 # 1.1 CIRCLED HANGUL IEUNG A
+3276 ; mapped ; C790 # 1.1 CIRCLED HANGUL CIEUC A
+3277 ; mapped ; CC28 # 1.1 CIRCLED HANGUL CHIEUCH A
+3278 ; mapped ; CE74 # 1.1 CIRCLED HANGUL KHIEUKH A
+3279 ; mapped ; D0C0 # 1.1 CIRCLED HANGUL THIEUTH A
+327A ; mapped ; D30C # 1.1 CIRCLED HANGUL PHIEUPH A
+327B ; mapped ; D558 # 1.1 CIRCLED HANGUL HIEUH A
+327C ; mapped ; CC38 ACE0 # 4.0 CIRCLED KOREAN CHARACTER CHAMKO
+327D ; mapped ; C8FC C758 # 4.0 CIRCLED KOREAN CHARACTER JUEUI
+327E ; mapped ; C6B0 # 4.1 CIRCLED HANGUL IEUNG U
+327F ; valid ; ; NV8 # 1.1 KOREAN STANDARD SYMBOL
+3280 ; mapped ; 4E00 # 1.1 CIRCLED IDEOGRAPH ONE
+3281 ; mapped ; 4E8C # 1.1 CIRCLED IDEOGRAPH TWO
+3282 ; mapped ; 4E09 # 1.1 CIRCLED IDEOGRAPH THREE
+3283 ; mapped ; 56DB # 1.1 CIRCLED IDEOGRAPH FOUR
+3284 ; mapped ; 4E94 # 1.1 CIRCLED IDEOGRAPH FIVE
+3285 ; mapped ; 516D # 1.1 CIRCLED IDEOGRAPH SIX
+3286 ; mapped ; 4E03 # 1.1 CIRCLED IDEOGRAPH SEVEN
+3287 ; mapped ; 516B # 1.1 CIRCLED IDEOGRAPH EIGHT
+3288 ; mapped ; 4E5D # 1.1 CIRCLED IDEOGRAPH NINE
+3289 ; mapped ; 5341 # 1.1 CIRCLED IDEOGRAPH TEN
+328A ; mapped ; 6708 # 1.1 CIRCLED IDEOGRAPH MOON
+328B ; mapped ; 706B # 1.1 CIRCLED IDEOGRAPH FIRE
+328C ; mapped ; 6C34 # 1.1 CIRCLED IDEOGRAPH WATER
+328D ; mapped ; 6728 # 1.1 CIRCLED IDEOGRAPH WOOD
+328E ; mapped ; 91D1 # 1.1 CIRCLED IDEOGRAPH METAL
+328F ; mapped ; 571F # 1.1 CIRCLED IDEOGRAPH EARTH
+3290 ; mapped ; 65E5 # 1.1 CIRCLED IDEOGRAPH SUN
+3291 ; mapped ; 682A # 1.1 CIRCLED IDEOGRAPH STOCK
+3292 ; mapped ; 6709 # 1.1 CIRCLED IDEOGRAPH HAVE
+3293 ; mapped ; 793E # 1.1 CIRCLED IDEOGRAPH SOCIETY
+3294 ; mapped ; 540D # 1.1 CIRCLED IDEOGRAPH NAME
+3295 ; mapped ; 7279 # 1.1 CIRCLED IDEOGRAPH SPECIAL
+3296 ; mapped ; 8CA1 # 1.1 CIRCLED IDEOGRAPH FINANCIAL
+3297 ; mapped ; 795D # 1.1 CIRCLED IDEOGRAPH CONGRATULATION
+3298 ; mapped ; 52B4 # 1.1 CIRCLED IDEOGRAPH LABOR
+3299 ; mapped ; 79D8 # 1.1 CIRCLED IDEOGRAPH SECRET
+329A ; mapped ; 7537 # 1.1 CIRCLED IDEOGRAPH MALE
+329B ; mapped ; 5973 # 1.1 CIRCLED IDEOGRAPH FEMALE
+329C ; mapped ; 9069 # 1.1 CIRCLED IDEOGRAPH SUITABLE
+329D ; mapped ; 512A # 1.1 CIRCLED IDEOGRAPH EXCELLENT
+329E ; mapped ; 5370 # 1.1 CIRCLED IDEOGRAPH PRINT
+329F ; mapped ; 6CE8 # 1.1 CIRCLED IDEOGRAPH ATTENTION
+32A0 ; mapped ; 9805 # 1.1 CIRCLED IDEOGRAPH ITEM
+32A1 ; mapped ; 4F11 # 1.1 CIRCLED IDEOGRAPH REST
+32A2 ; mapped ; 5199 # 1.1 CIRCLED IDEOGRAPH COPY
+32A3 ; mapped ; 6B63 # 1.1 CIRCLED IDEOGRAPH CORRECT
+32A4 ; mapped ; 4E0A # 1.1 CIRCLED IDEOGRAPH HIGH
+32A5 ; mapped ; 4E2D # 1.1 CIRCLED IDEOGRAPH CENTRE
+32A6 ; mapped ; 4E0B # 1.1 CIRCLED IDEOGRAPH LOW
+32A7 ; mapped ; 5DE6 # 1.1 CIRCLED IDEOGRAPH LEFT
+32A8 ; mapped ; 53F3 # 1.1 CIRCLED IDEOGRAPH RIGHT
+32A9 ; mapped ; 533B # 1.1 CIRCLED IDEOGRAPH MEDICINE
+32AA ; mapped ; 5B97 # 1.1 CIRCLED IDEOGRAPH RELIGION
+32AB ; mapped ; 5B66 # 1.1 CIRCLED IDEOGRAPH STUDY
+32AC ; mapped ; 76E3 # 1.1 CIRCLED IDEOGRAPH SUPERVISE
+32AD ; mapped ; 4F01 # 1.1 CIRCLED IDEOGRAPH ENTERPRISE
+32AE ; mapped ; 8CC7 # 1.1 CIRCLED IDEOGRAPH RESOURCE
+32AF ; mapped ; 5354 # 1.1 CIRCLED IDEOGRAPH ALLIANCE
+32B0 ; mapped ; 591C # 1.1 CIRCLED IDEOGRAPH NIGHT
+32B1 ; mapped ; 0033 0036 # 3.2 CIRCLED NUMBER THIRTY SIX
+32B2 ; mapped ; 0033 0037 # 3.2 CIRCLED NUMBER THIRTY SEVEN
+32B3 ; mapped ; 0033 0038 # 3.2 CIRCLED NUMBER THIRTY EIGHT
+32B4 ; mapped ; 0033 0039 # 3.2 CIRCLED NUMBER THIRTY NINE
+32B5 ; mapped ; 0034 0030 # 3.2 CIRCLED NUMBER FORTY
+32B6 ; mapped ; 0034 0031 # 3.2 CIRCLED NUMBER FORTY ONE
+32B7 ; mapped ; 0034 0032 # 3.2 CIRCLED NUMBER FORTY TWO
+32B8 ; mapped ; 0034 0033 # 3.2 CIRCLED NUMBER FORTY THREE
+32B9 ; mapped ; 0034 0034 # 3.2 CIRCLED NUMBER FORTY FOUR
+32BA ; mapped ; 0034 0035 # 3.2 CIRCLED NUMBER FORTY FIVE
+32BB ; mapped ; 0034 0036 # 3.2 CIRCLED NUMBER FORTY SIX
+32BC ; mapped ; 0034 0037 # 3.2 CIRCLED NUMBER FORTY SEVEN
+32BD ; mapped ; 0034 0038 # 3.2 CIRCLED NUMBER FORTY EIGHT
+32BE ; mapped ; 0034 0039 # 3.2 CIRCLED NUMBER FORTY NINE
+32BF ; mapped ; 0035 0030 # 3.2 CIRCLED NUMBER FIFTY
+32C0 ; mapped ; 0031 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY
+32C1 ; mapped ; 0032 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY
+32C2 ; mapped ; 0033 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH
+32C3 ; mapped ; 0034 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL
+32C4 ; mapped ; 0035 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY
+32C5 ; mapped ; 0036 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE
+32C6 ; mapped ; 0037 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY
+32C7 ; mapped ; 0038 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST
+32C8 ; mapped ; 0039 6708 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER
+32C9 ; mapped ; 0031 0030 6708 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER
+32CA ; mapped ; 0031 0031 6708 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER
+32CB ; mapped ; 0031 0032 6708 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
+32CC ; mapped ; 0068 0067 # 4.0 SQUARE HG
+32CD ; mapped ; 0065 0072 0067 #4.0 SQUARE ERG
+32CE ; mapped ; 0065 0076 # 4.0 SQUARE EV
+32CF ; mapped ; 006C 0074 0064 #4.0 LIMITED LIABILITY SIGN
+32D0 ; mapped ; 30A2 # 1.1 CIRCLED KATAKANA A
+32D1 ; mapped ; 30A4 # 1.1 CIRCLED KATAKANA I
+32D2 ; mapped ; 30A6 # 1.1 CIRCLED KATAKANA U
+32D3 ; mapped ; 30A8 # 1.1 CIRCLED KATAKANA E
+32D4 ; mapped ; 30AA # 1.1 CIRCLED KATAKANA O
+32D5 ; mapped ; 30AB # 1.1 CIRCLED KATAKANA KA
+32D6 ; mapped ; 30AD # 1.1 CIRCLED KATAKANA KI
+32D7 ; mapped ; 30AF # 1.1 CIRCLED KATAKANA KU
+32D8 ; mapped ; 30B1 # 1.1 CIRCLED KATAKANA KE
+32D9 ; mapped ; 30B3 # 1.1 CIRCLED KATAKANA KO
+32DA ; mapped ; 30B5 # 1.1 CIRCLED KATAKANA SA
+32DB ; mapped ; 30B7 # 1.1 CIRCLED KATAKANA SI
+32DC ; mapped ; 30B9 # 1.1 CIRCLED KATAKANA SU
+32DD ; mapped ; 30BB # 1.1 CIRCLED KATAKANA SE
+32DE ; mapped ; 30BD # 1.1 CIRCLED KATAKANA SO
+32DF ; mapped ; 30BF # 1.1 CIRCLED KATAKANA TA
+32E0 ; mapped ; 30C1 # 1.1 CIRCLED KATAKANA TI
+32E1 ; mapped ; 30C4 # 1.1 CIRCLED KATAKANA TU
+32E2 ; mapped ; 30C6 # 1.1 CIRCLED KATAKANA TE
+32E3 ; mapped ; 30C8 # 1.1 CIRCLED KATAKANA TO
+32E4 ; mapped ; 30CA # 1.1 CIRCLED KATAKANA NA
+32E5 ; mapped ; 30CB # 1.1 CIRCLED KATAKANA NI
+32E6 ; mapped ; 30CC # 1.1 CIRCLED KATAKANA NU
+32E7 ; mapped ; 30CD # 1.1 CIRCLED KATAKANA NE
+32E8 ; mapped ; 30CE # 1.1 CIRCLED KATAKANA NO
+32E9 ; mapped ; 30CF # 1.1 CIRCLED KATAKANA HA
+32EA ; mapped ; 30D2 # 1.1 CIRCLED KATAKANA HI
+32EB ; mapped ; 30D5 # 1.1 CIRCLED KATAKANA HU
+32EC ; mapped ; 30D8 # 1.1 CIRCLED KATAKANA HE
+32ED ; mapped ; 30DB # 1.1 CIRCLED KATAKANA HO
+32EE ; mapped ; 30DE # 1.1 CIRCLED KATAKANA MA
+32EF ; mapped ; 30DF # 1.1 CIRCLED KATAKANA MI
+32F0 ; mapped ; 30E0 # 1.1 CIRCLED KATAKANA MU
+32F1 ; mapped ; 30E1 # 1.1 CIRCLED KATAKANA ME
+32F2 ; mapped ; 30E2 # 1.1 CIRCLED KATAKANA MO
+32F3 ; mapped ; 30E4 # 1.1 CIRCLED KATAKANA YA
+32F4 ; mapped ; 30E6 # 1.1 CIRCLED KATAKANA YU
+32F5 ; mapped ; 30E8 # 1.1 CIRCLED KATAKANA YO
+32F6 ; mapped ; 30E9 # 1.1 CIRCLED KATAKANA RA
+32F7 ; mapped ; 30EA # 1.1 CIRCLED KATAKANA RI
+32F8 ; mapped ; 30EB # 1.1 CIRCLED KATAKANA RU
+32F9 ; mapped ; 30EC # 1.1 CIRCLED KATAKANA RE
+32FA ; mapped ; 30ED # 1.1 CIRCLED KATAKANA RO
+32FB ; mapped ; 30EF # 1.1 CIRCLED KATAKANA WA
+32FC ; mapped ; 30F0 # 1.1 CIRCLED KATAKANA WI
+32FD ; mapped ; 30F1 # 1.1 CIRCLED KATAKANA WE
+32FE ; mapped ; 30F2 # 1.1 CIRCLED KATAKANA WO
+32FF ; mapped ; 4EE4 548C # 12.1 SQUARE ERA NAME REIWA
+3300 ; mapped ; 30A2 30D1 30FC 30C8 #1.1 SQUARE APAATO
+3301 ; mapped ; 30A2 30EB 30D5 30A1 #1.1 SQUARE ARUHUA
+3302 ; mapped ; 30A2 30F3 30DA 30A2 #1.1 SQUARE ANPEA
+3303 ; mapped ; 30A2 30FC 30EB #1.1 SQUARE AARU
+3304 ; mapped ; 30A4 30CB 30F3 30B0 #1.1 SQUARE ININGU
+3305 ; mapped ; 30A4 30F3 30C1 #1.1 SQUARE INTI
+3306 ; mapped ; 30A6 30A9 30F3 #1.1 SQUARE UON
+3307 ; mapped ; 30A8 30B9 30AF 30FC 30C9 #1.1 SQUARE ESUKUUDO
+3308 ; mapped ; 30A8 30FC 30AB 30FC #1.1 SQUARE EEKAA
+3309 ; mapped ; 30AA 30F3 30B9 #1.1 SQUARE ONSU
+330A ; mapped ; 30AA 30FC 30E0 #1.1 SQUARE OOMU
+330B ; mapped ; 30AB 30A4 30EA #1.1 SQUARE KAIRI
+330C ; mapped ; 30AB 30E9 30C3 30C8 #1.1 SQUARE KARATTO
+330D ; mapped ; 30AB 30ED 30EA 30FC #1.1 SQUARE KARORII
+330E ; mapped ; 30AC 30ED 30F3 #1.1 SQUARE GARON
+330F ; mapped ; 30AC 30F3 30DE #1.1 SQUARE GANMA
+3310 ; mapped ; 30AE 30AC # 1.1 SQUARE GIGA
+3311 ; mapped ; 30AE 30CB 30FC #1.1 SQUARE GINII
+3312 ; mapped ; 30AD 30E5 30EA 30FC #1.1 SQUARE KYURII
+3313 ; mapped ; 30AE 30EB 30C0 30FC #1.1 SQUARE GIRUDAA
+3314 ; mapped ; 30AD 30ED # 1.1 SQUARE KIRO
+3315 ; mapped ; 30AD 30ED 30B0 30E9 30E0 #1.1 SQUARE KIROGURAMU
+3316 ; mapped ; 30AD 30ED 30E1 30FC 30C8 30EB #1.1 SQUARE KIROMEETORU
+3317 ; mapped ; 30AD 30ED 30EF 30C3 30C8 #1.1 SQUARE KIROWATTO
+3318 ; mapped ; 30B0 30E9 30E0 #1.1 SQUARE GURAMU
+3319 ; mapped ; 30B0 30E9 30E0 30C8 30F3 #1.1 SQUARE GURAMUTON
+331A ; mapped ; 30AF 30EB 30BC 30A4 30ED #1.1 SQUARE KURUZEIRO
+331B ; mapped ; 30AF 30ED 30FC 30CD #1.1 SQUARE KUROONE
+331C ; mapped ; 30B1 30FC 30B9 #1.1 SQUARE KEESU
+331D ; mapped ; 30B3 30EB 30CA #1.1 SQUARE KORUNA
+331E ; mapped ; 30B3 30FC 30DD #1.1 SQUARE KOOPO
+331F ; mapped ; 30B5 30A4 30AF 30EB #1.1 SQUARE SAIKURU
+3320 ; mapped ; 30B5 30F3 30C1 30FC 30E0 #1.1 SQUARE SANTIIMU
+3321 ; mapped ; 30B7 30EA 30F3 30B0 #1.1 SQUARE SIRINGU
+3322 ; mapped ; 30BB 30F3 30C1 #1.1 SQUARE SENTI
+3323 ; mapped ; 30BB 30F3 30C8 #1.1 SQUARE SENTO
+3324 ; mapped ; 30C0 30FC 30B9 #1.1 SQUARE DAASU
+3325 ; mapped ; 30C7 30B7 # 1.1 SQUARE DESI
+3326 ; mapped ; 30C9 30EB # 1.1 SQUARE DORU
+3327 ; mapped ; 30C8 30F3 # 1.1 SQUARE TON
+3328 ; mapped ; 30CA 30CE # 1.1 SQUARE NANO
+3329 ; mapped ; 30CE 30C3 30C8 #1.1 SQUARE NOTTO
+332A ; mapped ; 30CF 30A4 30C4 #1.1 SQUARE HAITU
+332B ; mapped ; 30D1 30FC 30BB 30F3 30C8 #1.1 SQUARE PAASENTO
+332C ; mapped ; 30D1 30FC 30C4 #1.1 SQUARE PAATU
+332D ; mapped ; 30D0 30FC 30EC 30EB #1.1 SQUARE BAARERU
+332E ; mapped ; 30D4 30A2 30B9 30C8 30EB #1.1 SQUARE PIASUTORU
+332F ; mapped ; 30D4 30AF 30EB #1.1 SQUARE PIKURU
+3330 ; mapped ; 30D4 30B3 # 1.1 SQUARE PIKO
+3331 ; mapped ; 30D3 30EB # 1.1 SQUARE BIRU
+3332 ; mapped ; 30D5 30A1 30E9 30C3 30C9 #1.1 SQUARE HUARADDO
+3333 ; mapped ; 30D5 30A3 30FC 30C8 #1.1 SQUARE HUIITO
+3334 ; mapped ; 30D6 30C3 30B7 30A7 30EB #1.1 SQUARE BUSSYERU
+3335 ; mapped ; 30D5 30E9 30F3 #1.1 SQUARE HURAN
+3336 ; mapped ; 30D8 30AF 30BF 30FC 30EB #1.1 SQUARE HEKUTAARU
+3337 ; mapped ; 30DA 30BD # 1.1 SQUARE PESO
+3338 ; mapped ; 30DA 30CB 30D2 #1.1 SQUARE PENIHI
+3339 ; mapped ; 30D8 30EB 30C4 #1.1 SQUARE HERUTU
+333A ; mapped ; 30DA 30F3 30B9 #1.1 SQUARE PENSU
+333B ; mapped ; 30DA 30FC 30B8 #1.1 SQUARE PEEZI
+333C ; mapped ; 30D9 30FC 30BF #1.1 SQUARE BEETA
+333D ; mapped ; 30DD 30A4 30F3 30C8 #1.1 SQUARE POINTO
+333E ; mapped ; 30DC 30EB 30C8 #1.1 SQUARE BORUTO
+333F ; mapped ; 30DB 30F3 # 1.1 SQUARE HON
+3340 ; mapped ; 30DD 30F3 30C9 #1.1 SQUARE PONDO
+3341 ; mapped ; 30DB 30FC 30EB #1.1 SQUARE HOORU
+3342 ; mapped ; 30DB 30FC 30F3 #1.1 SQUARE HOON
+3343 ; mapped ; 30DE 30A4 30AF 30ED #1.1 SQUARE MAIKURO
+3344 ; mapped ; 30DE 30A4 30EB #1.1 SQUARE MAIRU
+3345 ; mapped ; 30DE 30C3 30CF #1.1 SQUARE MAHHA
+3346 ; mapped ; 30DE 30EB 30AF #1.1 SQUARE MARUKU
+3347 ; mapped ; 30DE 30F3 30B7 30E7 30F3 #1.1 SQUARE MANSYON
+3348 ; mapped ; 30DF 30AF 30ED 30F3 #1.1 SQUARE MIKURON
+3349 ; mapped ; 30DF 30EA # 1.1 SQUARE MIRI
+334A ; mapped ; 30DF 30EA 30D0 30FC 30EB #1.1 SQUARE MIRIBAARU
+334B ; mapped ; 30E1 30AC # 1.1 SQUARE MEGA
+334C ; mapped ; 30E1 30AC 30C8 30F3 #1.1 SQUARE MEGATON
+334D ; mapped ; 30E1 30FC 30C8 30EB #1.1 SQUARE MEETORU
+334E ; mapped ; 30E4 30FC 30C9 #1.1 SQUARE YAADO
+334F ; mapped ; 30E4 30FC 30EB #1.1 SQUARE YAARU
+3350 ; mapped ; 30E6 30A2 30F3 #1.1 SQUARE YUAN
+3351 ; mapped ; 30EA 30C3 30C8 30EB #1.1 SQUARE RITTORU
+3352 ; mapped ; 30EA 30E9 # 1.1 SQUARE RIRA
+3353 ; mapped ; 30EB 30D4 30FC #1.1 SQUARE RUPII
+3354 ; mapped ; 30EB 30FC 30D6 30EB #1.1 SQUARE RUUBURU
+3355 ; mapped ; 30EC 30E0 # 1.1 SQUARE REMU
+3356 ; mapped ; 30EC 30F3 30C8 30B2 30F3 #1.1 SQUARE RENTOGEN
+3357 ; mapped ; 30EF 30C3 30C8 #1.1 SQUARE WATTO
+3358 ; mapped ; 0030 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO
+3359 ; mapped ; 0031 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE
+335A ; mapped ; 0032 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO
+335B ; mapped ; 0033 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE
+335C ; mapped ; 0034 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR
+335D ; mapped ; 0035 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE
+335E ; mapped ; 0036 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX
+335F ; mapped ; 0037 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN
+3360 ; mapped ; 0038 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT
+3361 ; mapped ; 0039 70B9 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE
+3362 ; mapped ; 0031 0030 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN
+3363 ; mapped ; 0031 0031 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN
+3364 ; mapped ; 0031 0032 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE
+3365 ; mapped ; 0031 0033 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN
+3366 ; mapped ; 0031 0034 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN
+3367 ; mapped ; 0031 0035 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN
+3368 ; mapped ; 0031 0036 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN
+3369 ; mapped ; 0031 0037 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN
+336A ; mapped ; 0031 0038 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN
+336B ; mapped ; 0031 0039 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN
+336C ; mapped ; 0032 0030 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY
+336D ; mapped ; 0032 0031 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE
+336E ; mapped ; 0032 0032 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO
+336F ; mapped ; 0032 0033 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE
+3370 ; mapped ; 0032 0034 70B9 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
+3371 ; mapped ; 0068 0070 0061 #1.1 SQUARE HPA
+3372 ; mapped ; 0064 0061 # 1.1 SQUARE DA
+3373 ; mapped ; 0061 0075 # 1.1 SQUARE AU
+3374 ; mapped ; 0062 0061 0072 #1.1 SQUARE BAR
+3375 ; mapped ; 006F 0076 # 1.1 SQUARE OV
+3376 ; mapped ; 0070 0063 # 1.1 SQUARE PC
+3377 ; mapped ; 0064 006D # 4.0 SQUARE DM
+3378 ; mapped ; 0064 006D 0032 #4.0 SQUARE DM SQUARED
+3379 ; mapped ; 0064 006D 0033 #4.0 SQUARE DM CUBED
+337A ; mapped ; 0069 0075 # 4.0 SQUARE IU
+337B ; mapped ; 5E73 6210 # 1.1 SQUARE ERA NAME HEISEI
+337C ; mapped ; 662D 548C # 1.1 SQUARE ERA NAME SYOUWA
+337D ; mapped ; 5927 6B63 # 1.1 SQUARE ERA NAME TAISYOU
+337E ; mapped ; 660E 6CBB # 1.1 SQUARE ERA NAME MEIZI
+337F ; mapped ; 682A 5F0F 4F1A 793E #1.1 SQUARE CORPORATION
+3380 ; mapped ; 0070 0061 # 1.1 SQUARE PA AMPS
+3381 ; mapped ; 006E 0061 # 1.1 SQUARE NA
+3382 ; mapped ; 03BC 0061 # 1.1 SQUARE MU A
+3383 ; mapped ; 006D 0061 # 1.1 SQUARE MA
+3384 ; mapped ; 006B 0061 # 1.1 SQUARE KA
+3385 ; mapped ; 006B 0062 # 1.1 SQUARE KB
+3386 ; mapped ; 006D 0062 # 1.1 SQUARE MB
+3387 ; mapped ; 0067 0062 # 1.1 SQUARE GB
+3388 ; mapped ; 0063 0061 006C #1.1 SQUARE CAL
+3389 ; mapped ; 006B 0063 0061 006C #1.1 SQUARE KCAL
+338A ; mapped ; 0070 0066 # 1.1 SQUARE PF
+338B ; mapped ; 006E 0066 # 1.1 SQUARE NF
+338C ; mapped ; 03BC 0066 # 1.1 SQUARE MU F
+338D ; mapped ; 03BC 0067 # 1.1 SQUARE MU G
+338E ; mapped ; 006D 0067 # 1.1 SQUARE MG
+338F ; mapped ; 006B 0067 # 1.1 SQUARE KG
+3390 ; mapped ; 0068 007A # 1.1 SQUARE HZ
+3391 ; mapped ; 006B 0068 007A #1.1 SQUARE KHZ
+3392 ; mapped ; 006D 0068 007A #1.1 SQUARE MHZ
+3393 ; mapped ; 0067 0068 007A #1.1 SQUARE GHZ
+3394 ; mapped ; 0074 0068 007A #1.1 SQUARE THZ
+3395 ; mapped ; 03BC 006C # 1.1 SQUARE MU L
+3396 ; mapped ; 006D 006C # 1.1 SQUARE ML
+3397 ; mapped ; 0064 006C # 1.1 SQUARE DL
+3398 ; mapped ; 006B 006C # 1.1 SQUARE KL
+3399 ; mapped ; 0066 006D # 1.1 SQUARE FM
+339A ; mapped ; 006E 006D # 1.1 SQUARE NM
+339B ; mapped ; 03BC 006D # 1.1 SQUARE MU M
+339C ; mapped ; 006D 006D # 1.1 SQUARE MM
+339D ; mapped ; 0063 006D # 1.1 SQUARE CM
+339E ; mapped ; 006B 006D # 1.1 SQUARE KM
+339F ; mapped ; 006D 006D 0032 #1.1 SQUARE MM SQUARED
+33A0 ; mapped ; 0063 006D 0032 #1.1 SQUARE CM SQUARED
+33A1 ; mapped ; 006D 0032 # 1.1 SQUARE M SQUARED
+33A2 ; mapped ; 006B 006D 0032 #1.1 SQUARE KM SQUARED
+33A3 ; mapped ; 006D 006D 0033 #1.1 SQUARE MM CUBED
+33A4 ; mapped ; 0063 006D 0033 #1.1 SQUARE CM CUBED
+33A5 ; mapped ; 006D 0033 # 1.1 SQUARE M CUBED
+33A6 ; mapped ; 006B 006D 0033 #1.1 SQUARE KM CUBED
+33A7 ; mapped ; 006D 2215 0073 #1.1 SQUARE M OVER S
+33A8 ; mapped ; 006D 2215 0073 0032 #1.1 SQUARE M OVER S SQUARED
+33A9 ; mapped ; 0070 0061 # 1.1 SQUARE PA
+33AA ; mapped ; 006B 0070 0061 #1.1 SQUARE KPA
+33AB ; mapped ; 006D 0070 0061 #1.1 SQUARE MPA
+33AC ; mapped ; 0067 0070 0061 #1.1 SQUARE GPA
+33AD ; mapped ; 0072 0061 0064 #1.1 SQUARE RAD
+33AE ; mapped ; 0072 0061 0064 2215 0073 #1.1 SQUARE RAD OVER S
+33AF ; mapped ; 0072 0061 0064 2215 0073 0032 #1.1 SQUARE RAD OVER S SQUARED
+33B0 ; mapped ; 0070 0073 # 1.1 SQUARE PS
+33B1 ; mapped ; 006E 0073 # 1.1 SQUARE NS
+33B2 ; mapped ; 03BC 0073 # 1.1 SQUARE MU S
+33B3 ; mapped ; 006D 0073 # 1.1 SQUARE MS
+33B4 ; mapped ; 0070 0076 # 1.1 SQUARE PV
+33B5 ; mapped ; 006E 0076 # 1.1 SQUARE NV
+33B6 ; mapped ; 03BC 0076 # 1.1 SQUARE MU V
+33B7 ; mapped ; 006D 0076 # 1.1 SQUARE MV
+33B8 ; mapped ; 006B 0076 # 1.1 SQUARE KV
+33B9 ; mapped ; 006D 0076 # 1.1 SQUARE MV MEGA
+33BA ; mapped ; 0070 0077 # 1.1 SQUARE PW
+33BB ; mapped ; 006E 0077 # 1.1 SQUARE NW
+33BC ; mapped ; 03BC 0077 # 1.1 SQUARE MU W
+33BD ; mapped ; 006D 0077 # 1.1 SQUARE MW
+33BE ; mapped ; 006B 0077 # 1.1 SQUARE KW
+33BF ; mapped ; 006D 0077 # 1.1 SQUARE MW MEGA
+33C0 ; mapped ; 006B 03C9 # 1.1 SQUARE K OHM
+33C1 ; mapped ; 006D 03C9 # 1.1 SQUARE M OHM
+33C2 ; disallowed # 1.1 SQUARE AM
+33C3 ; mapped ; 0062 0071 # 1.1 SQUARE BQ
+33C4 ; mapped ; 0063 0063 # 1.1 SQUARE CC
+33C5 ; mapped ; 0063 0064 # 1.1 SQUARE CD
+33C6 ; mapped ; 0063 2215 006B 0067 #1.1 SQUARE C OVER KG
+33C7 ; disallowed # 1.1 SQUARE CO
+33C8 ; mapped ; 0064 0062 # 1.1 SQUARE DB
+33C9 ; mapped ; 0067 0079 # 1.1 SQUARE GY
+33CA ; mapped ; 0068 0061 # 1.1 SQUARE HA
+33CB ; mapped ; 0068 0070 # 1.1 SQUARE HP
+33CC ; mapped ; 0069 006E # 1.1 SQUARE IN
+33CD ; mapped ; 006B 006B # 1.1 SQUARE KK
+33CE ; mapped ; 006B 006D # 1.1 SQUARE KM CAPITAL
+33CF ; mapped ; 006B 0074 # 1.1 SQUARE KT
+33D0 ; mapped ; 006C 006D # 1.1 SQUARE LM
+33D1 ; mapped ; 006C 006E # 1.1 SQUARE LN
+33D2 ; mapped ; 006C 006F 0067 #1.1 SQUARE LOG
+33D3 ; mapped ; 006C 0078 # 1.1 SQUARE LX
+33D4 ; mapped ; 006D 0062 # 1.1 SQUARE MB SMALL
+33D5 ; mapped ; 006D 0069 006C #1.1 SQUARE MIL
+33D6 ; mapped ; 006D 006F 006C #1.1 SQUARE MOL
+33D7 ; mapped ; 0070 0068 # 1.1 SQUARE PH
+33D8 ; disallowed # 1.1 SQUARE PM
+33D9 ; mapped ; 0070 0070 006D #1.1 SQUARE PPM
+33DA ; mapped ; 0070 0072 # 1.1 SQUARE PR
+33DB ; mapped ; 0073 0072 # 1.1 SQUARE SR
+33DC ; mapped ; 0073 0076 # 1.1 SQUARE SV
+33DD ; mapped ; 0077 0062 # 1.1 SQUARE WB
+33DE ; mapped ; 0076 2215 006D #4.0 SQUARE V OVER M
+33DF ; mapped ; 0061 2215 006D #4.0 SQUARE A OVER M
+33E0 ; mapped ; 0031 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE
+33E1 ; mapped ; 0032 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO
+33E2 ; mapped ; 0033 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE
+33E3 ; mapped ; 0034 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR
+33E4 ; mapped ; 0035 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE
+33E5 ; mapped ; 0036 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX
+33E6 ; mapped ; 0037 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN
+33E7 ; mapped ; 0038 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT
+33E8 ; mapped ; 0039 65E5 # 1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE
+33E9 ; mapped ; 0031 0030 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN
+33EA ; mapped ; 0031 0031 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN
+33EB ; mapped ; 0031 0032 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE
+33EC ; mapped ; 0031 0033 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN
+33ED ; mapped ; 0031 0034 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN
+33EE ; mapped ; 0031 0035 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN
+33EF ; mapped ; 0031 0036 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN
+33F0 ; mapped ; 0031 0037 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN
+33F1 ; mapped ; 0031 0038 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN
+33F2 ; mapped ; 0031 0039 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN
+33F3 ; mapped ; 0032 0030 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY
+33F4 ; mapped ; 0032 0031 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE
+33F5 ; mapped ; 0032 0032 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO
+33F6 ; mapped ; 0032 0033 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE
+33F7 ; mapped ; 0032 0034 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR
+33F8 ; mapped ; 0032 0035 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE
+33F9 ; mapped ; 0032 0036 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX
+33FA ; mapped ; 0032 0037 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN
+33FB ; mapped ; 0032 0038 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT
+33FC ; mapped ; 0032 0039 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE
+33FD ; mapped ; 0033 0030 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY
+33FE ; mapped ; 0033 0031 65E5 #1.1 IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
+33FF ; mapped ; 0067 0061 006C #4.0 SQUARE GAL
+3400..4DB5 ; valid # 3.0 CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5
+4DB6..4DBF ; valid # 13.0 CJK UNIFIED IDEOGRAPH-4DB6..CJK UNIFIED IDEOGRAPH-4DBF
+4DC0..4DFF ; valid ; ; NV8 # 4.0 HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FA5 ; valid # 1.1 CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FA5
+9FA6..9FBB ; valid # 4.1 CJK UNIFIED IDEOGRAPH-9FA6..CJK UNIFIED IDEOGRAPH-9FBB
+9FBC..9FC3 ; valid # 5.1 CJK UNIFIED IDEOGRAPH-9FBC..CJK UNIFIED IDEOGRAPH-9FC3
+9FC4..9FCB ; valid # 5.2 CJK UNIFIED IDEOGRAPH-9FC4..CJK UNIFIED IDEOGRAPH-9FCB
+9FCC ; valid # 6.1 CJK UNIFIED IDEOGRAPH-9FCC
+9FCD..9FD5 ; valid # 8.0 CJK UNIFIED IDEOGRAPH-9FCD..CJK UNIFIED IDEOGRAPH-9FD5
+9FD6..9FEA ; valid # 10.0 CJK UNIFIED IDEOGRAPH-9FD6..CJK UNIFIED IDEOGRAPH-9FEA
+9FEB..9FEF ; valid # 11.0 CJK UNIFIED IDEOGRAPH-9FEB..CJK UNIFIED IDEOGRAPH-9FEF
+9FF0..9FFC ; valid # 13.0 CJK UNIFIED IDEOGRAPH-9FF0..CJK UNIFIED IDEOGRAPH-9FFC
+9FFD..9FFF ; valid # 14.0 CJK UNIFIED IDEOGRAPH-9FFD..CJK UNIFIED IDEOGRAPH-9FFF
+A000..A48C ; valid # 3.0 YI SYLLABLE IT..YI SYLLABLE YYR
+A48D..A48F ; disallowed # NA <reserved-A48D>..<reserved-A48F>
+A490..A4A1 ; valid ; ; NV8 # 3.0 YI RADICAL QOT..YI RADICAL GA
+A4A2..A4A3 ; valid ; ; NV8 # 3.2 YI RADICAL ZUP..YI RADICAL CYT
+A4A4..A4B3 ; valid ; ; NV8 # 3.0 YI RADICAL DDUR..YI RADICAL JO
+A4B4 ; valid ; ; NV8 # 3.2 YI RADICAL NZUP
+A4B5..A4C0 ; valid ; ; NV8 # 3.0 YI RADICAL JJY..YI RADICAL SHAT
+A4C1 ; valid ; ; NV8 # 3.2 YI RADICAL ZUR
+A4C2..A4C4 ; valid ; ; NV8 # 3.0 YI RADICAL SHOP..YI RADICAL ZZIET
+A4C5 ; valid ; ; NV8 # 3.2 YI RADICAL NBIE
+A4C6 ; valid ; ; NV8 # 3.0 YI RADICAL KE
+A4C7..A4CF ; disallowed # NA <reserved-A4C7>..<reserved-A4CF>
+A4D0..A4FD ; valid # 5.2 LISU LETTER BA..LISU LETTER TONE MYA JEU
+A4FE..A4FF ; valid ; ; NV8 # 5.2 LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500..A60C ; valid # 5.1 VAI SYLLABLE EE..VAI SYLLABLE LENGTHENER
+A60D..A60F ; valid ; ; NV8 # 5.1 VAI COMMA..VAI QUESTION MARK
+A610..A62B ; valid # 5.1 VAI SYLLABLE NDOLE FA..VAI SYLLABLE NDOLE DO
+A62C..A63F ; disallowed # NA <reserved-A62C>..<reserved-A63F>
+A640 ; mapped ; A641 # 5.1 CYRILLIC CAPITAL LETTER ZEMLYA
+A641 ; valid # 5.1 CYRILLIC SMALL LETTER ZEMLYA
+A642 ; mapped ; A643 # 5.1 CYRILLIC CAPITAL LETTER DZELO
+A643 ; valid # 5.1 CYRILLIC SMALL LETTER DZELO
+A644 ; mapped ; A645 # 5.1 CYRILLIC CAPITAL LETTER REVERSED DZE
+A645 ; valid # 5.1 CYRILLIC SMALL LETTER REVERSED DZE
+A646 ; mapped ; A647 # 5.1 CYRILLIC CAPITAL LETTER IOTA
+A647 ; valid # 5.1 CYRILLIC SMALL LETTER IOTA
+A648 ; mapped ; A649 # 5.1 CYRILLIC CAPITAL LETTER DJERV
+A649 ; valid # 5.1 CYRILLIC SMALL LETTER DJERV
+A64A ; mapped ; A64B # 5.1 CYRILLIC CAPITAL LETTER MONOGRAPH UK
+A64B ; valid # 5.1 CYRILLIC SMALL LETTER MONOGRAPH UK
+A64C ; mapped ; A64D # 5.1 CYRILLIC CAPITAL LETTER BROAD OMEGA
+A64D ; valid # 5.1 CYRILLIC SMALL LETTER BROAD OMEGA
+A64E ; mapped ; A64F # 5.1 CYRILLIC CAPITAL LETTER NEUTRAL YER
+A64F ; valid # 5.1 CYRILLIC SMALL LETTER NEUTRAL YER
+A650 ; mapped ; A651 # 5.1 CYRILLIC CAPITAL LETTER YERU WITH BACK YER
+A651 ; valid # 5.1 CYRILLIC SMALL LETTER YERU WITH BACK YER
+A652 ; mapped ; A653 # 5.1 CYRILLIC CAPITAL LETTER IOTIFIED YAT
+A653 ; valid # 5.1 CYRILLIC SMALL LETTER IOTIFIED YAT
+A654 ; mapped ; A655 # 5.1 CYRILLIC CAPITAL LETTER REVERSED YU
+A655 ; valid # 5.1 CYRILLIC SMALL LETTER REVERSED YU
+A656 ; mapped ; A657 # 5.1 CYRILLIC CAPITAL LETTER IOTIFIED A
+A657 ; valid # 5.1 CYRILLIC SMALL LETTER IOTIFIED A
+A658 ; mapped ; A659 # 5.1 CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS
+A659 ; valid # 5.1 CYRILLIC SMALL LETTER CLOSED LITTLE YUS
+A65A ; mapped ; A65B # 5.1 CYRILLIC CAPITAL LETTER BLENDED YUS
+A65B ; valid # 5.1 CYRILLIC SMALL LETTER BLENDED YUS
+A65C ; mapped ; A65D # 5.1 CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS
+A65D ; valid # 5.1 CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+A65E ; mapped ; A65F # 5.1 CYRILLIC CAPITAL LETTER YN
+A65F ; valid # 5.1 CYRILLIC SMALL LETTER YN
+A660 ; mapped ; A661 # 6.0 CYRILLIC CAPITAL LETTER REVERSED TSE
+A661 ; valid # 6.0 CYRILLIC SMALL LETTER REVERSED TSE
+A662 ; mapped ; A663 # 5.1 CYRILLIC CAPITAL LETTER SOFT DE
+A663 ; valid # 5.1 CYRILLIC SMALL LETTER SOFT DE
+A664 ; mapped ; A665 # 5.1 CYRILLIC CAPITAL LETTER SOFT EL
+A665 ; valid # 5.1 CYRILLIC SMALL LETTER SOFT EL
+A666 ; mapped ; A667 # 5.1 CYRILLIC CAPITAL LETTER SOFT EM
+A667 ; valid # 5.1 CYRILLIC SMALL LETTER SOFT EM
+A668 ; mapped ; A669 # 5.1 CYRILLIC CAPITAL LETTER MONOCULAR O
+A669 ; valid # 5.1 CYRILLIC SMALL LETTER MONOCULAR O
+A66A ; mapped ; A66B # 5.1 CYRILLIC CAPITAL LETTER BINOCULAR O
+A66B ; valid # 5.1 CYRILLIC SMALL LETTER BINOCULAR O
+A66C ; mapped ; A66D # 5.1 CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O
+A66D..A66F ; valid # 5.1 CYRILLIC SMALL LETTER DOUBLE MONOCULAR O..COMBINING CYRILLIC VZMET
+A670..A673 ; valid ; ; NV8 # 5.1 COMBINING CYRILLIC TEN MILLIONS SIGN..SLAVONIC ASTERISK
+A674..A67B ; valid # 6.1 COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC LETTER OMEGA
+A67C..A67D ; valid # 5.1 COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK
+A67E ; valid ; ; NV8 # 5.1 CYRILLIC KAVYKA
+A67F ; valid # 5.1 CYRILLIC PAYEROK
+A680 ; mapped ; A681 # 5.1 CYRILLIC CAPITAL LETTER DWE
+A681 ; valid # 5.1 CYRILLIC SMALL LETTER DWE
+A682 ; mapped ; A683 # 5.1 CYRILLIC CAPITAL LETTER DZWE
+A683 ; valid # 5.1 CYRILLIC SMALL LETTER DZWE
+A684 ; mapped ; A685 # 5.1 CYRILLIC CAPITAL LETTER ZHWE
+A685 ; valid # 5.1 CYRILLIC SMALL LETTER ZHWE
+A686 ; mapped ; A687 # 5.1 CYRILLIC CAPITAL LETTER CCHE
+A687 ; valid # 5.1 CYRILLIC SMALL LETTER CCHE
+A688 ; mapped ; A689 # 5.1 CYRILLIC CAPITAL LETTER DZZE
+A689 ; valid # 5.1 CYRILLIC SMALL LETTER DZZE
+A68A ; mapped ; A68B # 5.1 CYRILLIC CAPITAL LETTER TE WITH MIDDLE HOOK
+A68B ; valid # 5.1 CYRILLIC SMALL LETTER TE WITH MIDDLE HOOK
+A68C ; mapped ; A68D # 5.1 CYRILLIC CAPITAL LETTER TWE
+A68D ; valid # 5.1 CYRILLIC SMALL LETTER TWE
+A68E ; mapped ; A68F # 5.1 CYRILLIC CAPITAL LETTER TSWE
+A68F ; valid # 5.1 CYRILLIC SMALL LETTER TSWE
+A690 ; mapped ; A691 # 5.1 CYRILLIC CAPITAL LETTER TSSE
+A691 ; valid # 5.1 CYRILLIC SMALL LETTER TSSE
+A692 ; mapped ; A693 # 5.1 CYRILLIC CAPITAL LETTER TCHE
+A693 ; valid # 5.1 CYRILLIC SMALL LETTER TCHE
+A694 ; mapped ; A695 # 5.1 CYRILLIC CAPITAL LETTER HWE
+A695 ; valid # 5.1 CYRILLIC SMALL LETTER HWE
+A696 ; mapped ; A697 # 5.1 CYRILLIC CAPITAL LETTER SHWE
+A697 ; valid # 5.1 CYRILLIC SMALL LETTER SHWE
+A698 ; mapped ; A699 # 7.0 CYRILLIC CAPITAL LETTER DOUBLE O
+A699 ; valid # 7.0 CYRILLIC SMALL LETTER DOUBLE O
+A69A ; mapped ; A69B # 7.0 CYRILLIC CAPITAL LETTER CROSSED O
+A69B ; valid # 7.0 CYRILLIC SMALL LETTER CROSSED O
+A69C ; mapped ; 044A # 7.0 MODIFIER LETTER CYRILLIC HARD SIGN
+A69D ; mapped ; 044C # 7.0 MODIFIER LETTER CYRILLIC SOFT SIGN
+A69E ; valid # 8.0 COMBINING CYRILLIC LETTER EF
+A69F ; valid # 6.1 COMBINING CYRILLIC LETTER IOTIFIED E
+A6A0..A6E5 ; valid # 5.2 BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF ; valid ; ; NV8 # 5.2 BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0..A6F1 ; valid # 5.2 BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2..A6F7 ; valid ; ; NV8 # 5.2 BAMUM NJAEMLI..BAMUM QUESTION MARK
+A6F8..A6FF ; disallowed # NA <reserved-A6F8>..<reserved-A6FF>
+A700..A716 ; valid ; ; NV8 # 4.1 MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71A ; valid # 5.0 MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOWER RIGHT CORNER ANGLE
+A71B..A71F ; valid # 5.1 MODIFIER LETTER RAISED UP ARROW..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; valid ; ; NV8 # 5.0 MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722 ; mapped ; A723 # 5.1 LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF
+A723 ; valid # 5.1 LATIN SMALL LETTER EGYPTOLOGICAL ALEF
+A724 ; mapped ; A725 # 5.1 LATIN CAPITAL LETTER EGYPTOLOGICAL AIN
+A725 ; valid # 5.1 LATIN SMALL LETTER EGYPTOLOGICAL AIN
+A726 ; mapped ; A727 # 5.1 LATIN CAPITAL LETTER HENG
+A727 ; valid # 5.1 LATIN SMALL LETTER HENG
+A728 ; mapped ; A729 # 5.1 LATIN CAPITAL LETTER TZ
+A729 ; valid # 5.1 LATIN SMALL LETTER TZ
+A72A ; mapped ; A72B # 5.1 LATIN CAPITAL LETTER TRESILLO
+A72B ; valid # 5.1 LATIN SMALL LETTER TRESILLO
+A72C ; mapped ; A72D # 5.1 LATIN CAPITAL LETTER CUATRILLO
+A72D ; valid # 5.1 LATIN SMALL LETTER CUATRILLO
+A72E ; mapped ; A72F # 5.1 LATIN CAPITAL LETTER CUATRILLO WITH COMMA
+A72F..A731 ; valid # 5.1 LATIN SMALL LETTER CUATRILLO WITH COMMA..LATIN LETTER SMALL CAPITAL S
+A732 ; mapped ; A733 # 5.1 LATIN CAPITAL LETTER AA
+A733 ; valid # 5.1 LATIN SMALL LETTER AA
+A734 ; mapped ; A735 # 5.1 LATIN CAPITAL LETTER AO
+A735 ; valid # 5.1 LATIN SMALL LETTER AO
+A736 ; mapped ; A737 # 5.1 LATIN CAPITAL LETTER AU
+A737 ; valid # 5.1 LATIN SMALL LETTER AU
+A738 ; mapped ; A739 # 5.1 LATIN CAPITAL LETTER AV
+A739 ; valid # 5.1 LATIN SMALL LETTER AV
+A73A ; mapped ; A73B # 5.1 LATIN CAPITAL LETTER AV WITH HORIZONTAL BAR
+A73B ; valid # 5.1 LATIN SMALL LETTER AV WITH HORIZONTAL BAR
+A73C ; mapped ; A73D # 5.1 LATIN CAPITAL LETTER AY
+A73D ; valid # 5.1 LATIN SMALL LETTER AY
+A73E ; mapped ; A73F # 5.1 LATIN CAPITAL LETTER REVERSED C WITH DOT
+A73F ; valid # 5.1 LATIN SMALL LETTER REVERSED C WITH DOT
+A740 ; mapped ; A741 # 5.1 LATIN CAPITAL LETTER K WITH STROKE
+A741 ; valid # 5.1 LATIN SMALL LETTER K WITH STROKE
+A742 ; mapped ; A743 # 5.1 LATIN CAPITAL LETTER K WITH DIAGONAL STROKE
+A743 ; valid # 5.1 LATIN SMALL LETTER K WITH DIAGONAL STROKE
+A744 ; mapped ; A745 # 5.1 LATIN CAPITAL LETTER K WITH STROKE AND DIAGONAL STROKE
+A745 ; valid # 5.1 LATIN SMALL LETTER K WITH STROKE AND DIAGONAL STROKE
+A746 ; mapped ; A747 # 5.1 LATIN CAPITAL LETTER BROKEN L
+A747 ; valid # 5.1 LATIN SMALL LETTER BROKEN L
+A748 ; mapped ; A749 # 5.1 LATIN CAPITAL LETTER L WITH HIGH STROKE
+A749 ; valid # 5.1 LATIN SMALL LETTER L WITH HIGH STROKE
+A74A ; mapped ; A74B # 5.1 LATIN CAPITAL LETTER O WITH LONG STROKE OVERLAY
+A74B ; valid # 5.1 LATIN SMALL LETTER O WITH LONG STROKE OVERLAY
+A74C ; mapped ; A74D # 5.1 LATIN CAPITAL LETTER O WITH LOOP
+A74D ; valid # 5.1 LATIN SMALL LETTER O WITH LOOP
+A74E ; mapped ; A74F # 5.1 LATIN CAPITAL LETTER OO
+A74F ; valid # 5.1 LATIN SMALL LETTER OO
+A750 ; mapped ; A751 # 5.1 LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER
+A751 ; valid # 5.1 LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER
+A752 ; mapped ; A753 # 5.1 LATIN CAPITAL LETTER P WITH FLOURISH
+A753 ; valid # 5.1 LATIN SMALL LETTER P WITH FLOURISH
+A754 ; mapped ; A755 # 5.1 LATIN CAPITAL LETTER P WITH SQUIRREL TAIL
+A755 ; valid # 5.1 LATIN SMALL LETTER P WITH SQUIRREL TAIL
+A756 ; mapped ; A757 # 5.1 LATIN CAPITAL LETTER Q WITH STROKE THROUGH DESCENDER
+A757 ; valid # 5.1 LATIN SMALL LETTER Q WITH STROKE THROUGH DESCENDER
+A758 ; mapped ; A759 # 5.1 LATIN CAPITAL LETTER Q WITH DIAGONAL STROKE
+A759 ; valid # 5.1 LATIN SMALL LETTER Q WITH DIAGONAL STROKE
+A75A ; mapped ; A75B # 5.1 LATIN CAPITAL LETTER R ROTUNDA
+A75B ; valid # 5.1 LATIN SMALL LETTER R ROTUNDA
+A75C ; mapped ; A75D # 5.1 LATIN CAPITAL LETTER RUM ROTUNDA
+A75D ; valid # 5.1 LATIN SMALL LETTER RUM ROTUNDA
+A75E ; mapped ; A75F # 5.1 LATIN CAPITAL LETTER V WITH DIAGONAL STROKE
+A75F ; valid # 5.1 LATIN SMALL LETTER V WITH DIAGONAL STROKE
+A760 ; mapped ; A761 # 5.1 LATIN CAPITAL LETTER VY
+A761 ; valid # 5.1 LATIN SMALL LETTER VY
+A762 ; mapped ; A763 # 5.1 LATIN CAPITAL LETTER VISIGOTHIC Z
+A763 ; valid # 5.1 LATIN SMALL LETTER VISIGOTHIC Z
+A764 ; mapped ; A765 # 5.1 LATIN CAPITAL LETTER THORN WITH STROKE
+A765 ; valid # 5.1 LATIN SMALL LETTER THORN WITH STROKE
+A766 ; mapped ; A767 # 5.1 LATIN CAPITAL LETTER THORN WITH STROKE THROUGH DESCENDER
+A767 ; valid # 5.1 LATIN SMALL LETTER THORN WITH STROKE THROUGH DESCENDER
+A768 ; mapped ; A769 # 5.1 LATIN CAPITAL LETTER VEND
+A769 ; valid # 5.1 LATIN SMALL LETTER VEND
+A76A ; mapped ; A76B # 5.1 LATIN CAPITAL LETTER ET
+A76B ; valid # 5.1 LATIN SMALL LETTER ET
+A76C ; mapped ; A76D # 5.1 LATIN CAPITAL LETTER IS
+A76D ; valid # 5.1 LATIN SMALL LETTER IS
+A76E ; mapped ; A76F # 5.1 LATIN CAPITAL LETTER CON
+A76F ; valid # 5.1 LATIN SMALL LETTER CON
+A770 ; mapped ; A76F # 5.1 MODIFIER LETTER US
+A771..A778 ; valid # 5.1 LATIN SMALL LETTER DUM..LATIN SMALL LETTER UM
+A779 ; mapped ; A77A # 5.1 LATIN CAPITAL LETTER INSULAR D
+A77A ; valid # 5.1 LATIN SMALL LETTER INSULAR D
+A77B ; mapped ; A77C # 5.1 LATIN CAPITAL LETTER INSULAR F
+A77C ; valid # 5.1 LATIN SMALL LETTER INSULAR F
+A77D ; mapped ; 1D79 # 5.1 LATIN CAPITAL LETTER INSULAR G
+A77E ; mapped ; A77F # 5.1 LATIN CAPITAL LETTER TURNED INSULAR G
+A77F ; valid # 5.1 LATIN SMALL LETTER TURNED INSULAR G
+A780 ; mapped ; A781 # 5.1 LATIN CAPITAL LETTER TURNED L
+A781 ; valid # 5.1 LATIN SMALL LETTER TURNED L
+A782 ; mapped ; A783 # 5.1 LATIN CAPITAL LETTER INSULAR R
+A783 ; valid # 5.1 LATIN SMALL LETTER INSULAR R
+A784 ; mapped ; A785 # 5.1 LATIN CAPITAL LETTER INSULAR S
+A785 ; valid # 5.1 LATIN SMALL LETTER INSULAR S
+A786 ; mapped ; A787 # 5.1 LATIN CAPITAL LETTER INSULAR T
+A787..A788 ; valid # 5.1 LATIN SMALL LETTER INSULAR T..MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; valid ; ; NV8 # 5.1 MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B ; mapped ; A78C # 5.1 LATIN CAPITAL LETTER SALTILLO
+A78C ; valid # 5.1 LATIN SMALL LETTER SALTILLO
+A78D ; mapped ; 0265 # 6.0 LATIN CAPITAL LETTER TURNED H
+A78E ; valid # 6.0 LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+A78F ; valid # 8.0 LATIN LETTER SINOLOGICAL DOT
+A790 ; mapped ; A791 # 6.0 LATIN CAPITAL LETTER N WITH DESCENDER
+A791 ; valid # 6.0 LATIN SMALL LETTER N WITH DESCENDER
+A792 ; mapped ; A793 # 6.1 LATIN CAPITAL LETTER C WITH BAR
+A793 ; valid # 6.1 LATIN SMALL LETTER C WITH BAR
+A794..A795 ; valid # 7.0 LATIN SMALL LETTER C WITH PALATAL HOOK..LATIN SMALL LETTER H WITH PALATAL HOOK
+A796 ; mapped ; A797 # 7.0 LATIN CAPITAL LETTER B WITH FLOURISH
+A797 ; valid # 7.0 LATIN SMALL LETTER B WITH FLOURISH
+A798 ; mapped ; A799 # 7.0 LATIN CAPITAL LETTER F WITH STROKE
+A799 ; valid # 7.0 LATIN SMALL LETTER F WITH STROKE
+A79A ; mapped ; A79B # 7.0 LATIN CAPITAL LETTER VOLAPUK AE
+A79B ; valid # 7.0 LATIN SMALL LETTER VOLAPUK AE
+A79C ; mapped ; A79D # 7.0 LATIN CAPITAL LETTER VOLAPUK OE
+A79D ; valid # 7.0 LATIN SMALL LETTER VOLAPUK OE
+A79E ; mapped ; A79F # 7.0 LATIN CAPITAL LETTER VOLAPUK UE
+A79F ; valid # 7.0 LATIN SMALL LETTER VOLAPUK UE
+A7A0 ; mapped ; A7A1 # 6.0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
+A7A1 ; valid # 6.0 LATIN SMALL LETTER G WITH OBLIQUE STROKE
+A7A2 ; mapped ; A7A3 # 6.0 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
+A7A3 ; valid # 6.0 LATIN SMALL LETTER K WITH OBLIQUE STROKE
+A7A4 ; mapped ; A7A5 # 6.0 LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
+A7A5 ; valid # 6.0 LATIN SMALL LETTER N WITH OBLIQUE STROKE
+A7A6 ; mapped ; A7A7 # 6.0 LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
+A7A7 ; valid # 6.0 LATIN SMALL LETTER R WITH OBLIQUE STROKE
+A7A8 ; mapped ; A7A9 # 6.0 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
+A7A9 ; valid # 6.0 LATIN SMALL LETTER S WITH OBLIQUE STROKE
+A7AA ; mapped ; 0266 # 6.1 LATIN CAPITAL LETTER H WITH HOOK
+A7AB ; mapped ; 025C # 7.0 LATIN CAPITAL LETTER REVERSED OPEN E
+A7AC ; mapped ; 0261 # 7.0 LATIN CAPITAL LETTER SCRIPT G
+A7AD ; mapped ; 026C # 7.0 LATIN CAPITAL LETTER L WITH BELT
+A7AE ; mapped ; 026A # 9.0 LATIN CAPITAL LETTER SMALL CAPITAL I
+A7AF ; valid # 11.0 LATIN LETTER SMALL CAPITAL Q
+A7B0 ; mapped ; 029E # 7.0 LATIN CAPITAL LETTER TURNED K
+A7B1 ; mapped ; 0287 # 7.0 LATIN CAPITAL LETTER TURNED T
+A7B2 ; mapped ; 029D # 8.0 LATIN CAPITAL LETTER J WITH CROSSED-TAIL
+A7B3 ; mapped ; AB53 # 8.0 LATIN CAPITAL LETTER CHI
+A7B4 ; mapped ; A7B5 # 8.0 LATIN CAPITAL LETTER BETA
+A7B5 ; valid # 8.0 LATIN SMALL LETTER BETA
+A7B6 ; mapped ; A7B7 # 8.0 LATIN CAPITAL LETTER OMEGA
+A7B7 ; valid # 8.0 LATIN SMALL LETTER OMEGA
+A7B8 ; mapped ; A7B9 # 11.0 LATIN CAPITAL LETTER U WITH STROKE
+A7B9 ; valid # 11.0 LATIN SMALL LETTER U WITH STROKE
+A7BA ; mapped ; A7BB # 12.0 LATIN CAPITAL LETTER GLOTTAL A
+A7BB ; valid # 12.0 LATIN SMALL LETTER GLOTTAL A
+A7BC ; mapped ; A7BD # 12.0 LATIN CAPITAL LETTER GLOTTAL I
+A7BD ; valid # 12.0 LATIN SMALL LETTER GLOTTAL I
+A7BE ; mapped ; A7BF # 12.0 LATIN CAPITAL LETTER GLOTTAL U
+A7BF ; valid # 12.0 LATIN SMALL LETTER GLOTTAL U
+A7C0 ; mapped ; A7C1 # 14.0 LATIN CAPITAL LETTER OLD POLISH O
+A7C1 ; valid # 14.0 LATIN SMALL LETTER OLD POLISH O
+A7C2 ; mapped ; A7C3 # 12.0 LATIN CAPITAL LETTER ANGLICANA W
+A7C3 ; valid # 12.0 LATIN SMALL LETTER ANGLICANA W
+A7C4 ; mapped ; A794 # 12.0 LATIN CAPITAL LETTER C WITH PALATAL HOOK
+A7C5 ; mapped ; 0282 # 12.0 LATIN CAPITAL LETTER S WITH HOOK
+A7C6 ; mapped ; 1D8E # 12.0 LATIN CAPITAL LETTER Z WITH PALATAL HOOK
+A7C7 ; mapped ; A7C8 # 13.0 LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
+A7C8 ; valid # 13.0 LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY
+A7C9 ; mapped ; A7CA # 13.0 LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+A7CA ; valid # 13.0 LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7CB..A7CF ; disallowed # NA <reserved-A7CB>..<reserved-A7CF>
+A7D0 ; mapped ; A7D1 # 14.0 LATIN CAPITAL LETTER CLOSED INSULAR G
+A7D1 ; valid # 14.0 LATIN SMALL LETTER CLOSED INSULAR G
+A7D2 ; disallowed # NA <reserved-A7D2>
+A7D3 ; valid # 14.0 LATIN SMALL LETTER DOUBLE THORN
+A7D4 ; disallowed # NA <reserved-A7D4>
+A7D5 ; valid # 14.0 LATIN SMALL LETTER DOUBLE WYNN
+A7D6 ; mapped ; A7D7 # 14.0 LATIN CAPITAL LETTER MIDDLE SCOTS S
+A7D7 ; valid # 14.0 LATIN SMALL LETTER MIDDLE SCOTS S
+A7D8 ; mapped ; A7D9 # 14.0 LATIN CAPITAL LETTER SIGMOID S
+A7D9 ; valid # 14.0 LATIN SMALL LETTER SIGMOID S
+A7DA..A7F1 ; disallowed # NA <reserved-A7DA>..<reserved-A7F1>
+A7F2 ; mapped ; 0063 # 14.0 MODIFIER LETTER CAPITAL C
+A7F3 ; mapped ; 0066 # 14.0 MODIFIER LETTER CAPITAL F
+A7F4 ; mapped ; 0071 # 14.0 MODIFIER LETTER CAPITAL Q
+A7F5 ; mapped ; A7F6 # 13.0 LATIN CAPITAL LETTER REVERSED HALF H
+A7F6 ; valid # 13.0 LATIN SMALL LETTER REVERSED HALF H
+A7F7 ; valid # 7.0 LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8 ; mapped ; 0127 # 6.1 MODIFIER LETTER CAPITAL H WITH STROKE
+A7F9 ; mapped ; 0153 # 6.1 MODIFIER LETTER SMALL LIGATURE OE
+A7FA ; valid # 6.0 LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A7FF ; valid # 5.1 LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+A800..A827 ; valid # 4.1 SYLOTI NAGRI LETTER A..SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B ; valid ; ; NV8 # 4.1 SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A82C ; valid # 13.0 SYLOTI NAGRI SIGN ALTERNATE HASANTA
+A82D..A82F ; disallowed # NA <reserved-A82D>..<reserved-A82F>
+A830..A839 ; valid ; ; NV8 # 5.2 NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC QUANTITY MARK
+A83A..A83F ; disallowed # NA <reserved-A83A>..<reserved-A83F>
+A840..A873 ; valid # 5.0 PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A877 ; valid ; ; NV8 # 5.0 PHAGS-PA SINGLE HEAD MARK..PHAGS-PA MARK DOUBLE SHAD
+A878..A87F ; disallowed # NA <reserved-A878>..<reserved-A87F>
+A880..A8C4 ; valid # 5.1 SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VIRAMA
+A8C5 ; valid # 9.0 SAURASHTRA SIGN CANDRABINDU
+A8C6..A8CD ; disallowed # NA <reserved-A8C6>..<reserved-A8CD>
+A8CE..A8CF ; valid ; ; NV8 # 5.1 SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9 ; valid # 5.1 SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8DA..A8DF ; disallowed # NA <reserved-A8DA>..<reserved-A8DF>
+A8E0..A8F7 ; valid # 5.2 COMBINING DEVANAGARI DIGIT ZERO..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA ; valid ; ; NV8 # 5.2 DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB ; valid # 5.2 DEVANAGARI HEADSTROKE
+A8FC ; valid ; ; NV8 # 8.0 DEVANAGARI SIGN SIDDHAM
+A8FD ; valid # 8.0 DEVANAGARI JAIN OM
+A8FE..A8FF ; valid # 11.0 DEVANAGARI LETTER AY..DEVANAGARI VOWEL SIGN AY
+A900..A92D ; valid # 5.1 KAYAH LI DIGIT ZERO..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F ; valid ; ; NV8 # 5.1 KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930..A953 ; valid # 5.1 REJANG LETTER KA..REJANG VIRAMA
+A954..A95E ; disallowed # NA <reserved-A954>..<reserved-A95E>
+A95F ; valid ; ; NV8 # 5.1 REJANG SECTION MARK
+A960..A97C ; valid ; ; NV8 # 5.2 HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A97D..A97F ; disallowed # NA <reserved-A97D>..<reserved-A97F>
+A980..A9C0 ; valid # 5.2 JAVANESE SIGN PANYANGGA..JAVANESE PANGKON
+A9C1..A9CD ; valid ; ; NV8 # 5.2 JAVANESE LEFT RERENGGAN..JAVANESE TURNED PADA PISELEH
+A9CE ; disallowed # NA <reserved-A9CE>
+A9CF..A9D9 ; valid # 5.2 JAVANESE PANGRANGKEP..JAVANESE DIGIT NINE
+A9DA..A9DD ; disallowed # NA <reserved-A9DA>..<reserved-A9DD>
+A9DE..A9DF ; valid ; ; NV8 # 5.2 JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9FE ; valid # 7.0 MYANMAR LETTER SHAN GHA..MYANMAR LETTER TAI LAING BHA
+A9FF ; disallowed # NA <reserved-A9FF>
+AA00..AA36 ; valid # 5.1 CHAM LETTER A..CHAM CONSONANT SIGN WA
+AA37..AA3F ; disallowed # NA <reserved-AA37>..<reserved-AA3F>
+AA40..AA4D ; valid # 5.1 CHAM LETTER FINAL K..CHAM CONSONANT SIGN FINAL H
+AA4E..AA4F ; disallowed # NA <reserved-AA4E>..<reserved-AA4F>
+AA50..AA59 ; valid # 5.1 CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5A..AA5B ; disallowed # NA <reserved-AA5A>..<reserved-AA5B>
+AA5C..AA5F ; valid ; ; NV8 # 5.1 CHAM PUNCTUATION SPIRAL..CHAM PUNCTUATION TRIPLE DANDA
+AA60..AA76 ; valid # 5.2 MYANMAR LETTER KHAMTI GA..MYANMAR LOGOGRAM KHAMTI HM
+AA77..AA79 ; valid ; ; NV8 # 5.2 MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A..AA7B ; valid # 5.2 MYANMAR LETTER AITON RA..MYANMAR SIGN PAO KAREN TONE
+AA7C..AA7F ; valid # 7.0 MYANMAR SIGN TAI LAING TONE-2..MYANMAR LETTER SHWE PALAUNG SHA
+AA80..AAC2 ; valid # 5.2 TAI VIET LETTER LOW KO..TAI VIET TONE MAI SONG
+AAC3..AADA ; disallowed # NA <reserved-AAC3>..<reserved-AADA>
+AADB..AADD ; valid # 5.2 TAI VIET SYMBOL KON..TAI VIET SYMBOL SAM
+AADE..AADF ; valid ; ; NV8 # 5.2 TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0..AAEF ; valid # 6.1 MEETEI MAYEK LETTER E..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1 ; valid ; ; NV8 # 6.1 MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2..AAF6 ; valid # 6.1 MEETEI MAYEK ANJI..MEETEI MAYEK VIRAMA
+AAF7..AB00 ; disallowed # NA <reserved-AAF7>..<reserved-AB00>
+AB01..AB06 ; valid # 6.0 ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB07..AB08 ; disallowed # NA <reserved-AB07>..<reserved-AB08>
+AB09..AB0E ; valid # 6.0 ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB0F..AB10 ; disallowed # NA <reserved-AB0F>..<reserved-AB10>
+AB11..AB16 ; valid # 6.0 ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB17..AB1F ; disallowed # NA <reserved-AB17>..<reserved-AB1F>
+AB20..AB26 ; valid # 6.0 ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB27 ; disallowed # NA <reserved-AB27>
+AB28..AB2E ; valid # 6.0 ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB2F ; disallowed # NA <reserved-AB2F>
+AB30..AB5A ; valid # 7.0 LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B ; valid ; ; NV8 # 7.0 MODIFIER BREVE WITH INVERTED BREVE
+AB5C ; mapped ; A727 # 7.0 MODIFIER LETTER SMALL HENG
+AB5D ; mapped ; AB37 # 7.0 MODIFIER LETTER SMALL L WITH INVERTED LAZY S
+AB5E ; mapped ; 026B # 7.0 MODIFIER LETTER SMALL L WITH MIDDLE TILDE
+AB5F ; mapped ; AB52 # 7.0 MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB60..AB63 ; valid # 8.0 LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER UO
+AB64..AB65 ; valid # 7.0 LATIN SMALL LETTER INVERTED ALPHA..GREEK LETTER SMALL CAPITAL OMEGA
+AB66..AB67 ; valid # 12.0 LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK..LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK
+AB68 ; valid # 13.0 LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69 ; mapped ; 028D # 13.0 MODIFIER LETTER SMALL TURNED W
+AB6A..AB6B ; valid ; ; NV8 # 13.0 MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
+AB6C..AB6F ; disallowed # NA <reserved-AB6C>..<reserved-AB6F>
+AB70 ; mapped ; 13A0 # 8.0 CHEROKEE SMALL LETTER A
+AB71 ; mapped ; 13A1 # 8.0 CHEROKEE SMALL LETTER E
+AB72 ; mapped ; 13A2 # 8.0 CHEROKEE SMALL LETTER I
+AB73 ; mapped ; 13A3 # 8.0 CHEROKEE SMALL LETTER O
+AB74 ; mapped ; 13A4 # 8.0 CHEROKEE SMALL LETTER U
+AB75 ; mapped ; 13A5 # 8.0 CHEROKEE SMALL LETTER V
+AB76 ; mapped ; 13A6 # 8.0 CHEROKEE SMALL LETTER GA
+AB77 ; mapped ; 13A7 # 8.0 CHEROKEE SMALL LETTER KA
+AB78 ; mapped ; 13A8 # 8.0 CHEROKEE SMALL LETTER GE
+AB79 ; mapped ; 13A9 # 8.0 CHEROKEE SMALL LETTER GI
+AB7A ; mapped ; 13AA # 8.0 CHEROKEE SMALL LETTER GO
+AB7B ; mapped ; 13AB # 8.0 CHEROKEE SMALL LETTER GU
+AB7C ; mapped ; 13AC # 8.0 CHEROKEE SMALL LETTER GV
+AB7D ; mapped ; 13AD # 8.0 CHEROKEE SMALL LETTER HA
+AB7E ; mapped ; 13AE # 8.0 CHEROKEE SMALL LETTER HE
+AB7F ; mapped ; 13AF # 8.0 CHEROKEE SMALL LETTER HI
+AB80 ; mapped ; 13B0 # 8.0 CHEROKEE SMALL LETTER HO
+AB81 ; mapped ; 13B1 # 8.0 CHEROKEE SMALL LETTER HU
+AB82 ; mapped ; 13B2 # 8.0 CHEROKEE SMALL LETTER HV
+AB83 ; mapped ; 13B3 # 8.0 CHEROKEE SMALL LETTER LA
+AB84 ; mapped ; 13B4 # 8.0 CHEROKEE SMALL LETTER LE
+AB85 ; mapped ; 13B5 # 8.0 CHEROKEE SMALL LETTER LI
+AB86 ; mapped ; 13B6 # 8.0 CHEROKEE SMALL LETTER LO
+AB87 ; mapped ; 13B7 # 8.0 CHEROKEE SMALL LETTER LU
+AB88 ; mapped ; 13B8 # 8.0 CHEROKEE SMALL LETTER LV
+AB89 ; mapped ; 13B9 # 8.0 CHEROKEE SMALL LETTER MA
+AB8A ; mapped ; 13BA # 8.0 CHEROKEE SMALL LETTER ME
+AB8B ; mapped ; 13BB # 8.0 CHEROKEE SMALL LETTER MI
+AB8C ; mapped ; 13BC # 8.0 CHEROKEE SMALL LETTER MO
+AB8D ; mapped ; 13BD # 8.0 CHEROKEE SMALL LETTER MU
+AB8E ; mapped ; 13BE # 8.0 CHEROKEE SMALL LETTER NA
+AB8F ; mapped ; 13BF # 8.0 CHEROKEE SMALL LETTER HNA
+AB90 ; mapped ; 13C0 # 8.0 CHEROKEE SMALL LETTER NAH
+AB91 ; mapped ; 13C1 # 8.0 CHEROKEE SMALL LETTER NE
+AB92 ; mapped ; 13C2 # 8.0 CHEROKEE SMALL LETTER NI
+AB93 ; mapped ; 13C3 # 8.0 CHEROKEE SMALL LETTER NO
+AB94 ; mapped ; 13C4 # 8.0 CHEROKEE SMALL LETTER NU
+AB95 ; mapped ; 13C5 # 8.0 CHEROKEE SMALL LETTER NV
+AB96 ; mapped ; 13C6 # 8.0 CHEROKEE SMALL LETTER QUA
+AB97 ; mapped ; 13C7 # 8.0 CHEROKEE SMALL LETTER QUE
+AB98 ; mapped ; 13C8 # 8.0 CHEROKEE SMALL LETTER QUI
+AB99 ; mapped ; 13C9 # 8.0 CHEROKEE SMALL LETTER QUO
+AB9A ; mapped ; 13CA # 8.0 CHEROKEE SMALL LETTER QUU
+AB9B ; mapped ; 13CB # 8.0 CHEROKEE SMALL LETTER QUV
+AB9C ; mapped ; 13CC # 8.0 CHEROKEE SMALL LETTER SA
+AB9D ; mapped ; 13CD # 8.0 CHEROKEE SMALL LETTER S
+AB9E ; mapped ; 13CE # 8.0 CHEROKEE SMALL LETTER SE
+AB9F ; mapped ; 13CF # 8.0 CHEROKEE SMALL LETTER SI
+ABA0 ; mapped ; 13D0 # 8.0 CHEROKEE SMALL LETTER SO
+ABA1 ; mapped ; 13D1 # 8.0 CHEROKEE SMALL LETTER SU
+ABA2 ; mapped ; 13D2 # 8.0 CHEROKEE SMALL LETTER SV
+ABA3 ; mapped ; 13D3 # 8.0 CHEROKEE SMALL LETTER DA
+ABA4 ; mapped ; 13D4 # 8.0 CHEROKEE SMALL LETTER TA
+ABA5 ; mapped ; 13D5 # 8.0 CHEROKEE SMALL LETTER DE
+ABA6 ; mapped ; 13D6 # 8.0 CHEROKEE SMALL LETTER TE
+ABA7 ; mapped ; 13D7 # 8.0 CHEROKEE SMALL LETTER DI
+ABA8 ; mapped ; 13D8 # 8.0 CHEROKEE SMALL LETTER TI
+ABA9 ; mapped ; 13D9 # 8.0 CHEROKEE SMALL LETTER DO
+ABAA ; mapped ; 13DA # 8.0 CHEROKEE SMALL LETTER DU
+ABAB ; mapped ; 13DB # 8.0 CHEROKEE SMALL LETTER DV
+ABAC ; mapped ; 13DC # 8.0 CHEROKEE SMALL LETTER DLA
+ABAD ; mapped ; 13DD # 8.0 CHEROKEE SMALL LETTER TLA
+ABAE ; mapped ; 13DE # 8.0 CHEROKEE SMALL LETTER TLE
+ABAF ; mapped ; 13DF # 8.0 CHEROKEE SMALL LETTER TLI
+ABB0 ; mapped ; 13E0 # 8.0 CHEROKEE SMALL LETTER TLO
+ABB1 ; mapped ; 13E1 # 8.0 CHEROKEE SMALL LETTER TLU
+ABB2 ; mapped ; 13E2 # 8.0 CHEROKEE SMALL LETTER TLV
+ABB3 ; mapped ; 13E3 # 8.0 CHEROKEE SMALL LETTER TSA
+ABB4 ; mapped ; 13E4 # 8.0 CHEROKEE SMALL LETTER TSE
+ABB5 ; mapped ; 13E5 # 8.0 CHEROKEE SMALL LETTER TSI
+ABB6 ; mapped ; 13E6 # 8.0 CHEROKEE SMALL LETTER TSO
+ABB7 ; mapped ; 13E7 # 8.0 CHEROKEE SMALL LETTER TSU
+ABB8 ; mapped ; 13E8 # 8.0 CHEROKEE SMALL LETTER TSV
+ABB9 ; mapped ; 13E9 # 8.0 CHEROKEE SMALL LETTER WA
+ABBA ; mapped ; 13EA # 8.0 CHEROKEE SMALL LETTER WE
+ABBB ; mapped ; 13EB # 8.0 CHEROKEE SMALL LETTER WI
+ABBC ; mapped ; 13EC # 8.0 CHEROKEE SMALL LETTER WO
+ABBD ; mapped ; 13ED # 8.0 CHEROKEE SMALL LETTER WU
+ABBE ; mapped ; 13EE # 8.0 CHEROKEE SMALL LETTER WV
+ABBF ; mapped ; 13EF # 8.0 CHEROKEE SMALL LETTER YA
+ABC0..ABEA ; valid # 5.2 MEETEI MAYEK LETTER KOK..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB ; valid ; ; NV8 # 5.2 MEETEI MAYEK CHEIKHEI
+ABEC..ABED ; valid # 5.2 MEETEI MAYEK LUM IYEK..MEETEI MAYEK APUN IYEK
+ABEE..ABEF ; disallowed # NA <reserved-ABEE>..<reserved-ABEF>
+ABF0..ABF9 ; valid # 5.2 MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+ABFA..ABFF ; disallowed # NA <reserved-ABFA>..<reserved-ABFF>
+AC00..D7A3 ; valid # 2.0 HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
+D7A4..D7AF ; disallowed # NA <reserved-D7A4>..<reserved-D7AF>
+D7B0..D7C6 ; valid ; ; NV8 # 5.2 HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7C7..D7CA ; disallowed # NA <reserved-D7C7>..<reserved-D7CA>
+D7CB..D7FB ; valid ; ; NV8 # 5.2 HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D7FC..D7FF ; disallowed # NA <reserved-D7FC>..<reserved-D7FF>
+D800..DFFF ; disallowed # 2.0 <surrogate-D800>..<surrogate-DFFF>
+E000..F8FF ; disallowed # 1.1 <private-use-E000>..<private-use-F8FF>
+F900 ; mapped ; 8C48 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F900
+F901 ; mapped ; 66F4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F901
+F902 ; mapped ; 8ECA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F902
+F903 ; mapped ; 8CC8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F903
+F904 ; mapped ; 6ED1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F904
+F905 ; mapped ; 4E32 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F905
+F906 ; mapped ; 53E5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F906
+F907..F908 ; mapped ; 9F9C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F907..CJK COMPATIBILITY IDEOGRAPH-F908
+F909 ; mapped ; 5951 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F909
+F90A ; mapped ; 91D1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90A
+F90B ; mapped ; 5587 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90B
+F90C ; mapped ; 5948 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90C
+F90D ; mapped ; 61F6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90D
+F90E ; mapped ; 7669 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90E
+F90F ; mapped ; 7F85 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F90F
+F910 ; mapped ; 863F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F910
+F911 ; mapped ; 87BA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F911
+F912 ; mapped ; 88F8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F912
+F913 ; mapped ; 908F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F913
+F914 ; mapped ; 6A02 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F914
+F915 ; mapped ; 6D1B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F915
+F916 ; mapped ; 70D9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F916
+F917 ; mapped ; 73DE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F917
+F918 ; mapped ; 843D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F918
+F919 ; mapped ; 916A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F919
+F91A ; mapped ; 99F1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91A
+F91B ; mapped ; 4E82 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91B
+F91C ; mapped ; 5375 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91C
+F91D ; mapped ; 6B04 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91D
+F91E ; mapped ; 721B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91E
+F91F ; mapped ; 862D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F91F
+F920 ; mapped ; 9E1E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F920
+F921 ; mapped ; 5D50 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F921
+F922 ; mapped ; 6FEB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F922
+F923 ; mapped ; 85CD # 1.1 CJK COMPATIBILITY IDEOGRAPH-F923
+F924 ; mapped ; 8964 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F924
+F925 ; mapped ; 62C9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F925
+F926 ; mapped ; 81D8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F926
+F927 ; mapped ; 881F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F927
+F928 ; mapped ; 5ECA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F928
+F929 ; mapped ; 6717 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F929
+F92A ; mapped ; 6D6A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92A
+F92B ; mapped ; 72FC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92B
+F92C ; mapped ; 90CE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92C
+F92D ; mapped ; 4F86 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92D
+F92E ; mapped ; 51B7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92E
+F92F ; mapped ; 52DE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F92F
+F930 ; mapped ; 64C4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F930
+F931 ; mapped ; 6AD3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F931
+F932 ; mapped ; 7210 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F932
+F933 ; mapped ; 76E7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F933
+F934 ; mapped ; 8001 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F934
+F935 ; mapped ; 8606 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F935
+F936 ; mapped ; 865C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F936
+F937 ; mapped ; 8DEF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F937
+F938 ; mapped ; 9732 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F938
+F939 ; mapped ; 9B6F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F939
+F93A ; mapped ; 9DFA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93A
+F93B ; mapped ; 788C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93B
+F93C ; mapped ; 797F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93C
+F93D ; mapped ; 7DA0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93D
+F93E ; mapped ; 83C9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93E
+F93F ; mapped ; 9304 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F93F
+F940 ; mapped ; 9E7F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F940
+F941 ; mapped ; 8AD6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F941
+F942 ; mapped ; 58DF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F942
+F943 ; mapped ; 5F04 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F943
+F944 ; mapped ; 7C60 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F944
+F945 ; mapped ; 807E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F945
+F946 ; mapped ; 7262 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F946
+F947 ; mapped ; 78CA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F947
+F948 ; mapped ; 8CC2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F948
+F949 ; mapped ; 96F7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F949
+F94A ; mapped ; 58D8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94A
+F94B ; mapped ; 5C62 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94B
+F94C ; mapped ; 6A13 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94C
+F94D ; mapped ; 6DDA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94D
+F94E ; mapped ; 6F0F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94E
+F94F ; mapped ; 7D2F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F94F
+F950 ; mapped ; 7E37 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F950
+F951 ; mapped ; 964B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F951
+F952 ; mapped ; 52D2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F952
+F953 ; mapped ; 808B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F953
+F954 ; mapped ; 51DC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F954
+F955 ; mapped ; 51CC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F955
+F956 ; mapped ; 7A1C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F956
+F957 ; mapped ; 7DBE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F957
+F958 ; mapped ; 83F1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F958
+F959 ; mapped ; 9675 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F959
+F95A ; mapped ; 8B80 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95A
+F95B ; mapped ; 62CF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95B
+F95C ; mapped ; 6A02 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95C
+F95D ; mapped ; 8AFE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95D
+F95E ; mapped ; 4E39 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95E
+F95F ; mapped ; 5BE7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F95F
+F960 ; mapped ; 6012 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F960
+F961 ; mapped ; 7387 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F961
+F962 ; mapped ; 7570 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F962
+F963 ; mapped ; 5317 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F963
+F964 ; mapped ; 78FB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F964
+F965 ; mapped ; 4FBF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F965
+F966 ; mapped ; 5FA9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F966
+F967 ; mapped ; 4E0D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F967
+F968 ; mapped ; 6CCC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F968
+F969 ; mapped ; 6578 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F969
+F96A ; mapped ; 7D22 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96A
+F96B ; mapped ; 53C3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96B
+F96C ; mapped ; 585E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96C
+F96D ; mapped ; 7701 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96D
+F96E ; mapped ; 8449 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96E
+F96F ; mapped ; 8AAA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F96F
+F970 ; mapped ; 6BBA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F970
+F971 ; mapped ; 8FB0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F971
+F972 ; mapped ; 6C88 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F972
+F973 ; mapped ; 62FE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F973
+F974 ; mapped ; 82E5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F974
+F975 ; mapped ; 63A0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F975
+F976 ; mapped ; 7565 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F976
+F977 ; mapped ; 4EAE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F977
+F978 ; mapped ; 5169 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F978
+F979 ; mapped ; 51C9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F979
+F97A ; mapped ; 6881 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97A
+F97B ; mapped ; 7CE7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97B
+F97C ; mapped ; 826F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97C
+F97D ; mapped ; 8AD2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97D
+F97E ; mapped ; 91CF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97E
+F97F ; mapped ; 52F5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F97F
+F980 ; mapped ; 5442 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F980
+F981 ; mapped ; 5973 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F981
+F982 ; mapped ; 5EEC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F982
+F983 ; mapped ; 65C5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F983
+F984 ; mapped ; 6FFE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F984
+F985 ; mapped ; 792A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F985
+F986 ; mapped ; 95AD # 1.1 CJK COMPATIBILITY IDEOGRAPH-F986
+F987 ; mapped ; 9A6A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F987
+F988 ; mapped ; 9E97 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F988
+F989 ; mapped ; 9ECE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F989
+F98A ; mapped ; 529B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98A
+F98B ; mapped ; 66C6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98B
+F98C ; mapped ; 6B77 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98C
+F98D ; mapped ; 8F62 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98D
+F98E ; mapped ; 5E74 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98E
+F98F ; mapped ; 6190 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F98F
+F990 ; mapped ; 6200 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F990
+F991 ; mapped ; 649A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F991
+F992 ; mapped ; 6F23 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F992
+F993 ; mapped ; 7149 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F993
+F994 ; mapped ; 7489 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F994
+F995 ; mapped ; 79CA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F995
+F996 ; mapped ; 7DF4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F996
+F997 ; mapped ; 806F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F997
+F998 ; mapped ; 8F26 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F998
+F999 ; mapped ; 84EE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F999
+F99A ; mapped ; 9023 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99A
+F99B ; mapped ; 934A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99B
+F99C ; mapped ; 5217 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99C
+F99D ; mapped ; 52A3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99D
+F99E ; mapped ; 54BD # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99E
+F99F ; mapped ; 70C8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F99F
+F9A0 ; mapped ; 88C2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A0
+F9A1 ; mapped ; 8AAA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A1
+F9A2 ; mapped ; 5EC9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A2
+F9A3 ; mapped ; 5FF5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A3
+F9A4 ; mapped ; 637B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A4
+F9A5 ; mapped ; 6BAE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A5
+F9A6 ; mapped ; 7C3E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A6
+F9A7 ; mapped ; 7375 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A7
+F9A8 ; mapped ; 4EE4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A8
+F9A9 ; mapped ; 56F9 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9A9
+F9AA ; mapped ; 5BE7 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AA
+F9AB ; mapped ; 5DBA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AB
+F9AC ; mapped ; 601C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AC
+F9AD ; mapped ; 73B2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AD
+F9AE ; mapped ; 7469 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AE
+F9AF ; mapped ; 7F9A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9AF
+F9B0 ; mapped ; 8046 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B0
+F9B1 ; mapped ; 9234 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B1
+F9B2 ; mapped ; 96F6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B2
+F9B3 ; mapped ; 9748 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B3
+F9B4 ; mapped ; 9818 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B4
+F9B5 ; mapped ; 4F8B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B5
+F9B6 ; mapped ; 79AE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B6
+F9B7 ; mapped ; 91B4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B7
+F9B8 ; mapped ; 96B8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B8
+F9B9 ; mapped ; 60E1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9B9
+F9BA ; mapped ; 4E86 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BA
+F9BB ; mapped ; 50DA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BB
+F9BC ; mapped ; 5BEE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BC
+F9BD ; mapped ; 5C3F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BD
+F9BE ; mapped ; 6599 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BE
+F9BF ; mapped ; 6A02 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9BF
+F9C0 ; mapped ; 71CE # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C0
+F9C1 ; mapped ; 7642 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C1
+F9C2 ; mapped ; 84FC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C2
+F9C3 ; mapped ; 907C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C3
+F9C4 ; mapped ; 9F8D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C4
+F9C5 ; mapped ; 6688 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C5
+F9C6 ; mapped ; 962E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C6
+F9C7 ; mapped ; 5289 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C7
+F9C8 ; mapped ; 677B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C8
+F9C9 ; mapped ; 67F3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9C9
+F9CA ; mapped ; 6D41 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CA
+F9CB ; mapped ; 6E9C # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CB
+F9CC ; mapped ; 7409 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CC
+F9CD ; mapped ; 7559 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CD
+F9CE ; mapped ; 786B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CE
+F9CF ; mapped ; 7D10 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9CF
+F9D0 ; mapped ; 985E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D0
+F9D1 ; mapped ; 516D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D1
+F9D2 ; mapped ; 622E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D2
+F9D3 ; mapped ; 9678 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D3
+F9D4 ; mapped ; 502B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D4
+F9D5 ; mapped ; 5D19 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D5
+F9D6 ; mapped ; 6DEA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D6
+F9D7 ; mapped ; 8F2A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D7
+F9D8 ; mapped ; 5F8B # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D8
+F9D9 ; mapped ; 6144 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9D9
+F9DA ; mapped ; 6817 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DA
+F9DB ; mapped ; 7387 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DB
+F9DC ; mapped ; 9686 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DC
+F9DD ; mapped ; 5229 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DD
+F9DE ; mapped ; 540F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DE
+F9DF ; mapped ; 5C65 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9DF
+F9E0 ; mapped ; 6613 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E0
+F9E1 ; mapped ; 674E # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E1
+F9E2 ; mapped ; 68A8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E2
+F9E3 ; mapped ; 6CE5 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E3
+F9E4 ; mapped ; 7406 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E4
+F9E5 ; mapped ; 75E2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E5
+F9E6 ; mapped ; 7F79 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E6
+F9E7 ; mapped ; 88CF # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E7
+F9E8 ; mapped ; 88E1 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E8
+F9E9 ; mapped ; 91CC # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9E9
+F9EA ; mapped ; 96E2 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EA
+F9EB ; mapped ; 533F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EB
+F9EC ; mapped ; 6EBA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EC
+F9ED ; mapped ; 541D # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9ED
+F9EE ; mapped ; 71D0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EE
+F9EF ; mapped ; 7498 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9EF
+F9F0 ; mapped ; 85FA # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F0
+F9F1 ; mapped ; 96A3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F1
+F9F2 ; mapped ; 9C57 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F2
+F9F3 ; mapped ; 9E9F # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F3
+F9F4 ; mapped ; 6797 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F4
+F9F5 ; mapped ; 6DCB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F5
+F9F6 ; mapped ; 81E8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F6
+F9F7 ; mapped ; 7ACB # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F7
+F9F8 ; mapped ; 7B20 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F8
+F9F9 ; mapped ; 7C92 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9F9
+F9FA ; mapped ; 72C0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FA
+F9FB ; mapped ; 7099 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FB
+F9FC ; mapped ; 8B58 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FC
+F9FD ; mapped ; 4EC0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FD
+F9FE ; mapped ; 8336 # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FE
+F9FF ; mapped ; 523A # 1.1 CJK COMPATIBILITY IDEOGRAPH-F9FF
+FA00 ; mapped ; 5207 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA00
+FA01 ; mapped ; 5EA6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA01
+FA02 ; mapped ; 62D3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA02
+FA03 ; mapped ; 7CD6 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA03
+FA04 ; mapped ; 5B85 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA04
+FA05 ; mapped ; 6D1E # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA05
+FA06 ; mapped ; 66B4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA06
+FA07 ; mapped ; 8F3B # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA07
+FA08 ; mapped ; 884C # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA08
+FA09 ; mapped ; 964D # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA09
+FA0A ; mapped ; 898B # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0A
+FA0B ; mapped ; 5ED3 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0B
+FA0C ; mapped ; 5140 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0C
+FA0D ; mapped ; 55C0 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0D
+FA0E..FA0F ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F
+FA10 ; mapped ; 585A # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA10
+FA11 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA11
+FA12 ; mapped ; 6674 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA12
+FA13..FA14 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14
+FA15 ; mapped ; 51DE # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA15
+FA16 ; mapped ; 732A # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA16
+FA17 ; mapped ; 76CA # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA17
+FA18 ; mapped ; 793C # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA18
+FA19 ; mapped ; 795E # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA19
+FA1A ; mapped ; 7965 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1A
+FA1B ; mapped ; 798F # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1B
+FA1C ; mapped ; 9756 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1C
+FA1D ; mapped ; 7CBE # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1D
+FA1E ; mapped ; 7FBD # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1E
+FA1F ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA1F
+FA20 ; mapped ; 8612 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA20
+FA21 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA21
+FA22 ; mapped ; 8AF8 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA22
+FA23..FA24 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24
+FA25 ; mapped ; 9038 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA25
+FA26 ; mapped ; 90FD # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA26
+FA27..FA29 ; valid # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29
+FA2A ; mapped ; 98EF # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2A
+FA2B ; mapped ; 98FC # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2B
+FA2C ; mapped ; 9928 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2C
+FA2D ; mapped ; 9DB4 # 1.1 CJK COMPATIBILITY IDEOGRAPH-FA2D
+FA2E ; mapped ; 90DE # 6.1 CJK COMPATIBILITY IDEOGRAPH-FA2E
+FA2F ; mapped ; 96B7 # 6.1 CJK COMPATIBILITY IDEOGRAPH-FA2F
+FA30 ; mapped ; 4FAE # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA30
+FA31 ; mapped ; 50E7 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA31
+FA32 ; mapped ; 514D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA32
+FA33 ; mapped ; 52C9 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA33
+FA34 ; mapped ; 52E4 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA34
+FA35 ; mapped ; 5351 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA35
+FA36 ; mapped ; 559D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA36
+FA37 ; mapped ; 5606 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA37
+FA38 ; mapped ; 5668 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA38
+FA39 ; mapped ; 5840 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA39
+FA3A ; mapped ; 58A8 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3A
+FA3B ; mapped ; 5C64 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3B
+FA3C ; mapped ; 5C6E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3C
+FA3D ; mapped ; 6094 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3D
+FA3E ; mapped ; 6168 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3E
+FA3F ; mapped ; 618E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA3F
+FA40 ; mapped ; 61F2 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA40
+FA41 ; mapped ; 654F # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA41
+FA42 ; mapped ; 65E2 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA42
+FA43 ; mapped ; 6691 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA43
+FA44 ; mapped ; 6885 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA44
+FA45 ; mapped ; 6D77 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA45
+FA46 ; mapped ; 6E1A # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA46
+FA47 ; mapped ; 6F22 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA47
+FA48 ; mapped ; 716E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA48
+FA49 ; mapped ; 722B # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA49
+FA4A ; mapped ; 7422 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4A
+FA4B ; mapped ; 7891 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4B
+FA4C ; mapped ; 793E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4C
+FA4D ; mapped ; 7949 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4D
+FA4E ; mapped ; 7948 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4E
+FA4F ; mapped ; 7950 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA4F
+FA50 ; mapped ; 7956 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA50
+FA51 ; mapped ; 795D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA51
+FA52 ; mapped ; 798D # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA52
+FA53 ; mapped ; 798E # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA53
+FA54 ; mapped ; 7A40 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA54
+FA55 ; mapped ; 7A81 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA55
+FA56 ; mapped ; 7BC0 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA56
+FA57 ; mapped ; 7DF4 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA57
+FA58 ; mapped ; 7E09 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA58
+FA59 ; mapped ; 7E41 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA59
+FA5A ; mapped ; 7F72 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5A
+FA5B ; mapped ; 8005 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5B
+FA5C ; mapped ; 81ED # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5C
+FA5D..FA5E ; mapped ; 8279 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5D..CJK COMPATIBILITY IDEOGRAPH-FA5E
+FA5F ; mapped ; 8457 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA5F
+FA60 ; mapped ; 8910 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA60
+FA61 ; mapped ; 8996 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA61
+FA62 ; mapped ; 8B01 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA62
+FA63 ; mapped ; 8B39 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA63
+FA64 ; mapped ; 8CD3 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA64
+FA65 ; mapped ; 8D08 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA65
+FA66 ; mapped ; 8FB6 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA66
+FA67 ; mapped ; 9038 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA67
+FA68 ; mapped ; 96E3 # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA68
+FA69 ; mapped ; 97FF # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA69
+FA6A ; mapped ; 983B # 3.2 CJK COMPATIBILITY IDEOGRAPH-FA6A
+FA6B ; mapped ; 6075 # 5.2 CJK COMPATIBILITY IDEOGRAPH-FA6B
+FA6C ; mapped ; 242EE # 5.2 CJK COMPATIBILITY IDEOGRAPH-FA6C
+FA6D ; mapped ; 8218 # 5.2 CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E..FA6F ; disallowed # NA <reserved-FA6E>..<reserved-FA6F>
+FA70 ; mapped ; 4E26 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA70
+FA71 ; mapped ; 51B5 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA71
+FA72 ; mapped ; 5168 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA72
+FA73 ; mapped ; 4F80 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA73
+FA74 ; mapped ; 5145 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA74
+FA75 ; mapped ; 5180 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA75
+FA76 ; mapped ; 52C7 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA76
+FA77 ; mapped ; 52FA # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA77
+FA78 ; mapped ; 559D # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA78
+FA79 ; mapped ; 5555 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA79
+FA7A ; mapped ; 5599 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7A
+FA7B ; mapped ; 55E2 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7B
+FA7C ; mapped ; 585A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7C
+FA7D ; mapped ; 58B3 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7D
+FA7E ; mapped ; 5944 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7E
+FA7F ; mapped ; 5954 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA7F
+FA80 ; mapped ; 5A62 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA80
+FA81 ; mapped ; 5B28 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA81
+FA82 ; mapped ; 5ED2 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA82
+FA83 ; mapped ; 5ED9 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA83
+FA84 ; mapped ; 5F69 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA84
+FA85 ; mapped ; 5FAD # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA85
+FA86 ; mapped ; 60D8 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA86
+FA87 ; mapped ; 614E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA87
+FA88 ; mapped ; 6108 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA88
+FA89 ; mapped ; 618E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA89
+FA8A ; mapped ; 6160 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8A
+FA8B ; mapped ; 61F2 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8B
+FA8C ; mapped ; 6234 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8C
+FA8D ; mapped ; 63C4 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8D
+FA8E ; mapped ; 641C # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8E
+FA8F ; mapped ; 6452 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA8F
+FA90 ; mapped ; 6556 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA90
+FA91 ; mapped ; 6674 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA91
+FA92 ; mapped ; 6717 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA92
+FA93 ; mapped ; 671B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA93
+FA94 ; mapped ; 6756 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA94
+FA95 ; mapped ; 6B79 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA95
+FA96 ; mapped ; 6BBA # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA96
+FA97 ; mapped ; 6D41 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA97
+FA98 ; mapped ; 6EDB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA98
+FA99 ; mapped ; 6ECB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA99
+FA9A ; mapped ; 6F22 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9A
+FA9B ; mapped ; 701E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9B
+FA9C ; mapped ; 716E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9C
+FA9D ; mapped ; 77A7 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9D
+FA9E ; mapped ; 7235 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9E
+FA9F ; mapped ; 72AF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FA9F
+FAA0 ; mapped ; 732A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA0
+FAA1 ; mapped ; 7471 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA1
+FAA2 ; mapped ; 7506 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA2
+FAA3 ; mapped ; 753B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA3
+FAA4 ; mapped ; 761D # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA4
+FAA5 ; mapped ; 761F # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA5
+FAA6 ; mapped ; 76CA # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA6
+FAA7 ; mapped ; 76DB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA7
+FAA8 ; mapped ; 76F4 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA8
+FAA9 ; mapped ; 774A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAA9
+FAAA ; mapped ; 7740 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAA
+FAAB ; mapped ; 78CC # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAB
+FAAC ; mapped ; 7AB1 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAC
+FAAD ; mapped ; 7BC0 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAD
+FAAE ; mapped ; 7C7B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAE
+FAAF ; mapped ; 7D5B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAAF
+FAB0 ; mapped ; 7DF4 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB0
+FAB1 ; mapped ; 7F3E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB1
+FAB2 ; mapped ; 8005 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB2
+FAB3 ; mapped ; 8352 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB3
+FAB4 ; mapped ; 83EF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB4
+FAB5 ; mapped ; 8779 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB5
+FAB6 ; mapped ; 8941 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB6
+FAB7 ; mapped ; 8986 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB7
+FAB8 ; mapped ; 8996 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB8
+FAB9 ; mapped ; 8ABF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAB9
+FABA ; mapped ; 8AF8 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABA
+FABB ; mapped ; 8ACB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABB
+FABC ; mapped ; 8B01 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABC
+FABD ; mapped ; 8AFE # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABD
+FABE ; mapped ; 8AED # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABE
+FABF ; mapped ; 8B39 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FABF
+FAC0 ; mapped ; 8B8A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC0
+FAC1 ; mapped ; 8D08 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC1
+FAC2 ; mapped ; 8F38 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC2
+FAC3 ; mapped ; 9072 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC3
+FAC4 ; mapped ; 9199 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC4
+FAC5 ; mapped ; 9276 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC5
+FAC6 ; mapped ; 967C # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC6
+FAC7 ; mapped ; 96E3 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC7
+FAC8 ; mapped ; 9756 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC8
+FAC9 ; mapped ; 97DB # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAC9
+FACA ; mapped ; 97FF # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACA
+FACB ; mapped ; 980B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACB
+FACC ; mapped ; 983B # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACC
+FACD ; mapped ; 9B12 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACD
+FACE ; mapped ; 9F9C # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACE
+FACF ; mapped ; 2284A # 4.1 CJK COMPATIBILITY IDEOGRAPH-FACF
+FAD0 ; mapped ; 22844 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD0
+FAD1 ; mapped ; 233D5 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD1
+FAD2 ; mapped ; 3B9D # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD2
+FAD3 ; mapped ; 4018 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD3
+FAD4 ; mapped ; 4039 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD4
+FAD5 ; mapped ; 25249 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD5
+FAD6 ; mapped ; 25CD0 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD6
+FAD7 ; mapped ; 27ED3 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD7
+FAD8 ; mapped ; 9F43 # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD8
+FAD9 ; mapped ; 9F8E # 4.1 CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA..FAFF ; disallowed # NA <reserved-FADA>..<reserved-FAFF>
+FB00 ; mapped ; 0066 0066 # 1.1 LATIN SMALL LIGATURE FF
+FB01 ; mapped ; 0066 0069 # 1.1 LATIN SMALL LIGATURE FI
+FB02 ; mapped ; 0066 006C # 1.1 LATIN SMALL LIGATURE FL
+FB03 ; mapped ; 0066 0066 0069 #1.1 LATIN SMALL LIGATURE FFI
+FB04 ; mapped ; 0066 0066 006C #1.1 LATIN SMALL LIGATURE FFL
+FB05..FB06 ; mapped ; 0073 0074 # 1.1 LATIN SMALL LIGATURE LONG S T..LATIN SMALL LIGATURE ST
+FB07..FB12 ; disallowed # NA <reserved-FB07>..<reserved-FB12>
+FB13 ; mapped ; 0574 0576 # 1.1 ARMENIAN SMALL LIGATURE MEN NOW
+FB14 ; mapped ; 0574 0565 # 1.1 ARMENIAN SMALL LIGATURE MEN ECH
+FB15 ; mapped ; 0574 056B # 1.1 ARMENIAN SMALL LIGATURE MEN INI
+FB16 ; mapped ; 057E 0576 # 1.1 ARMENIAN SMALL LIGATURE VEW NOW
+FB17 ; mapped ; 0574 056D # 1.1 ARMENIAN SMALL LIGATURE MEN XEH
+FB18..FB1C ; disallowed # NA <reserved-FB18>..<reserved-FB1C>
+FB1D ; mapped ; 05D9 05B4 # 3.0 HEBREW LETTER YOD WITH HIRIQ
+FB1E ; valid # 1.1 HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F ; mapped ; 05F2 05B7 # 1.1 HEBREW LIGATURE YIDDISH YOD YOD PATAH
+FB20 ; mapped ; 05E2 # 1.1 HEBREW LETTER ALTERNATIVE AYIN
+FB21 ; mapped ; 05D0 # 1.1 HEBREW LETTER WIDE ALEF
+FB22 ; mapped ; 05D3 # 1.1 HEBREW LETTER WIDE DALET
+FB23 ; mapped ; 05D4 # 1.1 HEBREW LETTER WIDE HE
+FB24 ; mapped ; 05DB # 1.1 HEBREW LETTER WIDE KAF
+FB25 ; mapped ; 05DC # 1.1 HEBREW LETTER WIDE LAMED
+FB26 ; mapped ; 05DD # 1.1 HEBREW LETTER WIDE FINAL MEM
+FB27 ; mapped ; 05E8 # 1.1 HEBREW LETTER WIDE RESH
+FB28 ; mapped ; 05EA # 1.1 HEBREW LETTER WIDE TAV
+FB29 ; disallowed_STD3_mapped ; 002B # 1.1 HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A ; mapped ; 05E9 05C1 # 1.1 HEBREW LETTER SHIN WITH SHIN DOT
+FB2B ; mapped ; 05E9 05C2 # 1.1 HEBREW LETTER SHIN WITH SIN DOT
+FB2C ; mapped ; 05E9 05BC 05C1 #1.1 HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT
+FB2D ; mapped ; 05E9 05BC 05C2 #1.1 HEBREW LETTER SHIN WITH DAGESH AND SIN DOT
+FB2E ; mapped ; 05D0 05B7 # 1.1 HEBREW LETTER ALEF WITH PATAH
+FB2F ; mapped ; 05D0 05B8 # 1.1 HEBREW LETTER ALEF WITH QAMATS
+FB30 ; mapped ; 05D0 05BC # 1.1 HEBREW LETTER ALEF WITH MAPIQ
+FB31 ; mapped ; 05D1 05BC # 1.1 HEBREW LETTER BET WITH DAGESH
+FB32 ; mapped ; 05D2 05BC # 1.1 HEBREW LETTER GIMEL WITH DAGESH
+FB33 ; mapped ; 05D3 05BC # 1.1 HEBREW LETTER DALET WITH DAGESH
+FB34 ; mapped ; 05D4 05BC # 1.1 HEBREW LETTER HE WITH MAPIQ
+FB35 ; mapped ; 05D5 05BC # 1.1 HEBREW LETTER VAV WITH DAGESH
+FB36 ; mapped ; 05D6 05BC # 1.1 HEBREW LETTER ZAYIN WITH DAGESH
+FB37 ; disallowed # NA <reserved-FB37>
+FB38 ; mapped ; 05D8 05BC # 1.1 HEBREW LETTER TET WITH DAGESH
+FB39 ; mapped ; 05D9 05BC # 1.1 HEBREW LETTER YOD WITH DAGESH
+FB3A ; mapped ; 05DA 05BC # 1.1 HEBREW LETTER FINAL KAF WITH DAGESH
+FB3B ; mapped ; 05DB 05BC # 1.1 HEBREW LETTER KAF WITH DAGESH
+FB3C ; mapped ; 05DC 05BC # 1.1 HEBREW LETTER LAMED WITH DAGESH
+FB3D ; disallowed # NA <reserved-FB3D>
+FB3E ; mapped ; 05DE 05BC # 1.1 HEBREW LETTER MEM WITH DAGESH
+FB3F ; disallowed # NA <reserved-FB3F>
+FB40 ; mapped ; 05E0 05BC # 1.1 HEBREW LETTER NUN WITH DAGESH
+FB41 ; mapped ; 05E1 05BC # 1.1 HEBREW LETTER SAMEKH WITH DAGESH
+FB42 ; disallowed # NA <reserved-FB42>
+FB43 ; mapped ; 05E3 05BC # 1.1 HEBREW LETTER FINAL PE WITH DAGESH
+FB44 ; mapped ; 05E4 05BC # 1.1 HEBREW LETTER PE WITH DAGESH
+FB45 ; disallowed # NA <reserved-FB45>
+FB46 ; mapped ; 05E6 05BC # 1.1 HEBREW LETTER TSADI WITH DAGESH
+FB47 ; mapped ; 05E7 05BC # 1.1 HEBREW LETTER QOF WITH DAGESH
+FB48 ; mapped ; 05E8 05BC # 1.1 HEBREW LETTER RESH WITH DAGESH
+FB49 ; mapped ; 05E9 05BC # 1.1 HEBREW LETTER SHIN WITH DAGESH
+FB4A ; mapped ; 05EA 05BC # 1.1 HEBREW LETTER TAV WITH DAGESH
+FB4B ; mapped ; 05D5 05B9 # 1.1 HEBREW LETTER VAV WITH HOLAM
+FB4C ; mapped ; 05D1 05BF # 1.1 HEBREW LETTER BET WITH RAFE
+FB4D ; mapped ; 05DB 05BF # 1.1 HEBREW LETTER KAF WITH RAFE
+FB4E ; mapped ; 05E4 05BF # 1.1 HEBREW LETTER PE WITH RAFE
+FB4F ; mapped ; 05D0 05DC # 1.1 HEBREW LIGATURE ALEF LAMED
+FB50..FB51 ; mapped ; 0671 # 1.1 ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER ALEF WASLA FINAL FORM
+FB52..FB55 ; mapped ; 067B # 1.1 ARABIC LETTER BEEH ISOLATED FORM..ARABIC LETTER BEEH MEDIAL FORM
+FB56..FB59 ; mapped ; 067E # 1.1 ARABIC LETTER PEH ISOLATED FORM..ARABIC LETTER PEH MEDIAL FORM
+FB5A..FB5D ; mapped ; 0680 # 1.1 ARABIC LETTER BEHEH ISOLATED FORM..ARABIC LETTER BEHEH MEDIAL FORM
+FB5E..FB61 ; mapped ; 067A # 1.1 ARABIC LETTER TTEHEH ISOLATED FORM..ARABIC LETTER TTEHEH MEDIAL FORM
+FB62..FB65 ; mapped ; 067F # 1.1 ARABIC LETTER TEHEH ISOLATED FORM..ARABIC LETTER TEHEH MEDIAL FORM
+FB66..FB69 ; mapped ; 0679 # 1.1 ARABIC LETTER TTEH ISOLATED FORM..ARABIC LETTER TTEH MEDIAL FORM
+FB6A..FB6D ; mapped ; 06A4 # 1.1 ARABIC LETTER VEH ISOLATED FORM..ARABIC LETTER VEH MEDIAL FORM
+FB6E..FB71 ; mapped ; 06A6 # 1.1 ARABIC LETTER PEHEH ISOLATED FORM..ARABIC LETTER PEHEH MEDIAL FORM
+FB72..FB75 ; mapped ; 0684 # 1.1 ARABIC LETTER DYEH ISOLATED FORM..ARABIC LETTER DYEH MEDIAL FORM
+FB76..FB79 ; mapped ; 0683 # 1.1 ARABIC LETTER NYEH ISOLATED FORM..ARABIC LETTER NYEH MEDIAL FORM
+FB7A..FB7D ; mapped ; 0686 # 1.1 ARABIC LETTER TCHEH ISOLATED FORM..ARABIC LETTER TCHEH MEDIAL FORM
+FB7E..FB81 ; mapped ; 0687 # 1.1 ARABIC LETTER TCHEHEH ISOLATED FORM..ARABIC LETTER TCHEHEH MEDIAL FORM
+FB82..FB83 ; mapped ; 068D # 1.1 ARABIC LETTER DDAHAL ISOLATED FORM..ARABIC LETTER DDAHAL FINAL FORM
+FB84..FB85 ; mapped ; 068C # 1.1 ARABIC LETTER DAHAL ISOLATED FORM..ARABIC LETTER DAHAL FINAL FORM
+FB86..FB87 ; mapped ; 068E # 1.1 ARABIC LETTER DUL ISOLATED FORM..ARABIC LETTER DUL FINAL FORM
+FB88..FB89 ; mapped ; 0688 # 1.1 ARABIC LETTER DDAL ISOLATED FORM..ARABIC LETTER DDAL FINAL FORM
+FB8A..FB8B ; mapped ; 0698 # 1.1 ARABIC LETTER JEH ISOLATED FORM..ARABIC LETTER JEH FINAL FORM
+FB8C..FB8D ; mapped ; 0691 # 1.1 ARABIC LETTER RREH ISOLATED FORM..ARABIC LETTER RREH FINAL FORM
+FB8E..FB91 ; mapped ; 06A9 # 1.1 ARABIC LETTER KEHEH ISOLATED FORM..ARABIC LETTER KEHEH MEDIAL FORM
+FB92..FB95 ; mapped ; 06AF # 1.1 ARABIC LETTER GAF ISOLATED FORM..ARABIC LETTER GAF MEDIAL FORM
+FB96..FB99 ; mapped ; 06B3 # 1.1 ARABIC LETTER GUEH ISOLATED FORM..ARABIC LETTER GUEH MEDIAL FORM
+FB9A..FB9D ; mapped ; 06B1 # 1.1 ARABIC LETTER NGOEH ISOLATED FORM..ARABIC LETTER NGOEH MEDIAL FORM
+FB9E..FB9F ; mapped ; 06BA # 1.1 ARABIC LETTER NOON GHUNNA ISOLATED FORM..ARABIC LETTER NOON GHUNNA FINAL FORM
+FBA0..FBA3 ; mapped ; 06BB # 1.1 ARABIC LETTER RNOON ISOLATED FORM..ARABIC LETTER RNOON MEDIAL FORM
+FBA4..FBA5 ; mapped ; 06C0 # 1.1 ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM..ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM
+FBA6..FBA9 ; mapped ; 06C1 # 1.1 ARABIC LETTER HEH GOAL ISOLATED FORM..ARABIC LETTER HEH GOAL MEDIAL FORM
+FBAA..FBAD ; mapped ; 06BE # 1.1 ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM..ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM
+FBAE..FBAF ; mapped ; 06D2 # 1.1 ARABIC LETTER YEH BARREE ISOLATED FORM..ARABIC LETTER YEH BARREE FINAL FORM
+FBB0..FBB1 ; mapped ; 06D3 # 1.1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2..FBC1 ; valid ; ; NV8 # 6.0 ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
+FBC2 ; valid ; ; NV8 # 14.0 ARABIC SYMBOL WASLA ABOVE
+FBC3..FBD2 ; disallowed # NA <reserved-FBC3>..<reserved-FBD2>
+FBD3..FBD6 ; mapped ; 06AD # 1.1 ARABIC LETTER NG ISOLATED FORM..ARABIC LETTER NG MEDIAL FORM
+FBD7..FBD8 ; mapped ; 06C7 # 1.1 ARABIC LETTER U ISOLATED FORM..ARABIC LETTER U FINAL FORM
+FBD9..FBDA ; mapped ; 06C6 # 1.1 ARABIC LETTER OE ISOLATED FORM..ARABIC LETTER OE FINAL FORM
+FBDB..FBDC ; mapped ; 06C8 # 1.1 ARABIC LETTER YU ISOLATED FORM..ARABIC LETTER YU FINAL FORM
+FBDD ; mapped ; 06C7 0674 # 1.1 ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM
+FBDE..FBDF ; mapped ; 06CB # 1.1 ARABIC LETTER VE ISOLATED FORM..ARABIC LETTER VE FINAL FORM
+FBE0..FBE1 ; mapped ; 06C5 # 1.1 ARABIC LETTER KIRGHIZ OE ISOLATED FORM..ARABIC LETTER KIRGHIZ OE FINAL FORM
+FBE2..FBE3 ; mapped ; 06C9 # 1.1 ARABIC LETTER KIRGHIZ YU ISOLATED FORM..ARABIC LETTER KIRGHIZ YU FINAL FORM
+FBE4..FBE7 ; mapped ; 06D0 # 1.1 ARABIC LETTER E ISOLATED FORM..ARABIC LETTER E MEDIAL FORM
+FBE8..FBE9 ; mapped ; 0649 # 1.1 ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM..ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM
+FBEA..FBEB ; mapped ; 0626 0627 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM
+FBEC..FBED ; mapped ; 0626 06D5 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM
+FBEE..FBEF ; mapped ; 0626 0648 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM
+FBF0..FBF1 ; mapped ; 0626 06C7 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM
+FBF2..FBF3 ; mapped ; 0626 06C6 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM
+FBF4..FBF5 ; mapped ; 0626 06C8 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM
+FBF6..FBF8 ; mapped ; 0626 06D0 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM..ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM
+FBF9..FBFB ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM..ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM
+FBFC..FBFF ; mapped ; 06CC # 1.1 ARABIC LETTER FARSI YEH ISOLATED FORM..ARABIC LETTER FARSI YEH MEDIAL FORM
+FC00 ; mapped ; 0626 062C # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM
+FC01 ; mapped ; 0626 062D # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM
+FC02 ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM
+FC03 ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM
+FC04 ; mapped ; 0626 064A # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM
+FC05 ; mapped ; 0628 062C # 1.1 ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM
+FC06 ; mapped ; 0628 062D # 1.1 ARABIC LIGATURE BEH WITH HAH ISOLATED FORM
+FC07 ; mapped ; 0628 062E # 1.1 ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM
+FC08 ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM
+FC09 ; mapped ; 0628 0649 # 1.1 ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM
+FC0A ; mapped ; 0628 064A # 1.1 ARABIC LIGATURE BEH WITH YEH ISOLATED FORM
+FC0B ; mapped ; 062A 062C # 1.1 ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM
+FC0C ; mapped ; 062A 062D # 1.1 ARABIC LIGATURE TEH WITH HAH ISOLATED FORM
+FC0D ; mapped ; 062A 062E # 1.1 ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM
+FC0E ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM
+FC0F ; mapped ; 062A 0649 # 1.1 ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM
+FC10 ; mapped ; 062A 064A # 1.1 ARABIC LIGATURE TEH WITH YEH ISOLATED FORM
+FC11 ; mapped ; 062B 062C # 1.1 ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM
+FC12 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM
+FC13 ; mapped ; 062B 0649 # 1.1 ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM
+FC14 ; mapped ; 062B 064A # 1.1 ARABIC LIGATURE THEH WITH YEH ISOLATED FORM
+FC15 ; mapped ; 062C 062D # 1.1 ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM
+FC16 ; mapped ; 062C 0645 # 1.1 ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM
+FC17 ; mapped ; 062D 062C # 1.1 ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM
+FC18 ; mapped ; 062D 0645 # 1.1 ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM
+FC19 ; mapped ; 062E 062C # 1.1 ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM
+FC1A ; mapped ; 062E 062D # 1.1 ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM
+FC1B ; mapped ; 062E 0645 # 1.1 ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM
+FC1C ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM
+FC1D ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM
+FC1E ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM
+FC1F ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM
+FC20 ; mapped ; 0635 062D # 1.1 ARABIC LIGATURE SAD WITH HAH ISOLATED FORM
+FC21 ; mapped ; 0635 0645 # 1.1 ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM
+FC22 ; mapped ; 0636 062C # 1.1 ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM
+FC23 ; mapped ; 0636 062D # 1.1 ARABIC LIGATURE DAD WITH HAH ISOLATED FORM
+FC24 ; mapped ; 0636 062E # 1.1 ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM
+FC25 ; mapped ; 0636 0645 # 1.1 ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM
+FC26 ; mapped ; 0637 062D # 1.1 ARABIC LIGATURE TAH WITH HAH ISOLATED FORM
+FC27 ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM
+FC28 ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM
+FC29 ; mapped ; 0639 062C # 1.1 ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM
+FC2A ; mapped ; 0639 0645 # 1.1 ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM
+FC2B ; mapped ; 063A 062C # 1.1 ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM
+FC2C ; mapped ; 063A 0645 # 1.1 ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM
+FC2D ; mapped ; 0641 062C # 1.1 ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM
+FC2E ; mapped ; 0641 062D # 1.1 ARABIC LIGATURE FEH WITH HAH ISOLATED FORM
+FC2F ; mapped ; 0641 062E # 1.1 ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM
+FC30 ; mapped ; 0641 0645 # 1.1 ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM
+FC31 ; mapped ; 0641 0649 # 1.1 ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM
+FC32 ; mapped ; 0641 064A # 1.1 ARABIC LIGATURE FEH WITH YEH ISOLATED FORM
+FC33 ; mapped ; 0642 062D # 1.1 ARABIC LIGATURE QAF WITH HAH ISOLATED FORM
+FC34 ; mapped ; 0642 0645 # 1.1 ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM
+FC35 ; mapped ; 0642 0649 # 1.1 ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM
+FC36 ; mapped ; 0642 064A # 1.1 ARABIC LIGATURE QAF WITH YEH ISOLATED FORM
+FC37 ; mapped ; 0643 0627 # 1.1 ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM
+FC38 ; mapped ; 0643 062C # 1.1 ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM
+FC39 ; mapped ; 0643 062D # 1.1 ARABIC LIGATURE KAF WITH HAH ISOLATED FORM
+FC3A ; mapped ; 0643 062E # 1.1 ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM
+FC3B ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM ISOLATED FORM
+FC3C ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM
+FC3D ; mapped ; 0643 0649 # 1.1 ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM
+FC3E ; mapped ; 0643 064A # 1.1 ARABIC LIGATURE KAF WITH YEH ISOLATED FORM
+FC3F ; mapped ; 0644 062C # 1.1 ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM
+FC40 ; mapped ; 0644 062D # 1.1 ARABIC LIGATURE LAM WITH HAH ISOLATED FORM
+FC41 ; mapped ; 0644 062E # 1.1 ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM
+FC42 ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM
+FC43 ; mapped ; 0644 0649 # 1.1 ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM
+FC44 ; mapped ; 0644 064A # 1.1 ARABIC LIGATURE LAM WITH YEH ISOLATED FORM
+FC45 ; mapped ; 0645 062C # 1.1 ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM
+FC46 ; mapped ; 0645 062D # 1.1 ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM
+FC47 ; mapped ; 0645 062E # 1.1 ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM
+FC48 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM
+FC49 ; mapped ; 0645 0649 # 1.1 ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM
+FC4A ; mapped ; 0645 064A # 1.1 ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM
+FC4B ; mapped ; 0646 062C # 1.1 ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM
+FC4C ; mapped ; 0646 062D # 1.1 ARABIC LIGATURE NOON WITH HAH ISOLATED FORM
+FC4D ; mapped ; 0646 062E # 1.1 ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM
+FC4E ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM
+FC4F ; mapped ; 0646 0649 # 1.1 ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM
+FC50 ; mapped ; 0646 064A # 1.1 ARABIC LIGATURE NOON WITH YEH ISOLATED FORM
+FC51 ; mapped ; 0647 062C # 1.1 ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM
+FC52 ; mapped ; 0647 0645 # 1.1 ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM
+FC53 ; mapped ; 0647 0649 # 1.1 ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM
+FC54 ; mapped ; 0647 064A # 1.1 ARABIC LIGATURE HEH WITH YEH ISOLATED FORM
+FC55 ; mapped ; 064A 062C # 1.1 ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM
+FC56 ; mapped ; 064A 062D # 1.1 ARABIC LIGATURE YEH WITH HAH ISOLATED FORM
+FC57 ; mapped ; 064A 062E # 1.1 ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM
+FC58 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM
+FC59 ; mapped ; 064A 0649 # 1.1 ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM
+FC5A ; mapped ; 064A 064A # 1.1 ARABIC LIGATURE YEH WITH YEH ISOLATED FORM
+FC5B ; mapped ; 0630 0670 # 1.1 ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5C ; mapped ; 0631 0670 # 1.1 ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5D ; mapped ; 0649 0670 # 1.1 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC5E ; disallowed_STD3_mapped ; 0020 064C 0651 #1.1 ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM
+FC5F ; disallowed_STD3_mapped ; 0020 064D 0651 #1.1 ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM
+FC60 ; disallowed_STD3_mapped ; 0020 064E 0651 #1.1 ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM
+FC61 ; disallowed_STD3_mapped ; 0020 064F 0651 #1.1 ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM
+FC62 ; disallowed_STD3_mapped ; 0020 0650 0651 #1.1 ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM
+FC63 ; disallowed_STD3_mapped ; 0020 0651 0670 #1.1 ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM
+FC64 ; mapped ; 0626 0631 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM
+FC65 ; mapped ; 0626 0632 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM
+FC66 ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM
+FC67 ; mapped ; 0626 0646 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM
+FC68 ; mapped ; 0626 0649 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM
+FC69 ; mapped ; 0626 064A # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM
+FC6A ; mapped ; 0628 0631 # 1.1 ARABIC LIGATURE BEH WITH REH FINAL FORM
+FC6B ; mapped ; 0628 0632 # 1.1 ARABIC LIGATURE BEH WITH ZAIN FINAL FORM
+FC6C ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM FINAL FORM
+FC6D ; mapped ; 0628 0646 # 1.1 ARABIC LIGATURE BEH WITH NOON FINAL FORM
+FC6E ; mapped ; 0628 0649 # 1.1 ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM
+FC6F ; mapped ; 0628 064A # 1.1 ARABIC LIGATURE BEH WITH YEH FINAL FORM
+FC70 ; mapped ; 062A 0631 # 1.1 ARABIC LIGATURE TEH WITH REH FINAL FORM
+FC71 ; mapped ; 062A 0632 # 1.1 ARABIC LIGATURE TEH WITH ZAIN FINAL FORM
+FC72 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM FINAL FORM
+FC73 ; mapped ; 062A 0646 # 1.1 ARABIC LIGATURE TEH WITH NOON FINAL FORM
+FC74 ; mapped ; 062A 0649 # 1.1 ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM
+FC75 ; mapped ; 062A 064A # 1.1 ARABIC LIGATURE TEH WITH YEH FINAL FORM
+FC76 ; mapped ; 062B 0631 # 1.1 ARABIC LIGATURE THEH WITH REH FINAL FORM
+FC77 ; mapped ; 062B 0632 # 1.1 ARABIC LIGATURE THEH WITH ZAIN FINAL FORM
+FC78 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM FINAL FORM
+FC79 ; mapped ; 062B 0646 # 1.1 ARABIC LIGATURE THEH WITH NOON FINAL FORM
+FC7A ; mapped ; 062B 0649 # 1.1 ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM
+FC7B ; mapped ; 062B 064A # 1.1 ARABIC LIGATURE THEH WITH YEH FINAL FORM
+FC7C ; mapped ; 0641 0649 # 1.1 ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM
+FC7D ; mapped ; 0641 064A # 1.1 ARABIC LIGATURE FEH WITH YEH FINAL FORM
+FC7E ; mapped ; 0642 0649 # 1.1 ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM
+FC7F ; mapped ; 0642 064A # 1.1 ARABIC LIGATURE QAF WITH YEH FINAL FORM
+FC80 ; mapped ; 0643 0627 # 1.1 ARABIC LIGATURE KAF WITH ALEF FINAL FORM
+FC81 ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM FINAL FORM
+FC82 ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM FINAL FORM
+FC83 ; mapped ; 0643 0649 # 1.1 ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM
+FC84 ; mapped ; 0643 064A # 1.1 ARABIC LIGATURE KAF WITH YEH FINAL FORM
+FC85 ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM FINAL FORM
+FC86 ; mapped ; 0644 0649 # 1.1 ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM
+FC87 ; mapped ; 0644 064A # 1.1 ARABIC LIGATURE LAM WITH YEH FINAL FORM
+FC88 ; mapped ; 0645 0627 # 1.1 ARABIC LIGATURE MEEM WITH ALEF FINAL FORM
+FC89 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE MEEM WITH MEEM FINAL FORM
+FC8A ; mapped ; 0646 0631 # 1.1 ARABIC LIGATURE NOON WITH REH FINAL FORM
+FC8B ; mapped ; 0646 0632 # 1.1 ARABIC LIGATURE NOON WITH ZAIN FINAL FORM
+FC8C ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM FINAL FORM
+FC8D ; mapped ; 0646 0646 # 1.1 ARABIC LIGATURE NOON WITH NOON FINAL FORM
+FC8E ; mapped ; 0646 0649 # 1.1 ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM
+FC8F ; mapped ; 0646 064A # 1.1 ARABIC LIGATURE NOON WITH YEH FINAL FORM
+FC90 ; mapped ; 0649 0670 # 1.1 ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM
+FC91 ; mapped ; 064A 0631 # 1.1 ARABIC LIGATURE YEH WITH REH FINAL FORM
+FC92 ; mapped ; 064A 0632 # 1.1 ARABIC LIGATURE YEH WITH ZAIN FINAL FORM
+FC93 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM FINAL FORM
+FC94 ; mapped ; 064A 0646 # 1.1 ARABIC LIGATURE YEH WITH NOON FINAL FORM
+FC95 ; mapped ; 064A 0649 # 1.1 ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM
+FC96 ; mapped ; 064A 064A # 1.1 ARABIC LIGATURE YEH WITH YEH FINAL FORM
+FC97 ; mapped ; 0626 062C # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM
+FC98 ; mapped ; 0626 062D # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM
+FC99 ; mapped ; 0626 062E # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM
+FC9A ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM
+FC9B ; mapped ; 0626 0647 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM
+FC9C ; mapped ; 0628 062C # 1.1 ARABIC LIGATURE BEH WITH JEEM INITIAL FORM
+FC9D ; mapped ; 0628 062D # 1.1 ARABIC LIGATURE BEH WITH HAH INITIAL FORM
+FC9E ; mapped ; 0628 062E # 1.1 ARABIC LIGATURE BEH WITH KHAH INITIAL FORM
+FC9F ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM INITIAL FORM
+FCA0 ; mapped ; 0628 0647 # 1.1 ARABIC LIGATURE BEH WITH HEH INITIAL FORM
+FCA1 ; mapped ; 062A 062C # 1.1 ARABIC LIGATURE TEH WITH JEEM INITIAL FORM
+FCA2 ; mapped ; 062A 062D # 1.1 ARABIC LIGATURE TEH WITH HAH INITIAL FORM
+FCA3 ; mapped ; 062A 062E # 1.1 ARABIC LIGATURE TEH WITH KHAH INITIAL FORM
+FCA4 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM INITIAL FORM
+FCA5 ; mapped ; 062A 0647 # 1.1 ARABIC LIGATURE TEH WITH HEH INITIAL FORM
+FCA6 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM INITIAL FORM
+FCA7 ; mapped ; 062C 062D # 1.1 ARABIC LIGATURE JEEM WITH HAH INITIAL FORM
+FCA8 ; mapped ; 062C 0645 # 1.1 ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM
+FCA9 ; mapped ; 062D 062C # 1.1 ARABIC LIGATURE HAH WITH JEEM INITIAL FORM
+FCAA ; mapped ; 062D 0645 # 1.1 ARABIC LIGATURE HAH WITH MEEM INITIAL FORM
+FCAB ; mapped ; 062E 062C # 1.1 ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM
+FCAC ; mapped ; 062E 0645 # 1.1 ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM
+FCAD ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM
+FCAE ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE SEEN WITH HAH INITIAL FORM
+FCAF ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM
+FCB0 ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM
+FCB1 ; mapped ; 0635 062D # 1.1 ARABIC LIGATURE SAD WITH HAH INITIAL FORM
+FCB2 ; mapped ; 0635 062E # 1.1 ARABIC LIGATURE SAD WITH KHAH INITIAL FORM
+FCB3 ; mapped ; 0635 0645 # 1.1 ARABIC LIGATURE SAD WITH MEEM INITIAL FORM
+FCB4 ; mapped ; 0636 062C # 1.1 ARABIC LIGATURE DAD WITH JEEM INITIAL FORM
+FCB5 ; mapped ; 0636 062D # 1.1 ARABIC LIGATURE DAD WITH HAH INITIAL FORM
+FCB6 ; mapped ; 0636 062E # 1.1 ARABIC LIGATURE DAD WITH KHAH INITIAL FORM
+FCB7 ; mapped ; 0636 0645 # 1.1 ARABIC LIGATURE DAD WITH MEEM INITIAL FORM
+FCB8 ; mapped ; 0637 062D # 1.1 ARABIC LIGATURE TAH WITH HAH INITIAL FORM
+FCB9 ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM
+FCBA ; mapped ; 0639 062C # 1.1 ARABIC LIGATURE AIN WITH JEEM INITIAL FORM
+FCBB ; mapped ; 0639 0645 # 1.1 ARABIC LIGATURE AIN WITH MEEM INITIAL FORM
+FCBC ; mapped ; 063A 062C # 1.1 ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM
+FCBD ; mapped ; 063A 0645 # 1.1 ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM
+FCBE ; mapped ; 0641 062C # 1.1 ARABIC LIGATURE FEH WITH JEEM INITIAL FORM
+FCBF ; mapped ; 0641 062D # 1.1 ARABIC LIGATURE FEH WITH HAH INITIAL FORM
+FCC0 ; mapped ; 0641 062E # 1.1 ARABIC LIGATURE FEH WITH KHAH INITIAL FORM
+FCC1 ; mapped ; 0641 0645 # 1.1 ARABIC LIGATURE FEH WITH MEEM INITIAL FORM
+FCC2 ; mapped ; 0642 062D # 1.1 ARABIC LIGATURE QAF WITH HAH INITIAL FORM
+FCC3 ; mapped ; 0642 0645 # 1.1 ARABIC LIGATURE QAF WITH MEEM INITIAL FORM
+FCC4 ; mapped ; 0643 062C # 1.1 ARABIC LIGATURE KAF WITH JEEM INITIAL FORM
+FCC5 ; mapped ; 0643 062D # 1.1 ARABIC LIGATURE KAF WITH HAH INITIAL FORM
+FCC6 ; mapped ; 0643 062E # 1.1 ARABIC LIGATURE KAF WITH KHAH INITIAL FORM
+FCC7 ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM INITIAL FORM
+FCC8 ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM INITIAL FORM
+FCC9 ; mapped ; 0644 062C # 1.1 ARABIC LIGATURE LAM WITH JEEM INITIAL FORM
+FCCA ; mapped ; 0644 062D # 1.1 ARABIC LIGATURE LAM WITH HAH INITIAL FORM
+FCCB ; mapped ; 0644 062E # 1.1 ARABIC LIGATURE LAM WITH KHAH INITIAL FORM
+FCCC ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM INITIAL FORM
+FCCD ; mapped ; 0644 0647 # 1.1 ARABIC LIGATURE LAM WITH HEH INITIAL FORM
+FCCE ; mapped ; 0645 062C # 1.1 ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM
+FCCF ; mapped ; 0645 062D # 1.1 ARABIC LIGATURE MEEM WITH HAH INITIAL FORM
+FCD0 ; mapped ; 0645 062E # 1.1 ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM
+FCD1 ; mapped ; 0645 0645 # 1.1 ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM
+FCD2 ; mapped ; 0646 062C # 1.1 ARABIC LIGATURE NOON WITH JEEM INITIAL FORM
+FCD3 ; mapped ; 0646 062D # 1.1 ARABIC LIGATURE NOON WITH HAH INITIAL FORM
+FCD4 ; mapped ; 0646 062E # 1.1 ARABIC LIGATURE NOON WITH KHAH INITIAL FORM
+FCD5 ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM INITIAL FORM
+FCD6 ; mapped ; 0646 0647 # 1.1 ARABIC LIGATURE NOON WITH HEH INITIAL FORM
+FCD7 ; mapped ; 0647 062C # 1.1 ARABIC LIGATURE HEH WITH JEEM INITIAL FORM
+FCD8 ; mapped ; 0647 0645 # 1.1 ARABIC LIGATURE HEH WITH MEEM INITIAL FORM
+FCD9 ; mapped ; 0647 0670 # 1.1 ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM
+FCDA ; mapped ; 064A 062C # 1.1 ARABIC LIGATURE YEH WITH JEEM INITIAL FORM
+FCDB ; mapped ; 064A 062D # 1.1 ARABIC LIGATURE YEH WITH HAH INITIAL FORM
+FCDC ; mapped ; 064A 062E # 1.1 ARABIC LIGATURE YEH WITH KHAH INITIAL FORM
+FCDD ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM INITIAL FORM
+FCDE ; mapped ; 064A 0647 # 1.1 ARABIC LIGATURE YEH WITH HEH INITIAL FORM
+FCDF ; mapped ; 0626 0645 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM
+FCE0 ; mapped ; 0626 0647 # 1.1 ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM
+FCE1 ; mapped ; 0628 0645 # 1.1 ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM
+FCE2 ; mapped ; 0628 0647 # 1.1 ARABIC LIGATURE BEH WITH HEH MEDIAL FORM
+FCE3 ; mapped ; 062A 0645 # 1.1 ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM
+FCE4 ; mapped ; 062A 0647 # 1.1 ARABIC LIGATURE TEH WITH HEH MEDIAL FORM
+FCE5 ; mapped ; 062B 0645 # 1.1 ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM
+FCE6 ; mapped ; 062B 0647 # 1.1 ARABIC LIGATURE THEH WITH HEH MEDIAL FORM
+FCE7 ; mapped ; 0633 0645 # 1.1 ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM
+FCE8 ; mapped ; 0633 0647 # 1.1 ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM
+FCE9 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM
+FCEA ; mapped ; 0634 0647 # 1.1 ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM
+FCEB ; mapped ; 0643 0644 # 1.1 ARABIC LIGATURE KAF WITH LAM MEDIAL FORM
+FCEC ; mapped ; 0643 0645 # 1.1 ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM
+FCED ; mapped ; 0644 0645 # 1.1 ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM
+FCEE ; mapped ; 0646 0645 # 1.1 ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM
+FCEF ; mapped ; 0646 0647 # 1.1 ARABIC LIGATURE NOON WITH HEH MEDIAL FORM
+FCF0 ; mapped ; 064A 0645 # 1.1 ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM
+FCF1 ; mapped ; 064A 0647 # 1.1 ARABIC LIGATURE YEH WITH HEH MEDIAL FORM
+FCF2 ; mapped ; 0640 064E 0651 #1.1 ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM
+FCF3 ; mapped ; 0640 064F 0651 #1.1 ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM
+FCF4 ; mapped ; 0640 0650 0651 #1.1 ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM
+FCF5 ; mapped ; 0637 0649 # 1.1 ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM
+FCF6 ; mapped ; 0637 064A # 1.1 ARABIC LIGATURE TAH WITH YEH ISOLATED FORM
+FCF7 ; mapped ; 0639 0649 # 1.1 ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM
+FCF8 ; mapped ; 0639 064A # 1.1 ARABIC LIGATURE AIN WITH YEH ISOLATED FORM
+FCF9 ; mapped ; 063A 0649 # 1.1 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM
+FCFA ; mapped ; 063A 064A # 1.1 ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM
+FCFB ; mapped ; 0633 0649 # 1.1 ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFC ; mapped ; 0633 064A # 1.1 ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM
+FCFD ; mapped ; 0634 0649 # 1.1 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM
+FCFE ; mapped ; 0634 064A # 1.1 ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM
+FCFF ; mapped ; 062D 0649 # 1.1 ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM
+FD00 ; mapped ; 062D 064A # 1.1 ARABIC LIGATURE HAH WITH YEH ISOLATED FORM
+FD01 ; mapped ; 062C 0649 # 1.1 ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM
+FD02 ; mapped ; 062C 064A # 1.1 ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM
+FD03 ; mapped ; 062E 0649 # 1.1 ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM
+FD04 ; mapped ; 062E 064A # 1.1 ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM
+FD05 ; mapped ; 0635 0649 # 1.1 ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM
+FD06 ; mapped ; 0635 064A # 1.1 ARABIC LIGATURE SAD WITH YEH ISOLATED FORM
+FD07 ; mapped ; 0636 0649 # 1.1 ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM
+FD08 ; mapped ; 0636 064A # 1.1 ARABIC LIGATURE DAD WITH YEH ISOLATED FORM
+FD09 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM
+FD0A ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM
+FD0B ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM
+FD0C ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM
+FD0D ; mapped ; 0634 0631 # 1.1 ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM
+FD0E ; mapped ; 0633 0631 # 1.1 ARABIC LIGATURE SEEN WITH REH ISOLATED FORM
+FD0F ; mapped ; 0635 0631 # 1.1 ARABIC LIGATURE SAD WITH REH ISOLATED FORM
+FD10 ; mapped ; 0636 0631 # 1.1 ARABIC LIGATURE DAD WITH REH ISOLATED FORM
+FD11 ; mapped ; 0637 0649 # 1.1 ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM
+FD12 ; mapped ; 0637 064A # 1.1 ARABIC LIGATURE TAH WITH YEH FINAL FORM
+FD13 ; mapped ; 0639 0649 # 1.1 ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM
+FD14 ; mapped ; 0639 064A # 1.1 ARABIC LIGATURE AIN WITH YEH FINAL FORM
+FD15 ; mapped ; 063A 0649 # 1.1 ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM
+FD16 ; mapped ; 063A 064A # 1.1 ARABIC LIGATURE GHAIN WITH YEH FINAL FORM
+FD17 ; mapped ; 0633 0649 # 1.1 ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM
+FD18 ; mapped ; 0633 064A # 1.1 ARABIC LIGATURE SEEN WITH YEH FINAL FORM
+FD19 ; mapped ; 0634 0649 # 1.1 ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM
+FD1A ; mapped ; 0634 064A # 1.1 ARABIC LIGATURE SHEEN WITH YEH FINAL FORM
+FD1B ; mapped ; 062D 0649 # 1.1 ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM
+FD1C ; mapped ; 062D 064A # 1.1 ARABIC LIGATURE HAH WITH YEH FINAL FORM
+FD1D ; mapped ; 062C 0649 # 1.1 ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM
+FD1E ; mapped ; 062C 064A # 1.1 ARABIC LIGATURE JEEM WITH YEH FINAL FORM
+FD1F ; mapped ; 062E 0649 # 1.1 ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM
+FD20 ; mapped ; 062E 064A # 1.1 ARABIC LIGATURE KHAH WITH YEH FINAL FORM
+FD21 ; mapped ; 0635 0649 # 1.1 ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM
+FD22 ; mapped ; 0635 064A # 1.1 ARABIC LIGATURE SAD WITH YEH FINAL FORM
+FD23 ; mapped ; 0636 0649 # 1.1 ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM
+FD24 ; mapped ; 0636 064A # 1.1 ARABIC LIGATURE DAD WITH YEH FINAL FORM
+FD25 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM
+FD26 ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH FINAL FORM
+FD27 ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM
+FD28 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM
+FD29 ; mapped ; 0634 0631 # 1.1 ARABIC LIGATURE SHEEN WITH REH FINAL FORM
+FD2A ; mapped ; 0633 0631 # 1.1 ARABIC LIGATURE SEEN WITH REH FINAL FORM
+FD2B ; mapped ; 0635 0631 # 1.1 ARABIC LIGATURE SAD WITH REH FINAL FORM
+FD2C ; mapped ; 0636 0631 # 1.1 ARABIC LIGATURE DAD WITH REH FINAL FORM
+FD2D ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM
+FD2E ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM
+FD2F ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM
+FD30 ; mapped ; 0634 0645 # 1.1 ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM
+FD31 ; mapped ; 0633 0647 # 1.1 ARABIC LIGATURE SEEN WITH HEH INITIAL FORM
+FD32 ; mapped ; 0634 0647 # 1.1 ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM
+FD33 ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE TAH WITH MEEM INITIAL FORM
+FD34 ; mapped ; 0633 062C # 1.1 ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM
+FD35 ; mapped ; 0633 062D # 1.1 ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM
+FD36 ; mapped ; 0633 062E # 1.1 ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM
+FD37 ; mapped ; 0634 062C # 1.1 ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM
+FD38 ; mapped ; 0634 062D # 1.1 ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM
+FD39 ; mapped ; 0634 062E # 1.1 ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM
+FD3A ; mapped ; 0637 0645 # 1.1 ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM
+FD3B ; mapped ; 0638 0645 # 1.1 ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM
+FD3C..FD3D ; mapped ; 0627 064B # 1.1 ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E..FD3F ; valid ; ; NV8 # 1.1 ORNATE LEFT PARENTHESIS..ORNATE RIGHT PARENTHESIS
+FD40..FD4F ; valid ; ; NV8 # 14.0 ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
+FD50 ; mapped ; 062A 062C 0645 #1.1 ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
+FD51..FD52 ; mapped ; 062A 062D 062C #1.1 ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM..ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM
+FD53 ; mapped ; 062A 062D 0645 #1.1 ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM
+FD54 ; mapped ; 062A 062E 0645 #1.1 ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM
+FD55 ; mapped ; 062A 0645 062C #1.1 ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM
+FD56 ; mapped ; 062A 0645 062D #1.1 ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM
+FD57 ; mapped ; 062A 0645 062E #1.1 ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM
+FD58..FD59 ; mapped ; 062C 0645 062D #1.1 ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM
+FD5A ; mapped ; 062D 0645 064A #1.1 ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM
+FD5B ; mapped ; 062D 0645 0649 #1.1 ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD5C ; mapped ; 0633 062D 062C #1.1 ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM
+FD5D ; mapped ; 0633 062C 062D #1.1 ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM
+FD5E ; mapped ; 0633 062C 0649 #1.1 ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD5F..FD60 ; mapped ; 0633 0645 062D #1.1 ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM
+FD61 ; mapped ; 0633 0645 062C #1.1 ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM
+FD62..FD63 ; mapped ; 0633 0645 0645 #1.1 ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM
+FD64..FD65 ; mapped ; 0635 062D 062D #1.1 ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM..ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM
+FD66 ; mapped ; 0635 0645 0645 #1.1 ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM
+FD67..FD68 ; mapped ; 0634 062D 0645 #1.1 ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM
+FD69 ; mapped ; 0634 062C 064A #1.1 ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM
+FD6A..FD6B ; mapped ; 0634 0645 062E #1.1 ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM
+FD6C..FD6D ; mapped ; 0634 0645 0645 #1.1 ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM
+FD6E ; mapped ; 0636 062D 0649 #1.1 ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD6F..FD70 ; mapped ; 0636 062E 0645 #1.1 ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM
+FD71..FD72 ; mapped ; 0637 0645 062D #1.1 ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM
+FD73 ; mapped ; 0637 0645 0645 #1.1 ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM
+FD74 ; mapped ; 0637 0645 064A #1.1 ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM
+FD75 ; mapped ; 0639 062C 0645 #1.1 ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM
+FD76..FD77 ; mapped ; 0639 0645 0645 #1.1 ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM
+FD78 ; mapped ; 0639 0645 0649 #1.1 ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD79 ; mapped ; 063A 0645 0645 #1.1 ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM
+FD7A ; mapped ; 063A 0645 064A #1.1 ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM
+FD7B ; mapped ; 063A 0645 0649 #1.1 ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD7C..FD7D ; mapped ; 0641 062E 0645 #1.1 ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM
+FD7E ; mapped ; 0642 0645 062D #1.1 ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM
+FD7F ; mapped ; 0642 0645 0645 #1.1 ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM
+FD80 ; mapped ; 0644 062D 0645 #1.1 ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM
+FD81 ; mapped ; 0644 062D 064A #1.1 ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM
+FD82 ; mapped ; 0644 062D 0649 #1.1 ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD83..FD84 ; mapped ; 0644 062C 062C #1.1 ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM..ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM
+FD85..FD86 ; mapped ; 0644 062E 0645 #1.1 ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM..ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM
+FD87..FD88 ; mapped ; 0644 0645 062D #1.1 ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM..ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM
+FD89 ; mapped ; 0645 062D 062C #1.1 ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM
+FD8A ; mapped ; 0645 062D 0645 #1.1 ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM
+FD8B ; mapped ; 0645 062D 064A #1.1 ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM
+FD8C ; mapped ; 0645 062C 062D #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM
+FD8D ; mapped ; 0645 062C 0645 #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM
+FD8E ; mapped ; 0645 062E 062C #1.1 ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM
+FD8F ; mapped ; 0645 062E 0645 #1.1 ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD90..FD91 ; disallowed # NA <reserved-FD90>..<reserved-FD91>
+FD92 ; mapped ; 0645 062C 062E #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
+FD93 ; mapped ; 0647 0645 062C #1.1 ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM
+FD94 ; mapped ; 0647 0645 0645 #1.1 ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM
+FD95 ; mapped ; 0646 062D 0645 #1.1 ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM
+FD96 ; mapped ; 0646 062D 0649 #1.1 ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM
+FD97..FD98 ; mapped ; 0646 062C 0645 #1.1 ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM
+FD99 ; mapped ; 0646 062C 0649 #1.1 ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FD9A ; mapped ; 0646 0645 064A #1.1 ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM
+FD9B ; mapped ; 0646 0645 0649 #1.1 ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FD9C..FD9D ; mapped ; 064A 0645 0645 #1.1 ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM..ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM
+FD9E ; mapped ; 0628 062E 064A #1.1 ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM
+FD9F ; mapped ; 062A 062C 064A #1.1 ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM
+FDA0 ; mapped ; 062A 062C 0649 #1.1 ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM
+FDA1 ; mapped ; 062A 062E 064A #1.1 ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM
+FDA2 ; mapped ; 062A 062E 0649 #1.1 ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA3 ; mapped ; 062A 0645 064A #1.1 ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM
+FDA4 ; mapped ; 062A 0645 0649 #1.1 ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA5 ; mapped ; 062C 0645 064A #1.1 ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM
+FDA6 ; mapped ; 062C 062D 0649 #1.1 ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM
+FDA7 ; mapped ; 062C 0645 0649 #1.1 ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM
+FDA8 ; mapped ; 0633 062E 0649 #1.1 ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM
+FDA9 ; mapped ; 0635 062D 064A #1.1 ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM
+FDAA ; mapped ; 0634 062D 064A #1.1 ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM
+FDAB ; mapped ; 0636 062D 064A #1.1 ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM
+FDAC ; mapped ; 0644 062C 064A #1.1 ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM
+FDAD ; mapped ; 0644 0645 064A #1.1 ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM
+FDAE ; mapped ; 064A 062D 064A #1.1 ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM
+FDAF ; mapped ; 064A 062C 064A #1.1 ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM
+FDB0 ; mapped ; 064A 0645 064A #1.1 ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM
+FDB1 ; mapped ; 0645 0645 064A #1.1 ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM
+FDB2 ; mapped ; 0642 0645 064A #1.1 ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM
+FDB3 ; mapped ; 0646 062D 064A #1.1 ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM
+FDB4 ; mapped ; 0642 0645 062D #1.1 ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM
+FDB5 ; mapped ; 0644 062D 0645 #1.1 ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM
+FDB6 ; mapped ; 0639 0645 064A #1.1 ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM
+FDB7 ; mapped ; 0643 0645 064A #1.1 ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM
+FDB8 ; mapped ; 0646 062C 062D #1.1 ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM
+FDB9 ; mapped ; 0645 062E 064A #1.1 ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM
+FDBA ; mapped ; 0644 062C 0645 #1.1 ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM
+FDBB ; mapped ; 0643 0645 0645 #1.1 ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM
+FDBC ; mapped ; 0644 062C 0645 #1.1 ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM
+FDBD ; mapped ; 0646 062C 062D #1.1 ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM
+FDBE ; mapped ; 062C 062D 064A #1.1 ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM
+FDBF ; mapped ; 062D 062C 064A #1.1 ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM
+FDC0 ; mapped ; 0645 062C 064A #1.1 ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM
+FDC1 ; mapped ; 0641 0645 064A #1.1 ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM
+FDC2 ; mapped ; 0628 062D 064A #1.1 ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM
+FDC3 ; mapped ; 0643 0645 0645 #1.1 ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM
+FDC4 ; mapped ; 0639 062C 0645 #1.1 ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM
+FDC5 ; mapped ; 0635 0645 0645 #1.1 ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM
+FDC6 ; mapped ; 0633 062E 064A #1.1 ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM
+FDC7 ; mapped ; 0646 062C 064A #1.1 ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDC8..FDCE ; disallowed # NA <reserved-FDC8>..<reserved-FDCE>
+FDCF ; valid ; ; NV8 # 14.0 ARABIC LIGATURE SALAAMUHU ALAYNAA
+FDD0..FDEF ; disallowed # 3.1 <noncharacter-FDD0>..<noncharacter-FDEF>
+FDF0 ; mapped ; 0635 0644 06D2 #1.1 ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF1 ; mapped ; 0642 0644 06D2 #1.1 ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM
+FDF2 ; mapped ; 0627 0644 0644 0647 #1.1 ARABIC LIGATURE ALLAH ISOLATED FORM
+FDF3 ; mapped ; 0627 0643 0628 0631 #1.1 ARABIC LIGATURE AKBAR ISOLATED FORM
+FDF4 ; mapped ; 0645 062D 0645 062F #1.1 ARABIC LIGATURE MOHAMMAD ISOLATED FORM
+FDF5 ; mapped ; 0635 0644 0639 0645 #1.1 ARABIC LIGATURE SALAM ISOLATED FORM
+FDF6 ; mapped ; 0631 0633 0648 0644 #1.1 ARABIC LIGATURE RASOUL ISOLATED FORM
+FDF7 ; mapped ; 0639 0644 064A 0647 #1.1 ARABIC LIGATURE ALAYHE ISOLATED FORM
+FDF8 ; mapped ; 0648 0633 0644 0645 #1.1 ARABIC LIGATURE WASALLAM ISOLATED FORM
+FDF9 ; mapped ; 0635 0644 0649 #1.1 ARABIC LIGATURE SALLA ISOLATED FORM
+FDFA ; disallowed_STD3_mapped ; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645 #1.1 ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
+FDFB ; disallowed_STD3_mapped ; 062C 0644 0020 062C 0644 0627 0644 0647 #1.1 ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; mapped ; 0631 06CC 0627 0644 #3.2 RIAL SIGN
+FDFD ; valid ; ; NV8 # 4.0 ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FDFE..FDFF ; valid ; ; NV8 # 14.0 ARABIC LIGATURE SUBHAANAHU WA TAAALAA..ARABIC LIGATURE AZZA WA JALL
+FE00..FE0F ; ignored # 3.2 VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10 ; disallowed_STD3_mapped ; 002C # 4.1 PRESENTATION FORM FOR VERTICAL COMMA
+FE11 ; mapped ; 3001 # 4.1 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
+FE12 ; disallowed # 4.1 PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13 ; disallowed_STD3_mapped ; 003A # 4.1 PRESENTATION FORM FOR VERTICAL COLON
+FE14 ; disallowed_STD3_mapped ; 003B # 4.1 PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15 ; disallowed_STD3_mapped ; 0021 # 4.1 PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
+FE16 ; disallowed_STD3_mapped ; 003F # 4.1 PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; mapped ; 3016 # 4.1 PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; mapped ; 3017 # 4.1 PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; disallowed # 4.1 PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE1A..FE1F ; disallowed # NA <reserved-FE1A>..<reserved-FE1F>
+FE20..FE23 ; valid # 1.1 COMBINING LIGATURE LEFT HALF..COMBINING DOUBLE TILDE RIGHT HALF
+FE24..FE26 ; valid # 5.1 COMBINING MACRON LEFT HALF..COMBINING CONJOINING MACRON
+FE27..FE2D ; valid # 7.0 COMBINING LIGATURE LEFT HALF BELOW..COMBINING CONJOINING MACRON BELOW
+FE2E..FE2F ; valid # 8.0 COMBINING CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+FE30 ; disallowed # 1.1 PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31 ; mapped ; 2014 # 1.1 PRESENTATION FORM FOR VERTICAL EM DASH
+FE32 ; mapped ; 2013 # 1.1 PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; disallowed_STD3_mapped ; 005F # 1.1 PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; disallowed_STD3_mapped ; 0028 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; disallowed_STD3_mapped ; 0029 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; disallowed_STD3_mapped ; 007B # 1.1 PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; disallowed_STD3_mapped ; 007D # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; mapped ; 3014 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; mapped ; 3015 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; mapped ; 3010 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; mapped ; 3011 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; mapped ; 300A # 1.1 PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; mapped ; 300B # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; mapped ; 3008 # 1.1 PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; mapped ; 3009 # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; mapped ; 300C # 1.1 PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; mapped ; 300D # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; mapped ; 300E # 1.1 PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; mapped ; 300F # 1.1 PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46 ; valid ; ; NV8 # 3.2 SESAME DOT..WHITE SESAME DOT
+FE47 ; disallowed_STD3_mapped ; 005B # 4.0 PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; disallowed_STD3_mapped ; 005D # 4.0 PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; disallowed_STD3_mapped ; 0020 0305 # 1.1 DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; disallowed_STD3_mapped ; 005F # 1.1 DASHED LOW LINE..WAVY LOW LINE
+FE50 ; disallowed_STD3_mapped ; 002C # 1.1 SMALL COMMA
+FE51 ; mapped ; 3001 # 1.1 SMALL IDEOGRAPHIC COMMA
+FE52 ; disallowed # 1.1 SMALL FULL STOP
+FE53 ; disallowed # NA <reserved-FE53>
+FE54 ; disallowed_STD3_mapped ; 003B # 1.1 SMALL SEMICOLON
+FE55 ; disallowed_STD3_mapped ; 003A # 1.1 SMALL COLON
+FE56 ; disallowed_STD3_mapped ; 003F # 1.1 SMALL QUESTION MARK
+FE57 ; disallowed_STD3_mapped ; 0021 # 1.1 SMALL EXCLAMATION MARK
+FE58 ; mapped ; 2014 # 1.1 SMALL EM DASH
+FE59 ; disallowed_STD3_mapped ; 0028 # 1.1 SMALL LEFT PARENTHESIS
+FE5A ; disallowed_STD3_mapped ; 0029 # 1.1 SMALL RIGHT PARENTHESIS
+FE5B ; disallowed_STD3_mapped ; 007B # 1.1 SMALL LEFT CURLY BRACKET
+FE5C ; disallowed_STD3_mapped ; 007D # 1.1 SMALL RIGHT CURLY BRACKET
+FE5D ; mapped ; 3014 # 1.1 SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; mapped ; 3015 # 1.1 SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F ; disallowed_STD3_mapped ; 0023 # 1.1 SMALL NUMBER SIGN
+FE60 ; disallowed_STD3_mapped ; 0026 # 1.1 SMALL AMPERSAND
+FE61 ; disallowed_STD3_mapped ; 002A # 1.1 SMALL ASTERISK
+FE62 ; disallowed_STD3_mapped ; 002B # 1.1 SMALL PLUS SIGN
+FE63 ; mapped ; 002D # 1.1 SMALL HYPHEN-MINUS
+FE64 ; disallowed_STD3_mapped ; 003C # 1.1 SMALL LESS-THAN SIGN
+FE65 ; disallowed_STD3_mapped ; 003E # 1.1 SMALL GREATER-THAN SIGN
+FE66 ; disallowed_STD3_mapped ; 003D # 1.1 SMALL EQUALS SIGN
+FE67 ; disallowed # NA <reserved-FE67>
+FE68 ; disallowed_STD3_mapped ; 005C # 1.1 SMALL REVERSE SOLIDUS
+FE69 ; disallowed_STD3_mapped ; 0024 # 1.1 SMALL DOLLAR SIGN
+FE6A ; disallowed_STD3_mapped ; 0025 # 1.1 SMALL PERCENT SIGN
+FE6B ; disallowed_STD3_mapped ; 0040 # 1.1 SMALL COMMERCIAL AT
+FE6C..FE6F ; disallowed # NA <reserved-FE6C>..<reserved-FE6F>
+FE70 ; disallowed_STD3_mapped ; 0020 064B # 1.1 ARABIC FATHATAN ISOLATED FORM
+FE71 ; mapped ; 0640 064B # 1.1 ARABIC TATWEEL WITH FATHATAN ABOVE
+FE72 ; disallowed_STD3_mapped ; 0020 064C # 1.1 ARABIC DAMMATAN ISOLATED FORM
+FE73 ; valid # 3.2 ARABIC TAIL FRAGMENT
+FE74 ; disallowed_STD3_mapped ; 0020 064D # 1.1 ARABIC KASRATAN ISOLATED FORM
+FE75 ; disallowed # NA <reserved-FE75>
+FE76 ; disallowed_STD3_mapped ; 0020 064E # 1.1 ARABIC FATHA ISOLATED FORM
+FE77 ; mapped ; 0640 064E # 1.1 ARABIC FATHA MEDIAL FORM
+FE78 ; disallowed_STD3_mapped ; 0020 064F # 1.1 ARABIC DAMMA ISOLATED FORM
+FE79 ; mapped ; 0640 064F # 1.1 ARABIC DAMMA MEDIAL FORM
+FE7A ; disallowed_STD3_mapped ; 0020 0650 # 1.1 ARABIC KASRA ISOLATED FORM
+FE7B ; mapped ; 0640 0650 # 1.1 ARABIC KASRA MEDIAL FORM
+FE7C ; disallowed_STD3_mapped ; 0020 0651 # 1.1 ARABIC SHADDA ISOLATED FORM
+FE7D ; mapped ; 0640 0651 # 1.1 ARABIC SHADDA MEDIAL FORM
+FE7E ; disallowed_STD3_mapped ; 0020 0652 # 1.1 ARABIC SUKUN ISOLATED FORM
+FE7F ; mapped ; 0640 0652 # 1.1 ARABIC SUKUN MEDIAL FORM
+FE80 ; mapped ; 0621 # 1.1 ARABIC LETTER HAMZA ISOLATED FORM
+FE81..FE82 ; mapped ; 0622 # 1.1 ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM
+FE83..FE84 ; mapped ; 0623 # 1.1 ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM
+FE85..FE86 ; mapped ; 0624 # 1.1 ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM
+FE87..FE88 ; mapped ; 0625 # 1.1 ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM
+FE89..FE8C ; mapped ; 0626 # 1.1 ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM..ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM
+FE8D..FE8E ; mapped ; 0627 # 1.1 ARABIC LETTER ALEF ISOLATED FORM..ARABIC LETTER ALEF FINAL FORM
+FE8F..FE92 ; mapped ; 0628 # 1.1 ARABIC LETTER BEH ISOLATED FORM..ARABIC LETTER BEH MEDIAL FORM
+FE93..FE94 ; mapped ; 0629 # 1.1 ARABIC LETTER TEH MARBUTA ISOLATED FORM..ARABIC LETTER TEH MARBUTA FINAL FORM
+FE95..FE98 ; mapped ; 062A # 1.1 ARABIC LETTER TEH ISOLATED FORM..ARABIC LETTER TEH MEDIAL FORM
+FE99..FE9C ; mapped ; 062B # 1.1 ARABIC LETTER THEH ISOLATED FORM..ARABIC LETTER THEH MEDIAL FORM
+FE9D..FEA0 ; mapped ; 062C # 1.1 ARABIC LETTER JEEM ISOLATED FORM..ARABIC LETTER JEEM MEDIAL FORM
+FEA1..FEA4 ; mapped ; 062D # 1.1 ARABIC LETTER HAH ISOLATED FORM..ARABIC LETTER HAH MEDIAL FORM
+FEA5..FEA8 ; mapped ; 062E # 1.1 ARABIC LETTER KHAH ISOLATED FORM..ARABIC LETTER KHAH MEDIAL FORM
+FEA9..FEAA ; mapped ; 062F # 1.1 ARABIC LETTER DAL ISOLATED FORM..ARABIC LETTER DAL FINAL FORM
+FEAB..FEAC ; mapped ; 0630 # 1.1 ARABIC LETTER THAL ISOLATED FORM..ARABIC LETTER THAL FINAL FORM
+FEAD..FEAE ; mapped ; 0631 # 1.1 ARABIC LETTER REH ISOLATED FORM..ARABIC LETTER REH FINAL FORM
+FEAF..FEB0 ; mapped ; 0632 # 1.1 ARABIC LETTER ZAIN ISOLATED FORM..ARABIC LETTER ZAIN FINAL FORM
+FEB1..FEB4 ; mapped ; 0633 # 1.1 ARABIC LETTER SEEN ISOLATED FORM..ARABIC LETTER SEEN MEDIAL FORM
+FEB5..FEB8 ; mapped ; 0634 # 1.1 ARABIC LETTER SHEEN ISOLATED FORM..ARABIC LETTER SHEEN MEDIAL FORM
+FEB9..FEBC ; mapped ; 0635 # 1.1 ARABIC LETTER SAD ISOLATED FORM..ARABIC LETTER SAD MEDIAL FORM
+FEBD..FEC0 ; mapped ; 0636 # 1.1 ARABIC LETTER DAD ISOLATED FORM..ARABIC LETTER DAD MEDIAL FORM
+FEC1..FEC4 ; mapped ; 0637 # 1.1 ARABIC LETTER TAH ISOLATED FORM..ARABIC LETTER TAH MEDIAL FORM
+FEC5..FEC8 ; mapped ; 0638 # 1.1 ARABIC LETTER ZAH ISOLATED FORM..ARABIC LETTER ZAH MEDIAL FORM
+FEC9..FECC ; mapped ; 0639 # 1.1 ARABIC LETTER AIN ISOLATED FORM..ARABIC LETTER AIN MEDIAL FORM
+FECD..FED0 ; mapped ; 063A # 1.1 ARABIC LETTER GHAIN ISOLATED FORM..ARABIC LETTER GHAIN MEDIAL FORM
+FED1..FED4 ; mapped ; 0641 # 1.1 ARABIC LETTER FEH ISOLATED FORM..ARABIC LETTER FEH MEDIAL FORM
+FED5..FED8 ; mapped ; 0642 # 1.1 ARABIC LETTER QAF ISOLATED FORM..ARABIC LETTER QAF MEDIAL FORM
+FED9..FEDC ; mapped ; 0643 # 1.1 ARABIC LETTER KAF ISOLATED FORM..ARABIC LETTER KAF MEDIAL FORM
+FEDD..FEE0 ; mapped ; 0644 # 1.1 ARABIC LETTER LAM ISOLATED FORM..ARABIC LETTER LAM MEDIAL FORM
+FEE1..FEE4 ; mapped ; 0645 # 1.1 ARABIC LETTER MEEM ISOLATED FORM..ARABIC LETTER MEEM MEDIAL FORM
+FEE5..FEE8 ; mapped ; 0646 # 1.1 ARABIC LETTER NOON ISOLATED FORM..ARABIC LETTER NOON MEDIAL FORM
+FEE9..FEEC ; mapped ; 0647 # 1.1 ARABIC LETTER HEH ISOLATED FORM..ARABIC LETTER HEH MEDIAL FORM
+FEED..FEEE ; mapped ; 0648 # 1.1 ARABIC LETTER WAW ISOLATED FORM..ARABIC LETTER WAW FINAL FORM
+FEEF..FEF0 ; mapped ; 0649 # 1.1 ARABIC LETTER ALEF MAKSURA ISOLATED FORM..ARABIC LETTER ALEF MAKSURA FINAL FORM
+FEF1..FEF4 ; mapped ; 064A # 1.1 ARABIC LETTER YEH ISOLATED FORM..ARABIC LETTER YEH MEDIAL FORM
+FEF5..FEF6 ; mapped ; 0644 0622 # 1.1 ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM
+FEF7..FEF8 ; mapped ; 0644 0623 # 1.1 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM
+FEF9..FEFA ; mapped ; 0644 0625 # 1.1 ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM
+FEFB..FEFC ; mapped ; 0644 0627 # 1.1 ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFD..FEFE ; disallowed # NA <reserved-FEFD>..<reserved-FEFE>
+FEFF ; ignored # 1.1 ZERO WIDTH NO-BREAK SPACE
+FF00 ; disallowed # NA <reserved-FF00>
+FF01 ; disallowed_STD3_mapped ; 0021 # 1.1 FULLWIDTH EXCLAMATION MARK
+FF02 ; disallowed_STD3_mapped ; 0022 # 1.1 FULLWIDTH QUOTATION MARK
+FF03 ; disallowed_STD3_mapped ; 0023 # 1.1 FULLWIDTH NUMBER SIGN
+FF04 ; disallowed_STD3_mapped ; 0024 # 1.1 FULLWIDTH DOLLAR SIGN
+FF05 ; disallowed_STD3_mapped ; 0025 # 1.1 FULLWIDTH PERCENT SIGN
+FF06 ; disallowed_STD3_mapped ; 0026 # 1.1 FULLWIDTH AMPERSAND
+FF07 ; disallowed_STD3_mapped ; 0027 # 1.1 FULLWIDTH APOSTROPHE
+FF08 ; disallowed_STD3_mapped ; 0028 # 1.1 FULLWIDTH LEFT PARENTHESIS
+FF09 ; disallowed_STD3_mapped ; 0029 # 1.1 FULLWIDTH RIGHT PARENTHESIS
+FF0A ; disallowed_STD3_mapped ; 002A # 1.1 FULLWIDTH ASTERISK
+FF0B ; disallowed_STD3_mapped ; 002B # 1.1 FULLWIDTH PLUS SIGN
+FF0C ; disallowed_STD3_mapped ; 002C # 1.1 FULLWIDTH COMMA
+FF0D ; mapped ; 002D # 1.1 FULLWIDTH HYPHEN-MINUS
+FF0E ; mapped ; 002E # 1.1 FULLWIDTH FULL STOP
+FF0F ; disallowed_STD3_mapped ; 002F # 1.1 FULLWIDTH SOLIDUS
+FF10 ; mapped ; 0030 # 1.1 FULLWIDTH DIGIT ZERO
+FF11 ; mapped ; 0031 # 1.1 FULLWIDTH DIGIT ONE
+FF12 ; mapped ; 0032 # 1.1 FULLWIDTH DIGIT TWO
+FF13 ; mapped ; 0033 # 1.1 FULLWIDTH DIGIT THREE
+FF14 ; mapped ; 0034 # 1.1 FULLWIDTH DIGIT FOUR
+FF15 ; mapped ; 0035 # 1.1 FULLWIDTH DIGIT FIVE
+FF16 ; mapped ; 0036 # 1.1 FULLWIDTH DIGIT SIX
+FF17 ; mapped ; 0037 # 1.1 FULLWIDTH DIGIT SEVEN
+FF18 ; mapped ; 0038 # 1.1 FULLWIDTH DIGIT EIGHT
+FF19 ; mapped ; 0039 # 1.1 FULLWIDTH DIGIT NINE
+FF1A ; disallowed_STD3_mapped ; 003A # 1.1 FULLWIDTH COLON
+FF1B ; disallowed_STD3_mapped ; 003B # 1.1 FULLWIDTH SEMICOLON
+FF1C ; disallowed_STD3_mapped ; 003C # 1.1 FULLWIDTH LESS-THAN SIGN
+FF1D ; disallowed_STD3_mapped ; 003D # 1.1 FULLWIDTH EQUALS SIGN
+FF1E ; disallowed_STD3_mapped ; 003E # 1.1 FULLWIDTH GREATER-THAN SIGN
+FF1F ; disallowed_STD3_mapped ; 003F # 1.1 FULLWIDTH QUESTION MARK
+FF20 ; disallowed_STD3_mapped ; 0040 # 1.1 FULLWIDTH COMMERCIAL AT
+FF21 ; mapped ; 0061 # 1.1 FULLWIDTH LATIN CAPITAL LETTER A
+FF22 ; mapped ; 0062 # 1.1 FULLWIDTH LATIN CAPITAL LETTER B
+FF23 ; mapped ; 0063 # 1.1 FULLWIDTH LATIN CAPITAL LETTER C
+FF24 ; mapped ; 0064 # 1.1 FULLWIDTH LATIN CAPITAL LETTER D
+FF25 ; mapped ; 0065 # 1.1 FULLWIDTH LATIN CAPITAL LETTER E
+FF26 ; mapped ; 0066 # 1.1 FULLWIDTH LATIN CAPITAL LETTER F
+FF27 ; mapped ; 0067 # 1.1 FULLWIDTH LATIN CAPITAL LETTER G
+FF28 ; mapped ; 0068 # 1.1 FULLWIDTH LATIN CAPITAL LETTER H
+FF29 ; mapped ; 0069 # 1.1 FULLWIDTH LATIN CAPITAL LETTER I
+FF2A ; mapped ; 006A # 1.1 FULLWIDTH LATIN CAPITAL LETTER J
+FF2B ; mapped ; 006B # 1.1 FULLWIDTH LATIN CAPITAL LETTER K
+FF2C ; mapped ; 006C # 1.1 FULLWIDTH LATIN CAPITAL LETTER L
+FF2D ; mapped ; 006D # 1.1 FULLWIDTH LATIN CAPITAL LETTER M
+FF2E ; mapped ; 006E # 1.1 FULLWIDTH LATIN CAPITAL LETTER N
+FF2F ; mapped ; 006F # 1.1 FULLWIDTH LATIN CAPITAL LETTER O
+FF30 ; mapped ; 0070 # 1.1 FULLWIDTH LATIN CAPITAL LETTER P
+FF31 ; mapped ; 0071 # 1.1 FULLWIDTH LATIN CAPITAL LETTER Q
+FF32 ; mapped ; 0072 # 1.1 FULLWIDTH LATIN CAPITAL LETTER R
+FF33 ; mapped ; 0073 # 1.1 FULLWIDTH LATIN CAPITAL LETTER S
+FF34 ; mapped ; 0074 # 1.1 FULLWIDTH LATIN CAPITAL LETTER T
+FF35 ; mapped ; 0075 # 1.1 FULLWIDTH LATIN CAPITAL LETTER U
+FF36 ; mapped ; 0076 # 1.1 FULLWIDTH LATIN CAPITAL LETTER V
+FF37 ; mapped ; 0077 # 1.1 FULLWIDTH LATIN CAPITAL LETTER W
+FF38 ; mapped ; 0078 # 1.1 FULLWIDTH LATIN CAPITAL LETTER X
+FF39 ; mapped ; 0079 # 1.1 FULLWIDTH LATIN CAPITAL LETTER Y
+FF3A ; mapped ; 007A # 1.1 FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; disallowed_STD3_mapped ; 005B # 1.1 FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; disallowed_STD3_mapped ; 005C # 1.1 FULLWIDTH REVERSE SOLIDUS
+FF3D ; disallowed_STD3_mapped ; 005D # 1.1 FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; disallowed_STD3_mapped ; 005E # 1.1 FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; disallowed_STD3_mapped ; 005F # 1.1 FULLWIDTH LOW LINE
+FF40 ; disallowed_STD3_mapped ; 0060 # 1.1 FULLWIDTH GRAVE ACCENT
+FF41 ; mapped ; 0061 # 1.1 FULLWIDTH LATIN SMALL LETTER A
+FF42 ; mapped ; 0062 # 1.1 FULLWIDTH LATIN SMALL LETTER B
+FF43 ; mapped ; 0063 # 1.1 FULLWIDTH LATIN SMALL LETTER C
+FF44 ; mapped ; 0064 # 1.1 FULLWIDTH LATIN SMALL LETTER D
+FF45 ; mapped ; 0065 # 1.1 FULLWIDTH LATIN SMALL LETTER E
+FF46 ; mapped ; 0066 # 1.1 FULLWIDTH LATIN SMALL LETTER F
+FF47 ; mapped ; 0067 # 1.1 FULLWIDTH LATIN SMALL LETTER G
+FF48 ; mapped ; 0068 # 1.1 FULLWIDTH LATIN SMALL LETTER H
+FF49 ; mapped ; 0069 # 1.1 FULLWIDTH LATIN SMALL LETTER I
+FF4A ; mapped ; 006A # 1.1 FULLWIDTH LATIN SMALL LETTER J
+FF4B ; mapped ; 006B # 1.1 FULLWIDTH LATIN SMALL LETTER K
+FF4C ; mapped ; 006C # 1.1 FULLWIDTH LATIN SMALL LETTER L
+FF4D ; mapped ; 006D # 1.1 FULLWIDTH LATIN SMALL LETTER M
+FF4E ; mapped ; 006E # 1.1 FULLWIDTH LATIN SMALL LETTER N
+FF4F ; mapped ; 006F # 1.1 FULLWIDTH LATIN SMALL LETTER O
+FF50 ; mapped ; 0070 # 1.1 FULLWIDTH LATIN SMALL LETTER P
+FF51 ; mapped ; 0071 # 1.1 FULLWIDTH LATIN SMALL LETTER Q
+FF52 ; mapped ; 0072 # 1.1 FULLWIDTH LATIN SMALL LETTER R
+FF53 ; mapped ; 0073 # 1.1 FULLWIDTH LATIN SMALL LETTER S
+FF54 ; mapped ; 0074 # 1.1 FULLWIDTH LATIN SMALL LETTER T
+FF55 ; mapped ; 0075 # 1.1 FULLWIDTH LATIN SMALL LETTER U
+FF56 ; mapped ; 0076 # 1.1 FULLWIDTH LATIN SMALL LETTER V
+FF57 ; mapped ; 0077 # 1.1 FULLWIDTH LATIN SMALL LETTER W
+FF58 ; mapped ; 0078 # 1.1 FULLWIDTH LATIN SMALL LETTER X
+FF59 ; mapped ; 0079 # 1.1 FULLWIDTH LATIN SMALL LETTER Y
+FF5A ; mapped ; 007A # 1.1 FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; disallowed_STD3_mapped ; 007B # 1.1 FULLWIDTH LEFT CURLY BRACKET
+FF5C ; disallowed_STD3_mapped ; 007C # 1.1 FULLWIDTH VERTICAL LINE
+FF5D ; disallowed_STD3_mapped ; 007D # 1.1 FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; disallowed_STD3_mapped ; 007E # 1.1 FULLWIDTH TILDE
+FF5F ; mapped ; 2985 # 3.2 FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; mapped ; 2986 # 3.2 FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; mapped ; 002E # 1.1 HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; mapped ; 300C # 1.1 HALFWIDTH LEFT CORNER BRACKET
+FF63 ; mapped ; 300D # 1.1 HALFWIDTH RIGHT CORNER BRACKET
+FF64 ; mapped ; 3001 # 1.1 HALFWIDTH IDEOGRAPHIC COMMA
+FF65 ; mapped ; 30FB # 1.1 HALFWIDTH KATAKANA MIDDLE DOT
+FF66 ; mapped ; 30F2 # 1.1 HALFWIDTH KATAKANA LETTER WO
+FF67 ; mapped ; 30A1 # 1.1 HALFWIDTH KATAKANA LETTER SMALL A
+FF68 ; mapped ; 30A3 # 1.1 HALFWIDTH KATAKANA LETTER SMALL I
+FF69 ; mapped ; 30A5 # 1.1 HALFWIDTH KATAKANA LETTER SMALL U
+FF6A ; mapped ; 30A7 # 1.1 HALFWIDTH KATAKANA LETTER SMALL E
+FF6B ; mapped ; 30A9 # 1.1 HALFWIDTH KATAKANA LETTER SMALL O
+FF6C ; mapped ; 30E3 # 1.1 HALFWIDTH KATAKANA LETTER SMALL YA
+FF6D ; mapped ; 30E5 # 1.1 HALFWIDTH KATAKANA LETTER SMALL YU
+FF6E ; mapped ; 30E7 # 1.1 HALFWIDTH KATAKANA LETTER SMALL YO
+FF6F ; mapped ; 30C3 # 1.1 HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; mapped ; 30FC # 1.1 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71 ; mapped ; 30A2 # 1.1 HALFWIDTH KATAKANA LETTER A
+FF72 ; mapped ; 30A4 # 1.1 HALFWIDTH KATAKANA LETTER I
+FF73 ; mapped ; 30A6 # 1.1 HALFWIDTH KATAKANA LETTER U
+FF74 ; mapped ; 30A8 # 1.1 HALFWIDTH KATAKANA LETTER E
+FF75 ; mapped ; 30AA # 1.1 HALFWIDTH KATAKANA LETTER O
+FF76 ; mapped ; 30AB # 1.1 HALFWIDTH KATAKANA LETTER KA
+FF77 ; mapped ; 30AD # 1.1 HALFWIDTH KATAKANA LETTER KI
+FF78 ; mapped ; 30AF # 1.1 HALFWIDTH KATAKANA LETTER KU
+FF79 ; mapped ; 30B1 # 1.1 HALFWIDTH KATAKANA LETTER KE
+FF7A ; mapped ; 30B3 # 1.1 HALFWIDTH KATAKANA LETTER KO
+FF7B ; mapped ; 30B5 # 1.1 HALFWIDTH KATAKANA LETTER SA
+FF7C ; mapped ; 30B7 # 1.1 HALFWIDTH KATAKANA LETTER SI
+FF7D ; mapped ; 30B9 # 1.1 HALFWIDTH KATAKANA LETTER SU
+FF7E ; mapped ; 30BB # 1.1 HALFWIDTH KATAKANA LETTER SE
+FF7F ; mapped ; 30BD # 1.1 HALFWIDTH KATAKANA LETTER SO
+FF80 ; mapped ; 30BF # 1.1 HALFWIDTH KATAKANA LETTER TA
+FF81 ; mapped ; 30C1 # 1.1 HALFWIDTH KATAKANA LETTER TI
+FF82 ; mapped ; 30C4 # 1.1 HALFWIDTH KATAKANA LETTER TU
+FF83 ; mapped ; 30C6 # 1.1 HALFWIDTH KATAKANA LETTER TE
+FF84 ; mapped ; 30C8 # 1.1 HALFWIDTH KATAKANA LETTER TO
+FF85 ; mapped ; 30CA # 1.1 HALFWIDTH KATAKANA LETTER NA
+FF86 ; mapped ; 30CB # 1.1 HALFWIDTH KATAKANA LETTER NI
+FF87 ; mapped ; 30CC # 1.1 HALFWIDTH KATAKANA LETTER NU
+FF88 ; mapped ; 30CD # 1.1 HALFWIDTH KATAKANA LETTER NE
+FF89 ; mapped ; 30CE # 1.1 HALFWIDTH KATAKANA LETTER NO
+FF8A ; mapped ; 30CF # 1.1 HALFWIDTH KATAKANA LETTER HA
+FF8B ; mapped ; 30D2 # 1.1 HALFWIDTH KATAKANA LETTER HI
+FF8C ; mapped ; 30D5 # 1.1 HALFWIDTH KATAKANA LETTER HU
+FF8D ; mapped ; 30D8 # 1.1 HALFWIDTH KATAKANA LETTER HE
+FF8E ; mapped ; 30DB # 1.1 HALFWIDTH KATAKANA LETTER HO
+FF8F ; mapped ; 30DE # 1.1 HALFWIDTH KATAKANA LETTER MA
+FF90 ; mapped ; 30DF # 1.1 HALFWIDTH KATAKANA LETTER MI
+FF91 ; mapped ; 30E0 # 1.1 HALFWIDTH KATAKANA LETTER MU
+FF92 ; mapped ; 30E1 # 1.1 HALFWIDTH KATAKANA LETTER ME
+FF93 ; mapped ; 30E2 # 1.1 HALFWIDTH KATAKANA LETTER MO
+FF94 ; mapped ; 30E4 # 1.1 HALFWIDTH KATAKANA LETTER YA
+FF95 ; mapped ; 30E6 # 1.1 HALFWIDTH KATAKANA LETTER YU
+FF96 ; mapped ; 30E8 # 1.1 HALFWIDTH KATAKANA LETTER YO
+FF97 ; mapped ; 30E9 # 1.1 HALFWIDTH KATAKANA LETTER RA
+FF98 ; mapped ; 30EA # 1.1 HALFWIDTH KATAKANA LETTER RI
+FF99 ; mapped ; 30EB # 1.1 HALFWIDTH KATAKANA LETTER RU
+FF9A ; mapped ; 30EC # 1.1 HALFWIDTH KATAKANA LETTER RE
+FF9B ; mapped ; 30ED # 1.1 HALFWIDTH KATAKANA LETTER RO
+FF9C ; mapped ; 30EF # 1.1 HALFWIDTH KATAKANA LETTER WA
+FF9D ; mapped ; 30F3 # 1.1 HALFWIDTH KATAKANA LETTER N
+FF9E ; mapped ; 3099 # 1.1 HALFWIDTH KATAKANA VOICED SOUND MARK
+FF9F ; mapped ; 309A # 1.1 HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0 ; disallowed # 1.1 HALFWIDTH HANGUL FILLER
+FFA1 ; mapped ; 1100 # 1.1 HALFWIDTH HANGUL LETTER KIYEOK
+FFA2 ; mapped ; 1101 # 1.1 HALFWIDTH HANGUL LETTER SSANGKIYEOK
+FFA3 ; mapped ; 11AA # 1.1 HALFWIDTH HANGUL LETTER KIYEOK-SIOS
+FFA4 ; mapped ; 1102 # 1.1 HALFWIDTH HANGUL LETTER NIEUN
+FFA5 ; mapped ; 11AC # 1.1 HALFWIDTH HANGUL LETTER NIEUN-CIEUC
+FFA6 ; mapped ; 11AD # 1.1 HALFWIDTH HANGUL LETTER NIEUN-HIEUH
+FFA7 ; mapped ; 1103 # 1.1 HALFWIDTH HANGUL LETTER TIKEUT
+FFA8 ; mapped ; 1104 # 1.1 HALFWIDTH HANGUL LETTER SSANGTIKEUT
+FFA9 ; mapped ; 1105 # 1.1 HALFWIDTH HANGUL LETTER RIEUL
+FFAA ; mapped ; 11B0 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-KIYEOK
+FFAB ; mapped ; 11B1 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-MIEUM
+FFAC ; mapped ; 11B2 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-PIEUP
+FFAD ; mapped ; 11B3 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-SIOS
+FFAE ; mapped ; 11B4 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-THIEUTH
+FFAF ; mapped ; 11B5 # 1.1 HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH
+FFB0 ; mapped ; 111A # 1.1 HALFWIDTH HANGUL LETTER RIEUL-HIEUH
+FFB1 ; mapped ; 1106 # 1.1 HALFWIDTH HANGUL LETTER MIEUM
+FFB2 ; mapped ; 1107 # 1.1 HALFWIDTH HANGUL LETTER PIEUP
+FFB3 ; mapped ; 1108 # 1.1 HALFWIDTH HANGUL LETTER SSANGPIEUP
+FFB4 ; mapped ; 1121 # 1.1 HALFWIDTH HANGUL LETTER PIEUP-SIOS
+FFB5 ; mapped ; 1109 # 1.1 HALFWIDTH HANGUL LETTER SIOS
+FFB6 ; mapped ; 110A # 1.1 HALFWIDTH HANGUL LETTER SSANGSIOS
+FFB7 ; mapped ; 110B # 1.1 HALFWIDTH HANGUL LETTER IEUNG
+FFB8 ; mapped ; 110C # 1.1 HALFWIDTH HANGUL LETTER CIEUC
+FFB9 ; mapped ; 110D # 1.1 HALFWIDTH HANGUL LETTER SSANGCIEUC
+FFBA ; mapped ; 110E # 1.1 HALFWIDTH HANGUL LETTER CHIEUCH
+FFBB ; mapped ; 110F # 1.1 HALFWIDTH HANGUL LETTER KHIEUKH
+FFBC ; mapped ; 1110 # 1.1 HALFWIDTH HANGUL LETTER THIEUTH
+FFBD ; mapped ; 1111 # 1.1 HALFWIDTH HANGUL LETTER PHIEUPH
+FFBE ; mapped ; 1112 # 1.1 HALFWIDTH HANGUL LETTER HIEUH
+FFBF..FFC1 ; disallowed # NA <reserved-FFBF>..<reserved-FFC1>
+FFC2 ; mapped ; 1161 # 1.1 HALFWIDTH HANGUL LETTER A
+FFC3 ; mapped ; 1162 # 1.1 HALFWIDTH HANGUL LETTER AE
+FFC4 ; mapped ; 1163 # 1.1 HALFWIDTH HANGUL LETTER YA
+FFC5 ; mapped ; 1164 # 1.1 HALFWIDTH HANGUL LETTER YAE
+FFC6 ; mapped ; 1165 # 1.1 HALFWIDTH HANGUL LETTER EO
+FFC7 ; mapped ; 1166 # 1.1 HALFWIDTH HANGUL LETTER E
+FFC8..FFC9 ; disallowed # NA <reserved-FFC8>..<reserved-FFC9>
+FFCA ; mapped ; 1167 # 1.1 HALFWIDTH HANGUL LETTER YEO
+FFCB ; mapped ; 1168 # 1.1 HALFWIDTH HANGUL LETTER YE
+FFCC ; mapped ; 1169 # 1.1 HALFWIDTH HANGUL LETTER O
+FFCD ; mapped ; 116A # 1.1 HALFWIDTH HANGUL LETTER WA
+FFCE ; mapped ; 116B # 1.1 HALFWIDTH HANGUL LETTER WAE
+FFCF ; mapped ; 116C # 1.1 HALFWIDTH HANGUL LETTER OE
+FFD0..FFD1 ; disallowed # NA <reserved-FFD0>..<reserved-FFD1>
+FFD2 ; mapped ; 116D # 1.1 HALFWIDTH HANGUL LETTER YO
+FFD3 ; mapped ; 116E # 1.1 HALFWIDTH HANGUL LETTER U
+FFD4 ; mapped ; 116F # 1.1 HALFWIDTH HANGUL LETTER WEO
+FFD5 ; mapped ; 1170 # 1.1 HALFWIDTH HANGUL LETTER WE
+FFD6 ; mapped ; 1171 # 1.1 HALFWIDTH HANGUL LETTER WI
+FFD7 ; mapped ; 1172 # 1.1 HALFWIDTH HANGUL LETTER YU
+FFD8..FFD9 ; disallowed # NA <reserved-FFD8>..<reserved-FFD9>
+FFDA ; mapped ; 1173 # 1.1 HALFWIDTH HANGUL LETTER EU
+FFDB ; mapped ; 1174 # 1.1 HALFWIDTH HANGUL LETTER YI
+FFDC ; mapped ; 1175 # 1.1 HALFWIDTH HANGUL LETTER I
+FFDD..FFDF ; disallowed # NA <reserved-FFDD>..<reserved-FFDF>
+FFE0 ; mapped ; 00A2 # 1.1 FULLWIDTH CENT SIGN
+FFE1 ; mapped ; 00A3 # 1.1 FULLWIDTH POUND SIGN
+FFE2 ; mapped ; 00AC # 1.1 FULLWIDTH NOT SIGN
+FFE3 ; disallowed_STD3_mapped ; 0020 0304 # 1.1 FULLWIDTH MACRON
+FFE4 ; mapped ; 00A6 # 1.1 FULLWIDTH BROKEN BAR
+FFE5 ; mapped ; 00A5 # 1.1 FULLWIDTH YEN SIGN
+FFE6 ; mapped ; 20A9 # 1.1 FULLWIDTH WON SIGN
+FFE7 ; disallowed # NA <reserved-FFE7>
+FFE8 ; mapped ; 2502 # 1.1 HALFWIDTH FORMS LIGHT VERTICAL
+FFE9 ; mapped ; 2190 # 1.1 HALFWIDTH LEFTWARDS ARROW
+FFEA ; mapped ; 2191 # 1.1 HALFWIDTH UPWARDS ARROW
+FFEB ; mapped ; 2192 # 1.1 HALFWIDTH RIGHTWARDS ARROW
+FFEC ; mapped ; 2193 # 1.1 HALFWIDTH DOWNWARDS ARROW
+FFED ; mapped ; 25A0 # 1.1 HALFWIDTH BLACK SQUARE
+FFEE ; mapped ; 25CB # 1.1 HALFWIDTH WHITE CIRCLE
+FFEF..FFF8 ; disallowed # NA <reserved-FFEF>..<reserved-FFF8>
+FFF9..FFFB ; disallowed # 3.0 INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC ; disallowed # 2.1 OBJECT REPLACEMENT CHARACTER
+FFFD ; disallowed # 1.1 REPLACEMENT CHARACTER
+FFFE..FFFF ; disallowed # 1.1 <noncharacter-FFFE>..<noncharacter-FFFF>
+10000..1000B ; valid # 4.0 LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000C ; disallowed # NA <reserved-1000C>
+1000D..10026 ; valid # 4.0 LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10027 ; disallowed # NA <reserved-10027>
+10028..1003A ; valid # 4.0 LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003B ; disallowed # NA <reserved-1003B>
+1003C..1003D ; valid # 4.0 LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003E ; disallowed # NA <reserved-1003E>
+1003F..1004D ; valid # 4.0 LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+1004E..1004F ; disallowed # NA <reserved-1004E>..<reserved-1004F>
+10050..1005D ; valid # 4.0 LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+1005E..1007F ; disallowed # NA <reserved-1005E>..<reserved-1007F>
+10080..100FA ; valid # 4.0 LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+100FB..100FF ; disallowed # NA <reserved-100FB>..<reserved-100FF>
+10100..10102 ; valid ; ; NV8 # 4.0 AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10103..10106 ; disallowed # NA <reserved-10103>..<reserved-10106>
+10107..10133 ; valid ; ; NV8 # 4.0 AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10134..10136 ; disallowed # NA <reserved-10134>..<reserved-10136>
+10137..1013F ; valid ; ; NV8 # 4.0 AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..1018A ; valid ; ; NV8 # 4.1 GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ZERO SIGN
+1018B..1018C ; valid ; ; NV8 # 7.0 GREEK ONE QUARTER SIGN..GREEK SINUSOID SIGN
+1018D..1018E ; valid ; ; NV8 # 9.0 GREEK INDICTION SIGN..NOMISMA SIGN
+1018F ; disallowed # NA <reserved-1018F>
+10190..1019B ; valid ; ; NV8 # 5.1 ROMAN SEXTANS SIGN..ROMAN CENTURIAL SIGN
+1019C ; valid ; ; NV8 # 13.0 ASCIA SYMBOL
+1019D..1019F ; disallowed # NA <reserved-1019D>..<reserved-1019F>
+101A0 ; valid ; ; NV8 # 7.0 GREEK SYMBOL TAU RHO
+101A1..101CF ; disallowed # NA <reserved-101A1>..<reserved-101CF>
+101D0..101FC ; valid ; ; NV8 # 5.1 PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD ; valid # 5.1 PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+101FE..1027F ; disallowed # NA <reserved-101FE>..<reserved-1027F>
+10280..1029C ; valid # 5.1 LYCIAN LETTER A..LYCIAN LETTER X
+1029D..1029F ; disallowed # NA <reserved-1029D>..<reserved-1029F>
+102A0..102D0 ; valid # 5.1 CARIAN LETTER A..CARIAN LETTER UUU3
+102D1..102DF ; disallowed # NA <reserved-102D1>..<reserved-102DF>
+102E0 ; valid # 7.0 COPTIC EPACT THOUSANDS MARK
+102E1..102FB ; valid ; ; NV8 # 7.0 COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+102FC..102FF ; disallowed # NA <reserved-102FC>..<reserved-102FF>
+10300..1031E ; valid # 3.1 OLD ITALIC LETTER A..OLD ITALIC LETTER UU
+1031F ; valid # 7.0 OLD ITALIC LETTER ESS
+10320..10323 ; valid ; ; NV8 # 3.1 OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+10324..1032C ; disallowed # NA <reserved-10324>..<reserved-1032C>
+1032D..1032F ; valid # 10.0 OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE
+10330..10340 ; valid # 3.1 GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; valid ; ; NV8 # 3.1 GOTHIC LETTER NINETY
+10342..10349 ; valid # 3.1 GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A ; valid ; ; NV8 # 3.1 GOTHIC LETTER NINE HUNDRED
+1034B..1034F ; disallowed # NA <reserved-1034B>..<reserved-1034F>
+10350..1037A ; valid # 7.0 OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+1037B..1037F ; disallowed # NA <reserved-1037B>..<reserved-1037F>
+10380..1039D ; valid # 4.0 UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039E ; disallowed # NA <reserved-1039E>
+1039F ; valid ; ; NV8 # 4.0 UGARITIC WORD DIVIDER
+103A0..103C3 ; valid # 4.1 OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C4..103C7 ; disallowed # NA <reserved-103C4>..<reserved-103C7>
+103C8..103CF ; valid # 4.1 OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0..103D5 ; valid ; ; NV8 # 4.1 OLD PERSIAN WORD DIVIDER..OLD PERSIAN NUMBER HUNDRED
+103D6..103FF ; disallowed # NA <reserved-103D6>..<reserved-103FF>
+10400 ; mapped ; 10428 # 3.1 DESERET CAPITAL LETTER LONG I
+10401 ; mapped ; 10429 # 3.1 DESERET CAPITAL LETTER LONG E
+10402 ; mapped ; 1042A # 3.1 DESERET CAPITAL LETTER LONG A
+10403 ; mapped ; 1042B # 3.1 DESERET CAPITAL LETTER LONG AH
+10404 ; mapped ; 1042C # 3.1 DESERET CAPITAL LETTER LONG O
+10405 ; mapped ; 1042D # 3.1 DESERET CAPITAL LETTER LONG OO
+10406 ; mapped ; 1042E # 3.1 DESERET CAPITAL LETTER SHORT I
+10407 ; mapped ; 1042F # 3.1 DESERET CAPITAL LETTER SHORT E
+10408 ; mapped ; 10430 # 3.1 DESERET CAPITAL LETTER SHORT A
+10409 ; mapped ; 10431 # 3.1 DESERET CAPITAL LETTER SHORT AH
+1040A ; mapped ; 10432 # 3.1 DESERET CAPITAL LETTER SHORT O
+1040B ; mapped ; 10433 # 3.1 DESERET CAPITAL LETTER SHORT OO
+1040C ; mapped ; 10434 # 3.1 DESERET CAPITAL LETTER AY
+1040D ; mapped ; 10435 # 3.1 DESERET CAPITAL LETTER OW
+1040E ; mapped ; 10436 # 3.1 DESERET CAPITAL LETTER WU
+1040F ; mapped ; 10437 # 3.1 DESERET CAPITAL LETTER YEE
+10410 ; mapped ; 10438 # 3.1 DESERET CAPITAL LETTER H
+10411 ; mapped ; 10439 # 3.1 DESERET CAPITAL LETTER PEE
+10412 ; mapped ; 1043A # 3.1 DESERET CAPITAL LETTER BEE
+10413 ; mapped ; 1043B # 3.1 DESERET CAPITAL LETTER TEE
+10414 ; mapped ; 1043C # 3.1 DESERET CAPITAL LETTER DEE
+10415 ; mapped ; 1043D # 3.1 DESERET CAPITAL LETTER CHEE
+10416 ; mapped ; 1043E # 3.1 DESERET CAPITAL LETTER JEE
+10417 ; mapped ; 1043F # 3.1 DESERET CAPITAL LETTER KAY
+10418 ; mapped ; 10440 # 3.1 DESERET CAPITAL LETTER GAY
+10419 ; mapped ; 10441 # 3.1 DESERET CAPITAL LETTER EF
+1041A ; mapped ; 10442 # 3.1 DESERET CAPITAL LETTER VEE
+1041B ; mapped ; 10443 # 3.1 DESERET CAPITAL LETTER ETH
+1041C ; mapped ; 10444 # 3.1 DESERET CAPITAL LETTER THEE
+1041D ; mapped ; 10445 # 3.1 DESERET CAPITAL LETTER ES
+1041E ; mapped ; 10446 # 3.1 DESERET CAPITAL LETTER ZEE
+1041F ; mapped ; 10447 # 3.1 DESERET CAPITAL LETTER ESH
+10420 ; mapped ; 10448 # 3.1 DESERET CAPITAL LETTER ZHEE
+10421 ; mapped ; 10449 # 3.1 DESERET CAPITAL LETTER ER
+10422 ; mapped ; 1044A # 3.1 DESERET CAPITAL LETTER EL
+10423 ; mapped ; 1044B # 3.1 DESERET CAPITAL LETTER EM
+10424 ; mapped ; 1044C # 3.1 DESERET CAPITAL LETTER EN
+10425 ; mapped ; 1044D # 3.1 DESERET CAPITAL LETTER ENG
+10426 ; mapped ; 1044E # 4.0 DESERET CAPITAL LETTER OI
+10427 ; mapped ; 1044F # 4.0 DESERET CAPITAL LETTER EW
+10428..1044D ; valid # 3.1 DESERET SMALL LETTER LONG I..DESERET SMALL LETTER ENG
+1044E..1049D ; valid # 4.0 DESERET SMALL LETTER OI..OSMANYA LETTER OO
+1049E..1049F ; disallowed # NA <reserved-1049E>..<reserved-1049F>
+104A0..104A9 ; valid # 4.0 OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+104AA..104AF ; disallowed # NA <reserved-104AA>..<reserved-104AF>
+104B0 ; mapped ; 104D8 # 9.0 OSAGE CAPITAL LETTER A
+104B1 ; mapped ; 104D9 # 9.0 OSAGE CAPITAL LETTER AI
+104B2 ; mapped ; 104DA # 9.0 OSAGE CAPITAL LETTER AIN
+104B3 ; mapped ; 104DB # 9.0 OSAGE CAPITAL LETTER AH
+104B4 ; mapped ; 104DC # 9.0 OSAGE CAPITAL LETTER BRA
+104B5 ; mapped ; 104DD # 9.0 OSAGE CAPITAL LETTER CHA
+104B6 ; mapped ; 104DE # 9.0 OSAGE CAPITAL LETTER EHCHA
+104B7 ; mapped ; 104DF # 9.0 OSAGE CAPITAL LETTER E
+104B8 ; mapped ; 104E0 # 9.0 OSAGE CAPITAL LETTER EIN
+104B9 ; mapped ; 104E1 # 9.0 OSAGE CAPITAL LETTER HA
+104BA ; mapped ; 104E2 # 9.0 OSAGE CAPITAL LETTER HYA
+104BB ; mapped ; 104E3 # 9.0 OSAGE CAPITAL LETTER I
+104BC ; mapped ; 104E4 # 9.0 OSAGE CAPITAL LETTER KA
+104BD ; mapped ; 104E5 # 9.0 OSAGE CAPITAL LETTER EHKA
+104BE ; mapped ; 104E6 # 9.0 OSAGE CAPITAL LETTER KYA
+104BF ; mapped ; 104E7 # 9.0 OSAGE CAPITAL LETTER LA
+104C0 ; mapped ; 104E8 # 9.0 OSAGE CAPITAL LETTER MA
+104C1 ; mapped ; 104E9 # 9.0 OSAGE CAPITAL LETTER NA
+104C2 ; mapped ; 104EA # 9.0 OSAGE CAPITAL LETTER O
+104C3 ; mapped ; 104EB # 9.0 OSAGE CAPITAL LETTER OIN
+104C4 ; mapped ; 104EC # 9.0 OSAGE CAPITAL LETTER PA
+104C5 ; mapped ; 104ED # 9.0 OSAGE CAPITAL LETTER EHPA
+104C6 ; mapped ; 104EE # 9.0 OSAGE CAPITAL LETTER SA
+104C7 ; mapped ; 104EF # 9.0 OSAGE CAPITAL LETTER SHA
+104C8 ; mapped ; 104F0 # 9.0 OSAGE CAPITAL LETTER TA
+104C9 ; mapped ; 104F1 # 9.0 OSAGE CAPITAL LETTER EHTA
+104CA ; mapped ; 104F2 # 9.0 OSAGE CAPITAL LETTER TSA
+104CB ; mapped ; 104F3 # 9.0 OSAGE CAPITAL LETTER EHTSA
+104CC ; mapped ; 104F4 # 9.0 OSAGE CAPITAL LETTER TSHA
+104CD ; mapped ; 104F5 # 9.0 OSAGE CAPITAL LETTER DHA
+104CE ; mapped ; 104F6 # 9.0 OSAGE CAPITAL LETTER U
+104CF ; mapped ; 104F7 # 9.0 OSAGE CAPITAL LETTER WA
+104D0 ; mapped ; 104F8 # 9.0 OSAGE CAPITAL LETTER KHA
+104D1 ; mapped ; 104F9 # 9.0 OSAGE CAPITAL LETTER GHA
+104D2 ; mapped ; 104FA # 9.0 OSAGE CAPITAL LETTER ZA
+104D3 ; mapped ; 104FB # 9.0 OSAGE CAPITAL LETTER ZHA
+104D4..104D7 ; disallowed # NA <reserved-104D4>..<reserved-104D7>
+104D8..104FB ; valid # 9.0 OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+104FC..104FF ; disallowed # NA <reserved-104FC>..<reserved-104FF>
+10500..10527 ; valid # 7.0 ELBASAN LETTER A..ELBASAN LETTER KHE
+10528..1052F ; disallowed # NA <reserved-10528>..<reserved-1052F>
+10530..10563 ; valid # 7.0 CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10564..1056E ; disallowed # NA <reserved-10564>..<reserved-1056E>
+1056F ; valid ; ; NV8 # 7.0 CAUCASIAN ALBANIAN CITATION MARK
+10570 ; mapped ; 10597 # 14.0 VITHKUQI CAPITAL LETTER A
+10571 ; mapped ; 10598 # 14.0 VITHKUQI CAPITAL LETTER BBE
+10572 ; mapped ; 10599 # 14.0 VITHKUQI CAPITAL LETTER BE
+10573 ; mapped ; 1059A # 14.0 VITHKUQI CAPITAL LETTER CE
+10574 ; mapped ; 1059B # 14.0 VITHKUQI CAPITAL LETTER CHE
+10575 ; mapped ; 1059C # 14.0 VITHKUQI CAPITAL LETTER DE
+10576 ; mapped ; 1059D # 14.0 VITHKUQI CAPITAL LETTER DHE
+10577 ; mapped ; 1059E # 14.0 VITHKUQI CAPITAL LETTER EI
+10578 ; mapped ; 1059F # 14.0 VITHKUQI CAPITAL LETTER E
+10579 ; mapped ; 105A0 # 14.0 VITHKUQI CAPITAL LETTER FE
+1057A ; mapped ; 105A1 # 14.0 VITHKUQI CAPITAL LETTER GA
+1057B ; disallowed # NA <reserved-1057B>
+1057C ; mapped ; 105A3 # 14.0 VITHKUQI CAPITAL LETTER HA
+1057D ; mapped ; 105A4 # 14.0 VITHKUQI CAPITAL LETTER HHA
+1057E ; mapped ; 105A5 # 14.0 VITHKUQI CAPITAL LETTER I
+1057F ; mapped ; 105A6 # 14.0 VITHKUQI CAPITAL LETTER IJE
+10580 ; mapped ; 105A7 # 14.0 VITHKUQI CAPITAL LETTER JE
+10581 ; mapped ; 105A8 # 14.0 VITHKUQI CAPITAL LETTER KA
+10582 ; mapped ; 105A9 # 14.0 VITHKUQI CAPITAL LETTER LA
+10583 ; mapped ; 105AA # 14.0 VITHKUQI CAPITAL LETTER LLA
+10584 ; mapped ; 105AB # 14.0 VITHKUQI CAPITAL LETTER ME
+10585 ; mapped ; 105AC # 14.0 VITHKUQI CAPITAL LETTER NE
+10586 ; mapped ; 105AD # 14.0 VITHKUQI CAPITAL LETTER NJE
+10587 ; mapped ; 105AE # 14.0 VITHKUQI CAPITAL LETTER O
+10588 ; mapped ; 105AF # 14.0 VITHKUQI CAPITAL LETTER PE
+10589 ; mapped ; 105B0 # 14.0 VITHKUQI CAPITAL LETTER QA
+1058A ; mapped ; 105B1 # 14.0 VITHKUQI CAPITAL LETTER RE
+1058B ; disallowed # NA <reserved-1058B>
+1058C ; mapped ; 105B3 # 14.0 VITHKUQI CAPITAL LETTER SE
+1058D ; mapped ; 105B4 # 14.0 VITHKUQI CAPITAL LETTER SHE
+1058E ; mapped ; 105B5 # 14.0 VITHKUQI CAPITAL LETTER TE
+1058F ; mapped ; 105B6 # 14.0 VITHKUQI CAPITAL LETTER THE
+10590 ; mapped ; 105B7 # 14.0 VITHKUQI CAPITAL LETTER U
+10591 ; mapped ; 105B8 # 14.0 VITHKUQI CAPITAL LETTER VE
+10592 ; mapped ; 105B9 # 14.0 VITHKUQI CAPITAL LETTER XE
+10593 ; disallowed # NA <reserved-10593>
+10594 ; mapped ; 105BB # 14.0 VITHKUQI CAPITAL LETTER Y
+10595 ; mapped ; 105BC # 14.0 VITHKUQI CAPITAL LETTER ZE
+10596 ; disallowed # NA <reserved-10596>
+10597..105A1 ; valid # 14.0 VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+105A2 ; disallowed # NA <reserved-105A2>
+105A3..105B1 ; valid # 14.0 VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+105B2 ; disallowed # NA <reserved-105B2>
+105B3..105B9 ; valid # 14.0 VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+105BA ; disallowed # NA <reserved-105BA>
+105BB..105BC ; valid # 14.0 VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+105BD..105FF ; disallowed # NA <reserved-105BD>..<reserved-105FF>
+10600..10736 ; valid # 7.0 LINEAR A SIGN AB001..LINEAR A SIGN A664
+10737..1073F ; disallowed # NA <reserved-10737>..<reserved-1073F>
+10740..10755 ; valid # 7.0 LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10756..1075F ; disallowed # NA <reserved-10756>..<reserved-1075F>
+10760..10767 ; valid # 7.0 LINEAR A SIGN A800..LINEAR A SIGN A807
+10768..1077F ; disallowed # NA <reserved-10768>..<reserved-1077F>
+10780 ; valid # 14.0 MODIFIER LETTER SMALL CAPITAL AA
+10781 ; mapped ; 02D0 # 14.0 MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON
+10782 ; mapped ; 02D1 # 14.0 MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
+10783 ; mapped ; 00E6 # 14.0 MODIFIER LETTER SMALL AE
+10784 ; mapped ; 0299 # 14.0 MODIFIER LETTER SMALL CAPITAL B
+10785 ; mapped ; 0253 # 14.0 MODIFIER LETTER SMALL B WITH HOOK
+10786 ; disallowed # NA <reserved-10786>
+10787 ; mapped ; 02A3 # 14.0 MODIFIER LETTER SMALL DZ DIGRAPH
+10788 ; mapped ; AB66 # 14.0 MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK
+10789 ; mapped ; 02A5 # 14.0 MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL
+1078A ; mapped ; 02A4 # 14.0 MODIFIER LETTER SMALL DEZH DIGRAPH
+1078B ; mapped ; 0256 # 14.0 MODIFIER LETTER SMALL D WITH TAIL
+1078C ; mapped ; 0257 # 14.0 MODIFIER LETTER SMALL D WITH HOOK
+1078D ; mapped ; 1D91 # 14.0 MODIFIER LETTER SMALL D WITH HOOK AND TAIL
+1078E ; mapped ; 0258 # 14.0 MODIFIER LETTER SMALL REVERSED E
+1078F ; mapped ; 025E # 14.0 MODIFIER LETTER SMALL CLOSED REVERSED OPEN E
+10790 ; mapped ; 02A9 # 14.0 MODIFIER LETTER SMALL FENG DIGRAPH
+10791 ; mapped ; 0264 # 14.0 MODIFIER LETTER SMALL RAMS HORN
+10792 ; mapped ; 0262 # 14.0 MODIFIER LETTER SMALL CAPITAL G
+10793 ; mapped ; 0260 # 14.0 MODIFIER LETTER SMALL G WITH HOOK
+10794 ; mapped ; 029B # 14.0 MODIFIER LETTER SMALL CAPITAL G WITH HOOK
+10795 ; mapped ; 0127 # 14.0 MODIFIER LETTER SMALL H WITH STROKE
+10796 ; mapped ; 029C # 14.0 MODIFIER LETTER SMALL CAPITAL H
+10797 ; mapped ; 0267 # 14.0 MODIFIER LETTER SMALL HENG WITH HOOK
+10798 ; mapped ; 0284 # 14.0 MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK
+10799 ; mapped ; 02AA # 14.0 MODIFIER LETTER SMALL LS DIGRAPH
+1079A ; mapped ; 02AB # 14.0 MODIFIER LETTER SMALL LZ DIGRAPH
+1079B ; mapped ; 026C # 14.0 MODIFIER LETTER SMALL L WITH BELT
+1079C ; mapped ; 1DF04 # 14.0 MODIFIER LETTER SMALL CAPITAL L WITH BELT
+1079D ; mapped ; A78E # 14.0 MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT
+1079E ; mapped ; 026E # 14.0 MODIFIER LETTER SMALL LEZH
+1079F ; mapped ; 1DF05 # 14.0 MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK
+107A0 ; mapped ; 028E # 14.0 MODIFIER LETTER SMALL TURNED Y
+107A1 ; mapped ; 1DF06 # 14.0 MODIFIER LETTER SMALL TURNED Y WITH BELT
+107A2 ; mapped ; 00F8 # 14.0 MODIFIER LETTER SMALL O WITH STROKE
+107A3 ; mapped ; 0276 # 14.0 MODIFIER LETTER SMALL CAPITAL OE
+107A4 ; mapped ; 0277 # 14.0 MODIFIER LETTER SMALL CLOSED OMEGA
+107A5 ; mapped ; 0071 # 14.0 MODIFIER LETTER SMALL Q
+107A6 ; mapped ; 027A # 14.0 MODIFIER LETTER SMALL TURNED R WITH LONG LEG
+107A7 ; mapped ; 1DF08 # 14.0 MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK
+107A8 ; mapped ; 027D # 14.0 MODIFIER LETTER SMALL R WITH TAIL
+107A9 ; mapped ; 027E # 14.0 MODIFIER LETTER SMALL R WITH FISHHOOK
+107AA ; mapped ; 0280 # 14.0 MODIFIER LETTER SMALL CAPITAL R
+107AB ; mapped ; 02A8 # 14.0 MODIFIER LETTER SMALL TC DIGRAPH WITH CURL
+107AC ; mapped ; 02A6 # 14.0 MODIFIER LETTER SMALL TS DIGRAPH
+107AD ; mapped ; AB67 # 14.0 MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK
+107AE ; mapped ; 02A7 # 14.0 MODIFIER LETTER SMALL TESH DIGRAPH
+107AF ; mapped ; 0288 # 14.0 MODIFIER LETTER SMALL T WITH RETROFLEX HOOK
+107B0 ; mapped ; 2C71 # 14.0 MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B1 ; disallowed # NA <reserved-107B1>
+107B2 ; mapped ; 028F # 14.0 MODIFIER LETTER SMALL CAPITAL Y
+107B3 ; mapped ; 02A1 # 14.0 MODIFIER LETTER GLOTTAL STOP WITH STROKE
+107B4 ; mapped ; 02A2 # 14.0 MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE
+107B5 ; mapped ; 0298 # 14.0 MODIFIER LETTER BILABIAL CLICK
+107B6 ; mapped ; 01C0 # 14.0 MODIFIER LETTER DENTAL CLICK
+107B7 ; mapped ; 01C1 # 14.0 MODIFIER LETTER LATERAL CLICK
+107B8 ; mapped ; 01C2 # 14.0 MODIFIER LETTER ALVEOLAR CLICK
+107B9 ; mapped ; 1DF0A # 14.0 MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+107BA ; mapped ; 1DF1E # 14.0 MODIFIER LETTER SMALL S WITH CURL
+107BB..107FF ; disallowed # NA <reserved-107BB>..<reserved-107FF>
+10800..10805 ; valid # 4.0 CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10806..10807 ; disallowed # NA <reserved-10806>..<reserved-10807>
+10808 ; valid # 4.0 CYPRIOT SYLLABLE JO
+10809 ; disallowed # NA <reserved-10809>
+1080A..10835 ; valid # 4.0 CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10836 ; disallowed # NA <reserved-10836>
+10837..10838 ; valid # 4.0 CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+10839..1083B ; disallowed # NA <reserved-10839>..<reserved-1083B>
+1083C ; valid # 4.0 CYPRIOT SYLLABLE ZA
+1083D..1083E ; disallowed # NA <reserved-1083D>..<reserved-1083E>
+1083F ; valid # 4.0 CYPRIOT SYLLABLE ZO
+10840..10855 ; valid # 5.2 IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10856 ; disallowed # NA <reserved-10856>
+10857..1085F ; valid ; ; NV8 # 5.2 IMPERIAL ARAMAIC SECTION SIGN..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876 ; valid # 7.0 PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..1087F ; valid ; ; NV8 # 7.0 PALMYRENE LEFT-POINTING FLEURON..PALMYRENE NUMBER TWENTY
+10880..1089E ; valid # 7.0 NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+1089F..108A6 ; disallowed # NA <reserved-1089F>..<reserved-108A6>
+108A7..108AF ; valid ; ; NV8 # 7.0 NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+108B0..108DF ; disallowed # NA <reserved-108B0>..<reserved-108DF>
+108E0..108F2 ; valid # 8.0 HATRAN LETTER ALEPH..HATRAN LETTER QOPH
+108F3 ; disallowed # NA <reserved-108F3>
+108F4..108F5 ; valid # 8.0 HATRAN LETTER SHIN..HATRAN LETTER TAW
+108F6..108FA ; disallowed # NA <reserved-108F6>..<reserved-108FA>
+108FB..108FF ; valid ; ; NV8 # 8.0 HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
+10900..10915 ; valid # 5.0 PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..10919 ; valid ; ; NV8 # 5.0 PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER ONE HUNDRED
+1091A..1091B ; valid ; ; NV8 # 5.2 PHOENICIAN NUMBER TWO..PHOENICIAN NUMBER THREE
+1091C..1091E ; disallowed # NA <reserved-1091C>..<reserved-1091E>
+1091F ; valid ; ; NV8 # 5.0 PHOENICIAN WORD SEPARATOR
+10920..10939 ; valid # 5.1 LYDIAN LETTER A..LYDIAN LETTER C
+1093A..1093E ; disallowed # NA <reserved-1093A>..<reserved-1093E>
+1093F ; valid ; ; NV8 # 5.1 LYDIAN TRIANGULAR MARK
+10940..1097F ; disallowed # NA <reserved-10940>..<reserved-1097F>
+10980..109B7 ; valid # 6.1 MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA
+109B8..109BB ; disallowed # NA <reserved-109B8>..<reserved-109BB>
+109BC..109BD ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
+109BE..109BF ; valid # 6.1 MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+109C0..109CF ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
+109D0..109D1 ; disallowed # NA <reserved-109D0>..<reserved-109D1>
+109D2..109FF ; valid ; ; NV8 # 8.0 MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
+10A00..10A03 ; valid # 4.1 KHAROSHTHI LETTER A..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A04 ; disallowed # NA <reserved-10A04>
+10A05..10A06 ; valid # 4.1 KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A07..10A0B ; disallowed # NA <reserved-10A07>..<reserved-10A0B>
+10A0C..10A13 ; valid # 4.1 KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI LETTER GHA
+10A14 ; disallowed # NA <reserved-10A14>
+10A15..10A17 ; valid # 4.1 KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A18 ; disallowed # NA <reserved-10A18>
+10A19..10A33 ; valid # 4.1 KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER TTTHA
+10A34..10A35 ; valid # 11.0 KHAROSHTHI LETTER TTTA..KHAROSHTHI LETTER VHA
+10A36..10A37 ; disallowed # NA <reserved-10A36>..<reserved-10A37>
+10A38..10A3A ; valid # 4.1 KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3B..10A3E ; disallowed # NA <reserved-10A3B>..<reserved-10A3E>
+10A3F ; valid # 4.1 KHAROSHTHI VIRAMA
+10A40..10A47 ; valid ; ; NV8 # 4.1 KHAROSHTHI DIGIT ONE..KHAROSHTHI NUMBER ONE THOUSAND
+10A48 ; valid ; ; NV8 # 11.0 KHAROSHTHI FRACTION ONE HALF
+10A49..10A4F ; disallowed # NA <reserved-10A49>..<reserved-10A4F>
+10A50..10A58 ; valid ; ; NV8 # 4.1 KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION LINES
+10A59..10A5F ; disallowed # NA <reserved-10A59>..<reserved-10A5F>
+10A60..10A7C ; valid # 5.2 OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D..10A7F ; valid ; ; NV8 # 5.2 OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C ; valid # 7.0 OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F ; valid ; ; NV8 # 7.0 OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AA0..10ABF ; disallowed # NA <reserved-10AA0>..<reserved-10ABF>
+10AC0..10AC7 ; valid # 7.0 MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8 ; valid ; ; NV8 # 7.0 MANICHAEAN SIGN UD
+10AC9..10AE6 ; valid # 7.0 MANICHAEAN LETTER ZAYIN..MANICHAEAN ABBREVIATION MARK BELOW
+10AE7..10AEA ; disallowed # NA <reserved-10AE7>..<reserved-10AEA>
+10AEB..10AF6 ; valid ; ; NV8 # 7.0 MANICHAEAN NUMBER ONE..MANICHAEAN PUNCTUATION LINE FILLER
+10AF7..10AFF ; disallowed # NA <reserved-10AF7>..<reserved-10AFF>
+10B00..10B35 ; valid # 5.2 AVESTAN LETTER A..AVESTAN LETTER HE
+10B36..10B38 ; disallowed # NA <reserved-10B36>..<reserved-10B38>
+10B39..10B3F ; valid ; ; NV8 # 5.2 AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40..10B55 ; valid # 5.2 INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B56..10B57 ; disallowed # NA <reserved-10B56>..<reserved-10B57>
+10B58..10B5F ; valid ; ; NV8 # 5.2 INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60..10B72 ; valid # 5.2 INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B73..10B77 ; disallowed # NA <reserved-10B73>..<reserved-10B77>
+10B78..10B7F ; valid ; ; NV8 # 5.2 INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91 ; valid # 7.0 PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B92..10B98 ; disallowed # NA <reserved-10B92>..<reserved-10B98>
+10B99..10B9C ; valid ; ; NV8 # 7.0 PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10B9D..10BA8 ; disallowed # NA <reserved-10B9D>..<reserved-10BA8>
+10BA9..10BAF ; valid ; ; NV8 # 7.0 PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10BB0..10BFF ; disallowed # NA <reserved-10BB0>..<reserved-10BFF>
+10C00..10C48 ; valid # 5.2 OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10C49..10C7F ; disallowed # NA <reserved-10C49>..<reserved-10C7F>
+10C80 ; mapped ; 10CC0 # 8.0 OLD HUNGARIAN CAPITAL LETTER A
+10C81 ; mapped ; 10CC1 # 8.0 OLD HUNGARIAN CAPITAL LETTER AA
+10C82 ; mapped ; 10CC2 # 8.0 OLD HUNGARIAN CAPITAL LETTER EB
+10C83 ; mapped ; 10CC3 # 8.0 OLD HUNGARIAN CAPITAL LETTER AMB
+10C84 ; mapped ; 10CC4 # 8.0 OLD HUNGARIAN CAPITAL LETTER EC
+10C85 ; mapped ; 10CC5 # 8.0 OLD HUNGARIAN CAPITAL LETTER ENC
+10C86 ; mapped ; 10CC6 # 8.0 OLD HUNGARIAN CAPITAL LETTER ECS
+10C87 ; mapped ; 10CC7 # 8.0 OLD HUNGARIAN CAPITAL LETTER ED
+10C88 ; mapped ; 10CC8 # 8.0 OLD HUNGARIAN CAPITAL LETTER AND
+10C89 ; mapped ; 10CC9 # 8.0 OLD HUNGARIAN CAPITAL LETTER E
+10C8A ; mapped ; 10CCA # 8.0 OLD HUNGARIAN CAPITAL LETTER CLOSE E
+10C8B ; mapped ; 10CCB # 8.0 OLD HUNGARIAN CAPITAL LETTER EE
+10C8C ; mapped ; 10CCC # 8.0 OLD HUNGARIAN CAPITAL LETTER EF
+10C8D ; mapped ; 10CCD # 8.0 OLD HUNGARIAN CAPITAL LETTER EG
+10C8E ; mapped ; 10CCE # 8.0 OLD HUNGARIAN CAPITAL LETTER EGY
+10C8F ; mapped ; 10CCF # 8.0 OLD HUNGARIAN CAPITAL LETTER EH
+10C90 ; mapped ; 10CD0 # 8.0 OLD HUNGARIAN CAPITAL LETTER I
+10C91 ; mapped ; 10CD1 # 8.0 OLD HUNGARIAN CAPITAL LETTER II
+10C92 ; mapped ; 10CD2 # 8.0 OLD HUNGARIAN CAPITAL LETTER EJ
+10C93 ; mapped ; 10CD3 # 8.0 OLD HUNGARIAN CAPITAL LETTER EK
+10C94 ; mapped ; 10CD4 # 8.0 OLD HUNGARIAN CAPITAL LETTER AK
+10C95 ; mapped ; 10CD5 # 8.0 OLD HUNGARIAN CAPITAL LETTER UNK
+10C96 ; mapped ; 10CD6 # 8.0 OLD HUNGARIAN CAPITAL LETTER EL
+10C97 ; mapped ; 10CD7 # 8.0 OLD HUNGARIAN CAPITAL LETTER ELY
+10C98 ; mapped ; 10CD8 # 8.0 OLD HUNGARIAN CAPITAL LETTER EM
+10C99 ; mapped ; 10CD9 # 8.0 OLD HUNGARIAN CAPITAL LETTER EN
+10C9A ; mapped ; 10CDA # 8.0 OLD HUNGARIAN CAPITAL LETTER ENY
+10C9B ; mapped ; 10CDB # 8.0 OLD HUNGARIAN CAPITAL LETTER O
+10C9C ; mapped ; 10CDC # 8.0 OLD HUNGARIAN CAPITAL LETTER OO
+10C9D ; mapped ; 10CDD # 8.0 OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE
+10C9E ; mapped ; 10CDE # 8.0 OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE
+10C9F ; mapped ; 10CDF # 8.0 OLD HUNGARIAN CAPITAL LETTER OEE
+10CA0 ; mapped ; 10CE0 # 8.0 OLD HUNGARIAN CAPITAL LETTER EP
+10CA1 ; mapped ; 10CE1 # 8.0 OLD HUNGARIAN CAPITAL LETTER EMP
+10CA2 ; mapped ; 10CE2 # 8.0 OLD HUNGARIAN CAPITAL LETTER ER
+10CA3 ; mapped ; 10CE3 # 8.0 OLD HUNGARIAN CAPITAL LETTER SHORT ER
+10CA4 ; mapped ; 10CE4 # 8.0 OLD HUNGARIAN CAPITAL LETTER ES
+10CA5 ; mapped ; 10CE5 # 8.0 OLD HUNGARIAN CAPITAL LETTER ESZ
+10CA6 ; mapped ; 10CE6 # 8.0 OLD HUNGARIAN CAPITAL LETTER ET
+10CA7 ; mapped ; 10CE7 # 8.0 OLD HUNGARIAN CAPITAL LETTER ENT
+10CA8 ; mapped ; 10CE8 # 8.0 OLD HUNGARIAN CAPITAL LETTER ETY
+10CA9 ; mapped ; 10CE9 # 8.0 OLD HUNGARIAN CAPITAL LETTER ECH
+10CAA ; mapped ; 10CEA # 8.0 OLD HUNGARIAN CAPITAL LETTER U
+10CAB ; mapped ; 10CEB # 8.0 OLD HUNGARIAN CAPITAL LETTER UU
+10CAC ; mapped ; 10CEC # 8.0 OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE
+10CAD ; mapped ; 10CED # 8.0 OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE
+10CAE ; mapped ; 10CEE # 8.0 OLD HUNGARIAN CAPITAL LETTER EV
+10CAF ; mapped ; 10CEF # 8.0 OLD HUNGARIAN CAPITAL LETTER EZ
+10CB0 ; mapped ; 10CF0 # 8.0 OLD HUNGARIAN CAPITAL LETTER EZS
+10CB1 ; mapped ; 10CF1 # 8.0 OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN
+10CB2 ; mapped ; 10CF2 # 8.0 OLD HUNGARIAN CAPITAL LETTER US
+10CB3..10CBF ; disallowed # NA <reserved-10CB3>..<reserved-10CBF>
+10CC0..10CF2 ; valid # 8.0 OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+10CF3..10CF9 ; disallowed # NA <reserved-10CF3>..<reserved-10CF9>
+10CFA..10CFF ; valid ; ; NV8 # 8.0 OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
+10D00..10D27 ; valid # 11.0 HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA SIGN TASSI
+10D28..10D2F ; disallowed # NA <reserved-10D28>..<reserved-10D2F>
+10D30..10D39 ; valid # 11.0 HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+10D3A..10E5F ; disallowed # NA <reserved-10D3A>..<reserved-10E5F>
+10E60..10E7E ; valid ; ; NV8 # 5.2 RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10E7F ; disallowed # NA <reserved-10E7F>
+10E80..10EA9 ; valid # 13.0 YEZIDI LETTER ELIF..YEZIDI LETTER ET
+10EAA ; disallowed # NA <reserved-10EAA>
+10EAB..10EAC ; valid # 13.0 YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EAD ; valid ; ; NV8 # 13.0 YEZIDI HYPHENATION MARK
+10EAE..10EAF ; disallowed # NA <reserved-10EAE>..<reserved-10EAF>
+10EB0..10EB1 ; valid # 13.0 YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EB2..10EFC ; disallowed # NA <reserved-10EB2>..<reserved-10EFC>
+10EFD..10EFF ; valid # 15.0 ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
+10F00..10F1C ; valid # 11.0 OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+10F1D..10F26 ; valid ; ; NV8 # 11.0 OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
+10F27 ; valid # 11.0 OLD SOGDIAN LIGATURE AYIN-DALETH
+10F28..10F2F ; disallowed # NA <reserved-10F28>..<reserved-10F2F>
+10F30..10F50 ; valid # 11.0 SOGDIAN LETTER ALEPH..SOGDIAN COMBINING STROKE BELOW
+10F51..10F59 ; valid ; ; NV8 # 11.0 SOGDIAN NUMBER ONE..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F5A..10F6F ; disallowed # NA <reserved-10F5A>..<reserved-10F6F>
+10F70..10F85 ; valid # 14.0 OLD UYGHUR LETTER ALEPH..OLD UYGHUR COMBINING TWO DOTS BELOW
+10F86..10F89 ; valid ; ; NV8 # 14.0 OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
+10F8A..10FAF ; disallowed # NA <reserved-10F8A>..<reserved-10FAF>
+10FB0..10FC4 ; valid # 13.0 CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
+10FC5..10FCB ; valid ; ; NV8 # 13.0 CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
+10FCC..10FDF ; disallowed # NA <reserved-10FCC>..<reserved-10FDF>
+10FE0..10FF6 ; valid # 12.0 ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
+10FF7..10FFF ; disallowed # NA <reserved-10FF7>..<reserved-10FFF>
+11000..11046 ; valid # 6.0 BRAHMI SIGN CANDRABINDU..BRAHMI VIRAMA
+11047..1104D ; valid ; ; NV8 # 6.0 BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
+1104E..11051 ; disallowed # NA <reserved-1104E>..<reserved-11051>
+11052..11065 ; valid ; ; NV8 # 6.0 BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F ; valid # 6.0 BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+11070..11075 ; valid # 14.0 BRAHMI SIGN OLD TAMIL VIRAMA..BRAHMI LETTER OLD TAMIL LLA
+11076..1107E ; disallowed # NA <reserved-11076>..<reserved-1107E>
+1107F ; valid # 7.0 BRAHMI NUMBER JOINER
+11080..110BA ; valid # 5.2 KAITHI SIGN CANDRABINDU..KAITHI SIGN NUKTA
+110BB..110BC ; valid ; ; NV8 # 5.2 KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+110BD ; disallowed # 5.2 KAITHI NUMBER SIGN
+110BE..110C1 ; valid ; ; NV8 # 5.2 KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110C2 ; valid # 14.0 KAITHI VOWEL SIGN VOCALIC R
+110C3..110CC ; disallowed # NA <reserved-110C3>..<reserved-110CC>
+110CD ; disallowed # 11.0 KAITHI NUMBER SIGN ABOVE
+110CE..110CF ; disallowed # NA <reserved-110CE>..<reserved-110CF>
+110D0..110E8 ; valid # 6.1 SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110E9..110EF ; disallowed # NA <reserved-110E9>..<reserved-110EF>
+110F0..110F9 ; valid # 6.1 SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+110FA..110FF ; disallowed # NA <reserved-110FA>..<reserved-110FF>
+11100..11134 ; valid # 6.1 CHAKMA SIGN CANDRABINDU..CHAKMA MAAYYAA
+11135 ; disallowed # NA <reserved-11135>
+11136..1113F ; valid # 6.1 CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143 ; valid ; ; NV8 # 6.1 CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11144..11146 ; valid # 11.0 CHAKMA LETTER LHAA..CHAKMA VOWEL SIGN EI
+11147 ; valid # 13.0 CHAKMA LETTER VAA
+11148..1114F ; disallowed # NA <reserved-11148>..<reserved-1114F>
+11150..11173 ; valid # 7.0 MAHAJANI LETTER A..MAHAJANI SIGN NUKTA
+11174..11175 ; valid ; ; NV8 # 7.0 MAHAJANI ABBREVIATION SIGN..MAHAJANI SECTION MARK
+11176 ; valid # 7.0 MAHAJANI LIGATURE SHRI
+11177..1117F ; disallowed # NA <reserved-11177>..<reserved-1117F>
+11180..111C4 ; valid # 6.1 SHARADA SIGN CANDRABINDU..SHARADA OM
+111C5..111C8 ; valid ; ; NV8 # 6.1 SHARADA DANDA..SHARADA SEPARATOR
+111C9..111CC ; valid # 8.0 SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+111CD ; valid ; ; NV8 # 7.0 SHARADA SUTRA MARK
+111CE..111CF ; valid # 13.0 SHARADA VOWEL SIGN PRISHTHAMATRA E..SHARADA SIGN INVERTED CANDRABINDU
+111D0..111D9 ; valid # 6.1 SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA ; valid # 7.0 SHARADA EKAM
+111DB ; valid ; ; NV8 # 8.0 SHARADA SIGN SIDDHAM
+111DC ; valid # 8.0 SHARADA HEADSTROKE
+111DD..111DF ; valid ; ; NV8 # 8.0 SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
+111E0 ; disallowed # NA <reserved-111E0>
+111E1..111F4 ; valid ; ; NV8 # 7.0 SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+111F5..111FF ; disallowed # NA <reserved-111F5>..<reserved-111FF>
+11200..11211 ; valid # 7.0 KHOJKI LETTER A..KHOJKI LETTER JJA
+11212 ; disallowed # NA <reserved-11212>
+11213..11237 ; valid # 7.0 KHOJKI LETTER NYA..KHOJKI SIGN SHADDA
+11238..1123D ; valid ; ; NV8 # 7.0 KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
+1123E ; valid # 9.0 KHOJKI SIGN SUKUN
+1123F..11241 ; valid # 15.0 KHOJKI LETTER QA..KHOJKI VOWEL SIGN VOCALIC R
+11242..1127F ; disallowed # NA <reserved-11242>..<reserved-1127F>
+11280..11286 ; valid # 8.0 MULTANI LETTER A..MULTANI LETTER GA
+11287 ; disallowed # NA <reserved-11287>
+11288 ; valid # 8.0 MULTANI LETTER GHA
+11289 ; disallowed # NA <reserved-11289>
+1128A..1128D ; valid # 8.0 MULTANI LETTER CA..MULTANI LETTER JJA
+1128E ; disallowed # NA <reserved-1128E>
+1128F..1129D ; valid # 8.0 MULTANI LETTER NYA..MULTANI LETTER BA
+1129E ; disallowed # NA <reserved-1129E>
+1129F..112A8 ; valid # 8.0 MULTANI LETTER BHA..MULTANI LETTER RHA
+112A9 ; valid ; ; NV8 # 8.0 MULTANI SECTION MARK
+112AA..112AF ; disallowed # NA <reserved-112AA>..<reserved-112AF>
+112B0..112EA ; valid # 7.0 KHUDAWADI LETTER A..KHUDAWADI SIGN VIRAMA
+112EB..112EF ; disallowed # NA <reserved-112EB>..<reserved-112EF>
+112F0..112F9 ; valid # 7.0 KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+112FA..112FF ; disallowed # NA <reserved-112FA>..<reserved-112FF>
+11300 ; valid # 8.0 GRANTHA SIGN COMBINING ANUSVARA ABOVE
+11301..11303 ; valid # 7.0 GRANTHA SIGN CANDRABINDU..GRANTHA SIGN VISARGA
+11304 ; disallowed # NA <reserved-11304>
+11305..1130C ; valid # 7.0 GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130D..1130E ; disallowed # NA <reserved-1130D>..<reserved-1130E>
+1130F..11310 ; valid # 7.0 GRANTHA LETTER EE..GRANTHA LETTER AI
+11311..11312 ; disallowed # NA <reserved-11311>..<reserved-11312>
+11313..11328 ; valid # 7.0 GRANTHA LETTER OO..GRANTHA LETTER NA
+11329 ; disallowed # NA <reserved-11329>
+1132A..11330 ; valid # 7.0 GRANTHA LETTER PA..GRANTHA LETTER RA
+11331 ; disallowed # NA <reserved-11331>
+11332..11333 ; valid # 7.0 GRANTHA LETTER LA..GRANTHA LETTER LLA
+11334 ; disallowed # NA <reserved-11334>
+11335..11339 ; valid # 7.0 GRANTHA LETTER VA..GRANTHA LETTER HA
+1133A ; disallowed # NA <reserved-1133A>
+1133B ; valid # 11.0 COMBINING BINDU BELOW
+1133C..11344 ; valid # 7.0 GRANTHA SIGN NUKTA..GRANTHA VOWEL SIGN VOCALIC RR
+11345..11346 ; disallowed # NA <reserved-11345>..<reserved-11346>
+11347..11348 ; valid # 7.0 GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+11349..1134A ; disallowed # NA <reserved-11349>..<reserved-1134A>
+1134B..1134D ; valid # 7.0 GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
+1134E..1134F ; disallowed # NA <reserved-1134E>..<reserved-1134F>
+11350 ; valid # 8.0 GRANTHA OM
+11351..11356 ; disallowed # NA <reserved-11351>..<reserved-11356>
+11357 ; valid # 7.0 GRANTHA AU LENGTH MARK
+11358..1135C ; disallowed # NA <reserved-11358>..<reserved-1135C>
+1135D..11363 ; valid # 7.0 GRANTHA SIGN PLUTA..GRANTHA VOWEL SIGN VOCALIC LL
+11364..11365 ; disallowed # NA <reserved-11364>..<reserved-11365>
+11366..1136C ; valid # 7.0 COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+1136D..1136F ; disallowed # NA <reserved-1136D>..<reserved-1136F>
+11370..11374 ; valid # 7.0 COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11375..113FF ; disallowed # NA <reserved-11375>..<reserved-113FF>
+11400..1144A ; valid # 9.0 NEWA LETTER A..NEWA SIDDHI
+1144B..1144F ; valid ; ; NV8 # 9.0 NEWA DANDA..NEWA ABBREVIATION SIGN
+11450..11459 ; valid # 9.0 NEWA DIGIT ZERO..NEWA DIGIT NINE
+1145A ; valid ; ; NV8 # 13.0 NEWA DOUBLE COMMA
+1145B ; valid ; ; NV8 # 9.0 NEWA PLACEHOLDER MARK
+1145C ; disallowed # NA <reserved-1145C>
+1145D ; valid ; ; NV8 # 9.0 NEWA INSERTION SIGN
+1145E ; valid # 11.0 NEWA SANDHI MARK
+1145F ; valid # 12.0 NEWA LETTER VEDIC ANUSVARA
+11460..11461 ; valid # 13.0 NEWA SIGN JIHVAMULIYA..NEWA SIGN UPADHMANIYA
+11462..1147F ; disallowed # NA <reserved-11462>..<reserved-1147F>
+11480..114C5 ; valid # 7.0 TIRHUTA ANJI..TIRHUTA GVANG
+114C6 ; valid ; ; NV8 # 7.0 TIRHUTA ABBREVIATION SIGN
+114C7 ; valid # 7.0 TIRHUTA OM
+114C8..114CF ; disallowed # NA <reserved-114C8>..<reserved-114CF>
+114D0..114D9 ; valid # 7.0 TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+114DA..1157F ; disallowed # NA <reserved-114DA>..<reserved-1157F>
+11580..115B5 ; valid # 7.0 SIDDHAM LETTER A..SIDDHAM VOWEL SIGN VOCALIC RR
+115B6..115B7 ; disallowed # NA <reserved-115B6>..<reserved-115B7>
+115B8..115C0 ; valid # 7.0 SIDDHAM VOWEL SIGN E..SIDDHAM SIGN NUKTA
+115C1..115C9 ; valid ; ; NV8 # 7.0 SIDDHAM SIGN SIDDHAM..SIDDHAM END OF TEXT MARK
+115CA..115D7 ; valid ; ; NV8 # 8.0 SIDDHAM SECTION MARK WITH TRIDENT AND U-SHAPED ORNAMENTS..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
+115D8..115DD ; valid # 8.0 SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM VOWEL SIGN ALTERNATE UU
+115DE..115FF ; disallowed # NA <reserved-115DE>..<reserved-115FF>
+11600..11640 ; valid # 7.0 MODI LETTER A..MODI SIGN ARDHACANDRA
+11641..11643 ; valid ; ; NV8 # 7.0 MODI DANDA..MODI ABBREVIATION SIGN
+11644 ; valid # 7.0 MODI SIGN HUVA
+11645..1164F ; disallowed # NA <reserved-11645>..<reserved-1164F>
+11650..11659 ; valid # 7.0 MODI DIGIT ZERO..MODI DIGIT NINE
+1165A..1165F ; disallowed # NA <reserved-1165A>..<reserved-1165F>
+11660..1166C ; valid ; ; NV8 # 9.0 MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+1166D..1167F ; disallowed # NA <reserved-1166D>..<reserved-1167F>
+11680..116B7 ; valid # 6.1 TAKRI LETTER A..TAKRI SIGN NUKTA
+116B8 ; valid # 12.0 TAKRI LETTER ARCHAIC KHA
+116B9 ; valid ; ; NV8 # 14.0 TAKRI ABBREVIATION SIGN
+116BA..116BF ; disallowed # NA <reserved-116BA>..<reserved-116BF>
+116C0..116C9 ; valid # 6.1 TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+116CA..116FF ; disallowed # NA <reserved-116CA>..<reserved-116FF>
+11700..11719 ; valid # 8.0 AHOM LETTER KA..AHOM LETTER JHA
+1171A ; valid # 11.0 AHOM LETTER ALTERNATE BA
+1171B..1171C ; disallowed # NA <reserved-1171B>..<reserved-1171C>
+1171D..1172B ; valid # 8.0 AHOM CONSONANT SIGN MEDIAL LA..AHOM SIGN KILLER
+1172C..1172F ; disallowed # NA <reserved-1172C>..<reserved-1172F>
+11730..11739 ; valid # 8.0 AHOM DIGIT ZERO..AHOM DIGIT NINE
+1173A..1173F ; valid ; ; NV8 # 8.0 AHOM NUMBER TEN..AHOM SYMBOL VI
+11740..11746 ; valid # 14.0 AHOM LETTER CA..AHOM LETTER LLA
+11747..117FF ; disallowed # NA <reserved-11747>..<reserved-117FF>
+11800..1183A ; valid # 11.0 DOGRA LETTER A..DOGRA SIGN NUKTA
+1183B ; valid ; ; NV8 # 11.0 DOGRA ABBREVIATION SIGN
+1183C..1189F ; disallowed # NA <reserved-1183C>..<reserved-1189F>
+118A0 ; mapped ; 118C0 # 7.0 WARANG CITI CAPITAL LETTER NGAA
+118A1 ; mapped ; 118C1 # 7.0 WARANG CITI CAPITAL LETTER A
+118A2 ; mapped ; 118C2 # 7.0 WARANG CITI CAPITAL LETTER WI
+118A3 ; mapped ; 118C3 # 7.0 WARANG CITI CAPITAL LETTER YU
+118A4 ; mapped ; 118C4 # 7.0 WARANG CITI CAPITAL LETTER YA
+118A5 ; mapped ; 118C5 # 7.0 WARANG CITI CAPITAL LETTER YO
+118A6 ; mapped ; 118C6 # 7.0 WARANG CITI CAPITAL LETTER II
+118A7 ; mapped ; 118C7 # 7.0 WARANG CITI CAPITAL LETTER UU
+118A8 ; mapped ; 118C8 # 7.0 WARANG CITI CAPITAL LETTER E
+118A9 ; mapped ; 118C9 # 7.0 WARANG CITI CAPITAL LETTER O
+118AA ; mapped ; 118CA # 7.0 WARANG CITI CAPITAL LETTER ANG
+118AB ; mapped ; 118CB # 7.0 WARANG CITI CAPITAL LETTER GA
+118AC ; mapped ; 118CC # 7.0 WARANG CITI CAPITAL LETTER KO
+118AD ; mapped ; 118CD # 7.0 WARANG CITI CAPITAL LETTER ENY
+118AE ; mapped ; 118CE # 7.0 WARANG CITI CAPITAL LETTER YUJ
+118AF ; mapped ; 118CF # 7.0 WARANG CITI CAPITAL LETTER UC
+118B0 ; mapped ; 118D0 # 7.0 WARANG CITI CAPITAL LETTER ENN
+118B1 ; mapped ; 118D1 # 7.0 WARANG CITI CAPITAL LETTER ODD
+118B2 ; mapped ; 118D2 # 7.0 WARANG CITI CAPITAL LETTER TTE
+118B3 ; mapped ; 118D3 # 7.0 WARANG CITI CAPITAL LETTER NUNG
+118B4 ; mapped ; 118D4 # 7.0 WARANG CITI CAPITAL LETTER DA
+118B5 ; mapped ; 118D5 # 7.0 WARANG CITI CAPITAL LETTER AT
+118B6 ; mapped ; 118D6 # 7.0 WARANG CITI CAPITAL LETTER AM
+118B7 ; mapped ; 118D7 # 7.0 WARANG CITI CAPITAL LETTER BU
+118B8 ; mapped ; 118D8 # 7.0 WARANG CITI CAPITAL LETTER PU
+118B9 ; mapped ; 118D9 # 7.0 WARANG CITI CAPITAL LETTER HIYO
+118BA ; mapped ; 118DA # 7.0 WARANG CITI CAPITAL LETTER HOLO
+118BB ; mapped ; 118DB # 7.0 WARANG CITI CAPITAL LETTER HORR
+118BC ; mapped ; 118DC # 7.0 WARANG CITI CAPITAL LETTER HAR
+118BD ; mapped ; 118DD # 7.0 WARANG CITI CAPITAL LETTER SSUU
+118BE ; mapped ; 118DE # 7.0 WARANG CITI CAPITAL LETTER SII
+118BF ; mapped ; 118DF # 7.0 WARANG CITI CAPITAL LETTER VIYO
+118C0..118E9 ; valid # 7.0 WARANG CITI SMALL LETTER NGAA..WARANG CITI DIGIT NINE
+118EA..118F2 ; valid ; ; NV8 # 7.0 WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118F3..118FE ; disallowed # NA <reserved-118F3>..<reserved-118FE>
+118FF ; valid # 7.0 WARANG CITI OM
+11900..11906 ; valid # 13.0 DIVES AKURU LETTER A..DIVES AKURU LETTER E
+11907..11908 ; disallowed # NA <reserved-11907>..<reserved-11908>
+11909 ; valid # 13.0 DIVES AKURU LETTER O
+1190A..1190B ; disallowed # NA <reserved-1190A>..<reserved-1190B>
+1190C..11913 ; valid # 13.0 DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
+11914 ; disallowed # NA <reserved-11914>
+11915..11916 ; valid # 13.0 DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
+11917 ; disallowed # NA <reserved-11917>
+11918..11935 ; valid # 13.0 DIVES AKURU LETTER DDA..DIVES AKURU VOWEL SIGN E
+11936 ; disallowed # NA <reserved-11936>
+11937..11938 ; valid # 13.0 DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
+11939..1193A ; disallowed # NA <reserved-11939>..<reserved-1193A>
+1193B..11943 ; valid # 13.0 DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN NUKTA
+11944..11946 ; valid ; ; NV8 # 13.0 DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
+11947..1194F ; disallowed # NA <reserved-11947>..<reserved-1194F>
+11950..11959 ; valid # 13.0 DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
+1195A..1199F ; disallowed # NA <reserved-1195A>..<reserved-1199F>
+119A0..119A7 ; valid # 12.0 NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119A8..119A9 ; disallowed # NA <reserved-119A8>..<reserved-119A9>
+119AA..119D7 ; valid # 12.0 NANDINAGARI LETTER E..NANDINAGARI VOWEL SIGN VOCALIC RR
+119D8..119D9 ; disallowed # NA <reserved-119D8>..<reserved-119D9>
+119DA..119E1 ; valid # 12.0 NANDINAGARI VOWEL SIGN E..NANDINAGARI SIGN AVAGRAHA
+119E2 ; valid ; ; NV8 # 12.0 NANDINAGARI SIGN SIDDHAM
+119E3..119E4 ; valid # 12.0 NANDINAGARI HEADSTROKE..NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+119E5..119FF ; disallowed # NA <reserved-119E5>..<reserved-119FF>
+11A00..11A3E ; valid # 10.0 ZANABAZAR SQUARE LETTER A..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A3F..11A46 ; valid ; ; NV8 # 10.0 ZANABAZAR SQUARE INITIAL HEAD MARK..ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
+11A47 ; valid # 10.0 ZANABAZAR SQUARE SUBJOINER
+11A48..11A4F ; disallowed # NA <reserved-11A48>..<reserved-11A4F>
+11A50..11A83 ; valid # 10.0 SOYOMBO LETTER A..SOYOMBO LETTER KSSA
+11A84..11A85 ; valid # 12.0 SOYOMBO SIGN JIHVAMULIYA..SOYOMBO SIGN UPADHMANIYA
+11A86..11A99 ; valid # 10.0 SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO SUBJOINER
+11A9A..11A9C ; valid ; ; NV8 # 10.0 SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
+11A9D ; valid # 11.0 SOYOMBO MARK PLUTA
+11A9E..11AA2 ; valid ; ; NV8 # 10.0 SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO TERMINAL MARK-2
+11AA3..11AAF ; disallowed # NA <reserved-11AA3>..<reserved-11AAF>
+11AB0..11ABF ; valid # 14.0 CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
+11AC0..11AF8 ; valid # 7.0 PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11AF9..11AFF ; disallowed # NA <reserved-11AF9>..<reserved-11AFF>
+11B00..11B09 ; valid ; ; NV8 # 15.0 DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+11B0A..11BFF ; disallowed # NA <reserved-11B0A>..<reserved-11BFF>
+11C00..11C08 ; valid # 9.0 BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
+11C09 ; disallowed # NA <reserved-11C09>
+11C0A..11C36 ; valid # 9.0 BHAIKSUKI LETTER E..BHAIKSUKI VOWEL SIGN VOCALIC L
+11C37 ; disallowed # NA <reserved-11C37>
+11C38..11C40 ; valid # 9.0 BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN AVAGRAHA
+11C41..11C45 ; valid ; ; NV8 # 9.0 BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
+11C46..11C4F ; disallowed # NA <reserved-11C46>..<reserved-11C4F>
+11C50..11C59 ; valid # 9.0 BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
+11C5A..11C6C ; valid ; ; NV8 # 9.0 BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
+11C6D..11C6F ; disallowed # NA <reserved-11C6D>..<reserved-11C6F>
+11C70..11C71 ; valid ; ; NV8 # 9.0 MARCHEN HEAD MARK..MARCHEN MARK SHAD
+11C72..11C8F ; valid # 9.0 MARCHEN LETTER KA..MARCHEN LETTER A
+11C90..11C91 ; disallowed # NA <reserved-11C90>..<reserved-11C91>
+11C92..11CA7 ; valid # 9.0 MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+11CA8 ; disallowed # NA <reserved-11CA8>
+11CA9..11CB6 ; valid # 9.0 MARCHEN SUBJOINED LETTER YA..MARCHEN SIGN CANDRABINDU
+11CB7..11CFF ; disallowed # NA <reserved-11CB7>..<reserved-11CFF>
+11D00..11D06 ; valid # 10.0 MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
+11D07 ; disallowed # NA <reserved-11D07>
+11D08..11D09 ; valid # 10.0 MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
+11D0A ; disallowed # NA <reserved-11D0A>
+11D0B..11D36 ; valid # 10.0 MASARAM GONDI LETTER AU..MASARAM GONDI VOWEL SIGN VOCALIC R
+11D37..11D39 ; disallowed # NA <reserved-11D37>..<reserved-11D39>
+11D3A ; valid # 10.0 MASARAM GONDI VOWEL SIGN E
+11D3B ; disallowed # NA <reserved-11D3B>
+11D3C..11D3D ; valid # 10.0 MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+11D3E ; disallowed # NA <reserved-11D3E>
+11D3F..11D47 ; valid # 10.0 MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI RA-KARA
+11D48..11D4F ; disallowed # NA <reserved-11D48>..<reserved-11D4F>
+11D50..11D59 ; valid # 10.0 MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
+11D5A..11D5F ; disallowed # NA <reserved-11D5A>..<reserved-11D5F>
+11D60..11D65 ; valid # 11.0 GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
+11D66 ; disallowed # NA <reserved-11D66>
+11D67..11D68 ; valid # 11.0 GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
+11D69 ; disallowed # NA <reserved-11D69>
+11D6A..11D8E ; valid # 11.0 GUNJALA GONDI LETTER OO..GUNJALA GONDI VOWEL SIGN UU
+11D8F ; disallowed # NA <reserved-11D8F>
+11D90..11D91 ; valid # 11.0 GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D92 ; disallowed # NA <reserved-11D92>
+11D93..11D98 ; valid # 11.0 GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI OM
+11D99..11D9F ; disallowed # NA <reserved-11D99>..<reserved-11D9F>
+11DA0..11DA9 ; valid # 11.0 GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11DAA..11EDF ; disallowed # NA <reserved-11DAA>..<reserved-11EDF>
+11EE0..11EF6 ; valid # 11.0 MAKASAR LETTER KA..MAKASAR VOWEL SIGN O
+11EF7..11EF8 ; valid ; ; NV8 # 11.0 MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11EF9..11EFF ; disallowed # NA <reserved-11EF9>..<reserved-11EFF>
+11F00..11F10 ; valid # 15.0 KAWI SIGN CANDRABINDU..KAWI LETTER O
+11F11 ; disallowed # NA <reserved-11F11>
+11F12..11F3A ; valid # 15.0 KAWI LETTER KA..KAWI VOWEL SIGN VOCALIC R
+11F3B..11F3D ; disallowed # NA <reserved-11F3B>..<reserved-11F3D>
+11F3E..11F42 ; valid # 15.0 KAWI VOWEL SIGN E..KAWI CONJOINER
+11F43..11F4F ; valid ; ; NV8 # 15.0 KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59 ; valid # 15.0 KAWI DIGIT ZERO..KAWI DIGIT NINE
+11F5A..11FAF ; disallowed # NA <reserved-11F5A>..<reserved-11FAF>
+11FB0 ; valid # 13.0 LISU LETTER YHA
+11FB1..11FBF ; disallowed # NA <reserved-11FB1>..<reserved-11FBF>
+11FC0..11FF1 ; valid ; ; NV8 # 12.0 TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL SIGN VAKAIYARAA
+11FF2..11FFE ; disallowed # NA <reserved-11FF2>..<reserved-11FFE>
+11FFF ; valid ; ; NV8 # 12.0 TAMIL PUNCTUATION END OF TEXT
+12000..1236E ; valid # 5.0 CUNEIFORM SIGN A..CUNEIFORM SIGN ZUM
+1236F..12398 ; valid # 7.0 CUNEIFORM SIGN KAP ELAMITE..CUNEIFORM SIGN UM TIMES ME
+12399 ; valid # 8.0 CUNEIFORM SIGN U U
+1239A..123FF ; disallowed # NA <reserved-1239A>..<reserved-123FF>
+12400..12462 ; valid ; ; NV8 # 5.0 CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
+12463..1246E ; valid ; ; NV8 # 7.0 CUNEIFORM NUMERIC SIGN ONE QUARTER GUR..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+1246F ; disallowed # NA <reserved-1246F>
+12470..12473 ; valid ; ; NV8 # 5.0 CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
+12474 ; valid ; ; NV8 # 7.0 CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+12475..1247F ; disallowed # NA <reserved-12475>..<reserved-1247F>
+12480..12543 ; valid # 8.0 CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+12544..12F8F ; disallowed # NA <reserved-12544>..<reserved-12F8F>
+12F90..12FF0 ; valid # 14.0 CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
+12FF1..12FF2 ; valid ; ; NV8 # 14.0 CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
+12FF3..12FFF ; disallowed # NA <reserved-12FF3>..<reserved-12FFF>
+13000..1342E ; valid # 5.2 EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+1342F ; valid # 15.0 EGYPTIAN HIEROGLYPH V011D
+13430..13438 ; disallowed # 12.0 EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13439..1343F ; disallowed # 15.0 EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440..13455 ; valid # 15.0 EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+13456..143FF ; disallowed # NA <reserved-13456>..<reserved-143FF>
+14400..14646 ; valid # 8.0 ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
+14647..167FF ; disallowed # NA <reserved-14647>..<reserved-167FF>
+16800..16A38 ; valid # 6.0 BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A39..16A3F ; disallowed # NA <reserved-16A39>..<reserved-16A3F>
+16A40..16A5E ; valid # 7.0 MRO LETTER TA..MRO LETTER TEK
+16A5F ; disallowed # NA <reserved-16A5F>
+16A60..16A69 ; valid # 7.0 MRO DIGIT ZERO..MRO DIGIT NINE
+16A6A..16A6D ; disallowed # NA <reserved-16A6A>..<reserved-16A6D>
+16A6E..16A6F ; valid ; ; NV8 # 7.0 MRO DANDA..MRO DOUBLE DANDA
+16A70..16ABE ; valid # 14.0 TANGSA LETTER OZ..TANGSA LETTER ZA
+16ABF ; disallowed # NA <reserved-16ABF>
+16AC0..16AC9 ; valid # 14.0 TANGSA DIGIT ZERO..TANGSA DIGIT NINE
+16ACA..16ACF ; disallowed # NA <reserved-16ACA>..<reserved-16ACF>
+16AD0..16AED ; valid # 7.0 BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AEE..16AEF ; disallowed # NA <reserved-16AEE>..<reserved-16AEF>
+16AF0..16AF4 ; valid # 7.0 BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5 ; valid ; ; NV8 # 7.0 BASSA VAH FULL STOP
+16AF6..16AFF ; disallowed # NA <reserved-16AF6>..<reserved-16AFF>
+16B00..16B36 ; valid # 7.0 PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B3F ; valid ; ; NV8 # 7.0 PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43 ; valid # 7.0 PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44..16B45 ; valid ; ; NV8 # 7.0 PAHAWH HMONG SIGN XAUS..PAHAWH HMONG SIGN CIM TSOV ROG
+16B46..16B4F ; disallowed # NA <reserved-16B46>..<reserved-16B4F>
+16B50..16B59 ; valid # 7.0 PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5A ; disallowed # NA <reserved-16B5A>
+16B5B..16B61 ; valid ; ; NV8 # 7.0 PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B62 ; disallowed # NA <reserved-16B62>
+16B63..16B77 ; valid # 7.0 PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B78..16B7C ; disallowed # NA <reserved-16B78>..<reserved-16B7C>
+16B7D..16B8F ; valid # 7.0 PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16B90..16E3F ; disallowed # NA <reserved-16B90>..<reserved-16E3F>
+16E40 ; mapped ; 16E60 # 11.0 MEDEFAIDRIN CAPITAL LETTER M
+16E41 ; mapped ; 16E61 # 11.0 MEDEFAIDRIN CAPITAL LETTER S
+16E42 ; mapped ; 16E62 # 11.0 MEDEFAIDRIN CAPITAL LETTER V
+16E43 ; mapped ; 16E63 # 11.0 MEDEFAIDRIN CAPITAL LETTER W
+16E44 ; mapped ; 16E64 # 11.0 MEDEFAIDRIN CAPITAL LETTER ATIU
+16E45 ; mapped ; 16E65 # 11.0 MEDEFAIDRIN CAPITAL LETTER Z
+16E46 ; mapped ; 16E66 # 11.0 MEDEFAIDRIN CAPITAL LETTER KP
+16E47 ; mapped ; 16E67 # 11.0 MEDEFAIDRIN CAPITAL LETTER P
+16E48 ; mapped ; 16E68 # 11.0 MEDEFAIDRIN CAPITAL LETTER T
+16E49 ; mapped ; 16E69 # 11.0 MEDEFAIDRIN CAPITAL LETTER G
+16E4A ; mapped ; 16E6A # 11.0 MEDEFAIDRIN CAPITAL LETTER F
+16E4B ; mapped ; 16E6B # 11.0 MEDEFAIDRIN CAPITAL LETTER I
+16E4C ; mapped ; 16E6C # 11.0 MEDEFAIDRIN CAPITAL LETTER K
+16E4D ; mapped ; 16E6D # 11.0 MEDEFAIDRIN CAPITAL LETTER A
+16E4E ; mapped ; 16E6E # 11.0 MEDEFAIDRIN CAPITAL LETTER J
+16E4F ; mapped ; 16E6F # 11.0 MEDEFAIDRIN CAPITAL LETTER E
+16E50 ; mapped ; 16E70 # 11.0 MEDEFAIDRIN CAPITAL LETTER B
+16E51 ; mapped ; 16E71 # 11.0 MEDEFAIDRIN CAPITAL LETTER C
+16E52 ; mapped ; 16E72 # 11.0 MEDEFAIDRIN CAPITAL LETTER U
+16E53 ; mapped ; 16E73 # 11.0 MEDEFAIDRIN CAPITAL LETTER YU
+16E54 ; mapped ; 16E74 # 11.0 MEDEFAIDRIN CAPITAL LETTER L
+16E55 ; mapped ; 16E75 # 11.0 MEDEFAIDRIN CAPITAL LETTER Q
+16E56 ; mapped ; 16E76 # 11.0 MEDEFAIDRIN CAPITAL LETTER HP
+16E57 ; mapped ; 16E77 # 11.0 MEDEFAIDRIN CAPITAL LETTER NY
+16E58 ; mapped ; 16E78 # 11.0 MEDEFAIDRIN CAPITAL LETTER X
+16E59 ; mapped ; 16E79 # 11.0 MEDEFAIDRIN CAPITAL LETTER D
+16E5A ; mapped ; 16E7A # 11.0 MEDEFAIDRIN CAPITAL LETTER OE
+16E5B ; mapped ; 16E7B # 11.0 MEDEFAIDRIN CAPITAL LETTER N
+16E5C ; mapped ; 16E7C # 11.0 MEDEFAIDRIN CAPITAL LETTER R
+16E5D ; mapped ; 16E7D # 11.0 MEDEFAIDRIN CAPITAL LETTER O
+16E5E ; mapped ; 16E7E # 11.0 MEDEFAIDRIN CAPITAL LETTER AI
+16E5F ; mapped ; 16E7F # 11.0 MEDEFAIDRIN CAPITAL LETTER Y
+16E60..16E7F ; valid # 11.0 MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+16E80..16E9A ; valid ; ; NV8 # 11.0 MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN EXCLAMATION OH
+16E9B..16EFF ; disallowed # NA <reserved-16E9B>..<reserved-16EFF>
+16F00..16F44 ; valid # 6.1 MIAO LETTER PA..MIAO LETTER HHA
+16F45..16F4A ; valid # 12.0 MIAO LETTER BRI..MIAO LETTER RTE
+16F4B..16F4E ; disallowed # NA <reserved-16F4B>..<reserved-16F4E>
+16F4F ; valid # 12.0 MIAO SIGN CONSONANT MODIFIER BAR
+16F50..16F7E ; valid # 6.1 MIAO LETTER NASALIZATION..MIAO VOWEL SIGN NG
+16F7F..16F87 ; valid # 12.0 MIAO VOWEL SIGN UOG..MIAO VOWEL SIGN UI
+16F88..16F8E ; disallowed # NA <reserved-16F88>..<reserved-16F8E>
+16F8F..16F9F ; valid # 6.1 MIAO TONE RIGHT..MIAO LETTER REFORMED TONE-8
+16FA0..16FDF ; disallowed # NA <reserved-16FA0>..<reserved-16FDF>
+16FE0 ; valid # 9.0 TANGUT ITERATION MARK
+16FE1 ; valid # 10.0 NUSHU ITERATION MARK
+16FE2 ; valid ; ; NV8 # 12.0 OLD CHINESE HOOK MARK
+16FE3 ; valid # 12.0 OLD CHINESE ITERATION MARK
+16FE4 ; valid # 13.0 KHITAN SMALL SCRIPT FILLER
+16FE5..16FEF ; disallowed # NA <reserved-16FE5>..<reserved-16FEF>
+16FF0..16FF1 ; valid # 13.0 VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
+16FF2..16FFF ; disallowed # NA <reserved-16FF2>..<reserved-16FFF>
+17000..187EC ; valid # 9.0 TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187EC
+187ED..187F1 ; valid # 11.0 TANGUT IDEOGRAPH-187ED..TANGUT IDEOGRAPH-187F1
+187F2..187F7 ; valid # 12.0 TANGUT IDEOGRAPH-187F2..TANGUT IDEOGRAPH-187F7
+187F8..187FF ; disallowed # NA <reserved-187F8>..<reserved-187FF>
+18800..18AF2 ; valid # 9.0 TANGUT COMPONENT-001..TANGUT COMPONENT-755
+18AF3..18CD5 ; valid # 13.0 TANGUT COMPONENT-756..KHITAN SMALL SCRIPT CHARACTER-18CD5
+18CD6..18CFF ; disallowed # NA <reserved-18CD6>..<reserved-18CFF>
+18D00..18D08 ; valid # 13.0 TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
+18D09..1AFEF ; disallowed # NA <reserved-18D09>..<reserved-1AFEF>
+1AFF0..1AFF3 ; valid # 14.0 KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF4 ; disallowed # NA <reserved-1AFF4>
+1AFF5..1AFFB ; valid # 14.0 KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFC ; disallowed # NA <reserved-1AFFC>
+1AFFD..1AFFE ; valid # 14.0 KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1AFFF ; disallowed # NA <reserved-1AFFF>
+1B000..1B001 ; valid # 6.0 KATAKANA LETTER ARCHAIC E..HIRAGANA LETTER ARCHAIC YE
+1B002..1B11E ; valid # 10.0 HENTAIGANA LETTER A-1..HENTAIGANA LETTER N-MU-MO-2
+1B11F..1B122 ; valid # 14.0 HIRAGANA LETTER ARCHAIC WU..KATAKANA LETTER ARCHAIC WU
+1B123..1B131 ; disallowed # NA <reserved-1B123>..<reserved-1B131>
+1B132 ; valid # 15.0 HIRAGANA LETTER SMALL KO
+1B133..1B14F ; disallowed # NA <reserved-1B133>..<reserved-1B14F>
+1B150..1B152 ; valid # 12.0 HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B153..1B154 ; disallowed # NA <reserved-1B153>..<reserved-1B154>
+1B155 ; valid # 15.0 KATAKANA LETTER SMALL KO
+1B156..1B163 ; disallowed # NA <reserved-1B156>..<reserved-1B163>
+1B164..1B167 ; valid # 12.0 KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
+1B168..1B16F ; disallowed # NA <reserved-1B168>..<reserved-1B16F>
+1B170..1B2FB ; valid # 10.0 NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
+1B2FC..1BBFF ; disallowed # NA <reserved-1B2FC>..<reserved-1BBFF>
+1BC00..1BC6A ; valid # 7.0 DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC6B..1BC6F ; disallowed # NA <reserved-1BC6B>..<reserved-1BC6F>
+1BC70..1BC7C ; valid # 7.0 DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC7D..1BC7F ; disallowed # NA <reserved-1BC7D>..<reserved-1BC7F>
+1BC80..1BC88 ; valid # 7.0 DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC89..1BC8F ; disallowed # NA <reserved-1BC89>..<reserved-1BC8F>
+1BC90..1BC99 ; valid # 7.0 DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9A..1BC9B ; disallowed # NA <reserved-1BC9A>..<reserved-1BC9B>
+1BC9C ; valid ; ; NV8 # 7.0 DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E ; valid # 7.0 DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F ; valid ; ; NV8 # 7.0 DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3 ; ignored # 7.0 SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1BCA4..1CEFF ; disallowed # NA <reserved-1BCA4>..<reserved-1CEFF>
+1CF00..1CF2D ; valid # 14.0 ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF2E..1CF2F ; disallowed # NA <reserved-1CF2E>..<reserved-1CF2F>
+1CF30..1CF46 ; valid # 14.0 ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+1CF47..1CF4F ; disallowed # NA <reserved-1CF47>..<reserved-1CF4F>
+1CF50..1CFC3 ; valid ; ; NV8 # 14.0 ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
+1CFC4..1CFFF ; disallowed # NA <reserved-1CFC4>..<reserved-1CFFF>
+1D000..1D0F5 ; valid ; ; NV8 # 3.1 BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D0F6..1D0FF ; disallowed # NA <reserved-1D0F6>..<reserved-1D0FF>
+1D100..1D126 ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D127..1D128 ; disallowed # NA <reserved-1D127>..<reserved-1D128>
+1D129 ; valid ; ; NV8 # 5.1 MUSICAL SYMBOL MULTIPLE MEASURE REST
+1D12A..1D15D ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL DOUBLE SHARP..MUSICAL SYMBOL WHOLE NOTE
+1D15E ; mapped ; 1D157 1D165 # 3.1 MUSICAL SYMBOL HALF NOTE
+1D15F ; mapped ; 1D158 1D165 # 3.1 MUSICAL SYMBOL QUARTER NOTE
+1D160 ; mapped ; 1D158 1D165 1D16E #3.1 MUSICAL SYMBOL EIGHTH NOTE
+1D161 ; mapped ; 1D158 1D165 1D16F #3.1 MUSICAL SYMBOL SIXTEENTH NOTE
+1D162 ; mapped ; 1D158 1D165 1D170 #3.1 MUSICAL SYMBOL THIRTY-SECOND NOTE
+1D163 ; mapped ; 1D158 1D165 1D171 #3.1 MUSICAL SYMBOL SIXTY-FOURTH NOTE
+1D164 ; mapped ; 1D158 1D165 1D172 #3.1 MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D172 ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A ; disallowed # 3.1 MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D1BA ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL SEMIBREVIS BLACK
+1D1BB ; mapped ; 1D1B9 1D165 # 3.1 MUSICAL SYMBOL MINIMA
+1D1BC ; mapped ; 1D1BA 1D165 # 3.1 MUSICAL SYMBOL MINIMA BLACK
+1D1BD ; mapped ; 1D1B9 1D165 1D16E #3.1 MUSICAL SYMBOL SEMIMINIMA WHITE
+1D1BE ; mapped ; 1D1BA 1D165 1D16E #3.1 MUSICAL SYMBOL SEMIMINIMA BLACK
+1D1BF ; mapped ; 1D1B9 1D165 1D16F #3.1 MUSICAL SYMBOL FUSA WHITE
+1D1C0 ; mapped ; 1D1BA 1D165 1D16F #3.1 MUSICAL SYMBOL FUSA BLACK
+1D1C1..1D1DD ; valid ; ; NV8 # 3.1 MUSICAL SYMBOL LONGA PERFECTA REST..MUSICAL SYMBOL PES SUBPUNCTIS
+1D1DE..1D1E8 ; valid ; ; NV8 # 8.0 MUSICAL SYMBOL KIEVAN C CLEF..MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D1E9..1D1EA ; valid ; ; NV8 # 14.0 MUSICAL SYMBOL SORI..MUSICAL SYMBOL KORON
+1D1EB..1D1FF ; disallowed # NA <reserved-1D1EB>..<reserved-1D1FF>
+1D200..1D245 ; valid ; ; NV8 # 4.1 GREEK VOCAL NOTATION SYMBOL-1..GREEK MUSICAL LEIMMA
+1D246..1D2BF ; disallowed # NA <reserved-1D246>..<reserved-1D2BF>
+1D2C0..1D2D3 ; valid ; ; NV8 # 15.0 KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
+1D2D4..1D2DF ; disallowed # NA <reserved-1D2D4>..<reserved-1D2DF>
+1D2E0..1D2F3 ; valid ; ; NV8 # 11.0 MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
+1D2F4..1D2FF ; disallowed # NA <reserved-1D2F4>..<reserved-1D2FF>
+1D300..1D356 ; valid ; ; NV8 # 4.0 MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D357..1D35F ; disallowed # NA <reserved-1D357>..<reserved-1D35F>
+1D360..1D371 ; valid ; ; NV8 # 5.0 COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
+1D372..1D378 ; valid ; ; NV8 # 11.0 IDEOGRAPHIC TALLY MARK ONE..TALLY MARK FIVE
+1D379..1D3FF ; disallowed # NA <reserved-1D379>..<reserved-1D3FF>
+1D400 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD CAPITAL A
+1D401 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD CAPITAL B
+1D402 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD CAPITAL C
+1D403 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD CAPITAL D
+1D404 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD CAPITAL E
+1D405 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD CAPITAL F
+1D406 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD CAPITAL G
+1D407 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD CAPITAL H
+1D408 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD CAPITAL I
+1D409 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD CAPITAL J
+1D40A ; mapped ; 006B # 3.1 MATHEMATICAL BOLD CAPITAL K
+1D40B ; mapped ; 006C # 3.1 MATHEMATICAL BOLD CAPITAL L
+1D40C ; mapped ; 006D # 3.1 MATHEMATICAL BOLD CAPITAL M
+1D40D ; mapped ; 006E # 3.1 MATHEMATICAL BOLD CAPITAL N
+1D40E ; mapped ; 006F # 3.1 MATHEMATICAL BOLD CAPITAL O
+1D40F ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD CAPITAL P
+1D410 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD CAPITAL Q
+1D411 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD CAPITAL R
+1D412 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD CAPITAL S
+1D413 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD CAPITAL T
+1D414 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD CAPITAL U
+1D415 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD CAPITAL V
+1D416 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD CAPITAL W
+1D417 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD CAPITAL X
+1D418 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD CAPITAL Y
+1D419 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD CAPITAL Z
+1D41A ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD SMALL A
+1D41B ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD SMALL B
+1D41C ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD SMALL C
+1D41D ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD SMALL D
+1D41E ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD SMALL E
+1D41F ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD SMALL F
+1D420 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD SMALL G
+1D421 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD SMALL H
+1D422 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD SMALL I
+1D423 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD SMALL J
+1D424 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD SMALL K
+1D425 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD SMALL L
+1D426 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD SMALL M
+1D427 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD SMALL N
+1D428 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD SMALL O
+1D429 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD SMALL P
+1D42A ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD SMALL Q
+1D42B ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD SMALL R
+1D42C ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD SMALL S
+1D42D ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD SMALL T
+1D42E ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD SMALL U
+1D42F ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD SMALL V
+1D430 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD SMALL W
+1D431 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD SMALL X
+1D432 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD SMALL Y
+1D433 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD SMALL Z
+1D434 ; mapped ; 0061 # 3.1 MATHEMATICAL ITALIC CAPITAL A
+1D435 ; mapped ; 0062 # 3.1 MATHEMATICAL ITALIC CAPITAL B
+1D436 ; mapped ; 0063 # 3.1 MATHEMATICAL ITALIC CAPITAL C
+1D437 ; mapped ; 0064 # 3.1 MATHEMATICAL ITALIC CAPITAL D
+1D438 ; mapped ; 0065 # 3.1 MATHEMATICAL ITALIC CAPITAL E
+1D439 ; mapped ; 0066 # 3.1 MATHEMATICAL ITALIC CAPITAL F
+1D43A ; mapped ; 0067 # 3.1 MATHEMATICAL ITALIC CAPITAL G
+1D43B ; mapped ; 0068 # 3.1 MATHEMATICAL ITALIC CAPITAL H
+1D43C ; mapped ; 0069 # 3.1 MATHEMATICAL ITALIC CAPITAL I
+1D43D ; mapped ; 006A # 3.1 MATHEMATICAL ITALIC CAPITAL J
+1D43E ; mapped ; 006B # 3.1 MATHEMATICAL ITALIC CAPITAL K
+1D43F ; mapped ; 006C # 3.1 MATHEMATICAL ITALIC CAPITAL L
+1D440 ; mapped ; 006D # 3.1 MATHEMATICAL ITALIC CAPITAL M
+1D441 ; mapped ; 006E # 3.1 MATHEMATICAL ITALIC CAPITAL N
+1D442 ; mapped ; 006F # 3.1 MATHEMATICAL ITALIC CAPITAL O
+1D443 ; mapped ; 0070 # 3.1 MATHEMATICAL ITALIC CAPITAL P
+1D444 ; mapped ; 0071 # 3.1 MATHEMATICAL ITALIC CAPITAL Q
+1D445 ; mapped ; 0072 # 3.1 MATHEMATICAL ITALIC CAPITAL R
+1D446 ; mapped ; 0073 # 3.1 MATHEMATICAL ITALIC CAPITAL S
+1D447 ; mapped ; 0074 # 3.1 MATHEMATICAL ITALIC CAPITAL T
+1D448 ; mapped ; 0075 # 3.1 MATHEMATICAL ITALIC CAPITAL U
+1D449 ; mapped ; 0076 # 3.1 MATHEMATICAL ITALIC CAPITAL V
+1D44A ; mapped ; 0077 # 3.1 MATHEMATICAL ITALIC CAPITAL W
+1D44B ; mapped ; 0078 # 3.1 MATHEMATICAL ITALIC CAPITAL X
+1D44C ; mapped ; 0079 # 3.1 MATHEMATICAL ITALIC CAPITAL Y
+1D44D ; mapped ; 007A # 3.1 MATHEMATICAL ITALIC CAPITAL Z
+1D44E ; mapped ; 0061 # 3.1 MATHEMATICAL ITALIC SMALL A
+1D44F ; mapped ; 0062 # 3.1 MATHEMATICAL ITALIC SMALL B
+1D450 ; mapped ; 0063 # 3.1 MATHEMATICAL ITALIC SMALL C
+1D451 ; mapped ; 0064 # 3.1 MATHEMATICAL ITALIC SMALL D
+1D452 ; mapped ; 0065 # 3.1 MATHEMATICAL ITALIC SMALL E
+1D453 ; mapped ; 0066 # 3.1 MATHEMATICAL ITALIC SMALL F
+1D454 ; mapped ; 0067 # 3.1 MATHEMATICAL ITALIC SMALL G
+1D455 ; disallowed # NA <reserved-1D455>
+1D456 ; mapped ; 0069 # 3.1 MATHEMATICAL ITALIC SMALL I
+1D457 ; mapped ; 006A # 3.1 MATHEMATICAL ITALIC SMALL J
+1D458 ; mapped ; 006B # 3.1 MATHEMATICAL ITALIC SMALL K
+1D459 ; mapped ; 006C # 3.1 MATHEMATICAL ITALIC SMALL L
+1D45A ; mapped ; 006D # 3.1 MATHEMATICAL ITALIC SMALL M
+1D45B ; mapped ; 006E # 3.1 MATHEMATICAL ITALIC SMALL N
+1D45C ; mapped ; 006F # 3.1 MATHEMATICAL ITALIC SMALL O
+1D45D ; mapped ; 0070 # 3.1 MATHEMATICAL ITALIC SMALL P
+1D45E ; mapped ; 0071 # 3.1 MATHEMATICAL ITALIC SMALL Q
+1D45F ; mapped ; 0072 # 3.1 MATHEMATICAL ITALIC SMALL R
+1D460 ; mapped ; 0073 # 3.1 MATHEMATICAL ITALIC SMALL S
+1D461 ; mapped ; 0074 # 3.1 MATHEMATICAL ITALIC SMALL T
+1D462 ; mapped ; 0075 # 3.1 MATHEMATICAL ITALIC SMALL U
+1D463 ; mapped ; 0076 # 3.1 MATHEMATICAL ITALIC SMALL V
+1D464 ; mapped ; 0077 # 3.1 MATHEMATICAL ITALIC SMALL W
+1D465 ; mapped ; 0078 # 3.1 MATHEMATICAL ITALIC SMALL X
+1D466 ; mapped ; 0079 # 3.1 MATHEMATICAL ITALIC SMALL Y
+1D467 ; mapped ; 007A # 3.1 MATHEMATICAL ITALIC SMALL Z
+1D468 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL A
+1D469 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL B
+1D46A ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL C
+1D46B ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL D
+1D46C ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL E
+1D46D ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL F
+1D46E ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL G
+1D46F ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL H
+1D470 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL I
+1D471 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL J
+1D472 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL K
+1D473 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL L
+1D474 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL M
+1D475 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL N
+1D476 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL O
+1D477 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL P
+1D478 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL Q
+1D479 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL R
+1D47A ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL S
+1D47B ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL T
+1D47C ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL U
+1D47D ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL V
+1D47E ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL W
+1D47F ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL X
+1D480 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL Y
+1D481 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL Z
+1D482 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD ITALIC SMALL A
+1D483 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD ITALIC SMALL B
+1D484 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD ITALIC SMALL C
+1D485 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD ITALIC SMALL D
+1D486 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD ITALIC SMALL E
+1D487 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD ITALIC SMALL F
+1D488 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD ITALIC SMALL G
+1D489 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD ITALIC SMALL H
+1D48A ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD ITALIC SMALL I
+1D48B ; mapped ; 006A # 3.1 MATHEMATICAL BOLD ITALIC SMALL J
+1D48C ; mapped ; 006B # 3.1 MATHEMATICAL BOLD ITALIC SMALL K
+1D48D ; mapped ; 006C # 3.1 MATHEMATICAL BOLD ITALIC SMALL L
+1D48E ; mapped ; 006D # 3.1 MATHEMATICAL BOLD ITALIC SMALL M
+1D48F ; mapped ; 006E # 3.1 MATHEMATICAL BOLD ITALIC SMALL N
+1D490 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD ITALIC SMALL O
+1D491 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD ITALIC SMALL P
+1D492 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD ITALIC SMALL Q
+1D493 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD ITALIC SMALL R
+1D494 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD ITALIC SMALL S
+1D495 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD ITALIC SMALL T
+1D496 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD ITALIC SMALL U
+1D497 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD ITALIC SMALL V
+1D498 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD ITALIC SMALL W
+1D499 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD ITALIC SMALL X
+1D49A ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD ITALIC SMALL Y
+1D49B ; mapped ; 007A # 3.1 MATHEMATICAL BOLD ITALIC SMALL Z
+1D49C ; mapped ; 0061 # 3.1 MATHEMATICAL SCRIPT CAPITAL A
+1D49D ; disallowed # NA <reserved-1D49D>
+1D49E ; mapped ; 0063 # 3.1 MATHEMATICAL SCRIPT CAPITAL C
+1D49F ; mapped ; 0064 # 3.1 MATHEMATICAL SCRIPT CAPITAL D
+1D4A0..1D4A1 ; disallowed # NA <reserved-1D4A0>..<reserved-1D4A1>
+1D4A2 ; mapped ; 0067 # 3.1 MATHEMATICAL SCRIPT CAPITAL G
+1D4A3..1D4A4 ; disallowed # NA <reserved-1D4A3>..<reserved-1D4A4>
+1D4A5 ; mapped ; 006A # 3.1 MATHEMATICAL SCRIPT CAPITAL J
+1D4A6 ; mapped ; 006B # 3.1 MATHEMATICAL SCRIPT CAPITAL K
+1D4A7..1D4A8 ; disallowed # NA <reserved-1D4A7>..<reserved-1D4A8>
+1D4A9 ; mapped ; 006E # 3.1 MATHEMATICAL SCRIPT CAPITAL N
+1D4AA ; mapped ; 006F # 3.1 MATHEMATICAL SCRIPT CAPITAL O
+1D4AB ; mapped ; 0070 # 3.1 MATHEMATICAL SCRIPT CAPITAL P
+1D4AC ; mapped ; 0071 # 3.1 MATHEMATICAL SCRIPT CAPITAL Q
+1D4AD ; disallowed # NA <reserved-1D4AD>
+1D4AE ; mapped ; 0073 # 3.1 MATHEMATICAL SCRIPT CAPITAL S
+1D4AF ; mapped ; 0074 # 3.1 MATHEMATICAL SCRIPT CAPITAL T
+1D4B0 ; mapped ; 0075 # 3.1 MATHEMATICAL SCRIPT CAPITAL U
+1D4B1 ; mapped ; 0076 # 3.1 MATHEMATICAL SCRIPT CAPITAL V
+1D4B2 ; mapped ; 0077 # 3.1 MATHEMATICAL SCRIPT CAPITAL W
+1D4B3 ; mapped ; 0078 # 3.1 MATHEMATICAL SCRIPT CAPITAL X
+1D4B4 ; mapped ; 0079 # 3.1 MATHEMATICAL SCRIPT CAPITAL Y
+1D4B5 ; mapped ; 007A # 3.1 MATHEMATICAL SCRIPT CAPITAL Z
+1D4B6 ; mapped ; 0061 # 3.1 MATHEMATICAL SCRIPT SMALL A
+1D4B7 ; mapped ; 0062 # 3.1 MATHEMATICAL SCRIPT SMALL B
+1D4B8 ; mapped ; 0063 # 3.1 MATHEMATICAL SCRIPT SMALL C
+1D4B9 ; mapped ; 0064 # 3.1 MATHEMATICAL SCRIPT SMALL D
+1D4BA ; disallowed # NA <reserved-1D4BA>
+1D4BB ; mapped ; 0066 # 3.1 MATHEMATICAL SCRIPT SMALL F
+1D4BC ; disallowed # NA <reserved-1D4BC>
+1D4BD ; mapped ; 0068 # 3.1 MATHEMATICAL SCRIPT SMALL H
+1D4BE ; mapped ; 0069 # 3.1 MATHEMATICAL SCRIPT SMALL I
+1D4BF ; mapped ; 006A # 3.1 MATHEMATICAL SCRIPT SMALL J
+1D4C0 ; mapped ; 006B # 3.1 MATHEMATICAL SCRIPT SMALL K
+1D4C1 ; mapped ; 006C # 4.0 MATHEMATICAL SCRIPT SMALL L
+1D4C2 ; mapped ; 006D # 3.1 MATHEMATICAL SCRIPT SMALL M
+1D4C3 ; mapped ; 006E # 3.1 MATHEMATICAL SCRIPT SMALL N
+1D4C4 ; disallowed # NA <reserved-1D4C4>
+1D4C5 ; mapped ; 0070 # 3.1 MATHEMATICAL SCRIPT SMALL P
+1D4C6 ; mapped ; 0071 # 3.1 MATHEMATICAL SCRIPT SMALL Q
+1D4C7 ; mapped ; 0072 # 3.1 MATHEMATICAL SCRIPT SMALL R
+1D4C8 ; mapped ; 0073 # 3.1 MATHEMATICAL SCRIPT SMALL S
+1D4C9 ; mapped ; 0074 # 3.1 MATHEMATICAL SCRIPT SMALL T
+1D4CA ; mapped ; 0075 # 3.1 MATHEMATICAL SCRIPT SMALL U
+1D4CB ; mapped ; 0076 # 3.1 MATHEMATICAL SCRIPT SMALL V
+1D4CC ; mapped ; 0077 # 3.1 MATHEMATICAL SCRIPT SMALL W
+1D4CD ; mapped ; 0078 # 3.1 MATHEMATICAL SCRIPT SMALL X
+1D4CE ; mapped ; 0079 # 3.1 MATHEMATICAL SCRIPT SMALL Y
+1D4CF ; mapped ; 007A # 3.1 MATHEMATICAL SCRIPT SMALL Z
+1D4D0 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL A
+1D4D1 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL B
+1D4D2 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL C
+1D4D3 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL D
+1D4D4 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL E
+1D4D5 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL F
+1D4D6 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL G
+1D4D7 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL H
+1D4D8 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL I
+1D4D9 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL J
+1D4DA ; mapped ; 006B # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL K
+1D4DB ; mapped ; 006C # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL L
+1D4DC ; mapped ; 006D # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL M
+1D4DD ; mapped ; 006E # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL N
+1D4DE ; mapped ; 006F # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL O
+1D4DF ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL P
+1D4E0 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL Q
+1D4E1 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL R
+1D4E2 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL S
+1D4E3 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL T
+1D4E4 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL U
+1D4E5 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL V
+1D4E6 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL W
+1D4E7 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL X
+1D4E8 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL Y
+1D4E9 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD SCRIPT CAPITAL Z
+1D4EA ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL A
+1D4EB ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL B
+1D4EC ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL C
+1D4ED ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL D
+1D4EE ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL E
+1D4EF ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL F
+1D4F0 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL G
+1D4F1 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL H
+1D4F2 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL I
+1D4F3 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD SCRIPT SMALL J
+1D4F4 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD SCRIPT SMALL K
+1D4F5 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD SCRIPT SMALL L
+1D4F6 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD SCRIPT SMALL M
+1D4F7 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD SCRIPT SMALL N
+1D4F8 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD SCRIPT SMALL O
+1D4F9 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL P
+1D4FA ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL Q
+1D4FB ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL R
+1D4FC ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL S
+1D4FD ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL T
+1D4FE ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL U
+1D4FF ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL V
+1D500 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL W
+1D501 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL X
+1D502 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD SCRIPT SMALL Y
+1D503 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD SCRIPT SMALL Z
+1D504 ; mapped ; 0061 # 3.1 MATHEMATICAL FRAKTUR CAPITAL A
+1D505 ; mapped ; 0062 # 3.1 MATHEMATICAL FRAKTUR CAPITAL B
+1D506 ; disallowed # NA <reserved-1D506>
+1D507 ; mapped ; 0064 # 3.1 MATHEMATICAL FRAKTUR CAPITAL D
+1D508 ; mapped ; 0065 # 3.1 MATHEMATICAL FRAKTUR CAPITAL E
+1D509 ; mapped ; 0066 # 3.1 MATHEMATICAL FRAKTUR CAPITAL F
+1D50A ; mapped ; 0067 # 3.1 MATHEMATICAL FRAKTUR CAPITAL G
+1D50B..1D50C ; disallowed # NA <reserved-1D50B>..<reserved-1D50C>
+1D50D ; mapped ; 006A # 3.1 MATHEMATICAL FRAKTUR CAPITAL J
+1D50E ; mapped ; 006B # 3.1 MATHEMATICAL FRAKTUR CAPITAL K
+1D50F ; mapped ; 006C # 3.1 MATHEMATICAL FRAKTUR CAPITAL L
+1D510 ; mapped ; 006D # 3.1 MATHEMATICAL FRAKTUR CAPITAL M
+1D511 ; mapped ; 006E # 3.1 MATHEMATICAL FRAKTUR CAPITAL N
+1D512 ; mapped ; 006F # 3.1 MATHEMATICAL FRAKTUR CAPITAL O
+1D513 ; mapped ; 0070 # 3.1 MATHEMATICAL FRAKTUR CAPITAL P
+1D514 ; mapped ; 0071 # 3.1 MATHEMATICAL FRAKTUR CAPITAL Q
+1D515 ; disallowed # NA <reserved-1D515>
+1D516 ; mapped ; 0073 # 3.1 MATHEMATICAL FRAKTUR CAPITAL S
+1D517 ; mapped ; 0074 # 3.1 MATHEMATICAL FRAKTUR CAPITAL T
+1D518 ; mapped ; 0075 # 3.1 MATHEMATICAL FRAKTUR CAPITAL U
+1D519 ; mapped ; 0076 # 3.1 MATHEMATICAL FRAKTUR CAPITAL V
+1D51A ; mapped ; 0077 # 3.1 MATHEMATICAL FRAKTUR CAPITAL W
+1D51B ; mapped ; 0078 # 3.1 MATHEMATICAL FRAKTUR CAPITAL X
+1D51C ; mapped ; 0079 # 3.1 MATHEMATICAL FRAKTUR CAPITAL Y
+1D51D ; disallowed # NA <reserved-1D51D>
+1D51E ; mapped ; 0061 # 3.1 MATHEMATICAL FRAKTUR SMALL A
+1D51F ; mapped ; 0062 # 3.1 MATHEMATICAL FRAKTUR SMALL B
+1D520 ; mapped ; 0063 # 3.1 MATHEMATICAL FRAKTUR SMALL C
+1D521 ; mapped ; 0064 # 3.1 MATHEMATICAL FRAKTUR SMALL D
+1D522 ; mapped ; 0065 # 3.1 MATHEMATICAL FRAKTUR SMALL E
+1D523 ; mapped ; 0066 # 3.1 MATHEMATICAL FRAKTUR SMALL F
+1D524 ; mapped ; 0067 # 3.1 MATHEMATICAL FRAKTUR SMALL G
+1D525 ; mapped ; 0068 # 3.1 MATHEMATICAL FRAKTUR SMALL H
+1D526 ; mapped ; 0069 # 3.1 MATHEMATICAL FRAKTUR SMALL I
+1D527 ; mapped ; 006A # 3.1 MATHEMATICAL FRAKTUR SMALL J
+1D528 ; mapped ; 006B # 3.1 MATHEMATICAL FRAKTUR SMALL K
+1D529 ; mapped ; 006C # 3.1 MATHEMATICAL FRAKTUR SMALL L
+1D52A ; mapped ; 006D # 3.1 MATHEMATICAL FRAKTUR SMALL M
+1D52B ; mapped ; 006E # 3.1 MATHEMATICAL FRAKTUR SMALL N
+1D52C ; mapped ; 006F # 3.1 MATHEMATICAL FRAKTUR SMALL O
+1D52D ; mapped ; 0070 # 3.1 MATHEMATICAL FRAKTUR SMALL P
+1D52E ; mapped ; 0071 # 3.1 MATHEMATICAL FRAKTUR SMALL Q
+1D52F ; mapped ; 0072 # 3.1 MATHEMATICAL FRAKTUR SMALL R
+1D530 ; mapped ; 0073 # 3.1 MATHEMATICAL FRAKTUR SMALL S
+1D531 ; mapped ; 0074 # 3.1 MATHEMATICAL FRAKTUR SMALL T
+1D532 ; mapped ; 0075 # 3.1 MATHEMATICAL FRAKTUR SMALL U
+1D533 ; mapped ; 0076 # 3.1 MATHEMATICAL FRAKTUR SMALL V
+1D534 ; mapped ; 0077 # 3.1 MATHEMATICAL FRAKTUR SMALL W
+1D535 ; mapped ; 0078 # 3.1 MATHEMATICAL FRAKTUR SMALL X
+1D536 ; mapped ; 0079 # 3.1 MATHEMATICAL FRAKTUR SMALL Y
+1D537 ; mapped ; 007A # 3.1 MATHEMATICAL FRAKTUR SMALL Z
+1D538 ; mapped ; 0061 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL A
+1D539 ; mapped ; 0062 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53A ; disallowed # NA <reserved-1D53A>
+1D53B ; mapped ; 0064 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL D
+1D53C ; mapped ; 0065 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL E
+1D53D ; mapped ; 0066 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL F
+1D53E ; mapped ; 0067 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D53F ; disallowed # NA <reserved-1D53F>
+1D540 ; mapped ; 0069 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL I
+1D541 ; mapped ; 006A # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL J
+1D542 ; mapped ; 006B # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL K
+1D543 ; mapped ; 006C # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL L
+1D544 ; mapped ; 006D # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D545 ; disallowed # NA <reserved-1D545>
+1D546 ; mapped ; 006F # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D547..1D549 ; disallowed # NA <reserved-1D547>..<reserved-1D549>
+1D54A ; mapped ; 0073 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL S
+1D54B ; mapped ; 0074 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL T
+1D54C ; mapped ; 0075 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL U
+1D54D ; mapped ; 0076 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL V
+1D54E ; mapped ; 0077 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL W
+1D54F ; mapped ; 0078 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL X
+1D550 ; mapped ; 0079 # 3.1 MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D551 ; disallowed # NA <reserved-1D551>
+1D552 ; mapped ; 0061 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL A
+1D553 ; mapped ; 0062 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL B
+1D554 ; mapped ; 0063 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL C
+1D555 ; mapped ; 0064 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL D
+1D556 ; mapped ; 0065 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL E
+1D557 ; mapped ; 0066 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL F
+1D558 ; mapped ; 0067 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL G
+1D559 ; mapped ; 0068 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL H
+1D55A ; mapped ; 0069 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL I
+1D55B ; mapped ; 006A # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL J
+1D55C ; mapped ; 006B # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL K
+1D55D ; mapped ; 006C # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL L
+1D55E ; mapped ; 006D # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL M
+1D55F ; mapped ; 006E # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL N
+1D560 ; mapped ; 006F # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL O
+1D561 ; mapped ; 0070 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL P
+1D562 ; mapped ; 0071 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL Q
+1D563 ; mapped ; 0072 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL R
+1D564 ; mapped ; 0073 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL S
+1D565 ; mapped ; 0074 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL T
+1D566 ; mapped ; 0075 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL U
+1D567 ; mapped ; 0076 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL V
+1D568 ; mapped ; 0077 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL W
+1D569 ; mapped ; 0078 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL X
+1D56A ; mapped ; 0079 # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL Y
+1D56B ; mapped ; 007A # 3.1 MATHEMATICAL DOUBLE-STRUCK SMALL Z
+1D56C ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL A
+1D56D ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL B
+1D56E ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL C
+1D56F ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL D
+1D570 ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL E
+1D571 ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL F
+1D572 ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL G
+1D573 ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL H
+1D574 ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL I
+1D575 ; mapped ; 006A # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL J
+1D576 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL K
+1D577 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL L
+1D578 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL M
+1D579 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL N
+1D57A ; mapped ; 006F # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL O
+1D57B ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL P
+1D57C ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL Q
+1D57D ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL R
+1D57E ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL S
+1D57F ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL T
+1D580 ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL U
+1D581 ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL V
+1D582 ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL W
+1D583 ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL X
+1D584 ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL Y
+1D585 ; mapped ; 007A # 3.1 MATHEMATICAL BOLD FRAKTUR CAPITAL Z
+1D586 ; mapped ; 0061 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL A
+1D587 ; mapped ; 0062 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL B
+1D588 ; mapped ; 0063 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL C
+1D589 ; mapped ; 0064 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL D
+1D58A ; mapped ; 0065 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL E
+1D58B ; mapped ; 0066 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL F
+1D58C ; mapped ; 0067 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL G
+1D58D ; mapped ; 0068 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL H
+1D58E ; mapped ; 0069 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL I
+1D58F ; mapped ; 006A # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL J
+1D590 ; mapped ; 006B # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL K
+1D591 ; mapped ; 006C # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL L
+1D592 ; mapped ; 006D # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL M
+1D593 ; mapped ; 006E # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL N
+1D594 ; mapped ; 006F # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL O
+1D595 ; mapped ; 0070 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL P
+1D596 ; mapped ; 0071 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL Q
+1D597 ; mapped ; 0072 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL R
+1D598 ; mapped ; 0073 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL S
+1D599 ; mapped ; 0074 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL T
+1D59A ; mapped ; 0075 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL U
+1D59B ; mapped ; 0076 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL V
+1D59C ; mapped ; 0077 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL W
+1D59D ; mapped ; 0078 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL X
+1D59E ; mapped ; 0079 # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL Y
+1D59F ; mapped ; 007A # 3.1 MATHEMATICAL BOLD FRAKTUR SMALL Z
+1D5A0 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL A
+1D5A1 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL B
+1D5A2 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL C
+1D5A3 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL D
+1D5A4 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL E
+1D5A5 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL F
+1D5A6 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL G
+1D5A7 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL H
+1D5A8 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL I
+1D5A9 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF CAPITAL J
+1D5AA ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF CAPITAL K
+1D5AB ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF CAPITAL L
+1D5AC ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF CAPITAL M
+1D5AD ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF CAPITAL N
+1D5AE ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF CAPITAL O
+1D5AF ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL P
+1D5B0 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL Q
+1D5B1 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL R
+1D5B2 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL S
+1D5B3 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL T
+1D5B4 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL U
+1D5B5 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL V
+1D5B6 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL W
+1D5B7 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL X
+1D5B8 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF CAPITAL Y
+1D5B9 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF CAPITAL Z
+1D5BA ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF SMALL A
+1D5BB ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF SMALL B
+1D5BC ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF SMALL C
+1D5BD ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF SMALL D
+1D5BE ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF SMALL E
+1D5BF ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF SMALL F
+1D5C0 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF SMALL G
+1D5C1 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF SMALL H
+1D5C2 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF SMALL I
+1D5C3 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF SMALL J
+1D5C4 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF SMALL K
+1D5C5 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF SMALL L
+1D5C6 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF SMALL M
+1D5C7 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF SMALL N
+1D5C8 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF SMALL O
+1D5C9 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF SMALL P
+1D5CA ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF SMALL Q
+1D5CB ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF SMALL R
+1D5CC ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF SMALL S
+1D5CD ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF SMALL T
+1D5CE ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF SMALL U
+1D5CF ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF SMALL V
+1D5D0 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF SMALL W
+1D5D1 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF SMALL X
+1D5D2 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF SMALL Y
+1D5D3 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF SMALL Z
+1D5D4 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL A
+1D5D5 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL B
+1D5D6 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL C
+1D5D7 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL D
+1D5D8 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL E
+1D5D9 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL F
+1D5DA ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL G
+1D5DB ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL H
+1D5DC ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL I
+1D5DD ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL J
+1D5DE ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL K
+1D5DF ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL L
+1D5E0 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL M
+1D5E1 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL N
+1D5E2 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL O
+1D5E3 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL P
+1D5E4 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL Q
+1D5E5 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL R
+1D5E6 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL S
+1D5E7 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL T
+1D5E8 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL U
+1D5E9 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL V
+1D5EA ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL W
+1D5EB ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL X
+1D5EC ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL Y
+1D5ED ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL Z
+1D5EE ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL A
+1D5EF ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL B
+1D5F0 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL C
+1D5F1 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL D
+1D5F2 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL E
+1D5F3 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL F
+1D5F4 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL G
+1D5F5 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL H
+1D5F6 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL I
+1D5F7 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL J
+1D5F8 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL K
+1D5F9 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL L
+1D5FA ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL M
+1D5FB ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL N
+1D5FC ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL O
+1D5FD ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL P
+1D5FE ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL Q
+1D5FF ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL R
+1D600 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL S
+1D601 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL T
+1D602 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL U
+1D603 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL V
+1D604 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL W
+1D605 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL X
+1D606 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL Y
+1D607 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL Z
+1D608 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL A
+1D609 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL B
+1D60A ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL C
+1D60B ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL D
+1D60C ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL E
+1D60D ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL F
+1D60E ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL G
+1D60F ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL H
+1D610 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL I
+1D611 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL J
+1D612 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL K
+1D613 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL L
+1D614 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL M
+1D615 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL N
+1D616 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL O
+1D617 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL P
+1D618 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q
+1D619 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL R
+1D61A ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL S
+1D61B ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL T
+1D61C ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL U
+1D61D ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL V
+1D61E ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL W
+1D61F ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL X
+1D620 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y
+1D621 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z
+1D622 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL A
+1D623 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL B
+1D624 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL C
+1D625 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL D
+1D626 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL E
+1D627 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL F
+1D628 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL G
+1D629 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL H
+1D62A ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL I
+1D62B ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL J
+1D62C ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL K
+1D62D ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL L
+1D62E ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL M
+1D62F ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL N
+1D630 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL O
+1D631 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL P
+1D632 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL Q
+1D633 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL R
+1D634 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL S
+1D635 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL T
+1D636 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL U
+1D637 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL V
+1D638 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL W
+1D639 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL X
+1D63A ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL Y
+1D63B ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF ITALIC SMALL Z
+1D63C ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A
+1D63D ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B
+1D63E ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C
+1D63F ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D
+1D640 ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E
+1D641 ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F
+1D642 ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G
+1D643 ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H
+1D644 ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I
+1D645 ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J
+1D646 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K
+1D647 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L
+1D648 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M
+1D649 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N
+1D64A ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O
+1D64B ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P
+1D64C ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q
+1D64D ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R
+1D64E ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S
+1D64F ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T
+1D650 ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U
+1D651 ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V
+1D652 ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W
+1D653 ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X
+1D654 ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y
+1D655 ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z
+1D656 ; mapped ; 0061 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A
+1D657 ; mapped ; 0062 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B
+1D658 ; mapped ; 0063 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C
+1D659 ; mapped ; 0064 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D
+1D65A ; mapped ; 0065 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E
+1D65B ; mapped ; 0066 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F
+1D65C ; mapped ; 0067 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G
+1D65D ; mapped ; 0068 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H
+1D65E ; mapped ; 0069 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I
+1D65F ; mapped ; 006A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J
+1D660 ; mapped ; 006B # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K
+1D661 ; mapped ; 006C # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L
+1D662 ; mapped ; 006D # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M
+1D663 ; mapped ; 006E # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N
+1D664 ; mapped ; 006F # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O
+1D665 ; mapped ; 0070 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P
+1D666 ; mapped ; 0071 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q
+1D667 ; mapped ; 0072 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R
+1D668 ; mapped ; 0073 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S
+1D669 ; mapped ; 0074 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T
+1D66A ; mapped ; 0075 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U
+1D66B ; mapped ; 0076 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V
+1D66C ; mapped ; 0077 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W
+1D66D ; mapped ; 0078 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X
+1D66E ; mapped ; 0079 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y
+1D66F ; mapped ; 007A # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z
+1D670 ; mapped ; 0061 # 3.1 MATHEMATICAL MONOSPACE CAPITAL A
+1D671 ; mapped ; 0062 # 3.1 MATHEMATICAL MONOSPACE CAPITAL B
+1D672 ; mapped ; 0063 # 3.1 MATHEMATICAL MONOSPACE CAPITAL C
+1D673 ; mapped ; 0064 # 3.1 MATHEMATICAL MONOSPACE CAPITAL D
+1D674 ; mapped ; 0065 # 3.1 MATHEMATICAL MONOSPACE CAPITAL E
+1D675 ; mapped ; 0066 # 3.1 MATHEMATICAL MONOSPACE CAPITAL F
+1D676 ; mapped ; 0067 # 3.1 MATHEMATICAL MONOSPACE CAPITAL G
+1D677 ; mapped ; 0068 # 3.1 MATHEMATICAL MONOSPACE CAPITAL H
+1D678 ; mapped ; 0069 # 3.1 MATHEMATICAL MONOSPACE CAPITAL I
+1D679 ; mapped ; 006A # 3.1 MATHEMATICAL MONOSPACE CAPITAL J
+1D67A ; mapped ; 006B # 3.1 MATHEMATICAL MONOSPACE CAPITAL K
+1D67B ; mapped ; 006C # 3.1 MATHEMATICAL MONOSPACE CAPITAL L
+1D67C ; mapped ; 006D # 3.1 MATHEMATICAL MONOSPACE CAPITAL M
+1D67D ; mapped ; 006E # 3.1 MATHEMATICAL MONOSPACE CAPITAL N
+1D67E ; mapped ; 006F # 3.1 MATHEMATICAL MONOSPACE CAPITAL O
+1D67F ; mapped ; 0070 # 3.1 MATHEMATICAL MONOSPACE CAPITAL P
+1D680 ; mapped ; 0071 # 3.1 MATHEMATICAL MONOSPACE CAPITAL Q
+1D681 ; mapped ; 0072 # 3.1 MATHEMATICAL MONOSPACE CAPITAL R
+1D682 ; mapped ; 0073 # 3.1 MATHEMATICAL MONOSPACE CAPITAL S
+1D683 ; mapped ; 0074 # 3.1 MATHEMATICAL MONOSPACE CAPITAL T
+1D684 ; mapped ; 0075 # 3.1 MATHEMATICAL MONOSPACE CAPITAL U
+1D685 ; mapped ; 0076 # 3.1 MATHEMATICAL MONOSPACE CAPITAL V
+1D686 ; mapped ; 0077 # 3.1 MATHEMATICAL MONOSPACE CAPITAL W
+1D687 ; mapped ; 0078 # 3.1 MATHEMATICAL MONOSPACE CAPITAL X
+1D688 ; mapped ; 0079 # 3.1 MATHEMATICAL MONOSPACE CAPITAL Y
+1D689 ; mapped ; 007A # 3.1 MATHEMATICAL MONOSPACE CAPITAL Z
+1D68A ; mapped ; 0061 # 3.1 MATHEMATICAL MONOSPACE SMALL A
+1D68B ; mapped ; 0062 # 3.1 MATHEMATICAL MONOSPACE SMALL B
+1D68C ; mapped ; 0063 # 3.1 MATHEMATICAL MONOSPACE SMALL C
+1D68D ; mapped ; 0064 # 3.1 MATHEMATICAL MONOSPACE SMALL D
+1D68E ; mapped ; 0065 # 3.1 MATHEMATICAL MONOSPACE SMALL E
+1D68F ; mapped ; 0066 # 3.1 MATHEMATICAL MONOSPACE SMALL F
+1D690 ; mapped ; 0067 # 3.1 MATHEMATICAL MONOSPACE SMALL G
+1D691 ; mapped ; 0068 # 3.1 MATHEMATICAL MONOSPACE SMALL H
+1D692 ; mapped ; 0069 # 3.1 MATHEMATICAL MONOSPACE SMALL I
+1D693 ; mapped ; 006A # 3.1 MATHEMATICAL MONOSPACE SMALL J
+1D694 ; mapped ; 006B # 3.1 MATHEMATICAL MONOSPACE SMALL K
+1D695 ; mapped ; 006C # 3.1 MATHEMATICAL MONOSPACE SMALL L
+1D696 ; mapped ; 006D # 3.1 MATHEMATICAL MONOSPACE SMALL M
+1D697 ; mapped ; 006E # 3.1 MATHEMATICAL MONOSPACE SMALL N
+1D698 ; mapped ; 006F # 3.1 MATHEMATICAL MONOSPACE SMALL O
+1D699 ; mapped ; 0070 # 3.1 MATHEMATICAL MONOSPACE SMALL P
+1D69A ; mapped ; 0071 # 3.1 MATHEMATICAL MONOSPACE SMALL Q
+1D69B ; mapped ; 0072 # 3.1 MATHEMATICAL MONOSPACE SMALL R
+1D69C ; mapped ; 0073 # 3.1 MATHEMATICAL MONOSPACE SMALL S
+1D69D ; mapped ; 0074 # 3.1 MATHEMATICAL MONOSPACE SMALL T
+1D69E ; mapped ; 0075 # 3.1 MATHEMATICAL MONOSPACE SMALL U
+1D69F ; mapped ; 0076 # 3.1 MATHEMATICAL MONOSPACE SMALL V
+1D6A0 ; mapped ; 0077 # 3.1 MATHEMATICAL MONOSPACE SMALL W
+1D6A1 ; mapped ; 0078 # 3.1 MATHEMATICAL MONOSPACE SMALL X
+1D6A2 ; mapped ; 0079 # 3.1 MATHEMATICAL MONOSPACE SMALL Y
+1D6A3 ; mapped ; 007A # 3.1 MATHEMATICAL MONOSPACE SMALL Z
+1D6A4 ; mapped ; 0131 # 4.1 MATHEMATICAL ITALIC SMALL DOTLESS I
+1D6A5 ; mapped ; 0237 # 4.1 MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A6..1D6A7 ; disallowed # NA <reserved-1D6A6>..<reserved-1D6A7>
+1D6A8 ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD CAPITAL ALPHA
+1D6A9 ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD CAPITAL BETA
+1D6AA ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD CAPITAL GAMMA
+1D6AB ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD CAPITAL DELTA
+1D6AC ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD CAPITAL EPSILON
+1D6AD ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD CAPITAL ZETA
+1D6AE ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD CAPITAL ETA
+1D6AF ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD CAPITAL THETA
+1D6B0 ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD CAPITAL IOTA
+1D6B1 ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD CAPITAL KAPPA
+1D6B2 ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD CAPITAL LAMDA
+1D6B3 ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD CAPITAL MU
+1D6B4 ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD CAPITAL NU
+1D6B5 ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD CAPITAL XI
+1D6B6 ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD CAPITAL OMICRON
+1D6B7 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD CAPITAL PI
+1D6B8 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD CAPITAL RHO
+1D6B9 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD CAPITAL THETA SYMBOL
+1D6BA ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD CAPITAL SIGMA
+1D6BB ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD CAPITAL TAU
+1D6BC ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD CAPITAL UPSILON
+1D6BD ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD CAPITAL PHI
+1D6BE ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD CAPITAL CHI
+1D6BF ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD CAPITAL PSI
+1D6C0 ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; mapped ; 2207 # 3.1 MATHEMATICAL BOLD NABLA
+1D6C2 ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD SMALL ALPHA
+1D6C3 ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD SMALL BETA
+1D6C4 ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD SMALL GAMMA
+1D6C5 ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD SMALL DELTA
+1D6C6 ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD SMALL EPSILON
+1D6C7 ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD SMALL ZETA
+1D6C8 ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD SMALL ETA
+1D6C9 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD SMALL THETA
+1D6CA ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD SMALL IOTA
+1D6CB ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD SMALL KAPPA
+1D6CC ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD SMALL LAMDA
+1D6CD ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD SMALL MU
+1D6CE ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD SMALL NU
+1D6CF ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD SMALL XI
+1D6D0 ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD SMALL OMICRON
+1D6D1 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD SMALL PI
+1D6D2 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD SMALL RHO
+1D6D3..1D6D4 ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD SMALL FINAL SIGMA..MATHEMATICAL BOLD SMALL SIGMA
+1D6D5 ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD SMALL TAU
+1D6D6 ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD SMALL UPSILON
+1D6D7 ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD SMALL PHI
+1D6D8 ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD SMALL CHI
+1D6D9 ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD SMALL PSI
+1D6DA ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; mapped ; 2202 # 3.1 MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD EPSILON SYMBOL
+1D6DD ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD THETA SYMBOL
+1D6DE ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD KAPPA SYMBOL
+1D6DF ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD PHI SYMBOL
+1D6E0 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD RHO SYMBOL
+1D6E1 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD PI SYMBOL
+1D6E2 ; mapped ; 03B1 # 3.1 MATHEMATICAL ITALIC CAPITAL ALPHA
+1D6E3 ; mapped ; 03B2 # 3.1 MATHEMATICAL ITALIC CAPITAL BETA
+1D6E4 ; mapped ; 03B3 # 3.1 MATHEMATICAL ITALIC CAPITAL GAMMA
+1D6E5 ; mapped ; 03B4 # 3.1 MATHEMATICAL ITALIC CAPITAL DELTA
+1D6E6 ; mapped ; 03B5 # 3.1 MATHEMATICAL ITALIC CAPITAL EPSILON
+1D6E7 ; mapped ; 03B6 # 3.1 MATHEMATICAL ITALIC CAPITAL ZETA
+1D6E8 ; mapped ; 03B7 # 3.1 MATHEMATICAL ITALIC CAPITAL ETA
+1D6E9 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC CAPITAL THETA
+1D6EA ; mapped ; 03B9 # 3.1 MATHEMATICAL ITALIC CAPITAL IOTA
+1D6EB ; mapped ; 03BA # 3.1 MATHEMATICAL ITALIC CAPITAL KAPPA
+1D6EC ; mapped ; 03BB # 3.1 MATHEMATICAL ITALIC CAPITAL LAMDA
+1D6ED ; mapped ; 03BC # 3.1 MATHEMATICAL ITALIC CAPITAL MU
+1D6EE ; mapped ; 03BD # 3.1 MATHEMATICAL ITALIC CAPITAL NU
+1D6EF ; mapped ; 03BE # 3.1 MATHEMATICAL ITALIC CAPITAL XI
+1D6F0 ; mapped ; 03BF # 3.1 MATHEMATICAL ITALIC CAPITAL OMICRON
+1D6F1 ; mapped ; 03C0 # 3.1 MATHEMATICAL ITALIC CAPITAL PI
+1D6F2 ; mapped ; 03C1 # 3.1 MATHEMATICAL ITALIC CAPITAL RHO
+1D6F3 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC CAPITAL THETA SYMBOL
+1D6F4 ; mapped ; 03C3 # 3.1 MATHEMATICAL ITALIC CAPITAL SIGMA
+1D6F5 ; mapped ; 03C4 # 3.1 MATHEMATICAL ITALIC CAPITAL TAU
+1D6F6 ; mapped ; 03C5 # 3.1 MATHEMATICAL ITALIC CAPITAL UPSILON
+1D6F7 ; mapped ; 03C6 # 3.1 MATHEMATICAL ITALIC CAPITAL PHI
+1D6F8 ; mapped ; 03C7 # 3.1 MATHEMATICAL ITALIC CAPITAL CHI
+1D6F9 ; mapped ; 03C8 # 3.1 MATHEMATICAL ITALIC CAPITAL PSI
+1D6FA ; mapped ; 03C9 # 3.1 MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; mapped ; 2207 # 3.1 MATHEMATICAL ITALIC NABLA
+1D6FC ; mapped ; 03B1 # 3.1 MATHEMATICAL ITALIC SMALL ALPHA
+1D6FD ; mapped ; 03B2 # 3.1 MATHEMATICAL ITALIC SMALL BETA
+1D6FE ; mapped ; 03B3 # 3.1 MATHEMATICAL ITALIC SMALL GAMMA
+1D6FF ; mapped ; 03B4 # 3.1 MATHEMATICAL ITALIC SMALL DELTA
+1D700 ; mapped ; 03B5 # 3.1 MATHEMATICAL ITALIC SMALL EPSILON
+1D701 ; mapped ; 03B6 # 3.1 MATHEMATICAL ITALIC SMALL ZETA
+1D702 ; mapped ; 03B7 # 3.1 MATHEMATICAL ITALIC SMALL ETA
+1D703 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC SMALL THETA
+1D704 ; mapped ; 03B9 # 3.1 MATHEMATICAL ITALIC SMALL IOTA
+1D705 ; mapped ; 03BA # 3.1 MATHEMATICAL ITALIC SMALL KAPPA
+1D706 ; mapped ; 03BB # 3.1 MATHEMATICAL ITALIC SMALL LAMDA
+1D707 ; mapped ; 03BC # 3.1 MATHEMATICAL ITALIC SMALL MU
+1D708 ; mapped ; 03BD # 3.1 MATHEMATICAL ITALIC SMALL NU
+1D709 ; mapped ; 03BE # 3.1 MATHEMATICAL ITALIC SMALL XI
+1D70A ; mapped ; 03BF # 3.1 MATHEMATICAL ITALIC SMALL OMICRON
+1D70B ; mapped ; 03C0 # 3.1 MATHEMATICAL ITALIC SMALL PI
+1D70C ; mapped ; 03C1 # 3.1 MATHEMATICAL ITALIC SMALL RHO
+1D70D..1D70E ; mapped ; 03C3 # 3.1 MATHEMATICAL ITALIC SMALL FINAL SIGMA..MATHEMATICAL ITALIC SMALL SIGMA
+1D70F ; mapped ; 03C4 # 3.1 MATHEMATICAL ITALIC SMALL TAU
+1D710 ; mapped ; 03C5 # 3.1 MATHEMATICAL ITALIC SMALL UPSILON
+1D711 ; mapped ; 03C6 # 3.1 MATHEMATICAL ITALIC SMALL PHI
+1D712 ; mapped ; 03C7 # 3.1 MATHEMATICAL ITALIC SMALL CHI
+1D713 ; mapped ; 03C8 # 3.1 MATHEMATICAL ITALIC SMALL PSI
+1D714 ; mapped ; 03C9 # 3.1 MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; mapped ; 2202 # 3.1 MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716 ; mapped ; 03B5 # 3.1 MATHEMATICAL ITALIC EPSILON SYMBOL
+1D717 ; mapped ; 03B8 # 3.1 MATHEMATICAL ITALIC THETA SYMBOL
+1D718 ; mapped ; 03BA # 3.1 MATHEMATICAL ITALIC KAPPA SYMBOL
+1D719 ; mapped ; 03C6 # 3.1 MATHEMATICAL ITALIC PHI SYMBOL
+1D71A ; mapped ; 03C1 # 3.1 MATHEMATICAL ITALIC RHO SYMBOL
+1D71B ; mapped ; 03C0 # 3.1 MATHEMATICAL ITALIC PI SYMBOL
+1D71C ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL ALPHA
+1D71D ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL BETA
+1D71E ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL GAMMA
+1D71F ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL DELTA
+1D720 ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL EPSILON
+1D721 ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL ZETA
+1D722 ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL ETA
+1D723 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL THETA
+1D724 ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL IOTA
+1D725 ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL KAPPA
+1D726 ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL LAMDA
+1D727 ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL MU
+1D728 ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL NU
+1D729 ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL XI
+1D72A ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL OMICRON
+1D72B ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL PI
+1D72C ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL RHO
+1D72D ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL
+1D72E ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL SIGMA
+1D72F ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL TAU
+1D730 ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL UPSILON
+1D731 ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL PHI
+1D732 ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL CHI
+1D733 ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL PSI
+1D734 ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; mapped ; 2207 # 3.1 MATHEMATICAL BOLD ITALIC NABLA
+1D736 ; mapped ; 03B1 # 3.1 MATHEMATICAL BOLD ITALIC SMALL ALPHA
+1D737 ; mapped ; 03B2 # 3.1 MATHEMATICAL BOLD ITALIC SMALL BETA
+1D738 ; mapped ; 03B3 # 3.1 MATHEMATICAL BOLD ITALIC SMALL GAMMA
+1D739 ; mapped ; 03B4 # 3.1 MATHEMATICAL BOLD ITALIC SMALL DELTA
+1D73A ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD ITALIC SMALL EPSILON
+1D73B ; mapped ; 03B6 # 3.1 MATHEMATICAL BOLD ITALIC SMALL ZETA
+1D73C ; mapped ; 03B7 # 3.1 MATHEMATICAL BOLD ITALIC SMALL ETA
+1D73D ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC SMALL THETA
+1D73E ; mapped ; 03B9 # 3.1 MATHEMATICAL BOLD ITALIC SMALL IOTA
+1D73F ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD ITALIC SMALL KAPPA
+1D740 ; mapped ; 03BB # 3.1 MATHEMATICAL BOLD ITALIC SMALL LAMDA
+1D741 ; mapped ; 03BC # 3.1 MATHEMATICAL BOLD ITALIC SMALL MU
+1D742 ; mapped ; 03BD # 3.1 MATHEMATICAL BOLD ITALIC SMALL NU
+1D743 ; mapped ; 03BE # 3.1 MATHEMATICAL BOLD ITALIC SMALL XI
+1D744 ; mapped ; 03BF # 3.1 MATHEMATICAL BOLD ITALIC SMALL OMICRON
+1D745 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD ITALIC SMALL PI
+1D746 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD ITALIC SMALL RHO
+1D747..1D748 ; mapped ; 03C3 # 3.1 MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL BOLD ITALIC SMALL SIGMA
+1D749 ; mapped ; 03C4 # 3.1 MATHEMATICAL BOLD ITALIC SMALL TAU
+1D74A ; mapped ; 03C5 # 3.1 MATHEMATICAL BOLD ITALIC SMALL UPSILON
+1D74B ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD ITALIC SMALL PHI
+1D74C ; mapped ; 03C7 # 3.1 MATHEMATICAL BOLD ITALIC SMALL CHI
+1D74D ; mapped ; 03C8 # 3.1 MATHEMATICAL BOLD ITALIC SMALL PSI
+1D74E ; mapped ; 03C9 # 3.1 MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; mapped ; 2202 # 3.1 MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750 ; mapped ; 03B5 # 3.1 MATHEMATICAL BOLD ITALIC EPSILON SYMBOL
+1D751 ; mapped ; 03B8 # 3.1 MATHEMATICAL BOLD ITALIC THETA SYMBOL
+1D752 ; mapped ; 03BA # 3.1 MATHEMATICAL BOLD ITALIC KAPPA SYMBOL
+1D753 ; mapped ; 03C6 # 3.1 MATHEMATICAL BOLD ITALIC PHI SYMBOL
+1D754 ; mapped ; 03C1 # 3.1 MATHEMATICAL BOLD ITALIC RHO SYMBOL
+1D755 ; mapped ; 03C0 # 3.1 MATHEMATICAL BOLD ITALIC PI SYMBOL
+1D756 ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA
+1D757 ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA
+1D758 ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA
+1D759 ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA
+1D75A ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON
+1D75B ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA
+1D75C ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA
+1D75D ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA
+1D75E ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA
+1D75F ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA
+1D760 ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA
+1D761 ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL MU
+1D762 ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL NU
+1D763 ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL XI
+1D764 ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON
+1D765 ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL PI
+1D766 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO
+1D767 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL
+1D768 ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA
+1D769 ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU
+1D76A ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON
+1D76B ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI
+1D76C ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI
+1D76D ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI
+1D76E ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; mapped ; 2207 # 3.1 MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770 ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA
+1D771 ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL BETA
+1D772 ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA
+1D773 ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL DELTA
+1D774 ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON
+1D775 ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL ZETA
+1D776 ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL ETA
+1D777 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL THETA
+1D778 ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL IOTA
+1D779 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA
+1D77A ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA
+1D77B ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL MU
+1D77C ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL NU
+1D77D ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL XI
+1D77E ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON
+1D77F ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL PI
+1D780 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL RHO
+1D781..1D782 ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA
+1D783 ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL TAU
+1D784 ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON
+1D785 ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL PHI
+1D786 ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL CHI
+1D787 ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL PSI
+1D788 ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; mapped ; 2202 # 3.1 MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL
+1D78B ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL
+1D78C ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL
+1D78D ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL
+1D78E ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL
+1D78F ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD PI SYMBOL
+1D790 ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA
+1D791 ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA
+1D792 ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA
+1D793 ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA
+1D794 ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON
+1D795 ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA
+1D796 ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA
+1D797 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA
+1D798 ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA
+1D799 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA
+1D79A ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA
+1D79B ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU
+1D79C ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU
+1D79D ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI
+1D79E ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON
+1D79F ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI
+1D7A0 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO
+1D7A1 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL
+1D7A2 ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA
+1D7A3 ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU
+1D7A4 ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON
+1D7A5 ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI
+1D7A6 ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI
+1D7A7 ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI
+1D7A8 ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; mapped ; 2207 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA ; mapped ; 03B1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA
+1D7AB ; mapped ; 03B2 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA
+1D7AC ; mapped ; 03B3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA
+1D7AD ; mapped ; 03B4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA
+1D7AE ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON
+1D7AF ; mapped ; 03B6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA
+1D7B0 ; mapped ; 03B7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA
+1D7B1 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA
+1D7B2 ; mapped ; 03B9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA
+1D7B3 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA
+1D7B4 ; mapped ; 03BB # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA
+1D7B5 ; mapped ; 03BC # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU
+1D7B6 ; mapped ; 03BD # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU
+1D7B7 ; mapped ; 03BE # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI
+1D7B8 ; mapped ; 03BF # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON
+1D7B9 ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI
+1D7BA ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO
+1D7BB..1D7BC ; mapped ; 03C3 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA
+1D7BD ; mapped ; 03C4 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU
+1D7BE ; mapped ; 03C5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON
+1D7BF ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI
+1D7C0 ; mapped ; 03C7 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI
+1D7C1 ; mapped ; 03C8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI
+1D7C2 ; mapped ; 03C9 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; mapped ; 2202 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4 ; mapped ; 03B5 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL
+1D7C5 ; mapped ; 03B8 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL
+1D7C6 ; mapped ; 03BA # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL
+1D7C7 ; mapped ; 03C6 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL
+1D7C8 ; mapped ; 03C1 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL
+1D7C9 ; mapped ; 03C0 # 3.1 MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
+1D7CA..1D7CB ; mapped ; 03DD # 5.0 MATHEMATICAL BOLD CAPITAL DIGAMMA..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CC..1D7CD ; disallowed # NA <reserved-1D7CC>..<reserved-1D7CD>
+1D7CE ; mapped ; 0030 # 3.1 MATHEMATICAL BOLD DIGIT ZERO
+1D7CF ; mapped ; 0031 # 3.1 MATHEMATICAL BOLD DIGIT ONE
+1D7D0 ; mapped ; 0032 # 3.1 MATHEMATICAL BOLD DIGIT TWO
+1D7D1 ; mapped ; 0033 # 3.1 MATHEMATICAL BOLD DIGIT THREE
+1D7D2 ; mapped ; 0034 # 3.1 MATHEMATICAL BOLD DIGIT FOUR
+1D7D3 ; mapped ; 0035 # 3.1 MATHEMATICAL BOLD DIGIT FIVE
+1D7D4 ; mapped ; 0036 # 3.1 MATHEMATICAL BOLD DIGIT SIX
+1D7D5 ; mapped ; 0037 # 3.1 MATHEMATICAL BOLD DIGIT SEVEN
+1D7D6 ; mapped ; 0038 # 3.1 MATHEMATICAL BOLD DIGIT EIGHT
+1D7D7 ; mapped ; 0039 # 3.1 MATHEMATICAL BOLD DIGIT NINE
+1D7D8 ; mapped ; 0030 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO
+1D7D9 ; mapped ; 0031 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT ONE
+1D7DA ; mapped ; 0032 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT TWO
+1D7DB ; mapped ; 0033 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT THREE
+1D7DC ; mapped ; 0034 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR
+1D7DD ; mapped ; 0035 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE
+1D7DE ; mapped ; 0036 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT SIX
+1D7DF ; mapped ; 0037 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN
+1D7E0 ; mapped ; 0038 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT
+1D7E1 ; mapped ; 0039 # 3.1 MATHEMATICAL DOUBLE-STRUCK DIGIT NINE
+1D7E2 ; mapped ; 0030 # 3.1 MATHEMATICAL SANS-SERIF DIGIT ZERO
+1D7E3 ; mapped ; 0031 # 3.1 MATHEMATICAL SANS-SERIF DIGIT ONE
+1D7E4 ; mapped ; 0032 # 3.1 MATHEMATICAL SANS-SERIF DIGIT TWO
+1D7E5 ; mapped ; 0033 # 3.1 MATHEMATICAL SANS-SERIF DIGIT THREE
+1D7E6 ; mapped ; 0034 # 3.1 MATHEMATICAL SANS-SERIF DIGIT FOUR
+1D7E7 ; mapped ; 0035 # 3.1 MATHEMATICAL SANS-SERIF DIGIT FIVE
+1D7E8 ; mapped ; 0036 # 3.1 MATHEMATICAL SANS-SERIF DIGIT SIX
+1D7E9 ; mapped ; 0037 # 3.1 MATHEMATICAL SANS-SERIF DIGIT SEVEN
+1D7EA ; mapped ; 0038 # 3.1 MATHEMATICAL SANS-SERIF DIGIT EIGHT
+1D7EB ; mapped ; 0039 # 3.1 MATHEMATICAL SANS-SERIF DIGIT NINE
+1D7EC ; mapped ; 0030 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO
+1D7ED ; mapped ; 0031 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT ONE
+1D7EE ; mapped ; 0032 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT TWO
+1D7EF ; mapped ; 0033 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT THREE
+1D7F0 ; mapped ; 0034 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR
+1D7F1 ; mapped ; 0035 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE
+1D7F2 ; mapped ; 0036 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT SIX
+1D7F3 ; mapped ; 0037 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN
+1D7F4 ; mapped ; 0038 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT
+1D7F5 ; mapped ; 0039 # 3.1 MATHEMATICAL SANS-SERIF BOLD DIGIT NINE
+1D7F6 ; mapped ; 0030 # 3.1 MATHEMATICAL MONOSPACE DIGIT ZERO
+1D7F7 ; mapped ; 0031 # 3.1 MATHEMATICAL MONOSPACE DIGIT ONE
+1D7F8 ; mapped ; 0032 # 3.1 MATHEMATICAL MONOSPACE DIGIT TWO
+1D7F9 ; mapped ; 0033 # 3.1 MATHEMATICAL MONOSPACE DIGIT THREE
+1D7FA ; mapped ; 0034 # 3.1 MATHEMATICAL MONOSPACE DIGIT FOUR
+1D7FB ; mapped ; 0035 # 3.1 MATHEMATICAL MONOSPACE DIGIT FIVE
+1D7FC ; mapped ; 0036 # 3.1 MATHEMATICAL MONOSPACE DIGIT SIX
+1D7FD ; mapped ; 0037 # 3.1 MATHEMATICAL MONOSPACE DIGIT SEVEN
+1D7FE ; mapped ; 0038 # 3.1 MATHEMATICAL MONOSPACE DIGIT EIGHT
+1D7FF ; mapped ; 0039 # 3.1 MATHEMATICAL MONOSPACE DIGIT NINE
+1D800..1D9FF ; valid ; ; NV8 # 8.0 SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
+1DA00..1DA36 ; valid # 8.0 SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+1DA37..1DA3A ; valid ; ; NV8 # 8.0 SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
+1DA3B..1DA6C ; valid # 8.0 SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+1DA6D..1DA74 ; valid ; ; NV8 # 8.0 SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75 ; valid # 8.0 SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA76..1DA83 ; valid ; ; NV8 # 8.0 SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
+1DA84 ; valid # 8.0 SIGNWRITING LOCATION HEAD NECK
+1DA85..1DA8B ; valid ; ; NV8 # 8.0 SIGNWRITING LOCATION TORSO..SIGNWRITING PARENTHESIS
+1DA8C..1DA9A ; disallowed # NA <reserved-1DA8C>..<reserved-1DA9A>
+1DA9B..1DA9F ; valid # 8.0 SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA0 ; disallowed # NA <reserved-1DAA0>
+1DAA1..1DAAF ; valid # 8.0 SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+1DAB0..1DEFF ; disallowed # NA <reserved-1DAB0>..<reserved-1DEFF>
+1DF00..1DF1E ; valid # 14.0 LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER S WITH CURL
+1DF1F..1DF24 ; disallowed # NA <reserved-1DF1F>..<reserved-1DF24>
+1DF25..1DF2A ; valid # 15.0 LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1DF2B..1DFFF ; disallowed # NA <reserved-1DF2B>..<reserved-1DFFF>
+1E000..1E006 ; valid # 9.0 COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E007 ; disallowed # NA <reserved-1E007>
+1E008..1E018 ; valid # 9.0 COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E019..1E01A ; disallowed # NA <reserved-1E019>..<reserved-1E01A>
+1E01B..1E021 ; valid # 9.0 COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E022 ; disallowed # NA <reserved-1E022>
+1E023..1E024 ; valid # 9.0 COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E025 ; disallowed # NA <reserved-1E025>
+1E026..1E02A ; valid # 9.0 COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E02B..1E02F ; disallowed # NA <reserved-1E02B>..<reserved-1E02F>
+1E030 ; mapped ; 0430 # 15.0 MODIFIER LETTER CYRILLIC SMALL A
+1E031 ; mapped ; 0431 # 15.0 MODIFIER LETTER CYRILLIC SMALL BE
+1E032 ; mapped ; 0432 # 15.0 MODIFIER LETTER CYRILLIC SMALL VE
+1E033 ; mapped ; 0433 # 15.0 MODIFIER LETTER CYRILLIC SMALL GHE
+1E034 ; mapped ; 0434 # 15.0 MODIFIER LETTER CYRILLIC SMALL DE
+1E035 ; mapped ; 0435 # 15.0 MODIFIER LETTER CYRILLIC SMALL IE
+1E036 ; mapped ; 0436 # 15.0 MODIFIER LETTER CYRILLIC SMALL ZHE
+1E037 ; mapped ; 0437 # 15.0 MODIFIER LETTER CYRILLIC SMALL ZE
+1E038 ; mapped ; 0438 # 15.0 MODIFIER LETTER CYRILLIC SMALL I
+1E039 ; mapped ; 043A # 15.0 MODIFIER LETTER CYRILLIC SMALL KA
+1E03A ; mapped ; 043B # 15.0 MODIFIER LETTER CYRILLIC SMALL EL
+1E03B ; mapped ; 043C # 15.0 MODIFIER LETTER CYRILLIC SMALL EM
+1E03C ; mapped ; 043E # 15.0 MODIFIER LETTER CYRILLIC SMALL O
+1E03D ; mapped ; 043F # 15.0 MODIFIER LETTER CYRILLIC SMALL PE
+1E03E ; mapped ; 0440 # 15.0 MODIFIER LETTER CYRILLIC SMALL ER
+1E03F ; mapped ; 0441 # 15.0 MODIFIER LETTER CYRILLIC SMALL ES
+1E040 ; mapped ; 0442 # 15.0 MODIFIER LETTER CYRILLIC SMALL TE
+1E041 ; mapped ; 0443 # 15.0 MODIFIER LETTER CYRILLIC SMALL U
+1E042 ; mapped ; 0444 # 15.0 MODIFIER LETTER CYRILLIC SMALL EF
+1E043 ; mapped ; 0445 # 15.0 MODIFIER LETTER CYRILLIC SMALL HA
+1E044 ; mapped ; 0446 # 15.0 MODIFIER LETTER CYRILLIC SMALL TSE
+1E045 ; mapped ; 0447 # 15.0 MODIFIER LETTER CYRILLIC SMALL CHE
+1E046 ; mapped ; 0448 # 15.0 MODIFIER LETTER CYRILLIC SMALL SHA
+1E047 ; mapped ; 044B # 15.0 MODIFIER LETTER CYRILLIC SMALL YERU
+1E048 ; mapped ; 044D # 15.0 MODIFIER LETTER CYRILLIC SMALL E
+1E049 ; mapped ; 044E # 15.0 MODIFIER LETTER CYRILLIC SMALL YU
+1E04A ; mapped ; A689 # 15.0 MODIFIER LETTER CYRILLIC SMALL DZZE
+1E04B ; mapped ; 04D9 # 15.0 MODIFIER LETTER CYRILLIC SMALL SCHWA
+1E04C ; mapped ; 0456 # 15.0 MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I
+1E04D ; mapped ; 0458 # 15.0 MODIFIER LETTER CYRILLIC SMALL JE
+1E04E ; mapped ; 04E9 # 15.0 MODIFIER LETTER CYRILLIC SMALL BARRED O
+1E04F ; mapped ; 04AF # 15.0 MODIFIER LETTER CYRILLIC SMALL STRAIGHT U
+1E050 ; mapped ; 04CF # 15.0 MODIFIER LETTER CYRILLIC SMALL PALOCHKA
+1E051 ; mapped ; 0430 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER A
+1E052 ; mapped ; 0431 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER BE
+1E053 ; mapped ; 0432 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER VE
+1E054 ; mapped ; 0433 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER GHE
+1E055 ; mapped ; 0434 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER DE
+1E056 ; mapped ; 0435 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER IE
+1E057 ; mapped ; 0436 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER ZHE
+1E058 ; mapped ; 0437 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER ZE
+1E059 ; mapped ; 0438 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER I
+1E05A ; mapped ; 043A # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER KA
+1E05B ; mapped ; 043B # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER EL
+1E05C ; mapped ; 043E # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER O
+1E05D ; mapped ; 043F # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER PE
+1E05E ; mapped ; 0441 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER ES
+1E05F ; mapped ; 0443 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER U
+1E060 ; mapped ; 0444 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER EF
+1E061 ; mapped ; 0445 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER HA
+1E062 ; mapped ; 0446 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER TSE
+1E063 ; mapped ; 0447 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER CHE
+1E064 ; mapped ; 0448 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER SHA
+1E065 ; mapped ; 044A # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN
+1E066 ; mapped ; 044B # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER YERU
+1E067 ; mapped ; 0491 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN
+1E068 ; mapped ; 0456 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E069 ; mapped ; 0455 # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER DZE
+1E06A ; mapped ; 045F # 15.0 CYRILLIC SUBSCRIPT SMALL LETTER DZHE
+1E06B ; mapped ; 04AB # 15.0 MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER
+1E06C ; mapped ; A651 # 15.0 MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER
+1E06D ; mapped ; 04B1 # 15.0 MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E06E..1E08E ; disallowed # NA <reserved-1E06E>..<reserved-1E08E>
+1E08F ; valid # 15.0 COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E090..1E0FF ; disallowed # NA <reserved-1E090>..<reserved-1E0FF>
+1E100..1E12C ; valid # 12.0 NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E12D..1E12F ; disallowed # NA <reserved-1E12D>..<reserved-1E12F>
+1E130..1E13D ; valid # 12.0 NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E13E..1E13F ; disallowed # NA <reserved-1E13E>..<reserved-1E13F>
+1E140..1E149 ; valid # 12.0 NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14A..1E14D ; disallowed # NA <reserved-1E14A>..<reserved-1E14D>
+1E14E ; valid # 12.0 NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E14F ; valid ; ; NV8 # 12.0 NYIAKENG PUACHUE HMONG CIRCLED CA
+1E150..1E28F ; disallowed # NA <reserved-1E150>..<reserved-1E28F>
+1E290..1E2AE ; valid # 14.0 TOTO LETTER PA..TOTO SIGN RISING TONE
+1E2AF..1E2BF ; disallowed # NA <reserved-1E2AF>..<reserved-1E2BF>
+1E2C0..1E2F9 ; valid # 12.0 WANCHO LETTER AA..WANCHO DIGIT NINE
+1E2FA..1E2FE ; disallowed # NA <reserved-1E2FA>..<reserved-1E2FE>
+1E2FF ; valid ; ; NV8 # 12.0 WANCHO NGUN SIGN
+1E300..1E4CF ; disallowed # NA <reserved-1E300>..<reserved-1E4CF>
+1E4D0..1E4F9 ; valid # 15.0 NAG MUNDARI LETTER O..NAG MUNDARI DIGIT NINE
+1E4FA..1E7DF ; disallowed # NA <reserved-1E4FA>..<reserved-1E7DF>
+1E7E0..1E7E6 ; valid # 14.0 ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E7 ; disallowed # NA <reserved-1E7E7>
+1E7E8..1E7EB ; valid # 14.0 ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7EC ; disallowed # NA <reserved-1E7EC>
+1E7ED..1E7EE ; valid # 14.0 ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7EF ; disallowed # NA <reserved-1E7EF>
+1E7F0..1E7FE ; valid # 14.0 ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
+1E7FF ; disallowed # NA <reserved-1E7FF>
+1E800..1E8C4 ; valid # 7.0 MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C5..1E8C6 ; disallowed # NA <reserved-1E8C5>..<reserved-1E8C6>
+1E8C7..1E8CF ; valid ; ; NV8 # 7.0 MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6 ; valid # 7.0 MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E8D7..1E8FF ; disallowed # NA <reserved-1E8D7>..<reserved-1E8FF>
+1E900 ; mapped ; 1E922 # 9.0 ADLAM CAPITAL LETTER ALIF
+1E901 ; mapped ; 1E923 # 9.0 ADLAM CAPITAL LETTER DAALI
+1E902 ; mapped ; 1E924 # 9.0 ADLAM CAPITAL LETTER LAAM
+1E903 ; mapped ; 1E925 # 9.0 ADLAM CAPITAL LETTER MIIM
+1E904 ; mapped ; 1E926 # 9.0 ADLAM CAPITAL LETTER BA
+1E905 ; mapped ; 1E927 # 9.0 ADLAM CAPITAL LETTER SINNYIIYHE
+1E906 ; mapped ; 1E928 # 9.0 ADLAM CAPITAL LETTER PE
+1E907 ; mapped ; 1E929 # 9.0 ADLAM CAPITAL LETTER BHE
+1E908 ; mapped ; 1E92A # 9.0 ADLAM CAPITAL LETTER RA
+1E909 ; mapped ; 1E92B # 9.0 ADLAM CAPITAL LETTER E
+1E90A ; mapped ; 1E92C # 9.0 ADLAM CAPITAL LETTER FA
+1E90B ; mapped ; 1E92D # 9.0 ADLAM CAPITAL LETTER I
+1E90C ; mapped ; 1E92E # 9.0 ADLAM CAPITAL LETTER O
+1E90D ; mapped ; 1E92F # 9.0 ADLAM CAPITAL LETTER DHA
+1E90E ; mapped ; 1E930 # 9.0 ADLAM CAPITAL LETTER YHE
+1E90F ; mapped ; 1E931 # 9.0 ADLAM CAPITAL LETTER WAW
+1E910 ; mapped ; 1E932 # 9.0 ADLAM CAPITAL LETTER NUN
+1E911 ; mapped ; 1E933 # 9.0 ADLAM CAPITAL LETTER KAF
+1E912 ; mapped ; 1E934 # 9.0 ADLAM CAPITAL LETTER YA
+1E913 ; mapped ; 1E935 # 9.0 ADLAM CAPITAL LETTER U
+1E914 ; mapped ; 1E936 # 9.0 ADLAM CAPITAL LETTER JIIM
+1E915 ; mapped ; 1E937 # 9.0 ADLAM CAPITAL LETTER CHI
+1E916 ; mapped ; 1E938 # 9.0 ADLAM CAPITAL LETTER HA
+1E917 ; mapped ; 1E939 # 9.0 ADLAM CAPITAL LETTER QAAF
+1E918 ; mapped ; 1E93A # 9.0 ADLAM CAPITAL LETTER GA
+1E919 ; mapped ; 1E93B # 9.0 ADLAM CAPITAL LETTER NYA
+1E91A ; mapped ; 1E93C # 9.0 ADLAM CAPITAL LETTER TU
+1E91B ; mapped ; 1E93D # 9.0 ADLAM CAPITAL LETTER NHA
+1E91C ; mapped ; 1E93E # 9.0 ADLAM CAPITAL LETTER VA
+1E91D ; mapped ; 1E93F # 9.0 ADLAM CAPITAL LETTER KHA
+1E91E ; mapped ; 1E940 # 9.0 ADLAM CAPITAL LETTER GBE
+1E91F ; mapped ; 1E941 # 9.0 ADLAM CAPITAL LETTER ZAL
+1E920 ; mapped ; 1E942 # 9.0 ADLAM CAPITAL LETTER KPO
+1E921 ; mapped ; 1E943 # 9.0 ADLAM CAPITAL LETTER SHA
+1E922..1E94A ; valid # 9.0 ADLAM SMALL LETTER ALIF..ADLAM NUKTA
+1E94B ; valid # 12.0 ADLAM NASALIZATION MARK
+1E94C..1E94F ; disallowed # NA <reserved-1E94C>..<reserved-1E94F>
+1E950..1E959 ; valid # 9.0 ADLAM DIGIT ZERO..ADLAM DIGIT NINE
+1E95A..1E95D ; disallowed # NA <reserved-1E95A>..<reserved-1E95D>
+1E95E..1E95F ; valid ; ; NV8 # 9.0 ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
+1E960..1EC70 ; disallowed # NA <reserved-1E960>..<reserved-1EC70>
+1EC71..1ECB4 ; valid ; ; NV8 # 11.0 INDIC SIYAQ NUMBER ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ECB5..1ED00 ; disallowed # NA <reserved-1ECB5>..<reserved-1ED00>
+1ED01..1ED3D ; valid ; ; NV8 # 12.0 OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ FRACTION ONE SIXTH
+1ED3E..1EDFF ; disallowed # NA <reserved-1ED3E>..<reserved-1EDFF>
+1EE00 ; mapped ; 0627 # 6.1 ARABIC MATHEMATICAL ALEF
+1EE01 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL BEH
+1EE02 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL JEEM
+1EE03 ; mapped ; 062F # 6.1 ARABIC MATHEMATICAL DAL
+1EE04 ; disallowed # NA <reserved-1EE04>
+1EE05 ; mapped ; 0648 # 6.1 ARABIC MATHEMATICAL WAW
+1EE06 ; mapped ; 0632 # 6.1 ARABIC MATHEMATICAL ZAIN
+1EE07 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL HAH
+1EE08 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL TAH
+1EE09 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL YEH
+1EE0A ; mapped ; 0643 # 6.1 ARABIC MATHEMATICAL KAF
+1EE0B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL LAM
+1EE0C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL MEEM
+1EE0D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL NOON
+1EE0E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL SEEN
+1EE0F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL AIN
+1EE10 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL FEH
+1EE11 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL SAD
+1EE12 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL QAF
+1EE13 ; mapped ; 0631 # 6.1 ARABIC MATHEMATICAL REH
+1EE14 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL SHEEN
+1EE15 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL TEH
+1EE16 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL THEH
+1EE17 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL KHAH
+1EE18 ; mapped ; 0630 # 6.1 ARABIC MATHEMATICAL THAL
+1EE19 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL DAD
+1EE1A ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL ZAH
+1EE1B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL GHAIN
+1EE1C ; mapped ; 066E # 6.1 ARABIC MATHEMATICAL DOTLESS BEH
+1EE1D ; mapped ; 06BA # 6.1 ARABIC MATHEMATICAL DOTLESS NOON
+1EE1E ; mapped ; 06A1 # 6.1 ARABIC MATHEMATICAL DOTLESS FEH
+1EE1F ; mapped ; 066F # 6.1 ARABIC MATHEMATICAL DOTLESS QAF
+1EE20 ; disallowed # NA <reserved-1EE20>
+1EE21 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL INITIAL BEH
+1EE22 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL INITIAL JEEM
+1EE23 ; disallowed # NA <reserved-1EE23>
+1EE24 ; mapped ; 0647 # 6.1 ARABIC MATHEMATICAL INITIAL HEH
+1EE25..1EE26 ; disallowed # NA <reserved-1EE25>..<reserved-1EE26>
+1EE27 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL INITIAL HAH
+1EE28 ; disallowed # NA <reserved-1EE28>
+1EE29 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL INITIAL YEH
+1EE2A ; mapped ; 0643 # 6.1 ARABIC MATHEMATICAL INITIAL KAF
+1EE2B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL INITIAL LAM
+1EE2C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL INITIAL MEEM
+1EE2D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL INITIAL NOON
+1EE2E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL INITIAL SEEN
+1EE2F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL INITIAL AIN
+1EE30 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL INITIAL FEH
+1EE31 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL INITIAL SAD
+1EE32 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL INITIAL QAF
+1EE33 ; disallowed # NA <reserved-1EE33>
+1EE34 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL INITIAL SHEEN
+1EE35 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL INITIAL TEH
+1EE36 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL INITIAL THEH
+1EE37 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL INITIAL KHAH
+1EE38 ; disallowed # NA <reserved-1EE38>
+1EE39 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL INITIAL DAD
+1EE3A ; disallowed # NA <reserved-1EE3A>
+1EE3B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL INITIAL GHAIN
+1EE3C..1EE41 ; disallowed # NA <reserved-1EE3C>..<reserved-1EE41>
+1EE42 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL TAILED JEEM
+1EE43..1EE46 ; disallowed # NA <reserved-1EE43>..<reserved-1EE46>
+1EE47 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL TAILED HAH
+1EE48 ; disallowed # NA <reserved-1EE48>
+1EE49 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL TAILED YEH
+1EE4A ; disallowed # NA <reserved-1EE4A>
+1EE4B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL TAILED LAM
+1EE4C ; disallowed # NA <reserved-1EE4C>
+1EE4D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL TAILED NOON
+1EE4E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL TAILED SEEN
+1EE4F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL TAILED AIN
+1EE50 ; disallowed # NA <reserved-1EE50>
+1EE51 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL TAILED SAD
+1EE52 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL TAILED QAF
+1EE53 ; disallowed # NA <reserved-1EE53>
+1EE54 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL TAILED SHEEN
+1EE55..1EE56 ; disallowed # NA <reserved-1EE55>..<reserved-1EE56>
+1EE57 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL TAILED KHAH
+1EE58 ; disallowed # NA <reserved-1EE58>
+1EE59 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL TAILED DAD
+1EE5A ; disallowed # NA <reserved-1EE5A>
+1EE5B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL TAILED GHAIN
+1EE5C ; disallowed # NA <reserved-1EE5C>
+1EE5D ; mapped ; 06BA # 6.1 ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5E ; disallowed # NA <reserved-1EE5E>
+1EE5F ; mapped ; 066F # 6.1 ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE60 ; disallowed # NA <reserved-1EE60>
+1EE61 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL STRETCHED BEH
+1EE62 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL STRETCHED JEEM
+1EE63 ; disallowed # NA <reserved-1EE63>
+1EE64 ; mapped ; 0647 # 6.1 ARABIC MATHEMATICAL STRETCHED HEH
+1EE65..1EE66 ; disallowed # NA <reserved-1EE65>..<reserved-1EE66>
+1EE67 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL STRETCHED HAH
+1EE68 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL STRETCHED TAH
+1EE69 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL STRETCHED YEH
+1EE6A ; mapped ; 0643 # 6.1 ARABIC MATHEMATICAL STRETCHED KAF
+1EE6B ; disallowed # NA <reserved-1EE6B>
+1EE6C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL STRETCHED MEEM
+1EE6D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL STRETCHED NOON
+1EE6E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL STRETCHED SEEN
+1EE6F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL STRETCHED AIN
+1EE70 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL STRETCHED FEH
+1EE71 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL STRETCHED SAD
+1EE72 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL STRETCHED QAF
+1EE73 ; disallowed # NA <reserved-1EE73>
+1EE74 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL STRETCHED SHEEN
+1EE75 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL STRETCHED TEH
+1EE76 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL STRETCHED THEH
+1EE77 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL STRETCHED KHAH
+1EE78 ; disallowed # NA <reserved-1EE78>
+1EE79 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL STRETCHED DAD
+1EE7A ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL STRETCHED ZAH
+1EE7B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL STRETCHED GHAIN
+1EE7C ; mapped ; 066E # 6.1 ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7D ; disallowed # NA <reserved-1EE7D>
+1EE7E ; mapped ; 06A1 # 6.1 ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE7F ; disallowed # NA <reserved-1EE7F>
+1EE80 ; mapped ; 0627 # 6.1 ARABIC MATHEMATICAL LOOPED ALEF
+1EE81 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL LOOPED BEH
+1EE82 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL LOOPED JEEM
+1EE83 ; mapped ; 062F # 6.1 ARABIC MATHEMATICAL LOOPED DAL
+1EE84 ; mapped ; 0647 # 6.1 ARABIC MATHEMATICAL LOOPED HEH
+1EE85 ; mapped ; 0648 # 6.1 ARABIC MATHEMATICAL LOOPED WAW
+1EE86 ; mapped ; 0632 # 6.1 ARABIC MATHEMATICAL LOOPED ZAIN
+1EE87 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL LOOPED HAH
+1EE88 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL LOOPED TAH
+1EE89 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL LOOPED YEH
+1EE8A ; disallowed # NA <reserved-1EE8A>
+1EE8B ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL LOOPED LAM
+1EE8C ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL LOOPED MEEM
+1EE8D ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL LOOPED NOON
+1EE8E ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL LOOPED SEEN
+1EE8F ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL LOOPED AIN
+1EE90 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL LOOPED FEH
+1EE91 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL LOOPED SAD
+1EE92 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL LOOPED QAF
+1EE93 ; mapped ; 0631 # 6.1 ARABIC MATHEMATICAL LOOPED REH
+1EE94 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL LOOPED SHEEN
+1EE95 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL LOOPED TEH
+1EE96 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL LOOPED THEH
+1EE97 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL LOOPED KHAH
+1EE98 ; mapped ; 0630 # 6.1 ARABIC MATHEMATICAL LOOPED THAL
+1EE99 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL LOOPED DAD
+1EE9A ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL LOOPED ZAH
+1EE9B ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL LOOPED GHAIN
+1EE9C..1EEA0 ; disallowed # NA <reserved-1EE9C>..<reserved-1EEA0>
+1EEA1 ; mapped ; 0628 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK BEH
+1EEA2 ; mapped ; 062C # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM
+1EEA3 ; mapped ; 062F # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA4 ; disallowed # NA <reserved-1EEA4>
+1EEA5 ; mapped ; 0648 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK WAW
+1EEA6 ; mapped ; 0632 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN
+1EEA7 ; mapped ; 062D # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK HAH
+1EEA8 ; mapped ; 0637 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK TAH
+1EEA9 ; mapped ; 064A # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAA ; disallowed # NA <reserved-1EEAA>
+1EEAB ; mapped ; 0644 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK LAM
+1EEAC ; mapped ; 0645 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM
+1EEAD ; mapped ; 0646 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK NOON
+1EEAE ; mapped ; 0633 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN
+1EEAF ; mapped ; 0639 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK AIN
+1EEB0 ; mapped ; 0641 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK FEH
+1EEB1 ; mapped ; 0635 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK SAD
+1EEB2 ; mapped ; 0642 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK QAF
+1EEB3 ; mapped ; 0631 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK REH
+1EEB4 ; mapped ; 0634 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN
+1EEB5 ; mapped ; 062A # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK TEH
+1EEB6 ; mapped ; 062B # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK THEH
+1EEB7 ; mapped ; 062E # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH
+1EEB8 ; mapped ; 0630 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK THAL
+1EEB9 ; mapped ; 0636 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK DAD
+1EEBA ; mapped ; 0638 # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH
+1EEBB ; mapped ; 063A # 6.1 ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEBC..1EEEF ; disallowed # NA <reserved-1EEBC>..<reserved-1EEEF>
+1EEF0..1EEF1 ; valid ; ; NV8 # 6.1 ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1EEF2..1EFFF ; disallowed # NA <reserved-1EEF2>..<reserved-1EFFF>
+1F000..1F02B ; valid ; ; NV8 # 5.1 MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F02C..1F02F ; disallowed # NA <reserved-1F02C>..<reserved-1F02F>
+1F030..1F093 ; valid ; ; NV8 # 5.1 DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F094..1F09F ; disallowed # NA <reserved-1F094>..<reserved-1F09F>
+1F0A0..1F0AE ; valid ; ; NV8 # 6.0 PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+1F0AF..1F0B0 ; disallowed # NA <reserved-1F0AF>..<reserved-1F0B0>
+1F0B1..1F0BE ; valid ; ; NV8 # 6.0 PLAYING CARD ACE OF HEARTS..PLAYING CARD KING OF HEARTS
+1F0BF ; valid ; ; NV8 # 7.0 PLAYING CARD RED JOKER
+1F0C0 ; disallowed # NA <reserved-1F0C0>
+1F0C1..1F0CF ; valid ; ; NV8 # 6.0 PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
+1F0D0 ; disallowed # NA <reserved-1F0D0>
+1F0D1..1F0DF ; valid ; ; NV8 # 6.0 PLAYING CARD ACE OF CLUBS..PLAYING CARD WHITE JOKER
+1F0E0..1F0F5 ; valid ; ; NV8 # 7.0 PLAYING CARD FOOL..PLAYING CARD TRUMP-21
+1F0F6..1F0FF ; disallowed # NA <reserved-1F0F6>..<reserved-1F0FF>
+1F100 ; disallowed # 5.2 DIGIT ZERO FULL STOP
+1F101 ; disallowed_STD3_mapped ; 0030 002C # 5.2 DIGIT ZERO COMMA
+1F102 ; disallowed_STD3_mapped ; 0031 002C # 5.2 DIGIT ONE COMMA
+1F103 ; disallowed_STD3_mapped ; 0032 002C # 5.2 DIGIT TWO COMMA
+1F104 ; disallowed_STD3_mapped ; 0033 002C # 5.2 DIGIT THREE COMMA
+1F105 ; disallowed_STD3_mapped ; 0034 002C # 5.2 DIGIT FOUR COMMA
+1F106 ; disallowed_STD3_mapped ; 0035 002C # 5.2 DIGIT FIVE COMMA
+1F107 ; disallowed_STD3_mapped ; 0036 002C # 5.2 DIGIT SIX COMMA
+1F108 ; disallowed_STD3_mapped ; 0037 002C # 5.2 DIGIT SEVEN COMMA
+1F109 ; disallowed_STD3_mapped ; 0038 002C # 5.2 DIGIT EIGHT COMMA
+1F10A ; disallowed_STD3_mapped ; 0039 002C # 5.2 DIGIT NINE COMMA
+1F10B..1F10C ; valid ; ; NV8 # 7.0 DINGBAT CIRCLED SANS-SERIF DIGIT ZERO..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F10D..1F10F ; valid ; ; NV8 # 13.0 CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+1F110 ; disallowed_STD3_mapped ; 0028 0061 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER A
+1F111 ; disallowed_STD3_mapped ; 0028 0062 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER B
+1F112 ; disallowed_STD3_mapped ; 0028 0063 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER C
+1F113 ; disallowed_STD3_mapped ; 0028 0064 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER D
+1F114 ; disallowed_STD3_mapped ; 0028 0065 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER E
+1F115 ; disallowed_STD3_mapped ; 0028 0066 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER F
+1F116 ; disallowed_STD3_mapped ; 0028 0067 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER G
+1F117 ; disallowed_STD3_mapped ; 0028 0068 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER H
+1F118 ; disallowed_STD3_mapped ; 0028 0069 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER I
+1F119 ; disallowed_STD3_mapped ; 0028 006A 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER J
+1F11A ; disallowed_STD3_mapped ; 0028 006B 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER K
+1F11B ; disallowed_STD3_mapped ; 0028 006C 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER L
+1F11C ; disallowed_STD3_mapped ; 0028 006D 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER M
+1F11D ; disallowed_STD3_mapped ; 0028 006E 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER N
+1F11E ; disallowed_STD3_mapped ; 0028 006F 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER O
+1F11F ; disallowed_STD3_mapped ; 0028 0070 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER P
+1F120 ; disallowed_STD3_mapped ; 0028 0071 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER Q
+1F121 ; disallowed_STD3_mapped ; 0028 0072 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER R
+1F122 ; disallowed_STD3_mapped ; 0028 0073 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER S
+1F123 ; disallowed_STD3_mapped ; 0028 0074 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER T
+1F124 ; disallowed_STD3_mapped ; 0028 0075 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER U
+1F125 ; disallowed_STD3_mapped ; 0028 0076 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER V
+1F126 ; disallowed_STD3_mapped ; 0028 0077 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER W
+1F127 ; disallowed_STD3_mapped ; 0028 0078 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER X
+1F128 ; disallowed_STD3_mapped ; 0028 0079 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER Y
+1F129 ; disallowed_STD3_mapped ; 0028 007A 0029 #5.2 PARENTHESIZED LATIN CAPITAL LETTER Z
+1F12A ; mapped ; 3014 0073 3015 #5.2 TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
+1F12B ; mapped ; 0063 # 5.2 CIRCLED ITALIC LATIN CAPITAL LETTER C
+1F12C ; mapped ; 0072 # 5.2 CIRCLED ITALIC LATIN CAPITAL LETTER R
+1F12D ; mapped ; 0063 0064 # 5.2 CIRCLED CD
+1F12E ; mapped ; 0077 007A # 5.2 CIRCLED WZ
+1F12F ; valid ; ; NV8 # 11.0 COPYLEFT SYMBOL
+1F130 ; mapped ; 0061 # 6.0 SQUARED LATIN CAPITAL LETTER A
+1F131 ; mapped ; 0062 # 5.2 SQUARED LATIN CAPITAL LETTER B
+1F132 ; mapped ; 0063 # 6.0 SQUARED LATIN CAPITAL LETTER C
+1F133 ; mapped ; 0064 # 6.0 SQUARED LATIN CAPITAL LETTER D
+1F134 ; mapped ; 0065 # 6.0 SQUARED LATIN CAPITAL LETTER E
+1F135 ; mapped ; 0066 # 6.0 SQUARED LATIN CAPITAL LETTER F
+1F136 ; mapped ; 0067 # 6.0 SQUARED LATIN CAPITAL LETTER G
+1F137 ; mapped ; 0068 # 6.0 SQUARED LATIN CAPITAL LETTER H
+1F138 ; mapped ; 0069 # 6.0 SQUARED LATIN CAPITAL LETTER I
+1F139 ; mapped ; 006A # 6.0 SQUARED LATIN CAPITAL LETTER J
+1F13A ; mapped ; 006B # 6.0 SQUARED LATIN CAPITAL LETTER K
+1F13B ; mapped ; 006C # 6.0 SQUARED LATIN CAPITAL LETTER L
+1F13C ; mapped ; 006D # 6.0 SQUARED LATIN CAPITAL LETTER M
+1F13D ; mapped ; 006E # 5.2 SQUARED LATIN CAPITAL LETTER N
+1F13E ; mapped ; 006F # 6.0 SQUARED LATIN CAPITAL LETTER O
+1F13F ; mapped ; 0070 # 5.2 SQUARED LATIN CAPITAL LETTER P
+1F140 ; mapped ; 0071 # 6.0 SQUARED LATIN CAPITAL LETTER Q
+1F141 ; mapped ; 0072 # 6.0 SQUARED LATIN CAPITAL LETTER R
+1F142 ; mapped ; 0073 # 5.2 SQUARED LATIN CAPITAL LETTER S
+1F143 ; mapped ; 0074 # 6.0 SQUARED LATIN CAPITAL LETTER T
+1F144 ; mapped ; 0075 # 6.0 SQUARED LATIN CAPITAL LETTER U
+1F145 ; mapped ; 0076 # 6.0 SQUARED LATIN CAPITAL LETTER V
+1F146 ; mapped ; 0077 # 5.2 SQUARED LATIN CAPITAL LETTER W
+1F147 ; mapped ; 0078 # 6.0 SQUARED LATIN CAPITAL LETTER X
+1F148 ; mapped ; 0079 # 6.0 SQUARED LATIN CAPITAL LETTER Y
+1F149 ; mapped ; 007A # 6.0 SQUARED LATIN CAPITAL LETTER Z
+1F14A ; mapped ; 0068 0076 # 5.2 SQUARED HV
+1F14B ; mapped ; 006D 0076 # 5.2 SQUARED MV
+1F14C ; mapped ; 0073 0064 # 5.2 SQUARED SD
+1F14D ; mapped ; 0073 0073 # 5.2 SQUARED SS
+1F14E ; mapped ; 0070 0070 0076 #5.2 SQUARED PPV
+1F14F ; mapped ; 0077 0063 # 6.0 SQUARED WC
+1F150..1F156 ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER G
+1F157 ; valid ; ; NV8 # 5.2 NEGATIVE CIRCLED LATIN CAPITAL LETTER H
+1F158..1F15E ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED LATIN CAPITAL LETTER I..NEGATIVE CIRCLED LATIN CAPITAL LETTER O
+1F15F ; valid ; ; NV8 # 5.2 NEGATIVE CIRCLED LATIN CAPITAL LETTER P
+1F160..1F169 ; valid ; ; NV8 # 6.0 NEGATIVE CIRCLED LATIN CAPITAL LETTER Q..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F16A ; mapped ; 006D 0063 # 6.1 RAISED MC SIGN
+1F16B ; mapped ; 006D 0064 # 6.1 RAISED MD SIGN
+1F16C ; mapped ; 006D 0072 # 12.0 RAISED MR SIGN
+1F16D..1F16F ; valid ; ; NV8 # 13.0 CIRCLED CC..CIRCLED HUMAN FIGURE
+1F170..1F178 ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER I
+1F179 ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED LATIN CAPITAL LETTER J
+1F17A ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER K
+1F17B..1F17C ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED LATIN CAPITAL LETTER L..NEGATIVE SQUARED LATIN CAPITAL LETTER M
+1F17D..1F17E ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER N..NEGATIVE SQUARED LATIN CAPITAL LETTER O
+1F17F ; valid ; ; NV8 # 5.2 NEGATIVE SQUARED LATIN CAPITAL LETTER P
+1F180..1F189 ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED LATIN CAPITAL LETTER Q..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
+1F18A..1F18D ; valid ; ; NV8 # 5.2 CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P..NEGATIVE SQUARED SA
+1F18E..1F18F ; valid ; ; NV8 # 6.0 NEGATIVE SQUARED AB..NEGATIVE SQUARED WC
+1F190 ; mapped ; 0064 006A # 5.2 SQUARE DJ
+1F191..1F19A ; valid ; ; NV8 # 6.0 SQUARED CL..SQUARED VS
+1F19B..1F1AC ; valid ; ; NV8 # 9.0 SQUARED THREE D..SQUARED VOD
+1F1AD ; valid ; ; NV8 # 13.0 MASK WORK SYMBOL
+1F1AE..1F1E5 ; disallowed # NA <reserved-1F1AE>..<reserved-1F1E5>
+1F1E6..1F1FF ; valid ; ; NV8 # 6.0 REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+1F200 ; mapped ; 307B 304B # 5.2 SQUARE HIRAGANA HOKA
+1F201 ; mapped ; 30B3 30B3 # 6.0 SQUARED KATAKANA KOKO
+1F202 ; mapped ; 30B5 # 6.0 SQUARED KATAKANA SA
+1F203..1F20F ; disallowed # NA <reserved-1F203>..<reserved-1F20F>
+1F210 ; mapped ; 624B # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-624B
+1F211 ; mapped ; 5B57 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5B57
+1F212 ; mapped ; 53CC # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-53CC
+1F213 ; mapped ; 30C7 # 5.2 SQUARED KATAKANA DE
+1F214 ; mapped ; 4E8C # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E8C
+1F215 ; mapped ; 591A # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-591A
+1F216 ; mapped ; 89E3 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-89E3
+1F217 ; mapped ; 5929 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5929
+1F218 ; mapped ; 4EA4 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4EA4
+1F219 ; mapped ; 6620 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6620
+1F21A ; mapped ; 7121 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-7121
+1F21B ; mapped ; 6599 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6599
+1F21C ; mapped ; 524D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-524D
+1F21D ; mapped ; 5F8C # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5F8C
+1F21E ; mapped ; 518D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-518D
+1F21F ; mapped ; 65B0 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-65B0
+1F220 ; mapped ; 521D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-521D
+1F221 ; mapped ; 7D42 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-7D42
+1F222 ; mapped ; 751F # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-751F
+1F223 ; mapped ; 8CA9 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-8CA9
+1F224 ; mapped ; 58F0 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-58F0
+1F225 ; mapped ; 5439 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5439
+1F226 ; mapped ; 6F14 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6F14
+1F227 ; mapped ; 6295 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6295
+1F228 ; mapped ; 6355 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6355
+1F229 ; mapped ; 4E00 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E00
+1F22A ; mapped ; 4E09 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E09
+1F22B ; mapped ; 904A # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-904A
+1F22C ; mapped ; 5DE6 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-5DE6
+1F22D ; mapped ; 4E2D # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-4E2D
+1F22E ; mapped ; 53F3 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-53F3
+1F22F ; mapped ; 6307 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6307
+1F230 ; mapped ; 8D70 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-8D70
+1F231 ; mapped ; 6253 # 5.2 SQUARED CJK UNIFIED IDEOGRAPH-6253
+1F232 ; mapped ; 7981 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-7981
+1F233 ; mapped ; 7A7A # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-7A7A
+1F234 ; mapped ; 5408 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-5408
+1F235 ; mapped ; 6E80 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-6E80
+1F236 ; mapped ; 6709 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-6709
+1F237 ; mapped ; 6708 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-6708
+1F238 ; mapped ; 7533 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-7533
+1F239 ; mapped ; 5272 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-5272
+1F23A ; mapped ; 55B6 # 6.0 SQUARED CJK UNIFIED IDEOGRAPH-55B6
+1F23B ; mapped ; 914D # 9.0 SQUARED CJK UNIFIED IDEOGRAPH-914D
+1F23C..1F23F ; disallowed # NA <reserved-1F23C>..<reserved-1F23F>
+1F240 ; mapped ; 3014 672C 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
+1F241 ; mapped ; 3014 4E09 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
+1F242 ; mapped ; 3014 4E8C 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
+1F243 ; mapped ; 3014 5B89 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
+1F244 ; mapped ; 3014 70B9 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
+1F245 ; mapped ; 3014 6253 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
+1F246 ; mapped ; 3014 76D7 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
+1F247 ; mapped ; 3014 52DD 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
+1F248 ; mapped ; 3014 6557 3015 #5.2 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F249..1F24F ; disallowed # NA <reserved-1F249>..<reserved-1F24F>
+1F250 ; mapped ; 5F97 # 6.0 CIRCLED IDEOGRAPH ADVANTAGE
+1F251 ; mapped ; 53EF # 6.0 CIRCLED IDEOGRAPH ACCEPT
+1F252..1F25F ; disallowed # NA <reserved-1F252>..<reserved-1F25F>
+1F260..1F265 ; valid ; ; NV8 # 10.0 ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
+1F266..1F2FF ; disallowed # NA <reserved-1F266>..<reserved-1F2FF>
+1F300..1F320 ; valid ; ; NV8 # 6.0 CYCLONE..SHOOTING STAR
+1F321..1F32C ; valid ; ; NV8 # 7.0 THERMOMETER..WIND BLOWING FACE
+1F32D..1F32F ; valid ; ; NV8 # 8.0 HOT DOG..BURRITO
+1F330..1F335 ; valid ; ; NV8 # 6.0 CHESTNUT..CACTUS
+1F336 ; valid ; ; NV8 # 7.0 HOT PEPPER
+1F337..1F37C ; valid ; ; NV8 # 6.0 TULIP..BABY BOTTLE
+1F37D ; valid ; ; NV8 # 7.0 FORK AND KNIFE WITH PLATE
+1F37E..1F37F ; valid ; ; NV8 # 8.0 BOTTLE WITH POPPING CORK..POPCORN
+1F380..1F393 ; valid ; ; NV8 # 6.0 RIBBON..GRADUATION CAP
+1F394..1F39F ; valid ; ; NV8 # 7.0 HEART WITH TIP ON THE LEFT..ADMISSION TICKETS
+1F3A0..1F3C4 ; valid ; ; NV8 # 6.0 CAROUSEL HORSE..SURFER
+1F3C5 ; valid ; ; NV8 # 7.0 SPORTS MEDAL
+1F3C6..1F3CA ; valid ; ; NV8 # 6.0 TROPHY..SWIMMER
+1F3CB..1F3CE ; valid ; ; NV8 # 7.0 WEIGHT LIFTER..RACING CAR
+1F3CF..1F3D3 ; valid ; ; NV8 # 8.0 CRICKET BAT AND BALL..TABLE TENNIS PADDLE AND BALL
+1F3D4..1F3DF ; valid ; ; NV8 # 7.0 SNOW CAPPED MOUNTAIN..STADIUM
+1F3E0..1F3F0 ; valid ; ; NV8 # 6.0 HOUSE BUILDING..EUROPEAN CASTLE
+1F3F1..1F3F7 ; valid ; ; NV8 # 7.0 WHITE PENNANT..LABEL
+1F3F8..1F3FF ; valid ; ; NV8 # 8.0 BADMINTON RACQUET AND SHUTTLECOCK..EMOJI MODIFIER FITZPATRICK TYPE-6
+1F400..1F43E ; valid ; ; NV8 # 6.0 RAT..PAW PRINTS
+1F43F ; valid ; ; NV8 # 7.0 CHIPMUNK
+1F440 ; valid ; ; NV8 # 6.0 EYES
+1F441 ; valid ; ; NV8 # 7.0 EYE
+1F442..1F4F7 ; valid ; ; NV8 # 6.0 EAR..CAMERA
+1F4F8 ; valid ; ; NV8 # 7.0 CAMERA WITH FLASH
+1F4F9..1F4FC ; valid ; ; NV8 # 6.0 VIDEO CAMERA..VIDEOCASSETTE
+1F4FD..1F4FE ; valid ; ; NV8 # 7.0 FILM PROJECTOR..PORTABLE STEREO
+1F4FF ; valid ; ; NV8 # 8.0 PRAYER BEADS
+1F500..1F53D ; valid ; ; NV8 # 6.0 TWISTED RIGHTWARDS ARROWS..DOWN-POINTING SMALL RED TRIANGLE
+1F53E..1F53F ; valid ; ; NV8 # 7.0 LOWER RIGHT SHADOWED WHITE CIRCLE..UPPER RIGHT SHADOWED WHITE CIRCLE
+1F540..1F543 ; valid ; ; NV8 # 6.1 CIRCLED CROSS POMMEE..NOTCHED LEFT SEMICIRCLE WITH THREE DOTS
+1F544..1F54A ; valid ; ; NV8 # 7.0 NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS..DOVE OF PEACE
+1F54B..1F54F ; valid ; ; NV8 # 8.0 KAABA..BOWL OF HYGIEIA
+1F550..1F567 ; valid ; ; NV8 # 6.0 CLOCK FACE ONE OCLOCK..CLOCK FACE TWELVE-THIRTY
+1F568..1F579 ; valid ; ; NV8 # 7.0 RIGHT SPEAKER..JOYSTICK
+1F57A ; valid ; ; NV8 # 9.0 MAN DANCING
+1F57B..1F5A3 ; valid ; ; NV8 # 7.0 LEFT HAND TELEPHONE RECEIVER..BLACK DOWN POINTING BACKHAND INDEX
+1F5A4 ; valid ; ; NV8 # 9.0 BLACK HEART
+1F5A5..1F5FA ; valid ; ; NV8 # 7.0 DESKTOP COMPUTER..WORLD MAP
+1F5FB..1F5FF ; valid ; ; NV8 # 6.0 MOUNT FUJI..MOYAI
+1F600 ; valid ; ; NV8 # 6.1 GRINNING FACE
+1F601..1F610 ; valid ; ; NV8 # 6.0 GRINNING FACE WITH SMILING EYES..NEUTRAL FACE
+1F611 ; valid ; ; NV8 # 6.1 EXPRESSIONLESS FACE
+1F612..1F614 ; valid ; ; NV8 # 6.0 UNAMUSED FACE..PENSIVE FACE
+1F615 ; valid ; ; NV8 # 6.1 CONFUSED FACE
+1F616 ; valid ; ; NV8 # 6.0 CONFOUNDED FACE
+1F617 ; valid ; ; NV8 # 6.1 KISSING FACE
+1F618 ; valid ; ; NV8 # 6.0 FACE THROWING A KISS
+1F619 ; valid ; ; NV8 # 6.1 KISSING FACE WITH SMILING EYES
+1F61A ; valid ; ; NV8 # 6.0 KISSING FACE WITH CLOSED EYES
+1F61B ; valid ; ; NV8 # 6.1 FACE WITH STUCK-OUT TONGUE
+1F61C..1F61E ; valid ; ; NV8 # 6.0 FACE WITH STUCK-OUT TONGUE AND WINKING EYE..DISAPPOINTED FACE
+1F61F ; valid ; ; NV8 # 6.1 WORRIED FACE
+1F620..1F625 ; valid ; ; NV8 # 6.0 ANGRY FACE..DISAPPOINTED BUT RELIEVED FACE
+1F626..1F627 ; valid ; ; NV8 # 6.1 FROWNING FACE WITH OPEN MOUTH..ANGUISHED FACE
+1F628..1F62B ; valid ; ; NV8 # 6.0 FEARFUL FACE..TIRED FACE
+1F62C ; valid ; ; NV8 # 6.1 GRIMACING FACE
+1F62D ; valid ; ; NV8 # 6.0 LOUDLY CRYING FACE
+1F62E..1F62F ; valid ; ; NV8 # 6.1 FACE WITH OPEN MOUTH..HUSHED FACE
+1F630..1F633 ; valid ; ; NV8 # 6.0 FACE WITH OPEN MOUTH AND COLD SWEAT..FLUSHED FACE
+1F634 ; valid ; ; NV8 # 6.1 SLEEPING FACE
+1F635..1F640 ; valid ; ; NV8 # 6.0 DIZZY FACE..WEARY CAT FACE
+1F641..1F642 ; valid ; ; NV8 # 7.0 SLIGHTLY FROWNING FACE..SLIGHTLY SMILING FACE
+1F643..1F644 ; valid ; ; NV8 # 8.0 UPSIDE-DOWN FACE..FACE WITH ROLLING EYES
+1F645..1F64F ; valid ; ; NV8 # 6.0 FACE WITH NO GOOD GESTURE..PERSON WITH FOLDED HANDS
+1F650..1F67F ; valid ; ; NV8 # 7.0 NORTH WEST POINTING LEAF..REVERSE CHECKER BOARD
+1F680..1F6C5 ; valid ; ; NV8 # 6.0 ROCKET..LEFT LUGGAGE
+1F6C6..1F6CF ; valid ; ; NV8 # 7.0 TRIANGLE WITH ROUNDED CORNERS..BED
+1F6D0 ; valid ; ; NV8 # 8.0 PLACE OF WORSHIP
+1F6D1..1F6D2 ; valid ; ; NV8 # 9.0 OCTAGONAL SIGN..SHOPPING TROLLEY
+1F6D3..1F6D4 ; valid ; ; NV8 # 10.0 STUPA..PAGODA
+1F6D5 ; valid ; ; NV8 # 12.0 HINDU TEMPLE
+1F6D6..1F6D7 ; valid ; ; NV8 # 13.0 HUT..ELEVATOR
+1F6D8..1F6DB ; disallowed # NA <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC ; valid ; ; NV8 # 15.0 WIRELESS
+1F6DD..1F6DF ; valid ; ; NV8 # 14.0 PLAYGROUND SLIDE..RING BUOY
+1F6E0..1F6EC ; valid ; ; NV8 # 7.0 HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6ED..1F6EF ; disallowed # NA <reserved-1F6ED>..<reserved-1F6EF>
+1F6F0..1F6F3 ; valid ; ; NV8 # 7.0 SATELLITE..PASSENGER SHIP
+1F6F4..1F6F6 ; valid ; ; NV8 # 9.0 SCOOTER..CANOE
+1F6F7..1F6F8 ; valid ; ; NV8 # 10.0 SLED..FLYING SAUCER
+1F6F9 ; valid ; ; NV8 # 11.0 SKATEBOARD
+1F6FA ; valid ; ; NV8 # 12.0 AUTO RICKSHAW
+1F6FB..1F6FC ; valid ; ; NV8 # 13.0 PICKUP TRUCK..ROLLER SKATE
+1F6FD..1F6FF ; disallowed # NA <reserved-1F6FD>..<reserved-1F6FF>
+1F700..1F773 ; valid ; ; NV8 # 6.0 ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F774..1F776 ; valid ; ; NV8 # 15.0 LOT OF FORTUNE..LUNAR ECLIPSE
+1F777..1F77A ; disallowed # NA <reserved-1F777>..<reserved-1F77A>
+1F77B..1F77F ; valid ; ; NV8 # 15.0 HAUMEA..ORCUS
+1F780..1F7D4 ; valid ; ; NV8 # 7.0 BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F7D5..1F7D8 ; valid ; ; NV8 # 11.0 CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F7D9 ; valid ; ; NV8 # 15.0 NINE POINTED WHITE STAR
+1F7DA..1F7DF ; disallowed # NA <reserved-1F7DA>..<reserved-1F7DF>
+1F7E0..1F7EB ; valid ; ; NV8 # 12.0 LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
+1F7EC..1F7EF ; disallowed # NA <reserved-1F7EC>..<reserved-1F7EF>
+1F7F0 ; valid ; ; NV8 # 14.0 HEAVY EQUALS SIGN
+1F7F1..1F7FF ; disallowed # NA <reserved-1F7F1>..<reserved-1F7FF>
+1F800..1F80B ; valid ; ; NV8 # 7.0 LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80C..1F80F ; disallowed # NA <reserved-1F80C>..<reserved-1F80F>
+1F810..1F847 ; valid ; ; NV8 # 7.0 LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F848..1F84F ; disallowed # NA <reserved-1F848>..<reserved-1F84F>
+1F850..1F859 ; valid ; ; NV8 # 7.0 LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F85A..1F85F ; disallowed # NA <reserved-1F85A>..<reserved-1F85F>
+1F860..1F887 ; valid ; ; NV8 # 7.0 WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F888..1F88F ; disallowed # NA <reserved-1F888>..<reserved-1F88F>
+1F890..1F8AD ; valid ; ; NV8 # 7.0 LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+1F8AE..1F8AF ; disallowed # NA <reserved-1F8AE>..<reserved-1F8AF>
+1F8B0..1F8B1 ; valid ; ; NV8 # 13.0 ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
+1F8B2..1F8FF ; disallowed # NA <reserved-1F8B2>..<reserved-1F8FF>
+1F900..1F90B ; valid ; ; NV8 # 10.0 CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
+1F90C ; valid ; ; NV8 # 13.0 PINCHED FINGERS
+1F90D..1F90F ; valid ; ; NV8 # 12.0 WHITE HEART..PINCHING HAND
+1F910..1F918 ; valid ; ; NV8 # 8.0 ZIPPER-MOUTH FACE..SIGN OF THE HORNS
+1F919..1F91E ; valid ; ; NV8 # 9.0 CALL ME HAND..HAND WITH INDEX AND MIDDLE FINGERS CROSSED
+1F91F ; valid ; ; NV8 # 10.0 I LOVE YOU HAND SIGN
+1F920..1F927 ; valid ; ; NV8 # 9.0 FACE WITH COWBOY HAT..SNEEZING FACE
+1F928..1F92F ; valid ; ; NV8 # 10.0 FACE WITH ONE EYEBROW RAISED..SHOCKED FACE WITH EXPLODING HEAD
+1F930 ; valid ; ; NV8 # 9.0 PREGNANT WOMAN
+1F931..1F932 ; valid ; ; NV8 # 10.0 BREAST-FEEDING..PALMS UP TOGETHER
+1F933..1F93E ; valid ; ; NV8 # 9.0 SELFIE..HANDBALL
+1F93F ; valid ; ; NV8 # 12.0 DIVING MASK
+1F940..1F94B ; valid ; ; NV8 # 9.0 WILTED FLOWER..MARTIAL ARTS UNIFORM
+1F94C ; valid ; ; NV8 # 10.0 CURLING STONE
+1F94D..1F94F ; valid ; ; NV8 # 11.0 LACROSSE STICK AND BALL..FLYING DISC
+1F950..1F95E ; valid ; ; NV8 # 9.0 CROISSANT..PANCAKES
+1F95F..1F96B ; valid ; ; NV8 # 10.0 DUMPLING..CANNED FOOD
+1F96C..1F970 ; valid ; ; NV8 # 11.0 LEAFY GREEN..SMILING FACE WITH SMILING EYES AND THREE HEARTS
+1F971 ; valid ; ; NV8 # 12.0 YAWNING FACE
+1F972 ; valid ; ; NV8 # 13.0 SMILING FACE WITH TEAR
+1F973..1F976 ; valid ; ; NV8 # 11.0 FACE WITH PARTY HORN AND PARTY HAT..FREEZING FACE
+1F977..1F978 ; valid ; ; NV8 # 13.0 NINJA..DISGUISED FACE
+1F979 ; valid ; ; NV8 # 14.0 FACE HOLDING BACK TEARS
+1F97A ; valid ; ; NV8 # 11.0 FACE WITH PLEADING EYES
+1F97B ; valid ; ; NV8 # 12.0 SARI
+1F97C..1F97F ; valid ; ; NV8 # 11.0 LAB COAT..FLAT SHOE
+1F980..1F984 ; valid ; ; NV8 # 8.0 CRAB..UNICORN FACE
+1F985..1F991 ; valid ; ; NV8 # 9.0 EAGLE..SQUID
+1F992..1F997 ; valid ; ; NV8 # 10.0 GIRAFFE FACE..CRICKET
+1F998..1F9A2 ; valid ; ; NV8 # 11.0 KANGAROO..SWAN
+1F9A3..1F9A4 ; valid ; ; NV8 # 13.0 MAMMOTH..DODO
+1F9A5..1F9AA ; valid ; ; NV8 # 12.0 SLOTH..OYSTER
+1F9AB..1F9AD ; valid ; ; NV8 # 13.0 BEAVER..SEAL
+1F9AE..1F9AF ; valid ; ; NV8 # 12.0 GUIDE DOG..PROBING CANE
+1F9B0..1F9B9 ; valid ; ; NV8 # 11.0 EMOJI COMPONENT RED HAIR..SUPERVILLAIN
+1F9BA..1F9BF ; valid ; ; NV8 # 12.0 SAFETY VEST..MECHANICAL LEG
+1F9C0 ; valid ; ; NV8 # 8.0 CHEESE WEDGE
+1F9C1..1F9C2 ; valid ; ; NV8 # 11.0 CUPCAKE..SALT SHAKER
+1F9C3..1F9CA ; valid ; ; NV8 # 12.0 BEVERAGE BOX..ICE CUBE
+1F9CB ; valid ; ; NV8 # 13.0 BUBBLE TEA
+1F9CC ; valid ; ; NV8 # 14.0 TROLL
+1F9CD..1F9CF ; valid ; ; NV8 # 12.0 STANDING PERSON..DEAF PERSON
+1F9D0..1F9E6 ; valid ; ; NV8 # 10.0 FACE WITH MONOCLE..SOCKS
+1F9E7..1F9FF ; valid ; ; NV8 # 11.0 RED GIFT ENVELOPE..NAZAR AMULET
+1FA00..1FA53 ; valid ; ; NV8 # 12.0 NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
+1FA54..1FA5F ; disallowed # NA <reserved-1FA54>..<reserved-1FA5F>
+1FA60..1FA6D ; valid ; ; NV8 # 11.0 XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA6E..1FA6F ; disallowed # NA <reserved-1FA6E>..<reserved-1FA6F>
+1FA70..1FA73 ; valid ; ; NV8 # 12.0 BALLET SHOES..SHORTS
+1FA74 ; valid ; ; NV8 # 13.0 THONG SANDAL
+1FA75..1FA77 ; valid ; ; NV8 # 15.0 LIGHT BLUE HEART..PINK HEART
+1FA78..1FA7A ; valid ; ; NV8 # 12.0 DROP OF BLOOD..STETHOSCOPE
+1FA7B..1FA7C ; valid ; ; NV8 # 14.0 X-RAY..CRUTCH
+1FA7D..1FA7F ; disallowed # NA <reserved-1FA7D>..<reserved-1FA7F>
+1FA80..1FA82 ; valid ; ; NV8 # 12.0 YO-YO..PARACHUTE
+1FA83..1FA86 ; valid ; ; NV8 # 13.0 BOOMERANG..NESTING DOLLS
+1FA87..1FA88 ; valid ; ; NV8 # 15.0 MARACAS..FLUTE
+1FA89..1FA8F ; disallowed # NA <reserved-1FA89>..<reserved-1FA8F>
+1FA90..1FA95 ; valid ; ; NV8 # 12.0 RINGED PLANET..BANJO
+1FA96..1FAA8 ; valid ; ; NV8 # 13.0 MILITARY HELMET..ROCK
+1FAA9..1FAAC ; valid ; ; NV8 # 14.0 MIRROR BALL..HAMSA
+1FAAD..1FAAF ; valid ; ; NV8 # 15.0 FOLDING HAND FAN..KHANDA
+1FAB0..1FAB6 ; valid ; ; NV8 # 13.0 FLY..FEATHER
+1FAB7..1FABA ; valid ; ; NV8 # 14.0 LOTUS..NEST WITH EGGS
+1FABB..1FABD ; valid ; ; NV8 # 15.0 HYACINTH..WING
+1FABE ; disallowed # NA <reserved-1FABE>
+1FABF ; valid ; ; NV8 # 15.0 GOOSE
+1FAC0..1FAC2 ; valid ; ; NV8 # 13.0 ANATOMICAL HEART..PEOPLE HUGGING
+1FAC3..1FAC5 ; valid ; ; NV8 # 14.0 PREGNANT MAN..PERSON WITH CROWN
+1FAC6..1FACD ; disallowed # NA <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FACF ; valid ; ; NV8 # 15.0 MOOSE..DONKEY
+1FAD0..1FAD6 ; valid ; ; NV8 # 13.0 BLUEBERRIES..TEAPOT
+1FAD7..1FAD9 ; valid ; ; NV8 # 14.0 POURING LIQUID..JAR
+1FADA..1FADB ; valid ; ; NV8 # 15.0 GINGER ROOT..PEA POD
+1FADC..1FADF ; disallowed # NA <reserved-1FADC>..<reserved-1FADF>
+1FAE0..1FAE7 ; valid ; ; NV8 # 14.0 MELTING FACE..BUBBLES
+1FAE8 ; valid ; ; NV8 # 15.0 SHAKING FACE
+1FAE9..1FAEF ; disallowed # NA <reserved-1FAE9>..<reserved-1FAEF>
+1FAF0..1FAF6 ; valid ; ; NV8 # 14.0 HAND WITH INDEX FINGER AND THUMB CROSSED..HEART HANDS
+1FAF7..1FAF8 ; valid ; ; NV8 # 15.0 LEFTWARDS PUSHING HAND..RIGHTWARDS PUSHING HAND
+1FAF9..1FAFF ; disallowed # NA <reserved-1FAF9>..<reserved-1FAFF>
+1FB00..1FB92 ; valid ; ; NV8 # 13.0 BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
+1FB93 ; disallowed # NA <reserved-1FB93>
+1FB94..1FBCA ; valid ; ; NV8 # 13.0 LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
+1FBCB..1FBEF ; disallowed # NA <reserved-1FBCB>..<reserved-1FBEF>
+1FBF0 ; mapped ; 0030 # 13.0 SEGMENTED DIGIT ZERO
+1FBF1 ; mapped ; 0031 # 13.0 SEGMENTED DIGIT ONE
+1FBF2 ; mapped ; 0032 # 13.0 SEGMENTED DIGIT TWO
+1FBF3 ; mapped ; 0033 # 13.0 SEGMENTED DIGIT THREE
+1FBF4 ; mapped ; 0034 # 13.0 SEGMENTED DIGIT FOUR
+1FBF5 ; mapped ; 0035 # 13.0 SEGMENTED DIGIT FIVE
+1FBF6 ; mapped ; 0036 # 13.0 SEGMENTED DIGIT SIX
+1FBF7 ; mapped ; 0037 # 13.0 SEGMENTED DIGIT SEVEN
+1FBF8 ; mapped ; 0038 # 13.0 SEGMENTED DIGIT EIGHT
+1FBF9 ; mapped ; 0039 # 13.0 SEGMENTED DIGIT NINE
+1FBFA..1FFFD ; disallowed # NA <reserved-1FBFA>..<reserved-1FFFD>
+1FFFE..1FFFF ; disallowed # 2.0 <noncharacter-1FFFE>..<noncharacter-1FFFF>
+20000..2A6D6 ; valid # 3.1 CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6
+2A6D7..2A6DD ; valid # 13.0 CJK UNIFIED IDEOGRAPH-2A6D7..CJK UNIFIED IDEOGRAPH-2A6DD
+2A6DE..2A6DF ; valid # 14.0 CJK UNIFIED IDEOGRAPH-2A6DE..CJK UNIFIED IDEOGRAPH-2A6DF
+2A6E0..2A6FF ; disallowed # NA <reserved-2A6E0>..<reserved-2A6FF>
+2A700..2B734 ; valid # 5.2 CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
+2B735..2B738 ; valid # 14.0 CJK UNIFIED IDEOGRAPH-2B735..CJK UNIFIED IDEOGRAPH-2B738
+2B739 ; valid # 15.0 CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F ; disallowed # NA <reserved-2B73A>..<reserved-2B73F>
+2B740..2B81D ; valid # 6.0 CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+2B81E..2B81F ; disallowed # NA <reserved-2B81E>..<reserved-2B81F>
+2B820..2CEA1 ; valid # 8.0 CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
+2CEA2..2CEAF ; disallowed # NA <reserved-2CEA2>..<reserved-2CEAF>
+2CEB0..2EBE0 ; valid # 10.0 CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+2EBE1..2EBEF ; disallowed # NA <reserved-2EBE1>..<reserved-2EBEF>
+2EBF0..2EE5D ; valid # 15.1 CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
+2EE5E..2F7FF ; disallowed # NA <reserved-2EE5E>..<reserved-2F7FF>
+2F800 ; mapped ; 4E3D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F800
+2F801 ; mapped ; 4E38 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F801
+2F802 ; mapped ; 4E41 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F802
+2F803 ; mapped ; 20122 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F803
+2F804 ; mapped ; 4F60 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F804
+2F805 ; mapped ; 4FAE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F805
+2F806 ; mapped ; 4FBB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F806
+2F807 ; mapped ; 5002 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F807
+2F808 ; mapped ; 507A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F808
+2F809 ; mapped ; 5099 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F809
+2F80A ; mapped ; 50E7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80A
+2F80B ; mapped ; 50CF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80B
+2F80C ; mapped ; 349E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80C
+2F80D ; mapped ; 2063A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80D
+2F80E ; mapped ; 514D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80E
+2F80F ; mapped ; 5154 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F80F
+2F810 ; mapped ; 5164 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F810
+2F811 ; mapped ; 5177 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F811
+2F812 ; mapped ; 2051C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F812
+2F813 ; mapped ; 34B9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F813
+2F814 ; mapped ; 5167 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F814
+2F815 ; mapped ; 518D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F815
+2F816 ; mapped ; 2054B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F816
+2F817 ; mapped ; 5197 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F817
+2F818 ; mapped ; 51A4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F818
+2F819 ; mapped ; 4ECC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F819
+2F81A ; mapped ; 51AC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81A
+2F81B ; mapped ; 51B5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81B
+2F81C ; mapped ; 291DF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81C
+2F81D ; mapped ; 51F5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81D
+2F81E ; mapped ; 5203 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81E
+2F81F ; mapped ; 34DF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F81F
+2F820 ; mapped ; 523B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F820
+2F821 ; mapped ; 5246 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F821
+2F822 ; mapped ; 5272 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F822
+2F823 ; mapped ; 5277 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F823
+2F824 ; mapped ; 3515 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F824
+2F825 ; mapped ; 52C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F825
+2F826 ; mapped ; 52C9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F826
+2F827 ; mapped ; 52E4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F827
+2F828 ; mapped ; 52FA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F828
+2F829 ; mapped ; 5305 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F829
+2F82A ; mapped ; 5306 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82A
+2F82B ; mapped ; 5317 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82B
+2F82C ; mapped ; 5349 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82C
+2F82D ; mapped ; 5351 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82D
+2F82E ; mapped ; 535A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82E
+2F82F ; mapped ; 5373 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F82F
+2F830 ; mapped ; 537D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F830
+2F831..2F833 ; mapped ; 537F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F831..CJK COMPATIBILITY IDEOGRAPH-2F833
+2F834 ; mapped ; 20A2C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F834
+2F835 ; mapped ; 7070 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F835
+2F836 ; mapped ; 53CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F836
+2F837 ; mapped ; 53DF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F837
+2F838 ; mapped ; 20B63 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F838
+2F839 ; mapped ; 53EB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F839
+2F83A ; mapped ; 53F1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83A
+2F83B ; mapped ; 5406 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83B
+2F83C ; mapped ; 549E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83C
+2F83D ; mapped ; 5438 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83D
+2F83E ; mapped ; 5448 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83E
+2F83F ; mapped ; 5468 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F83F
+2F840 ; mapped ; 54A2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F840
+2F841 ; mapped ; 54F6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F841
+2F842 ; mapped ; 5510 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F842
+2F843 ; mapped ; 5553 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F843
+2F844 ; mapped ; 5563 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F844
+2F845..2F846 ; mapped ; 5584 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F845..CJK COMPATIBILITY IDEOGRAPH-2F846
+2F847 ; mapped ; 5599 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F847
+2F848 ; mapped ; 55AB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F848
+2F849 ; mapped ; 55B3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F849
+2F84A ; mapped ; 55C2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84A
+2F84B ; mapped ; 5716 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84B
+2F84C ; mapped ; 5606 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84C
+2F84D ; mapped ; 5717 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84D
+2F84E ; mapped ; 5651 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84E
+2F84F ; mapped ; 5674 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F84F
+2F850 ; mapped ; 5207 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F850
+2F851 ; mapped ; 58EE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F851
+2F852 ; mapped ; 57CE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F852
+2F853 ; mapped ; 57F4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F853
+2F854 ; mapped ; 580D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F854
+2F855 ; mapped ; 578B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F855
+2F856 ; mapped ; 5832 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F856
+2F857 ; mapped ; 5831 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F857
+2F858 ; mapped ; 58AC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F858
+2F859 ; mapped ; 214E4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F859
+2F85A ; mapped ; 58F2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85A
+2F85B ; mapped ; 58F7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85B
+2F85C ; mapped ; 5906 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85C
+2F85D ; mapped ; 591A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85D
+2F85E ; mapped ; 5922 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85E
+2F85F ; mapped ; 5962 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F85F
+2F860 ; mapped ; 216A8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F860
+2F861 ; mapped ; 216EA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F861
+2F862 ; mapped ; 59EC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F862
+2F863 ; mapped ; 5A1B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F863
+2F864 ; mapped ; 5A27 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F864
+2F865 ; mapped ; 59D8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F865
+2F866 ; mapped ; 5A66 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F866
+2F867 ; mapped ; 36EE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F867
+2F868 ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F868
+2F869 ; mapped ; 5B08 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F869
+2F86A..2F86B ; mapped ; 5B3E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86A..CJK COMPATIBILITY IDEOGRAPH-2F86B
+2F86C ; mapped ; 219C8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86C
+2F86D ; mapped ; 5BC3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86D
+2F86E ; mapped ; 5BD8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86E
+2F86F ; mapped ; 5BE7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F86F
+2F870 ; mapped ; 5BF3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F870
+2F871 ; mapped ; 21B18 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F871
+2F872 ; mapped ; 5BFF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F872
+2F873 ; mapped ; 5C06 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F873
+2F874 ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F874
+2F875 ; mapped ; 5C22 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F875
+2F876 ; mapped ; 3781 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F876
+2F877 ; mapped ; 5C60 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F877
+2F878 ; mapped ; 5C6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F878
+2F879 ; mapped ; 5CC0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F879
+2F87A ; mapped ; 5C8D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87A
+2F87B ; mapped ; 21DE4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87B
+2F87C ; mapped ; 5D43 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87C
+2F87D ; mapped ; 21DE6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87D
+2F87E ; mapped ; 5D6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87E
+2F87F ; mapped ; 5D6B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F87F
+2F880 ; mapped ; 5D7C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F880
+2F881 ; mapped ; 5DE1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F881
+2F882 ; mapped ; 5DE2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F882
+2F883 ; mapped ; 382F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F883
+2F884 ; mapped ; 5DFD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F884
+2F885 ; mapped ; 5E28 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F885
+2F886 ; mapped ; 5E3D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F886
+2F887 ; mapped ; 5E69 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F887
+2F888 ; mapped ; 3862 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F888
+2F889 ; mapped ; 22183 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F889
+2F88A ; mapped ; 387C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88A
+2F88B ; mapped ; 5EB0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88B
+2F88C ; mapped ; 5EB3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88C
+2F88D ; mapped ; 5EB6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88D
+2F88E ; mapped ; 5ECA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88E
+2F88F ; mapped ; 2A392 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F88F
+2F890 ; mapped ; 5EFE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F890
+2F891..2F892 ; mapped ; 22331 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F891..CJK COMPATIBILITY IDEOGRAPH-2F892
+2F893 ; mapped ; 8201 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F893
+2F894..2F895 ; mapped ; 5F22 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F894..CJK COMPATIBILITY IDEOGRAPH-2F895
+2F896 ; mapped ; 38C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F896
+2F897 ; mapped ; 232B8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F897
+2F898 ; mapped ; 261DA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F898
+2F899 ; mapped ; 5F62 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F899
+2F89A ; mapped ; 5F6B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89A
+2F89B ; mapped ; 38E3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89B
+2F89C ; mapped ; 5F9A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89C
+2F89D ; mapped ; 5FCD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89D
+2F89E ; mapped ; 5FD7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89E
+2F89F ; mapped ; 5FF9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F89F
+2F8A0 ; mapped ; 6081 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A0
+2F8A1 ; mapped ; 393A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A1
+2F8A2 ; mapped ; 391C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A2
+2F8A3 ; mapped ; 6094 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A3
+2F8A4 ; mapped ; 226D4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A4
+2F8A5 ; mapped ; 60C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A5
+2F8A6 ; mapped ; 6148 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A6
+2F8A7 ; mapped ; 614C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A7
+2F8A8 ; mapped ; 614E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A8
+2F8A9 ; mapped ; 614C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8A9
+2F8AA ; mapped ; 617A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AA
+2F8AB ; mapped ; 618E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AB
+2F8AC ; mapped ; 61B2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AC
+2F8AD ; mapped ; 61A4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AD
+2F8AE ; mapped ; 61AF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AE
+2F8AF ; mapped ; 61DE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8AF
+2F8B0 ; mapped ; 61F2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B0
+2F8B1 ; mapped ; 61F6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B1
+2F8B2 ; mapped ; 6210 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B2
+2F8B3 ; mapped ; 621B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B3
+2F8B4 ; mapped ; 625D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B4
+2F8B5 ; mapped ; 62B1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B5
+2F8B6 ; mapped ; 62D4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B6
+2F8B7 ; mapped ; 6350 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B7
+2F8B8 ; mapped ; 22B0C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B8
+2F8B9 ; mapped ; 633D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8B9
+2F8BA ; mapped ; 62FC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BA
+2F8BB ; mapped ; 6368 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BB
+2F8BC ; mapped ; 6383 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BC
+2F8BD ; mapped ; 63E4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BD
+2F8BE ; mapped ; 22BF1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BE
+2F8BF ; mapped ; 6422 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8BF
+2F8C0 ; mapped ; 63C5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C0
+2F8C1 ; mapped ; 63A9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C1
+2F8C2 ; mapped ; 3A2E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C2
+2F8C3 ; mapped ; 6469 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C3
+2F8C4 ; mapped ; 647E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C4
+2F8C5 ; mapped ; 649D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C5
+2F8C6 ; mapped ; 6477 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C6
+2F8C7 ; mapped ; 3A6C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C7
+2F8C8 ; mapped ; 654F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C8
+2F8C9 ; mapped ; 656C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8C9
+2F8CA ; mapped ; 2300A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CA
+2F8CB ; mapped ; 65E3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CB
+2F8CC ; mapped ; 66F8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CC
+2F8CD ; mapped ; 6649 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CD
+2F8CE ; mapped ; 3B19 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CE
+2F8CF ; mapped ; 6691 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8CF
+2F8D0 ; mapped ; 3B08 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D0
+2F8D1 ; mapped ; 3AE4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D1
+2F8D2 ; mapped ; 5192 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D2
+2F8D3 ; mapped ; 5195 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D3
+2F8D4 ; mapped ; 6700 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D4
+2F8D5 ; mapped ; 669C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D5
+2F8D6 ; mapped ; 80AD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D6
+2F8D7 ; mapped ; 43D9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D7
+2F8D8 ; mapped ; 6717 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D8
+2F8D9 ; mapped ; 671B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8D9
+2F8DA ; mapped ; 6721 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DA
+2F8DB ; mapped ; 675E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DB
+2F8DC ; mapped ; 6753 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DC
+2F8DD ; mapped ; 233C3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DD
+2F8DE ; mapped ; 3B49 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DE
+2F8DF ; mapped ; 67FA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8DF
+2F8E0 ; mapped ; 6785 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E0
+2F8E1 ; mapped ; 6852 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E1
+2F8E2 ; mapped ; 6885 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E2
+2F8E3 ; mapped ; 2346D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E3
+2F8E4 ; mapped ; 688E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E4
+2F8E5 ; mapped ; 681F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E5
+2F8E6 ; mapped ; 6914 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E6
+2F8E7 ; mapped ; 3B9D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E7
+2F8E8 ; mapped ; 6942 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E8
+2F8E9 ; mapped ; 69A3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8E9
+2F8EA ; mapped ; 69EA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EA
+2F8EB ; mapped ; 6AA8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EB
+2F8EC ; mapped ; 236A3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EC
+2F8ED ; mapped ; 6ADB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8ED
+2F8EE ; mapped ; 3C18 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EE
+2F8EF ; mapped ; 6B21 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8EF
+2F8F0 ; mapped ; 238A7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F0
+2F8F1 ; mapped ; 6B54 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F1
+2F8F2 ; mapped ; 3C4E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F2
+2F8F3 ; mapped ; 6B72 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F3
+2F8F4 ; mapped ; 6B9F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F4
+2F8F5 ; mapped ; 6BBA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F5
+2F8F6 ; mapped ; 6BBB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F6
+2F8F7 ; mapped ; 23A8D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F7
+2F8F8 ; mapped ; 21D0B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F8
+2F8F9 ; mapped ; 23AFA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8F9
+2F8FA ; mapped ; 6C4E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FA
+2F8FB ; mapped ; 23CBC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FB
+2F8FC ; mapped ; 6CBF # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FC
+2F8FD ; mapped ; 6CCD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FD
+2F8FE ; mapped ; 6C67 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FE
+2F8FF ; mapped ; 6D16 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F8FF
+2F900 ; mapped ; 6D3E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F900
+2F901 ; mapped ; 6D77 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F901
+2F902 ; mapped ; 6D41 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F902
+2F903 ; mapped ; 6D69 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F903
+2F904 ; mapped ; 6D78 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F904
+2F905 ; mapped ; 6D85 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F905
+2F906 ; mapped ; 23D1E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F906
+2F907 ; mapped ; 6D34 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F907
+2F908 ; mapped ; 6E2F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F908
+2F909 ; mapped ; 6E6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F909
+2F90A ; mapped ; 3D33 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90A
+2F90B ; mapped ; 6ECB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90B
+2F90C ; mapped ; 6EC7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90C
+2F90D ; mapped ; 23ED1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90D
+2F90E ; mapped ; 6DF9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90E
+2F90F ; mapped ; 6F6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F90F
+2F910 ; mapped ; 23F5E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F910
+2F911 ; mapped ; 23F8E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F911
+2F912 ; mapped ; 6FC6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F912
+2F913 ; mapped ; 7039 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F913
+2F914 ; mapped ; 701E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F914
+2F915 ; mapped ; 701B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F915
+2F916 ; mapped ; 3D96 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F916
+2F917 ; mapped ; 704A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F917
+2F918 ; mapped ; 707D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F918
+2F919 ; mapped ; 7077 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F919
+2F91A ; mapped ; 70AD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91A
+2F91B ; mapped ; 20525 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91B
+2F91C ; mapped ; 7145 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91C
+2F91D ; mapped ; 24263 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91D
+2F91E ; mapped ; 719C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91E
+2F91F ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F91F
+2F920 ; mapped ; 7228 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F920
+2F921 ; mapped ; 7235 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F921
+2F922 ; mapped ; 7250 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F922
+2F923 ; mapped ; 24608 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F923
+2F924 ; mapped ; 7280 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F924
+2F925 ; mapped ; 7295 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F925
+2F926 ; mapped ; 24735 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F926
+2F927 ; mapped ; 24814 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F927
+2F928 ; mapped ; 737A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F928
+2F929 ; mapped ; 738B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F929
+2F92A ; mapped ; 3EAC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92A
+2F92B ; mapped ; 73A5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92B
+2F92C..2F92D ; mapped ; 3EB8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92C..CJK COMPATIBILITY IDEOGRAPH-2F92D
+2F92E ; mapped ; 7447 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92E
+2F92F ; mapped ; 745C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F92F
+2F930 ; mapped ; 7471 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F930
+2F931 ; mapped ; 7485 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F931
+2F932 ; mapped ; 74CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F932
+2F933 ; mapped ; 3F1B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F933
+2F934 ; mapped ; 7524 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F934
+2F935 ; mapped ; 24C36 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F935
+2F936 ; mapped ; 753E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F936
+2F937 ; mapped ; 24C92 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F937
+2F938 ; mapped ; 7570 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F938
+2F939 ; mapped ; 2219F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F939
+2F93A ; mapped ; 7610 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93A
+2F93B ; mapped ; 24FA1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93B
+2F93C ; mapped ; 24FB8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93C
+2F93D ; mapped ; 25044 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93D
+2F93E ; mapped ; 3FFC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93E
+2F93F ; mapped ; 4008 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F93F
+2F940 ; mapped ; 76F4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F940
+2F941 ; mapped ; 250F3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F941
+2F942 ; mapped ; 250F2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F942
+2F943 ; mapped ; 25119 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F943
+2F944 ; mapped ; 25133 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F944
+2F945 ; mapped ; 771E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F945
+2F946..2F947 ; mapped ; 771F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F946..CJK COMPATIBILITY IDEOGRAPH-2F947
+2F948 ; mapped ; 774A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F948
+2F949 ; mapped ; 4039 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F949
+2F94A ; mapped ; 778B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94A
+2F94B ; mapped ; 4046 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94B
+2F94C ; mapped ; 4096 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94C
+2F94D ; mapped ; 2541D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94D
+2F94E ; mapped ; 784E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94E
+2F94F ; mapped ; 788C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F94F
+2F950 ; mapped ; 78CC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F950
+2F951 ; mapped ; 40E3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F951
+2F952 ; mapped ; 25626 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F952
+2F953 ; mapped ; 7956 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F953
+2F954 ; mapped ; 2569A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F954
+2F955 ; mapped ; 256C5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F955
+2F956 ; mapped ; 798F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F956
+2F957 ; mapped ; 79EB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F957
+2F958 ; mapped ; 412F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F958
+2F959 ; mapped ; 7A40 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F959
+2F95A ; mapped ; 7A4A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95A
+2F95B ; mapped ; 7A4F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95B
+2F95C ; mapped ; 2597C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95C
+2F95D..2F95E ; mapped ; 25AA7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95D..CJK COMPATIBILITY IDEOGRAPH-2F95E
+2F95F ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F95F
+2F960 ; mapped ; 4202 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F960
+2F961 ; mapped ; 25BAB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F961
+2F962 ; mapped ; 7BC6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F962
+2F963 ; mapped ; 7BC9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F963
+2F964 ; mapped ; 4227 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F964
+2F965 ; mapped ; 25C80 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F965
+2F966 ; mapped ; 7CD2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F966
+2F967 ; mapped ; 42A0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F967
+2F968 ; mapped ; 7CE8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F968
+2F969 ; mapped ; 7CE3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F969
+2F96A ; mapped ; 7D00 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96A
+2F96B ; mapped ; 25F86 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96B
+2F96C ; mapped ; 7D63 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96C
+2F96D ; mapped ; 4301 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96D
+2F96E ; mapped ; 7DC7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96E
+2F96F ; mapped ; 7E02 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F96F
+2F970 ; mapped ; 7E45 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F970
+2F971 ; mapped ; 4334 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F971
+2F972 ; mapped ; 26228 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F972
+2F973 ; mapped ; 26247 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F973
+2F974 ; mapped ; 4359 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F974
+2F975 ; mapped ; 262D9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F975
+2F976 ; mapped ; 7F7A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F976
+2F977 ; mapped ; 2633E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F977
+2F978 ; mapped ; 7F95 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F978
+2F979 ; mapped ; 7FFA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F979
+2F97A ; mapped ; 8005 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97A
+2F97B ; mapped ; 264DA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97B
+2F97C ; mapped ; 26523 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97C
+2F97D ; mapped ; 8060 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97D
+2F97E ; mapped ; 265A8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97E
+2F97F ; mapped ; 8070 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F97F
+2F980 ; mapped ; 2335F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F980
+2F981 ; mapped ; 43D5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F981
+2F982 ; mapped ; 80B2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F982
+2F983 ; mapped ; 8103 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F983
+2F984 ; mapped ; 440B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F984
+2F985 ; mapped ; 813E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F985
+2F986 ; mapped ; 5AB5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F986
+2F987 ; mapped ; 267A7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F987
+2F988 ; mapped ; 267B5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F988
+2F989 ; mapped ; 23393 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F989
+2F98A ; mapped ; 2339C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98A
+2F98B ; mapped ; 8201 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98B
+2F98C ; mapped ; 8204 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98C
+2F98D ; mapped ; 8F9E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98D
+2F98E ; mapped ; 446B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98E
+2F98F ; mapped ; 8291 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F98F
+2F990 ; mapped ; 828B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F990
+2F991 ; mapped ; 829D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F991
+2F992 ; mapped ; 52B3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F992
+2F993 ; mapped ; 82B1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F993
+2F994 ; mapped ; 82B3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F994
+2F995 ; mapped ; 82BD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F995
+2F996 ; mapped ; 82E6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F996
+2F997 ; mapped ; 26B3C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F997
+2F998 ; mapped ; 82E5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F998
+2F999 ; mapped ; 831D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F999
+2F99A ; mapped ; 8363 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99A
+2F99B ; mapped ; 83AD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99B
+2F99C ; mapped ; 8323 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99C
+2F99D ; mapped ; 83BD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99D
+2F99E ; mapped ; 83E7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99E
+2F99F ; mapped ; 8457 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F99F
+2F9A0 ; mapped ; 8353 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A0
+2F9A1 ; mapped ; 83CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A1
+2F9A2 ; mapped ; 83CC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A2
+2F9A3 ; mapped ; 83DC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A3
+2F9A4 ; mapped ; 26C36 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A4
+2F9A5 ; mapped ; 26D6B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A5
+2F9A6 ; mapped ; 26CD5 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A6
+2F9A7 ; mapped ; 452B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A7
+2F9A8 ; mapped ; 84F1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A8
+2F9A9 ; mapped ; 84F3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9A9
+2F9AA ; mapped ; 8516 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AA
+2F9AB ; mapped ; 273CA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AB
+2F9AC ; mapped ; 8564 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AC
+2F9AD ; mapped ; 26F2C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AD
+2F9AE ; mapped ; 455D # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AE
+2F9AF ; mapped ; 4561 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9AF
+2F9B0 ; mapped ; 26FB1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B0
+2F9B1 ; mapped ; 270D2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B1
+2F9B2 ; mapped ; 456B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B2
+2F9B3 ; mapped ; 8650 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B3
+2F9B4 ; mapped ; 865C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B4
+2F9B5 ; mapped ; 8667 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B5
+2F9B6 ; mapped ; 8669 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B6
+2F9B7 ; mapped ; 86A9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B7
+2F9B8 ; mapped ; 8688 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B8
+2F9B9 ; mapped ; 870E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9B9
+2F9BA ; mapped ; 86E2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BA
+2F9BB ; mapped ; 8779 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BB
+2F9BC ; mapped ; 8728 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BC
+2F9BD ; mapped ; 876B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BD
+2F9BE ; mapped ; 8786 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BE
+2F9BF ; disallowed # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9BF
+2F9C0 ; mapped ; 87E1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C0
+2F9C1 ; mapped ; 8801 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C1
+2F9C2 ; mapped ; 45F9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C2
+2F9C3 ; mapped ; 8860 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C3
+2F9C4 ; mapped ; 8863 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C4
+2F9C5 ; mapped ; 27667 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C5
+2F9C6 ; mapped ; 88D7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C6
+2F9C7 ; mapped ; 88DE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C7
+2F9C8 ; mapped ; 4635 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C8
+2F9C9 ; mapped ; 88FA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9C9
+2F9CA ; mapped ; 34BB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CA
+2F9CB ; mapped ; 278AE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CB
+2F9CC ; mapped ; 27966 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CC
+2F9CD ; mapped ; 46BE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CD
+2F9CE ; mapped ; 46C7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CE
+2F9CF ; mapped ; 8AA0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9CF
+2F9D0 ; mapped ; 8AED # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D0
+2F9D1 ; mapped ; 8B8A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D1
+2F9D2 ; mapped ; 8C55 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D2
+2F9D3 ; mapped ; 27CA8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D3
+2F9D4 ; mapped ; 8CAB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D4
+2F9D5 ; mapped ; 8CC1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D5
+2F9D6 ; mapped ; 8D1B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D6
+2F9D7 ; mapped ; 8D77 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D7
+2F9D8 ; mapped ; 27F2F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D8
+2F9D9 ; mapped ; 20804 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9D9
+2F9DA ; mapped ; 8DCB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DA
+2F9DB ; mapped ; 8DBC # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DB
+2F9DC ; mapped ; 8DF0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DC
+2F9DD ; mapped ; 208DE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DD
+2F9DE ; mapped ; 8ED4 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DE
+2F9DF ; mapped ; 8F38 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9DF
+2F9E0 ; mapped ; 285D2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E0
+2F9E1 ; mapped ; 285ED # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E1
+2F9E2 ; mapped ; 9094 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E2
+2F9E3 ; mapped ; 90F1 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E3
+2F9E4 ; mapped ; 9111 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E4
+2F9E5 ; mapped ; 2872E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E5
+2F9E6 ; mapped ; 911B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E6
+2F9E7 ; mapped ; 9238 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E7
+2F9E8 ; mapped ; 92D7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E8
+2F9E9 ; mapped ; 92D8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9E9
+2F9EA ; mapped ; 927C # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EA
+2F9EB ; mapped ; 93F9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EB
+2F9EC ; mapped ; 9415 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EC
+2F9ED ; mapped ; 28BFA # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9ED
+2F9EE ; mapped ; 958B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EE
+2F9EF ; mapped ; 4995 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9EF
+2F9F0 ; mapped ; 95B7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F0
+2F9F1 ; mapped ; 28D77 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F1
+2F9F2 ; mapped ; 49E6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F2
+2F9F3 ; mapped ; 96C3 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F3
+2F9F4 ; mapped ; 5DB2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F4
+2F9F5 ; mapped ; 9723 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F5
+2F9F6 ; mapped ; 29145 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F6
+2F9F7 ; mapped ; 2921A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F7
+2F9F8 ; mapped ; 4A6E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F8
+2F9F9 ; mapped ; 4A76 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9F9
+2F9FA ; mapped ; 97E0 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FA
+2F9FB ; mapped ; 2940A # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FB
+2F9FC ; mapped ; 4AB2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FC
+2F9FD ; mapped ; 29496 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FD
+2F9FE..2F9FF ; mapped ; 980B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2F9FE..CJK COMPATIBILITY IDEOGRAPH-2F9FF
+2FA00 ; mapped ; 9829 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA00
+2FA01 ; mapped ; 295B6 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA01
+2FA02 ; mapped ; 98E2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA02
+2FA03 ; mapped ; 4B33 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA03
+2FA04 ; mapped ; 9929 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA04
+2FA05 ; mapped ; 99A7 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA05
+2FA06 ; mapped ; 99C2 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA06
+2FA07 ; mapped ; 99FE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA07
+2FA08 ; mapped ; 4BCE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA08
+2FA09 ; mapped ; 29B30 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA09
+2FA0A ; mapped ; 9B12 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0A
+2FA0B ; mapped ; 9C40 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0B
+2FA0C ; mapped ; 9CFD # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0C
+2FA0D ; mapped ; 4CCE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0D
+2FA0E ; mapped ; 4CED # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0E
+2FA0F ; mapped ; 9D67 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA0F
+2FA10 ; mapped ; 2A0CE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA10
+2FA11 ; mapped ; 4CF8 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA11
+2FA12 ; mapped ; 2A105 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA12
+2FA13 ; mapped ; 2A20E # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA13
+2FA14 ; mapped ; 2A291 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA14
+2FA15 ; mapped ; 9EBB # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA15
+2FA16 ; mapped ; 4D56 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA16
+2FA17 ; mapped ; 9EF9 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA17
+2FA18 ; mapped ; 9EFE # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA18
+2FA19 ; mapped ; 9F05 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA19
+2FA1A ; mapped ; 9F0F # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1A
+2FA1B ; mapped ; 9F16 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1B
+2FA1C ; mapped ; 9F3B # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1C
+2FA1D ; mapped ; 2A600 # 3.1 CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E..2FFFD ; disallowed # NA <reserved-2FA1E>..<reserved-2FFFD>
+2FFFE..2FFFF ; disallowed # 2.0 <noncharacter-2FFFE>..<noncharacter-2FFFF>
+30000..3134A ; valid # 13.0 CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+3134B..3134F ; disallowed # NA <reserved-3134B>..<reserved-3134F>
+31350..323AF ; valid # 15.0 CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD ; disallowed # NA <reserved-323B0>..<reserved-3FFFD>
+3FFFE..3FFFF ; disallowed # 2.0 <noncharacter-3FFFE>..<noncharacter-3FFFF>
+40000..4FFFD ; disallowed # NA <reserved-40000>..<reserved-4FFFD>
+4FFFE..4FFFF ; disallowed # 2.0 <noncharacter-4FFFE>..<noncharacter-4FFFF>
+50000..5FFFD ; disallowed # NA <reserved-50000>..<reserved-5FFFD>
+5FFFE..5FFFF ; disallowed # 2.0 <noncharacter-5FFFE>..<noncharacter-5FFFF>
+60000..6FFFD ; disallowed # NA <reserved-60000>..<reserved-6FFFD>
+6FFFE..6FFFF ; disallowed # 2.0 <noncharacter-6FFFE>..<noncharacter-6FFFF>
+70000..7FFFD ; disallowed # NA <reserved-70000>..<reserved-7FFFD>
+7FFFE..7FFFF ; disallowed # 2.0 <noncharacter-7FFFE>..<noncharacter-7FFFF>
+80000..8FFFD ; disallowed # NA <reserved-80000>..<reserved-8FFFD>
+8FFFE..8FFFF ; disallowed # 2.0 <noncharacter-8FFFE>..<noncharacter-8FFFF>
+90000..9FFFD ; disallowed # NA <reserved-90000>..<reserved-9FFFD>
+9FFFE..9FFFF ; disallowed # 2.0 <noncharacter-9FFFE>..<noncharacter-9FFFF>
+A0000..AFFFD ; disallowed # NA <reserved-A0000>..<reserved-AFFFD>
+AFFFE..AFFFF ; disallowed # 2.0 <noncharacter-AFFFE>..<noncharacter-AFFFF>
+B0000..BFFFD ; disallowed # NA <reserved-B0000>..<reserved-BFFFD>
+BFFFE..BFFFF ; disallowed # 2.0 <noncharacter-BFFFE>..<noncharacter-BFFFF>
+C0000..CFFFD ; disallowed # NA <reserved-C0000>..<reserved-CFFFD>
+CFFFE..CFFFF ; disallowed # 2.0 <noncharacter-CFFFE>..<noncharacter-CFFFF>
+D0000..DFFFD ; disallowed # NA <reserved-D0000>..<reserved-DFFFD>
+DFFFE..DFFFF ; disallowed # 2.0 <noncharacter-DFFFE>..<noncharacter-DFFFF>
+E0000 ; disallowed # NA <reserved-E0000>
+E0001 ; disallowed # 3.1 LANGUAGE TAG
+E0002..E001F ; disallowed # NA <reserved-E0002>..<reserved-E001F>
+E0020..E007F ; disallowed # 3.1 TAG SPACE..CANCEL TAG
+E0080..E00FF ; disallowed # NA <reserved-E0080>..<reserved-E00FF>
+E0100..E01EF ; ignored # 4.0 VARIATION SELECTOR-17..VARIATION SELECTOR-256
+E01F0..EFFFD ; disallowed # NA <reserved-E01F0>..<reserved-EFFFD>
+EFFFE..EFFFF ; disallowed # 2.0 <noncharacter-EFFFE>..<noncharacter-EFFFF>
+F0000..FFFFD ; disallowed # 2.0 <private-use-F0000>..<private-use-FFFFD>
+FFFFE..FFFFF ; disallowed # 2.0 <noncharacter-FFFFE>..<noncharacter-FFFFF>
+100000..10FFFD; disallowed # 2.0 <private-use-100000>..<private-use-10FFFD>
+10FFFE..10FFFF; disallowed # 2.0 <noncharacter-10FFFE>..<noncharacter-10FFFF>
+
+# Total code points: 1114112
+
diff --git a/util/unicode/data/LineBreak.txt b/util/unicode/data/LineBreak.txt
index 22abddcd90..b6bc679392 100644
--- a/util/unicode/data/LineBreak.txt
+++ b/util/unicode/data/LineBreak.txt
@@ -1,11 +1,11 @@
-# LineBreak-13.0.0.txt
-# Date: 2020-02-17, 07:43:02 GMT [KW, LI]
-# © 2020 Unicode®, Inc.
+# LineBreak-15.1.0.txt
+# Date: 2023-07-28, 13:19:22 GMT [KW]
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Line_Break Property
#
@@ -18,10 +18,10 @@
# Non-tailorable:
# "BK", "CM", "CR", "GL", "LF", "NL", "SP", "WJ", "ZW", "ZWJ"
# Tailorable:
-# "AI", "AL", "B2", "BA", "BB", "CB", "CJ", "CL", "CP", "EB",
-# "EM", "EX", "H2", "H3", "HL", "HY", "ID", "IN", "IS", "JL",
-# "JT", "JV", "NS", "NU", "OP", "PO", "PR", "QU", "RI", "SA",
-# "SG", "SY", "XX"
+# "AI", "AK", "AL", "AP", "AS", "B2", "BA", "BB", "CB", "CJ",
+# "CL", "CP", "EB", "EM", "EX", "H2", "H3", "HL", "HY", "ID",
+# "IN", "IS", "JL", "JT", "JV", "NS", "NU", "OP", "PO", "PR",
+# "QU", "RI", "SA", "SG", "SY", "VF", "VI", "XX"
# - All code points, assigned and unassigned, that are not listed
# explicitly are given the value "XX".
# - The unassigned code points in the following blocks default to "ID":
@@ -42,3446 +42,3567 @@
# Character ranges are specified as for other property files in the
# Unicode Character Database.
#
-# For legacy reasons, there are no spaces before or after the semicolon
-# which separates the two fields. The comments following the number sign
-# "#" list the General_Category property value or the L& alias of the
-# derived value LC, the Unicode character name or names, and, in lines
-# with ranges of code points, the code point count in square brackets.
+# The comments following the number sign "#" list the General_Category
+# property value or the L& alias of the derived value LC, the Unicode
+# character name or names, and, in lines with ranges of code points,
+# the code point count in square brackets.
#
# For more information, see UAX #14: Unicode Line Breaking Algorithm,
-# at http://www.unicode.org/reports/tr14/
+# at https://www.unicode.org/reports/tr14/
#
# @missing: 0000..10FFFF; XX
-0000..0008;CM # Cc [9] <control-0000>..<control-0008>
-0009;BA # Cc <control-0009>
-000A;LF # Cc <control-000A>
-000B..000C;BK # Cc [2] <control-000B>..<control-000C>
-000D;CR # Cc <control-000D>
-000E..001F;CM # Cc [18] <control-000E>..<control-001F>
-0020;SP # Zs SPACE
-0021;EX # Po EXCLAMATION MARK
-0022;QU # Po QUOTATION MARK
-0023;AL # Po NUMBER SIGN
-0024;PR # Sc DOLLAR SIGN
-0025;PO # Po PERCENT SIGN
-0026;AL # Po AMPERSAND
-0027;QU # Po APOSTROPHE
-0028;OP # Ps LEFT PARENTHESIS
-0029;CP # Pe RIGHT PARENTHESIS
-002A;AL # Po ASTERISK
-002B;PR # Sm PLUS SIGN
-002C;IS # Po COMMA
-002D;HY # Pd HYPHEN-MINUS
-002E;IS # Po FULL STOP
-002F;SY # Po SOLIDUS
-0030..0039;NU # Nd [10] DIGIT ZERO..DIGIT NINE
-003A..003B;IS # Po [2] COLON..SEMICOLON
-003C..003E;AL # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
-003F;EX # Po QUESTION MARK
-0040;AL # Po COMMERCIAL AT
-0041..005A;AL # Lu [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
-005B;OP # Ps LEFT SQUARE BRACKET
-005C;PR # Po REVERSE SOLIDUS
-005D;CP # Pe RIGHT SQUARE BRACKET
-005E;AL # Sk CIRCUMFLEX ACCENT
-005F;AL # Pc LOW LINE
-0060;AL # Sk GRAVE ACCENT
-0061..007A;AL # Ll [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
-007B;OP # Ps LEFT CURLY BRACKET
-007C;BA # Sm VERTICAL LINE
-007D;CL # Pe RIGHT CURLY BRACKET
-007E;AL # Sm TILDE
-007F;CM # Cc <control-007F>
-0080..0084;CM # Cc [5] <control-0080>..<control-0084>
-0085;NL # Cc <control-0085>
-0086..009F;CM # Cc [26] <control-0086>..<control-009F>
-00A0;GL # Zs NO-BREAK SPACE
-00A1;OP # Po INVERTED EXCLAMATION MARK
-00A2;PO # Sc CENT SIGN
-00A3..00A5;PR # Sc [3] POUND SIGN..YEN SIGN
-00A6;AL # So BROKEN BAR
-00A7;AI # Po SECTION SIGN
-00A8;AI # Sk DIAERESIS
-00A9;AL # So COPYRIGHT SIGN
-00AA;AI # Lo FEMININE ORDINAL INDICATOR
-00AB;QU # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-00AC;AL # Sm NOT SIGN
-00AD;BA # Cf SOFT HYPHEN
-00AE;AL # So REGISTERED SIGN
-00AF;AL # Sk MACRON
-00B0;PO # So DEGREE SIGN
-00B1;PR # Sm PLUS-MINUS SIGN
-00B2..00B3;AI # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
-00B4;BB # Sk ACUTE ACCENT
-00B5;AL # Ll MICRO SIGN
-00B6..00B7;AI # Po [2] PILCROW SIGN..MIDDLE DOT
-00B8;AI # Sk CEDILLA
-00B9;AI # No SUPERSCRIPT ONE
-00BA;AI # Lo MASCULINE ORDINAL INDICATOR
-00BB;QU # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-00BC..00BE;AI # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
-00BF;OP # Po INVERTED QUESTION MARK
-00C0..00D6;AL # Lu [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
-00D7;AI # Sm MULTIPLICATION SIGN
-00D8..00F6;AL # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
-00F7;AI # Sm DIVISION SIGN
-00F8..00FF;AL # Ll [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
-0100..017F;AL # L& [128] LATIN CAPITAL LETTER A WITH MACRON..LATIN SMALL LETTER LONG S
-0180..01BA;AL # L& [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
-01BB;AL # Lo LATIN LETTER TWO WITH STROKE
-01BC..01BF;AL # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
-01C0..01C3;AL # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
-01C4..024F;AL # L& [140] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER Y WITH STROKE
-0250..0293;AL # Ll [68] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER EZH WITH CURL
-0294;AL # Lo LATIN LETTER GLOTTAL STOP
-0295..02AF;AL # Ll [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
-02B0..02C1;AL # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
-02C2..02C5;AL # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
-02C6;AL # Lm MODIFIER LETTER CIRCUMFLEX ACCENT
-02C7;AI # Lm CARON
-02C8;BB # Lm MODIFIER LETTER VERTICAL LINE
-02C9..02CB;AI # Lm [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
-02CC;BB # Lm MODIFIER LETTER LOW VERTICAL LINE
-02CD;AI # Lm MODIFIER LETTER LOW MACRON
-02CE..02CF;AL # Lm [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
-02D0;AI # Lm MODIFIER LETTER TRIANGULAR COLON
-02D1;AL # Lm MODIFIER LETTER HALF TRIANGULAR COLON
-02D2..02D7;AL # Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
-02D8..02DB;AI # Sk [4] BREVE..OGONEK
-02DC;AL # Sk SMALL TILDE
-02DD;AI # Sk DOUBLE ACUTE ACCENT
-02DE;AL # Sk MODIFIER LETTER RHOTIC HOOK
-02DF;BB # Sk MODIFIER LETTER CROSS ACCENT
-02E0..02E4;AL # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
-02E5..02EB;AL # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
-02EC;AL # Lm MODIFIER LETTER VOICING
-02ED;AL # Sk MODIFIER LETTER UNASPIRATED
-02EE;AL # Lm MODIFIER LETTER DOUBLE APOSTROPHE
-02EF..02FF;AL # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
-0300..034E;CM # Mn [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
-034F;GL # Mn COMBINING GRAPHEME JOINER
-0350..035B;CM # Mn [12] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING ZIGZAG ABOVE
-035C..0362;GL # Mn [7] COMBINING DOUBLE BREVE BELOW..COMBINING DOUBLE RIGHTWARDS ARROW BELOW
-0363..036F;CM # Mn [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
-0370..0373;AL # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
-0374;AL # Lm GREEK NUMERAL SIGN
-0375;AL # Sk GREEK LOWER NUMERAL SIGN
-0376..0377;AL # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
-037A;AL # Lm GREEK YPOGEGRAMMENI
-037B..037D;AL # Ll [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
-037E;IS # Po GREEK QUESTION MARK
-037F;AL # Lu GREEK CAPITAL LETTER YOT
-0384..0385;AL # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
-0386;AL # Lu GREEK CAPITAL LETTER ALPHA WITH TONOS
-0387;AL # Po GREEK ANO TELEIA
-0388..038A;AL # Lu [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
-038C;AL # Lu GREEK CAPITAL LETTER OMICRON WITH TONOS
-038E..03A1;AL # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
-03A3..03F5;AL # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
-03F6;AL # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
-03F7..03FF;AL # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
-0400..0481;AL # L& [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA
-0482;AL # So CYRILLIC THOUSANDS SIGN
-0483..0487;CM # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
-0488..0489;CM # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
-048A..04FF;AL # L& [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
-0500..052F;AL # L& [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
-0531..0556;AL # Lu [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
-0559;AL # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
-055A..055F;AL # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
-0560..0588;AL # Ll [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
-0589;IS # Po ARMENIAN FULL STOP
-058A;BA # Pd ARMENIAN HYPHEN
-058D..058E;AL # So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
-058F;PR # Sc ARMENIAN DRAM SIGN
-0591..05BD;CM # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
-05BE;BA # Pd HEBREW PUNCTUATION MAQAF
-05BF;CM # Mn HEBREW POINT RAFE
-05C0;AL # Po HEBREW PUNCTUATION PASEQ
-05C1..05C2;CM # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
-05C3;AL # Po HEBREW PUNCTUATION SOF PASUQ
-05C4..05C5;CM # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
-05C6;EX # Po HEBREW PUNCTUATION NUN HAFUKHA
-05C7;CM # Mn HEBREW POINT QAMATS QATAN
-05D0..05EA;HL # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
-05EF..05F2;HL # Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
-05F3..05F4;AL # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
-0600..0605;AL # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
-0606..0608;AL # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
-0609..060A;PO # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
-060B;PO # Sc AFGHANI SIGN
-060C..060D;IS # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
-060E..060F;AL # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
-0610..061A;CM # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
-061B;EX # Po ARABIC SEMICOLON
-061C;CM # Cf ARABIC LETTER MARK
-061E..061F;EX # Po [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
-0620..063F;AL # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
-0640;AL # Lm ARABIC TATWEEL
-0641..064A;AL # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
-064B..065F;CM # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
-0660..0669;NU # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
-066A;PO # Po ARABIC PERCENT SIGN
-066B..066C;NU # Po [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR
-066D;AL # Po ARABIC FIVE POINTED STAR
-066E..066F;AL # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
-0670;CM # Mn ARABIC LETTER SUPERSCRIPT ALEF
-0671..06D3;AL # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
-06D4;EX # Po ARABIC FULL STOP
-06D5;AL # Lo ARABIC LETTER AE
-06D6..06DC;CM # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
-06DD;AL # Cf ARABIC END OF AYAH
-06DE;AL # So ARABIC START OF RUB EL HIZB
-06DF..06E4;CM # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
-06E5..06E6;AL # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
-06E7..06E8;CM # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
-06E9;AL # So ARABIC PLACE OF SAJDAH
-06EA..06ED;CM # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
-06EE..06EF;AL # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
-06F0..06F9;NU # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
-06FA..06FC;AL # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
-06FD..06FE;AL # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
-06FF;AL # Lo ARABIC LETTER HEH WITH INVERTED V
-0700..070D;AL # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
-070F;AL # Cf SYRIAC ABBREVIATION MARK
-0710;AL # Lo SYRIAC LETTER ALAPH
-0711;CM # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
-0712..072F;AL # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
-0730..074A;CM # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
-074D..074F;AL # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
-0750..077F;AL # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
-0780..07A5;AL # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU
-07A6..07B0;CM # Mn [11] THAANA ABAFILI..THAANA SUKUN
-07B1;AL # Lo THAANA LETTER NAA
-07C0..07C9;NU # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
-07CA..07EA;AL # Lo [33] NKO LETTER A..NKO LETTER JONA RA
-07EB..07F3;CM # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
-07F4..07F5;AL # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
-07F6;AL # So NKO SYMBOL OO DENNEN
-07F7;AL # Po NKO SYMBOL GBAKURUNEN
-07F8;IS # Po NKO COMMA
-07F9;EX # Po NKO EXCLAMATION MARK
-07FA;AL # Lm NKO LAJANYALAN
-07FD;CM # Mn NKO DANTAYALAN
-07FE..07FF;PR # Sc [2] NKO DOROME SIGN..NKO TAMAN SIGN
-0800..0815;AL # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
-0816..0819;CM # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
-081A;AL # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT
-081B..0823;CM # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
-0824;AL # Lm SAMARITAN MODIFIER LETTER SHORT A
-0825..0827;CM # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
-0828;AL # Lm SAMARITAN MODIFIER LETTER I
-0829..082D;CM # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
-0830..083E;AL # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
-0840..0858;AL # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
-0859..085B;CM # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-085E;AL # Po MANDAIC PUNCTUATION
-0860..086A;AL # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
-08A0..08B4;AL # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
-08B6..08C7;AL # Lo [18] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
-08D3..08E1;CM # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
-08E2;AL # Cf ARABIC DISPUTED END OF AYAH
-08E3..08FF;CM # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
-0900..0902;CM # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
-0903;CM # Mc DEVANAGARI SIGN VISARGA
-0904..0939;AL # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
-093A;CM # Mn DEVANAGARI VOWEL SIGN OE
-093B;CM # Mc DEVANAGARI VOWEL SIGN OOE
-093C;CM # Mn DEVANAGARI SIGN NUKTA
-093D;AL # Lo DEVANAGARI SIGN AVAGRAHA
-093E..0940;CM # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
-0941..0948;CM # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
-0949..094C;CM # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
-094D;CM # Mn DEVANAGARI SIGN VIRAMA
-094E..094F;CM # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
-0950;AL # Lo DEVANAGARI OM
-0951..0957;CM # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
-0958..0961;AL # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
-0962..0963;CM # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
-0964..0965;BA # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
-0966..096F;NU # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
-0970;AL # Po DEVANAGARI ABBREVIATION SIGN
-0971;AL # Lm DEVANAGARI SIGN HIGH SPACING DOT
-0972..097F;AL # Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
-0980;AL # Lo BENGALI ANJI
-0981;CM # Mn BENGALI SIGN CANDRABINDU
-0982..0983;CM # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
-0985..098C;AL # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
-098F..0990;AL # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
-0993..09A8;AL # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
-09AA..09B0;AL # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
-09B2;AL # Lo BENGALI LETTER LA
-09B6..09B9;AL # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
-09BC;CM # Mn BENGALI SIGN NUKTA
-09BD;AL # Lo BENGALI SIGN AVAGRAHA
-09BE..09C0;CM # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
-09C1..09C4;CM # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
-09C7..09C8;CM # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
-09CB..09CC;CM # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
-09CD;CM # Mn BENGALI SIGN VIRAMA
-09CE;AL # Lo BENGALI LETTER KHANDA TA
-09D7;CM # Mc BENGALI AU LENGTH MARK
-09DC..09DD;AL # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
-09DF..09E1;AL # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
-09E2..09E3;CM # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
-09E6..09EF;NU # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
-09F0..09F1;AL # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
-09F2..09F3;PO # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
-09F4..09F8;AL # No [5] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
-09F9;PO # No BENGALI CURRENCY DENOMINATOR SIXTEEN
-09FA;AL # So BENGALI ISSHAR
-09FB;PR # Sc BENGALI GANDA MARK
-09FC;AL # Lo BENGALI LETTER VEDIC ANUSVARA
-09FD;AL # Po BENGALI ABBREVIATION SIGN
-09FE;CM # Mn BENGALI SANDHI MARK
-0A01..0A02;CM # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
-0A03;CM # Mc GURMUKHI SIGN VISARGA
-0A05..0A0A;AL # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
-0A0F..0A10;AL # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
-0A13..0A28;AL # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
-0A2A..0A30;AL # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
-0A32..0A33;AL # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
-0A35..0A36;AL # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
-0A38..0A39;AL # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
-0A3C;CM # Mn GURMUKHI SIGN NUKTA
-0A3E..0A40;CM # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
-0A41..0A42;CM # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
-0A47..0A48;CM # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
-0A4B..0A4D;CM # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
-0A51;CM # Mn GURMUKHI SIGN UDAAT
-0A59..0A5C;AL # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
-0A5E;AL # Lo GURMUKHI LETTER FA
-0A66..0A6F;NU # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
-0A70..0A71;CM # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
-0A72..0A74;AL # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
-0A75;CM # Mn GURMUKHI SIGN YAKASH
-0A76;AL # Po GURMUKHI ABBREVIATION SIGN
-0A81..0A82;CM # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
-0A83;CM # Mc GUJARATI SIGN VISARGA
-0A85..0A8D;AL # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
-0A8F..0A91;AL # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
-0A93..0AA8;AL # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
-0AAA..0AB0;AL # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
-0AB2..0AB3;AL # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
-0AB5..0AB9;AL # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
-0ABC;CM # Mn GUJARATI SIGN NUKTA
-0ABD;AL # Lo GUJARATI SIGN AVAGRAHA
-0ABE..0AC0;CM # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
-0AC1..0AC5;CM # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
-0AC7..0AC8;CM # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
-0AC9;CM # Mc GUJARATI VOWEL SIGN CANDRA O
-0ACB..0ACC;CM # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
-0ACD;CM # Mn GUJARATI SIGN VIRAMA
-0AD0;AL # Lo GUJARATI OM
-0AE0..0AE1;AL # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
-0AE2..0AE3;CM # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
-0AE6..0AEF;NU # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
-0AF0;AL # Po GUJARATI ABBREVIATION SIGN
-0AF1;PR # Sc GUJARATI RUPEE SIGN
-0AF9;AL # Lo GUJARATI LETTER ZHA
-0AFA..0AFF;CM # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
-0B01;CM # Mn ORIYA SIGN CANDRABINDU
-0B02..0B03;CM # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
-0B05..0B0C;AL # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
-0B0F..0B10;AL # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
-0B13..0B28;AL # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
-0B2A..0B30;AL # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
-0B32..0B33;AL # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
-0B35..0B39;AL # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
-0B3C;CM # Mn ORIYA SIGN NUKTA
-0B3D;AL # Lo ORIYA SIGN AVAGRAHA
-0B3E;CM # Mc ORIYA VOWEL SIGN AA
-0B3F;CM # Mn ORIYA VOWEL SIGN I
-0B40;CM # Mc ORIYA VOWEL SIGN II
-0B41..0B44;CM # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
-0B47..0B48;CM # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
-0B4B..0B4C;CM # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
-0B4D;CM # Mn ORIYA SIGN VIRAMA
-0B55..0B56;CM # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
-0B57;CM # Mc ORIYA AU LENGTH MARK
-0B5C..0B5D;AL # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
-0B5F..0B61;AL # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
-0B62..0B63;CM # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
-0B66..0B6F;NU # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
-0B70;AL # So ORIYA ISSHAR
-0B71;AL # Lo ORIYA LETTER WA
-0B72..0B77;AL # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
-0B82;CM # Mn TAMIL SIGN ANUSVARA
-0B83;AL # Lo TAMIL SIGN VISARGA
-0B85..0B8A;AL # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
-0B8E..0B90;AL # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
-0B92..0B95;AL # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
-0B99..0B9A;AL # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
-0B9C;AL # Lo TAMIL LETTER JA
-0B9E..0B9F;AL # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
-0BA3..0BA4;AL # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
-0BA8..0BAA;AL # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
-0BAE..0BB9;AL # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
-0BBE..0BBF;CM # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
-0BC0;CM # Mn TAMIL VOWEL SIGN II
-0BC1..0BC2;CM # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
-0BC6..0BC8;CM # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
-0BCA..0BCC;CM # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
-0BCD;CM # Mn TAMIL SIGN VIRAMA
-0BD0;AL # Lo TAMIL OM
-0BD7;CM # Mc TAMIL AU LENGTH MARK
-0BE6..0BEF;NU # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
-0BF0..0BF2;AL # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
-0BF3..0BF8;AL # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
-0BF9;PR # Sc TAMIL RUPEE SIGN
-0BFA;AL # So TAMIL NUMBER SIGN
-0C00;CM # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
-0C01..0C03;CM # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
-0C04;CM # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
-0C05..0C0C;AL # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
-0C0E..0C10;AL # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
-0C12..0C28;AL # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
-0C2A..0C39;AL # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
-0C3D;AL # Lo TELUGU SIGN AVAGRAHA
-0C3E..0C40;CM # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
-0C41..0C44;CM # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
-0C46..0C48;CM # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
-0C4A..0C4D;CM # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
-0C55..0C56;CM # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
-0C58..0C5A;AL # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
-0C60..0C61;AL # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
-0C62..0C63;CM # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
-0C66..0C6F;NU # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
-0C77;BB # Po TELUGU SIGN SIDDHAM
-0C78..0C7E;AL # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
-0C7F;AL # So TELUGU SIGN TUUMU
-0C80;AL # Lo KANNADA SIGN SPACING CANDRABINDU
-0C81;CM # Mn KANNADA SIGN CANDRABINDU
-0C82..0C83;CM # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
-0C84;BB # Po KANNADA SIGN SIDDHAM
-0C85..0C8C;AL # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
-0C8E..0C90;AL # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
-0C92..0CA8;AL # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
-0CAA..0CB3;AL # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
-0CB5..0CB9;AL # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
-0CBC;CM # Mn KANNADA SIGN NUKTA
-0CBD;AL # Lo KANNADA SIGN AVAGRAHA
-0CBE;CM # Mc KANNADA VOWEL SIGN AA
-0CBF;CM # Mn KANNADA VOWEL SIGN I
-0CC0..0CC4;CM # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
-0CC6;CM # Mn KANNADA VOWEL SIGN E
-0CC7..0CC8;CM # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
-0CCA..0CCB;CM # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
-0CCC..0CCD;CM # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
-0CD5..0CD6;CM # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
-0CDE;AL # Lo KANNADA LETTER FA
-0CE0..0CE1;AL # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
-0CE2..0CE3;CM # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
-0CE6..0CEF;NU # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
-0CF1..0CF2;AL # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
-0D00..0D01;CM # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
-0D02..0D03;CM # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
-0D04..0D0C;AL # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
-0D0E..0D10;AL # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
-0D12..0D3A;AL # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
-0D3B..0D3C;CM # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
-0D3D;AL # Lo MALAYALAM SIGN AVAGRAHA
-0D3E..0D40;CM # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
-0D41..0D44;CM # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
-0D46..0D48;CM # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
-0D4A..0D4C;CM # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
-0D4D;CM # Mn MALAYALAM SIGN VIRAMA
-0D4E;AL # Lo MALAYALAM LETTER DOT REPH
-0D4F;AL # So MALAYALAM SIGN PARA
-0D54..0D56;AL # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
-0D57;CM # Mc MALAYALAM AU LENGTH MARK
-0D58..0D5E;AL # No [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
-0D5F..0D61;AL # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
-0D62..0D63;CM # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
-0D66..0D6F;NU # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
-0D70..0D78;AL # No [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
-0D79;PO # So MALAYALAM DATE MARK
-0D7A..0D7F;AL # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
-0D81;CM # Mn SINHALA SIGN CANDRABINDU
-0D82..0D83;CM # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
-0D85..0D96;AL # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
-0D9A..0DB1;AL # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
-0DB3..0DBB;AL # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
-0DBD;AL # Lo SINHALA LETTER DANTAJA LAYANNA
-0DC0..0DC6;AL # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
-0DCA;CM # Mn SINHALA SIGN AL-LAKUNA
-0DCF..0DD1;CM # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
-0DD2..0DD4;CM # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
-0DD6;CM # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
-0DD8..0DDF;CM # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
-0DE6..0DEF;NU # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
-0DF2..0DF3;CM # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
-0DF4;AL # Po SINHALA PUNCTUATION KUNDDALIYA
-0E01..0E30;SA # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
-0E31;SA # Mn THAI CHARACTER MAI HAN-AKAT
-0E32..0E33;SA # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
-0E34..0E3A;SA # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
-0E3F;PR # Sc THAI CURRENCY SYMBOL BAHT
-0E40..0E45;SA # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
-0E46;SA # Lm THAI CHARACTER MAIYAMOK
-0E47..0E4E;SA # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
-0E4F;AL # Po THAI CHARACTER FONGMAN
-0E50..0E59;NU # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
-0E5A..0E5B;BA # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
-0E81..0E82;SA # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
-0E84;SA # Lo LAO LETTER KHO TAM
-0E86..0E8A;SA # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
-0E8C..0EA3;SA # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
-0EA5;SA # Lo LAO LETTER LO LOOT
-0EA7..0EB0;SA # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
-0EB1;SA # Mn LAO VOWEL SIGN MAI KAN
-0EB2..0EB3;SA # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
-0EB4..0EBC;SA # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EBD;SA # Lo LAO SEMIVOWEL SIGN NYO
-0EC0..0EC4;SA # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
-0EC6;SA # Lm LAO KO LA
-0EC8..0ECD;SA # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
-0ED0..0ED9;NU # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
-0EDC..0EDF;SA # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
-0F00;AL # Lo TIBETAN SYLLABLE OM
-0F01..0F03;BB # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
-0F04;BB # Po TIBETAN MARK INITIAL YIG MGO MDUN MA
-0F05;AL # Po TIBETAN MARK CLOSING YIG MGO SGAB MA
-0F06..0F07;BB # Po [2] TIBETAN MARK CARET YIG MGO PHUR SHAD MA..TIBETAN MARK YIG MGO TSHEG SHAD MA
-0F08;GL # Po TIBETAN MARK SBRUL SHAD
-0F09..0F0A;BB # Po [2] TIBETAN MARK BSKUR YIG MGO..TIBETAN MARK BKA- SHOG YIG MGO
-0F0B;BA # Po TIBETAN MARK INTERSYLLABIC TSHEG
-0F0C;GL # Po TIBETAN MARK DELIMITER TSHEG BSTAR
-0F0D..0F11;EX # Po [5] TIBETAN MARK SHAD..TIBETAN MARK RIN CHEN SPUNGS SHAD
-0F12;GL # Po TIBETAN MARK RGYA GRAM SHAD
-0F13;AL # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
-0F14;EX # Po TIBETAN MARK GTER TSHEG
-0F15..0F17;AL # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
-0F18..0F19;CM # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
-0F1A..0F1F;AL # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
-0F20..0F29;NU # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
-0F2A..0F33;AL # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
-0F34;BA # So TIBETAN MARK BSDUS RTAGS
-0F35;CM # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
-0F36;AL # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
-0F37;CM # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
-0F38;AL # So TIBETAN MARK CHE MGO
-0F39;CM # Mn TIBETAN MARK TSA -PHRU
-0F3A;OP # Ps TIBETAN MARK GUG RTAGS GYON
-0F3B;CL # Pe TIBETAN MARK GUG RTAGS GYAS
-0F3C;OP # Ps TIBETAN MARK ANG KHANG GYON
-0F3D;CL # Pe TIBETAN MARK ANG KHANG GYAS
-0F3E..0F3F;CM # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
-0F40..0F47;AL # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
-0F49..0F6C;AL # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
-0F71..0F7E;CM # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
-0F7F;BA # Mc TIBETAN SIGN RNAM BCAD
-0F80..0F84;CM # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
-0F85;BA # Po TIBETAN MARK PALUTA
-0F86..0F87;CM # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
-0F88..0F8C;AL # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
-0F8D..0F97;CM # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
-0F99..0FBC;CM # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
-0FBE..0FBF;BA # So [2] TIBETAN KU RU KHA..TIBETAN KU RU KHA BZHI MIG CAN
-0FC0..0FC5;AL # So [6] TIBETAN CANTILLATION SIGN HEAVY BEAT..TIBETAN SYMBOL RDO RJE
-0FC6;CM # Mn TIBETAN SYMBOL PADMA GDAN
-0FC7..0FCC;AL # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
-0FCE..0FCF;AL # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
-0FD0..0FD1;BB # Po [2] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN
-0FD2;BA # Po TIBETAN MARK NYIS TSHEG
-0FD3;BB # Po TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
-0FD4;AL # Po TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
-0FD5..0FD8;AL # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
-0FD9..0FDA;GL # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
-1000..102A;SA # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
-102B..102C;SA # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
-102D..1030;SA # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
-1031;SA # Mc MYANMAR VOWEL SIGN E
-1032..1037;SA # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
-1038;SA # Mc MYANMAR SIGN VISARGA
-1039..103A;SA # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
-103B..103C;SA # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
-103D..103E;SA # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
-103F;SA # Lo MYANMAR LETTER GREAT SA
-1040..1049;NU # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
-104A..104B;BA # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
-104C..104F;AL # Po [4] MYANMAR SYMBOL LOCATIVE..MYANMAR SYMBOL GENITIVE
-1050..1055;SA # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
-1056..1057;SA # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
-1058..1059;SA # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
-105A..105D;SA # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
-105E..1060;SA # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
-1061;SA # Lo MYANMAR LETTER SGAW KAREN SHA
-1062..1064;SA # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
-1065..1066;SA # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
-1067..106D;SA # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
-106E..1070;SA # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
-1071..1074;SA # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
-1075..1081;SA # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
-1082;SA # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
-1083..1084;SA # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
-1085..1086;SA # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
-1087..108C;SA # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
-108D;SA # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
-108E;SA # Lo MYANMAR LETTER RUMAI PALAUNG FA
-108F;SA # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
-1090..1099;NU # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
-109A..109C;SA # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
-109D;SA # Mn MYANMAR VOWEL SIGN AITON AI
-109E..109F;SA # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
-10A0..10C5;AL # Lu [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
-10C7;AL # Lu GEORGIAN CAPITAL LETTER YN
-10CD;AL # Lu GEORGIAN CAPITAL LETTER AEN
-10D0..10FA;AL # Ll [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
-10FB;AL # Po GEORGIAN PARAGRAPH SEPARATOR
-10FC;AL # Lm MODIFIER LETTER GEORGIAN NAR
-10FD..10FF;AL # Ll [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
-1100..115F;JL # Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
-1160..11A7;JV # Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
-11A8..11FF;JT # Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
-1200..1248;AL # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
-124A..124D;AL # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
-1250..1256;AL # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
-1258;AL # Lo ETHIOPIC SYLLABLE QHWA
-125A..125D;AL # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
-1260..1288;AL # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
-128A..128D;AL # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
-1290..12B0;AL # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
-12B2..12B5;AL # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
-12B8..12BE;AL # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
-12C0;AL # Lo ETHIOPIC SYLLABLE KXWA
-12C2..12C5;AL # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
-12C8..12D6;AL # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
-12D8..1310;AL # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
-1312..1315;AL # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
-1318..135A;AL # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
-135D..135F;CM # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
-1360;AL # Po ETHIOPIC SECTION MARK
-1361;BA # Po ETHIOPIC WORDSPACE
-1362..1368;AL # Po [7] ETHIOPIC FULL STOP..ETHIOPIC PARAGRAPH SEPARATOR
-1369..137C;AL # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
-1380..138F;AL # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
-1390..1399;AL # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
-13A0..13F5;AL # Lu [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
-13F8..13FD;AL # Ll [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
-1400;BA # Pd CANADIAN SYLLABICS HYPHEN
-1401..166C;AL # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
-166D;AL # So CANADIAN SYLLABICS CHI SIGN
-166E;AL # Po CANADIAN SYLLABICS FULL STOP
-166F..167F;AL # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
-1680;BA # Zs OGHAM SPACE MARK
-1681..169A;AL # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
-169B;OP # Ps OGHAM FEATHER MARK
-169C;CL # Pe OGHAM REVERSED FEATHER MARK
-16A0..16EA;AL # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
-16EB..16ED;BA # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
-16EE..16F0;AL # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
-16F1..16F8;AL # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
-1700..170C;AL # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
-170E..1711;AL # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
-1712..1714;CM # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
-1720..1731;AL # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
-1732..1734;CM # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
-1735..1736;BA # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
-1740..1751;AL # Lo [18] BUHID LETTER A..BUHID LETTER HA
-1752..1753;CM # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
-1760..176C;AL # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
-176E..1770;AL # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
-1772..1773;CM # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
-1780..17B3;SA # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
-17B4..17B5;SA # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
-17B6;SA # Mc KHMER VOWEL SIGN AA
-17B7..17BD;SA # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
-17BE..17C5;SA # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
-17C6;SA # Mn KHMER SIGN NIKAHIT
-17C7..17C8;SA # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
-17C9..17D3;SA # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
-17D4..17D5;BA # Po [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN
-17D6;NS # Po KHMER SIGN CAMNUC PII KUUH
-17D7;SA # Lm KHMER SIGN LEK TOO
-17D8;BA # Po KHMER SIGN BEYYAL
-17D9;AL # Po KHMER SIGN PHNAEK MUAN
-17DA;BA # Po KHMER SIGN KOOMUUT
-17DB;PR # Sc KHMER CURRENCY SYMBOL RIEL
-17DC;SA # Lo KHMER SIGN AVAKRAHASANYA
-17DD;SA # Mn KHMER SIGN ATTHACAN
-17E0..17E9;NU # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
-17F0..17F9;AL # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
-1800..1801;AL # Po [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS
-1802..1803;EX # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
-1804..1805;BA # Po [2] MONGOLIAN COLON..MONGOLIAN FOUR DOTS
-1806;BB # Pd MONGOLIAN TODO SOFT HYPHEN
-1807;AL # Po MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
-1808..1809;EX # Po [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP
-180A;AL # Po MONGOLIAN NIRUGU
-180B..180D;CM # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
-180E;GL # Cf MONGOLIAN VOWEL SEPARATOR
-1810..1819;NU # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
-1820..1842;AL # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
-1843;AL # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
-1844..1878;AL # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
-1880..1884;AL # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
-1885..1886;CM # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
-1887..18A8;AL # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
-18A9;CM # Mn MONGOLIAN LETTER ALI GALI DAGALGA
-18AA;AL # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
-18B0..18F5;AL # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
-1900..191E;AL # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
-1920..1922;CM # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
-1923..1926;CM # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
-1927..1928;CM # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
-1929..192B;CM # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
-1930..1931;CM # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
-1932;CM # Mn LIMBU SMALL LETTER ANUSVARA
-1933..1938;CM # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
-1939..193B;CM # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
-1940;AL # So LIMBU SIGN LOO
-1944..1945;EX # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
-1946..194F;NU # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
-1950..196D;SA # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
-1970..1974;SA # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
-1980..19AB;SA # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
-19B0..19C9;SA # Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
-19D0..19D9;NU # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
-19DA;SA # No NEW TAI LUE THAM DIGIT ONE
-19DE..19DF;SA # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
-19E0..19FF;AL # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
-1A00..1A16;AL # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
-1A17..1A18;CM # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
-1A19..1A1A;CM # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
-1A1B;CM # Mn BUGINESE VOWEL SIGN AE
-1A1E..1A1F;AL # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
-1A20..1A54;SA # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
-1A55;SA # Mc TAI THAM CONSONANT SIGN MEDIAL RA
-1A56;SA # Mn TAI THAM CONSONANT SIGN MEDIAL LA
-1A57;SA # Mc TAI THAM CONSONANT SIGN LA TANG LAI
-1A58..1A5E;SA # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
-1A60;SA # Mn TAI THAM SIGN SAKOT
-1A61;SA # Mc TAI THAM VOWEL SIGN A
-1A62;SA # Mn TAI THAM VOWEL SIGN MAI SAT
-1A63..1A64;SA # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
-1A65..1A6C;SA # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
-1A6D..1A72;SA # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
-1A73..1A7C;SA # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
-1A7F;CM # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
-1A80..1A89;NU # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
-1A90..1A99;NU # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
-1AA0..1AA6;SA # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
-1AA7;SA # Lm TAI THAM SIGN MAI YAMOK
-1AA8..1AAD;SA # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
-1AB0..1ABD;CM # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
-1ABE;CM # Me COMBINING PARENTHESES OVERLAY
-1ABF..1AC0;CM # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
-1B00..1B03;CM # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
-1B04;CM # Mc BALINESE SIGN BISAH
-1B05..1B33;AL # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
-1B34;CM # Mn BALINESE SIGN REREKAN
-1B35;CM # Mc BALINESE VOWEL SIGN TEDUNG
-1B36..1B3A;CM # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
-1B3B;CM # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
-1B3C;CM # Mn BALINESE VOWEL SIGN LA LENGA
-1B3D..1B41;CM # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
-1B42;CM # Mn BALINESE VOWEL SIGN PEPET
-1B43..1B44;CM # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
-1B45..1B4B;AL # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
-1B50..1B59;NU # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
-1B5A..1B5B;BA # Po [2] BALINESE PANTI..BALINESE PAMADA
-1B5C;AL # Po BALINESE WINDU
-1B5D..1B60;BA # Po [4] BALINESE CARIK PAMUNGKAH..BALINESE PAMENENG
-1B61..1B6A;AL # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
-1B6B..1B73;CM # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
-1B74..1B7C;AL # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
-1B80..1B81;CM # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
-1B82;CM # Mc SUNDANESE SIGN PANGWISAD
-1B83..1BA0;AL # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
-1BA1;CM # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
-1BA2..1BA5;CM # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
-1BA6..1BA7;CM # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
-1BA8..1BA9;CM # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
-1BAA;CM # Mc SUNDANESE SIGN PAMAAEH
-1BAB..1BAD;CM # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
-1BAE..1BAF;AL # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
-1BB0..1BB9;NU # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
-1BBA..1BBF;AL # Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
-1BC0..1BE5;AL # Lo [38] BATAK LETTER A..BATAK LETTER U
-1BE6;CM # Mn BATAK SIGN TOMPI
-1BE7;CM # Mc BATAK VOWEL SIGN E
-1BE8..1BE9;CM # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
-1BEA..1BEC;CM # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
-1BED;CM # Mn BATAK VOWEL SIGN KARO O
-1BEE;CM # Mc BATAK VOWEL SIGN U
-1BEF..1BF1;CM # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
-1BF2..1BF3;CM # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
-1BFC..1BFF;AL # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
-1C00..1C23;AL # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
-1C24..1C2B;CM # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
-1C2C..1C33;CM # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
-1C34..1C35;CM # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
-1C36..1C37;CM # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
-1C3B..1C3F;BA # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
-1C40..1C49;NU # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
-1C4D..1C4F;AL # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
-1C50..1C59;NU # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
-1C5A..1C77;AL # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
-1C78..1C7D;AL # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
-1C7E..1C7F;BA # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
-1C80..1C88;AL # Ll [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
-1C90..1CBA;AL # Lu [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
-1CBD..1CBF;AL # Lu [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
-1CC0..1CC7;AL # Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
-1CD0..1CD2;CM # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
-1CD3;AL # Po VEDIC SIGN NIHSHVASA
-1CD4..1CE0;CM # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
-1CE1;CM # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
-1CE2..1CE8;CM # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
-1CE9..1CEC;AL # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
-1CED;CM # Mn VEDIC SIGN TIRYAK
-1CEE..1CF3;AL # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
-1CF4;CM # Mn VEDIC TONE CANDRA ABOVE
-1CF5..1CF6;AL # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
-1CF7;CM # Mc VEDIC SIGN ATIKRAMA
-1CF8..1CF9;CM # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
-1CFA;AL # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
-1D00..1D2B;AL # Ll [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
-1D2C..1D6A;AL # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
-1D6B..1D77;AL # Ll [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
-1D78;AL # Lm MODIFIER LETTER CYRILLIC EN
-1D79..1D7F;AL # Ll [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
-1D80..1D9A;AL # Ll [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
-1D9B..1DBF;AL # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
-1DC0..1DF9;CM # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
-1DFB..1DFF;CM # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
-1E00..1EFF;AL # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
-1F00..1F15;AL # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
-1F18..1F1D;AL # Lu [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
-1F20..1F45;AL # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
-1F48..1F4D;AL # Lu [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
-1F50..1F57;AL # Ll [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
-1F59;AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA
-1F5B;AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
-1F5D;AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
-1F5F..1F7D;AL # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
-1F80..1FB4;AL # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
-1FB6..1FBC;AL # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
-1FBD;AL # Sk GREEK KORONIS
-1FBE;AL # Ll GREEK PROSGEGRAMMENI
-1FBF..1FC1;AL # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
-1FC2..1FC4;AL # Ll [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
-1FC6..1FCC;AL # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-1FCD..1FCF;AL # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
-1FD0..1FD3;AL # Ll [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
-1FD6..1FDB;AL # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
-1FDD..1FDF;AL # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
-1FE0..1FEC;AL # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
-1FED..1FEF;AL # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
-1FF2..1FF4;AL # Ll [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
-1FF6..1FFC;AL # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
-1FFD;BB # Sk GREEK OXIA
-1FFE;AL # Sk GREEK DASIA
-2000..2006;BA # Zs [7] EN QUAD..SIX-PER-EM SPACE
-2007;GL # Zs FIGURE SPACE
-2008..200A;BA # Zs [3] PUNCTUATION SPACE..HAIR SPACE
-200B;ZW # Cf ZERO WIDTH SPACE
-200C;CM # Cf ZERO WIDTH NON-JOINER
-200D;ZWJ # Cf ZERO WIDTH JOINER
-200E..200F;CM # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
-2010;BA # Pd HYPHEN
-2011;GL # Pd NON-BREAKING HYPHEN
-2012..2013;BA # Pd [2] FIGURE DASH..EN DASH
-2014;B2 # Pd EM DASH
-2015;AI # Pd HORIZONTAL BAR
-2016;AI # Po DOUBLE VERTICAL LINE
-2017;AL # Po DOUBLE LOW LINE
-2018;QU # Pi LEFT SINGLE QUOTATION MARK
-2019;QU # Pf RIGHT SINGLE QUOTATION MARK
-201A;OP # Ps SINGLE LOW-9 QUOTATION MARK
-201B..201C;QU # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
-201D;QU # Pf RIGHT DOUBLE QUOTATION MARK
-201E;OP # Ps DOUBLE LOW-9 QUOTATION MARK
-201F;QU # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
-2020..2021;AI # Po [2] DAGGER..DOUBLE DAGGER
-2022..2023;AL # Po [2] BULLET..TRIANGULAR BULLET
-2024..2026;IN # Po [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS
-2027;BA # Po HYPHENATION POINT
-2028;BK # Zl LINE SEPARATOR
-2029;BK # Zp PARAGRAPH SEPARATOR
-202A..202E;CM # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
-202F;GL # Zs NARROW NO-BREAK SPACE
-2030..2037;PO # Po [8] PER MILLE SIGN..REVERSED TRIPLE PRIME
-2038;AL # Po CARET
-2039;QU # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-203A;QU # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-203B;AI # Po REFERENCE MARK
-203C..203D;NS # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
-203E;AL # Po OVERLINE
-203F..2040;AL # Pc [2] UNDERTIE..CHARACTER TIE
-2041..2043;AL # Po [3] CARET INSERTION POINT..HYPHEN BULLET
-2044;IS # Sm FRACTION SLASH
-2045;OP # Ps LEFT SQUARE BRACKET WITH QUILL
-2046;CL # Pe RIGHT SQUARE BRACKET WITH QUILL
-2047..2049;NS # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
-204A..2051;AL # Po [8] TIRONIAN SIGN ET..TWO ASTERISKS ALIGNED VERTICALLY
-2052;AL # Sm COMMERCIAL MINUS SIGN
-2053;AL # Po SWUNG DASH
-2054;AL # Pc INVERTED UNDERTIE
-2055;AL # Po FLOWER PUNCTUATION MARK
-2056;BA # Po THREE DOT PUNCTUATION
-2057;AL # Po QUADRUPLE PRIME
-2058..205B;BA # Po [4] FOUR DOT PUNCTUATION..FOUR DOT MARK
-205C;AL # Po DOTTED CROSS
-205D..205E;BA # Po [2] TRICOLON..VERTICAL FOUR DOTS
-205F;BA # Zs MEDIUM MATHEMATICAL SPACE
-2060;WJ # Cf WORD JOINER
-2061..2064;AL # Cf [4] FUNCTION APPLICATION..INVISIBLE PLUS
-2066..206F;CM # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
-2070;AL # No SUPERSCRIPT ZERO
-2071;AL # Lm SUPERSCRIPT LATIN SMALL LETTER I
-2074;AI # No SUPERSCRIPT FOUR
-2075..2079;AL # No [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
-207A..207C;AL # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
-207D;OP # Ps SUPERSCRIPT LEFT PARENTHESIS
-207E;CL # Pe SUPERSCRIPT RIGHT PARENTHESIS
-207F;AI # Lm SUPERSCRIPT LATIN SMALL LETTER N
-2080;AL # No SUBSCRIPT ZERO
-2081..2084;AI # No [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
-2085..2089;AL # No [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
-208A..208C;AL # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
-208D;OP # Ps SUBSCRIPT LEFT PARENTHESIS
-208E;CL # Pe SUBSCRIPT RIGHT PARENTHESIS
-2090..209C;AL # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
-20A0..20A6;PR # Sc [7] EURO-CURRENCY SIGN..NAIRA SIGN
-20A7;PO # Sc PESETA SIGN
-20A8..20B5;PR # Sc [14] RUPEE SIGN..CEDI SIGN
-20B6;PO # Sc LIVRE TOURNOIS SIGN
-20B7..20BA;PR # Sc [4] SPESMILO SIGN..TURKISH LIRA SIGN
-20BB;PO # Sc NORDIC MARK SIGN
-20BC..20BD;PR # Sc [2] MANAT SIGN..RUBLE SIGN
-20BE;PO # Sc LARI SIGN
-20BF;PR # Sc BITCOIN SIGN
-20C0..20CF;PR # Cn [16] <reserved-20C0>..<reserved-20CF>
-20D0..20DC;CM # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
-20DD..20E0;CM # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
-20E1;CM # Mn COMBINING LEFT RIGHT ARROW ABOVE
-20E2..20E4;CM # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
-20E5..20F0;CM # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
-2100..2101;AL # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
-2102;AL # Lu DOUBLE-STRUCK CAPITAL C
-2103;PO # So DEGREE CELSIUS
-2104;AL # So CENTRE LINE SYMBOL
-2105;AI # So CARE OF
-2106;AL # So CADA UNA
-2107;AL # Lu EULER CONSTANT
-2108;AL # So SCRUPLE
-2109;PO # So DEGREE FAHRENHEIT
-210A..2112;AL # L& [9] SCRIPT SMALL G..SCRIPT CAPITAL L
-2113;AI # Ll SCRIPT SMALL L
-2114;AL # So L B BAR SYMBOL
-2115;AL # Lu DOUBLE-STRUCK CAPITAL N
-2116;PR # So NUMERO SIGN
-2117;AL # So SOUND RECORDING COPYRIGHT
-2118;AL # Sm SCRIPT CAPITAL P
-2119..211D;AL # Lu [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
-211E..2120;AL # So [3] PRESCRIPTION TAKE..SERVICE MARK
-2121..2122;AI # So [2] TELEPHONE SIGN..TRADE MARK SIGN
-2123;AL # So VERSICLE
-2124;AL # Lu DOUBLE-STRUCK CAPITAL Z
-2125;AL # So OUNCE SIGN
-2126;AL # Lu OHM SIGN
-2127;AL # So INVERTED OHM SIGN
-2128;AL # Lu BLACK-LETTER CAPITAL Z
-2129;AL # So TURNED GREEK SMALL LETTER IOTA
-212A;AL # Lu KELVIN SIGN
-212B;AI # Lu ANGSTROM SIGN
-212C..212D;AL # Lu [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
-212E;AL # So ESTIMATED SYMBOL
-212F..2134;AL # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
-2135..2138;AL # Lo [4] ALEF SYMBOL..DALET SYMBOL
-2139;AL # Ll INFORMATION SOURCE
-213A..213B;AL # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
-213C..213F;AL # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
-2140..2144;AL # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
-2145..2149;AL # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
-214A;AL # So PROPERTY LINE
-214B;AL # Sm TURNED AMPERSAND
-214C..214D;AL # So [2] PER SIGN..AKTIESELSKAB
-214E;AL # Ll TURNED SMALL F
-214F;AL # So SYMBOL FOR SAMARITAN SOURCE
-2150..2153;AL # No [4] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE THIRD
-2154..2155;AI # No [2] VULGAR FRACTION TWO THIRDS..VULGAR FRACTION ONE FIFTH
-2156..215A;AL # No [5] VULGAR FRACTION TWO FIFTHS..VULGAR FRACTION FIVE SIXTHS
-215B;AI # No VULGAR FRACTION ONE EIGHTH
-215C..215D;AL # No [2] VULGAR FRACTION THREE EIGHTHS..VULGAR FRACTION FIVE EIGHTHS
-215E;AI # No VULGAR FRACTION SEVEN EIGHTHS
-215F;AL # No FRACTION NUMERATOR ONE
-2160..216B;AI # Nl [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
-216C..216F;AL # Nl [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
-2170..2179;AI # Nl [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
-217A..2182;AL # Nl [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
-2183..2184;AL # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
-2185..2188;AL # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
-2189;AI # No VULGAR FRACTION ZERO THIRDS
-218A..218B;AL # So [2] TURNED DIGIT TWO..TURNED DIGIT THREE
-2190..2194;AI # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
-2195..2199;AI # So [5] UP DOWN ARROW..SOUTH WEST ARROW
-219A..219B;AL # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
-219C..219F;AL # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
-21A0;AL # Sm RIGHTWARDS TWO HEADED ARROW
-21A1..21A2;AL # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
-21A3;AL # Sm RIGHTWARDS ARROW WITH TAIL
-21A4..21A5;AL # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
-21A6;AL # Sm RIGHTWARDS ARROW FROM BAR
-21A7..21AD;AL # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
-21AE;AL # Sm LEFT RIGHT ARROW WITH STROKE
-21AF..21CD;AL # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
-21CE..21CF;AL # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
-21D0..21D1;AL # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
-21D2;AI # Sm RIGHTWARDS DOUBLE ARROW
-21D3;AL # So DOWNWARDS DOUBLE ARROW
-21D4;AI # Sm LEFT RIGHT DOUBLE ARROW
-21D5..21F3;AL # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
-21F4..21FF;AL # Sm [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
-2200;AI # Sm FOR ALL
-2201;AL # Sm COMPLEMENT
-2202..2203;AI # Sm [2] PARTIAL DIFFERENTIAL..THERE EXISTS
-2204..2206;AL # Sm [3] THERE DOES NOT EXIST..INCREMENT
-2207..2208;AI # Sm [2] NABLA..ELEMENT OF
-2209..220A;AL # Sm [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
-220B;AI # Sm CONTAINS AS MEMBER
-220C..220E;AL # Sm [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
-220F;AI # Sm N-ARY PRODUCT
-2210;AL # Sm N-ARY COPRODUCT
-2211;AI # Sm N-ARY SUMMATION
-2212..2213;PR # Sm [2] MINUS SIGN..MINUS-OR-PLUS SIGN
-2214;AL # Sm DOT PLUS
-2215;AI # Sm DIVISION SLASH
-2216..2219;AL # Sm [4] SET MINUS..BULLET OPERATOR
-221A;AI # Sm SQUARE ROOT
-221B..221C;AL # Sm [2] CUBE ROOT..FOURTH ROOT
-221D..2220;AI # Sm [4] PROPORTIONAL TO..ANGLE
-2221..2222;AL # Sm [2] MEASURED ANGLE..SPHERICAL ANGLE
-2223;AI # Sm DIVIDES
-2224;AL # Sm DOES NOT DIVIDE
-2225;AI # Sm PARALLEL TO
-2226;AL # Sm NOT PARALLEL TO
-2227..222C;AI # Sm [6] LOGICAL AND..DOUBLE INTEGRAL
-222D;AL # Sm TRIPLE INTEGRAL
-222E;AI # Sm CONTOUR INTEGRAL
-222F..2233;AL # Sm [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
-2234..2237;AI # Sm [4] THEREFORE..PROPORTION
-2238..223B;AL # Sm [4] DOT MINUS..HOMOTHETIC
-223C..223D;AI # Sm [2] TILDE OPERATOR..REVERSED TILDE
-223E..2247;AL # Sm [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
-2248;AI # Sm ALMOST EQUAL TO
-2249..224B;AL # Sm [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
-224C;AI # Sm ALL EQUAL TO
-224D..2251;AL # Sm [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
-2252;AI # Sm APPROXIMATELY EQUAL TO OR THE IMAGE OF
-2253..225F;AL # Sm [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
-2260..2261;AI # Sm [2] NOT EQUAL TO..IDENTICAL TO
-2262..2263;AL # Sm [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
-2264..2267;AI # Sm [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
-2268..2269;AL # Sm [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
-226A..226B;AI # Sm [2] MUCH LESS-THAN..MUCH GREATER-THAN
-226C..226D;AL # Sm [2] BETWEEN..NOT EQUIVALENT TO
-226E..226F;AI # Sm [2] NOT LESS-THAN..NOT GREATER-THAN
-2270..2281;AL # Sm [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
-2282..2283;AI # Sm [2] SUBSET OF..SUPERSET OF
-2284..2285;AL # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
-2286..2287;AI # Sm [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
-2288..2294;AL # Sm [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
-2295;AI # Sm CIRCLED PLUS
-2296..2298;AL # Sm [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
-2299;AI # Sm CIRCLED DOT OPERATOR
-229A..22A4;AL # Sm [11] CIRCLED RING OPERATOR..DOWN TACK
-22A5;AI # Sm UP TACK
-22A6..22BE;AL # Sm [25] ASSERTION..RIGHT ANGLE WITH ARC
-22BF;AI # Sm RIGHT TRIANGLE
-22C0..22EE;AL # Sm [47] N-ARY LOGICAL AND..VERTICAL ELLIPSIS
-22EF;IN # Sm MIDLINE HORIZONTAL ELLIPSIS
-22F0..22FF;AL # Sm [16] UP RIGHT DIAGONAL ELLIPSIS..Z NOTATION BAG MEMBERSHIP
-2300..2307;AL # So [8] DIAMETER SIGN..WAVY LINE
-2308;OP # Ps LEFT CEILING
-2309;CL # Pe RIGHT CEILING
-230A;OP # Ps LEFT FLOOR
-230B;CL # Pe RIGHT FLOOR
-230C..2311;AL # So [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
-2312;AI # So ARC
-2313..2319;AL # So [7] SEGMENT..TURNED NOT SIGN
-231A..231B;ID # So [2] WATCH..HOURGLASS
-231C..231F;AL # So [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
-2320..2321;AL # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
-2322..2328;AL # So [7] FROWN..KEYBOARD
-2329;OP # Ps LEFT-POINTING ANGLE BRACKET
-232A;CL # Pe RIGHT-POINTING ANGLE BRACKET
-232B..237B;AL # So [81] ERASE TO THE LEFT..NOT CHECK MARK
-237C;AL # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
-237D..239A;AL # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
-239B..23B3;AL # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
-23B4..23DB;AL # So [40] TOP SQUARE BRACKET..FUSE
-23DC..23E1;AL # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
-23E2..23EF;AL # So [14] WHITE TRAPEZIUM..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
-23F0..23F3;ID # So [4] ALARM CLOCK..HOURGLASS WITH FLOWING SAND
-23F4..23FF;AL # So [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL
-2400..2426;AL # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
-2440..244A;AL # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
-2460..249B;AI # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
-249C..24E9;AI # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
-24EA..24FE;AI # No [21] CIRCLED DIGIT ZERO..DOUBLE CIRCLED NUMBER TEN
-24FF;AL # No NEGATIVE CIRCLED DIGIT ZERO
-2500..254B;AI # So [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
-254C..254F;AL # So [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
-2550..2574;AI # So [37] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT LEFT
-2575..257F;AL # So [11] BOX DRAWINGS LIGHT UP..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
-2580..258F;AI # So [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
-2590..2591;AL # So [2] RIGHT HALF BLOCK..LIGHT SHADE
-2592..2595;AI # So [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
-2596..259F;AL # So [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
-25A0..25A1;AI # So [2] BLACK SQUARE..WHITE SQUARE
-25A2;AL # So WHITE SQUARE WITH ROUNDED CORNERS
-25A3..25A9;AI # So [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
-25AA..25B1;AL # So [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
-25B2..25B3;AI # So [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
-25B4..25B5;AL # So [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
-25B6;AI # So BLACK RIGHT-POINTING TRIANGLE
-25B7;AI # Sm WHITE RIGHT-POINTING TRIANGLE
-25B8..25BB;AL # So [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
-25BC..25BD;AI # So [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
-25BE..25BF;AL # So [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
-25C0;AI # So BLACK LEFT-POINTING TRIANGLE
-25C1;AI # Sm WHITE LEFT-POINTING TRIANGLE
-25C2..25C5;AL # So [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
-25C6..25C8;AI # So [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
-25C9..25CA;AL # So [2] FISHEYE..LOZENGE
-25CB;AI # So WHITE CIRCLE
-25CC..25CD;AL # So [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
-25CE..25D1;AI # So [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
-25D2..25E1;AL # So [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
-25E2..25E5;AI # So [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
-25E6..25EE;AL # So [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
-25EF;AI # So LARGE CIRCLE
-25F0..25F7;AL # So [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
-25F8..25FF;AL # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
-2600..2603;ID # So [4] BLACK SUN WITH RAYS..SNOWMAN
-2604;AL # So COMET
-2605..2606;AI # So [2] BLACK STAR..WHITE STAR
-2607..2608;AL # So [2] LIGHTNING..THUNDERSTORM
-2609;AI # So SUN
-260A..260D;AL # So [4] ASCENDING NODE..OPPOSITION
-260E..260F;AI # So [2] BLACK TELEPHONE..WHITE TELEPHONE
-2610..2613;AL # So [4] BALLOT BOX..SALTIRE
-2614..2615;ID # So [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
-2616..2617;AI # So [2] WHITE SHOGI PIECE..BLACK SHOGI PIECE
-2618;ID # So SHAMROCK
-2619;AL # So REVERSED ROTATED FLORAL HEART BULLET
-261A..261C;ID # So [3] BLACK LEFT POINTING INDEX..WHITE LEFT POINTING INDEX
-261D;EB # So WHITE UP POINTING INDEX
-261E..261F;ID # So [2] WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX
-2620..2638;AL # So [25] SKULL AND CROSSBONES..WHEEL OF DHARMA
-2639..263B;ID # So [3] WHITE FROWNING FACE..BLACK SMILING FACE
-263C..263F;AL # So [4] WHITE SUN WITH RAYS..MERCURY
-2640;AI # So FEMALE SIGN
-2641;AL # So EARTH
-2642;AI # So MALE SIGN
-2643..265F;AL # So [29] JUPITER..BLACK CHESS PAWN
-2660..2661;AI # So [2] BLACK SPADE SUIT..WHITE HEART SUIT
-2662;AL # So WHITE DIAMOND SUIT
-2663..2665;AI # So [3] BLACK CLUB SUIT..BLACK HEART SUIT
-2666;AL # So BLACK DIAMOND SUIT
-2667;AI # So WHITE CLUB SUIT
-2668;ID # So HOT SPRINGS
-2669..266A;AI # So [2] QUARTER NOTE..EIGHTH NOTE
-266B;AL # So BEAMED EIGHTH NOTES
-266C..266D;AI # So [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
-266E;AL # So MUSIC NATURAL SIGN
-266F;AI # Sm MUSIC SHARP SIGN
-2670..267E;AL # So [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
-267F;ID # So WHEELCHAIR SYMBOL
-2680..269D;AL # So [30] DIE FACE-1..OUTLINED WHITE STAR
-269E..269F;AI # So [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
-26A0..26BC;AL # So [29] WARNING SIGN..SESQUIQUADRATE
-26BD..26C8;ID # So [12] SOCCER BALL..THUNDER CLOUD AND RAIN
-26C9..26CC;AI # So [4] TURNED WHITE SHOGI PIECE..CROSSING LANES
-26CD;ID # So DISABLED CAR
-26CE;AL # So OPHIUCHUS
-26CF..26D1;ID # So [3] PICK..HELMET WITH WHITE CROSS
-26D2;AI # So CIRCLED CROSSING LANES
-26D3..26D4;ID # So [2] CHAINS..NO ENTRY
-26D5..26D7;AI # So [3] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..WHITE TWO-WAY LEFT WAY TRAFFIC
-26D8..26D9;ID # So [2] BLACK LEFT LANE MERGE..WHITE LEFT LANE MERGE
-26DA..26DB;AI # So [2] DRIVE SLOW SIGN..HEAVY WHITE DOWN-POINTING TRIANGLE
-26DC;ID # So LEFT CLOSED ENTRY
-26DD..26DE;AI # So [2] SQUARED SALTIRE..FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
-26DF..26E1;ID # So [3] BLACK TRUCK..RESTRICTED LEFT ENTRY-2
-26E2;AL # So ASTRONOMICAL SYMBOL FOR URANUS
-26E3;AI # So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
-26E4..26E7;AL # So [4] PENTAGRAM..INVERTED PENTAGRAM
-26E8..26E9;AI # So [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
-26EA;ID # So CHURCH
-26EB..26F0;AI # So [6] CASTLE..MOUNTAIN
-26F1..26F5;ID # So [5] UMBRELLA ON GROUND..SAILBOAT
-26F6;AI # So SQUARE FOUR CORNERS
-26F7..26F8;ID # So [2] SKIER..ICE SKATE
-26F9;EB # So PERSON WITH BALL
-26FA;ID # So TENT
-26FB..26FC;AI # So [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
-26FD..26FF;ID # So [3] FUEL PUMP..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
-2700..2704;ID # So [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
-2705..2707;AL # So [3] WHITE HEAVY CHECK MARK..TAPE DRIVE
-2708..2709;ID # So [2] AIRPLANE..ENVELOPE
-270A..270D;EB # So [4] RAISED FIST..WRITING HAND
-270E..2756;AL # So [73] LOWER RIGHT PENCIL..BLACK DIAMOND MINUS WHITE X
-2757;AI # So HEAVY EXCLAMATION MARK SYMBOL
-2758..275A;AL # So [3] LIGHT VERTICAL BAR..HEAVY VERTICAL BAR
-275B..2760;QU # So [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-2761;AL # So CURVED STEM PARAGRAPH SIGN ORNAMENT
-2762..2763;EX # So [2] HEAVY EXCLAMATION MARK ORNAMENT..HEAVY HEART EXCLAMATION MARK ORNAMENT
-2764;ID # So HEAVY BLACK HEART
-2765..2767;AL # So [3] ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
-2768;OP # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
-2769;CL # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
-276A;OP # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
-276B;CL # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
-276C;OP # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
-276D;CL # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
-276E;OP # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
-276F;CL # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
-2770;OP # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
-2771;CL # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
-2772;OP # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
-2773;CL # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
-2774;OP # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
-2775;CL # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
-2776..2793;AI # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
-2794..27BF;AL # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
-27C0..27C4;AL # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
-27C5;OP # Ps LEFT S-SHAPED BAG DELIMITER
-27C6;CL # Pe RIGHT S-SHAPED BAG DELIMITER
-27C7..27E5;AL # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
-27E6;OP # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
-27E7;CL # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
-27E8;OP # Ps MATHEMATICAL LEFT ANGLE BRACKET
-27E9;CL # Pe MATHEMATICAL RIGHT ANGLE BRACKET
-27EA;OP # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
-27EB;CL # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
-27EC;OP # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
-27ED;CL # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
-27EE;OP # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
-27EF;CL # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
-27F0..27FF;AL # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
-2800..28FF;AL # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
-2900..297F;AL # Sm [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
-2980..2982;AL # Sm [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
-2983;OP # Ps LEFT WHITE CURLY BRACKET
-2984;CL # Pe RIGHT WHITE CURLY BRACKET
-2985;OP # Ps LEFT WHITE PARENTHESIS
-2986;CL # Pe RIGHT WHITE PARENTHESIS
-2987;OP # Ps Z NOTATION LEFT IMAGE BRACKET
-2988;CL # Pe Z NOTATION RIGHT IMAGE BRACKET
-2989;OP # Ps Z NOTATION LEFT BINDING BRACKET
-298A;CL # Pe Z NOTATION RIGHT BINDING BRACKET
-298B;OP # Ps LEFT SQUARE BRACKET WITH UNDERBAR
-298C;CL # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
-298D;OP # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
-298E;CL # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-298F;OP # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
-2990;CL # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
-2991;OP # Ps LEFT ANGLE BRACKET WITH DOT
-2992;CL # Pe RIGHT ANGLE BRACKET WITH DOT
-2993;OP # Ps LEFT ARC LESS-THAN BRACKET
-2994;CL # Pe RIGHT ARC GREATER-THAN BRACKET
-2995;OP # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
-2996;CL # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
-2997;OP # Ps LEFT BLACK TORTOISE SHELL BRACKET
-2998;CL # Pe RIGHT BLACK TORTOISE SHELL BRACKET
-2999..29D7;AL # Sm [63] DOTTED FENCE..BLACK HOURGLASS
-29D8;OP # Ps LEFT WIGGLY FENCE
-29D9;CL # Pe RIGHT WIGGLY FENCE
-29DA;OP # Ps LEFT DOUBLE WIGGLY FENCE
-29DB;CL # Pe RIGHT DOUBLE WIGGLY FENCE
-29DC..29FB;AL # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
-29FC;OP # Ps LEFT-POINTING CURVED ANGLE BRACKET
-29FD;CL # Pe RIGHT-POINTING CURVED ANGLE BRACKET
-29FE..29FF;AL # Sm [2] TINY..MINY
-2A00..2AFF;AL # Sm [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
-2B00..2B2F;AL # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
-2B30..2B44;AL # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
-2B45..2B46;AL # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
-2B47..2B4C;AL # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
-2B4D..2B54;AL # So [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON
-2B55..2B59;AI # So [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE
-2B5A..2B73;AL # So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
-2B76..2B95;AL # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
-2B97..2BFF;AL # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
-2C00..2C2E;AL # Lu [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C30..2C5E;AL # Ll [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C60..2C7B;AL # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
-2C7C..2C7D;AL # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
-2C7E..2C7F;AL # Lu [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
-2C80..2CE4;AL # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
-2CE5..2CEA;AL # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
-2CEB..2CEE;AL # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
-2CEF..2CF1;CM # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
-2CF2..2CF3;AL # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
-2CF9;EX # Po COPTIC OLD NUBIAN FULL STOP
-2CFA..2CFC;BA # Po [3] COPTIC OLD NUBIAN DIRECT QUESTION MARK..COPTIC OLD NUBIAN VERSE DIVIDER
-2CFD;AL # No COPTIC FRACTION ONE HALF
-2CFE;EX # Po COPTIC FULL STOP
-2CFF;BA # Po COPTIC MORPHOLOGICAL DIVIDER
-2D00..2D25;AL # Ll [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
-2D27;AL # Ll GEORGIAN SMALL LETTER YN
-2D2D;AL # Ll GEORGIAN SMALL LETTER AEN
-2D30..2D67;AL # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
-2D6F;AL # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
-2D70;BA # Po TIFINAGH SEPARATOR MARK
-2D7F;CM # Mn TIFINAGH CONSONANT JOINER
-2D80..2D96;AL # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
-2DA0..2DA6;AL # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
-2DA8..2DAE;AL # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
-2DB0..2DB6;AL # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
-2DB8..2DBE;AL # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
-2DC0..2DC6;AL # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
-2DC8..2DCE;AL # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
-2DD0..2DD6;AL # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
-2DD8..2DDE;AL # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
-2DE0..2DFF;CM # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
-2E00..2E01;QU # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
-2E02;QU # Pi LEFT SUBSTITUTION BRACKET
-2E03;QU # Pf RIGHT SUBSTITUTION BRACKET
-2E04;QU # Pi LEFT DOTTED SUBSTITUTION BRACKET
-2E05;QU # Pf RIGHT DOTTED SUBSTITUTION BRACKET
-2E06..2E08;QU # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
-2E09;QU # Pi LEFT TRANSPOSITION BRACKET
-2E0A;QU # Pf RIGHT TRANSPOSITION BRACKET
-2E0B;QU # Po RAISED SQUARE
-2E0C;QU # Pi LEFT RAISED OMISSION BRACKET
-2E0D;QU # Pf RIGHT RAISED OMISSION BRACKET
-2E0E..2E15;BA # Po [8] EDITORIAL CORONIS..UPWARDS ANCORA
-2E16;AL # Po DOTTED RIGHT-POINTING ANGLE
-2E17;BA # Pd DOUBLE OBLIQUE HYPHEN
-2E18;OP # Po INVERTED INTERROBANG
-2E19;BA # Po PALM BRANCH
-2E1A;AL # Pd HYPHEN WITH DIAERESIS
-2E1B;AL # Po TILDE WITH RING ABOVE
-2E1C;QU # Pi LEFT LOW PARAPHRASE BRACKET
-2E1D;QU # Pf RIGHT LOW PARAPHRASE BRACKET
-2E1E..2E1F;AL # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
-2E20;QU # Pi LEFT VERTICAL BAR WITH QUILL
-2E21;QU # Pf RIGHT VERTICAL BAR WITH QUILL
-2E22;OP # Ps TOP LEFT HALF BRACKET
-2E23;CL # Pe TOP RIGHT HALF BRACKET
-2E24;OP # Ps BOTTOM LEFT HALF BRACKET
-2E25;CL # Pe BOTTOM RIGHT HALF BRACKET
-2E26;OP # Ps LEFT SIDEWAYS U BRACKET
-2E27;CL # Pe RIGHT SIDEWAYS U BRACKET
-2E28;OP # Ps LEFT DOUBLE PARENTHESIS
-2E29;CL # Pe RIGHT DOUBLE PARENTHESIS
-2E2A..2E2D;BA # Po [4] TWO DOTS OVER ONE DOT PUNCTUATION..FIVE DOT MARK
-2E2E;EX # Po REVERSED QUESTION MARK
-2E2F;AL # Lm VERTICAL TILDE
-2E30..2E31;BA # Po [2] RING POINT..WORD SEPARATOR MIDDLE DOT
-2E32;AL # Po TURNED COMMA
-2E33..2E34;BA # Po [2] RAISED DOT..RAISED COMMA
-2E35..2E39;AL # Po [5] TURNED SEMICOLON..TOP HALF SECTION SIGN
-2E3A..2E3B;B2 # Pd [2] TWO-EM DASH..THREE-EM DASH
-2E3C..2E3E;BA # Po [3] STENOGRAPHIC FULL STOP..WIGGLY VERTICAL LINE
-2E3F;AL # Po CAPITULUM
-2E40;BA # Pd DOUBLE HYPHEN
-2E41;BA # Po REVERSED COMMA
-2E42;OP # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
-2E43..2E4A;BA # Po [8] DASH WITH LEFT UPTURN..DOTTED SOLIDUS
-2E4B;AL # Po TRIPLE DAGGER
-2E4C;BA # Po MEDIEVAL COMMA
-2E4D;AL # Po PARAGRAPHUS MARK
-2E4E..2E4F;BA # Po [2] PUNCTUS ELEVATUS MARK..CORNISH VERSE DIVIDER
-2E50..2E51;AL # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
-2E52;AL # Po TIRONIAN SIGN CAPITAL ET
-2E80..2E99;ID # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
-2E9B..2EF3;ID # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
-2F00..2FD5;ID # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
-2FF0..2FFB;ID # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
-3000;BA # Zs IDEOGRAPHIC SPACE
-3001..3002;CL # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
-3003;ID # Po DITTO MARK
-3004;ID # So JAPANESE INDUSTRIAL STANDARD SYMBOL
-3005;NS # Lm IDEOGRAPHIC ITERATION MARK
-3006;ID # Lo IDEOGRAPHIC CLOSING MARK
-3007;ID # Nl IDEOGRAPHIC NUMBER ZERO
-3008;OP # Ps LEFT ANGLE BRACKET
-3009;CL # Pe RIGHT ANGLE BRACKET
-300A;OP # Ps LEFT DOUBLE ANGLE BRACKET
-300B;CL # Pe RIGHT DOUBLE ANGLE BRACKET
-300C;OP # Ps LEFT CORNER BRACKET
-300D;CL # Pe RIGHT CORNER BRACKET
-300E;OP # Ps LEFT WHITE CORNER BRACKET
-300F;CL # Pe RIGHT WHITE CORNER BRACKET
-3010;OP # Ps LEFT BLACK LENTICULAR BRACKET
-3011;CL # Pe RIGHT BLACK LENTICULAR BRACKET
-3012..3013;ID # So [2] POSTAL MARK..GETA MARK
-3014;OP # Ps LEFT TORTOISE SHELL BRACKET
-3015;CL # Pe RIGHT TORTOISE SHELL BRACKET
-3016;OP # Ps LEFT WHITE LENTICULAR BRACKET
-3017;CL # Pe RIGHT WHITE LENTICULAR BRACKET
-3018;OP # Ps LEFT WHITE TORTOISE SHELL BRACKET
-3019;CL # Pe RIGHT WHITE TORTOISE SHELL BRACKET
-301A;OP # Ps LEFT WHITE SQUARE BRACKET
-301B;CL # Pe RIGHT WHITE SQUARE BRACKET
-301C;NS # Pd WAVE DASH
-301D;OP # Ps REVERSED DOUBLE PRIME QUOTATION MARK
-301E..301F;CL # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
-3020;ID # So POSTAL MARK FACE
-3021..3029;ID # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
-302A..302D;CM # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
-302E..302F;CM # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
-3030;ID # Pd WAVY DASH
-3031..3034;ID # Lm [4] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
-3035;CM # Lm VERTICAL KANA REPEAT MARK LOWER HALF
-3036..3037;ID # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
-3038..303A;ID # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
-303B;NS # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
-303C;NS # Lo MASU MARK
-303D;ID # Po PART ALTERNATION MARK
-303E..303F;ID # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
-3041;CJ # Lo HIRAGANA LETTER SMALL A
-3042;ID # Lo HIRAGANA LETTER A
-3043;CJ # Lo HIRAGANA LETTER SMALL I
-3044;ID # Lo HIRAGANA LETTER I
-3045;CJ # Lo HIRAGANA LETTER SMALL U
-3046;ID # Lo HIRAGANA LETTER U
-3047;CJ # Lo HIRAGANA LETTER SMALL E
-3048;ID # Lo HIRAGANA LETTER E
-3049;CJ # Lo HIRAGANA LETTER SMALL O
-304A..3062;ID # Lo [25] HIRAGANA LETTER O..HIRAGANA LETTER DI
-3063;CJ # Lo HIRAGANA LETTER SMALL TU
-3064..3082;ID # Lo [31] HIRAGANA LETTER TU..HIRAGANA LETTER MO
-3083;CJ # Lo HIRAGANA LETTER SMALL YA
-3084;ID # Lo HIRAGANA LETTER YA
-3085;CJ # Lo HIRAGANA LETTER SMALL YU
-3086;ID # Lo HIRAGANA LETTER YU
-3087;CJ # Lo HIRAGANA LETTER SMALL YO
-3088..308D;ID # Lo [6] HIRAGANA LETTER YO..HIRAGANA LETTER RO
-308E;CJ # Lo HIRAGANA LETTER SMALL WA
-308F..3094;ID # Lo [6] HIRAGANA LETTER WA..HIRAGANA LETTER VU
-3095..3096;CJ # Lo [2] HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE
-3099..309A;CM # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309B..309C;NS # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
-309D..309E;NS # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
-309F;ID # Lo HIRAGANA DIGRAPH YORI
-30A0;NS # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
-30A1;CJ # Lo KATAKANA LETTER SMALL A
-30A2;ID # Lo KATAKANA LETTER A
-30A3;CJ # Lo KATAKANA LETTER SMALL I
-30A4;ID # Lo KATAKANA LETTER I
-30A5;CJ # Lo KATAKANA LETTER SMALL U
-30A6;ID # Lo KATAKANA LETTER U
-30A7;CJ # Lo KATAKANA LETTER SMALL E
-30A8;ID # Lo KATAKANA LETTER E
-30A9;CJ # Lo KATAKANA LETTER SMALL O
-30AA..30C2;ID # Lo [25] KATAKANA LETTER O..KATAKANA LETTER DI
-30C3;CJ # Lo KATAKANA LETTER SMALL TU
-30C4..30E2;ID # Lo [31] KATAKANA LETTER TU..KATAKANA LETTER MO
-30E3;CJ # Lo KATAKANA LETTER SMALL YA
-30E4;ID # Lo KATAKANA LETTER YA
-30E5;CJ # Lo KATAKANA LETTER SMALL YU
-30E6;ID # Lo KATAKANA LETTER YU
-30E7;CJ # Lo KATAKANA LETTER SMALL YO
-30E8..30ED;ID # Lo [6] KATAKANA LETTER YO..KATAKANA LETTER RO
-30EE;CJ # Lo KATAKANA LETTER SMALL WA
-30EF..30F4;ID # Lo [6] KATAKANA LETTER WA..KATAKANA LETTER VU
-30F5..30F6;CJ # Lo [2] KATAKANA LETTER SMALL KA..KATAKANA LETTER SMALL KE
-30F7..30FA;ID # Lo [4] KATAKANA LETTER VA..KATAKANA LETTER VO
-30FB;NS # Po KATAKANA MIDDLE DOT
-30FC;CJ # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
-30FD..30FE;NS # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
-30FF;ID # Lo KATAKANA DIGRAPH KOTO
-3105..312F;ID # Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
-3131..318E;ID # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
-3190..3191;ID # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
-3192..3195;ID # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
-3196..319F;ID # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
-31A0..31BF;ID # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
-31C0..31E3;ID # So [36] CJK STROKE T..CJK STROKE Q
-31F0..31FF;CJ # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
-3200..321E;ID # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
-3220..3229;ID # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
-322A..3247;ID # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
-3248..324F;AI # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
-3250;ID # So PARTNERSHIP SIGN
-3251..325F;ID # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
-3260..327F;ID # So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
-3280..3289;ID # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
-328A..32B0;ID # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
-32B1..32BF;ID # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
-32C0..32FF;ID # So [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
-3300..33FF;ID # So [256] SQUARE APAATO..SQUARE GAL
-3400..4DBF;ID # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
-4DC0..4DFF;AL # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
-4E00..9FFC;ID # Lo [20989] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFC
-9FFD..9FFF;ID # Cn [3] <reserved-9FFD>..<reserved-9FFF>
-A000..A014;ID # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
-A015;NS # Lm YI SYLLABLE WU
-A016..A48C;ID # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
-A490..A4C6;ID # So [55] YI RADICAL QOT..YI RADICAL KE
-A4D0..A4F7;AL # Lo [40] LISU LETTER BA..LISU LETTER OE
-A4F8..A4FD;AL # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
-A4FE..A4FF;BA # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
-A500..A60B;AL # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
-A60C;AL # Lm VAI SYLLABLE LENGTHENER
-A60D;BA # Po VAI COMMA
-A60E;EX # Po VAI FULL STOP
-A60F;BA # Po VAI QUESTION MARK
-A610..A61F;AL # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
-A620..A629;NU # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
-A62A..A62B;AL # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
-A640..A66D;AL # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
-A66E;AL # Lo CYRILLIC LETTER MULTIOCULAR O
-A66F;CM # Mn COMBINING CYRILLIC VZMET
-A670..A672;CM # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
-A673;AL # Po SLAVONIC ASTERISK
-A674..A67D;CM # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
-A67E;AL # Po CYRILLIC KAVYKA
-A67F;AL # Lm CYRILLIC PAYEROK
-A680..A69B;AL # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
-A69C..A69D;AL # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
-A69E..A69F;CM # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
-A6A0..A6E5;AL # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
-A6E6..A6EF;AL # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
-A6F0..A6F1;CM # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
-A6F2;AL # Po BAMUM NJAEMLI
-A6F3..A6F7;BA # Po [5] BAMUM FULL STOP..BAMUM QUESTION MARK
-A700..A716;AL # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
-A717..A71F;AL # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
-A720..A721;AL # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
-A722..A76F;AL # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
-A770;AL # Lm MODIFIER LETTER US
-A771..A787;AL # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
-A788;AL # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
-A789..A78A;AL # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
-A78B..A78E;AL # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
-A78F;AL # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7BF;AL # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
-A7C2..A7CA;AL # L& [9] LATIN CAPITAL LETTER ANGLICANA W..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
-A7F5..A7F6;AL # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
-A7F7;AL # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
-A7F8..A7F9;AL # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
-A7FA;AL # Ll LATIN LETTER SMALL CAPITAL TURNED M
-A7FB..A7FF;AL # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
-A800..A801;AL # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
-A802;CM # Mn SYLOTI NAGRI SIGN DVISVARA
-A803..A805;AL # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
-A806;CM # Mn SYLOTI NAGRI SIGN HASANTA
-A807..A80A;AL # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
-A80B;CM # Mn SYLOTI NAGRI SIGN ANUSVARA
-A80C..A822;AL # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
-A823..A824;CM # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
-A825..A826;CM # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
-A827;CM # Mc SYLOTI NAGRI VOWEL SIGN OO
-A828..A82B;AL # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
-A82C;CM # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
-A830..A835;AL # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
-A836..A837;AL # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
-A838;PO # Sc NORTH INDIC RUPEE MARK
-A839;AL # So NORTH INDIC QUANTITY MARK
-A840..A873;AL # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
-A874..A875;BB # Po [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MARK
-A876..A877;EX # Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD
-A880..A881;CM # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
-A882..A8B3;AL # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
-A8B4..A8C3;CM # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
-A8C4..A8C5;CM # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
-A8CE..A8CF;BA # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
-A8D0..A8D9;NU # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
-A8E0..A8F1;CM # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
-A8F2..A8F7;AL # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
-A8F8..A8FA;AL # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
-A8FB;AL # Lo DEVANAGARI HEADSTROKE
-A8FC;BB # Po DEVANAGARI SIGN SIDDHAM
-A8FD..A8FE;AL # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
-A8FF;CM # Mn DEVANAGARI VOWEL SIGN AY
-A900..A909;NU # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
-A90A..A925;AL # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
-A926..A92D;CM # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
-A92E..A92F;BA # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
-A930..A946;AL # Lo [23] REJANG LETTER KA..REJANG LETTER A
-A947..A951;CM # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
-A952..A953;CM # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
-A95F;AL # Po REJANG SECTION MARK
-A960..A97C;JL # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
-A980..A982;CM # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
-A983;CM # Mc JAVANESE SIGN WIGNYAN
-A984..A9B2;AL # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
-A9B3;CM # Mn JAVANESE SIGN CECAK TELU
-A9B4..A9B5;CM # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
-A9B6..A9B9;CM # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
-A9BA..A9BB;CM # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
-A9BC..A9BD;CM # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
-A9BE..A9C0;CM # Mc [3] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE PANGKON
-A9C1..A9C6;AL # Po [6] JAVANESE LEFT RERENGGAN..JAVANESE PADA WINDU
-A9C7..A9C9;BA # Po [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI
-A9CA..A9CD;AL # Po [4] JAVANESE PADA ADEG..JAVANESE TURNED PADA PISELEH
-A9CF;AL # Lm JAVANESE PANGRANGKEP
-A9D0..A9D9;NU # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
-A9DE..A9DF;AL # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
-A9E0..A9E4;SA # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
-A9E5;SA # Mn MYANMAR SIGN SHAN SAW
-A9E6;SA # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
-A9E7..A9EF;SA # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
-A9F0..A9F9;NU # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
-A9FA..A9FE;SA # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
-AA00..AA28;AL # Lo [41] CHAM LETTER A..CHAM LETTER HA
-AA29..AA2E;CM # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
-AA2F..AA30;CM # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
-AA31..AA32;CM # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
-AA33..AA34;CM # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
-AA35..AA36;CM # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
-AA40..AA42;AL # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
-AA43;CM # Mn CHAM CONSONANT SIGN FINAL NG
-AA44..AA4B;AL # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
-AA4C;CM # Mn CHAM CONSONANT SIGN FINAL M
-AA4D;CM # Mc CHAM CONSONANT SIGN FINAL H
-AA50..AA59;NU # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
-AA5C;AL # Po CHAM PUNCTUATION SPIRAL
-AA5D..AA5F;BA # Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
-AA60..AA6F;SA # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
-AA70;SA # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
-AA71..AA76;SA # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
-AA77..AA79;SA # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
-AA7A;SA # Lo MYANMAR LETTER AITON RA
-AA7B;SA # Mc MYANMAR SIGN PAO KAREN TONE
-AA7C;SA # Mn MYANMAR SIGN TAI LAING TONE-2
-AA7D;SA # Mc MYANMAR SIGN TAI LAING TONE-5
-AA7E..AA7F;SA # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
-AA80..AAAF;SA # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
-AAB0;SA # Mn TAI VIET MAI KANG
-AAB1;SA # Lo TAI VIET VOWEL AA
-AAB2..AAB4;SA # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
-AAB5..AAB6;SA # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
-AAB7..AAB8;SA # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
-AAB9..AABD;SA # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
-AABE..AABF;SA # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
-AAC0;SA # Lo TAI VIET TONE MAI NUENG
-AAC1;SA # Mn TAI VIET TONE MAI THO
-AAC2;SA # Lo TAI VIET TONE MAI SONG
-AADB..AADC;SA # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
-AADD;SA # Lm TAI VIET SYMBOL SAM
-AADE..AADF;SA # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
-AAE0..AAEA;AL # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
-AAEB;CM # Mc MEETEI MAYEK VOWEL SIGN II
-AAEC..AAED;CM # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
-AAEE..AAEF;CM # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
-AAF0..AAF1;BA # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
-AAF2;AL # Lo MEETEI MAYEK ANJI
-AAF3..AAF4;AL # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
-AAF5;CM # Mc MEETEI MAYEK VOWEL SIGN VISARGA
-AAF6;CM # Mn MEETEI MAYEK VIRAMA
-AB01..AB06;AL # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
-AB09..AB0E;AL # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
-AB11..AB16;AL # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
-AB20..AB26;AL # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
-AB28..AB2E;AL # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
-AB30..AB5A;AL # Ll [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
-AB5B;AL # Sk MODIFIER BREVE WITH INVERTED BREVE
-AB5C..AB5F;AL # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
-AB60..AB68;AL # Ll [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
-AB69;AL # Lm MODIFIER LETTER SMALL TURNED W
-AB6A..AB6B;AL # Sk [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
-AB70..ABBF;AL # Ll [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
-ABC0..ABE2;AL # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
-ABE3..ABE4;CM # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
-ABE5;CM # Mn MEETEI MAYEK VOWEL SIGN ANAP
-ABE6..ABE7;CM # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
-ABE8;CM # Mn MEETEI MAYEK VOWEL SIGN UNAP
-ABE9..ABEA;CM # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
-ABEB;BA # Po MEETEI MAYEK CHEIKHEI
-ABEC;CM # Mc MEETEI MAYEK LUM IYEK
-ABED;CM # Mn MEETEI MAYEK APUN IYEK
-ABF0..ABF9;NU # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
-AC00;H2 # Lo HANGUL SYLLABLE GA
-AC01..AC1B;H3 # Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
-AC1C;H2 # Lo HANGUL SYLLABLE GAE
-AC1D..AC37;H3 # Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
-AC38;H2 # Lo HANGUL SYLLABLE GYA
-AC39..AC53;H3 # Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
-AC54;H2 # Lo HANGUL SYLLABLE GYAE
-AC55..AC6F;H3 # Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
-AC70;H2 # Lo HANGUL SYLLABLE GEO
-AC71..AC8B;H3 # Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
-AC8C;H2 # Lo HANGUL SYLLABLE GE
-AC8D..ACA7;H3 # Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
-ACA8;H2 # Lo HANGUL SYLLABLE GYEO
-ACA9..ACC3;H3 # Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
-ACC4;H2 # Lo HANGUL SYLLABLE GYE
-ACC5..ACDF;H3 # Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
-ACE0;H2 # Lo HANGUL SYLLABLE GO
-ACE1..ACFB;H3 # Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
-ACFC;H2 # Lo HANGUL SYLLABLE GWA
-ACFD..AD17;H3 # Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
-AD18;H2 # Lo HANGUL SYLLABLE GWAE
-AD19..AD33;H3 # Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
-AD34;H2 # Lo HANGUL SYLLABLE GOE
-AD35..AD4F;H3 # Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
-AD50;H2 # Lo HANGUL SYLLABLE GYO
-AD51..AD6B;H3 # Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
-AD6C;H2 # Lo HANGUL SYLLABLE GU
-AD6D..AD87;H3 # Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
-AD88;H2 # Lo HANGUL SYLLABLE GWEO
-AD89..ADA3;H3 # Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
-ADA4;H2 # Lo HANGUL SYLLABLE GWE
-ADA5..ADBF;H3 # Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
-ADC0;H2 # Lo HANGUL SYLLABLE GWI
-ADC1..ADDB;H3 # Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
-ADDC;H2 # Lo HANGUL SYLLABLE GYU
-ADDD..ADF7;H3 # Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
-ADF8;H2 # Lo HANGUL SYLLABLE GEU
-ADF9..AE13;H3 # Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
-AE14;H2 # Lo HANGUL SYLLABLE GYI
-AE15..AE2F;H3 # Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
-AE30;H2 # Lo HANGUL SYLLABLE GI
-AE31..AE4B;H3 # Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
-AE4C;H2 # Lo HANGUL SYLLABLE GGA
-AE4D..AE67;H3 # Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
-AE68;H2 # Lo HANGUL SYLLABLE GGAE
-AE69..AE83;H3 # Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
-AE84;H2 # Lo HANGUL SYLLABLE GGYA
-AE85..AE9F;H3 # Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
-AEA0;H2 # Lo HANGUL SYLLABLE GGYAE
-AEA1..AEBB;H3 # Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
-AEBC;H2 # Lo HANGUL SYLLABLE GGEO
-AEBD..AED7;H3 # Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
-AED8;H2 # Lo HANGUL SYLLABLE GGE
-AED9..AEF3;H3 # Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
-AEF4;H2 # Lo HANGUL SYLLABLE GGYEO
-AEF5..AF0F;H3 # Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
-AF10;H2 # Lo HANGUL SYLLABLE GGYE
-AF11..AF2B;H3 # Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
-AF2C;H2 # Lo HANGUL SYLLABLE GGO
-AF2D..AF47;H3 # Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
-AF48;H2 # Lo HANGUL SYLLABLE GGWA
-AF49..AF63;H3 # Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
-AF64;H2 # Lo HANGUL SYLLABLE GGWAE
-AF65..AF7F;H3 # Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
-AF80;H2 # Lo HANGUL SYLLABLE GGOE
-AF81..AF9B;H3 # Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
-AF9C;H2 # Lo HANGUL SYLLABLE GGYO
-AF9D..AFB7;H3 # Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
-AFB8;H2 # Lo HANGUL SYLLABLE GGU
-AFB9..AFD3;H3 # Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
-AFD4;H2 # Lo HANGUL SYLLABLE GGWEO
-AFD5..AFEF;H3 # Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
-AFF0;H2 # Lo HANGUL SYLLABLE GGWE
-AFF1..B00B;H3 # Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
-B00C;H2 # Lo HANGUL SYLLABLE GGWI
-B00D..B027;H3 # Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
-B028;H2 # Lo HANGUL SYLLABLE GGYU
-B029..B043;H3 # Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
-B044;H2 # Lo HANGUL SYLLABLE GGEU
-B045..B05F;H3 # Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
-B060;H2 # Lo HANGUL SYLLABLE GGYI
-B061..B07B;H3 # Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
-B07C;H2 # Lo HANGUL SYLLABLE GGI
-B07D..B097;H3 # Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
-B098;H2 # Lo HANGUL SYLLABLE NA
-B099..B0B3;H3 # Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
-B0B4;H2 # Lo HANGUL SYLLABLE NAE
-B0B5..B0CF;H3 # Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
-B0D0;H2 # Lo HANGUL SYLLABLE NYA
-B0D1..B0EB;H3 # Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
-B0EC;H2 # Lo HANGUL SYLLABLE NYAE
-B0ED..B107;H3 # Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
-B108;H2 # Lo HANGUL SYLLABLE NEO
-B109..B123;H3 # Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
-B124;H2 # Lo HANGUL SYLLABLE NE
-B125..B13F;H3 # Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
-B140;H2 # Lo HANGUL SYLLABLE NYEO
-B141..B15B;H3 # Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
-B15C;H2 # Lo HANGUL SYLLABLE NYE
-B15D..B177;H3 # Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
-B178;H2 # Lo HANGUL SYLLABLE NO
-B179..B193;H3 # Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
-B194;H2 # Lo HANGUL SYLLABLE NWA
-B195..B1AF;H3 # Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
-B1B0;H2 # Lo HANGUL SYLLABLE NWAE
-B1B1..B1CB;H3 # Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
-B1CC;H2 # Lo HANGUL SYLLABLE NOE
-B1CD..B1E7;H3 # Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
-B1E8;H2 # Lo HANGUL SYLLABLE NYO
-B1E9..B203;H3 # Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
-B204;H2 # Lo HANGUL SYLLABLE NU
-B205..B21F;H3 # Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
-B220;H2 # Lo HANGUL SYLLABLE NWEO
-B221..B23B;H3 # Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
-B23C;H2 # Lo HANGUL SYLLABLE NWE
-B23D..B257;H3 # Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
-B258;H2 # Lo HANGUL SYLLABLE NWI
-B259..B273;H3 # Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
-B274;H2 # Lo HANGUL SYLLABLE NYU
-B275..B28F;H3 # Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
-B290;H2 # Lo HANGUL SYLLABLE NEU
-B291..B2AB;H3 # Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
-B2AC;H2 # Lo HANGUL SYLLABLE NYI
-B2AD..B2C7;H3 # Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
-B2C8;H2 # Lo HANGUL SYLLABLE NI
-B2C9..B2E3;H3 # Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
-B2E4;H2 # Lo HANGUL SYLLABLE DA
-B2E5..B2FF;H3 # Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
-B300;H2 # Lo HANGUL SYLLABLE DAE
-B301..B31B;H3 # Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
-B31C;H2 # Lo HANGUL SYLLABLE DYA
-B31D..B337;H3 # Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
-B338;H2 # Lo HANGUL SYLLABLE DYAE
-B339..B353;H3 # Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
-B354;H2 # Lo HANGUL SYLLABLE DEO
-B355..B36F;H3 # Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
-B370;H2 # Lo HANGUL SYLLABLE DE
-B371..B38B;H3 # Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
-B38C;H2 # Lo HANGUL SYLLABLE DYEO
-B38D..B3A7;H3 # Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
-B3A8;H2 # Lo HANGUL SYLLABLE DYE
-B3A9..B3C3;H3 # Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
-B3C4;H2 # Lo HANGUL SYLLABLE DO
-B3C5..B3DF;H3 # Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
-B3E0;H2 # Lo HANGUL SYLLABLE DWA
-B3E1..B3FB;H3 # Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
-B3FC;H2 # Lo HANGUL SYLLABLE DWAE
-B3FD..B417;H3 # Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
-B418;H2 # Lo HANGUL SYLLABLE DOE
-B419..B433;H3 # Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
-B434;H2 # Lo HANGUL SYLLABLE DYO
-B435..B44F;H3 # Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
-B450;H2 # Lo HANGUL SYLLABLE DU
-B451..B46B;H3 # Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
-B46C;H2 # Lo HANGUL SYLLABLE DWEO
-B46D..B487;H3 # Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
-B488;H2 # Lo HANGUL SYLLABLE DWE
-B489..B4A3;H3 # Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
-B4A4;H2 # Lo HANGUL SYLLABLE DWI
-B4A5..B4BF;H3 # Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
-B4C0;H2 # Lo HANGUL SYLLABLE DYU
-B4C1..B4DB;H3 # Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
-B4DC;H2 # Lo HANGUL SYLLABLE DEU
-B4DD..B4F7;H3 # Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
-B4F8;H2 # Lo HANGUL SYLLABLE DYI
-B4F9..B513;H3 # Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
-B514;H2 # Lo HANGUL SYLLABLE DI
-B515..B52F;H3 # Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
-B530;H2 # Lo HANGUL SYLLABLE DDA
-B531..B54B;H3 # Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
-B54C;H2 # Lo HANGUL SYLLABLE DDAE
-B54D..B567;H3 # Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
-B568;H2 # Lo HANGUL SYLLABLE DDYA
-B569..B583;H3 # Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
-B584;H2 # Lo HANGUL SYLLABLE DDYAE
-B585..B59F;H3 # Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
-B5A0;H2 # Lo HANGUL SYLLABLE DDEO
-B5A1..B5BB;H3 # Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
-B5BC;H2 # Lo HANGUL SYLLABLE DDE
-B5BD..B5D7;H3 # Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
-B5D8;H2 # Lo HANGUL SYLLABLE DDYEO
-B5D9..B5F3;H3 # Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
-B5F4;H2 # Lo HANGUL SYLLABLE DDYE
-B5F5..B60F;H3 # Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
-B610;H2 # Lo HANGUL SYLLABLE DDO
-B611..B62B;H3 # Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
-B62C;H2 # Lo HANGUL SYLLABLE DDWA
-B62D..B647;H3 # Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
-B648;H2 # Lo HANGUL SYLLABLE DDWAE
-B649..B663;H3 # Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
-B664;H2 # Lo HANGUL SYLLABLE DDOE
-B665..B67F;H3 # Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
-B680;H2 # Lo HANGUL SYLLABLE DDYO
-B681..B69B;H3 # Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
-B69C;H2 # Lo HANGUL SYLLABLE DDU
-B69D..B6B7;H3 # Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
-B6B8;H2 # Lo HANGUL SYLLABLE DDWEO
-B6B9..B6D3;H3 # Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
-B6D4;H2 # Lo HANGUL SYLLABLE DDWE
-B6D5..B6EF;H3 # Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
-B6F0;H2 # Lo HANGUL SYLLABLE DDWI
-B6F1..B70B;H3 # Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
-B70C;H2 # Lo HANGUL SYLLABLE DDYU
-B70D..B727;H3 # Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
-B728;H2 # Lo HANGUL SYLLABLE DDEU
-B729..B743;H3 # Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
-B744;H2 # Lo HANGUL SYLLABLE DDYI
-B745..B75F;H3 # Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
-B760;H2 # Lo HANGUL SYLLABLE DDI
-B761..B77B;H3 # Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
-B77C;H2 # Lo HANGUL SYLLABLE RA
-B77D..B797;H3 # Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
-B798;H2 # Lo HANGUL SYLLABLE RAE
-B799..B7B3;H3 # Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
-B7B4;H2 # Lo HANGUL SYLLABLE RYA
-B7B5..B7CF;H3 # Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
-B7D0;H2 # Lo HANGUL SYLLABLE RYAE
-B7D1..B7EB;H3 # Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
-B7EC;H2 # Lo HANGUL SYLLABLE REO
-B7ED..B807;H3 # Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
-B808;H2 # Lo HANGUL SYLLABLE RE
-B809..B823;H3 # Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
-B824;H2 # Lo HANGUL SYLLABLE RYEO
-B825..B83F;H3 # Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
-B840;H2 # Lo HANGUL SYLLABLE RYE
-B841..B85B;H3 # Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
-B85C;H2 # Lo HANGUL SYLLABLE RO
-B85D..B877;H3 # Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
-B878;H2 # Lo HANGUL SYLLABLE RWA
-B879..B893;H3 # Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
-B894;H2 # Lo HANGUL SYLLABLE RWAE
-B895..B8AF;H3 # Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
-B8B0;H2 # Lo HANGUL SYLLABLE ROE
-B8B1..B8CB;H3 # Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
-B8CC;H2 # Lo HANGUL SYLLABLE RYO
-B8CD..B8E7;H3 # Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
-B8E8;H2 # Lo HANGUL SYLLABLE RU
-B8E9..B903;H3 # Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
-B904;H2 # Lo HANGUL SYLLABLE RWEO
-B905..B91F;H3 # Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
-B920;H2 # Lo HANGUL SYLLABLE RWE
-B921..B93B;H3 # Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
-B93C;H2 # Lo HANGUL SYLLABLE RWI
-B93D..B957;H3 # Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
-B958;H2 # Lo HANGUL SYLLABLE RYU
-B959..B973;H3 # Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
-B974;H2 # Lo HANGUL SYLLABLE REU
-B975..B98F;H3 # Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
-B990;H2 # Lo HANGUL SYLLABLE RYI
-B991..B9AB;H3 # Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
-B9AC;H2 # Lo HANGUL SYLLABLE RI
-B9AD..B9C7;H3 # Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
-B9C8;H2 # Lo HANGUL SYLLABLE MA
-B9C9..B9E3;H3 # Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
-B9E4;H2 # Lo HANGUL SYLLABLE MAE
-B9E5..B9FF;H3 # Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
-BA00;H2 # Lo HANGUL SYLLABLE MYA
-BA01..BA1B;H3 # Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
-BA1C;H2 # Lo HANGUL SYLLABLE MYAE
-BA1D..BA37;H3 # Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
-BA38;H2 # Lo HANGUL SYLLABLE MEO
-BA39..BA53;H3 # Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
-BA54;H2 # Lo HANGUL SYLLABLE ME
-BA55..BA6F;H3 # Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
-BA70;H2 # Lo HANGUL SYLLABLE MYEO
-BA71..BA8B;H3 # Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
-BA8C;H2 # Lo HANGUL SYLLABLE MYE
-BA8D..BAA7;H3 # Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
-BAA8;H2 # Lo HANGUL SYLLABLE MO
-BAA9..BAC3;H3 # Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
-BAC4;H2 # Lo HANGUL SYLLABLE MWA
-BAC5..BADF;H3 # Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
-BAE0;H2 # Lo HANGUL SYLLABLE MWAE
-BAE1..BAFB;H3 # Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
-BAFC;H2 # Lo HANGUL SYLLABLE MOE
-BAFD..BB17;H3 # Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
-BB18;H2 # Lo HANGUL SYLLABLE MYO
-BB19..BB33;H3 # Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
-BB34;H2 # Lo HANGUL SYLLABLE MU
-BB35..BB4F;H3 # Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
-BB50;H2 # Lo HANGUL SYLLABLE MWEO
-BB51..BB6B;H3 # Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
-BB6C;H2 # Lo HANGUL SYLLABLE MWE
-BB6D..BB87;H3 # Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
-BB88;H2 # Lo HANGUL SYLLABLE MWI
-BB89..BBA3;H3 # Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
-BBA4;H2 # Lo HANGUL SYLLABLE MYU
-BBA5..BBBF;H3 # Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
-BBC0;H2 # Lo HANGUL SYLLABLE MEU
-BBC1..BBDB;H3 # Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
-BBDC;H2 # Lo HANGUL SYLLABLE MYI
-BBDD..BBF7;H3 # Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
-BBF8;H2 # Lo HANGUL SYLLABLE MI
-BBF9..BC13;H3 # Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
-BC14;H2 # Lo HANGUL SYLLABLE BA
-BC15..BC2F;H3 # Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
-BC30;H2 # Lo HANGUL SYLLABLE BAE
-BC31..BC4B;H3 # Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
-BC4C;H2 # Lo HANGUL SYLLABLE BYA
-BC4D..BC67;H3 # Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
-BC68;H2 # Lo HANGUL SYLLABLE BYAE
-BC69..BC83;H3 # Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
-BC84;H2 # Lo HANGUL SYLLABLE BEO
-BC85..BC9F;H3 # Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
-BCA0;H2 # Lo HANGUL SYLLABLE BE
-BCA1..BCBB;H3 # Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
-BCBC;H2 # Lo HANGUL SYLLABLE BYEO
-BCBD..BCD7;H3 # Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
-BCD8;H2 # Lo HANGUL SYLLABLE BYE
-BCD9..BCF3;H3 # Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
-BCF4;H2 # Lo HANGUL SYLLABLE BO
-BCF5..BD0F;H3 # Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
-BD10;H2 # Lo HANGUL SYLLABLE BWA
-BD11..BD2B;H3 # Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
-BD2C;H2 # Lo HANGUL SYLLABLE BWAE
-BD2D..BD47;H3 # Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
-BD48;H2 # Lo HANGUL SYLLABLE BOE
-BD49..BD63;H3 # Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
-BD64;H2 # Lo HANGUL SYLLABLE BYO
-BD65..BD7F;H3 # Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
-BD80;H2 # Lo HANGUL SYLLABLE BU
-BD81..BD9B;H3 # Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
-BD9C;H2 # Lo HANGUL SYLLABLE BWEO
-BD9D..BDB7;H3 # Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
-BDB8;H2 # Lo HANGUL SYLLABLE BWE
-BDB9..BDD3;H3 # Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
-BDD4;H2 # Lo HANGUL SYLLABLE BWI
-BDD5..BDEF;H3 # Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
-BDF0;H2 # Lo HANGUL SYLLABLE BYU
-BDF1..BE0B;H3 # Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
-BE0C;H2 # Lo HANGUL SYLLABLE BEU
-BE0D..BE27;H3 # Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
-BE28;H2 # Lo HANGUL SYLLABLE BYI
-BE29..BE43;H3 # Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
-BE44;H2 # Lo HANGUL SYLLABLE BI
-BE45..BE5F;H3 # Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
-BE60;H2 # Lo HANGUL SYLLABLE BBA
-BE61..BE7B;H3 # Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
-BE7C;H2 # Lo HANGUL SYLLABLE BBAE
-BE7D..BE97;H3 # Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
-BE98;H2 # Lo HANGUL SYLLABLE BBYA
-BE99..BEB3;H3 # Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
-BEB4;H2 # Lo HANGUL SYLLABLE BBYAE
-BEB5..BECF;H3 # Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
-BED0;H2 # Lo HANGUL SYLLABLE BBEO
-BED1..BEEB;H3 # Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
-BEEC;H2 # Lo HANGUL SYLLABLE BBE
-BEED..BF07;H3 # Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
-BF08;H2 # Lo HANGUL SYLLABLE BBYEO
-BF09..BF23;H3 # Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
-BF24;H2 # Lo HANGUL SYLLABLE BBYE
-BF25..BF3F;H3 # Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
-BF40;H2 # Lo HANGUL SYLLABLE BBO
-BF41..BF5B;H3 # Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
-BF5C;H2 # Lo HANGUL SYLLABLE BBWA
-BF5D..BF77;H3 # Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
-BF78;H2 # Lo HANGUL SYLLABLE BBWAE
-BF79..BF93;H3 # Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
-BF94;H2 # Lo HANGUL SYLLABLE BBOE
-BF95..BFAF;H3 # Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
-BFB0;H2 # Lo HANGUL SYLLABLE BBYO
-BFB1..BFCB;H3 # Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
-BFCC;H2 # Lo HANGUL SYLLABLE BBU
-BFCD..BFE7;H3 # Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
-BFE8;H2 # Lo HANGUL SYLLABLE BBWEO
-BFE9..C003;H3 # Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
-C004;H2 # Lo HANGUL SYLLABLE BBWE
-C005..C01F;H3 # Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
-C020;H2 # Lo HANGUL SYLLABLE BBWI
-C021..C03B;H3 # Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
-C03C;H2 # Lo HANGUL SYLLABLE BBYU
-C03D..C057;H3 # Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
-C058;H2 # Lo HANGUL SYLLABLE BBEU
-C059..C073;H3 # Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
-C074;H2 # Lo HANGUL SYLLABLE BBYI
-C075..C08F;H3 # Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
-C090;H2 # Lo HANGUL SYLLABLE BBI
-C091..C0AB;H3 # Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
-C0AC;H2 # Lo HANGUL SYLLABLE SA
-C0AD..C0C7;H3 # Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
-C0C8;H2 # Lo HANGUL SYLLABLE SAE
-C0C9..C0E3;H3 # Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
-C0E4;H2 # Lo HANGUL SYLLABLE SYA
-C0E5..C0FF;H3 # Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
-C100;H2 # Lo HANGUL SYLLABLE SYAE
-C101..C11B;H3 # Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
-C11C;H2 # Lo HANGUL SYLLABLE SEO
-C11D..C137;H3 # Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
-C138;H2 # Lo HANGUL SYLLABLE SE
-C139..C153;H3 # Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
-C154;H2 # Lo HANGUL SYLLABLE SYEO
-C155..C16F;H3 # Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
-C170;H2 # Lo HANGUL SYLLABLE SYE
-C171..C18B;H3 # Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
-C18C;H2 # Lo HANGUL SYLLABLE SO
-C18D..C1A7;H3 # Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
-C1A8;H2 # Lo HANGUL SYLLABLE SWA
-C1A9..C1C3;H3 # Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
-C1C4;H2 # Lo HANGUL SYLLABLE SWAE
-C1C5..C1DF;H3 # Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
-C1E0;H2 # Lo HANGUL SYLLABLE SOE
-C1E1..C1FB;H3 # Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
-C1FC;H2 # Lo HANGUL SYLLABLE SYO
-C1FD..C217;H3 # Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
-C218;H2 # Lo HANGUL SYLLABLE SU
-C219..C233;H3 # Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
-C234;H2 # Lo HANGUL SYLLABLE SWEO
-C235..C24F;H3 # Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
-C250;H2 # Lo HANGUL SYLLABLE SWE
-C251..C26B;H3 # Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
-C26C;H2 # Lo HANGUL SYLLABLE SWI
-C26D..C287;H3 # Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
-C288;H2 # Lo HANGUL SYLLABLE SYU
-C289..C2A3;H3 # Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
-C2A4;H2 # Lo HANGUL SYLLABLE SEU
-C2A5..C2BF;H3 # Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
-C2C0;H2 # Lo HANGUL SYLLABLE SYI
-C2C1..C2DB;H3 # Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
-C2DC;H2 # Lo HANGUL SYLLABLE SI
-C2DD..C2F7;H3 # Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
-C2F8;H2 # Lo HANGUL SYLLABLE SSA
-C2F9..C313;H3 # Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
-C314;H2 # Lo HANGUL SYLLABLE SSAE
-C315..C32F;H3 # Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
-C330;H2 # Lo HANGUL SYLLABLE SSYA
-C331..C34B;H3 # Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
-C34C;H2 # Lo HANGUL SYLLABLE SSYAE
-C34D..C367;H3 # Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
-C368;H2 # Lo HANGUL SYLLABLE SSEO
-C369..C383;H3 # Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
-C384;H2 # Lo HANGUL SYLLABLE SSE
-C385..C39F;H3 # Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
-C3A0;H2 # Lo HANGUL SYLLABLE SSYEO
-C3A1..C3BB;H3 # Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
-C3BC;H2 # Lo HANGUL SYLLABLE SSYE
-C3BD..C3D7;H3 # Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
-C3D8;H2 # Lo HANGUL SYLLABLE SSO
-C3D9..C3F3;H3 # Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
-C3F4;H2 # Lo HANGUL SYLLABLE SSWA
-C3F5..C40F;H3 # Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
-C410;H2 # Lo HANGUL SYLLABLE SSWAE
-C411..C42B;H3 # Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
-C42C;H2 # Lo HANGUL SYLLABLE SSOE
-C42D..C447;H3 # Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
-C448;H2 # Lo HANGUL SYLLABLE SSYO
-C449..C463;H3 # Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
-C464;H2 # Lo HANGUL SYLLABLE SSU
-C465..C47F;H3 # Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
-C480;H2 # Lo HANGUL SYLLABLE SSWEO
-C481..C49B;H3 # Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
-C49C;H2 # Lo HANGUL SYLLABLE SSWE
-C49D..C4B7;H3 # Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
-C4B8;H2 # Lo HANGUL SYLLABLE SSWI
-C4B9..C4D3;H3 # Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
-C4D4;H2 # Lo HANGUL SYLLABLE SSYU
-C4D5..C4EF;H3 # Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
-C4F0;H2 # Lo HANGUL SYLLABLE SSEU
-C4F1..C50B;H3 # Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
-C50C;H2 # Lo HANGUL SYLLABLE SSYI
-C50D..C527;H3 # Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
-C528;H2 # Lo HANGUL SYLLABLE SSI
-C529..C543;H3 # Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
-C544;H2 # Lo HANGUL SYLLABLE A
-C545..C55F;H3 # Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
-C560;H2 # Lo HANGUL SYLLABLE AE
-C561..C57B;H3 # Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
-C57C;H2 # Lo HANGUL SYLLABLE YA
-C57D..C597;H3 # Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
-C598;H2 # Lo HANGUL SYLLABLE YAE
-C599..C5B3;H3 # Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
-C5B4;H2 # Lo HANGUL SYLLABLE EO
-C5B5..C5CF;H3 # Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
-C5D0;H2 # Lo HANGUL SYLLABLE E
-C5D1..C5EB;H3 # Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
-C5EC;H2 # Lo HANGUL SYLLABLE YEO
-C5ED..C607;H3 # Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
-C608;H2 # Lo HANGUL SYLLABLE YE
-C609..C623;H3 # Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
-C624;H2 # Lo HANGUL SYLLABLE O
-C625..C63F;H3 # Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
-C640;H2 # Lo HANGUL SYLLABLE WA
-C641..C65B;H3 # Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
-C65C;H2 # Lo HANGUL SYLLABLE WAE
-C65D..C677;H3 # Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
-C678;H2 # Lo HANGUL SYLLABLE OE
-C679..C693;H3 # Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
-C694;H2 # Lo HANGUL SYLLABLE YO
-C695..C6AF;H3 # Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
-C6B0;H2 # Lo HANGUL SYLLABLE U
-C6B1..C6CB;H3 # Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
-C6CC;H2 # Lo HANGUL SYLLABLE WEO
-C6CD..C6E7;H3 # Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
-C6E8;H2 # Lo HANGUL SYLLABLE WE
-C6E9..C703;H3 # Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
-C704;H2 # Lo HANGUL SYLLABLE WI
-C705..C71F;H3 # Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
-C720;H2 # Lo HANGUL SYLLABLE YU
-C721..C73B;H3 # Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
-C73C;H2 # Lo HANGUL SYLLABLE EU
-C73D..C757;H3 # Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
-C758;H2 # Lo HANGUL SYLLABLE YI
-C759..C773;H3 # Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
-C774;H2 # Lo HANGUL SYLLABLE I
-C775..C78F;H3 # Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
-C790;H2 # Lo HANGUL SYLLABLE JA
-C791..C7AB;H3 # Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
-C7AC;H2 # Lo HANGUL SYLLABLE JAE
-C7AD..C7C7;H3 # Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
-C7C8;H2 # Lo HANGUL SYLLABLE JYA
-C7C9..C7E3;H3 # Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
-C7E4;H2 # Lo HANGUL SYLLABLE JYAE
-C7E5..C7FF;H3 # Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
-C800;H2 # Lo HANGUL SYLLABLE JEO
-C801..C81B;H3 # Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
-C81C;H2 # Lo HANGUL SYLLABLE JE
-C81D..C837;H3 # Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
-C838;H2 # Lo HANGUL SYLLABLE JYEO
-C839..C853;H3 # Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
-C854;H2 # Lo HANGUL SYLLABLE JYE
-C855..C86F;H3 # Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
-C870;H2 # Lo HANGUL SYLLABLE JO
-C871..C88B;H3 # Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
-C88C;H2 # Lo HANGUL SYLLABLE JWA
-C88D..C8A7;H3 # Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
-C8A8;H2 # Lo HANGUL SYLLABLE JWAE
-C8A9..C8C3;H3 # Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
-C8C4;H2 # Lo HANGUL SYLLABLE JOE
-C8C5..C8DF;H3 # Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
-C8E0;H2 # Lo HANGUL SYLLABLE JYO
-C8E1..C8FB;H3 # Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
-C8FC;H2 # Lo HANGUL SYLLABLE JU
-C8FD..C917;H3 # Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
-C918;H2 # Lo HANGUL SYLLABLE JWEO
-C919..C933;H3 # Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
-C934;H2 # Lo HANGUL SYLLABLE JWE
-C935..C94F;H3 # Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
-C950;H2 # Lo HANGUL SYLLABLE JWI
-C951..C96B;H3 # Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
-C96C;H2 # Lo HANGUL SYLLABLE JYU
-C96D..C987;H3 # Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
-C988;H2 # Lo HANGUL SYLLABLE JEU
-C989..C9A3;H3 # Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
-C9A4;H2 # Lo HANGUL SYLLABLE JYI
-C9A5..C9BF;H3 # Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
-C9C0;H2 # Lo HANGUL SYLLABLE JI
-C9C1..C9DB;H3 # Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
-C9DC;H2 # Lo HANGUL SYLLABLE JJA
-C9DD..C9F7;H3 # Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
-C9F8;H2 # Lo HANGUL SYLLABLE JJAE
-C9F9..CA13;H3 # Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
-CA14;H2 # Lo HANGUL SYLLABLE JJYA
-CA15..CA2F;H3 # Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
-CA30;H2 # Lo HANGUL SYLLABLE JJYAE
-CA31..CA4B;H3 # Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
-CA4C;H2 # Lo HANGUL SYLLABLE JJEO
-CA4D..CA67;H3 # Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
-CA68;H2 # Lo HANGUL SYLLABLE JJE
-CA69..CA83;H3 # Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
-CA84;H2 # Lo HANGUL SYLLABLE JJYEO
-CA85..CA9F;H3 # Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
-CAA0;H2 # Lo HANGUL SYLLABLE JJYE
-CAA1..CABB;H3 # Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
-CABC;H2 # Lo HANGUL SYLLABLE JJO
-CABD..CAD7;H3 # Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
-CAD8;H2 # Lo HANGUL SYLLABLE JJWA
-CAD9..CAF3;H3 # Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
-CAF4;H2 # Lo HANGUL SYLLABLE JJWAE
-CAF5..CB0F;H3 # Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
-CB10;H2 # Lo HANGUL SYLLABLE JJOE
-CB11..CB2B;H3 # Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
-CB2C;H2 # Lo HANGUL SYLLABLE JJYO
-CB2D..CB47;H3 # Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
-CB48;H2 # Lo HANGUL SYLLABLE JJU
-CB49..CB63;H3 # Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
-CB64;H2 # Lo HANGUL SYLLABLE JJWEO
-CB65..CB7F;H3 # Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
-CB80;H2 # Lo HANGUL SYLLABLE JJWE
-CB81..CB9B;H3 # Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
-CB9C;H2 # Lo HANGUL SYLLABLE JJWI
-CB9D..CBB7;H3 # Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
-CBB8;H2 # Lo HANGUL SYLLABLE JJYU
-CBB9..CBD3;H3 # Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
-CBD4;H2 # Lo HANGUL SYLLABLE JJEU
-CBD5..CBEF;H3 # Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
-CBF0;H2 # Lo HANGUL SYLLABLE JJYI
-CBF1..CC0B;H3 # Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
-CC0C;H2 # Lo HANGUL SYLLABLE JJI
-CC0D..CC27;H3 # Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
-CC28;H2 # Lo HANGUL SYLLABLE CA
-CC29..CC43;H3 # Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
-CC44;H2 # Lo HANGUL SYLLABLE CAE
-CC45..CC5F;H3 # Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
-CC60;H2 # Lo HANGUL SYLLABLE CYA
-CC61..CC7B;H3 # Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
-CC7C;H2 # Lo HANGUL SYLLABLE CYAE
-CC7D..CC97;H3 # Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
-CC98;H2 # Lo HANGUL SYLLABLE CEO
-CC99..CCB3;H3 # Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
-CCB4;H2 # Lo HANGUL SYLLABLE CE
-CCB5..CCCF;H3 # Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
-CCD0;H2 # Lo HANGUL SYLLABLE CYEO
-CCD1..CCEB;H3 # Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
-CCEC;H2 # Lo HANGUL SYLLABLE CYE
-CCED..CD07;H3 # Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
-CD08;H2 # Lo HANGUL SYLLABLE CO
-CD09..CD23;H3 # Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
-CD24;H2 # Lo HANGUL SYLLABLE CWA
-CD25..CD3F;H3 # Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
-CD40;H2 # Lo HANGUL SYLLABLE CWAE
-CD41..CD5B;H3 # Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
-CD5C;H2 # Lo HANGUL SYLLABLE COE
-CD5D..CD77;H3 # Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
-CD78;H2 # Lo HANGUL SYLLABLE CYO
-CD79..CD93;H3 # Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
-CD94;H2 # Lo HANGUL SYLLABLE CU
-CD95..CDAF;H3 # Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
-CDB0;H2 # Lo HANGUL SYLLABLE CWEO
-CDB1..CDCB;H3 # Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
-CDCC;H2 # Lo HANGUL SYLLABLE CWE
-CDCD..CDE7;H3 # Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
-CDE8;H2 # Lo HANGUL SYLLABLE CWI
-CDE9..CE03;H3 # Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
-CE04;H2 # Lo HANGUL SYLLABLE CYU
-CE05..CE1F;H3 # Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
-CE20;H2 # Lo HANGUL SYLLABLE CEU
-CE21..CE3B;H3 # Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
-CE3C;H2 # Lo HANGUL SYLLABLE CYI
-CE3D..CE57;H3 # Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
-CE58;H2 # Lo HANGUL SYLLABLE CI
-CE59..CE73;H3 # Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
-CE74;H2 # Lo HANGUL SYLLABLE KA
-CE75..CE8F;H3 # Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
-CE90;H2 # Lo HANGUL SYLLABLE KAE
-CE91..CEAB;H3 # Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
-CEAC;H2 # Lo HANGUL SYLLABLE KYA
-CEAD..CEC7;H3 # Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
-CEC8;H2 # Lo HANGUL SYLLABLE KYAE
-CEC9..CEE3;H3 # Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
-CEE4;H2 # Lo HANGUL SYLLABLE KEO
-CEE5..CEFF;H3 # Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
-CF00;H2 # Lo HANGUL SYLLABLE KE
-CF01..CF1B;H3 # Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
-CF1C;H2 # Lo HANGUL SYLLABLE KYEO
-CF1D..CF37;H3 # Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
-CF38;H2 # Lo HANGUL SYLLABLE KYE
-CF39..CF53;H3 # Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
-CF54;H2 # Lo HANGUL SYLLABLE KO
-CF55..CF6F;H3 # Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
-CF70;H2 # Lo HANGUL SYLLABLE KWA
-CF71..CF8B;H3 # Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
-CF8C;H2 # Lo HANGUL SYLLABLE KWAE
-CF8D..CFA7;H3 # Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
-CFA8;H2 # Lo HANGUL SYLLABLE KOE
-CFA9..CFC3;H3 # Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
-CFC4;H2 # Lo HANGUL SYLLABLE KYO
-CFC5..CFDF;H3 # Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
-CFE0;H2 # Lo HANGUL SYLLABLE KU
-CFE1..CFFB;H3 # Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
-CFFC;H2 # Lo HANGUL SYLLABLE KWEO
-CFFD..D017;H3 # Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
-D018;H2 # Lo HANGUL SYLLABLE KWE
-D019..D033;H3 # Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
-D034;H2 # Lo HANGUL SYLLABLE KWI
-D035..D04F;H3 # Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
-D050;H2 # Lo HANGUL SYLLABLE KYU
-D051..D06B;H3 # Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
-D06C;H2 # Lo HANGUL SYLLABLE KEU
-D06D..D087;H3 # Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
-D088;H2 # Lo HANGUL SYLLABLE KYI
-D089..D0A3;H3 # Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
-D0A4;H2 # Lo HANGUL SYLLABLE KI
-D0A5..D0BF;H3 # Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
-D0C0;H2 # Lo HANGUL SYLLABLE TA
-D0C1..D0DB;H3 # Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
-D0DC;H2 # Lo HANGUL SYLLABLE TAE
-D0DD..D0F7;H3 # Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
-D0F8;H2 # Lo HANGUL SYLLABLE TYA
-D0F9..D113;H3 # Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
-D114;H2 # Lo HANGUL SYLLABLE TYAE
-D115..D12F;H3 # Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
-D130;H2 # Lo HANGUL SYLLABLE TEO
-D131..D14B;H3 # Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
-D14C;H2 # Lo HANGUL SYLLABLE TE
-D14D..D167;H3 # Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
-D168;H2 # Lo HANGUL SYLLABLE TYEO
-D169..D183;H3 # Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
-D184;H2 # Lo HANGUL SYLLABLE TYE
-D185..D19F;H3 # Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
-D1A0;H2 # Lo HANGUL SYLLABLE TO
-D1A1..D1BB;H3 # Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
-D1BC;H2 # Lo HANGUL SYLLABLE TWA
-D1BD..D1D7;H3 # Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
-D1D8;H2 # Lo HANGUL SYLLABLE TWAE
-D1D9..D1F3;H3 # Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
-D1F4;H2 # Lo HANGUL SYLLABLE TOE
-D1F5..D20F;H3 # Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
-D210;H2 # Lo HANGUL SYLLABLE TYO
-D211..D22B;H3 # Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
-D22C;H2 # Lo HANGUL SYLLABLE TU
-D22D..D247;H3 # Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
-D248;H2 # Lo HANGUL SYLLABLE TWEO
-D249..D263;H3 # Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
-D264;H2 # Lo HANGUL SYLLABLE TWE
-D265..D27F;H3 # Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
-D280;H2 # Lo HANGUL SYLLABLE TWI
-D281..D29B;H3 # Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
-D29C;H2 # Lo HANGUL SYLLABLE TYU
-D29D..D2B7;H3 # Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
-D2B8;H2 # Lo HANGUL SYLLABLE TEU
-D2B9..D2D3;H3 # Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
-D2D4;H2 # Lo HANGUL SYLLABLE TYI
-D2D5..D2EF;H3 # Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
-D2F0;H2 # Lo HANGUL SYLLABLE TI
-D2F1..D30B;H3 # Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
-D30C;H2 # Lo HANGUL SYLLABLE PA
-D30D..D327;H3 # Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
-D328;H2 # Lo HANGUL SYLLABLE PAE
-D329..D343;H3 # Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
-D344;H2 # Lo HANGUL SYLLABLE PYA
-D345..D35F;H3 # Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
-D360;H2 # Lo HANGUL SYLLABLE PYAE
-D361..D37B;H3 # Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
-D37C;H2 # Lo HANGUL SYLLABLE PEO
-D37D..D397;H3 # Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
-D398;H2 # Lo HANGUL SYLLABLE PE
-D399..D3B3;H3 # Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
-D3B4;H2 # Lo HANGUL SYLLABLE PYEO
-D3B5..D3CF;H3 # Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
-D3D0;H2 # Lo HANGUL SYLLABLE PYE
-D3D1..D3EB;H3 # Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
-D3EC;H2 # Lo HANGUL SYLLABLE PO
-D3ED..D407;H3 # Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
-D408;H2 # Lo HANGUL SYLLABLE PWA
-D409..D423;H3 # Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
-D424;H2 # Lo HANGUL SYLLABLE PWAE
-D425..D43F;H3 # Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
-D440;H2 # Lo HANGUL SYLLABLE POE
-D441..D45B;H3 # Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
-D45C;H2 # Lo HANGUL SYLLABLE PYO
-D45D..D477;H3 # Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
-D478;H2 # Lo HANGUL SYLLABLE PU
-D479..D493;H3 # Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
-D494;H2 # Lo HANGUL SYLLABLE PWEO
-D495..D4AF;H3 # Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
-D4B0;H2 # Lo HANGUL SYLLABLE PWE
-D4B1..D4CB;H3 # Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
-D4CC;H2 # Lo HANGUL SYLLABLE PWI
-D4CD..D4E7;H3 # Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
-D4E8;H2 # Lo HANGUL SYLLABLE PYU
-D4E9..D503;H3 # Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
-D504;H2 # Lo HANGUL SYLLABLE PEU
-D505..D51F;H3 # Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
-D520;H2 # Lo HANGUL SYLLABLE PYI
-D521..D53B;H3 # Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
-D53C;H2 # Lo HANGUL SYLLABLE PI
-D53D..D557;H3 # Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
-D558;H2 # Lo HANGUL SYLLABLE HA
-D559..D573;H3 # Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
-D574;H2 # Lo HANGUL SYLLABLE HAE
-D575..D58F;H3 # Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
-D590;H2 # Lo HANGUL SYLLABLE HYA
-D591..D5AB;H3 # Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
-D5AC;H2 # Lo HANGUL SYLLABLE HYAE
-D5AD..D5C7;H3 # Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
-D5C8;H2 # Lo HANGUL SYLLABLE HEO
-D5C9..D5E3;H3 # Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
-D5E4;H2 # Lo HANGUL SYLLABLE HE
-D5E5..D5FF;H3 # Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
-D600;H2 # Lo HANGUL SYLLABLE HYEO
-D601..D61B;H3 # Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
-D61C;H2 # Lo HANGUL SYLLABLE HYE
-D61D..D637;H3 # Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
-D638;H2 # Lo HANGUL SYLLABLE HO
-D639..D653;H3 # Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
-D654;H2 # Lo HANGUL SYLLABLE HWA
-D655..D66F;H3 # Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
-D670;H2 # Lo HANGUL SYLLABLE HWAE
-D671..D68B;H3 # Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
-D68C;H2 # Lo HANGUL SYLLABLE HOE
-D68D..D6A7;H3 # Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
-D6A8;H2 # Lo HANGUL SYLLABLE HYO
-D6A9..D6C3;H3 # Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
-D6C4;H2 # Lo HANGUL SYLLABLE HU
-D6C5..D6DF;H3 # Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
-D6E0;H2 # Lo HANGUL SYLLABLE HWEO
-D6E1..D6FB;H3 # Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
-D6FC;H2 # Lo HANGUL SYLLABLE HWE
-D6FD..D717;H3 # Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
-D718;H2 # Lo HANGUL SYLLABLE HWI
-D719..D733;H3 # Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
-D734;H2 # Lo HANGUL SYLLABLE HYU
-D735..D74F;H3 # Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
-D750;H2 # Lo HANGUL SYLLABLE HEU
-D751..D76B;H3 # Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
-D76C;H2 # Lo HANGUL SYLLABLE HYI
-D76D..D787;H3 # Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
-D788;H2 # Lo HANGUL SYLLABLE HI
-D789..D7A3;H3 # Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
-D7B0..D7C6;JV # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
-D7CB..D7FB;JT # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
-D800..DB7F;SG # Cs [896] <surrogate-D800>..<surrogate-DB7F>
-DB80..DBFF;SG # Cs [128] <surrogate-DB80>..<surrogate-DBFF>
-DC00..DFFF;SG # Cs [1024] <surrogate-DC00>..<surrogate-DFFF>
-E000..F8FF;XX # Co [6400] <private-use-E000>..<private-use-F8FF>
-F900..FA6D;ID # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
-FA6E..FA6F;ID # Cn [2] <reserved-FA6E>..<reserved-FA6F>
-FA70..FAD9;ID # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
-FADA..FAFF;ID # Cn [38] <reserved-FADA>..<reserved-FAFF>
-FB00..FB06;AL # Ll [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
-FB13..FB17;AL # Ll [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
-FB1D;HL # Lo HEBREW LETTER YOD WITH HIRIQ
-FB1E;CM # Mn HEBREW POINT JUDEO-SPANISH VARIKA
-FB1F..FB28;HL # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
-FB29;AL # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
-FB2A..FB36;HL # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
-FB38..FB3C;HL # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
-FB3E;HL # Lo HEBREW LETTER MEM WITH DAGESH
-FB40..FB41;HL # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
-FB43..FB44;HL # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
-FB46..FB4F;HL # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
-FB50..FBB1;AL # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB2..FBC1;AL # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
-FBD3..FD3D;AL # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
-FD3E;CL # Pe ORNATE LEFT PARENTHESIS
-FD3F;OP # Ps ORNATE RIGHT PARENTHESIS
-FD50..FD8F;AL # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
-FD92..FDC7;AL # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
-FDF0..FDFB;AL # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
-FDFC;PO # Sc RIAL SIGN
-FDFD;AL # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
-FE00..FE0F;CM # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
-FE10;IS # Po PRESENTATION FORM FOR VERTICAL COMMA
-FE11..FE12;CL # Po [2] PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
-FE13..FE14;IS # Po [2] PRESENTATION FORM FOR VERTICAL COLON..PRESENTATION FORM FOR VERTICAL SEMICOLON
-FE15..FE16;EX # Po [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK
-FE17;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
-FE18;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
-FE19;IN # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
-FE20..FE2F;CM # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
-FE30;ID # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
-FE31..FE32;ID # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
-FE33..FE34;ID # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
-FE35;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
-FE36;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
-FE37;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
-FE38;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
-FE39;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
-FE3A;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
-FE3B;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
-FE3C;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
-FE3D;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
-FE3E;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
-FE3F;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
-FE40;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
-FE41;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
-FE42;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
-FE43;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
-FE44;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
-FE45..FE46;ID # Po [2] SESAME DOT..WHITE SESAME DOT
-FE47;OP # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
-FE48;CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
-FE49..FE4C;ID # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
-FE4D..FE4F;ID # Pc [3] DASHED LOW LINE..WAVY LOW LINE
-FE50;CL # Po SMALL COMMA
-FE51;ID # Po SMALL IDEOGRAPHIC COMMA
-FE52;CL # Po SMALL FULL STOP
-FE54..FE55;NS # Po [2] SMALL SEMICOLON..SMALL COLON
-FE56..FE57;EX # Po [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
-FE58;ID # Pd SMALL EM DASH
-FE59;OP # Ps SMALL LEFT PARENTHESIS
-FE5A;CL # Pe SMALL RIGHT PARENTHESIS
-FE5B;OP # Ps SMALL LEFT CURLY BRACKET
-FE5C;CL # Pe SMALL RIGHT CURLY BRACKET
-FE5D;OP # Ps SMALL LEFT TORTOISE SHELL BRACKET
-FE5E;CL # Pe SMALL RIGHT TORTOISE SHELL BRACKET
-FE5F..FE61;ID # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
-FE62;ID # Sm SMALL PLUS SIGN
-FE63;ID # Pd SMALL HYPHEN-MINUS
-FE64..FE66;ID # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
-FE68;ID # Po SMALL REVERSE SOLIDUS
-FE69;PR # Sc SMALL DOLLAR SIGN
-FE6A;PO # Po SMALL PERCENT SIGN
-FE6B;ID # Po SMALL COMMERCIAL AT
-FE70..FE74;AL # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
-FE76..FEFC;AL # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
-FEFF;WJ # Cf ZERO WIDTH NO-BREAK SPACE
-FF01;EX # Po FULLWIDTH EXCLAMATION MARK
-FF02..FF03;ID # Po [2] FULLWIDTH QUOTATION MARK..FULLWIDTH NUMBER SIGN
-FF04;PR # Sc FULLWIDTH DOLLAR SIGN
-FF05;PO # Po FULLWIDTH PERCENT SIGN
-FF06..FF07;ID # Po [2] FULLWIDTH AMPERSAND..FULLWIDTH APOSTROPHE
-FF08;OP # Ps FULLWIDTH LEFT PARENTHESIS
-FF09;CL # Pe FULLWIDTH RIGHT PARENTHESIS
-FF0A;ID # Po FULLWIDTH ASTERISK
-FF0B;ID # Sm FULLWIDTH PLUS SIGN
-FF0C;CL # Po FULLWIDTH COMMA
-FF0D;ID # Pd FULLWIDTH HYPHEN-MINUS
-FF0E;CL # Po FULLWIDTH FULL STOP
-FF0F;ID # Po FULLWIDTH SOLIDUS
-FF10..FF19;ID # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
-FF1A..FF1B;NS # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
-FF1C..FF1E;ID # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
-FF1F;EX # Po FULLWIDTH QUESTION MARK
-FF20;ID # Po FULLWIDTH COMMERCIAL AT
-FF21..FF3A;ID # Lu [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
-FF3B;OP # Ps FULLWIDTH LEFT SQUARE BRACKET
-FF3C;ID # Po FULLWIDTH REVERSE SOLIDUS
-FF3D;CL # Pe FULLWIDTH RIGHT SQUARE BRACKET
-FF3E;ID # Sk FULLWIDTH CIRCUMFLEX ACCENT
-FF3F;ID # Pc FULLWIDTH LOW LINE
-FF40;ID # Sk FULLWIDTH GRAVE ACCENT
-FF41..FF5A;ID # Ll [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
-FF5B;OP # Ps FULLWIDTH LEFT CURLY BRACKET
-FF5C;ID # Sm FULLWIDTH VERTICAL LINE
-FF5D;CL # Pe FULLWIDTH RIGHT CURLY BRACKET
-FF5E;ID # Sm FULLWIDTH TILDE
-FF5F;OP # Ps FULLWIDTH LEFT WHITE PARENTHESIS
-FF60;CL # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
-FF61;CL # Po HALFWIDTH IDEOGRAPHIC FULL STOP
-FF62;OP # Ps HALFWIDTH LEFT CORNER BRACKET
-FF63;CL # Pe HALFWIDTH RIGHT CORNER BRACKET
-FF64;CL # Po HALFWIDTH IDEOGRAPHIC COMMA
-FF65;NS # Po HALFWIDTH KATAKANA MIDDLE DOT
-FF66;ID # Lo HALFWIDTH KATAKANA LETTER WO
-FF67..FF6F;CJ # Lo [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU
-FF70;CJ # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
-FF71..FF9D;ID # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
-FF9E..FF9F;NS # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-FFA0..FFBE;ID # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
-FFC2..FFC7;ID # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
-FFCA..FFCF;ID # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
-FFD2..FFD7;ID # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
-FFDA..FFDC;ID # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
-FFE0;PO # Sc FULLWIDTH CENT SIGN
-FFE1;PR # Sc FULLWIDTH POUND SIGN
-FFE2;ID # Sm FULLWIDTH NOT SIGN
-FFE3;ID # Sk FULLWIDTH MACRON
-FFE4;ID # So FULLWIDTH BROKEN BAR
-FFE5..FFE6;PR # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
-FFE8;AL # So HALFWIDTH FORMS LIGHT VERTICAL
-FFE9..FFEC;AL # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
-FFED..FFEE;AL # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
-FFF9..FFFB;CM # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-FFFC;CB # So OBJECT REPLACEMENT CHARACTER
-FFFD;AI # So REPLACEMENT CHARACTER
-10000..1000B;AL # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
-1000D..10026;AL # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
-10028..1003A;AL # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
-1003C..1003D;AL # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
-1003F..1004D;AL # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
-10050..1005D;AL # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
-10080..100FA;AL # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
-10100..10102;BA # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
-10107..10133;AL # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
-10137..1013F;AL # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
-10140..10174;AL # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
-10175..10178;AL # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
-10179..10189;AL # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
-1018A..1018B;AL # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
-1018C..1018E;AL # So [3] GREEK SINUSOID SIGN..NOMISMA SIGN
-10190..1019C;AL # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
-101A0;AL # So GREEK SYMBOL TAU RHO
-101D0..101FC;AL # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
-101FD;CM # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
-10280..1029C;AL # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
-102A0..102D0;AL # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
-102E0;CM # Mn COPTIC EPACT THOUSANDS MARK
-102E1..102FB;AL # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
-10300..1031F;AL # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
-10320..10323;AL # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
-1032D..1032F;AL # Lo [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE
-10330..10340;AL # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
-10341;AL # Nl GOTHIC LETTER NINETY
-10342..10349;AL # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
-1034A;AL # Nl GOTHIC LETTER NINE HUNDRED
-10350..10375;AL # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
-10376..1037A;CM # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
-10380..1039D;AL # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
-1039F;BA # Po UGARITIC WORD DIVIDER
-103A0..103C3;AL # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
-103C8..103CF;AL # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
-103D0;BA # Po OLD PERSIAN WORD DIVIDER
-103D1..103D5;AL # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
-10400..1044F;AL # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
-10450..1047F;AL # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
-10480..1049D;AL # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
-104A0..104A9;NU # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
-104B0..104D3;AL # Lu [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
-104D8..104FB;AL # Ll [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
-10500..10527;AL # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
-10530..10563;AL # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
-1056F;AL # Po CAUCASIAN ALBANIAN CITATION MARK
-10600..10736;AL # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
-10740..10755;AL # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
-10760..10767;AL # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
-10800..10805;AL # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
-10808;AL # Lo CYPRIOT SYLLABLE JO
-1080A..10835;AL # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
-10837..10838;AL # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
-1083C;AL # Lo CYPRIOT SYLLABLE ZA
-1083F;AL # Lo CYPRIOT SYLLABLE ZO
-10840..10855;AL # Lo [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
-10857;BA # Po IMPERIAL ARAMAIC SECTION SIGN
-10858..1085F;AL # No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
-10860..10876;AL # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
-10877..10878;AL # So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
-10879..1087F;AL # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
-10880..1089E;AL # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
-108A7..108AF;AL # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
-108E0..108F2;AL # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
-108F4..108F5;AL # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
-108FB..108FF;AL # No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
-10900..10915;AL # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
-10916..1091B;AL # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
-1091F;BA # Po PHOENICIAN WORD SEPARATOR
-10920..10939;AL # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
-1093F;AL # Po LYDIAN TRIANGULAR MARK
-10980..1099F;AL # Lo [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
-109A0..109B7;AL # Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
-109BC..109BD;AL # No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
-109BE..109BF;AL # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
-109C0..109CF;AL # No [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
-109D2..109FF;AL # No [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
-10A00;AL # Lo KHAROSHTHI LETTER A
-10A01..10A03;CM # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
-10A05..10A06;CM # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
-10A0C..10A0F;CM # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
-10A10..10A13;AL # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
-10A15..10A17;AL # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
-10A19..10A35;AL # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
-10A38..10A3A;CM # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
-10A3F;CM # Mn KHAROSHTHI VIRAMA
-10A40..10A48;AL # No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
-10A50..10A57;BA # Po [8] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION DOUBLE DANDA
-10A58;AL # Po KHAROSHTHI PUNCTUATION LINES
-10A60..10A7C;AL # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
-10A7D..10A7E;AL # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
-10A7F;AL # Po OLD SOUTH ARABIAN NUMERIC INDICATOR
-10A80..10A9C;AL # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
-10A9D..10A9F;AL # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
-10AC0..10AC7;AL # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
-10AC8;AL # So MANICHAEAN SIGN UD
-10AC9..10AE4;AL # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
-10AE5..10AE6;CM # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
-10AEB..10AEF;AL # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
-10AF0..10AF5;BA # Po [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS
-10AF6;IN # Po MANICHAEAN PUNCTUATION LINE FILLER
-10B00..10B35;AL # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
-10B39..10B3F;BA # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
-10B40..10B55;AL # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
-10B58..10B5F;AL # No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
-10B60..10B72;AL # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
-10B78..10B7F;AL # No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
-10B80..10B91;AL # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
-10B99..10B9C;AL # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
-10BA9..10BAF;AL # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
-10C00..10C48;AL # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
-10C80..10CB2;AL # Lu [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
-10CC0..10CF2;AL # Ll [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
-10CFA..10CFF;AL # No [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
-10D00..10D23;AL # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
-10D24..10D27;CM # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
-10D30..10D39;NU # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
-10E60..10E7E;AL # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
-10E80..10EA9;AL # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
-10EAB..10EAC;CM # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
-10EAD;BA # Pd YEZIDI HYPHENATION MARK
-10EB0..10EB1;AL # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
-10F00..10F1C;AL # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
-10F1D..10F26;AL # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
-10F27;AL # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
-10F30..10F45;AL # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
-10F46..10F50;CM # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
-10F51..10F54;AL # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
-10F55..10F59;AL # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
-10FB0..10FC4;AL # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
-10FC5..10FCB;AL # No [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
-10FE0..10FF6;AL # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
-11000;CM # Mc BRAHMI SIGN CANDRABINDU
-11001;CM # Mn BRAHMI SIGN ANUSVARA
-11002;CM # Mc BRAHMI SIGN VISARGA
-11003..11037;AL # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
-11038..11046;CM # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
-11047..11048;BA # Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
-11049..1104D;AL # Po [5] BRAHMI PUNCTUATION DOT..BRAHMI PUNCTUATION LOTUS
-11052..11065;AL # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
-11066..1106F;NU # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
-1107F;CM # Mn BRAHMI NUMBER JOINER
-11080..11081;CM # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
-11082;CM # Mc KAITHI SIGN VISARGA
-11083..110AF;AL # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
-110B0..110B2;CM # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
-110B3..110B6;CM # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
-110B7..110B8;CM # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
-110B9..110BA;CM # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
-110BB..110BC;AL # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
-110BD;AL # Cf KAITHI NUMBER SIGN
-110BE..110C1;BA # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
-110CD;AL # Cf KAITHI NUMBER SIGN ABOVE
-110D0..110E8;AL # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
-110F0..110F9;NU # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
-11100..11102;CM # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
-11103..11126;AL # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
-11127..1112B;CM # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
-1112C;CM # Mc CHAKMA VOWEL SIGN E
-1112D..11134;CM # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
-11136..1113F;NU # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
-11140..11143;BA # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
-11144;AL # Lo CHAKMA LETTER LHAA
-11145..11146;CM # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
-11147;AL # Lo CHAKMA LETTER VAA
-11150..11172;AL # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
-11173;CM # Mn MAHAJANI SIGN NUKTA
-11174;AL # Po MAHAJANI ABBREVIATION SIGN
-11175;BB # Po MAHAJANI SECTION MARK
-11176;AL # Lo MAHAJANI LIGATURE SHRI
-11180..11181;CM # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
-11182;CM # Mc SHARADA SIGN VISARGA
-11183..111B2;AL # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
-111B3..111B5;CM # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
-111B6..111BE;CM # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
-111BF..111C0;CM # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
-111C1..111C4;AL # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
-111C5..111C6;BA # Po [2] SHARADA DANDA..SHARADA DOUBLE DANDA
-111C7;AL # Po SHARADA ABBREVIATION SIGN
-111C8;BA # Po SHARADA SEPARATOR
-111C9..111CC;CM # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
-111CD;AL # Po SHARADA SUTRA MARK
-111CE;CM # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E
-111CF;CM # Mn SHARADA SIGN INVERTED CANDRABINDU
-111D0..111D9;NU # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
-111DA;AL # Lo SHARADA EKAM
-111DB;BB # Po SHARADA SIGN SIDDHAM
-111DC;AL # Lo SHARADA HEADSTROKE
-111DD..111DF;BA # Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
-111E1..111F4;AL # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
-11200..11211;AL # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
-11213..1122B;AL # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
-1122C..1122E;CM # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
-1122F..11231;CM # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
-11232..11233;CM # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
-11234;CM # Mn KHOJKI SIGN ANUSVARA
-11235;CM # Mc KHOJKI SIGN VIRAMA
-11236..11237;CM # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
-11238..11239;BA # Po [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
-1123A;AL # Po KHOJKI WORD SEPARATOR
-1123B..1123C;BA # Po [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
-1123D;AL # Po KHOJKI ABBREVIATION SIGN
-1123E;CM # Mn KHOJKI SIGN SUKUN
-11280..11286;AL # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
-11288;AL # Lo MULTANI LETTER GHA
-1128A..1128D;AL # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
-1128F..1129D;AL # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA
-1129F..112A8;AL # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA
-112A9;BA # Po MULTANI SECTION MARK
-112B0..112DE;AL # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
-112DF;CM # Mn KHUDAWADI SIGN ANUSVARA
-112E0..112E2;CM # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
-112E3..112EA;CM # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
-112F0..112F9;NU # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
-11300..11301;CM # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
-11302..11303;CM # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
-11305..1130C;AL # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
-1130F..11310;AL # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
-11313..11328;AL # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
-1132A..11330;AL # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
-11332..11333;AL # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
-11335..11339;AL # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
-1133B..1133C;CM # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
-1133D;AL # Lo GRANTHA SIGN AVAGRAHA
-1133E..1133F;CM # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
-11340;CM # Mn GRANTHA VOWEL SIGN II
-11341..11344;CM # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
-11347..11348;CM # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
-1134B..1134D;CM # Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
-11350;AL # Lo GRANTHA OM
-11357;CM # Mc GRANTHA AU LENGTH MARK
-1135D..11361;AL # Lo [5] GRANTHA SIGN PLUTA..GRANTHA LETTER VOCALIC LL
-11362..11363;CM # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
-11366..1136C;CM # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
-11370..11374;CM # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
-11400..11434;AL # Lo [53] NEWA LETTER A..NEWA LETTER HA
-11435..11437;CM # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
-11438..1143F;CM # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
-11440..11441;CM # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
-11442..11444;CM # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
-11445;CM # Mc NEWA SIGN VISARGA
-11446;CM # Mn NEWA SIGN NUKTA
-11447..1144A;AL # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
-1144B..1144E;BA # Po [4] NEWA DANDA..NEWA GAP FILLER
-1144F;AL # Po NEWA ABBREVIATION SIGN
-11450..11459;NU # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
-1145A..1145B;BA # Po [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
-1145D;AL # Po NEWA INSERTION SIGN
-1145E;CM # Mn NEWA SANDHI MARK
-1145F..11461;AL # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
-11480..114AF;AL # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
-114B0..114B2;CM # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
-114B3..114B8;CM # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
-114B9;CM # Mc TIRHUTA VOWEL SIGN E
-114BA;CM # Mn TIRHUTA VOWEL SIGN SHORT E
-114BB..114BE;CM # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
-114BF..114C0;CM # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
-114C1;CM # Mc TIRHUTA SIGN VISARGA
-114C2..114C3;CM # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
-114C4..114C5;AL # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
-114C6;AL # Po TIRHUTA ABBREVIATION SIGN
-114C7;AL # Lo TIRHUTA OM
-114D0..114D9;NU # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
-11580..115AE;AL # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
-115AF..115B1;CM # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
-115B2..115B5;CM # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
-115B8..115BB;CM # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
-115BC..115BD;CM # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
-115BE;CM # Mc SIDDHAM SIGN VISARGA
-115BF..115C0;CM # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
-115C1;BB # Po SIDDHAM SIGN SIDDHAM
-115C2..115C3;BA # Po [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
-115C4..115C5;EX # Po [2] SIDDHAM SEPARATOR DOT..SIDDHAM SEPARATOR BAR
-115C6..115C8;AL # Po [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
-115C9..115D7;BA # Po [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
-115D8..115DB;AL # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
-115DC..115DD;CM # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
-11600..1162F;AL # Lo [48] MODI LETTER A..MODI LETTER LLA
-11630..11632;CM # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
-11633..1163A;CM # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
-1163B..1163C;CM # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
-1163D;CM # Mn MODI SIGN ANUSVARA
-1163E;CM # Mc MODI SIGN VISARGA
-1163F..11640;CM # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
-11641..11642;BA # Po [2] MODI DANDA..MODI DOUBLE DANDA
-11643;AL # Po MODI ABBREVIATION SIGN
-11644;AL # Lo MODI SIGN HUVA
-11650..11659;NU # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
-11660..1166C;BB # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
-11680..116AA;AL # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
-116AB;CM # Mn TAKRI SIGN ANUSVARA
-116AC;CM # Mc TAKRI SIGN VISARGA
-116AD;CM # Mn TAKRI VOWEL SIGN AA
-116AE..116AF;CM # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
-116B0..116B5;CM # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
-116B6;CM # Mc TAKRI SIGN VIRAMA
-116B7;CM # Mn TAKRI SIGN NUKTA
-116B8;AL # Lo TAKRI LETTER ARCHAIC KHA
-116C0..116C9;NU # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-11700..1171A;SA # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
-1171D..1171F;SA # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
-11720..11721;SA # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
-11722..11725;SA # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
-11726;SA # Mc AHOM VOWEL SIGN E
-11727..1172B;SA # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
-11730..11739;NU # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
-1173A..1173B;SA # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
-1173C..1173E;BA # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
-1173F;SA # So AHOM SYMBOL VI
-11800..1182B;AL # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
-1182C..1182E;CM # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
-1182F..11837;CM # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
-11838;CM # Mc DOGRA SIGN VISARGA
-11839..1183A;CM # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
-1183B;AL # Po DOGRA ABBREVIATION SIGN
-118A0..118DF;AL # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
-118E0..118E9;NU # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
-118EA..118F2;AL # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
-118FF;AL # Lo WARANG CITI OM
-11900..11906;AL # Lo [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E
-11909;AL # Lo DIVES AKURU LETTER O
-1190C..11913;AL # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
-11915..11916;AL # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
-11918..1192F;AL # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
-11930..11935;CM # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
-11937..11938;CM # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
-1193B..1193C;CM # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
-1193D;CM # Mc DIVES AKURU SIGN HALANTA
-1193E;CM # Mn DIVES AKURU VIRAMA
-1193F;AL # Lo DIVES AKURU PREFIXED NASAL SIGN
-11940;CM # Mc DIVES AKURU MEDIAL YA
-11941;AL # Lo DIVES AKURU INITIAL RA
-11942;CM # Mc DIVES AKURU MEDIAL RA
-11943;CM # Mn DIVES AKURU SIGN NUKTA
-11944..11946;BA # Po [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
-11950..11959;NU # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
-119A0..119A7;AL # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
-119AA..119D0;AL # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
-119D1..119D3;CM # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
-119D4..119D7;CM # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
-119DA..119DB;CM # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
-119DC..119DF;CM # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
-119E0;CM # Mn NANDINAGARI SIGN VIRAMA
-119E1;AL # Lo NANDINAGARI SIGN AVAGRAHA
-119E2;BB # Po NANDINAGARI SIGN SIDDHAM
-119E3;AL # Lo NANDINAGARI HEADSTROKE
-119E4;CM # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
-11A00;AL # Lo ZANABAZAR SQUARE LETTER A
-11A01..11A0A;CM # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
-11A0B..11A32;AL # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
-11A33..11A38;CM # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
-11A39;CM # Mc ZANABAZAR SQUARE SIGN VISARGA
-11A3A;AL # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
-11A3B..11A3E;CM # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
-11A3F;BB # Po ZANABAZAR SQUARE INITIAL HEAD MARK
-11A40;AL # Po ZANABAZAR SQUARE CLOSING HEAD MARK
-11A41..11A44;BA # Po [4] ZANABAZAR SQUARE MARK TSHEG..ZANABAZAR SQUARE MARK LONG TSHEG
-11A45;BB # Po ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK
-11A46;AL # Po ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
-11A47;CM # Mn ZANABAZAR SQUARE SUBJOINER
-11A50;AL # Lo SOYOMBO LETTER A
-11A51..11A56;CM # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
-11A57..11A58;CM # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
-11A59..11A5B;CM # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
-11A5C..11A89;AL # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
-11A8A..11A96;CM # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
-11A97;CM # Mc SOYOMBO SIGN VISARGA
-11A98..11A99;CM # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
-11A9A..11A9C;BA # Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
-11A9D;AL # Lo SOYOMBO MARK PLUTA
-11A9E..11AA0;BB # Po [3] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO HEAD MARK WITH MOON AND SUN
-11AA1..11AA2;BA # Po [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2
-11AC0..11AF8;AL # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
-11C00..11C08;AL # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
-11C0A..11C2E;AL # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
-11C2F;CM # Mc BHAIKSUKI VOWEL SIGN AA
-11C30..11C36;CM # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
-11C38..11C3D;CM # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
-11C3E;CM # Mc BHAIKSUKI SIGN VISARGA
-11C3F;CM # Mn BHAIKSUKI SIGN VIRAMA
-11C40;AL # Lo BHAIKSUKI SIGN AVAGRAHA
-11C41..11C45;BA # Po [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
-11C50..11C59;NU # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
-11C5A..11C6C;AL # No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
-11C70;BB # Po MARCHEN HEAD MARK
-11C71;EX # Po MARCHEN MARK SHAD
-11C72..11C8F;AL # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A
-11C92..11CA7;CM # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
-11CA9;CM # Mc MARCHEN SUBJOINED LETTER YA
-11CAA..11CB0;CM # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
-11CB1;CM # Mc MARCHEN VOWEL SIGN I
-11CB2..11CB3;CM # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
-11CB4;CM # Mc MARCHEN VOWEL SIGN O
-11CB5..11CB6;CM # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
-11D00..11D06;AL # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
-11D08..11D09;AL # Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
-11D0B..11D30;AL # Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
-11D31..11D36;CM # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
-11D3A;CM # Mn MASARAM GONDI VOWEL SIGN E
-11D3C..11D3D;CM # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
-11D3F..11D45;CM # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
-11D46;AL # Lo MASARAM GONDI REPHA
-11D47;CM # Mn MASARAM GONDI RA-KARA
-11D50..11D59;NU # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
-11D60..11D65;AL # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
-11D67..11D68;AL # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
-11D6A..11D89;AL # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
-11D8A..11D8E;CM # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
-11D90..11D91;CM # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
-11D93..11D94;CM # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
-11D95;CM # Mn GUNJALA GONDI SIGN ANUSVARA
-11D96;CM # Mc GUNJALA GONDI SIGN VISARGA
-11D97;CM # Mn GUNJALA GONDI VIRAMA
-11D98;AL # Lo GUNJALA GONDI OM
-11DA0..11DA9;NU # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
-11EE0..11EF2;AL # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
-11EF3..11EF4;CM # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
-11EF5..11EF6;CM # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
-11EF7..11EF8;AL # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
-11FB0;AL # Lo LISU LETTER YHA
-11FC0..11FD4;AL # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
-11FD5..11FDC;AL # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
-11FDD..11FE0;PO # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
-11FE1..11FF1;AL # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
-11FFF;BA # Po TAMIL PUNCTUATION END OF TEXT
-12000..12399;AL # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
-12400..1246E;AL # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
-12470..12474;BA # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
-12480..12543;AL # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
-13000..13257;AL # Lo [600] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH O006
-13258..1325A;OP # Lo [3] EGYPTIAN HIEROGLYPH O006A..EGYPTIAN HIEROGLYPH O006C
-1325B..1325D;CL # Lo [3] EGYPTIAN HIEROGLYPH O006D..EGYPTIAN HIEROGLYPH O006F
-1325E..13281;AL # Lo [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033
-13282;CL # Lo EGYPTIAN HIEROGLYPH O033A
-13283..13285;AL # Lo [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036
-13286;OP # Lo EGYPTIAN HIEROGLYPH O036A
-13287;CL # Lo EGYPTIAN HIEROGLYPH O036B
-13288;OP # Lo EGYPTIAN HIEROGLYPH O036C
-13289;CL # Lo EGYPTIAN HIEROGLYPH O036D
-1328A..13378;AL # Lo [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
-13379;OP # Lo EGYPTIAN HIEROGLYPH V011A
-1337A..1337B;CL # Lo [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
-1337C..1342E;AL # Lo [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
-13430..13436;GL # Cf [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
-13437;OP # Cf EGYPTIAN HIEROGLYPH BEGIN SEGMENT
-13438;CL # Cf EGYPTIAN HIEROGLYPH END SEGMENT
-14400..145CD;AL # Lo [462] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A409
-145CE;OP # Lo ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK
-145CF;CL # Lo ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK
-145D0..14646;AL # Lo [119] ANATOLIAN HIEROGLYPH A411..ANATOLIAN HIEROGLYPH A530
-16800..16A38;AL # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
-16A40..16A5E;AL # Lo [31] MRO LETTER TA..MRO LETTER TEK
-16A60..16A69;NU # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
-16A6E..16A6F;BA # Po [2] MRO DANDA..MRO DOUBLE DANDA
-16AD0..16AED;AL # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
-16AF0..16AF4;CM # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
-16AF5;BA # Po BASSA VAH FULL STOP
-16B00..16B2F;AL # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
-16B30..16B36;CM # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
-16B37..16B39;BA # Po [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
-16B3A..16B3B;AL # Po [2] PAHAWH HMONG SIGN VOS THIAB..PAHAWH HMONG SIGN VOS FEEM
-16B3C..16B3F;AL # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
-16B40..16B43;AL # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
-16B44;BA # Po PAHAWH HMONG SIGN XAUS
-16B45;AL # So PAHAWH HMONG SIGN CIM TSOV ROG
-16B50..16B59;NU # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
-16B5B..16B61;AL # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
-16B63..16B77;AL # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
-16B7D..16B8F;AL # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
-16E40..16E7F;AL # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
-16E80..16E96;AL # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
-16E97..16E98;BA # Po [2] MEDEFAIDRIN COMMA..MEDEFAIDRIN FULL STOP
-16E99..16E9A;AL # Po [2] MEDEFAIDRIN SYMBOL AIVA..MEDEFAIDRIN EXCLAMATION OH
-16F00..16F4A;AL # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
-16F4F;CM # Mn MIAO SIGN CONSONANT MODIFIER BAR
-16F50;AL # Lo MIAO LETTER NASALIZATION
-16F51..16F87;CM # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
-16F8F..16F92;CM # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
-16F93..16F9F;AL # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
-16FE0..16FE1;NS # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
-16FE2;NS # Po OLD CHINESE HOOK MARK
-16FE3;NS # Lm OLD CHINESE ITERATION MARK
-16FE4;GL # Mn KHITAN SMALL SCRIPT FILLER
-16FF0..16FF1;CM # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
-17000..187F7;ID # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
-18800..18AFF;ID # Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
-18B00..18CD5;AL # Lo [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5
-18D00..18D08;ID # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
-1B000..1B0FF;ID # Lo [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
-1B100..1B11E;ID # Lo [31] HENTAIGANA LETTER RE-3..HENTAIGANA LETTER N-MU-MO-2
-1B150..1B152;CJ # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
-1B164..1B167;CJ # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
-1B170..1B2FB;ID # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
-1BC00..1BC6A;AL # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
-1BC70..1BC7C;AL # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
-1BC80..1BC88;AL # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
-1BC90..1BC99;AL # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
-1BC9C;AL # So DUPLOYAN SIGN O WITH CROSS
-1BC9D..1BC9E;CM # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
-1BC9F;BA # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
-1BCA0..1BCA3;CM # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
-1D000..1D0F5;AL # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
-1D100..1D126;AL # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
-1D129..1D164;AL # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
-1D165..1D166;CM # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
-1D167..1D169;CM # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
-1D16A..1D16C;AL # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
-1D16D..1D172;CM # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
-1D173..1D17A;CM # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
-1D17B..1D182;CM # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
-1D183..1D184;AL # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
-1D185..1D18B;CM # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
-1D18C..1D1A9;AL # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
-1D1AA..1D1AD;CM # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
-1D1AE..1D1E8;AL # So [59] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KIEVAN FLAT SIGN
-1D200..1D241;AL # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
-1D242..1D244;CM # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
-1D245;AL # So GREEK MUSICAL LEIMMA
-1D2E0..1D2F3;AL # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
-1D300..1D356;AL # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
-1D360..1D378;AL # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
-1D400..1D454;AL # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
-1D456..1D49C;AL # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
-1D49E..1D49F;AL # Lu [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
-1D4A2;AL # Lu MATHEMATICAL SCRIPT CAPITAL G
-1D4A5..1D4A6;AL # Lu [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
-1D4A9..1D4AC;AL # Lu [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
-1D4AE..1D4B9;AL # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
-1D4BB;AL # Ll MATHEMATICAL SCRIPT SMALL F
-1D4BD..1D4C3;AL # Ll [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
-1D4C5..1D505;AL # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
-1D507..1D50A;AL # Lu [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
-1D50D..1D514;AL # Lu [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
-1D516..1D51C;AL # Lu [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
-1D51E..1D539;AL # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
-1D53B..1D53E;AL # Lu [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
-1D540..1D544;AL # Lu [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
-1D546;AL # Lu MATHEMATICAL DOUBLE-STRUCK CAPITAL O
-1D54A..1D550;AL # Lu [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
-1D552..1D6A5;AL # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
-1D6A8..1D6C0;AL # Lu [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
-1D6C1;AL # Sm MATHEMATICAL BOLD NABLA
-1D6C2..1D6DA;AL # Ll [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
-1D6DB;AL # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
-1D6DC..1D6FA;AL # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
-1D6FB;AL # Sm MATHEMATICAL ITALIC NABLA
-1D6FC..1D714;AL # Ll [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
-1D715;AL # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
-1D716..1D734;AL # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
-1D735;AL # Sm MATHEMATICAL BOLD ITALIC NABLA
-1D736..1D74E;AL # Ll [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
-1D74F;AL # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
-1D750..1D76E;AL # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
-1D76F;AL # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
-1D770..1D788;AL # Ll [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
-1D789;AL # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
-1D78A..1D7A8;AL # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
-1D7A9;AL # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
-1D7AA..1D7C2;AL # Ll [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
-1D7C3;AL # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
-1D7C4..1D7CB;AL # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
-1D7CE..1D7FF;NU # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
-1D800..1D9FF;AL # So [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
-1DA00..1DA36;CM # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
-1DA37..1DA3A;AL # So [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
-1DA3B..1DA6C;CM # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
-1DA6D..1DA74;AL # So [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
-1DA75;CM # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
-1DA76..1DA83;AL # So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
-1DA84;CM # Mn SIGNWRITING LOCATION HEAD NECK
-1DA85..1DA86;AL # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
-1DA87..1DA8A;BA # Po [4] SIGNWRITING COMMA..SIGNWRITING COLON
-1DA8B;AL # Po SIGNWRITING PARENTHESIS
-1DA9B..1DA9F;CM # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
-1DAA1..1DAAF;CM # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
-1E000..1E006;CM # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
-1E008..1E018;CM # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
-1E01B..1E021;CM # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
-1E023..1E024;CM # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
-1E026..1E02A;CM # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
-1E100..1E12C;AL # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
-1E130..1E136;CM # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
-1E137..1E13D;AL # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
-1E140..1E149;NU # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
-1E14E;AL # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
-1E14F;AL # So NYIAKENG PUACHUE HMONG CIRCLED CA
-1E2C0..1E2EB;AL # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
-1E2EC..1E2EF;CM # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
-1E2F0..1E2F9;NU # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
-1E2FF;PR # Sc WANCHO NGUN SIGN
-1E800..1E8C4;AL # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
-1E8C7..1E8CF;AL # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
-1E8D0..1E8D6;CM # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
-1E900..1E943;AL # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
-1E944..1E94A;CM # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
-1E94B;AL # Lm ADLAM NASALIZATION MARK
-1E950..1E959;NU # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
-1E95E..1E95F;OP # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
-1EC71..1ECAB;AL # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
-1ECAC;PO # So INDIC SIYAQ PLACEHOLDER
-1ECAD..1ECAF;AL # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
-1ECB0;PO # Sc INDIC SIYAQ RUPEE MARK
-1ECB1..1ECB4;AL # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
-1ED01..1ED2D;AL # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
-1ED2E;AL # So OTTOMAN SIYAQ MARRATAN
-1ED2F..1ED3D;AL # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
-1EE00..1EE03;AL # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
-1EE05..1EE1F;AL # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
-1EE21..1EE22;AL # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
-1EE24;AL # Lo ARABIC MATHEMATICAL INITIAL HEH
-1EE27;AL # Lo ARABIC MATHEMATICAL INITIAL HAH
-1EE29..1EE32;AL # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
-1EE34..1EE37;AL # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
-1EE39;AL # Lo ARABIC MATHEMATICAL INITIAL DAD
-1EE3B;AL # Lo ARABIC MATHEMATICAL INITIAL GHAIN
-1EE42;AL # Lo ARABIC MATHEMATICAL TAILED JEEM
-1EE47;AL # Lo ARABIC MATHEMATICAL TAILED HAH
-1EE49;AL # Lo ARABIC MATHEMATICAL TAILED YEH
-1EE4B;AL # Lo ARABIC MATHEMATICAL TAILED LAM
-1EE4D..1EE4F;AL # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
-1EE51..1EE52;AL # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
-1EE54;AL # Lo ARABIC MATHEMATICAL TAILED SHEEN
-1EE57;AL # Lo ARABIC MATHEMATICAL TAILED KHAH
-1EE59;AL # Lo ARABIC MATHEMATICAL TAILED DAD
-1EE5B;AL # Lo ARABIC MATHEMATICAL TAILED GHAIN
-1EE5D;AL # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
-1EE5F;AL # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
-1EE61..1EE62;AL # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
-1EE64;AL # Lo ARABIC MATHEMATICAL STRETCHED HEH
-1EE67..1EE6A;AL # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
-1EE6C..1EE72;AL # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
-1EE74..1EE77;AL # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
-1EE79..1EE7C;AL # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
-1EE7E;AL # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
-1EE80..1EE89;AL # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
-1EE8B..1EE9B;AL # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
-1EEA1..1EEA3;AL # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
-1EEA5..1EEA9;AL # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
-1EEAB..1EEBB;AL # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-1EEF0..1EEF1;AL # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-1F000..1F02B;ID # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
-1F02C..1F02F;ID # Cn [4] <reserved-1F02C>..<reserved-1F02F>
-1F030..1F093;ID # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
-1F094..1F09F;ID # Cn [12] <reserved-1F094>..<reserved-1F09F>
-1F0A0..1F0AE;ID # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
-1F0AF..1F0B0;ID # Cn [2] <reserved-1F0AF>..<reserved-1F0B0>
-1F0B1..1F0BF;ID # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
-1F0C0;ID # Cn <reserved-1F0C0>
-1F0C1..1F0CF;ID # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
-1F0D0;ID # Cn <reserved-1F0D0>
-1F0D1..1F0F5;ID # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
-1F0F6..1F0FF;ID # Cn [10] <reserved-1F0F6>..<reserved-1F0FF>
-1F100..1F10C;AI # No [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
-1F10D..1F10F;ID # So [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
-1F110..1F12D;AI # So [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
-1F12E..1F12F;AL # So [2] CIRCLED WZ..COPYLEFT SYMBOL
-1F130..1F169;AI # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
-1F16A..1F16C;AL # So [3] RAISED MC SIGN..RAISED MR SIGN
-1F16D..1F16F;ID # So [3] CIRCLED CC..CIRCLED HUMAN FIGURE
-1F170..1F1AC;AI # So [61] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VOD
-1F1AD;ID # So MASK WORK SYMBOL
-1F1AE..1F1E5;ID # Cn [56] <reserved-1F1AE>..<reserved-1F1E5>
-1F1E6..1F1FF;RI # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
-1F200..1F202;ID # So [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
-1F203..1F20F;ID # Cn [13] <reserved-1F203>..<reserved-1F20F>
-1F210..1F23B;ID # So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
-1F23C..1F23F;ID # Cn [4] <reserved-1F23C>..<reserved-1F23F>
-1F240..1F248;ID # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
-1F249..1F24F;ID # Cn [7] <reserved-1F249>..<reserved-1F24F>
-1F250..1F251;ID # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
-1F252..1F25F;ID # Cn [14] <reserved-1F252>..<reserved-1F25F>
-1F260..1F265;ID # So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
-1F266..1F2FF;ID # Cn [154] <reserved-1F266>..<reserved-1F2FF>
-1F300..1F384;ID # So [133] CYCLONE..CHRISTMAS TREE
-1F385;EB # So FATHER CHRISTMAS
-1F386..1F39B;ID # So [22] FIREWORKS..CONTROL KNOBS
-1F39C..1F39D;AL # So [2] BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES
-1F39E..1F3B4;ID # So [23] FILM FRAMES..FLOWER PLAYING CARDS
-1F3B5..1F3B6;AL # So [2] MUSICAL NOTE..MULTIPLE MUSICAL NOTES
-1F3B7..1F3BB;ID # So [5] SAXOPHONE..VIOLIN
-1F3BC;AL # So MUSICAL SCORE
-1F3BD..1F3C1;ID # So [5] RUNNING SHIRT WITH SASH..CHEQUERED FLAG
-1F3C2..1F3C4;EB # So [3] SNOWBOARDER..SURFER
-1F3C5..1F3C6;ID # So [2] SPORTS MEDAL..TROPHY
-1F3C7;EB # So HORSE RACING
-1F3C8..1F3C9;ID # So [2] AMERICAN FOOTBALL..RUGBY FOOTBALL
-1F3CA..1F3CC;EB # So [3] SWIMMER..GOLFER
-1F3CD..1F3FA;ID # So [46] RACING MOTORCYCLE..AMPHORA
-1F3FB..1F3FF;EM # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
-1F400..1F441;ID # So [66] RAT..EYE
-1F442..1F443;EB # So [2] EAR..NOSE
-1F444..1F445;ID # So [2] MOUTH..TONGUE
-1F446..1F450;EB # So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN
-1F451..1F465;ID # So [21] CROWN..BUSTS IN SILHOUETTE
-1F466..1F478;EB # So [19] BOY..PRINCESS
-1F479..1F47B;ID # So [3] JAPANESE OGRE..GHOST
-1F47C;EB # So BABY ANGEL
-1F47D..1F480;ID # So [4] EXTRATERRESTRIAL ALIEN..SKULL
-1F481..1F483;EB # So [3] INFORMATION DESK PERSON..DANCER
-1F484;ID # So LIPSTICK
-1F485..1F487;EB # So [3] NAIL POLISH..HAIRCUT
-1F488..1F48E;ID # So [7] BARBER POLE..GEM STONE
-1F48F;EB # So KISS
-1F490;ID # So BOUQUET
-1F491;EB # So COUPLE WITH HEART
-1F492..1F49F;ID # So [14] WEDDING..HEART DECORATION
-1F4A0;AL # So DIAMOND SHAPE WITH A DOT INSIDE
-1F4A1;ID # So ELECTRIC LIGHT BULB
-1F4A2;AL # So ANGER SYMBOL
-1F4A3;ID # So BOMB
-1F4A4;AL # So SLEEPING SYMBOL
-1F4A5..1F4A9;ID # So [5] COLLISION SYMBOL..PILE OF POO
-1F4AA;EB # So FLEXED BICEPS
-1F4AB..1F4AE;ID # So [4] DIZZY SYMBOL..WHITE FLOWER
-1F4AF;AL # So HUNDRED POINTS SYMBOL
-1F4B0;ID # So MONEY BAG
-1F4B1..1F4B2;AL # So [2] CURRENCY EXCHANGE..HEAVY DOLLAR SIGN
-1F4B3..1F4FF;ID # So [77] CREDIT CARD..PRAYER BEADS
-1F500..1F506;AL # So [7] TWISTED RIGHTWARDS ARROWS..HIGH BRIGHTNESS SYMBOL
-1F507..1F516;ID # So [16] SPEAKER WITH CANCELLATION STROKE..BOOKMARK
-1F517..1F524;AL # So [14] LINK SYMBOL..INPUT SYMBOL FOR LATIN LETTERS
-1F525..1F531;ID # So [13] FIRE..TRIDENT EMBLEM
-1F532..1F549;AL # So [24] BLACK SQUARE BUTTON..OM SYMBOL
-1F54A..1F573;ID # So [42] DOVE OF PEACE..HOLE
-1F574..1F575;EB # So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY
-1F576..1F579;ID # So [4] DARK SUNGLASSES..JOYSTICK
-1F57A;EB # So MAN DANCING
-1F57B..1F58F;ID # So [21] LEFT HAND TELEPHONE RECEIVER..TURNED OK HAND SIGN
-1F590;EB # So RAISED HAND WITH FINGERS SPLAYED
-1F591..1F594;ID # So [4] REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND
-1F595..1F596;EB # So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
-1F597..1F5D3;ID # So [61] WHITE DOWN POINTING LEFT HAND INDEX..SPIRAL CALENDAR PAD
-1F5D4..1F5DB;AL # So [8] DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL
-1F5DC..1F5F3;ID # So [24] COMPRESSION..BALLOT BOX WITH BALLOT
-1F5F4..1F5F9;AL # So [6] BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK
-1F5FA..1F5FF;ID # So [6] WORLD MAP..MOYAI
-1F600..1F644;ID # So [69] GRINNING FACE..FACE WITH ROLLING EYES
-1F645..1F647;EB # So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY
-1F648..1F64A;ID # So [3] SEE-NO-EVIL MONKEY..SPEAK-NO-EVIL MONKEY
-1F64B..1F64F;EB # So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS
-1F650..1F675;AL # So [38] NORTH WEST POINTING LEAF..SWASH AMPERSAND ORNAMENT
-1F676..1F678;QU # So [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-1F679..1F67B;NS # So [3] HEAVY INTERROBANG ORNAMENT..HEAVY SANS-SERIF INTERROBANG ORNAMENT
-1F67C..1F67F;AL # So [4] VERY HEAVY SOLIDUS..REVERSE CHECKER BOARD
-1F680..1F6A2;ID # So [35] ROCKET..SHIP
-1F6A3;EB # So ROWBOAT
-1F6A4..1F6B3;ID # So [16] SPEEDBOAT..NO BICYCLES
-1F6B4..1F6B6;EB # So [3] BICYCLIST..PEDESTRIAN
-1F6B7..1F6BF;ID # So [9] NO PEDESTRIANS..SHOWER
-1F6C0;EB # So BATH
-1F6C1..1F6CB;ID # So [11] BATHTUB..COUCH AND LAMP
-1F6CC;EB # So SLEEPING ACCOMMODATION
-1F6CD..1F6D7;ID # So [11] SHOPPING BAGS..ELEVATOR
-1F6D8..1F6DF;ID # Cn [8] <reserved-1F6D8>..<reserved-1F6DF>
-1F6E0..1F6EC;ID # So [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
-1F6ED..1F6EF;ID # Cn [3] <reserved-1F6ED>..<reserved-1F6EF>
-1F6F0..1F6FC;ID # So [13] SATELLITE..ROLLER SKATE
-1F6FD..1F6FF;ID # Cn [3] <reserved-1F6FD>..<reserved-1F6FF>
-1F700..1F773;AL # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F774..1F77F;ID # Cn [12] <reserved-1F774>..<reserved-1F77F>
-1F780..1F7D4;AL # So [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
-1F7D5..1F7D8;ID # So [4] CIRCLED TRIANGLE..NEGATIVE CIRCLED SQUARE
-1F7D9..1F7DF;ID # Cn [7] <reserved-1F7D9>..<reserved-1F7DF>
-1F7E0..1F7EB;ID # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
-1F7EC..1F7FF;ID # Cn [20] <reserved-1F7EC>..<reserved-1F7FF>
-1F800..1F80B;AL # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
-1F80C..1F80F;ID # Cn [4] <reserved-1F80C>..<reserved-1F80F>
-1F810..1F847;AL # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
-1F848..1F84F;ID # Cn [8] <reserved-1F848>..<reserved-1F84F>
-1F850..1F859;AL # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
-1F85A..1F85F;ID # Cn [6] <reserved-1F85A>..<reserved-1F85F>
-1F860..1F887;AL # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
-1F888..1F88F;ID # Cn [8] <reserved-1F888>..<reserved-1F88F>
-1F890..1F8AD;AL # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
-1F8AE..1F8AF;ID # Cn [2] <reserved-1F8AE>..<reserved-1F8AF>
-1F8B0..1F8B1;ID # So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
-1F8B2..1F8FF;ID # Cn [78] <reserved-1F8B2>..<reserved-1F8FF>
-1F900..1F90B;AL # So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
-1F90C;EB # So PINCHED FINGERS
-1F90D..1F90E;ID # So [2] WHITE HEART..BROWN HEART
-1F90F;EB # So PINCHING HAND
-1F910..1F917;ID # So [8] ZIPPER-MOUTH FACE..HUGGING FACE
-1F918..1F91F;EB # So [8] SIGN OF THE HORNS..I LOVE YOU HAND SIGN
-1F920..1F925;ID # So [6] FACE WITH COWBOY HAT..LYING FACE
-1F926;EB # So FACE PALM
-1F927..1F92F;ID # So [9] SNEEZING FACE..SHOCKED FACE WITH EXPLODING HEAD
-1F930..1F939;EB # So [10] PREGNANT WOMAN..JUGGLING
-1F93A..1F93B;ID # So [2] FENCER..MODERN PENTATHLON
-1F93C..1F93E;EB # So [3] WRESTLERS..HANDBALL
-1F93F..1F976;ID # So [56] DIVING MASK..FREEZING FACE
-1F977;EB # So NINJA
-1F978;ID # So DISGUISED FACE
-1F979;ID # Cn <reserved-1F979>
-1F97A..1F9B4;ID # So [59] FACE WITH PLEADING EYES..BONE
-1F9B5..1F9B6;EB # So [2] LEG..FOOT
-1F9B7;ID # So TOOTH
-1F9B8..1F9B9;EB # So [2] SUPERHERO..SUPERVILLAIN
-1F9BA;ID # So SAFETY VEST
-1F9BB;EB # So EAR WITH HEARING AID
-1F9BC..1F9CB;ID # So [16] MOTORIZED WHEELCHAIR..BUBBLE TEA
-1F9CC;ID # Cn <reserved-1F9CC>
-1F9CD..1F9CF;EB # So [3] STANDING PERSON..DEAF PERSON
-1F9D0;ID # So FACE WITH MONOCLE
-1F9D1..1F9DD;EB # So [13] ADULT..ELF
-1F9DE..1F9FF;ID # So [34] GENIE..NAZAR AMULET
-1FA00..1FA53;AL # So [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
-1FA54..1FA5F;ID # Cn [12] <reserved-1FA54>..<reserved-1FA5F>
-1FA60..1FA6D;ID # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA6E..1FA6F;ID # Cn [2] <reserved-1FA6E>..<reserved-1FA6F>
-1FA70..1FA74;ID # So [5] BALLET SHOES..THONG SANDAL
-1FA75..1FA77;ID # Cn [3] <reserved-1FA75>..<reserved-1FA77>
-1FA78..1FA7A;ID # So [3] DROP OF BLOOD..STETHOSCOPE
-1FA7B..1FA7F;ID # Cn [5] <reserved-1FA7B>..<reserved-1FA7F>
-1FA80..1FA86;ID # So [7] YO-YO..NESTING DOLLS
-1FA87..1FA8F;ID # Cn [9] <reserved-1FA87>..<reserved-1FA8F>
-1FA90..1FAA8;ID # So [25] RINGED PLANET..ROCK
-1FAA9..1FAAF;ID # Cn [7] <reserved-1FAA9>..<reserved-1FAAF>
-1FAB0..1FAB6;ID # So [7] FLY..FEATHER
-1FAB7..1FABF;ID # Cn [9] <reserved-1FAB7>..<reserved-1FABF>
-1FAC0..1FAC2;ID # So [3] ANATOMICAL HEART..PEOPLE HUGGING
-1FAC3..1FACF;ID # Cn [13] <reserved-1FAC3>..<reserved-1FACF>
-1FAD0..1FAD6;ID # So [7] BLUEBERRIES..TEAPOT
-1FAD7..1FAFF;ID # Cn [41] <reserved-1FAD7>..<reserved-1FAFF>
-1FB00..1FB92;AL # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
-1FB94..1FBCA;AL # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
-1FBF0..1FBF9;NU # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
-1FC00..1FFFD;ID # Cn [1022] <reserved-1FC00>..<reserved-1FFFD>
-20000..2A6DD;ID # Lo [42718] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DD
-2A6DE..2A6FF;ID # Cn [34] <reserved-2A6DE>..<reserved-2A6FF>
-2A700..2B734;ID # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
-2B735..2B73F;ID # Cn [11] <reserved-2B735>..<reserved-2B73F>
-2B740..2B81D;ID # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
-2B81E..2B81F;ID # Cn [2] <reserved-2B81E>..<reserved-2B81F>
-2B820..2CEA1;ID # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
-2CEA2..2CEAF;ID # Cn [14] <reserved-2CEA2>..<reserved-2CEAF>
-2CEB0..2EBE0;ID # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
-2EBE1..2F7FF;ID # Cn [3103] <reserved-2EBE1>..<reserved-2F7FF>
-2F800..2FA1D;ID # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
-2FA1E..2FA1F;ID # Cn [2] <reserved-2FA1E>..<reserved-2FA1F>
-2FA20..2FFFD;ID # Cn [1502] <reserved-2FA20>..<reserved-2FFFD>
-30000..3134A;ID # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
-3134B..3FFFD;ID # Cn [60595] <reserved-3134B>..<reserved-3FFFD>
-E0001;CM # Cf LANGUAGE TAG
-E0020..E007F;CM # Cf [96] TAG SPACE..CANCEL TAG
-E0100..E01EF;CM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-F0000..FFFFD;XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
-100000..10FFFD;XX # Co [65534] <private-use-100000>..<private-use-10FFFD>
+0000..0008 ; CM # Cc [9] <control-0000>..<control-0008>
+0009 ; BA # Cc <control-0009>
+000A ; LF # Cc <control-000A>
+000B..000C ; BK # Cc [2] <control-000B>..<control-000C>
+000D ; CR # Cc <control-000D>
+000E..001F ; CM # Cc [18] <control-000E>..<control-001F>
+0020 ; SP # Zs SPACE
+0021 ; EX # Po EXCLAMATION MARK
+0022 ; QU # Po QUOTATION MARK
+0023 ; AL # Po NUMBER SIGN
+0024 ; PR # Sc DOLLAR SIGN
+0025 ; PO # Po PERCENT SIGN
+0026 ; AL # Po AMPERSAND
+0027 ; QU # Po APOSTROPHE
+0028 ; OP # Ps LEFT PARENTHESIS
+0029 ; CP # Pe RIGHT PARENTHESIS
+002A ; AL # Po ASTERISK
+002B ; PR # Sm PLUS SIGN
+002C ; IS # Po COMMA
+002D ; HY # Pd HYPHEN-MINUS
+002E ; IS # Po FULL STOP
+002F ; SY # Po SOLIDUS
+0030..0039 ; NU # Nd [10] DIGIT ZERO..DIGIT NINE
+003A..003B ; IS # Po [2] COLON..SEMICOLON
+003C..003E ; AL # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN
+003F ; EX # Po QUESTION MARK
+0040 ; AL # Po COMMERCIAL AT
+0041..005A ; AL # Lu [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z
+005B ; OP # Ps LEFT SQUARE BRACKET
+005C ; PR # Po REVERSE SOLIDUS
+005D ; CP # Pe RIGHT SQUARE BRACKET
+005E ; AL # Sk CIRCUMFLEX ACCENT
+005F ; AL # Pc LOW LINE
+0060 ; AL # Sk GRAVE ACCENT
+0061..007A ; AL # Ll [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z
+007B ; OP # Ps LEFT CURLY BRACKET
+007C ; BA # Sm VERTICAL LINE
+007D ; CL # Pe RIGHT CURLY BRACKET
+007E ; AL # Sm TILDE
+007F ; CM # Cc <control-007F>
+0080..0084 ; CM # Cc [5] <control-0080>..<control-0084>
+0085 ; NL # Cc <control-0085>
+0086..009F ; CM # Cc [26] <control-0086>..<control-009F>
+00A0 ; GL # Zs NO-BREAK SPACE
+00A1 ; OP # Po INVERTED EXCLAMATION MARK
+00A2 ; PO # Sc CENT SIGN
+00A3..00A5 ; PR # Sc [3] POUND SIGN..YEN SIGN
+00A6 ; AL # So BROKEN BAR
+00A7 ; AI # Po SECTION SIGN
+00A8 ; AI # Sk DIAERESIS
+00A9 ; AL # So COPYRIGHT SIGN
+00AA ; AI # Lo FEMININE ORDINAL INDICATOR
+00AB ; QU # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+00AC ; AL # Sm NOT SIGN
+00AD ; BA # Cf SOFT HYPHEN
+00AE ; AL # So REGISTERED SIGN
+00AF ; AL # Sk MACRON
+00B0 ; PO # So DEGREE SIGN
+00B1 ; PR # Sm PLUS-MINUS SIGN
+00B2..00B3 ; AI # No [2] SUPERSCRIPT TWO..SUPERSCRIPT THREE
+00B4 ; BB # Sk ACUTE ACCENT
+00B5 ; AL # Ll MICRO SIGN
+00B6..00B7 ; AI # Po [2] PILCROW SIGN..MIDDLE DOT
+00B8 ; AI # Sk CEDILLA
+00B9 ; AI # No SUPERSCRIPT ONE
+00BA ; AI # Lo MASCULINE ORDINAL INDICATOR
+00BB ; QU # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+00BC..00BE ; AI # No [3] VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+00BF ; OP # Po INVERTED QUESTION MARK
+00C0..00D6 ; AL # Lu [23] LATIN CAPITAL LETTER A WITH GRAVE..LATIN CAPITAL LETTER O WITH DIAERESIS
+00D7 ; AI # Sm MULTIPLICATION SIGN
+00D8..00F6 ; AL # L& [31] LATIN CAPITAL LETTER O WITH STROKE..LATIN SMALL LETTER O WITH DIAERESIS
+00F7 ; AI # Sm DIVISION SIGN
+00F8..00FF ; AL # Ll [8] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER Y WITH DIAERESIS
+0100..017F ; AL # L& [128] LATIN CAPITAL LETTER A WITH MACRON..LATIN SMALL LETTER LONG S
+0180..01BA ; AL # L& [59] LATIN SMALL LETTER B WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL
+01BB ; AL # Lo LATIN LETTER TWO WITH STROKE
+01BC..01BF ; AL # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN
+01C0..01C3 ; AL # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK
+01C4..024F ; AL # L& [140] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER Y WITH STROKE
+0250..0293 ; AL # Ll [68] LATIN SMALL LETTER TURNED A..LATIN SMALL LETTER EZH WITH CURL
+0294 ; AL # Lo LATIN LETTER GLOTTAL STOP
+0295..02AF ; AL # Ll [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL
+02B0..02C1 ; AL # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP
+02C2..02C5 ; AL # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD
+02C6 ; AL # Lm MODIFIER LETTER CIRCUMFLEX ACCENT
+02C7 ; AI # Lm CARON
+02C8 ; BB # Lm MODIFIER LETTER VERTICAL LINE
+02C9..02CB ; AI # Lm [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
+02CC ; BB # Lm MODIFIER LETTER LOW VERTICAL LINE
+02CD ; AI # Lm MODIFIER LETTER LOW MACRON
+02CE..02CF ; AL # Lm [2] MODIFIER LETTER LOW GRAVE ACCENT..MODIFIER LETTER LOW ACUTE ACCENT
+02D0 ; AI # Lm MODIFIER LETTER TRIANGULAR COLON
+02D1 ; AL # Lm MODIFIER LETTER HALF TRIANGULAR COLON
+02D2..02D7 ; AL # Sk [6] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER MINUS SIGN
+02D8..02DB ; AI # Sk [4] BREVE..OGONEK
+02DC ; AL # Sk SMALL TILDE
+02DD ; AI # Sk DOUBLE ACUTE ACCENT
+02DE ; AL # Sk MODIFIER LETTER RHOTIC HOOK
+02DF ; BB # Sk MODIFIER LETTER CROSS ACCENT
+02E0..02E4 ; AL # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+02E5..02EB ; AL # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK
+02EC ; AL # Lm MODIFIER LETTER VOICING
+02ED ; AL # Sk MODIFIER LETTER UNASPIRATED
+02EE ; AL # Lm MODIFIER LETTER DOUBLE APOSTROPHE
+02EF..02FF ; AL # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW
+0300..034E ; CM # Mn [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW
+034F ; GL # Mn COMBINING GRAPHEME JOINER
+0350..035B ; CM # Mn [12] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING ZIGZAG ABOVE
+035C..0362 ; GL # Mn [7] COMBINING DOUBLE BREVE BELOW..COMBINING DOUBLE RIGHTWARDS ARROW BELOW
+0363..036F ; CM # Mn [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
+0370..0373 ; AL # L& [4] GREEK CAPITAL LETTER HETA..GREEK SMALL LETTER ARCHAIC SAMPI
+0374 ; AL # Lm GREEK NUMERAL SIGN
+0375 ; AL # Sk GREEK LOWER NUMERAL SIGN
+0376..0377 ; AL # L& [2] GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA..GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
+037A ; AL # Lm GREEK YPOGEGRAMMENI
+037B..037D ; AL # Ll [3] GREEK SMALL REVERSED LUNATE SIGMA SYMBOL..GREEK SMALL REVERSED DOTTED LUNATE SIGMA SYMBOL
+037E ; IS # Po GREEK QUESTION MARK
+037F ; AL # Lu GREEK CAPITAL LETTER YOT
+0384..0385 ; AL # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS
+0386 ; AL # Lu GREEK CAPITAL LETTER ALPHA WITH TONOS
+0387 ; AL # Po GREEK ANO TELEIA
+0388..038A ; AL # Lu [3] GREEK CAPITAL LETTER EPSILON WITH TONOS..GREEK CAPITAL LETTER IOTA WITH TONOS
+038C ; AL # Lu GREEK CAPITAL LETTER OMICRON WITH TONOS
+038E..03A1 ; AL # L& [20] GREEK CAPITAL LETTER UPSILON WITH TONOS..GREEK CAPITAL LETTER RHO
+03A3..03F5 ; AL # L& [83] GREEK CAPITAL LETTER SIGMA..GREEK LUNATE EPSILON SYMBOL
+03F6 ; AL # Sm GREEK REVERSED LUNATE EPSILON SYMBOL
+03F7..03FF ; AL # L& [9] GREEK CAPITAL LETTER SHO..GREEK CAPITAL REVERSED DOTTED LUNATE SIGMA SYMBOL
+0400..0481 ; AL # L& [130] CYRILLIC CAPITAL LETTER IE WITH GRAVE..CYRILLIC SMALL LETTER KOPPA
+0482 ; AL # So CYRILLIC THOUSANDS SIGN
+0483..0487 ; CM # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
+0488..0489 ; CM # Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
+048A..04FF ; AL # L& [118] CYRILLIC CAPITAL LETTER SHORT I WITH TAIL..CYRILLIC SMALL LETTER HA WITH STROKE
+0500..052F ; AL # L& [48] CYRILLIC CAPITAL LETTER KOMI DE..CYRILLIC SMALL LETTER EL WITH DESCENDER
+0531..0556 ; AL # Lu [38] ARMENIAN CAPITAL LETTER AYB..ARMENIAN CAPITAL LETTER FEH
+0559 ; AL # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING
+055A..055F ; AL # Po [6] ARMENIAN APOSTROPHE..ARMENIAN ABBREVIATION MARK
+0560..0588 ; AL # Ll [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
+0589 ; IS # Po ARMENIAN FULL STOP
+058A ; BA # Pd ARMENIAN HYPHEN
+058D..058E ; AL # So [2] RIGHT-FACING ARMENIAN ETERNITY SIGN..LEFT-FACING ARMENIAN ETERNITY SIGN
+058F ; PR # Sc ARMENIAN DRAM SIGN
+0591..05BD ; CM # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
+05BE ; BA # Pd HEBREW PUNCTUATION MAQAF
+05BF ; CM # Mn HEBREW POINT RAFE
+05C0 ; AL # Po HEBREW PUNCTUATION PASEQ
+05C1..05C2 ; CM # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
+05C3 ; AL # Po HEBREW PUNCTUATION SOF PASUQ
+05C4..05C5 ; CM # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
+05C6 ; EX # Po HEBREW PUNCTUATION NUN HAFUKHA
+05C7 ; CM # Mn HEBREW POINT QAMATS QATAN
+05D0..05EA ; HL # Lo [27] HEBREW LETTER ALEF..HEBREW LETTER TAV
+05EF..05F2 ; HL # Lo [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD
+05F3..05F4 ; AL # Po [2] HEBREW PUNCTUATION GERESH..HEBREW PUNCTUATION GERSHAYIM
+0600..0605 ; NU # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
+0606..0608 ; AL # Sm [3] ARABIC-INDIC CUBE ROOT..ARABIC RAY
+0609..060A ; PO # Po [2] ARABIC-INDIC PER MILLE SIGN..ARABIC-INDIC PER TEN THOUSAND SIGN
+060B ; PO # Sc AFGHANI SIGN
+060C..060D ; IS # Po [2] ARABIC COMMA..ARABIC DATE SEPARATOR
+060E..060F ; AL # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
+0610..061A ; CM # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
+061B ; EX # Po ARABIC SEMICOLON
+061C ; CM # Cf ARABIC LETTER MARK
+061D..061F ; EX # Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
+0620..063F ; AL # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
+0640 ; AL # Lm ARABIC TATWEEL
+0641..064A ; AL # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
+064B..065F ; CM # Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
+0660..0669 ; NU # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
+066A ; PO # Po ARABIC PERCENT SIGN
+066B..066C ; NU # Po [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR
+066D ; AL # Po ARABIC FIVE POINTED STAR
+066E..066F ; AL # Lo [2] ARABIC LETTER DOTLESS BEH..ARABIC LETTER DOTLESS QAF
+0670 ; CM # Mn ARABIC LETTER SUPERSCRIPT ALEF
+0671..06D3 ; AL # Lo [99] ARABIC LETTER ALEF WASLA..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE
+06D4 ; EX # Po ARABIC FULL STOP
+06D5 ; AL # Lo ARABIC LETTER AE
+06D6..06DC ; CM # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
+06DD ; NU # Cf ARABIC END OF AYAH
+06DE ; AL # So ARABIC START OF RUB EL HIZB
+06DF..06E4 ; CM # Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
+06E5..06E6 ; AL # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH
+06E7..06E8 ; CM # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
+06E9 ; AL # So ARABIC PLACE OF SAJDAH
+06EA..06ED ; CM # Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
+06EE..06EF ; AL # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
+06F0..06F9 ; NU # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
+06FA..06FC ; AL # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
+06FD..06FE ; AL # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
+06FF ; AL # Lo ARABIC LETTER HEH WITH INVERTED V
+0700..070D ; AL # Po [14] SYRIAC END OF PARAGRAPH..SYRIAC HARKLEAN ASTERISCUS
+070F ; AL # Cf SYRIAC ABBREVIATION MARK
+0710 ; AL # Lo SYRIAC LETTER ALAPH
+0711 ; CM # Mn SYRIAC LETTER SUPERSCRIPT ALAPH
+0712..072F ; AL # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
+0730..074A ; CM # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
+074D..074F ; AL # Lo [3] SYRIAC LETTER SOGDIAN ZHAIN..SYRIAC LETTER SOGDIAN FE
+0750..077F ; AL # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
+0780..07A5 ; AL # Lo [38] THAANA LETTER HAA..THAANA LETTER WAAVU
+07A6..07B0 ; CM # Mn [11] THAANA ABAFILI..THAANA SUKUN
+07B1 ; AL # Lo THAANA LETTER NAA
+07C0..07C9 ; NU # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+07CA..07EA ; AL # Lo [33] NKO LETTER A..NKO LETTER JONA RA
+07EB..07F3 ; CM # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
+07F4..07F5 ; AL # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE
+07F6 ; AL # So NKO SYMBOL OO DENNEN
+07F7 ; AL # Po NKO SYMBOL GBAKURUNEN
+07F8 ; IS # Po NKO COMMA
+07F9 ; EX # Po NKO EXCLAMATION MARK
+07FA ; AL # Lm NKO LAJANYALAN
+07FD ; CM # Mn NKO DANTAYALAN
+07FE..07FF ; PR # Sc [2] NKO DOROME SIGN..NKO TAMAN SIGN
+0800..0815 ; AL # Lo [22] SAMARITAN LETTER ALAF..SAMARITAN LETTER TAAF
+0816..0819 ; CM # Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
+081A ; AL # Lm SAMARITAN MODIFIER LETTER EPENTHETIC YUT
+081B..0823 ; CM # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
+0824 ; AL # Lm SAMARITAN MODIFIER LETTER SHORT A
+0825..0827 ; CM # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
+0828 ; AL # Lm SAMARITAN MODIFIER LETTER I
+0829..082D ; CM # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
+0830..083E ; AL # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU
+0840..0858 ; AL # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
+0859..085B ; CM # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
+085E ; AL # Po MANDAIC PUNCTUATION
+0860..086A ; AL # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
+0870..0887 ; AL # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+0888 ; AL # Sk ARABIC RAISED ROUND DOT
+0889..088E ; AL # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+0890..0891 ; NU # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+0898..089F ; CM # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08A0..08C8 ; AL # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
+08C9 ; AL # Lm ARABIC SMALL FARSI YEH
+08CA..08E1 ; CM # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
+08E2 ; NU # Cf ARABIC DISPUTED END OF AYAH
+08E3..08FF ; CM # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
+0900..0902 ; CM # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA
+0903 ; CM # Mc DEVANAGARI SIGN VISARGA
+0904..0939 ; AL # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
+093A ; CM # Mn DEVANAGARI VOWEL SIGN OE
+093B ; CM # Mc DEVANAGARI VOWEL SIGN OOE
+093C ; CM # Mn DEVANAGARI SIGN NUKTA
+093D ; AL # Lo DEVANAGARI SIGN AVAGRAHA
+093E..0940 ; CM # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
+0941..0948 ; CM # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
+0949..094C ; CM # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
+094D ; CM # Mn DEVANAGARI SIGN VIRAMA
+094E..094F ; CM # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
+0950 ; AL # Lo DEVANAGARI OM
+0951..0957 ; CM # Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
+0958..0961 ; AL # Lo [10] DEVANAGARI LETTER QA..DEVANAGARI LETTER VOCALIC LL
+0962..0963 ; CM # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
+0964..0965 ; BA # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA
+0966..096F ; NU # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
+0970 ; AL # Po DEVANAGARI ABBREVIATION SIGN
+0971 ; AL # Lm DEVANAGARI SIGN HIGH SPACING DOT
+0972..097F ; AL # Lo [14] DEVANAGARI LETTER CANDRA A..DEVANAGARI LETTER BBA
+0980 ; AL # Lo BENGALI ANJI
+0981 ; CM # Mn BENGALI SIGN CANDRABINDU
+0982..0983 ; CM # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
+0985..098C ; AL # Lo [8] BENGALI LETTER A..BENGALI LETTER VOCALIC L
+098F..0990 ; AL # Lo [2] BENGALI LETTER E..BENGALI LETTER AI
+0993..09A8 ; AL # Lo [22] BENGALI LETTER O..BENGALI LETTER NA
+09AA..09B0 ; AL # Lo [7] BENGALI LETTER PA..BENGALI LETTER RA
+09B2 ; AL # Lo BENGALI LETTER LA
+09B6..09B9 ; AL # Lo [4] BENGALI LETTER SHA..BENGALI LETTER HA
+09BC ; CM # Mn BENGALI SIGN NUKTA
+09BD ; AL # Lo BENGALI SIGN AVAGRAHA
+09BE..09C0 ; CM # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II
+09C1..09C4 ; CM # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
+09C7..09C8 ; CM # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
+09CB..09CC ; CM # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
+09CD ; CM # Mn BENGALI SIGN VIRAMA
+09CE ; AL # Lo BENGALI LETTER KHANDA TA
+09D7 ; CM # Mc BENGALI AU LENGTH MARK
+09DC..09DD ; AL # Lo [2] BENGALI LETTER RRA..BENGALI LETTER RHA
+09DF..09E1 ; AL # Lo [3] BENGALI LETTER YYA..BENGALI LETTER VOCALIC LL
+09E2..09E3 ; CM # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
+09E6..09EF ; NU # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
+09F0..09F1 ; AL # Lo [2] BENGALI LETTER RA WITH MIDDLE DIAGONAL..BENGALI LETTER RA WITH LOWER DIAGONAL
+09F2..09F3 ; PO # Sc [2] BENGALI RUPEE MARK..BENGALI RUPEE SIGN
+09F4..09F8 ; AL # No [5] BENGALI CURRENCY NUMERATOR ONE..BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+09F9 ; PO # No BENGALI CURRENCY DENOMINATOR SIXTEEN
+09FA ; AL # So BENGALI ISSHAR
+09FB ; PR # Sc BENGALI GANDA MARK
+09FC ; AL # Lo BENGALI LETTER VEDIC ANUSVARA
+09FD ; AL # Po BENGALI ABBREVIATION SIGN
+09FE ; CM # Mn BENGALI SANDHI MARK
+0A01..0A02 ; CM # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
+0A03 ; CM # Mc GURMUKHI SIGN VISARGA
+0A05..0A0A ; AL # Lo [6] GURMUKHI LETTER A..GURMUKHI LETTER UU
+0A0F..0A10 ; AL # Lo [2] GURMUKHI LETTER EE..GURMUKHI LETTER AI
+0A13..0A28 ; AL # Lo [22] GURMUKHI LETTER OO..GURMUKHI LETTER NA
+0A2A..0A30 ; AL # Lo [7] GURMUKHI LETTER PA..GURMUKHI LETTER RA
+0A32..0A33 ; AL # Lo [2] GURMUKHI LETTER LA..GURMUKHI LETTER LLA
+0A35..0A36 ; AL # Lo [2] GURMUKHI LETTER VA..GURMUKHI LETTER SHA
+0A38..0A39 ; AL # Lo [2] GURMUKHI LETTER SA..GURMUKHI LETTER HA
+0A3C ; CM # Mn GURMUKHI SIGN NUKTA
+0A3E..0A40 ; CM # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
+0A41..0A42 ; CM # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
+0A47..0A48 ; CM # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
+0A4B..0A4D ; CM # Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
+0A51 ; CM # Mn GURMUKHI SIGN UDAAT
+0A59..0A5C ; AL # Lo [4] GURMUKHI LETTER KHHA..GURMUKHI LETTER RRA
+0A5E ; AL # Lo GURMUKHI LETTER FA
+0A66..0A6F ; NU # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
+0A70..0A71 ; CM # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
+0A72..0A74 ; AL # Lo [3] GURMUKHI IRI..GURMUKHI EK ONKAR
+0A75 ; CM # Mn GURMUKHI SIGN YAKASH
+0A76 ; AL # Po GURMUKHI ABBREVIATION SIGN
+0A81..0A82 ; CM # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
+0A83 ; CM # Mc GUJARATI SIGN VISARGA
+0A85..0A8D ; AL # Lo [9] GUJARATI LETTER A..GUJARATI VOWEL CANDRA E
+0A8F..0A91 ; AL # Lo [3] GUJARATI LETTER E..GUJARATI VOWEL CANDRA O
+0A93..0AA8 ; AL # Lo [22] GUJARATI LETTER O..GUJARATI LETTER NA
+0AAA..0AB0 ; AL # Lo [7] GUJARATI LETTER PA..GUJARATI LETTER RA
+0AB2..0AB3 ; AL # Lo [2] GUJARATI LETTER LA..GUJARATI LETTER LLA
+0AB5..0AB9 ; AL # Lo [5] GUJARATI LETTER VA..GUJARATI LETTER HA
+0ABC ; CM # Mn GUJARATI SIGN NUKTA
+0ABD ; AL # Lo GUJARATI SIGN AVAGRAHA
+0ABE..0AC0 ; CM # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
+0AC1..0AC5 ; CM # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
+0AC7..0AC8 ; CM # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
+0AC9 ; CM # Mc GUJARATI VOWEL SIGN CANDRA O
+0ACB..0ACC ; CM # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
+0ACD ; CM # Mn GUJARATI SIGN VIRAMA
+0AD0 ; AL # Lo GUJARATI OM
+0AE0..0AE1 ; AL # Lo [2] GUJARATI LETTER VOCALIC RR..GUJARATI LETTER VOCALIC LL
+0AE2..0AE3 ; CM # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
+0AE6..0AEF ; NU # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
+0AF0 ; AL # Po GUJARATI ABBREVIATION SIGN
+0AF1 ; PR # Sc GUJARATI RUPEE SIGN
+0AF9 ; AL # Lo GUJARATI LETTER ZHA
+0AFA..0AFF ; CM # Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
+0B01 ; CM # Mn ORIYA SIGN CANDRABINDU
+0B02..0B03 ; CM # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
+0B05..0B0C ; AL # Lo [8] ORIYA LETTER A..ORIYA LETTER VOCALIC L
+0B0F..0B10 ; AL # Lo [2] ORIYA LETTER E..ORIYA LETTER AI
+0B13..0B28 ; AL # Lo [22] ORIYA LETTER O..ORIYA LETTER NA
+0B2A..0B30 ; AL # Lo [7] ORIYA LETTER PA..ORIYA LETTER RA
+0B32..0B33 ; AL # Lo [2] ORIYA LETTER LA..ORIYA LETTER LLA
+0B35..0B39 ; AL # Lo [5] ORIYA LETTER VA..ORIYA LETTER HA
+0B3C ; CM # Mn ORIYA SIGN NUKTA
+0B3D ; AL # Lo ORIYA SIGN AVAGRAHA
+0B3E ; CM # Mc ORIYA VOWEL SIGN AA
+0B3F ; CM # Mn ORIYA VOWEL SIGN I
+0B40 ; CM # Mc ORIYA VOWEL SIGN II
+0B41..0B44 ; CM # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
+0B47..0B48 ; CM # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
+0B4B..0B4C ; CM # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
+0B4D ; CM # Mn ORIYA SIGN VIRAMA
+0B55..0B56 ; CM # Mn [2] ORIYA SIGN OVERLINE..ORIYA AI LENGTH MARK
+0B57 ; CM # Mc ORIYA AU LENGTH MARK
+0B5C..0B5D ; AL # Lo [2] ORIYA LETTER RRA..ORIYA LETTER RHA
+0B5F..0B61 ; AL # Lo [3] ORIYA LETTER YYA..ORIYA LETTER VOCALIC LL
+0B62..0B63 ; CM # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
+0B66..0B6F ; NU # Nd [10] ORIYA DIGIT ZERO..ORIYA DIGIT NINE
+0B70 ; AL # So ORIYA ISSHAR
+0B71 ; AL # Lo ORIYA LETTER WA
+0B72..0B77 ; AL # No [6] ORIYA FRACTION ONE QUARTER..ORIYA FRACTION THREE SIXTEENTHS
+0B82 ; CM # Mn TAMIL SIGN ANUSVARA
+0B83 ; AL # Lo TAMIL SIGN VISARGA
+0B85..0B8A ; AL # Lo [6] TAMIL LETTER A..TAMIL LETTER UU
+0B8E..0B90 ; AL # Lo [3] TAMIL LETTER E..TAMIL LETTER AI
+0B92..0B95 ; AL # Lo [4] TAMIL LETTER O..TAMIL LETTER KA
+0B99..0B9A ; AL # Lo [2] TAMIL LETTER NGA..TAMIL LETTER CA
+0B9C ; AL # Lo TAMIL LETTER JA
+0B9E..0B9F ; AL # Lo [2] TAMIL LETTER NYA..TAMIL LETTER TTA
+0BA3..0BA4 ; AL # Lo [2] TAMIL LETTER NNA..TAMIL LETTER TA
+0BA8..0BAA ; AL # Lo [3] TAMIL LETTER NA..TAMIL LETTER PA
+0BAE..0BB9 ; AL # Lo [12] TAMIL LETTER MA..TAMIL LETTER HA
+0BBE..0BBF ; CM # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I
+0BC0 ; CM # Mn TAMIL VOWEL SIGN II
+0BC1..0BC2 ; CM # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
+0BC6..0BC8 ; CM # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
+0BCA..0BCC ; CM # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
+0BCD ; CM # Mn TAMIL SIGN VIRAMA
+0BD0 ; AL # Lo TAMIL OM
+0BD7 ; CM # Mc TAMIL AU LENGTH MARK
+0BE6..0BEF ; NU # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
+0BF0..0BF2 ; AL # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
+0BF3..0BF8 ; AL # So [6] TAMIL DAY SIGN..TAMIL AS ABOVE SIGN
+0BF9 ; PR # Sc TAMIL RUPEE SIGN
+0BFA ; AL # So TAMIL NUMBER SIGN
+0C00 ; CM # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
+0C01..0C03 ; CM # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
+0C04 ; CM # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C05..0C0C ; AL # Lo [8] TELUGU LETTER A..TELUGU LETTER VOCALIC L
+0C0E..0C10 ; AL # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
+0C12..0C28 ; AL # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
+0C2A..0C39 ; AL # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3C ; CM # Mn TELUGU SIGN NUKTA
+0C3D ; AL # Lo TELUGU SIGN AVAGRAHA
+0C3E..0C40 ; CM # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
+0C41..0C44 ; CM # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
+0C46..0C48 ; CM # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
+0C4A..0C4D ; CM # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
+0C55..0C56 ; CM # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
+0C58..0C5A ; AL # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C5D ; AL # Lo TELUGU LETTER NAKAARA POLLU
+0C60..0C61 ; AL # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
+0C62..0C63 ; CM # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
+0C66..0C6F ; NU # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
+0C77 ; BB # Po TELUGU SIGN SIDDHAM
+0C78..0C7E ; AL # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
+0C7F ; AL # So TELUGU SIGN TUUMU
+0C80 ; AL # Lo KANNADA SIGN SPACING CANDRABINDU
+0C81 ; CM # Mn KANNADA SIGN CANDRABINDU
+0C82..0C83 ; CM # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
+0C84 ; BB # Po KANNADA SIGN SIDDHAM
+0C85..0C8C ; AL # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
+0C8E..0C90 ; AL # Lo [3] KANNADA LETTER E..KANNADA LETTER AI
+0C92..0CA8 ; AL # Lo [23] KANNADA LETTER O..KANNADA LETTER NA
+0CAA..0CB3 ; AL # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
+0CB5..0CB9 ; AL # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
+0CBC ; CM # Mn KANNADA SIGN NUKTA
+0CBD ; AL # Lo KANNADA SIGN AVAGRAHA
+0CBE ; CM # Mc KANNADA VOWEL SIGN AA
+0CBF ; CM # Mn KANNADA VOWEL SIGN I
+0CC0..0CC4 ; CM # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR
+0CC6 ; CM # Mn KANNADA VOWEL SIGN E
+0CC7..0CC8 ; CM # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
+0CCA..0CCB ; CM # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
+0CCC..0CCD ; CM # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
+0CD5..0CD6 ; CM # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
+0CDD..0CDE ; AL # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
+0CE0..0CE1 ; AL # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
+0CE2..0CE3 ; CM # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CE6..0CEF ; NU # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
+0CF1..0CF2 ; AL # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3 ; CM # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
+0D00..0D01 ; CM # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
+0D02..0D03 ; CM # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
+0D04..0D0C ; AL # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
+0D0E..0D10 ; AL # Lo [3] MALAYALAM LETTER E..MALAYALAM LETTER AI
+0D12..0D3A ; AL # Lo [41] MALAYALAM LETTER O..MALAYALAM LETTER TTTA
+0D3B..0D3C ; CM # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
+0D3D ; AL # Lo MALAYALAM SIGN AVAGRAHA
+0D3E..0D40 ; CM # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II
+0D41..0D44 ; CM # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
+0D46..0D48 ; CM # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
+0D4A..0D4C ; CM # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
+0D4D ; CM # Mn MALAYALAM SIGN VIRAMA
+0D4E ; AL # Lo MALAYALAM LETTER DOT REPH
+0D4F ; AL # So MALAYALAM SIGN PARA
+0D54..0D56 ; AL # Lo [3] MALAYALAM LETTER CHILLU M..MALAYALAM LETTER CHILLU LLL
+0D57 ; CM # Mc MALAYALAM AU LENGTH MARK
+0D58..0D5E ; AL # No [7] MALAYALAM FRACTION ONE ONE-HUNDRED-AND-SIXTIETH..MALAYALAM FRACTION ONE FIFTH
+0D5F..0D61 ; AL # Lo [3] MALAYALAM LETTER ARCHAIC II..MALAYALAM LETTER VOCALIC LL
+0D62..0D63 ; CM # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
+0D66..0D6F ; NU # Nd [10] MALAYALAM DIGIT ZERO..MALAYALAM DIGIT NINE
+0D70..0D78 ; AL # No [9] MALAYALAM NUMBER TEN..MALAYALAM FRACTION THREE SIXTEENTHS
+0D79 ; PO # So MALAYALAM DATE MARK
+0D7A..0D7F ; AL # Lo [6] MALAYALAM LETTER CHILLU NN..MALAYALAM LETTER CHILLU K
+0D81 ; CM # Mn SINHALA SIGN CANDRABINDU
+0D82..0D83 ; CM # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
+0D85..0D96 ; AL # Lo [18] SINHALA LETTER AYANNA..SINHALA LETTER AUYANNA
+0D9A..0DB1 ; AL # Lo [24] SINHALA LETTER ALPAPRAANA KAYANNA..SINHALA LETTER DANTAJA NAYANNA
+0DB3..0DBB ; AL # Lo [9] SINHALA LETTER SANYAKA DAYANNA..SINHALA LETTER RAYANNA
+0DBD ; AL # Lo SINHALA LETTER DANTAJA LAYANNA
+0DC0..0DC6 ; AL # Lo [7] SINHALA LETTER VAYANNA..SINHALA LETTER FAYANNA
+0DCA ; CM # Mn SINHALA SIGN AL-LAKUNA
+0DCF..0DD1 ; CM # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
+0DD2..0DD4 ; CM # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
+0DD6 ; CM # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
+0DD8..0DDF ; CM # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA
+0DE6..0DEF ; NU # Nd [10] SINHALA LITH DIGIT ZERO..SINHALA LITH DIGIT NINE
+0DF2..0DF3 ; CM # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
+0DF4 ; AL # Po SINHALA PUNCTUATION KUNDDALIYA
+0E01..0E30 ; SA # Lo [48] THAI CHARACTER KO KAI..THAI CHARACTER SARA A
+0E31 ; SA # Mn THAI CHARACTER MAI HAN-AKAT
+0E32..0E33 ; SA # Lo [2] THAI CHARACTER SARA AA..THAI CHARACTER SARA AM
+0E34..0E3A ; SA # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
+0E3F ; PR # Sc THAI CURRENCY SYMBOL BAHT
+0E40..0E45 ; SA # Lo [6] THAI CHARACTER SARA E..THAI CHARACTER LAKKHANGYAO
+0E46 ; SA # Lm THAI CHARACTER MAIYAMOK
+0E47..0E4E ; SA # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
+0E4F ; AL # Po THAI CHARACTER FONGMAN
+0E50..0E59 ; NU # Nd [10] THAI DIGIT ZERO..THAI DIGIT NINE
+0E5A..0E5B ; BA # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT
+0E81..0E82 ; SA # Lo [2] LAO LETTER KO..LAO LETTER KHO SUNG
+0E84 ; SA # Lo LAO LETTER KHO TAM
+0E86..0E8A ; SA # Lo [5] LAO LETTER PALI GHA..LAO LETTER SO TAM
+0E8C..0EA3 ; SA # Lo [24] LAO LETTER PALI JHA..LAO LETTER LO LING
+0EA5 ; SA # Lo LAO LETTER LO LOOT
+0EA7..0EB0 ; SA # Lo [10] LAO LETTER WO..LAO VOWEL SIGN A
+0EB1 ; SA # Mn LAO VOWEL SIGN MAI KAN
+0EB2..0EB3 ; SA # Lo [2] LAO VOWEL SIGN AA..LAO VOWEL SIGN AM
+0EB4..0EBC ; SA # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
+0EBD ; SA # Lo LAO SEMIVOWEL SIGN NYO
+0EC0..0EC4 ; SA # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
+0EC6 ; SA # Lm LAO KO LA
+0EC8..0ECE ; SA # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
+0ED0..0ED9 ; NU # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
+0EDC..0EDF ; SA # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
+0F00 ; AL # Lo TIBETAN SYLLABLE OM
+0F01..0F03 ; BB # So [3] TIBETAN MARK GTER YIG MGO TRUNCATED A..TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA
+0F04 ; BB # Po TIBETAN MARK INITIAL YIG MGO MDUN MA
+0F05 ; AL # Po TIBETAN MARK CLOSING YIG MGO SGAB MA
+0F06..0F07 ; BB # Po [2] TIBETAN MARK CARET YIG MGO PHUR SHAD MA..TIBETAN MARK YIG MGO TSHEG SHAD MA
+0F08 ; GL # Po TIBETAN MARK SBRUL SHAD
+0F09..0F0A ; BB # Po [2] TIBETAN MARK BSKUR YIG MGO..TIBETAN MARK BKA- SHOG YIG MGO
+0F0B ; BA # Po TIBETAN MARK INTERSYLLABIC TSHEG
+0F0C ; GL # Po TIBETAN MARK DELIMITER TSHEG BSTAR
+0F0D..0F11 ; EX # Po [5] TIBETAN MARK SHAD..TIBETAN MARK RIN CHEN SPUNGS SHAD
+0F12 ; GL # Po TIBETAN MARK RGYA GRAM SHAD
+0F13 ; AL # So TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN
+0F14 ; EX # Po TIBETAN MARK GTER TSHEG
+0F15..0F17 ; AL # So [3] TIBETAN LOGOTYPE SIGN CHAD RTAGS..TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS
+0F18..0F19 ; CM # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
+0F1A..0F1F ; AL # So [6] TIBETAN SIGN RDEL DKAR GCIG..TIBETAN SIGN RDEL DKAR RDEL NAG
+0F20..0F29 ; NU # Nd [10] TIBETAN DIGIT ZERO..TIBETAN DIGIT NINE
+0F2A..0F33 ; AL # No [10] TIBETAN DIGIT HALF ONE..TIBETAN DIGIT HALF ZERO
+0F34 ; BA # So TIBETAN MARK BSDUS RTAGS
+0F35 ; CM # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
+0F36 ; AL # So TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN
+0F37 ; CM # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
+0F38 ; AL # So TIBETAN MARK CHE MGO
+0F39 ; CM # Mn TIBETAN MARK TSA -PHRU
+0F3A ; OP # Ps TIBETAN MARK GUG RTAGS GYON
+0F3B ; CL # Pe TIBETAN MARK GUG RTAGS GYAS
+0F3C ; OP # Ps TIBETAN MARK ANG KHANG GYON
+0F3D ; CL # Pe TIBETAN MARK ANG KHANG GYAS
+0F3E..0F3F ; CM # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
+0F40..0F47 ; AL # Lo [8] TIBETAN LETTER KA..TIBETAN LETTER JA
+0F49..0F6C ; AL # Lo [36] TIBETAN LETTER NYA..TIBETAN LETTER RRA
+0F71..0F7E ; CM # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
+0F7F ; BA # Mc TIBETAN SIGN RNAM BCAD
+0F80..0F84 ; CM # Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
+0F85 ; BA # Po TIBETAN MARK PALUTA
+0F86..0F87 ; CM # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
+0F88..0F8C ; AL # Lo [5] TIBETAN SIGN LCE TSA CAN..TIBETAN SIGN INVERTED MCHU CAN
+0F8D..0F97 ; CM # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
+0F99..0FBC ; CM # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
+0FBE..0FBF ; BA # So [2] TIBETAN KU RU KHA..TIBETAN KU RU KHA BZHI MIG CAN
+0FC0..0FC5 ; AL # So [6] TIBETAN CANTILLATION SIGN HEAVY BEAT..TIBETAN SYMBOL RDO RJE
+0FC6 ; CM # Mn TIBETAN SYMBOL PADMA GDAN
+0FC7..0FCC ; AL # So [6] TIBETAN SYMBOL RDO RJE RGYA GRAM..TIBETAN SYMBOL NOR BU BZHI -KHYIL
+0FCE..0FCF ; AL # So [2] TIBETAN SIGN RDEL NAG RDEL DKAR..TIBETAN SIGN RDEL NAG GSUM
+0FD0..0FD1 ; BB # Po [2] TIBETAN MARK BSKA- SHOG GI MGO RGYAN..TIBETAN MARK MNYAM YIG GI MGO RGYAN
+0FD2 ; BA # Po TIBETAN MARK NYIS TSHEG
+0FD3 ; BB # Po TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
+0FD4 ; AL # Po TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
+0FD5..0FD8 ; AL # So [4] RIGHT-FACING SVASTI SIGN..LEFT-FACING SVASTI SIGN WITH DOTS
+0FD9..0FDA ; GL # Po [2] TIBETAN MARK LEADING MCHAN RTAGS..TIBETAN MARK TRAILING MCHAN RTAGS
+1000..102A ; SA # Lo [43] MYANMAR LETTER KA..MYANMAR LETTER AU
+102B..102C ; SA # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA
+102D..1030 ; SA # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
+1031 ; SA # Mc MYANMAR VOWEL SIGN E
+1032..1037 ; SA # Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
+1038 ; SA # Mc MYANMAR SIGN VISARGA
+1039..103A ; SA # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
+103B..103C ; SA # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
+103D..103E ; SA # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
+103F ; SA # Lo MYANMAR LETTER GREAT SA
+1040..1049 ; NU # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
+104A..104B ; BA # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION
+104C..104F ; AL # Po [4] MYANMAR SYMBOL LOCATIVE..MYANMAR SYMBOL GENITIVE
+1050..1055 ; SA # Lo [6] MYANMAR LETTER SHA..MYANMAR LETTER VOCALIC LL
+1056..1057 ; SA # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
+1058..1059 ; SA # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
+105A..105D ; SA # Lo [4] MYANMAR LETTER MON NGA..MYANMAR LETTER MON BBE
+105E..1060 ; SA # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
+1061 ; SA # Lo MYANMAR LETTER SGAW KAREN SHA
+1062..1064 ; SA # Mc [3] MYANMAR VOWEL SIGN SGAW KAREN EU..MYANMAR TONE MARK SGAW KAREN KE PHO
+1065..1066 ; SA # Lo [2] MYANMAR LETTER WESTERN PWO KAREN THA..MYANMAR LETTER WESTERN PWO KAREN PWA
+1067..106D ; SA # Mc [7] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR SIGN WESTERN PWO KAREN TONE-5
+106E..1070 ; SA # Lo [3] MYANMAR LETTER EASTERN PWO KAREN NNA..MYANMAR LETTER EASTERN PWO KAREN GHWA
+1071..1074 ; SA # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
+1075..1081 ; SA # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
+1082 ; SA # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
+1083..1084 ; SA # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E
+1085..1086 ; SA # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
+1087..108C ; SA # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3
+108D ; SA # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
+108E ; SA # Lo MYANMAR LETTER RUMAI PALAUNG FA
+108F ; SA # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5
+1090..1099 ; NU # Nd [10] MYANMAR SHAN DIGIT ZERO..MYANMAR SHAN DIGIT NINE
+109A..109C ; SA # Mc [3] MYANMAR SIGN KHAMTI TONE-1..MYANMAR VOWEL SIGN AITON A
+109D ; SA # Mn MYANMAR VOWEL SIGN AITON AI
+109E..109F ; SA # So [2] MYANMAR SYMBOL SHAN ONE..MYANMAR SYMBOL SHAN EXCLAMATION
+10A0..10C5 ; AL # Lu [38] GEORGIAN CAPITAL LETTER AN..GEORGIAN CAPITAL LETTER HOE
+10C7 ; AL # Lu GEORGIAN CAPITAL LETTER YN
+10CD ; AL # Lu GEORGIAN CAPITAL LETTER AEN
+10D0..10FA ; AL # Ll [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
+10FB ; AL # Po GEORGIAN PARAGRAPH SEPARATOR
+10FC ; AL # Lm MODIFIER LETTER GEORGIAN NAR
+10FD..10FF ; AL # Ll [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
+1100..115F ; JL # Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
+1160..11A7 ; JV # Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
+11A8..11FF ; JT # Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
+1200..1248 ; AL # Lo [73] ETHIOPIC SYLLABLE HA..ETHIOPIC SYLLABLE QWA
+124A..124D ; AL # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
+1250..1256 ; AL # Lo [7] ETHIOPIC SYLLABLE QHA..ETHIOPIC SYLLABLE QHO
+1258 ; AL # Lo ETHIOPIC SYLLABLE QHWA
+125A..125D ; AL # Lo [4] ETHIOPIC SYLLABLE QHWI..ETHIOPIC SYLLABLE QHWE
+1260..1288 ; AL # Lo [41] ETHIOPIC SYLLABLE BA..ETHIOPIC SYLLABLE XWA
+128A..128D ; AL # Lo [4] ETHIOPIC SYLLABLE XWI..ETHIOPIC SYLLABLE XWE
+1290..12B0 ; AL # Lo [33] ETHIOPIC SYLLABLE NA..ETHIOPIC SYLLABLE KWA
+12B2..12B5 ; AL # Lo [4] ETHIOPIC SYLLABLE KWI..ETHIOPIC SYLLABLE KWE
+12B8..12BE ; AL # Lo [7] ETHIOPIC SYLLABLE KXA..ETHIOPIC SYLLABLE KXO
+12C0 ; AL # Lo ETHIOPIC SYLLABLE KXWA
+12C2..12C5 ; AL # Lo [4] ETHIOPIC SYLLABLE KXWI..ETHIOPIC SYLLABLE KXWE
+12C8..12D6 ; AL # Lo [15] ETHIOPIC SYLLABLE WA..ETHIOPIC SYLLABLE PHARYNGEAL O
+12D8..1310 ; AL # Lo [57] ETHIOPIC SYLLABLE ZA..ETHIOPIC SYLLABLE GWA
+1312..1315 ; AL # Lo [4] ETHIOPIC SYLLABLE GWI..ETHIOPIC SYLLABLE GWE
+1318..135A ; AL # Lo [67] ETHIOPIC SYLLABLE GGA..ETHIOPIC SYLLABLE FYA
+135D..135F ; CM # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
+1360 ; AL # Po ETHIOPIC SECTION MARK
+1361 ; BA # Po ETHIOPIC WORDSPACE
+1362..1368 ; AL # Po [7] ETHIOPIC FULL STOP..ETHIOPIC PARAGRAPH SEPARATOR
+1369..137C ; AL # No [20] ETHIOPIC DIGIT ONE..ETHIOPIC NUMBER TEN THOUSAND
+1380..138F ; AL # Lo [16] ETHIOPIC SYLLABLE SEBATBEIT MWA..ETHIOPIC SYLLABLE PWE
+1390..1399 ; AL # So [10] ETHIOPIC TONAL MARK YIZET..ETHIOPIC TONAL MARK KURT
+13A0..13F5 ; AL # Lu [86] CHEROKEE LETTER A..CHEROKEE LETTER MV
+13F8..13FD ; AL # Ll [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
+1400 ; BA # Pd CANADIAN SYLLABICS HYPHEN
+1401..166C ; AL # Lo [620] CANADIAN SYLLABICS E..CANADIAN SYLLABICS CARRIER TTSA
+166D ; AL # So CANADIAN SYLLABICS CHI SIGN
+166E ; AL # Po CANADIAN SYLLABICS FULL STOP
+166F..167F ; AL # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
+1680 ; BA # Zs OGHAM SPACE MARK
+1681..169A ; AL # Lo [26] OGHAM LETTER BEITH..OGHAM LETTER PEITH
+169B ; OP # Ps OGHAM FEATHER MARK
+169C ; CL # Pe OGHAM REVERSED FEATHER MARK
+16A0..16EA ; AL # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
+16EB..16ED ; BA # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
+16EE..16F0 ; AL # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
+16F1..16F8 ; AL # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
+1700..1711 ; AL # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
+1712..1714 ; CM # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1715 ; CM # Mc TAGALOG SIGN PAMUDPOD
+171F ; AL # Lo TAGALOG LETTER ARCHAIC RA
+1720..1731 ; AL # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1732..1733 ; CM # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+1734 ; CM # Mc HANUNOO SIGN PAMUDPOD
+1735..1736 ; BA # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+1740..1751 ; AL # Lo [18] BUHID LETTER A..BUHID LETTER HA
+1752..1753 ; CM # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
+1760..176C ; AL # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
+176E..1770 ; AL # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
+1772..1773 ; CM # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
+1780..17B3 ; SA # Lo [52] KHMER LETTER KA..KHMER INDEPENDENT VOWEL QAU
+17B4..17B5 ; SA # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
+17B6 ; SA # Mc KHMER VOWEL SIGN AA
+17B7..17BD ; SA # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
+17BE..17C5 ; SA # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
+17C6 ; SA # Mn KHMER SIGN NIKAHIT
+17C7..17C8 ; SA # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
+17C9..17D3 ; SA # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
+17D4..17D5 ; BA # Po [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN
+17D6 ; NS # Po KHMER SIGN CAMNUC PII KUUH
+17D7 ; SA # Lm KHMER SIGN LEK TOO
+17D8 ; BA # Po KHMER SIGN BEYYAL
+17D9 ; AL # Po KHMER SIGN PHNAEK MUAN
+17DA ; BA # Po KHMER SIGN KOOMUUT
+17DB ; PR # Sc KHMER CURRENCY SYMBOL RIEL
+17DC ; SA # Lo KHMER SIGN AVAKRAHASANYA
+17DD ; SA # Mn KHMER SIGN ATTHACAN
+17E0..17E9 ; NU # Nd [10] KHMER DIGIT ZERO..KHMER DIGIT NINE
+17F0..17F9 ; AL # No [10] KHMER SYMBOL LEK ATTAK SON..KHMER SYMBOL LEK ATTAK PRAM-BUON
+1800..1801 ; AL # Po [2] MONGOLIAN BIRGA..MONGOLIAN ELLIPSIS
+1802..1803 ; EX # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
+1804..1805 ; BA # Po [2] MONGOLIAN COLON..MONGOLIAN FOUR DOTS
+1806 ; BB # Pd MONGOLIAN TODO SOFT HYPHEN
+1807 ; AL # Po MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER
+1808..1809 ; EX # Po [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP
+180A ; AL # Po MONGOLIAN NIRUGU
+180B..180D ; CM # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180E ; GL # Cf MONGOLIAN VOWEL SEPARATOR
+180F ; CM # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
+1810..1819 ; NU # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
+1820..1842 ; AL # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
+1843 ; AL # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
+1844..1878 ; AL # Lo [53] MONGOLIAN LETTER TODO E..MONGOLIAN LETTER CHA WITH TWO DOTS
+1880..1884 ; AL # Lo [5] MONGOLIAN LETTER ALI GALI ANUSVARA ONE..MONGOLIAN LETTER ALI GALI INVERTED UBADAMA
+1885..1886 ; CM # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
+1887..18A8 ; AL # Lo [34] MONGOLIAN LETTER ALI GALI A..MONGOLIAN LETTER MANCHU ALI GALI BHA
+18A9 ; CM # Mn MONGOLIAN LETTER ALI GALI DAGALGA
+18AA ; AL # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
+18B0..18F5 ; AL # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+1900..191E ; AL # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
+1920..1922 ; CM # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
+1923..1926 ; CM # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
+1927..1928 ; CM # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
+1929..192B ; CM # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
+1930..1931 ; CM # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
+1932 ; CM # Mn LIMBU SMALL LETTER ANUSVARA
+1933..1938 ; CM # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
+1939..193B ; CM # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
+1940 ; AL # So LIMBU SIGN LOO
+1944..1945 ; EX # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
+1946..194F ; NU # Nd [10] LIMBU DIGIT ZERO..LIMBU DIGIT NINE
+1950..196D ; SA # Lo [30] TAI LE LETTER KA..TAI LE LETTER AI
+1970..1974 ; SA # Lo [5] TAI LE LETTER TONE-2..TAI LE LETTER TONE-6
+1980..19AB ; SA # Lo [44] NEW TAI LUE LETTER HIGH QA..NEW TAI LUE LETTER LOW SUA
+19B0..19C9 ; SA # Lo [26] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE TONE MARK-2
+19D0..19D9 ; NU # Nd [10] NEW TAI LUE DIGIT ZERO..NEW TAI LUE DIGIT NINE
+19DA ; SA # No NEW TAI LUE THAM DIGIT ONE
+19DE..19DF ; SA # So [2] NEW TAI LUE SIGN LAE..NEW TAI LUE SIGN LAEV
+19E0..19FF ; AL # So [32] KHMER SYMBOL PATHAMASAT..KHMER SYMBOL DAP-PRAM ROC
+1A00..1A16 ; AL # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
+1A17..1A18 ; CM # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
+1A19..1A1A ; CM # Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
+1A1B ; CM # Mn BUGINESE VOWEL SIGN AE
+1A1E..1A1F ; AL # Po [2] BUGINESE PALLAWA..BUGINESE END OF SECTION
+1A20..1A54 ; SA # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
+1A55 ; SA # Mc TAI THAM CONSONANT SIGN MEDIAL RA
+1A56 ; SA # Mn TAI THAM CONSONANT SIGN MEDIAL LA
+1A57 ; SA # Mc TAI THAM CONSONANT SIGN LA TANG LAI
+1A58..1A5E ; SA # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
+1A60 ; SA # Mn TAI THAM SIGN SAKOT
+1A61 ; SA # Mc TAI THAM VOWEL SIGN A
+1A62 ; SA # Mn TAI THAM VOWEL SIGN MAI SAT
+1A63..1A64 ; SA # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA
+1A65..1A6C ; SA # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
+1A6D..1A72 ; SA # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
+1A73..1A7C ; SA # Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
+1A7F ; CM # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
+1A80..1A89 ; NU # Nd [10] TAI THAM HORA DIGIT ZERO..TAI THAM HORA DIGIT NINE
+1A90..1A99 ; NU # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE
+1AA0..1AA6 ; SA # Po [7] TAI THAM SIGN WIANG..TAI THAM SIGN REVERSED ROTATED RANA
+1AA7 ; SA # Lm TAI THAM SIGN MAI YAMOK
+1AA8..1AAD ; SA # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG
+1AB0..1ABD ; CM # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
+1ABE ; CM # Me COMBINING PARENTHESES OVERLAY
+1ABF..1ACE ; CM # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
+1B00..1B03 ; CM # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
+1B04 ; CM # Mc BALINESE SIGN BISAH
+1B05..1B33 ; AK # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
+1B34 ; CM # Mn BALINESE SIGN REREKAN
+1B35 ; CM # Mc BALINESE VOWEL SIGN TEDUNG
+1B36..1B3A ; CM # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
+1B3B ; CM # Mc BALINESE VOWEL SIGN RA REPA TEDUNG
+1B3C ; CM # Mn BALINESE VOWEL SIGN LA LENGA
+1B3D..1B41 ; CM # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
+1B42 ; CM # Mn BALINESE VOWEL SIGN PEPET
+1B43 ; CM # Mc BALINESE VOWEL SIGN PEPET TEDUNG
+1B44 ; VI # Mc BALINESE ADEG ADEG
+1B45..1B4C ; AK # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
+1B50..1B59 ; ID # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
+1B5A..1B5B ; BA # Po [2] BALINESE PANTI..BALINESE PAMADA
+1B5C ; ID # Po BALINESE WINDU
+1B5D..1B60 ; BA # Po [4] BALINESE CARIK PAMUNGKAH..BALINESE PAMENENG
+1B61..1B6A ; ID # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
+1B6B..1B73 ; CM # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
+1B74..1B7C ; ID # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D..1B7E ; BA # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
+1B80..1B81 ; CM # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
+1B82 ; CM # Mc SUNDANESE SIGN PANGWISAD
+1B83..1BA0 ; AL # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
+1BA1 ; CM # Mc SUNDANESE CONSONANT SIGN PAMINGKAL
+1BA2..1BA5 ; CM # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
+1BA6..1BA7 ; CM # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
+1BA8..1BA9 ; CM # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
+1BAA ; CM # Mc SUNDANESE SIGN PAMAAEH
+1BAB..1BAD ; CM # Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
+1BAE..1BAF ; AL # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
+1BB0..1BB9 ; NU # Nd [10] SUNDANESE DIGIT ZERO..SUNDANESE DIGIT NINE
+1BBA..1BBF ; AL # Lo [6] SUNDANESE AVAGRAHA..SUNDANESE LETTER FINAL M
+1BC0..1BE5 ; AS # Lo [38] BATAK LETTER A..BATAK LETTER U
+1BE6 ; CM # Mn BATAK SIGN TOMPI
+1BE7 ; CM # Mc BATAK VOWEL SIGN E
+1BE8..1BE9 ; CM # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
+1BEA..1BEC ; CM # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
+1BED ; CM # Mn BATAK VOWEL SIGN KARO O
+1BEE ; CM # Mc BATAK VOWEL SIGN U
+1BEF..1BF1 ; CM # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
+1BF2..1BF3 ; VF # Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
+1BFC..1BFF ; AL # Po [4] BATAK SYMBOL BINDU NA METEK..BATAK SYMBOL BINDU PANGOLAT
+1C00..1C23 ; AL # Lo [36] LEPCHA LETTER KA..LEPCHA LETTER A
+1C24..1C2B ; CM # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
+1C2C..1C33 ; CM # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
+1C34..1C35 ; CM # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
+1C36..1C37 ; CM # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
+1C3B..1C3F ; BA # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK
+1C40..1C49 ; NU # Nd [10] LEPCHA DIGIT ZERO..LEPCHA DIGIT NINE
+1C4D..1C4F ; AL # Lo [3] LEPCHA LETTER TTA..LEPCHA LETTER DDA
+1C50..1C59 ; NU # Nd [10] OL CHIKI DIGIT ZERO..OL CHIKI DIGIT NINE
+1C5A..1C77 ; AL # Lo [30] OL CHIKI LETTER LA..OL CHIKI LETTER OH
+1C78..1C7D ; AL # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD
+1C7E..1C7F ; BA # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
+1C80..1C88 ; AL # Ll [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
+1C90..1CBA ; AL # Lu [43] GEORGIAN MTAVRULI CAPITAL LETTER AN..GEORGIAN MTAVRULI CAPITAL LETTER AIN
+1CBD..1CBF ; AL # Lu [3] GEORGIAN MTAVRULI CAPITAL LETTER AEN..GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN
+1CC0..1CC7 ; AL # Po [8] SUNDANESE PUNCTUATION BINDU SURYA..SUNDANESE PUNCTUATION BINDU BA SATANGA
+1CD0..1CD2 ; CM # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
+1CD3 ; AL # Po VEDIC SIGN NIHSHVASA
+1CD4..1CE0 ; CM # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
+1CE1 ; CM # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
+1CE2..1CE8 ; CM # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
+1CE9..1CEC ; AL # Lo [4] VEDIC SIGN ANUSVARA ANTARGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
+1CED ; CM # Mn VEDIC SIGN TIRYAK
+1CEE..1CF3 ; AL # Lo [6] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ROTATED ARDHAVISARGA
+1CF4 ; CM # Mn VEDIC TONE CANDRA ABOVE
+1CF5..1CF6 ; AL # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
+1CF7 ; CM # Mc VEDIC SIGN ATIKRAMA
+1CF8..1CF9 ; CM # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
+1CFA ; AL # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
+1D00..1D2B ; AL # Ll [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
+1D2C..1D6A ; AL # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI
+1D6B..1D77 ; AL # Ll [13] LATIN SMALL LETTER UE..LATIN SMALL LETTER TURNED G
+1D78 ; AL # Lm MODIFIER LETTER CYRILLIC EN
+1D79..1D7F ; AL # Ll [7] LATIN SMALL LETTER INSULAR G..LATIN SMALL LETTER UPSILON WITH STROKE
+1D80..1D9A ; AL # Ll [27] LATIN SMALL LETTER B WITH PALATAL HOOK..LATIN SMALL LETTER EZH WITH RETROFLEX HOOK
+1D9B..1DBF ; AL # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+1DC0..1DCC ; CM # Mn [13] COMBINING DOTTED GRAVE ACCENT..COMBINING MACRON-BREVE
+1DCD ; GL # Mn COMBINING DOUBLE CIRCUMFLEX ABOVE
+1DCE..1DFB ; CM # Mn [46] COMBINING OGONEK ABOVE..COMBINING DELETION MARK
+1DFC ; GL # Mn COMBINING DOUBLE INVERTED BREVE BELOW
+1DFD..1DFF ; CM # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1E00..1EFF ; AL # L& [256] LATIN CAPITAL LETTER A WITH RING BELOW..LATIN SMALL LETTER Y WITH LOOP
+1F00..1F15 ; AL # L& [22] GREEK SMALL LETTER ALPHA WITH PSILI..GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+1F18..1F1D ; AL # Lu [6] GREEK CAPITAL LETTER EPSILON WITH PSILI..GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
+1F20..1F45 ; AL # L& [38] GREEK SMALL LETTER ETA WITH PSILI..GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+1F48..1F4D ; AL # Lu [6] GREEK CAPITAL LETTER OMICRON WITH PSILI..GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
+1F50..1F57 ; AL # Ll [8] GREEK SMALL LETTER UPSILON WITH PSILI..GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+1F59 ; AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA
+1F5B ; AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA
+1F5D ; AL # Lu GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA
+1F5F..1F7D ; AL # L& [31] GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI..GREEK SMALL LETTER OMEGA WITH OXIA
+1F80..1FB4 ; AL # L& [53] GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI..GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+1FB6..1FBC ; AL # L& [7] GREEK SMALL LETTER ALPHA WITH PERISPOMENI..GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI
+1FBD ; AL # Sk GREEK KORONIS
+1FBE ; AL # Ll GREEK PROSGEGRAMMENI
+1FBF..1FC1 ; AL # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+1FC2..1FC4 ; AL # Ll [3] GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+1FC6..1FCC ; AL # L& [7] GREEK SMALL LETTER ETA WITH PERISPOMENI..GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
+1FCD..1FCF ; AL # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+1FD0..1FD3 ; AL # Ll [4] GREEK SMALL LETTER IOTA WITH VRACHY..GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+1FD6..1FDB ; AL # L& [6] GREEK SMALL LETTER IOTA WITH PERISPOMENI..GREEK CAPITAL LETTER IOTA WITH OXIA
+1FDD..1FDF ; AL # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+1FE0..1FEC ; AL # L& [13] GREEK SMALL LETTER UPSILON WITH VRACHY..GREEK CAPITAL LETTER RHO WITH DASIA
+1FED..1FEF ; AL # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA
+1FF2..1FF4 ; AL # Ll [3] GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI..GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+1FF6..1FFC ; AL # L& [7] GREEK SMALL LETTER OMEGA WITH PERISPOMENI..GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+1FFD ; BB # Sk GREEK OXIA
+1FFE ; AL # Sk GREEK DASIA
+2000..2006 ; BA # Zs [7] EN QUAD..SIX-PER-EM SPACE
+2007 ; GL # Zs FIGURE SPACE
+2008..200A ; BA # Zs [3] PUNCTUATION SPACE..HAIR SPACE
+200B ; ZW # Cf ZERO WIDTH SPACE
+200C ; CM # Cf ZERO WIDTH NON-JOINER
+200D ; ZWJ# Cf ZERO WIDTH JOINER
+200E..200F ; CM # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
+2010 ; BA # Pd HYPHEN
+2011 ; GL # Pd NON-BREAKING HYPHEN
+2012..2013 ; BA # Pd [2] FIGURE DASH..EN DASH
+2014 ; B2 # Pd EM DASH
+2015 ; AI # Pd HORIZONTAL BAR
+2016 ; AI # Po DOUBLE VERTICAL LINE
+2017 ; AL # Po DOUBLE LOW LINE
+2018 ; QU # Pi LEFT SINGLE QUOTATION MARK
+2019 ; QU # Pf RIGHT SINGLE QUOTATION MARK
+201A ; OP # Ps SINGLE LOW-9 QUOTATION MARK
+201B..201C ; QU # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK
+201D ; QU # Pf RIGHT DOUBLE QUOTATION MARK
+201E ; OP # Ps DOUBLE LOW-9 QUOTATION MARK
+201F ; QU # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK
+2020..2021 ; AI # Po [2] DAGGER..DOUBLE DAGGER
+2022..2023 ; AL # Po [2] BULLET..TRIANGULAR BULLET
+2024..2026 ; IN # Po [3] ONE DOT LEADER..HORIZONTAL ELLIPSIS
+2027 ; BA # Po HYPHENATION POINT
+2028 ; BK # Zl LINE SEPARATOR
+2029 ; BK # Zp PARAGRAPH SEPARATOR
+202A..202E ; CM # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
+202F ; GL # Zs NARROW NO-BREAK SPACE
+2030..2037 ; PO # Po [8] PER MILLE SIGN..REVERSED TRIPLE PRIME
+2038 ; AL # Po CARET
+2039 ; QU # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+203A ; QU # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+203B ; AI # Po REFERENCE MARK
+203C..203D ; NS # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
+203E ; AL # Po OVERLINE
+203F..2040 ; AL # Pc [2] UNDERTIE..CHARACTER TIE
+2041..2043 ; AL # Po [3] CARET INSERTION POINT..HYPHEN BULLET
+2044 ; IS # Sm FRACTION SLASH
+2045 ; OP # Ps LEFT SQUARE BRACKET WITH QUILL
+2046 ; CL # Pe RIGHT SQUARE BRACKET WITH QUILL
+2047..2049 ; NS # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+204A..2051 ; AL # Po [8] TIRONIAN SIGN ET..TWO ASTERISKS ALIGNED VERTICALLY
+2052 ; AL # Sm COMMERCIAL MINUS SIGN
+2053 ; AL # Po SWUNG DASH
+2054 ; AL # Pc INVERTED UNDERTIE
+2055 ; AL # Po FLOWER PUNCTUATION MARK
+2056 ; BA # Po THREE DOT PUNCTUATION
+2057 ; PO # Po QUADRUPLE PRIME
+2058..205B ; BA # Po [4] FOUR DOT PUNCTUATION..FOUR DOT MARK
+205C ; AL # Po DOTTED CROSS
+205D..205E ; BA # Po [2] TRICOLON..VERTICAL FOUR DOTS
+205F ; BA # Zs MEDIUM MATHEMATICAL SPACE
+2060 ; WJ # Cf WORD JOINER
+2061..2064 ; AL # Cf [4] FUNCTION APPLICATION..INVISIBLE PLUS
+2066..206F ; CM # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
+2070 ; AL # No SUPERSCRIPT ZERO
+2071 ; AL # Lm SUPERSCRIPT LATIN SMALL LETTER I
+2074 ; AI # No SUPERSCRIPT FOUR
+2075..2079 ; AL # No [5] SUPERSCRIPT FIVE..SUPERSCRIPT NINE
+207A..207C ; AL # Sm [3] SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+207D ; OP # Ps SUPERSCRIPT LEFT PARENTHESIS
+207E ; CL # Pe SUPERSCRIPT RIGHT PARENTHESIS
+207F ; AI # Lm SUPERSCRIPT LATIN SMALL LETTER N
+2080 ; AL # No SUBSCRIPT ZERO
+2081..2084 ; AI # No [4] SUBSCRIPT ONE..SUBSCRIPT FOUR
+2085..2089 ; AL # No [5] SUBSCRIPT FIVE..SUBSCRIPT NINE
+208A..208C ; AL # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+208D ; OP # Ps SUBSCRIPT LEFT PARENTHESIS
+208E ; CL # Pe SUBSCRIPT RIGHT PARENTHESIS
+2090..209C ; AL # Lm [13] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+20A0..20A6 ; PR # Sc [7] EURO-CURRENCY SIGN..NAIRA SIGN
+20A7 ; PO # Sc PESETA SIGN
+20A8..20B5 ; PR # Sc [14] RUPEE SIGN..CEDI SIGN
+20B6 ; PO # Sc LIVRE TOURNOIS SIGN
+20B7..20BA ; PR # Sc [4] SPESMILO SIGN..TURKISH LIRA SIGN
+20BB ; PO # Sc NORDIC MARK SIGN
+20BC..20BD ; PR # Sc [2] MANAT SIGN..RUBLE SIGN
+20BE ; PO # Sc LARI SIGN
+20BF ; PR # Sc BITCOIN SIGN
+20C0 ; PO # Sc SOM SIGN
+20C1..20CF ; PR # Cn [15] <reserved-20C1>..<reserved-20CF>
+20D0..20DC ; CM # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
+20DD..20E0 ; CM # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
+20E1 ; CM # Mn COMBINING LEFT RIGHT ARROW ABOVE
+20E2..20E4 ; CM # Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
+20E5..20F0 ; CM # Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
+2100..2101 ; AL # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
+2102 ; AL # Lu DOUBLE-STRUCK CAPITAL C
+2103 ; PO # So DEGREE CELSIUS
+2104 ; AL # So CENTRE LINE SYMBOL
+2105 ; AI # So CARE OF
+2106 ; AL # So CADA UNA
+2107 ; AL # Lu EULER CONSTANT
+2108 ; AL # So SCRUPLE
+2109 ; PO # So DEGREE FAHRENHEIT
+210A..2112 ; AL # L& [9] SCRIPT SMALL G..SCRIPT CAPITAL L
+2113 ; AI # Ll SCRIPT SMALL L
+2114 ; AL # So L B BAR SYMBOL
+2115 ; AL # Lu DOUBLE-STRUCK CAPITAL N
+2116 ; PR # So NUMERO SIGN
+2117 ; AL # So SOUND RECORDING COPYRIGHT
+2118 ; AL # Sm SCRIPT CAPITAL P
+2119..211D ; AL # Lu [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+211E..2120 ; AL # So [3] PRESCRIPTION TAKE..SERVICE MARK
+2121..2122 ; AI # So [2] TELEPHONE SIGN..TRADE MARK SIGN
+2123 ; AL # So VERSICLE
+2124 ; AL # Lu DOUBLE-STRUCK CAPITAL Z
+2125 ; AL # So OUNCE SIGN
+2126 ; AL # Lu OHM SIGN
+2127 ; AL # So INVERTED OHM SIGN
+2128 ; AL # Lu BLACK-LETTER CAPITAL Z
+2129 ; AL # So TURNED GREEK SMALL LETTER IOTA
+212A ; AL # Lu KELVIN SIGN
+212B ; AI # Lu ANGSTROM SIGN
+212C..212D ; AL # Lu [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C
+212E ; AL # So ESTIMATED SYMBOL
+212F..2134 ; AL # L& [6] SCRIPT SMALL E..SCRIPT SMALL O
+2135..2138 ; AL # Lo [4] ALEF SYMBOL..DALET SYMBOL
+2139 ; AL # Ll INFORMATION SOURCE
+213A..213B ; AL # So [2] ROTATED CAPITAL Q..FACSIMILE SIGN
+213C..213F ; AL # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+2140..2144 ; AL # Sm [5] DOUBLE-STRUCK N-ARY SUMMATION..TURNED SANS-SERIF CAPITAL Y
+2145..2149 ; AL # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+214A ; AL # So PROPERTY LINE
+214B ; AL # Sm TURNED AMPERSAND
+214C..214D ; AL # So [2] PER SIGN..AKTIESELSKAB
+214E ; AL # Ll TURNED SMALL F
+214F ; AL # So SYMBOL FOR SAMARITAN SOURCE
+2150..2153 ; AL # No [4] VULGAR FRACTION ONE SEVENTH..VULGAR FRACTION ONE THIRD
+2154..2155 ; AI # No [2] VULGAR FRACTION TWO THIRDS..VULGAR FRACTION ONE FIFTH
+2156..215A ; AL # No [5] VULGAR FRACTION TWO FIFTHS..VULGAR FRACTION FIVE SIXTHS
+215B ; AI # No VULGAR FRACTION ONE EIGHTH
+215C..215D ; AL # No [2] VULGAR FRACTION THREE EIGHTHS..VULGAR FRACTION FIVE EIGHTHS
+215E ; AI # No VULGAR FRACTION SEVEN EIGHTHS
+215F ; AL # No FRACTION NUMERATOR ONE
+2160..216B ; AI # Nl [12] ROMAN NUMERAL ONE..ROMAN NUMERAL TWELVE
+216C..216F ; AL # Nl [4] ROMAN NUMERAL FIFTY..ROMAN NUMERAL ONE THOUSAND
+2170..2179 ; AI # Nl [10] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL TEN
+217A..2182 ; AL # Nl [9] SMALL ROMAN NUMERAL ELEVEN..ROMAN NUMERAL TEN THOUSAND
+2183..2184 ; AL # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
+2185..2188 ; AL # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
+2189 ; AI # No VULGAR FRACTION ZERO THIRDS
+218A..218B ; AL # So [2] TURNED DIGIT TWO..TURNED DIGIT THREE
+2190..2194 ; AI # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW
+2195..2199 ; AI # So [5] UP DOWN ARROW..SOUTH WEST ARROW
+219A..219B ; AL # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE
+219C..219F ; AL # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW
+21A0 ; AL # Sm RIGHTWARDS TWO HEADED ARROW
+21A1..21A2 ; AL # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL
+21A3 ; AL # Sm RIGHTWARDS ARROW WITH TAIL
+21A4..21A5 ; AL # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR
+21A6 ; AL # Sm RIGHTWARDS ARROW FROM BAR
+21A7..21AD ; AL # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW
+21AE ; AL # Sm LEFT RIGHT ARROW WITH STROKE
+21AF..21CD ; AL # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE
+21CE..21CF ; AL # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE
+21D0..21D1 ; AL # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW
+21D2 ; AI # Sm RIGHTWARDS DOUBLE ARROW
+21D3 ; AL # So DOWNWARDS DOUBLE ARROW
+21D4 ; AI # Sm LEFT RIGHT DOUBLE ARROW
+21D5..21F3 ; AL # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW
+21F4..21FF ; AL # Sm [12] RIGHT ARROW WITH SMALL CIRCLE..LEFT RIGHT OPEN-HEADED ARROW
+2200 ; AI # Sm FOR ALL
+2201 ; AL # Sm COMPLEMENT
+2202..2203 ; AI # Sm [2] PARTIAL DIFFERENTIAL..THERE EXISTS
+2204..2206 ; AL # Sm [3] THERE DOES NOT EXIST..INCREMENT
+2207..2208 ; AI # Sm [2] NABLA..ELEMENT OF
+2209..220A ; AL # Sm [2] NOT AN ELEMENT OF..SMALL ELEMENT OF
+220B ; AI # Sm CONTAINS AS MEMBER
+220C..220E ; AL # Sm [3] DOES NOT CONTAIN AS MEMBER..END OF PROOF
+220F ; AI # Sm N-ARY PRODUCT
+2210 ; AL # Sm N-ARY COPRODUCT
+2211 ; AI # Sm N-ARY SUMMATION
+2212..2213 ; PR # Sm [2] MINUS SIGN..MINUS-OR-PLUS SIGN
+2214 ; AL # Sm DOT PLUS
+2215 ; AI # Sm DIVISION SLASH
+2216..2219 ; AL # Sm [4] SET MINUS..BULLET OPERATOR
+221A ; AI # Sm SQUARE ROOT
+221B..221C ; AL # Sm [2] CUBE ROOT..FOURTH ROOT
+221D..2220 ; AI # Sm [4] PROPORTIONAL TO..ANGLE
+2221..2222 ; AL # Sm [2] MEASURED ANGLE..SPHERICAL ANGLE
+2223 ; AI # Sm DIVIDES
+2224 ; AL # Sm DOES NOT DIVIDE
+2225 ; AI # Sm PARALLEL TO
+2226 ; AL # Sm NOT PARALLEL TO
+2227..222C ; AI # Sm [6] LOGICAL AND..DOUBLE INTEGRAL
+222D ; AL # Sm TRIPLE INTEGRAL
+222E ; AI # Sm CONTOUR INTEGRAL
+222F..2233 ; AL # Sm [5] SURFACE INTEGRAL..ANTICLOCKWISE CONTOUR INTEGRAL
+2234..2237 ; AI # Sm [4] THEREFORE..PROPORTION
+2238..223B ; AL # Sm [4] DOT MINUS..HOMOTHETIC
+223C..223D ; AI # Sm [2] TILDE OPERATOR..REVERSED TILDE
+223E..2247 ; AL # Sm [10] INVERTED LAZY S..NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
+2248 ; AI # Sm ALMOST EQUAL TO
+2249..224B ; AL # Sm [3] NOT ALMOST EQUAL TO..TRIPLE TILDE
+224C ; AI # Sm ALL EQUAL TO
+224D..2251 ; AL # Sm [5] EQUIVALENT TO..GEOMETRICALLY EQUAL TO
+2252 ; AI # Sm APPROXIMATELY EQUAL TO OR THE IMAGE OF
+2253..225F ; AL # Sm [13] IMAGE OF OR APPROXIMATELY EQUAL TO..QUESTIONED EQUAL TO
+2260..2261 ; AI # Sm [2] NOT EQUAL TO..IDENTICAL TO
+2262..2263 ; AL # Sm [2] NOT IDENTICAL TO..STRICTLY EQUIVALENT TO
+2264..2267 ; AI # Sm [4] LESS-THAN OR EQUAL TO..GREATER-THAN OVER EQUAL TO
+2268..2269 ; AL # Sm [2] LESS-THAN BUT NOT EQUAL TO..GREATER-THAN BUT NOT EQUAL TO
+226A..226B ; AI # Sm [2] MUCH LESS-THAN..MUCH GREATER-THAN
+226C..226D ; AL # Sm [2] BETWEEN..NOT EQUIVALENT TO
+226E..226F ; AI # Sm [2] NOT LESS-THAN..NOT GREATER-THAN
+2270..2281 ; AL # Sm [18] NEITHER LESS-THAN NOR EQUAL TO..DOES NOT SUCCEED
+2282..2283 ; AI # Sm [2] SUBSET OF..SUPERSET OF
+2284..2285 ; AL # Sm [2] NOT A SUBSET OF..NOT A SUPERSET OF
+2286..2287 ; AI # Sm [2] SUBSET OF OR EQUAL TO..SUPERSET OF OR EQUAL TO
+2288..2294 ; AL # Sm [13] NEITHER A SUBSET OF NOR EQUAL TO..SQUARE CUP
+2295 ; AI # Sm CIRCLED PLUS
+2296..2298 ; AL # Sm [3] CIRCLED MINUS..CIRCLED DIVISION SLASH
+2299 ; AI # Sm CIRCLED DOT OPERATOR
+229A..22A4 ; AL # Sm [11] CIRCLED RING OPERATOR..DOWN TACK
+22A5 ; AI # Sm UP TACK
+22A6..22BE ; AL # Sm [25] ASSERTION..RIGHT ANGLE WITH ARC
+22BF ; AI # Sm RIGHT TRIANGLE
+22C0..22EE ; AL # Sm [47] N-ARY LOGICAL AND..VERTICAL ELLIPSIS
+22EF ; IN # Sm MIDLINE HORIZONTAL ELLIPSIS
+22F0..22FF ; AL # Sm [16] UP RIGHT DIAGONAL ELLIPSIS..Z NOTATION BAG MEMBERSHIP
+2300..2307 ; AL # So [8] DIAMETER SIGN..WAVY LINE
+2308 ; OP # Ps LEFT CEILING
+2309 ; CL # Pe RIGHT CEILING
+230A ; OP # Ps LEFT FLOOR
+230B ; CL # Pe RIGHT FLOOR
+230C..2311 ; AL # So [6] BOTTOM RIGHT CROP..SQUARE LOZENGE
+2312 ; AI # So ARC
+2313..2319 ; AL # So [7] SEGMENT..TURNED NOT SIGN
+231A..231B ; ID # So [2] WATCH..HOURGLASS
+231C..231F ; AL # So [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER
+2320..2321 ; AL # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL
+2322..2328 ; AL # So [7] FROWN..KEYBOARD
+2329 ; OP # Ps LEFT-POINTING ANGLE BRACKET
+232A ; CL # Pe RIGHT-POINTING ANGLE BRACKET
+232B..237B ; AL # So [81] ERASE TO THE LEFT..NOT CHECK MARK
+237C ; AL # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW
+237D..239A ; AL # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL
+239B..23B3 ; AL # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM
+23B4..23DB ; AL # So [40] TOP SQUARE BRACKET..FUSE
+23DC..23E1 ; AL # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET
+23E2..23EF ; AL # So [14] WHITE TRAPEZIUM..BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
+23F0..23F3 ; ID # So [4] ALARM CLOCK..HOURGLASS WITH FLOWING SAND
+23F4..23FF ; AL # So [12] BLACK MEDIUM LEFT-POINTING TRIANGLE..OBSERVER EYE SYMBOL
+2400..2426 ; AL # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO
+2440..244A ; AL # So [11] OCR HOOK..OCR DOUBLE BACKSLASH
+2460..249B ; AI # No [60] CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+249C..24E9 ; AI # So [78] PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+24EA..24FE ; AI # No [21] CIRCLED DIGIT ZERO..DOUBLE CIRCLED NUMBER TEN
+24FF ; AL # No NEGATIVE CIRCLED DIGIT ZERO
+2500..254B ; AI # So [76] BOX DRAWINGS LIGHT HORIZONTAL..BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+254C..254F ; AL # So [4] BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL..BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL
+2550..2574 ; AI # So [37] BOX DRAWINGS DOUBLE HORIZONTAL..BOX DRAWINGS LIGHT LEFT
+2575..257F ; AL # So [11] BOX DRAWINGS LIGHT UP..BOX DRAWINGS HEAVY UP AND LIGHT DOWN
+2580..258F ; AI # So [16] UPPER HALF BLOCK..LEFT ONE EIGHTH BLOCK
+2590..2591 ; AL # So [2] RIGHT HALF BLOCK..LIGHT SHADE
+2592..2595 ; AI # So [4] MEDIUM SHADE..RIGHT ONE EIGHTH BLOCK
+2596..259F ; AL # So [10] QUADRANT LOWER LEFT..QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT
+25A0..25A1 ; AI # So [2] BLACK SQUARE..WHITE SQUARE
+25A2 ; AL # So WHITE SQUARE WITH ROUNDED CORNERS
+25A3..25A9 ; AI # So [7] WHITE SQUARE CONTAINING BLACK SMALL SQUARE..SQUARE WITH DIAGONAL CROSSHATCH FILL
+25AA..25B1 ; AL # So [8] BLACK SMALL SQUARE..WHITE PARALLELOGRAM
+25B2..25B3 ; AI # So [2] BLACK UP-POINTING TRIANGLE..WHITE UP-POINTING TRIANGLE
+25B4..25B5 ; AL # So [2] BLACK UP-POINTING SMALL TRIANGLE..WHITE UP-POINTING SMALL TRIANGLE
+25B6 ; AI # So BLACK RIGHT-POINTING TRIANGLE
+25B7 ; AI # Sm WHITE RIGHT-POINTING TRIANGLE
+25B8..25BB ; AL # So [4] BLACK RIGHT-POINTING SMALL TRIANGLE..WHITE RIGHT-POINTING POINTER
+25BC..25BD ; AI # So [2] BLACK DOWN-POINTING TRIANGLE..WHITE DOWN-POINTING TRIANGLE
+25BE..25BF ; AL # So [2] BLACK DOWN-POINTING SMALL TRIANGLE..WHITE DOWN-POINTING SMALL TRIANGLE
+25C0 ; AI # So BLACK LEFT-POINTING TRIANGLE
+25C1 ; AI # Sm WHITE LEFT-POINTING TRIANGLE
+25C2..25C5 ; AL # So [4] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE LEFT-POINTING POINTER
+25C6..25C8 ; AI # So [3] BLACK DIAMOND..WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND
+25C9..25CA ; AL # So [2] FISHEYE..LOZENGE
+25CB ; AI # So WHITE CIRCLE
+25CC..25CD ; AL # So [2] DOTTED CIRCLE..CIRCLE WITH VERTICAL FILL
+25CE..25D1 ; AI # So [4] BULLSEYE..CIRCLE WITH RIGHT HALF BLACK
+25D2..25E1 ; AL # So [16] CIRCLE WITH LOWER HALF BLACK..LOWER HALF CIRCLE
+25E2..25E5 ; AI # So [4] BLACK LOWER RIGHT TRIANGLE..BLACK UPPER RIGHT TRIANGLE
+25E6..25EE ; AL # So [9] WHITE BULLET..UP-POINTING TRIANGLE WITH RIGHT HALF BLACK
+25EF ; AI # So LARGE CIRCLE
+25F0..25F7 ; AL # So [8] WHITE SQUARE WITH UPPER LEFT QUADRANT..WHITE CIRCLE WITH UPPER RIGHT QUADRANT
+25F8..25FF ; AL # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE
+2600..2603 ; ID # So [4] BLACK SUN WITH RAYS..SNOWMAN
+2604 ; AL # So COMET
+2605..2606 ; AI # So [2] BLACK STAR..WHITE STAR
+2607..2608 ; AL # So [2] LIGHTNING..THUNDERSTORM
+2609 ; AI # So SUN
+260A..260D ; AL # So [4] ASCENDING NODE..OPPOSITION
+260E..260F ; AI # So [2] BLACK TELEPHONE..WHITE TELEPHONE
+2610..2613 ; AL # So [4] BALLOT BOX..SALTIRE
+2614..2615 ; ID # So [2] UMBRELLA WITH RAIN DROPS..HOT BEVERAGE
+2616..2617 ; AI # So [2] WHITE SHOGI PIECE..BLACK SHOGI PIECE
+2618 ; ID # So SHAMROCK
+2619 ; AL # So REVERSED ROTATED FLORAL HEART BULLET
+261A..261C ; ID # So [3] BLACK LEFT POINTING INDEX..WHITE LEFT POINTING INDEX
+261D ; EB # So WHITE UP POINTING INDEX
+261E..261F ; ID # So [2] WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX
+2620..2638 ; AL # So [25] SKULL AND CROSSBONES..WHEEL OF DHARMA
+2639..263B ; ID # So [3] WHITE FROWNING FACE..BLACK SMILING FACE
+263C..263F ; AL # So [4] WHITE SUN WITH RAYS..MERCURY
+2640 ; AI # So FEMALE SIGN
+2641 ; AL # So EARTH
+2642 ; AI # So MALE SIGN
+2643..265F ; AL # So [29] JUPITER..BLACK CHESS PAWN
+2660..2661 ; AI # So [2] BLACK SPADE SUIT..WHITE HEART SUIT
+2662 ; AL # So WHITE DIAMOND SUIT
+2663..2665 ; AI # So [3] BLACK CLUB SUIT..BLACK HEART SUIT
+2666 ; AL # So BLACK DIAMOND SUIT
+2667 ; AI # So WHITE CLUB SUIT
+2668 ; ID # So HOT SPRINGS
+2669..266A ; AI # So [2] QUARTER NOTE..EIGHTH NOTE
+266B ; AL # So BEAMED EIGHTH NOTES
+266C..266D ; AI # So [2] BEAMED SIXTEENTH NOTES..MUSIC FLAT SIGN
+266E ; AL # So MUSIC NATURAL SIGN
+266F ; AI # Sm MUSIC SHARP SIGN
+2670..267E ; AL # So [15] WEST SYRIAC CROSS..PERMANENT PAPER SIGN
+267F ; ID # So WHEELCHAIR SYMBOL
+2680..269D ; AL # So [30] DIE FACE-1..OUTLINED WHITE STAR
+269E..269F ; AI # So [2] THREE LINES CONVERGING RIGHT..THREE LINES CONVERGING LEFT
+26A0..26BC ; AL # So [29] WARNING SIGN..SESQUIQUADRATE
+26BD..26C8 ; ID # So [12] SOCCER BALL..THUNDER CLOUD AND RAIN
+26C9..26CC ; AI # So [4] TURNED WHITE SHOGI PIECE..CROSSING LANES
+26CD ; ID # So DISABLED CAR
+26CE ; AL # So OPHIUCHUS
+26CF..26D1 ; ID # So [3] PICK..HELMET WITH WHITE CROSS
+26D2 ; AI # So CIRCLED CROSSING LANES
+26D3..26D4 ; ID # So [2] CHAINS..NO ENTRY
+26D5..26D7 ; AI # So [3] ALTERNATE ONE-WAY LEFT WAY TRAFFIC..WHITE TWO-WAY LEFT WAY TRAFFIC
+26D8..26D9 ; ID # So [2] BLACK LEFT LANE MERGE..WHITE LEFT LANE MERGE
+26DA..26DB ; AI # So [2] DRIVE SLOW SIGN..HEAVY WHITE DOWN-POINTING TRIANGLE
+26DC ; ID # So LEFT CLOSED ENTRY
+26DD..26DE ; AI # So [2] SQUARED SALTIRE..FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
+26DF..26E1 ; ID # So [3] BLACK TRUCK..RESTRICTED LEFT ENTRY-2
+26E2 ; AL # So ASTRONOMICAL SYMBOL FOR URANUS
+26E3 ; AI # So HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
+26E4..26E7 ; AL # So [4] PENTAGRAM..INVERTED PENTAGRAM
+26E8..26E9 ; AI # So [2] BLACK CROSS ON SHIELD..SHINTO SHRINE
+26EA ; ID # So CHURCH
+26EB..26F0 ; AI # So [6] CASTLE..MOUNTAIN
+26F1..26F5 ; ID # So [5] UMBRELLA ON GROUND..SAILBOAT
+26F6 ; AI # So SQUARE FOUR CORNERS
+26F7..26F8 ; ID # So [2] SKIER..ICE SKATE
+26F9 ; EB # So PERSON WITH BALL
+26FA ; ID # So TENT
+26FB..26FC ; AI # So [2] JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL
+26FD..26FF ; ID # So [3] FUEL PUMP..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+2700..2704 ; ID # So [5] BLACK SAFETY SCISSORS..WHITE SCISSORS
+2705..2707 ; AL # So [3] WHITE HEAVY CHECK MARK..TAPE DRIVE
+2708..2709 ; ID # So [2] AIRPLANE..ENVELOPE
+270A..270D ; EB # So [4] RAISED FIST..WRITING HAND
+270E..2756 ; AL # So [73] LOWER RIGHT PENCIL..BLACK DIAMOND MINUS WHITE X
+2757 ; AI # So HEAVY EXCLAMATION MARK SYMBOL
+2758..275A ; AL # So [3] LIGHT VERTICAL BAR..HEAVY VERTICAL BAR
+275B..2760 ; QU # So [6] HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT..HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+2761 ; AL # So CURVED STEM PARAGRAPH SIGN ORNAMENT
+2762..2763 ; EX # So [2] HEAVY EXCLAMATION MARK ORNAMENT..HEAVY HEART EXCLAMATION MARK ORNAMENT
+2764 ; ID # So HEAVY BLACK HEART
+2765..2767 ; AL # So [3] ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
+2768 ; OP # Ps MEDIUM LEFT PARENTHESIS ORNAMENT
+2769 ; CL # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT
+276A ; OP # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
+276B ; CL # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
+276C ; OP # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
+276D ; CL # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
+276E ; OP # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
+276F ; CL # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
+2770 ; OP # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
+2771 ; CL # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
+2772 ; OP # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
+2773 ; CL # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
+2774 ; OP # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT
+2775 ; CL # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT
+2776..2793 ; AI # No [30] DINGBAT NEGATIVE CIRCLED DIGIT ONE..DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+2794..27BF ; AL # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP
+27C0..27C4 ; AL # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET
+27C5 ; OP # Ps LEFT S-SHAPED BAG DELIMITER
+27C6 ; CL # Pe RIGHT S-SHAPED BAG DELIMITER
+27C7..27E5 ; AL # Sm [31] OR WITH DOT INSIDE..WHITE SQUARE WITH RIGHTWARDS TICK
+27E6 ; OP # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET
+27E7 ; CL # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET
+27E8 ; OP # Ps MATHEMATICAL LEFT ANGLE BRACKET
+27E9 ; CL # Pe MATHEMATICAL RIGHT ANGLE BRACKET
+27EA ; OP # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
+27EB ; CL # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
+27EC ; OP # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
+27ED ; CL # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
+27EE ; OP # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS
+27EF ; CL # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS
+27F0..27FF ; AL # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW
+2800..28FF ; AL # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678
+2900..297F ; AL # Sm [128] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..DOWN FISH TAIL
+2980..2982 ; AL # Sm [3] TRIPLE VERTICAL BAR DELIMITER..Z NOTATION TYPE COLON
+2983 ; OP # Ps LEFT WHITE CURLY BRACKET
+2984 ; CL # Pe RIGHT WHITE CURLY BRACKET
+2985 ; OP # Ps LEFT WHITE PARENTHESIS
+2986 ; CL # Pe RIGHT WHITE PARENTHESIS
+2987 ; OP # Ps Z NOTATION LEFT IMAGE BRACKET
+2988 ; CL # Pe Z NOTATION RIGHT IMAGE BRACKET
+2989 ; OP # Ps Z NOTATION LEFT BINDING BRACKET
+298A ; CL # Pe Z NOTATION RIGHT BINDING BRACKET
+298B ; OP # Ps LEFT SQUARE BRACKET WITH UNDERBAR
+298C ; CL # Pe RIGHT SQUARE BRACKET WITH UNDERBAR
+298D ; OP # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
+298E ; CL # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+298F ; OP # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
+2990 ; CL # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
+2991 ; OP # Ps LEFT ANGLE BRACKET WITH DOT
+2992 ; CL # Pe RIGHT ANGLE BRACKET WITH DOT
+2993 ; OP # Ps LEFT ARC LESS-THAN BRACKET
+2994 ; CL # Pe RIGHT ARC GREATER-THAN BRACKET
+2995 ; OP # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET
+2996 ; CL # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET
+2997 ; OP # Ps LEFT BLACK TORTOISE SHELL BRACKET
+2998 ; CL # Pe RIGHT BLACK TORTOISE SHELL BRACKET
+2999..29D7 ; AL # Sm [63] DOTTED FENCE..BLACK HOURGLASS
+29D8 ; OP # Ps LEFT WIGGLY FENCE
+29D9 ; CL # Pe RIGHT WIGGLY FENCE
+29DA ; OP # Ps LEFT DOUBLE WIGGLY FENCE
+29DB ; CL # Pe RIGHT DOUBLE WIGGLY FENCE
+29DC..29FB ; AL # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS
+29FC ; OP # Ps LEFT-POINTING CURVED ANGLE BRACKET
+29FD ; CL # Pe RIGHT-POINTING CURVED ANGLE BRACKET
+29FE..29FF ; AL # Sm [2] TINY..MINY
+2A00..2AFF ; AL # Sm [256] N-ARY CIRCLED DOT OPERATOR..N-ARY WHITE VERTICAL BAR
+2B00..2B2F ; AL # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE
+2B30..2B44 ; AL # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET
+2B45..2B46 ; AL # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW
+2B47..2B4C ; AL # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
+2B4D..2B54 ; AL # So [8] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..WHITE RIGHT-POINTING PENTAGON
+2B55..2B59 ; AI # So [5] HEAVY LARGE CIRCLE..HEAVY CIRCLED SALTIRE
+2B5A..2B73 ; AL # So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR
+2B76..2B95 ; AL # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW
+2B97..2BFF ; AL # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL
+2C00..2C5F ; AL # L& [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
+2C60..2C7B ; AL # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C7C..2C7D ; AL # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+2C7E..2C7F ; AL # Lu [2] LATIN CAPITAL LETTER S WITH SWASH TAIL..LATIN CAPITAL LETTER Z WITH SWASH TAIL
+2C80..2CE4 ; AL # L& [101] COPTIC CAPITAL LETTER ALFA..COPTIC SYMBOL KAI
+2CE5..2CEA ; AL # So [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA
+2CEB..2CEE ; AL # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
+2CEF..2CF1 ; CM # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
+2CF2..2CF3 ; AL # L& [2] COPTIC CAPITAL LETTER BOHAIRIC KHEI..COPTIC SMALL LETTER BOHAIRIC KHEI
+2CF9 ; EX # Po COPTIC OLD NUBIAN FULL STOP
+2CFA..2CFC ; BA # Po [3] COPTIC OLD NUBIAN DIRECT QUESTION MARK..COPTIC OLD NUBIAN VERSE DIVIDER
+2CFD ; AL # No COPTIC FRACTION ONE HALF
+2CFE ; EX # Po COPTIC FULL STOP
+2CFF ; BA # Po COPTIC MORPHOLOGICAL DIVIDER
+2D00..2D25 ; AL # Ll [38] GEORGIAN SMALL LETTER AN..GEORGIAN SMALL LETTER HOE
+2D27 ; AL # Ll GEORGIAN SMALL LETTER YN
+2D2D ; AL # Ll GEORGIAN SMALL LETTER AEN
+2D30..2D67 ; AL # Lo [56] TIFINAGH LETTER YA..TIFINAGH LETTER YO
+2D6F ; AL # Lm TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+2D70 ; BA # Po TIFINAGH SEPARATOR MARK
+2D7F ; CM # Mn TIFINAGH CONSONANT JOINER
+2D80..2D96 ; AL # Lo [23] ETHIOPIC SYLLABLE LOA..ETHIOPIC SYLLABLE GGWE
+2DA0..2DA6 ; AL # Lo [7] ETHIOPIC SYLLABLE SSA..ETHIOPIC SYLLABLE SSO
+2DA8..2DAE ; AL # Lo [7] ETHIOPIC SYLLABLE CCA..ETHIOPIC SYLLABLE CCO
+2DB0..2DB6 ; AL # Lo [7] ETHIOPIC SYLLABLE ZZA..ETHIOPIC SYLLABLE ZZO
+2DB8..2DBE ; AL # Lo [7] ETHIOPIC SYLLABLE CCHA..ETHIOPIC SYLLABLE CCHO
+2DC0..2DC6 ; AL # Lo [7] ETHIOPIC SYLLABLE QYA..ETHIOPIC SYLLABLE QYO
+2DC8..2DCE ; AL # Lo [7] ETHIOPIC SYLLABLE KYA..ETHIOPIC SYLLABLE KYO
+2DD0..2DD6 ; AL # Lo [7] ETHIOPIC SYLLABLE XYA..ETHIOPIC SYLLABLE XYO
+2DD8..2DDE ; AL # Lo [7] ETHIOPIC SYLLABLE GYA..ETHIOPIC SYLLABLE GYO
+2DE0..2DFF ; CM # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
+2E00..2E01 ; QU # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER
+2E02 ; QU # Pi LEFT SUBSTITUTION BRACKET
+2E03 ; QU # Pf RIGHT SUBSTITUTION BRACKET
+2E04 ; QU # Pi LEFT DOTTED SUBSTITUTION BRACKET
+2E05 ; QU # Pf RIGHT DOTTED SUBSTITUTION BRACKET
+2E06..2E08 ; QU # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER
+2E09 ; QU # Pi LEFT TRANSPOSITION BRACKET
+2E0A ; QU # Pf RIGHT TRANSPOSITION BRACKET
+2E0B ; QU # Po RAISED SQUARE
+2E0C ; QU # Pi LEFT RAISED OMISSION BRACKET
+2E0D ; QU # Pf RIGHT RAISED OMISSION BRACKET
+2E0E..2E15 ; BA # Po [8] EDITORIAL CORONIS..UPWARDS ANCORA
+2E16 ; AL # Po DOTTED RIGHT-POINTING ANGLE
+2E17 ; BA # Pd DOUBLE OBLIQUE HYPHEN
+2E18 ; OP # Po INVERTED INTERROBANG
+2E19 ; BA # Po PALM BRANCH
+2E1A ; AL # Pd HYPHEN WITH DIAERESIS
+2E1B ; AL # Po TILDE WITH RING ABOVE
+2E1C ; QU # Pi LEFT LOW PARAPHRASE BRACKET
+2E1D ; QU # Pf RIGHT LOW PARAPHRASE BRACKET
+2E1E..2E1F ; AL # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW
+2E20 ; QU # Pi LEFT VERTICAL BAR WITH QUILL
+2E21 ; QU # Pf RIGHT VERTICAL BAR WITH QUILL
+2E22 ; OP # Ps TOP LEFT HALF BRACKET
+2E23 ; CL # Pe TOP RIGHT HALF BRACKET
+2E24 ; OP # Ps BOTTOM LEFT HALF BRACKET
+2E25 ; CL # Pe BOTTOM RIGHT HALF BRACKET
+2E26 ; OP # Ps LEFT SIDEWAYS U BRACKET
+2E27 ; CL # Pe RIGHT SIDEWAYS U BRACKET
+2E28 ; OP # Ps LEFT DOUBLE PARENTHESIS
+2E29 ; CL # Pe RIGHT DOUBLE PARENTHESIS
+2E2A..2E2D ; BA # Po [4] TWO DOTS OVER ONE DOT PUNCTUATION..FIVE DOT MARK
+2E2E ; EX # Po REVERSED QUESTION MARK
+2E2F ; AL # Lm VERTICAL TILDE
+2E30..2E31 ; BA # Po [2] RING POINT..WORD SEPARATOR MIDDLE DOT
+2E32 ; AL # Po TURNED COMMA
+2E33..2E34 ; BA # Po [2] RAISED DOT..RAISED COMMA
+2E35..2E39 ; AL # Po [5] TURNED SEMICOLON..TOP HALF SECTION SIGN
+2E3A..2E3B ; B2 # Pd [2] TWO-EM DASH..THREE-EM DASH
+2E3C..2E3E ; BA # Po [3] STENOGRAPHIC FULL STOP..WIGGLY VERTICAL LINE
+2E3F ; AL # Po CAPITULUM
+2E40 ; BA # Pd DOUBLE HYPHEN
+2E41 ; BA # Po REVERSED COMMA
+2E42 ; OP # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E43..2E4A ; BA # Po [8] DASH WITH LEFT UPTURN..DOTTED SOLIDUS
+2E4B ; AL # Po TRIPLE DAGGER
+2E4C ; BA # Po MEDIEVAL COMMA
+2E4D ; AL # Po PARAGRAPHUS MARK
+2E4E..2E4F ; BA # Po [2] PUNCTUS ELEVATUS MARK..CORNISH VERSE DIVIDER
+2E50..2E51 ; AL # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
+2E52 ; AL # Po TIRONIAN SIGN CAPITAL ET
+2E53..2E54 ; EX # Po [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK
+2E55 ; OP # Ps LEFT SQUARE BRACKET WITH STROKE
+2E56 ; CL # Pe RIGHT SQUARE BRACKET WITH STROKE
+2E57 ; OP # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
+2E58 ; CL # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+2E59 ; OP # Ps TOP HALF LEFT PARENTHESIS
+2E5A ; CL # Pe TOP HALF RIGHT PARENTHESIS
+2E5B ; OP # Ps BOTTOM HALF LEFT PARENTHESIS
+2E5C ; CL # Pe BOTTOM HALF RIGHT PARENTHESIS
+2E5D ; BA # Pd OBLIQUE HYPHEN
+2E80..2E99 ; ID # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP
+2E9B..2EF3 ; ID # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE
+2F00..2FD5 ; ID # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+2FF0..2FFF ; ID # So [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
+3000 ; BA # Zs IDEOGRAPHIC SPACE
+3001..3002 ; CL # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP
+3003 ; ID # Po DITTO MARK
+3004 ; ID # So JAPANESE INDUSTRIAL STANDARD SYMBOL
+3005 ; NS # Lm IDEOGRAPHIC ITERATION MARK
+3006 ; ID # Lo IDEOGRAPHIC CLOSING MARK
+3007 ; ID # Nl IDEOGRAPHIC NUMBER ZERO
+3008 ; OP # Ps LEFT ANGLE BRACKET
+3009 ; CL # Pe RIGHT ANGLE BRACKET
+300A ; OP # Ps LEFT DOUBLE ANGLE BRACKET
+300B ; CL # Pe RIGHT DOUBLE ANGLE BRACKET
+300C ; OP # Ps LEFT CORNER BRACKET
+300D ; CL # Pe RIGHT CORNER BRACKET
+300E ; OP # Ps LEFT WHITE CORNER BRACKET
+300F ; CL # Pe RIGHT WHITE CORNER BRACKET
+3010 ; OP # Ps LEFT BLACK LENTICULAR BRACKET
+3011 ; CL # Pe RIGHT BLACK LENTICULAR BRACKET
+3012..3013 ; ID # So [2] POSTAL MARK..GETA MARK
+3014 ; OP # Ps LEFT TORTOISE SHELL BRACKET
+3015 ; CL # Pe RIGHT TORTOISE SHELL BRACKET
+3016 ; OP # Ps LEFT WHITE LENTICULAR BRACKET
+3017 ; CL # Pe RIGHT WHITE LENTICULAR BRACKET
+3018 ; OP # Ps LEFT WHITE TORTOISE SHELL BRACKET
+3019 ; CL # Pe RIGHT WHITE TORTOISE SHELL BRACKET
+301A ; OP # Ps LEFT WHITE SQUARE BRACKET
+301B ; CL # Pe RIGHT WHITE SQUARE BRACKET
+301C ; NS # Pd WAVE DASH
+301D ; OP # Ps REVERSED DOUBLE PRIME QUOTATION MARK
+301E..301F ; CL # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
+3020 ; ID # So POSTAL MARK FACE
+3021..3029 ; ID # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE
+302A..302D ; CM # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
+302E..302F ; CM # Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
+3030 ; ID # Pd WAVY DASH
+3031..3034 ; ID # Lm [4] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF
+3035 ; CM # Lm VERTICAL KANA REPEAT MARK LOWER HALF
+3036..3037 ; ID # So [2] CIRCLED POSTAL MARK..IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
+3038..303A ; ID # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+303B ; NS # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
+303C ; NS # Lo MASU MARK
+303D ; ID # Po PART ALTERNATION MARK
+303E..303F ; ID # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
+3041 ; CJ # Lo HIRAGANA LETTER SMALL A
+3042 ; ID # Lo HIRAGANA LETTER A
+3043 ; CJ # Lo HIRAGANA LETTER SMALL I
+3044 ; ID # Lo HIRAGANA LETTER I
+3045 ; CJ # Lo HIRAGANA LETTER SMALL U
+3046 ; ID # Lo HIRAGANA LETTER U
+3047 ; CJ # Lo HIRAGANA LETTER SMALL E
+3048 ; ID # Lo HIRAGANA LETTER E
+3049 ; CJ # Lo HIRAGANA LETTER SMALL O
+304A..3062 ; ID # Lo [25] HIRAGANA LETTER O..HIRAGANA LETTER DI
+3063 ; CJ # Lo HIRAGANA LETTER SMALL TU
+3064..3082 ; ID # Lo [31] HIRAGANA LETTER TU..HIRAGANA LETTER MO
+3083 ; CJ # Lo HIRAGANA LETTER SMALL YA
+3084 ; ID # Lo HIRAGANA LETTER YA
+3085 ; CJ # Lo HIRAGANA LETTER SMALL YU
+3086 ; ID # Lo HIRAGANA LETTER YU
+3087 ; CJ # Lo HIRAGANA LETTER SMALL YO
+3088..308D ; ID # Lo [6] HIRAGANA LETTER YO..HIRAGANA LETTER RO
+308E ; CJ # Lo HIRAGANA LETTER SMALL WA
+308F..3094 ; ID # Lo [6] HIRAGANA LETTER WA..HIRAGANA LETTER VU
+3095..3096 ; CJ # Lo [2] HIRAGANA LETTER SMALL KA..HIRAGANA LETTER SMALL KE
+3099..309A ; CM # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309B..309C ; NS # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+309D..309E ; NS # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
+309F ; ID # Lo HIRAGANA DIGRAPH YORI
+30A0 ; NS # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
+30A1 ; CJ # Lo KATAKANA LETTER SMALL A
+30A2 ; ID # Lo KATAKANA LETTER A
+30A3 ; CJ # Lo KATAKANA LETTER SMALL I
+30A4 ; ID # Lo KATAKANA LETTER I
+30A5 ; CJ # Lo KATAKANA LETTER SMALL U
+30A6 ; ID # Lo KATAKANA LETTER U
+30A7 ; CJ # Lo KATAKANA LETTER SMALL E
+30A8 ; ID # Lo KATAKANA LETTER E
+30A9 ; CJ # Lo KATAKANA LETTER SMALL O
+30AA..30C2 ; ID # Lo [25] KATAKANA LETTER O..KATAKANA LETTER DI
+30C3 ; CJ # Lo KATAKANA LETTER SMALL TU
+30C4..30E2 ; ID # Lo [31] KATAKANA LETTER TU..KATAKANA LETTER MO
+30E3 ; CJ # Lo KATAKANA LETTER SMALL YA
+30E4 ; ID # Lo KATAKANA LETTER YA
+30E5 ; CJ # Lo KATAKANA LETTER SMALL YU
+30E6 ; ID # Lo KATAKANA LETTER YU
+30E7 ; CJ # Lo KATAKANA LETTER SMALL YO
+30E8..30ED ; ID # Lo [6] KATAKANA LETTER YO..KATAKANA LETTER RO
+30EE ; CJ # Lo KATAKANA LETTER SMALL WA
+30EF..30F4 ; ID # Lo [6] KATAKANA LETTER WA..KATAKANA LETTER VU
+30F5..30F6 ; CJ # Lo [2] KATAKANA LETTER SMALL KA..KATAKANA LETTER SMALL KE
+30F7..30FA ; ID # Lo [4] KATAKANA LETTER VA..KATAKANA LETTER VO
+30FB ; NS # Po KATAKANA MIDDLE DOT
+30FC ; CJ # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
+30FD..30FE ; NS # Lm [2] KATAKANA ITERATION MARK..KATAKANA VOICED ITERATION MARK
+30FF ; ID # Lo KATAKANA DIGRAPH KOTO
+3105..312F ; ID # Lo [43] BOPOMOFO LETTER B..BOPOMOFO LETTER NN
+3131..318E ; ID # Lo [94] HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+3190..3191 ; ID # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
+3192..3195 ; ID # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+3196..319F ; ID # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+31A0..31BF ; ID # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
+31C0..31E3 ; ID # So [36] CJK STROKE T..CJK STROKE Q
+31EF ; ID # So IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
+31F0..31FF ; CJ # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
+3200..321E ; ID # So [31] PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+3220..3229 ; ID # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+322A..3247 ; ID # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+3248..324F ; AI # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+3250 ; ID # So PARTNERSHIP SIGN
+3251..325F ; ID # No [15] CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+3260..327F ; ID # So [32] CIRCLED HANGUL KIYEOK..KOREAN STANDARD SYMBOL
+3280..3289 ; ID # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+328A..32B0 ; ID # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+32B1..32BF ; ID # No [15] CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+32C0..32FF ; ID # So [64] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE ERA NAME REIWA
+3300..33FF ; ID # So [256] SQUARE APAATO..SQUARE GAL
+3400..4DBF ; ID # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
+4DC0..4DFF ; AL # So [64] HEXAGRAM FOR THE CREATIVE HEAVEN..HEXAGRAM FOR BEFORE COMPLETION
+4E00..9FFF ; ID # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
+A000..A014 ; ID # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+A015 ; NS # Lm YI SYLLABLE WU
+A016..A48C ; ID # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
+A490..A4C6 ; ID # So [55] YI RADICAL QOT..YI RADICAL KE
+A4D0..A4F7 ; AL # Lo [40] LISU LETTER BA..LISU LETTER OE
+A4F8..A4FD ; AL # Lm [6] LISU LETTER TONE MYA TI..LISU LETTER TONE MYA JEU
+A4FE..A4FF ; BA # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP
+A500..A60B ; AL # Lo [268] VAI SYLLABLE EE..VAI SYLLABLE NG
+A60C ; AL # Lm VAI SYLLABLE LENGTHENER
+A60D ; BA # Po VAI COMMA
+A60E ; EX # Po VAI FULL STOP
+A60F ; BA # Po VAI QUESTION MARK
+A610..A61F ; AL # Lo [16] VAI SYLLABLE NDOLE FA..VAI SYMBOL JONG
+A620..A629 ; NU # Nd [10] VAI DIGIT ZERO..VAI DIGIT NINE
+A62A..A62B ; AL # Lo [2] VAI SYLLABLE NDOLE MA..VAI SYLLABLE NDOLE DO
+A640..A66D ; AL # L& [46] CYRILLIC CAPITAL LETTER ZEMLYA..CYRILLIC SMALL LETTER DOUBLE MONOCULAR O
+A66E ; AL # Lo CYRILLIC LETTER MULTIOCULAR O
+A66F ; CM # Mn COMBINING CYRILLIC VZMET
+A670..A672 ; CM # Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
+A673 ; AL # Po SLAVONIC ASTERISK
+A674..A67D ; CM # Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
+A67E ; AL # Po CYRILLIC KAVYKA
+A67F ; AL # Lm CYRILLIC PAYEROK
+A680..A69B ; AL # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL LETTER CROSSED O
+A69C..A69D ; AL # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+A69E..A69F ; CM # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
+A6A0..A6E5 ; AL # Lo [70] BAMUM LETTER A..BAMUM LETTER KI
+A6E6..A6EF ; AL # Nl [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM
+A6F0..A6F1 ; CM # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
+A6F2 ; AL # Po BAMUM NJAEMLI
+A6F3..A6F7 ; BA # Po [5] BAMUM FULL STOP..BAMUM QUESTION MARK
+A700..A716 ; AL # Sk [23] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER EXTRA-LOW LEFT-STEM TONE BAR
+A717..A71F ; AL # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK
+A720..A721 ; AL # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE
+A722..A76F ; AL # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN SMALL LETTER CON
+A770 ; AL # Lm MODIFIER LETTER US
+A771..A787 ; AL # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
+A788 ; AL # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
+A789..A78A ; AL # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
+A78B..A78E ; AL # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
+A78F ; AL # Lo LATIN LETTER SINOLOGICAL DOT
+A790..A7CA ; AL # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7D0..A7D1 ; AL # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
+A7D3 ; AL # Ll LATIN SMALL LETTER DOUBLE THORN
+A7D5..A7D9 ; AL # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4 ; AL # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
+A7F5..A7F6 ; AL # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
+A7F7 ; AL # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
+A7F8..A7F9 ; AL # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+A7FA ; AL # Ll LATIN LETTER SMALL CAPITAL TURNED M
+A7FB..A7FF ; AL # Lo [5] LATIN EPIGRAPHIC LETTER REVERSED F..LATIN EPIGRAPHIC LETTER ARCHAIC M
+A800..A801 ; AL # Lo [2] SYLOTI NAGRI LETTER A..SYLOTI NAGRI LETTER I
+A802 ; CM # Mn SYLOTI NAGRI SIGN DVISVARA
+A803..A805 ; AL # Lo [3] SYLOTI NAGRI LETTER U..SYLOTI NAGRI LETTER O
+A806 ; CM # Mn SYLOTI NAGRI SIGN HASANTA
+A807..A80A ; AL # Lo [4] SYLOTI NAGRI LETTER KO..SYLOTI NAGRI LETTER GHO
+A80B ; CM # Mn SYLOTI NAGRI SIGN ANUSVARA
+A80C..A822 ; AL # Lo [23] SYLOTI NAGRI LETTER CO..SYLOTI NAGRI LETTER HO
+A823..A824 ; CM # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
+A825..A826 ; CM # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
+A827 ; CM # Mc SYLOTI NAGRI VOWEL SIGN OO
+A828..A82B ; AL # So [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK-4
+A82C ; CM # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
+A830..A835 ; AL # No [6] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE SIXTEENTHS
+A836..A837 ; AL # So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
+A838 ; PO # Sc NORTH INDIC RUPEE MARK
+A839 ; AL # So NORTH INDIC QUANTITY MARK
+A840..A873 ; AL # Lo [52] PHAGS-PA LETTER KA..PHAGS-PA LETTER CANDRABINDU
+A874..A875 ; BB # Po [2] PHAGS-PA SINGLE HEAD MARK..PHAGS-PA DOUBLE HEAD MARK
+A876..A877 ; EX # Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD
+A880..A881 ; CM # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
+A882..A8B3 ; AL # Lo [50] SAURASHTRA LETTER A..SAURASHTRA LETTER LLA
+A8B4..A8C3 ; CM # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
+A8C4..A8C5 ; CM # Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
+A8CE..A8CF ; BA # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA
+A8D0..A8D9 ; NU # Nd [10] SAURASHTRA DIGIT ZERO..SAURASHTRA DIGIT NINE
+A8E0..A8F1 ; CM # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
+A8F2..A8F7 ; AL # Lo [6] DEVANAGARI SIGN SPACING CANDRABINDU..DEVANAGARI SIGN CANDRABINDU AVAGRAHA
+A8F8..A8FA ; AL # Po [3] DEVANAGARI SIGN PUSHPIKA..DEVANAGARI CARET
+A8FB ; AL # Lo DEVANAGARI HEADSTROKE
+A8FC ; BB # Po DEVANAGARI SIGN SIDDHAM
+A8FD..A8FE ; AL # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
+A8FF ; CM # Mn DEVANAGARI VOWEL SIGN AY
+A900..A909 ; NU # Nd [10] KAYAH LI DIGIT ZERO..KAYAH LI DIGIT NINE
+A90A..A925 ; AL # Lo [28] KAYAH LI LETTER KA..KAYAH LI LETTER OO
+A926..A92D ; CM # Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
+A92E..A92F ; BA # Po [2] KAYAH LI SIGN CWI..KAYAH LI SIGN SHYA
+A930..A946 ; AL # Lo [23] REJANG LETTER KA..REJANG LETTER A
+A947..A951 ; CM # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
+A952..A953 ; CM # Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
+A95F ; AL # Po REJANG SECTION MARK
+A960..A97C ; JL # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
+A980..A982 ; CM # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
+A983 ; CM # Mc JAVANESE SIGN WIGNYAN
+A984..A9B2 ; AK # Lo [47] JAVANESE LETTER A..JAVANESE LETTER HA
+A9B3 ; CM # Mn JAVANESE SIGN CECAK TELU
+A9B4..A9B5 ; CM # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
+A9B6..A9B9 ; CM # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
+A9BA..A9BB ; CM # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
+A9BC..A9BD ; CM # Mn [2] JAVANESE VOWEL SIGN PEPET..JAVANESE CONSONANT SIGN KERET
+A9BE..A9BF ; CM # Mc [2] JAVANESE CONSONANT SIGN PENGKAL..JAVANESE CONSONANT SIGN CAKRA
+A9C0 ; VI # Mc JAVANESE PANGKON
+A9C1..A9C6 ; ID # Po [6] JAVANESE LEFT RERENGGAN..JAVANESE PADA WINDU
+A9C7..A9C9 ; BA # Po [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI
+A9CA..A9CD ; ID # Po [4] JAVANESE PADA ADEG..JAVANESE TURNED PADA PISELEH
+A9CF ; BA # Lm JAVANESE PANGRANGKEP
+A9D0..A9D9 ; ID # Nd [10] JAVANESE DIGIT ZERO..JAVANESE DIGIT NINE
+A9DE..A9DF ; ID # Po [2] JAVANESE PADA TIRTA TUMETES..JAVANESE PADA ISEN-ISEN
+A9E0..A9E4 ; SA # Lo [5] MYANMAR LETTER SHAN GHA..MYANMAR LETTER SHAN BHA
+A9E5 ; SA # Mn MYANMAR SIGN SHAN SAW
+A9E6 ; SA # Lm MYANMAR MODIFIER LETTER SHAN REDUPLICATION
+A9E7..A9EF ; SA # Lo [9] MYANMAR LETTER TAI LAING NYA..MYANMAR LETTER TAI LAING NNA
+A9F0..A9F9 ; NU # Nd [10] MYANMAR TAI LAING DIGIT ZERO..MYANMAR TAI LAING DIGIT NINE
+A9FA..A9FE ; SA # Lo [5] MYANMAR LETTER TAI LAING LLA..MYANMAR LETTER TAI LAING BHA
+AA00..AA28 ; AS # Lo [41] CHAM LETTER A..CHAM LETTER HA
+AA29..AA2E ; CM # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
+AA2F..AA30 ; CM # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
+AA31..AA32 ; CM # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
+AA33..AA34 ; CM # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
+AA35..AA36 ; CM # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
+AA40..AA42 ; BA # Lo [3] CHAM LETTER FINAL K..CHAM LETTER FINAL NG
+AA43 ; CM # Mn CHAM CONSONANT SIGN FINAL NG
+AA44..AA4B ; BA # Lo [8] CHAM LETTER FINAL CH..CHAM LETTER FINAL SS
+AA4C ; CM # Mn CHAM CONSONANT SIGN FINAL M
+AA4D ; CM # Mc CHAM CONSONANT SIGN FINAL H
+AA50..AA59 ; ID # Nd [10] CHAM DIGIT ZERO..CHAM DIGIT NINE
+AA5C ; ID # Po CHAM PUNCTUATION SPIRAL
+AA5D..AA5F ; BA # Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA
+AA60..AA6F ; SA # Lo [16] MYANMAR LETTER KHAMTI GA..MYANMAR LETTER KHAMTI FA
+AA70 ; SA # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
+AA71..AA76 ; SA # Lo [6] MYANMAR LETTER KHAMTI XA..MYANMAR LOGOGRAM KHAMTI HM
+AA77..AA79 ; SA # So [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO
+AA7A ; SA # Lo MYANMAR LETTER AITON RA
+AA7B ; SA # Mc MYANMAR SIGN PAO KAREN TONE
+AA7C ; SA # Mn MYANMAR SIGN TAI LAING TONE-2
+AA7D ; SA # Mc MYANMAR SIGN TAI LAING TONE-5
+AA7E..AA7F ; SA # Lo [2] MYANMAR LETTER SHWE PALAUNG CHA..MYANMAR LETTER SHWE PALAUNG SHA
+AA80..AAAF ; SA # Lo [48] TAI VIET LETTER LOW KO..TAI VIET LETTER HIGH O
+AAB0 ; SA # Mn TAI VIET MAI KANG
+AAB1 ; SA # Lo TAI VIET VOWEL AA
+AAB2..AAB4 ; SA # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
+AAB5..AAB6 ; SA # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O
+AAB7..AAB8 ; SA # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
+AAB9..AABD ; SA # Lo [5] TAI VIET VOWEL UEA..TAI VIET VOWEL AN
+AABE..AABF ; SA # Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
+AAC0 ; SA # Lo TAI VIET TONE MAI NUENG
+AAC1 ; SA # Mn TAI VIET TONE MAI THO
+AAC2 ; SA # Lo TAI VIET TONE MAI SONG
+AADB..AADC ; SA # Lo [2] TAI VIET SYMBOL KON..TAI VIET SYMBOL NUENG
+AADD ; SA # Lm TAI VIET SYMBOL SAM
+AADE..AADF ; SA # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI KOI
+AAE0..AAEA ; AL # Lo [11] MEETEI MAYEK LETTER E..MEETEI MAYEK LETTER SSA
+AAEB ; CM # Mc MEETEI MAYEK VOWEL SIGN II
+AAEC..AAED ; CM # Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
+AAEE..AAEF ; CM # Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
+AAF0..AAF1 ; BA # Po [2] MEETEI MAYEK CHEIKHAN..MEETEI MAYEK AHANG KHUDAM
+AAF2 ; AL # Lo MEETEI MAYEK ANJI
+AAF3..AAF4 ; AL # Lm [2] MEETEI MAYEK SYLLABLE REPETITION MARK..MEETEI MAYEK WORD REPETITION MARK
+AAF5 ; CM # Mc MEETEI MAYEK VOWEL SIGN VISARGA
+AAF6 ; CM # Mn MEETEI MAYEK VIRAMA
+AB01..AB06 ; AL # Lo [6] ETHIOPIC SYLLABLE TTHU..ETHIOPIC SYLLABLE TTHO
+AB09..AB0E ; AL # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDHO
+AB11..AB16 ; AL # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
+AB20..AB26 ; AL # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
+AB28..AB2E ; AL # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+AB30..AB5A ; AL # Ll [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
+AB5B ; AL # Sk MODIFIER BREVE WITH INVERTED BREVE
+AB5C..AB5F ; AL # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+AB60..AB68 ; AL # Ll [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69 ; AL # Lm MODIFIER LETTER SMALL TURNED W
+AB6A..AB6B ; AL # Sk [2] MODIFIER LETTER LEFT TACK..MODIFIER LETTER RIGHT TACK
+AB70..ABBF ; AL # Ll [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
+ABC0..ABE2 ; AL # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
+ABE3..ABE4 ; CM # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
+ABE5 ; CM # Mn MEETEI MAYEK VOWEL SIGN ANAP
+ABE6..ABE7 ; CM # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
+ABE8 ; CM # Mn MEETEI MAYEK VOWEL SIGN UNAP
+ABE9..ABEA ; CM # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
+ABEB ; BA # Po MEETEI MAYEK CHEIKHEI
+ABEC ; CM # Mc MEETEI MAYEK LUM IYEK
+ABED ; CM # Mn MEETEI MAYEK APUN IYEK
+ABF0..ABF9 ; NU # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DIGIT NINE
+AC00 ; H2 # Lo HANGUL SYLLABLE GA
+AC01..AC1B ; H3 # Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
+AC1C ; H2 # Lo HANGUL SYLLABLE GAE
+AC1D..AC37 ; H3 # Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
+AC38 ; H2 # Lo HANGUL SYLLABLE GYA
+AC39..AC53 ; H3 # Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
+AC54 ; H2 # Lo HANGUL SYLLABLE GYAE
+AC55..AC6F ; H3 # Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
+AC70 ; H2 # Lo HANGUL SYLLABLE GEO
+AC71..AC8B ; H3 # Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
+AC8C ; H2 # Lo HANGUL SYLLABLE GE
+AC8D..ACA7 ; H3 # Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
+ACA8 ; H2 # Lo HANGUL SYLLABLE GYEO
+ACA9..ACC3 ; H3 # Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
+ACC4 ; H2 # Lo HANGUL SYLLABLE GYE
+ACC5..ACDF ; H3 # Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
+ACE0 ; H2 # Lo HANGUL SYLLABLE GO
+ACE1..ACFB ; H3 # Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
+ACFC ; H2 # Lo HANGUL SYLLABLE GWA
+ACFD..AD17 ; H3 # Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
+AD18 ; H2 # Lo HANGUL SYLLABLE GWAE
+AD19..AD33 ; H3 # Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
+AD34 ; H2 # Lo HANGUL SYLLABLE GOE
+AD35..AD4F ; H3 # Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
+AD50 ; H2 # Lo HANGUL SYLLABLE GYO
+AD51..AD6B ; H3 # Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
+AD6C ; H2 # Lo HANGUL SYLLABLE GU
+AD6D..AD87 ; H3 # Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
+AD88 ; H2 # Lo HANGUL SYLLABLE GWEO
+AD89..ADA3 ; H3 # Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
+ADA4 ; H2 # Lo HANGUL SYLLABLE GWE
+ADA5..ADBF ; H3 # Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
+ADC0 ; H2 # Lo HANGUL SYLLABLE GWI
+ADC1..ADDB ; H3 # Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
+ADDC ; H2 # Lo HANGUL SYLLABLE GYU
+ADDD..ADF7 ; H3 # Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
+ADF8 ; H2 # Lo HANGUL SYLLABLE GEU
+ADF9..AE13 ; H3 # Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
+AE14 ; H2 # Lo HANGUL SYLLABLE GYI
+AE15..AE2F ; H3 # Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
+AE30 ; H2 # Lo HANGUL SYLLABLE GI
+AE31..AE4B ; H3 # Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
+AE4C ; H2 # Lo HANGUL SYLLABLE GGA
+AE4D..AE67 ; H3 # Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
+AE68 ; H2 # Lo HANGUL SYLLABLE GGAE
+AE69..AE83 ; H3 # Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
+AE84 ; H2 # Lo HANGUL SYLLABLE GGYA
+AE85..AE9F ; H3 # Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
+AEA0 ; H2 # Lo HANGUL SYLLABLE GGYAE
+AEA1..AEBB ; H3 # Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
+AEBC ; H2 # Lo HANGUL SYLLABLE GGEO
+AEBD..AED7 ; H3 # Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
+AED8 ; H2 # Lo HANGUL SYLLABLE GGE
+AED9..AEF3 ; H3 # Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
+AEF4 ; H2 # Lo HANGUL SYLLABLE GGYEO
+AEF5..AF0F ; H3 # Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
+AF10 ; H2 # Lo HANGUL SYLLABLE GGYE
+AF11..AF2B ; H3 # Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
+AF2C ; H2 # Lo HANGUL SYLLABLE GGO
+AF2D..AF47 ; H3 # Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
+AF48 ; H2 # Lo HANGUL SYLLABLE GGWA
+AF49..AF63 ; H3 # Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
+AF64 ; H2 # Lo HANGUL SYLLABLE GGWAE
+AF65..AF7F ; H3 # Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
+AF80 ; H2 # Lo HANGUL SYLLABLE GGOE
+AF81..AF9B ; H3 # Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
+AF9C ; H2 # Lo HANGUL SYLLABLE GGYO
+AF9D..AFB7 ; H3 # Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
+AFB8 ; H2 # Lo HANGUL SYLLABLE GGU
+AFB9..AFD3 ; H3 # Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
+AFD4 ; H2 # Lo HANGUL SYLLABLE GGWEO
+AFD5..AFEF ; H3 # Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
+AFF0 ; H2 # Lo HANGUL SYLLABLE GGWE
+AFF1..B00B ; H3 # Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
+B00C ; H2 # Lo HANGUL SYLLABLE GGWI
+B00D..B027 ; H3 # Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
+B028 ; H2 # Lo HANGUL SYLLABLE GGYU
+B029..B043 ; H3 # Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
+B044 ; H2 # Lo HANGUL SYLLABLE GGEU
+B045..B05F ; H3 # Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
+B060 ; H2 # Lo HANGUL SYLLABLE GGYI
+B061..B07B ; H3 # Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
+B07C ; H2 # Lo HANGUL SYLLABLE GGI
+B07D..B097 ; H3 # Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
+B098 ; H2 # Lo HANGUL SYLLABLE NA
+B099..B0B3 ; H3 # Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
+B0B4 ; H2 # Lo HANGUL SYLLABLE NAE
+B0B5..B0CF ; H3 # Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
+B0D0 ; H2 # Lo HANGUL SYLLABLE NYA
+B0D1..B0EB ; H3 # Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
+B0EC ; H2 # Lo HANGUL SYLLABLE NYAE
+B0ED..B107 ; H3 # Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
+B108 ; H2 # Lo HANGUL SYLLABLE NEO
+B109..B123 ; H3 # Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
+B124 ; H2 # Lo HANGUL SYLLABLE NE
+B125..B13F ; H3 # Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
+B140 ; H2 # Lo HANGUL SYLLABLE NYEO
+B141..B15B ; H3 # Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
+B15C ; H2 # Lo HANGUL SYLLABLE NYE
+B15D..B177 ; H3 # Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
+B178 ; H2 # Lo HANGUL SYLLABLE NO
+B179..B193 ; H3 # Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
+B194 ; H2 # Lo HANGUL SYLLABLE NWA
+B195..B1AF ; H3 # Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
+B1B0 ; H2 # Lo HANGUL SYLLABLE NWAE
+B1B1..B1CB ; H3 # Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
+B1CC ; H2 # Lo HANGUL SYLLABLE NOE
+B1CD..B1E7 ; H3 # Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
+B1E8 ; H2 # Lo HANGUL SYLLABLE NYO
+B1E9..B203 ; H3 # Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
+B204 ; H2 # Lo HANGUL SYLLABLE NU
+B205..B21F ; H3 # Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
+B220 ; H2 # Lo HANGUL SYLLABLE NWEO
+B221..B23B ; H3 # Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
+B23C ; H2 # Lo HANGUL SYLLABLE NWE
+B23D..B257 ; H3 # Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
+B258 ; H2 # Lo HANGUL SYLLABLE NWI
+B259..B273 ; H3 # Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
+B274 ; H2 # Lo HANGUL SYLLABLE NYU
+B275..B28F ; H3 # Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
+B290 ; H2 # Lo HANGUL SYLLABLE NEU
+B291..B2AB ; H3 # Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
+B2AC ; H2 # Lo HANGUL SYLLABLE NYI
+B2AD..B2C7 ; H3 # Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
+B2C8 ; H2 # Lo HANGUL SYLLABLE NI
+B2C9..B2E3 ; H3 # Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
+B2E4 ; H2 # Lo HANGUL SYLLABLE DA
+B2E5..B2FF ; H3 # Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
+B300 ; H2 # Lo HANGUL SYLLABLE DAE
+B301..B31B ; H3 # Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
+B31C ; H2 # Lo HANGUL SYLLABLE DYA
+B31D..B337 ; H3 # Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
+B338 ; H2 # Lo HANGUL SYLLABLE DYAE
+B339..B353 ; H3 # Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
+B354 ; H2 # Lo HANGUL SYLLABLE DEO
+B355..B36F ; H3 # Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
+B370 ; H2 # Lo HANGUL SYLLABLE DE
+B371..B38B ; H3 # Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
+B38C ; H2 # Lo HANGUL SYLLABLE DYEO
+B38D..B3A7 ; H3 # Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
+B3A8 ; H2 # Lo HANGUL SYLLABLE DYE
+B3A9..B3C3 ; H3 # Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
+B3C4 ; H2 # Lo HANGUL SYLLABLE DO
+B3C5..B3DF ; H3 # Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
+B3E0 ; H2 # Lo HANGUL SYLLABLE DWA
+B3E1..B3FB ; H3 # Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
+B3FC ; H2 # Lo HANGUL SYLLABLE DWAE
+B3FD..B417 ; H3 # Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
+B418 ; H2 # Lo HANGUL SYLLABLE DOE
+B419..B433 ; H3 # Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
+B434 ; H2 # Lo HANGUL SYLLABLE DYO
+B435..B44F ; H3 # Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
+B450 ; H2 # Lo HANGUL SYLLABLE DU
+B451..B46B ; H3 # Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
+B46C ; H2 # Lo HANGUL SYLLABLE DWEO
+B46D..B487 ; H3 # Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
+B488 ; H2 # Lo HANGUL SYLLABLE DWE
+B489..B4A3 ; H3 # Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
+B4A4 ; H2 # Lo HANGUL SYLLABLE DWI
+B4A5..B4BF ; H3 # Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
+B4C0 ; H2 # Lo HANGUL SYLLABLE DYU
+B4C1..B4DB ; H3 # Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
+B4DC ; H2 # Lo HANGUL SYLLABLE DEU
+B4DD..B4F7 ; H3 # Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
+B4F8 ; H2 # Lo HANGUL SYLLABLE DYI
+B4F9..B513 ; H3 # Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
+B514 ; H2 # Lo HANGUL SYLLABLE DI
+B515..B52F ; H3 # Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
+B530 ; H2 # Lo HANGUL SYLLABLE DDA
+B531..B54B ; H3 # Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
+B54C ; H2 # Lo HANGUL SYLLABLE DDAE
+B54D..B567 ; H3 # Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
+B568 ; H2 # Lo HANGUL SYLLABLE DDYA
+B569..B583 ; H3 # Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
+B584 ; H2 # Lo HANGUL SYLLABLE DDYAE
+B585..B59F ; H3 # Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
+B5A0 ; H2 # Lo HANGUL SYLLABLE DDEO
+B5A1..B5BB ; H3 # Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
+B5BC ; H2 # Lo HANGUL SYLLABLE DDE
+B5BD..B5D7 ; H3 # Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
+B5D8 ; H2 # Lo HANGUL SYLLABLE DDYEO
+B5D9..B5F3 ; H3 # Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
+B5F4 ; H2 # Lo HANGUL SYLLABLE DDYE
+B5F5..B60F ; H3 # Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
+B610 ; H2 # Lo HANGUL SYLLABLE DDO
+B611..B62B ; H3 # Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
+B62C ; H2 # Lo HANGUL SYLLABLE DDWA
+B62D..B647 ; H3 # Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
+B648 ; H2 # Lo HANGUL SYLLABLE DDWAE
+B649..B663 ; H3 # Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
+B664 ; H2 # Lo HANGUL SYLLABLE DDOE
+B665..B67F ; H3 # Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
+B680 ; H2 # Lo HANGUL SYLLABLE DDYO
+B681..B69B ; H3 # Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
+B69C ; H2 # Lo HANGUL SYLLABLE DDU
+B69D..B6B7 ; H3 # Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
+B6B8 ; H2 # Lo HANGUL SYLLABLE DDWEO
+B6B9..B6D3 ; H3 # Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
+B6D4 ; H2 # Lo HANGUL SYLLABLE DDWE
+B6D5..B6EF ; H3 # Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
+B6F0 ; H2 # Lo HANGUL SYLLABLE DDWI
+B6F1..B70B ; H3 # Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
+B70C ; H2 # Lo HANGUL SYLLABLE DDYU
+B70D..B727 ; H3 # Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
+B728 ; H2 # Lo HANGUL SYLLABLE DDEU
+B729..B743 ; H3 # Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
+B744 ; H2 # Lo HANGUL SYLLABLE DDYI
+B745..B75F ; H3 # Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
+B760 ; H2 # Lo HANGUL SYLLABLE DDI
+B761..B77B ; H3 # Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
+B77C ; H2 # Lo HANGUL SYLLABLE RA
+B77D..B797 ; H3 # Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
+B798 ; H2 # Lo HANGUL SYLLABLE RAE
+B799..B7B3 ; H3 # Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
+B7B4 ; H2 # Lo HANGUL SYLLABLE RYA
+B7B5..B7CF ; H3 # Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
+B7D0 ; H2 # Lo HANGUL SYLLABLE RYAE
+B7D1..B7EB ; H3 # Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
+B7EC ; H2 # Lo HANGUL SYLLABLE REO
+B7ED..B807 ; H3 # Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
+B808 ; H2 # Lo HANGUL SYLLABLE RE
+B809..B823 ; H3 # Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
+B824 ; H2 # Lo HANGUL SYLLABLE RYEO
+B825..B83F ; H3 # Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
+B840 ; H2 # Lo HANGUL SYLLABLE RYE
+B841..B85B ; H3 # Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
+B85C ; H2 # Lo HANGUL SYLLABLE RO
+B85D..B877 ; H3 # Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
+B878 ; H2 # Lo HANGUL SYLLABLE RWA
+B879..B893 ; H3 # Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
+B894 ; H2 # Lo HANGUL SYLLABLE RWAE
+B895..B8AF ; H3 # Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
+B8B0 ; H2 # Lo HANGUL SYLLABLE ROE
+B8B1..B8CB ; H3 # Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
+B8CC ; H2 # Lo HANGUL SYLLABLE RYO
+B8CD..B8E7 ; H3 # Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
+B8E8 ; H2 # Lo HANGUL SYLLABLE RU
+B8E9..B903 ; H3 # Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
+B904 ; H2 # Lo HANGUL SYLLABLE RWEO
+B905..B91F ; H3 # Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
+B920 ; H2 # Lo HANGUL SYLLABLE RWE
+B921..B93B ; H3 # Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
+B93C ; H2 # Lo HANGUL SYLLABLE RWI
+B93D..B957 ; H3 # Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
+B958 ; H2 # Lo HANGUL SYLLABLE RYU
+B959..B973 ; H3 # Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
+B974 ; H2 # Lo HANGUL SYLLABLE REU
+B975..B98F ; H3 # Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
+B990 ; H2 # Lo HANGUL SYLLABLE RYI
+B991..B9AB ; H3 # Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
+B9AC ; H2 # Lo HANGUL SYLLABLE RI
+B9AD..B9C7 ; H3 # Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
+B9C8 ; H2 # Lo HANGUL SYLLABLE MA
+B9C9..B9E3 ; H3 # Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
+B9E4 ; H2 # Lo HANGUL SYLLABLE MAE
+B9E5..B9FF ; H3 # Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
+BA00 ; H2 # Lo HANGUL SYLLABLE MYA
+BA01..BA1B ; H3 # Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
+BA1C ; H2 # Lo HANGUL SYLLABLE MYAE
+BA1D..BA37 ; H3 # Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
+BA38 ; H2 # Lo HANGUL SYLLABLE MEO
+BA39..BA53 ; H3 # Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
+BA54 ; H2 # Lo HANGUL SYLLABLE ME
+BA55..BA6F ; H3 # Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
+BA70 ; H2 # Lo HANGUL SYLLABLE MYEO
+BA71..BA8B ; H3 # Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
+BA8C ; H2 # Lo HANGUL SYLLABLE MYE
+BA8D..BAA7 ; H3 # Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
+BAA8 ; H2 # Lo HANGUL SYLLABLE MO
+BAA9..BAC3 ; H3 # Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
+BAC4 ; H2 # Lo HANGUL SYLLABLE MWA
+BAC5..BADF ; H3 # Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
+BAE0 ; H2 # Lo HANGUL SYLLABLE MWAE
+BAE1..BAFB ; H3 # Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
+BAFC ; H2 # Lo HANGUL SYLLABLE MOE
+BAFD..BB17 ; H3 # Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
+BB18 ; H2 # Lo HANGUL SYLLABLE MYO
+BB19..BB33 ; H3 # Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
+BB34 ; H2 # Lo HANGUL SYLLABLE MU
+BB35..BB4F ; H3 # Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
+BB50 ; H2 # Lo HANGUL SYLLABLE MWEO
+BB51..BB6B ; H3 # Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
+BB6C ; H2 # Lo HANGUL SYLLABLE MWE
+BB6D..BB87 ; H3 # Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
+BB88 ; H2 # Lo HANGUL SYLLABLE MWI
+BB89..BBA3 ; H3 # Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
+BBA4 ; H2 # Lo HANGUL SYLLABLE MYU
+BBA5..BBBF ; H3 # Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
+BBC0 ; H2 # Lo HANGUL SYLLABLE MEU
+BBC1..BBDB ; H3 # Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
+BBDC ; H2 # Lo HANGUL SYLLABLE MYI
+BBDD..BBF7 ; H3 # Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
+BBF8 ; H2 # Lo HANGUL SYLLABLE MI
+BBF9..BC13 ; H3 # Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
+BC14 ; H2 # Lo HANGUL SYLLABLE BA
+BC15..BC2F ; H3 # Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
+BC30 ; H2 # Lo HANGUL SYLLABLE BAE
+BC31..BC4B ; H3 # Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
+BC4C ; H2 # Lo HANGUL SYLLABLE BYA
+BC4D..BC67 ; H3 # Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
+BC68 ; H2 # Lo HANGUL SYLLABLE BYAE
+BC69..BC83 ; H3 # Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
+BC84 ; H2 # Lo HANGUL SYLLABLE BEO
+BC85..BC9F ; H3 # Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
+BCA0 ; H2 # Lo HANGUL SYLLABLE BE
+BCA1..BCBB ; H3 # Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
+BCBC ; H2 # Lo HANGUL SYLLABLE BYEO
+BCBD..BCD7 ; H3 # Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
+BCD8 ; H2 # Lo HANGUL SYLLABLE BYE
+BCD9..BCF3 ; H3 # Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
+BCF4 ; H2 # Lo HANGUL SYLLABLE BO
+BCF5..BD0F ; H3 # Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
+BD10 ; H2 # Lo HANGUL SYLLABLE BWA
+BD11..BD2B ; H3 # Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
+BD2C ; H2 # Lo HANGUL SYLLABLE BWAE
+BD2D..BD47 ; H3 # Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
+BD48 ; H2 # Lo HANGUL SYLLABLE BOE
+BD49..BD63 ; H3 # Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
+BD64 ; H2 # Lo HANGUL SYLLABLE BYO
+BD65..BD7F ; H3 # Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
+BD80 ; H2 # Lo HANGUL SYLLABLE BU
+BD81..BD9B ; H3 # Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
+BD9C ; H2 # Lo HANGUL SYLLABLE BWEO
+BD9D..BDB7 ; H3 # Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
+BDB8 ; H2 # Lo HANGUL SYLLABLE BWE
+BDB9..BDD3 ; H3 # Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
+BDD4 ; H2 # Lo HANGUL SYLLABLE BWI
+BDD5..BDEF ; H3 # Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
+BDF0 ; H2 # Lo HANGUL SYLLABLE BYU
+BDF1..BE0B ; H3 # Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
+BE0C ; H2 # Lo HANGUL SYLLABLE BEU
+BE0D..BE27 ; H3 # Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
+BE28 ; H2 # Lo HANGUL SYLLABLE BYI
+BE29..BE43 ; H3 # Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
+BE44 ; H2 # Lo HANGUL SYLLABLE BI
+BE45..BE5F ; H3 # Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
+BE60 ; H2 # Lo HANGUL SYLLABLE BBA
+BE61..BE7B ; H3 # Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
+BE7C ; H2 # Lo HANGUL SYLLABLE BBAE
+BE7D..BE97 ; H3 # Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
+BE98 ; H2 # Lo HANGUL SYLLABLE BBYA
+BE99..BEB3 ; H3 # Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
+BEB4 ; H2 # Lo HANGUL SYLLABLE BBYAE
+BEB5..BECF ; H3 # Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
+BED0 ; H2 # Lo HANGUL SYLLABLE BBEO
+BED1..BEEB ; H3 # Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
+BEEC ; H2 # Lo HANGUL SYLLABLE BBE
+BEED..BF07 ; H3 # Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
+BF08 ; H2 # Lo HANGUL SYLLABLE BBYEO
+BF09..BF23 ; H3 # Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
+BF24 ; H2 # Lo HANGUL SYLLABLE BBYE
+BF25..BF3F ; H3 # Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
+BF40 ; H2 # Lo HANGUL SYLLABLE BBO
+BF41..BF5B ; H3 # Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
+BF5C ; H2 # Lo HANGUL SYLLABLE BBWA
+BF5D..BF77 ; H3 # Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
+BF78 ; H2 # Lo HANGUL SYLLABLE BBWAE
+BF79..BF93 ; H3 # Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
+BF94 ; H2 # Lo HANGUL SYLLABLE BBOE
+BF95..BFAF ; H3 # Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
+BFB0 ; H2 # Lo HANGUL SYLLABLE BBYO
+BFB1..BFCB ; H3 # Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
+BFCC ; H2 # Lo HANGUL SYLLABLE BBU
+BFCD..BFE7 ; H3 # Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
+BFE8 ; H2 # Lo HANGUL SYLLABLE BBWEO
+BFE9..C003 ; H3 # Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
+C004 ; H2 # Lo HANGUL SYLLABLE BBWE
+C005..C01F ; H3 # Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
+C020 ; H2 # Lo HANGUL SYLLABLE BBWI
+C021..C03B ; H3 # Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
+C03C ; H2 # Lo HANGUL SYLLABLE BBYU
+C03D..C057 ; H3 # Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
+C058 ; H2 # Lo HANGUL SYLLABLE BBEU
+C059..C073 ; H3 # Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
+C074 ; H2 # Lo HANGUL SYLLABLE BBYI
+C075..C08F ; H3 # Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
+C090 ; H2 # Lo HANGUL SYLLABLE BBI
+C091..C0AB ; H3 # Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
+C0AC ; H2 # Lo HANGUL SYLLABLE SA
+C0AD..C0C7 ; H3 # Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
+C0C8 ; H2 # Lo HANGUL SYLLABLE SAE
+C0C9..C0E3 ; H3 # Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
+C0E4 ; H2 # Lo HANGUL SYLLABLE SYA
+C0E5..C0FF ; H3 # Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
+C100 ; H2 # Lo HANGUL SYLLABLE SYAE
+C101..C11B ; H3 # Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
+C11C ; H2 # Lo HANGUL SYLLABLE SEO
+C11D..C137 ; H3 # Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
+C138 ; H2 # Lo HANGUL SYLLABLE SE
+C139..C153 ; H3 # Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
+C154 ; H2 # Lo HANGUL SYLLABLE SYEO
+C155..C16F ; H3 # Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
+C170 ; H2 # Lo HANGUL SYLLABLE SYE
+C171..C18B ; H3 # Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
+C18C ; H2 # Lo HANGUL SYLLABLE SO
+C18D..C1A7 ; H3 # Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
+C1A8 ; H2 # Lo HANGUL SYLLABLE SWA
+C1A9..C1C3 ; H3 # Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
+C1C4 ; H2 # Lo HANGUL SYLLABLE SWAE
+C1C5..C1DF ; H3 # Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
+C1E0 ; H2 # Lo HANGUL SYLLABLE SOE
+C1E1..C1FB ; H3 # Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
+C1FC ; H2 # Lo HANGUL SYLLABLE SYO
+C1FD..C217 ; H3 # Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
+C218 ; H2 # Lo HANGUL SYLLABLE SU
+C219..C233 ; H3 # Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
+C234 ; H2 # Lo HANGUL SYLLABLE SWEO
+C235..C24F ; H3 # Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
+C250 ; H2 # Lo HANGUL SYLLABLE SWE
+C251..C26B ; H3 # Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
+C26C ; H2 # Lo HANGUL SYLLABLE SWI
+C26D..C287 ; H3 # Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
+C288 ; H2 # Lo HANGUL SYLLABLE SYU
+C289..C2A3 ; H3 # Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
+C2A4 ; H2 # Lo HANGUL SYLLABLE SEU
+C2A5..C2BF ; H3 # Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
+C2C0 ; H2 # Lo HANGUL SYLLABLE SYI
+C2C1..C2DB ; H3 # Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
+C2DC ; H2 # Lo HANGUL SYLLABLE SI
+C2DD..C2F7 ; H3 # Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
+C2F8 ; H2 # Lo HANGUL SYLLABLE SSA
+C2F9..C313 ; H3 # Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
+C314 ; H2 # Lo HANGUL SYLLABLE SSAE
+C315..C32F ; H3 # Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
+C330 ; H2 # Lo HANGUL SYLLABLE SSYA
+C331..C34B ; H3 # Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
+C34C ; H2 # Lo HANGUL SYLLABLE SSYAE
+C34D..C367 ; H3 # Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
+C368 ; H2 # Lo HANGUL SYLLABLE SSEO
+C369..C383 ; H3 # Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
+C384 ; H2 # Lo HANGUL SYLLABLE SSE
+C385..C39F ; H3 # Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
+C3A0 ; H2 # Lo HANGUL SYLLABLE SSYEO
+C3A1..C3BB ; H3 # Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
+C3BC ; H2 # Lo HANGUL SYLLABLE SSYE
+C3BD..C3D7 ; H3 # Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
+C3D8 ; H2 # Lo HANGUL SYLLABLE SSO
+C3D9..C3F3 ; H3 # Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
+C3F4 ; H2 # Lo HANGUL SYLLABLE SSWA
+C3F5..C40F ; H3 # Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
+C410 ; H2 # Lo HANGUL SYLLABLE SSWAE
+C411..C42B ; H3 # Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
+C42C ; H2 # Lo HANGUL SYLLABLE SSOE
+C42D..C447 ; H3 # Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
+C448 ; H2 # Lo HANGUL SYLLABLE SSYO
+C449..C463 ; H3 # Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
+C464 ; H2 # Lo HANGUL SYLLABLE SSU
+C465..C47F ; H3 # Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
+C480 ; H2 # Lo HANGUL SYLLABLE SSWEO
+C481..C49B ; H3 # Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
+C49C ; H2 # Lo HANGUL SYLLABLE SSWE
+C49D..C4B7 ; H3 # Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
+C4B8 ; H2 # Lo HANGUL SYLLABLE SSWI
+C4B9..C4D3 ; H3 # Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
+C4D4 ; H2 # Lo HANGUL SYLLABLE SSYU
+C4D5..C4EF ; H3 # Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
+C4F0 ; H2 # Lo HANGUL SYLLABLE SSEU
+C4F1..C50B ; H3 # Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
+C50C ; H2 # Lo HANGUL SYLLABLE SSYI
+C50D..C527 ; H3 # Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
+C528 ; H2 # Lo HANGUL SYLLABLE SSI
+C529..C543 ; H3 # Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
+C544 ; H2 # Lo HANGUL SYLLABLE A
+C545..C55F ; H3 # Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
+C560 ; H2 # Lo HANGUL SYLLABLE AE
+C561..C57B ; H3 # Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
+C57C ; H2 # Lo HANGUL SYLLABLE YA
+C57D..C597 ; H3 # Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
+C598 ; H2 # Lo HANGUL SYLLABLE YAE
+C599..C5B3 ; H3 # Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
+C5B4 ; H2 # Lo HANGUL SYLLABLE EO
+C5B5..C5CF ; H3 # Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
+C5D0 ; H2 # Lo HANGUL SYLLABLE E
+C5D1..C5EB ; H3 # Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
+C5EC ; H2 # Lo HANGUL SYLLABLE YEO
+C5ED..C607 ; H3 # Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
+C608 ; H2 # Lo HANGUL SYLLABLE YE
+C609..C623 ; H3 # Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
+C624 ; H2 # Lo HANGUL SYLLABLE O
+C625..C63F ; H3 # Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
+C640 ; H2 # Lo HANGUL SYLLABLE WA
+C641..C65B ; H3 # Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
+C65C ; H2 # Lo HANGUL SYLLABLE WAE
+C65D..C677 ; H3 # Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
+C678 ; H2 # Lo HANGUL SYLLABLE OE
+C679..C693 ; H3 # Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
+C694 ; H2 # Lo HANGUL SYLLABLE YO
+C695..C6AF ; H3 # Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
+C6B0 ; H2 # Lo HANGUL SYLLABLE U
+C6B1..C6CB ; H3 # Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
+C6CC ; H2 # Lo HANGUL SYLLABLE WEO
+C6CD..C6E7 ; H3 # Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
+C6E8 ; H2 # Lo HANGUL SYLLABLE WE
+C6E9..C703 ; H3 # Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
+C704 ; H2 # Lo HANGUL SYLLABLE WI
+C705..C71F ; H3 # Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
+C720 ; H2 # Lo HANGUL SYLLABLE YU
+C721..C73B ; H3 # Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
+C73C ; H2 # Lo HANGUL SYLLABLE EU
+C73D..C757 ; H3 # Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
+C758 ; H2 # Lo HANGUL SYLLABLE YI
+C759..C773 ; H3 # Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
+C774 ; H2 # Lo HANGUL SYLLABLE I
+C775..C78F ; H3 # Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
+C790 ; H2 # Lo HANGUL SYLLABLE JA
+C791..C7AB ; H3 # Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
+C7AC ; H2 # Lo HANGUL SYLLABLE JAE
+C7AD..C7C7 ; H3 # Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
+C7C8 ; H2 # Lo HANGUL SYLLABLE JYA
+C7C9..C7E3 ; H3 # Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
+C7E4 ; H2 # Lo HANGUL SYLLABLE JYAE
+C7E5..C7FF ; H3 # Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
+C800 ; H2 # Lo HANGUL SYLLABLE JEO
+C801..C81B ; H3 # Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
+C81C ; H2 # Lo HANGUL SYLLABLE JE
+C81D..C837 ; H3 # Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
+C838 ; H2 # Lo HANGUL SYLLABLE JYEO
+C839..C853 ; H3 # Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
+C854 ; H2 # Lo HANGUL SYLLABLE JYE
+C855..C86F ; H3 # Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
+C870 ; H2 # Lo HANGUL SYLLABLE JO
+C871..C88B ; H3 # Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
+C88C ; H2 # Lo HANGUL SYLLABLE JWA
+C88D..C8A7 ; H3 # Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
+C8A8 ; H2 # Lo HANGUL SYLLABLE JWAE
+C8A9..C8C3 ; H3 # Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
+C8C4 ; H2 # Lo HANGUL SYLLABLE JOE
+C8C5..C8DF ; H3 # Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
+C8E0 ; H2 # Lo HANGUL SYLLABLE JYO
+C8E1..C8FB ; H3 # Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
+C8FC ; H2 # Lo HANGUL SYLLABLE JU
+C8FD..C917 ; H3 # Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
+C918 ; H2 # Lo HANGUL SYLLABLE JWEO
+C919..C933 ; H3 # Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
+C934 ; H2 # Lo HANGUL SYLLABLE JWE
+C935..C94F ; H3 # Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
+C950 ; H2 # Lo HANGUL SYLLABLE JWI
+C951..C96B ; H3 # Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
+C96C ; H2 # Lo HANGUL SYLLABLE JYU
+C96D..C987 ; H3 # Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
+C988 ; H2 # Lo HANGUL SYLLABLE JEU
+C989..C9A3 ; H3 # Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
+C9A4 ; H2 # Lo HANGUL SYLLABLE JYI
+C9A5..C9BF ; H3 # Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
+C9C0 ; H2 # Lo HANGUL SYLLABLE JI
+C9C1..C9DB ; H3 # Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
+C9DC ; H2 # Lo HANGUL SYLLABLE JJA
+C9DD..C9F7 ; H3 # Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
+C9F8 ; H2 # Lo HANGUL SYLLABLE JJAE
+C9F9..CA13 ; H3 # Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
+CA14 ; H2 # Lo HANGUL SYLLABLE JJYA
+CA15..CA2F ; H3 # Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
+CA30 ; H2 # Lo HANGUL SYLLABLE JJYAE
+CA31..CA4B ; H3 # Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
+CA4C ; H2 # Lo HANGUL SYLLABLE JJEO
+CA4D..CA67 ; H3 # Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
+CA68 ; H2 # Lo HANGUL SYLLABLE JJE
+CA69..CA83 ; H3 # Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
+CA84 ; H2 # Lo HANGUL SYLLABLE JJYEO
+CA85..CA9F ; H3 # Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
+CAA0 ; H2 # Lo HANGUL SYLLABLE JJYE
+CAA1..CABB ; H3 # Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
+CABC ; H2 # Lo HANGUL SYLLABLE JJO
+CABD..CAD7 ; H3 # Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
+CAD8 ; H2 # Lo HANGUL SYLLABLE JJWA
+CAD9..CAF3 ; H3 # Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
+CAF4 ; H2 # Lo HANGUL SYLLABLE JJWAE
+CAF5..CB0F ; H3 # Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
+CB10 ; H2 # Lo HANGUL SYLLABLE JJOE
+CB11..CB2B ; H3 # Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
+CB2C ; H2 # Lo HANGUL SYLLABLE JJYO
+CB2D..CB47 ; H3 # Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
+CB48 ; H2 # Lo HANGUL SYLLABLE JJU
+CB49..CB63 ; H3 # Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
+CB64 ; H2 # Lo HANGUL SYLLABLE JJWEO
+CB65..CB7F ; H3 # Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
+CB80 ; H2 # Lo HANGUL SYLLABLE JJWE
+CB81..CB9B ; H3 # Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
+CB9C ; H2 # Lo HANGUL SYLLABLE JJWI
+CB9D..CBB7 ; H3 # Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
+CBB8 ; H2 # Lo HANGUL SYLLABLE JJYU
+CBB9..CBD3 ; H3 # Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
+CBD4 ; H2 # Lo HANGUL SYLLABLE JJEU
+CBD5..CBEF ; H3 # Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
+CBF0 ; H2 # Lo HANGUL SYLLABLE JJYI
+CBF1..CC0B ; H3 # Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
+CC0C ; H2 # Lo HANGUL SYLLABLE JJI
+CC0D..CC27 ; H3 # Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
+CC28 ; H2 # Lo HANGUL SYLLABLE CA
+CC29..CC43 ; H3 # Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
+CC44 ; H2 # Lo HANGUL SYLLABLE CAE
+CC45..CC5F ; H3 # Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
+CC60 ; H2 # Lo HANGUL SYLLABLE CYA
+CC61..CC7B ; H3 # Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
+CC7C ; H2 # Lo HANGUL SYLLABLE CYAE
+CC7D..CC97 ; H3 # Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
+CC98 ; H2 # Lo HANGUL SYLLABLE CEO
+CC99..CCB3 ; H3 # Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
+CCB4 ; H2 # Lo HANGUL SYLLABLE CE
+CCB5..CCCF ; H3 # Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
+CCD0 ; H2 # Lo HANGUL SYLLABLE CYEO
+CCD1..CCEB ; H3 # Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
+CCEC ; H2 # Lo HANGUL SYLLABLE CYE
+CCED..CD07 ; H3 # Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
+CD08 ; H2 # Lo HANGUL SYLLABLE CO
+CD09..CD23 ; H3 # Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
+CD24 ; H2 # Lo HANGUL SYLLABLE CWA
+CD25..CD3F ; H3 # Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
+CD40 ; H2 # Lo HANGUL SYLLABLE CWAE
+CD41..CD5B ; H3 # Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
+CD5C ; H2 # Lo HANGUL SYLLABLE COE
+CD5D..CD77 ; H3 # Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
+CD78 ; H2 # Lo HANGUL SYLLABLE CYO
+CD79..CD93 ; H3 # Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
+CD94 ; H2 # Lo HANGUL SYLLABLE CU
+CD95..CDAF ; H3 # Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
+CDB0 ; H2 # Lo HANGUL SYLLABLE CWEO
+CDB1..CDCB ; H3 # Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
+CDCC ; H2 # Lo HANGUL SYLLABLE CWE
+CDCD..CDE7 ; H3 # Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
+CDE8 ; H2 # Lo HANGUL SYLLABLE CWI
+CDE9..CE03 ; H3 # Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
+CE04 ; H2 # Lo HANGUL SYLLABLE CYU
+CE05..CE1F ; H3 # Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
+CE20 ; H2 # Lo HANGUL SYLLABLE CEU
+CE21..CE3B ; H3 # Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
+CE3C ; H2 # Lo HANGUL SYLLABLE CYI
+CE3D..CE57 ; H3 # Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
+CE58 ; H2 # Lo HANGUL SYLLABLE CI
+CE59..CE73 ; H3 # Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
+CE74 ; H2 # Lo HANGUL SYLLABLE KA
+CE75..CE8F ; H3 # Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
+CE90 ; H2 # Lo HANGUL SYLLABLE KAE
+CE91..CEAB ; H3 # Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
+CEAC ; H2 # Lo HANGUL SYLLABLE KYA
+CEAD..CEC7 ; H3 # Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
+CEC8 ; H2 # Lo HANGUL SYLLABLE KYAE
+CEC9..CEE3 ; H3 # Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
+CEE4 ; H2 # Lo HANGUL SYLLABLE KEO
+CEE5..CEFF ; H3 # Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
+CF00 ; H2 # Lo HANGUL SYLLABLE KE
+CF01..CF1B ; H3 # Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
+CF1C ; H2 # Lo HANGUL SYLLABLE KYEO
+CF1D..CF37 ; H3 # Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
+CF38 ; H2 # Lo HANGUL SYLLABLE KYE
+CF39..CF53 ; H3 # Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
+CF54 ; H2 # Lo HANGUL SYLLABLE KO
+CF55..CF6F ; H3 # Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
+CF70 ; H2 # Lo HANGUL SYLLABLE KWA
+CF71..CF8B ; H3 # Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
+CF8C ; H2 # Lo HANGUL SYLLABLE KWAE
+CF8D..CFA7 ; H3 # Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
+CFA8 ; H2 # Lo HANGUL SYLLABLE KOE
+CFA9..CFC3 ; H3 # Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
+CFC4 ; H2 # Lo HANGUL SYLLABLE KYO
+CFC5..CFDF ; H3 # Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
+CFE0 ; H2 # Lo HANGUL SYLLABLE KU
+CFE1..CFFB ; H3 # Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
+CFFC ; H2 # Lo HANGUL SYLLABLE KWEO
+CFFD..D017 ; H3 # Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
+D018 ; H2 # Lo HANGUL SYLLABLE KWE
+D019..D033 ; H3 # Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
+D034 ; H2 # Lo HANGUL SYLLABLE KWI
+D035..D04F ; H3 # Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
+D050 ; H2 # Lo HANGUL SYLLABLE KYU
+D051..D06B ; H3 # Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
+D06C ; H2 # Lo HANGUL SYLLABLE KEU
+D06D..D087 ; H3 # Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
+D088 ; H2 # Lo HANGUL SYLLABLE KYI
+D089..D0A3 ; H3 # Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
+D0A4 ; H2 # Lo HANGUL SYLLABLE KI
+D0A5..D0BF ; H3 # Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
+D0C0 ; H2 # Lo HANGUL SYLLABLE TA
+D0C1..D0DB ; H3 # Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
+D0DC ; H2 # Lo HANGUL SYLLABLE TAE
+D0DD..D0F7 ; H3 # Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
+D0F8 ; H2 # Lo HANGUL SYLLABLE TYA
+D0F9..D113 ; H3 # Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
+D114 ; H2 # Lo HANGUL SYLLABLE TYAE
+D115..D12F ; H3 # Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
+D130 ; H2 # Lo HANGUL SYLLABLE TEO
+D131..D14B ; H3 # Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
+D14C ; H2 # Lo HANGUL SYLLABLE TE
+D14D..D167 ; H3 # Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
+D168 ; H2 # Lo HANGUL SYLLABLE TYEO
+D169..D183 ; H3 # Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
+D184 ; H2 # Lo HANGUL SYLLABLE TYE
+D185..D19F ; H3 # Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
+D1A0 ; H2 # Lo HANGUL SYLLABLE TO
+D1A1..D1BB ; H3 # Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
+D1BC ; H2 # Lo HANGUL SYLLABLE TWA
+D1BD..D1D7 ; H3 # Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
+D1D8 ; H2 # Lo HANGUL SYLLABLE TWAE
+D1D9..D1F3 ; H3 # Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
+D1F4 ; H2 # Lo HANGUL SYLLABLE TOE
+D1F5..D20F ; H3 # Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
+D210 ; H2 # Lo HANGUL SYLLABLE TYO
+D211..D22B ; H3 # Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
+D22C ; H2 # Lo HANGUL SYLLABLE TU
+D22D..D247 ; H3 # Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
+D248 ; H2 # Lo HANGUL SYLLABLE TWEO
+D249..D263 ; H3 # Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
+D264 ; H2 # Lo HANGUL SYLLABLE TWE
+D265..D27F ; H3 # Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
+D280 ; H2 # Lo HANGUL SYLLABLE TWI
+D281..D29B ; H3 # Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
+D29C ; H2 # Lo HANGUL SYLLABLE TYU
+D29D..D2B7 ; H3 # Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
+D2B8 ; H2 # Lo HANGUL SYLLABLE TEU
+D2B9..D2D3 ; H3 # Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
+D2D4 ; H2 # Lo HANGUL SYLLABLE TYI
+D2D5..D2EF ; H3 # Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
+D2F0 ; H2 # Lo HANGUL SYLLABLE TI
+D2F1..D30B ; H3 # Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
+D30C ; H2 # Lo HANGUL SYLLABLE PA
+D30D..D327 ; H3 # Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
+D328 ; H2 # Lo HANGUL SYLLABLE PAE
+D329..D343 ; H3 # Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
+D344 ; H2 # Lo HANGUL SYLLABLE PYA
+D345..D35F ; H3 # Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
+D360 ; H2 # Lo HANGUL SYLLABLE PYAE
+D361..D37B ; H3 # Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
+D37C ; H2 # Lo HANGUL SYLLABLE PEO
+D37D..D397 ; H3 # Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
+D398 ; H2 # Lo HANGUL SYLLABLE PE
+D399..D3B3 ; H3 # Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
+D3B4 ; H2 # Lo HANGUL SYLLABLE PYEO
+D3B5..D3CF ; H3 # Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
+D3D0 ; H2 # Lo HANGUL SYLLABLE PYE
+D3D1..D3EB ; H3 # Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
+D3EC ; H2 # Lo HANGUL SYLLABLE PO
+D3ED..D407 ; H3 # Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
+D408 ; H2 # Lo HANGUL SYLLABLE PWA
+D409..D423 ; H3 # Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
+D424 ; H2 # Lo HANGUL SYLLABLE PWAE
+D425..D43F ; H3 # Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
+D440 ; H2 # Lo HANGUL SYLLABLE POE
+D441..D45B ; H3 # Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
+D45C ; H2 # Lo HANGUL SYLLABLE PYO
+D45D..D477 ; H3 # Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
+D478 ; H2 # Lo HANGUL SYLLABLE PU
+D479..D493 ; H3 # Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
+D494 ; H2 # Lo HANGUL SYLLABLE PWEO
+D495..D4AF ; H3 # Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
+D4B0 ; H2 # Lo HANGUL SYLLABLE PWE
+D4B1..D4CB ; H3 # Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
+D4CC ; H2 # Lo HANGUL SYLLABLE PWI
+D4CD..D4E7 ; H3 # Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
+D4E8 ; H2 # Lo HANGUL SYLLABLE PYU
+D4E9..D503 ; H3 # Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
+D504 ; H2 # Lo HANGUL SYLLABLE PEU
+D505..D51F ; H3 # Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
+D520 ; H2 # Lo HANGUL SYLLABLE PYI
+D521..D53B ; H3 # Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
+D53C ; H2 # Lo HANGUL SYLLABLE PI
+D53D..D557 ; H3 # Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
+D558 ; H2 # Lo HANGUL SYLLABLE HA
+D559..D573 ; H3 # Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
+D574 ; H2 # Lo HANGUL SYLLABLE HAE
+D575..D58F ; H3 # Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
+D590 ; H2 # Lo HANGUL SYLLABLE HYA
+D591..D5AB ; H3 # Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
+D5AC ; H2 # Lo HANGUL SYLLABLE HYAE
+D5AD..D5C7 ; H3 # Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
+D5C8 ; H2 # Lo HANGUL SYLLABLE HEO
+D5C9..D5E3 ; H3 # Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
+D5E4 ; H2 # Lo HANGUL SYLLABLE HE
+D5E5..D5FF ; H3 # Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
+D600 ; H2 # Lo HANGUL SYLLABLE HYEO
+D601..D61B ; H3 # Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
+D61C ; H2 # Lo HANGUL SYLLABLE HYE
+D61D..D637 ; H3 # Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
+D638 ; H2 # Lo HANGUL SYLLABLE HO
+D639..D653 ; H3 # Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
+D654 ; H2 # Lo HANGUL SYLLABLE HWA
+D655..D66F ; H3 # Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
+D670 ; H2 # Lo HANGUL SYLLABLE HWAE
+D671..D68B ; H3 # Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
+D68C ; H2 # Lo HANGUL SYLLABLE HOE
+D68D..D6A7 ; H3 # Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
+D6A8 ; H2 # Lo HANGUL SYLLABLE HYO
+D6A9..D6C3 ; H3 # Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
+D6C4 ; H2 # Lo HANGUL SYLLABLE HU
+D6C5..D6DF ; H3 # Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
+D6E0 ; H2 # Lo HANGUL SYLLABLE HWEO
+D6E1..D6FB ; H3 # Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
+D6FC ; H2 # Lo HANGUL SYLLABLE HWE
+D6FD..D717 ; H3 # Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
+D718 ; H2 # Lo HANGUL SYLLABLE HWI
+D719..D733 ; H3 # Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
+D734 ; H2 # Lo HANGUL SYLLABLE HYU
+D735..D74F ; H3 # Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
+D750 ; H2 # Lo HANGUL SYLLABLE HEU
+D751..D76B ; H3 # Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
+D76C ; H2 # Lo HANGUL SYLLABLE HYI
+D76D..D787 ; H3 # Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
+D788 ; H2 # Lo HANGUL SYLLABLE HI
+D789..D7A3 ; H3 # Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
+D7B0..D7C6 ; JV # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
+D7CB..D7FB ; JT # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
+D800..DB7F ; SG # Cs [896] <surrogate-D800>..<surrogate-DB7F>
+DB80..DBFF ; SG # Cs [128] <surrogate-DB80>..<surrogate-DBFF>
+DC00..DFFF ; SG # Cs [1024] <surrogate-DC00>..<surrogate-DFFF>
+E000..F8FF ; XX # Co [6400] <private-use-E000>..<private-use-F8FF>
+F900..FA6D ; ID # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
+FA6E..FA6F ; ID # Cn [2] <reserved-FA6E>..<reserved-FA6F>
+FA70..FAD9 ; ID # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+FADA..FAFF ; ID # Cn [38] <reserved-FADA>..<reserved-FAFF>
+FB00..FB06 ; AL # Ll [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+FB13..FB17 ; AL # Ll [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+FB1D ; HL # Lo HEBREW LETTER YOD WITH HIRIQ
+FB1E ; CM # Mn HEBREW POINT JUDEO-SPANISH VARIKA
+FB1F..FB28 ; HL # Lo [10] HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+FB29 ; AL # Sm HEBREW LETTER ALTERNATIVE PLUS SIGN
+FB2A..FB36 ; HL # Lo [13] HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+FB38..FB3C ; HL # Lo [5] HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+FB3E ; HL # Lo HEBREW LETTER MEM WITH DAGESH
+FB40..FB41 ; HL # Lo [2] HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+FB43..FB44 ; HL # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+FB46..FB4F ; HL # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED
+FB50..FBB1 ; AL # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+FBB2..FBC2 ; AL # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
+FBD3..FD3D ; AL # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD3E ; CL # Pe ORNATE LEFT PARENTHESIS
+FD3F ; OP # Ps ORNATE RIGHT PARENTHESIS
+FD40..FD4F ; AL # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
+FD50..FD8F ; AL # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+FD92..FDC7 ; AL # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDCF ; AL # So ARABIC LIGATURE SALAAMUHU ALAYNAA
+FDF0..FDFB ; AL # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+FDFC ; PO # Sc RIAL SIGN
+FDFD..FDFF ; AL # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
+FE00..FE0F ; CM # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
+FE10 ; IS # Po PRESENTATION FORM FOR VERTICAL COMMA
+FE11..FE12 ; CL # Po [2] PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA..PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
+FE13..FE14 ; IS # Po [2] PRESENTATION FORM FOR VERTICAL COLON..PRESENTATION FORM FOR VERTICAL SEMICOLON
+FE15..FE16 ; EX # Po [2] PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+FE17 ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+FE18 ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+FE19 ; IN # Po PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+FE20..FE2F ; CM # Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+FE30 ; ID # Po PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+FE31..FE32 ; ID # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+FE33..FE34 ; ID # Pc [2] PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+FE35 ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+FE36 ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+FE37 ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+FE38 ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+FE39 ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+FE3A ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+FE3B ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+FE3C ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+FE3D ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+FE3E ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+FE3F ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+FE40 ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+FE41 ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+FE42 ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+FE43 ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+FE44 ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+FE45..FE46 ; ID # Po [2] SESAME DOT..WHITE SESAME DOT
+FE47 ; OP # Ps PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+FE48 ; CL # Pe PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+FE49..FE4C ; ID # Po [4] DASHED OVERLINE..DOUBLE WAVY OVERLINE
+FE4D..FE4F ; ID # Pc [3] DASHED LOW LINE..WAVY LOW LINE
+FE50 ; CL # Po SMALL COMMA
+FE51 ; ID # Po SMALL IDEOGRAPHIC COMMA
+FE52 ; CL # Po SMALL FULL STOP
+FE54..FE55 ; NS # Po [2] SMALL SEMICOLON..SMALL COLON
+FE56..FE57 ; EX # Po [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK
+FE58 ; ID # Pd SMALL EM DASH
+FE59 ; OP # Ps SMALL LEFT PARENTHESIS
+FE5A ; CL # Pe SMALL RIGHT PARENTHESIS
+FE5B ; OP # Ps SMALL LEFT CURLY BRACKET
+FE5C ; CL # Pe SMALL RIGHT CURLY BRACKET
+FE5D ; OP # Ps SMALL LEFT TORTOISE SHELL BRACKET
+FE5E ; CL # Pe SMALL RIGHT TORTOISE SHELL BRACKET
+FE5F..FE61 ; ID # Po [3] SMALL NUMBER SIGN..SMALL ASTERISK
+FE62 ; ID # Sm SMALL PLUS SIGN
+FE63 ; ID # Pd SMALL HYPHEN-MINUS
+FE64..FE66 ; ID # Sm [3] SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+FE68 ; ID # Po SMALL REVERSE SOLIDUS
+FE69 ; PR # Sc SMALL DOLLAR SIGN
+FE6A ; PO # Po SMALL PERCENT SIGN
+FE6B ; ID # Po SMALL COMMERCIAL AT
+FE70..FE74 ; AL # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
+FE76..FEFC ; AL # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+FEFF ; WJ # Cf ZERO WIDTH NO-BREAK SPACE
+FF01 ; EX # Po FULLWIDTH EXCLAMATION MARK
+FF02..FF03 ; ID # Po [2] FULLWIDTH QUOTATION MARK..FULLWIDTH NUMBER SIGN
+FF04 ; PR # Sc FULLWIDTH DOLLAR SIGN
+FF05 ; PO # Po FULLWIDTH PERCENT SIGN
+FF06..FF07 ; ID # Po [2] FULLWIDTH AMPERSAND..FULLWIDTH APOSTROPHE
+FF08 ; OP # Ps FULLWIDTH LEFT PARENTHESIS
+FF09 ; CL # Pe FULLWIDTH RIGHT PARENTHESIS
+FF0A ; ID # Po FULLWIDTH ASTERISK
+FF0B ; ID # Sm FULLWIDTH PLUS SIGN
+FF0C ; CL # Po FULLWIDTH COMMA
+FF0D ; ID # Pd FULLWIDTH HYPHEN-MINUS
+FF0E ; CL # Po FULLWIDTH FULL STOP
+FF0F ; ID # Po FULLWIDTH SOLIDUS
+FF10..FF19 ; ID # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+FF1A..FF1B ; NS # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON
+FF1C..FF1E ; ID # Sm [3] FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+FF1F ; EX # Po FULLWIDTH QUESTION MARK
+FF20 ; ID # Po FULLWIDTH COMMERCIAL AT
+FF21..FF3A ; ID # Lu [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+FF3B ; OP # Ps FULLWIDTH LEFT SQUARE BRACKET
+FF3C ; ID # Po FULLWIDTH REVERSE SOLIDUS
+FF3D ; CL # Pe FULLWIDTH RIGHT SQUARE BRACKET
+FF3E ; ID # Sk FULLWIDTH CIRCUMFLEX ACCENT
+FF3F ; ID # Pc FULLWIDTH LOW LINE
+FF40 ; ID # Sk FULLWIDTH GRAVE ACCENT
+FF41..FF5A ; ID # Ll [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+FF5B ; OP # Ps FULLWIDTH LEFT CURLY BRACKET
+FF5C ; ID # Sm FULLWIDTH VERTICAL LINE
+FF5D ; CL # Pe FULLWIDTH RIGHT CURLY BRACKET
+FF5E ; ID # Sm FULLWIDTH TILDE
+FF5F ; OP # Ps FULLWIDTH LEFT WHITE PARENTHESIS
+FF60 ; CL # Pe FULLWIDTH RIGHT WHITE PARENTHESIS
+FF61 ; CL # Po HALFWIDTH IDEOGRAPHIC FULL STOP
+FF62 ; OP # Ps HALFWIDTH LEFT CORNER BRACKET
+FF63 ; CL # Pe HALFWIDTH RIGHT CORNER BRACKET
+FF64 ; CL # Po HALFWIDTH IDEOGRAPHIC COMMA
+FF65 ; NS # Po HALFWIDTH KATAKANA MIDDLE DOT
+FF66 ; ID # Lo HALFWIDTH KATAKANA LETTER WO
+FF67..FF6F ; CJ # Lo [9] HALFWIDTH KATAKANA LETTER SMALL A..HALFWIDTH KATAKANA LETTER SMALL TU
+FF70 ; CJ # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+FF71..FF9D ; ID # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+FF9E..FF9F ; NS # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+FFA0..FFBE ; ID # Lo [31] HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+FFC2..FFC7 ; ID # Lo [6] HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+FFCA..FFCF ; ID # Lo [6] HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+FFD2..FFD7 ; ID # Lo [6] HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+FFDA..FFDC ; ID # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+FFE0 ; PO # Sc FULLWIDTH CENT SIGN
+FFE1 ; PR # Sc FULLWIDTH POUND SIGN
+FFE2 ; ID # Sm FULLWIDTH NOT SIGN
+FFE3 ; ID # Sk FULLWIDTH MACRON
+FFE4 ; ID # So FULLWIDTH BROKEN BAR
+FFE5..FFE6 ; PR # Sc [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+FFE8 ; AL # So HALFWIDTH FORMS LIGHT VERTICAL
+FFE9..FFEC ; AL # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+FFED..FFEE ; AL # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+FFF9..FFFB ; CM # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
+FFFC ; CB # So OBJECT REPLACEMENT CHARACTER
+FFFD ; AI # So REPLACEMENT CHARACTER
+10000..1000B ; AL # Lo [12] LINEAR B SYLLABLE B008 A..LINEAR B SYLLABLE B046 JE
+1000D..10026 ; AL # Lo [26] LINEAR B SYLLABLE B036 JO..LINEAR B SYLLABLE B032 QO
+10028..1003A ; AL # Lo [19] LINEAR B SYLLABLE B060 RA..LINEAR B SYLLABLE B042 WO
+1003C..1003D ; AL # Lo [2] LINEAR B SYLLABLE B017 ZA..LINEAR B SYLLABLE B074 ZE
+1003F..1004D ; AL # Lo [15] LINEAR B SYLLABLE B020 ZO..LINEAR B SYLLABLE B091 TWO
+10050..1005D ; AL # Lo [14] LINEAR B SYMBOL B018..LINEAR B SYMBOL B089
+10080..100FA ; AL # Lo [123] LINEAR B IDEOGRAM B100 MAN..LINEAR B IDEOGRAM VESSEL B305
+10100..10102 ; BA # Po [3] AEGEAN WORD SEPARATOR LINE..AEGEAN CHECK MARK
+10107..10133 ; AL # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
+10137..1013F ; AL # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
+10140..10174 ; AL # Nl [53] GREEK ACROPHONIC ATTIC ONE QUARTER..GREEK ACROPHONIC STRATIAN FIFTY MNAS
+10175..10178 ; AL # No [4] GREEK ONE HALF SIGN..GREEK THREE QUARTERS SIGN
+10179..10189 ; AL # So [17] GREEK YEAR SIGN..GREEK TRYBLION BASE SIGN
+1018A..1018B ; AL # No [2] GREEK ZERO SIGN..GREEK ONE QUARTER SIGN
+1018C..1018E ; AL # So [3] GREEK SINUSOID SIGN..NOMISMA SIGN
+10190..1019C ; AL # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
+101A0 ; AL # So GREEK SYMBOL TAU RHO
+101D0..101FC ; AL # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
+101FD ; CM # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
+10280..1029C ; AL # Lo [29] LYCIAN LETTER A..LYCIAN LETTER X
+102A0..102D0 ; AL # Lo [49] CARIAN LETTER A..CARIAN LETTER UUU3
+102E0 ; CM # Mn COPTIC EPACT THOUSANDS MARK
+102E1..102FB ; AL # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
+10300..1031F ; AL # Lo [32] OLD ITALIC LETTER A..OLD ITALIC LETTER ESS
+10320..10323 ; AL # No [4] OLD ITALIC NUMERAL ONE..OLD ITALIC NUMERAL FIFTY
+1032D..1032F ; AL # Lo [3] OLD ITALIC LETTER YE..OLD ITALIC LETTER SOUTHERN TSE
+10330..10340 ; AL # Lo [17] GOTHIC LETTER AHSA..GOTHIC LETTER PAIRTHRA
+10341 ; AL # Nl GOTHIC LETTER NINETY
+10342..10349 ; AL # Lo [8] GOTHIC LETTER RAIDA..GOTHIC LETTER OTHAL
+1034A ; AL # Nl GOTHIC LETTER NINE HUNDRED
+10350..10375 ; AL # Lo [38] OLD PERMIC LETTER AN..OLD PERMIC LETTER IA
+10376..1037A ; CM # Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
+10380..1039D ; AL # Lo [30] UGARITIC LETTER ALPA..UGARITIC LETTER SSU
+1039F ; BA # Po UGARITIC WORD DIVIDER
+103A0..103C3 ; AL # Lo [36] OLD PERSIAN SIGN A..OLD PERSIAN SIGN HA
+103C8..103CF ; AL # Lo [8] OLD PERSIAN SIGN AURAMAZDAA..OLD PERSIAN SIGN BUUMISH
+103D0 ; BA # Po OLD PERSIAN WORD DIVIDER
+103D1..103D5 ; AL # Nl [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED
+10400..1044F ; AL # L& [80] DESERET CAPITAL LETTER LONG I..DESERET SMALL LETTER EW
+10450..1047F ; AL # Lo [48] SHAVIAN LETTER PEEP..SHAVIAN LETTER YEW
+10480..1049D ; AL # Lo [30] OSMANYA LETTER ALEF..OSMANYA LETTER OO
+104A0..104A9 ; NU # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
+104B0..104D3 ; AL # Lu [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
+104D8..104FB ; AL # Ll [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+10500..10527 ; AL # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
+10530..10563 ; AL # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+1056F ; AL # Po CAUCASIAN ALBANIAN CITATION MARK
+10570..1057A ; AL # Lu [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+1057C..1058A ; AL # Lu [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+1058C..10592 ; AL # Lu [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+10594..10595 ; AL # Lu [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
+10597..105A1 ; AL # Ll [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+105A3..105B1 ; AL # Ll [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+105B3..105B9 ; AL # Ll [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+105BB..105BC ; AL # Ll [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+10600..10736 ; AL # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
+10740..10755 ; AL # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
+10760..10767 ; AL # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10780..10785 ; AL # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; AL # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; AL # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+10800..10805 ; AL # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
+10808 ; AL # Lo CYPRIOT SYLLABLE JO
+1080A..10835 ; AL # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
+10837..10838 ; AL # Lo [2] CYPRIOT SYLLABLE XA..CYPRIOT SYLLABLE XE
+1083C ; AL # Lo CYPRIOT SYLLABLE ZA
+1083F ; AL # Lo CYPRIOT SYLLABLE ZO
+10840..10855 ; AL # Lo [22] IMPERIAL ARAMAIC LETTER ALEPH..IMPERIAL ARAMAIC LETTER TAW
+10857 ; BA # Po IMPERIAL ARAMAIC SECTION SIGN
+10858..1085F ; AL # No [8] IMPERIAL ARAMAIC NUMBER ONE..IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+10860..10876 ; AL # Lo [23] PALMYRENE LETTER ALEPH..PALMYRENE LETTER TAW
+10877..10878 ; AL # So [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON
+10879..1087F ; AL # No [7] PALMYRENE NUMBER ONE..PALMYRENE NUMBER TWENTY
+10880..1089E ; AL # Lo [31] NABATAEAN LETTER FINAL ALEPH..NABATAEAN LETTER TAW
+108A7..108AF ; AL # No [9] NABATAEAN NUMBER ONE..NABATAEAN NUMBER ONE HUNDRED
+108E0..108F2 ; AL # Lo [19] HATRAN LETTER ALEPH..HATRAN LETTER QOPH
+108F4..108F5 ; AL # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW
+108FB..108FF ; AL # No [5] HATRAN NUMBER ONE..HATRAN NUMBER ONE HUNDRED
+10900..10915 ; AL # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU
+10916..1091B ; AL # No [6] PHOENICIAN NUMBER ONE..PHOENICIAN NUMBER THREE
+1091F ; BA # Po PHOENICIAN WORD SEPARATOR
+10920..10939 ; AL # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C
+1093F ; AL # Po LYDIAN TRIANGULAR MARK
+10980..1099F ; AL # Lo [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2
+109A0..109B7 ; AL # Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA
+109BC..109BD ; AL # No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF
+109BE..109BF ; AL # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN
+109C0..109CF ; AL # No [16] MEROITIC CURSIVE NUMBER ONE..MEROITIC CURSIVE NUMBER SEVENTY
+109D2..109FF ; AL # No [46] MEROITIC CURSIVE NUMBER ONE HUNDRED..MEROITIC CURSIVE FRACTION TEN TWELFTHS
+10A00 ; AL # Lo KHAROSHTHI LETTER A
+10A01..10A03 ; CM # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
+10A05..10A06 ; CM # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
+10A0C..10A0F ; CM # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
+10A10..10A13 ; AL # Lo [4] KHAROSHTHI LETTER KA..KHAROSHTHI LETTER GHA
+10A15..10A17 ; AL # Lo [3] KHAROSHTHI LETTER CA..KHAROSHTHI LETTER JA
+10A19..10A35 ; AL # Lo [29] KHAROSHTHI LETTER NYA..KHAROSHTHI LETTER VHA
+10A38..10A3A ; CM # Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
+10A3F ; CM # Mn KHAROSHTHI VIRAMA
+10A40..10A48 ; AL # No [9] KHAROSHTHI DIGIT ONE..KHAROSHTHI FRACTION ONE HALF
+10A50..10A57 ; BA # Po [8] KHAROSHTHI PUNCTUATION DOT..KHAROSHTHI PUNCTUATION DOUBLE DANDA
+10A58 ; AL # Po KHAROSHTHI PUNCTUATION LINES
+10A60..10A7C ; AL # Lo [29] OLD SOUTH ARABIAN LETTER HE..OLD SOUTH ARABIAN LETTER THETH
+10A7D..10A7E ; AL # No [2] OLD SOUTH ARABIAN NUMBER ONE..OLD SOUTH ARABIAN NUMBER FIFTY
+10A7F ; AL # Po OLD SOUTH ARABIAN NUMERIC INDICATOR
+10A80..10A9C ; AL # Lo [29] OLD NORTH ARABIAN LETTER HEH..OLD NORTH ARABIAN LETTER ZAH
+10A9D..10A9F ; AL # No [3] OLD NORTH ARABIAN NUMBER ONE..OLD NORTH ARABIAN NUMBER TWENTY
+10AC0..10AC7 ; AL # Lo [8] MANICHAEAN LETTER ALEPH..MANICHAEAN LETTER WAW
+10AC8 ; AL # So MANICHAEAN SIGN UD
+10AC9..10AE4 ; AL # Lo [28] MANICHAEAN LETTER ZAYIN..MANICHAEAN LETTER TAW
+10AE5..10AE6 ; CM # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
+10AEB..10AEF ; AL # No [5] MANICHAEAN NUMBER ONE..MANICHAEAN NUMBER ONE HUNDRED
+10AF0..10AF5 ; BA # Po [6] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION TWO DOTS
+10AF6 ; IN # Po MANICHAEAN PUNCTUATION LINE FILLER
+10B00..10B35 ; AL # Lo [54] AVESTAN LETTER A..AVESTAN LETTER HE
+10B39..10B3F ; BA # Po [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION
+10B40..10B55 ; AL # Lo [22] INSCRIPTIONAL PARTHIAN LETTER ALEPH..INSCRIPTIONAL PARTHIAN LETTER TAW
+10B58..10B5F ; AL # No [8] INSCRIPTIONAL PARTHIAN NUMBER ONE..INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
+10B60..10B72 ; AL # Lo [19] INSCRIPTIONAL PAHLAVI LETTER ALEPH..INSCRIPTIONAL PAHLAVI LETTER TAW
+10B78..10B7F ; AL # No [8] INSCRIPTIONAL PAHLAVI NUMBER ONE..INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
+10B80..10B91 ; AL # Lo [18] PSALTER PAHLAVI LETTER ALEPH..PSALTER PAHLAVI LETTER TAW
+10B99..10B9C ; AL # Po [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT
+10BA9..10BAF ; AL # No [7] PSALTER PAHLAVI NUMBER ONE..PSALTER PAHLAVI NUMBER ONE HUNDRED
+10C00..10C48 ; AL # Lo [73] OLD TURKIC LETTER ORKHON A..OLD TURKIC LETTER ORKHON BASH
+10C80..10CB2 ; AL # Lu [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
+10CC0..10CF2 ; AL # Ll [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
+10CFA..10CFF ; AL # No [6] OLD HUNGARIAN NUMBER ONE..OLD HUNGARIAN NUMBER ONE THOUSAND
+10D00..10D23 ; AL # Lo [36] HANIFI ROHINGYA LETTER A..HANIFI ROHINGYA MARK NA KHONNA
+10D24..10D27 ; CM # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
+10D30..10D39 ; NU # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
+10E60..10E7E ; AL # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10E80..10EA9 ; AL # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET
+10EAB..10EAC ; CM # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EAD ; BA # Pd YEZIDI HYPHENATION MARK
+10EB0..10EB1 ; AL # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE
+10EFD..10EFF ; CM # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
+10F00..10F1C ; AL # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
+10F1D..10F26 ; AL # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF
+10F27 ; AL # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
+10F30..10F45 ; AL # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10F46..10F50 ; CM # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+10F51..10F54 ; AL # No [4] SOGDIAN NUMBER ONE..SOGDIAN NUMBER ONE HUNDRED
+10F55..10F59 ; AL # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F70..10F81 ; AL # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
+10F82..10F85 ; CM # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
+10F86..10F89 ; AL # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
+10FB0..10FC4 ; AL # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
+10FC5..10FCB ; AL # No [7] CHORASMIAN NUMBER ONE..CHORASMIAN NUMBER ONE HUNDRED
+10FE0..10FF6 ; AL # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
+11000 ; CM # Mc BRAHMI SIGN CANDRABINDU
+11001 ; CM # Mn BRAHMI SIGN ANUSVARA
+11002 ; CM # Mc BRAHMI SIGN VISARGA
+11003..11004 ; AP # Lo [2] BRAHMI SIGN JIHVAMULIYA..BRAHMI SIGN UPADHMANIYA
+11005..11037 ; AK # Lo [51] BRAHMI LETTER A..BRAHMI LETTER OLD TAMIL NNNA
+11038..11045 ; CM # Mn [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU
+11046 ; VI # Mn BRAHMI VIRAMA
+11047..11048 ; BA # Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
+11049..1104D ; ID # Po [5] BRAHMI PUNCTUATION DOT..BRAHMI PUNCTUATION LOTUS
+11052..11065 ; ID # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
+11066..1106F ; AS # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+11070 ; CM # Mn BRAHMI SIGN OLD TAMIL VIRAMA
+11071..11072 ; AK # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
+11073..11074 ; CM # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+11075 ; AK # Lo BRAHMI LETTER OLD TAMIL LLA
+1107F ; GL # Mn BRAHMI NUMBER JOINER
+11080..11081 ; CM # Mn [2] KAITHI SIGN CANDRABINDU..KAITHI SIGN ANUSVARA
+11082 ; CM # Mc KAITHI SIGN VISARGA
+11083..110AF ; AL # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
+110B0..110B2 ; CM # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
+110B3..110B6 ; CM # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
+110B7..110B8 ; CM # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
+110B9..110BA ; CM # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110BB..110BC ; AL # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
+110BD ; NU # Cf KAITHI NUMBER SIGN
+110BE..110C1 ; BA # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110C2 ; CM # Mn KAITHI VOWEL SIGN VOCALIC R
+110CD ; NU # Cf KAITHI NUMBER SIGN ABOVE
+110D0..110E8 ; AL # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
+110F0..110F9 ; NU # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
+11100..11102 ; CM # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
+11103..11126 ; AL # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
+11127..1112B ; CM # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
+1112C ; CM # Mc CHAKMA VOWEL SIGN E
+1112D..11134 ; CM # Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
+11136..1113F ; NU # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
+11140..11143 ; BA # Po [4] CHAKMA SECTION MARK..CHAKMA QUESTION MARK
+11144 ; AL # Lo CHAKMA LETTER LHAA
+11145..11146 ; CM # Mc [2] CHAKMA VOWEL SIGN AA..CHAKMA VOWEL SIGN EI
+11147 ; AL # Lo CHAKMA LETTER VAA
+11150..11172 ; AL # Lo [35] MAHAJANI LETTER A..MAHAJANI LETTER RRA
+11173 ; CM # Mn MAHAJANI SIGN NUKTA
+11174 ; AL # Po MAHAJANI ABBREVIATION SIGN
+11175 ; BB # Po MAHAJANI SECTION MARK
+11176 ; AL # Lo MAHAJANI LIGATURE SHRI
+11180..11181 ; CM # Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
+11182 ; CM # Mc SHARADA SIGN VISARGA
+11183..111B2 ; AL # Lo [48] SHARADA LETTER A..SHARADA LETTER HA
+111B3..111B5 ; CM # Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
+111B6..111BE ; CM # Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
+111BF..111C0 ; CM # Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
+111C1..111C4 ; AL # Lo [4] SHARADA SIGN AVAGRAHA..SHARADA OM
+111C5..111C6 ; BA # Po [2] SHARADA DANDA..SHARADA DOUBLE DANDA
+111C7 ; AL # Po SHARADA ABBREVIATION SIGN
+111C8 ; BA # Po SHARADA SEPARATOR
+111C9..111CC ; CM # Mn [4] SHARADA SANDHI MARK..SHARADA EXTRA SHORT VOWEL MARK
+111CD ; AL # Po SHARADA SUTRA MARK
+111CE ; CM # Mc SHARADA VOWEL SIGN PRISHTHAMATRA E
+111CF ; CM # Mn SHARADA SIGN INVERTED CANDRABINDU
+111D0..111D9 ; NU # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
+111DA ; AL # Lo SHARADA EKAM
+111DB ; BB # Po SHARADA SIGN SIDDHAM
+111DC ; AL # Lo SHARADA HEADSTROKE
+111DD..111DF ; BA # Po [3] SHARADA CONTINUATION SIGN..SHARADA SECTION MARK-2
+111E1..111F4 ; AL # No [20] SINHALA ARCHAIC DIGIT ONE..SINHALA ARCHAIC NUMBER ONE THOUSAND
+11200..11211 ; AL # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
+11213..1122B ; AL # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1122C..1122E ; CM # Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
+1122F..11231 ; CM # Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
+11232..11233 ; CM # Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
+11234 ; CM # Mn KHOJKI SIGN ANUSVARA
+11235 ; CM # Mc KHOJKI SIGN VIRAMA
+11236..11237 ; CM # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
+11238..11239 ; BA # Po [2] KHOJKI DANDA..KHOJKI DOUBLE DANDA
+1123A ; AL # Po KHOJKI WORD SEPARATOR
+1123B..1123C ; BA # Po [2] KHOJKI SECTION MARK..KHOJKI DOUBLE SECTION MARK
+1123D ; AL # Po KHOJKI ABBREVIATION SIGN
+1123E ; CM # Mn KHOJKI SIGN SUKUN
+1123F..11240 ; AL # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241 ; CM # Mn KHOJKI VOWEL SIGN VOCALIC R
+11280..11286 ; AL # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
+11288 ; AL # Lo MULTANI LETTER GHA
+1128A..1128D ; AL # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
+1128F..1129D ; AL # Lo [15] MULTANI LETTER NYA..MULTANI LETTER BA
+1129F..112A8 ; AL # Lo [10] MULTANI LETTER BHA..MULTANI LETTER RHA
+112A9 ; BA # Po MULTANI SECTION MARK
+112B0..112DE ; AL # Lo [47] KHUDAWADI LETTER A..KHUDAWADI LETTER HA
+112DF ; CM # Mn KHUDAWADI SIGN ANUSVARA
+112E0..112E2 ; CM # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
+112E3..112EA ; CM # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
+112F0..112F9 ; NU # Nd [10] KHUDAWADI DIGIT ZERO..KHUDAWADI DIGIT NINE
+11300..11301 ; CM # Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
+11302..11303 ; CM # Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
+11305..1130C ; AK # Lo [8] GRANTHA LETTER A..GRANTHA LETTER VOCALIC L
+1130F..11310 ; AK # Lo [2] GRANTHA LETTER EE..GRANTHA LETTER AI
+11313..11328 ; AK # Lo [22] GRANTHA LETTER OO..GRANTHA LETTER NA
+1132A..11330 ; AK # Lo [7] GRANTHA LETTER PA..GRANTHA LETTER RA
+11332..11333 ; AK # Lo [2] GRANTHA LETTER LA..GRANTHA LETTER LLA
+11335..11339 ; AK # Lo [5] GRANTHA LETTER VA..GRANTHA LETTER HA
+1133B..1133C ; CM # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
+1133D ; BA # Lo GRANTHA SIGN AVAGRAHA
+1133E..1133F ; CM # Mc [2] GRANTHA VOWEL SIGN AA..GRANTHA VOWEL SIGN I
+11340 ; CM # Mn GRANTHA VOWEL SIGN II
+11341..11344 ; CM # Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
+11347..11348 ; CM # Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
+1134B..1134C ; CM # Mc [2] GRANTHA VOWEL SIGN OO..GRANTHA VOWEL SIGN AU
+1134D ; VI # Mc GRANTHA SIGN VIRAMA
+11350 ; AS # Lo GRANTHA OM
+11357 ; CM # Mc GRANTHA AU LENGTH MARK
+1135D ; BA # Lo GRANTHA SIGN PLUTA
+1135E..1135F ; AS # Lo [2] GRANTHA LETTER VEDIC ANUSVARA..GRANTHA LETTER VEDIC DOUBLE ANUSVARA
+11360..11361 ; AK # Lo [2] GRANTHA LETTER VOCALIC RR..GRANTHA LETTER VOCALIC LL
+11362..11363 ; CM # Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
+11366..1136C ; CM # Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
+11370..11374 ; CM # Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
+11400..11434 ; AL # Lo [53] NEWA LETTER A..NEWA LETTER HA
+11435..11437 ; CM # Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
+11438..1143F ; CM # Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
+11440..11441 ; CM # Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
+11442..11444 ; CM # Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
+11445 ; CM # Mc NEWA SIGN VISARGA
+11446 ; CM # Mn NEWA SIGN NUKTA
+11447..1144A ; AL # Lo [4] NEWA SIGN AVAGRAHA..NEWA SIDDHI
+1144B..1144E ; BA # Po [4] NEWA DANDA..NEWA GAP FILLER
+1144F ; AL # Po NEWA ABBREVIATION SIGN
+11450..11459 ; NU # Nd [10] NEWA DIGIT ZERO..NEWA DIGIT NINE
+1145A..1145B ; BA # Po [2] NEWA DOUBLE COMMA..NEWA PLACEHOLDER MARK
+1145D ; AL # Po NEWA INSERTION SIGN
+1145E ; CM # Mn NEWA SANDHI MARK
+1145F..11461 ; AL # Lo [3] NEWA LETTER VEDIC ANUSVARA..NEWA SIGN UPADHMANIYA
+11480..114AF ; AL # Lo [48] TIRHUTA ANJI..TIRHUTA LETTER HA
+114B0..114B2 ; CM # Mc [3] TIRHUTA VOWEL SIGN AA..TIRHUTA VOWEL SIGN II
+114B3..114B8 ; CM # Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
+114B9 ; CM # Mc TIRHUTA VOWEL SIGN E
+114BA ; CM # Mn TIRHUTA VOWEL SIGN SHORT E
+114BB..114BE ; CM # Mc [4] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN AU
+114BF..114C0 ; CM # Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
+114C1 ; CM # Mc TIRHUTA SIGN VISARGA
+114C2..114C3 ; CM # Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
+114C4..114C5 ; AL # Lo [2] TIRHUTA SIGN AVAGRAHA..TIRHUTA GVANG
+114C6 ; AL # Po TIRHUTA ABBREVIATION SIGN
+114C7 ; AL # Lo TIRHUTA OM
+114D0..114D9 ; NU # Nd [10] TIRHUTA DIGIT ZERO..TIRHUTA DIGIT NINE
+11580..115AE ; AL # Lo [47] SIDDHAM LETTER A..SIDDHAM LETTER HA
+115AF..115B1 ; CM # Mc [3] SIDDHAM VOWEL SIGN AA..SIDDHAM VOWEL SIGN II
+115B2..115B5 ; CM # Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
+115B8..115BB ; CM # Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
+115BC..115BD ; CM # Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
+115BE ; CM # Mc SIDDHAM SIGN VISARGA
+115BF..115C0 ; CM # Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
+115C1 ; BB # Po SIDDHAM SIGN SIDDHAM
+115C2..115C3 ; BA # Po [2] SIDDHAM DANDA..SIDDHAM DOUBLE DANDA
+115C4..115C5 ; EX # Po [2] SIDDHAM SEPARATOR DOT..SIDDHAM SEPARATOR BAR
+115C6..115C8 ; AL # Po [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3
+115C9..115D7 ; BA # Po [15] SIDDHAM END OF TEXT MARK..SIDDHAM SECTION MARK WITH CIRCLES AND FOUR ENCLOSURES
+115D8..115DB ; AL # Lo [4] SIDDHAM LETTER THREE-CIRCLE ALTERNATE I..SIDDHAM LETTER ALTERNATE U
+115DC..115DD ; CM # Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
+11600..1162F ; AL # Lo [48] MODI LETTER A..MODI LETTER LLA
+11630..11632 ; CM # Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
+11633..1163A ; CM # Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
+1163B..1163C ; CM # Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
+1163D ; CM # Mn MODI SIGN ANUSVARA
+1163E ; CM # Mc MODI SIGN VISARGA
+1163F..11640 ; CM # Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
+11641..11642 ; BA # Po [2] MODI DANDA..MODI DOUBLE DANDA
+11643 ; AL # Po MODI ABBREVIATION SIGN
+11644 ; AL # Lo MODI SIGN HUVA
+11650..11659 ; NU # Nd [10] MODI DIGIT ZERO..MODI DIGIT NINE
+11660..1166C ; BB # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
+11680..116AA ; AL # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
+116AB ; CM # Mn TAKRI SIGN ANUSVARA
+116AC ; CM # Mc TAKRI SIGN VISARGA
+116AD ; CM # Mn TAKRI VOWEL SIGN AA
+116AE..116AF ; CM # Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
+116B0..116B5 ; CM # Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
+116B6 ; CM # Mc TAKRI SIGN VIRAMA
+116B7 ; CM # Mn TAKRI SIGN NUKTA
+116B8 ; AL # Lo TAKRI LETTER ARCHAIC KHA
+116B9 ; AL # Po TAKRI ABBREVIATION SIGN
+116C0..116C9 ; NU # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
+11700..1171A ; SA # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
+1171D..1171F ; SA # Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
+11720..11721 ; SA # Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
+11722..11725 ; SA # Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
+11726 ; SA # Mc AHOM VOWEL SIGN E
+11727..1172B ; SA # Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
+11730..11739 ; NU # Nd [10] AHOM DIGIT ZERO..AHOM DIGIT NINE
+1173A..1173B ; SA # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
+1173C..1173E ; BA # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
+1173F ; SA # So AHOM SYMBOL VI
+11740..11746 ; SA # Lo [7] AHOM LETTER CA..AHOM LETTER LLA
+11800..1182B ; AL # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
+1182C..1182E ; CM # Mc [3] DOGRA VOWEL SIGN AA..DOGRA VOWEL SIGN II
+1182F..11837 ; CM # Mn [9] DOGRA VOWEL SIGN U..DOGRA SIGN ANUSVARA
+11838 ; CM # Mc DOGRA SIGN VISARGA
+11839..1183A ; CM # Mn [2] DOGRA SIGN VIRAMA..DOGRA SIGN NUKTA
+1183B ; AL # Po DOGRA ABBREVIATION SIGN
+118A0..118DF ; AL # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
+118E0..118E9 ; NU # Nd [10] WARANG CITI DIGIT ZERO..WARANG CITI DIGIT NINE
+118EA..118F2 ; AL # No [9] WARANG CITI NUMBER TEN..WARANG CITI NUMBER NINETY
+118FF ; AL # Lo WARANG CITI OM
+11900..11906 ; AK # Lo [7] DIVES AKURU LETTER A..DIVES AKURU LETTER E
+11909 ; AK # Lo DIVES AKURU LETTER O
+1190C..11913 ; AK # Lo [8] DIVES AKURU LETTER KA..DIVES AKURU LETTER JA
+11915..11916 ; AK # Lo [2] DIVES AKURU LETTER NYA..DIVES AKURU LETTER TTA
+11918..1192F ; AK # Lo [24] DIVES AKURU LETTER DDA..DIVES AKURU LETTER ZA
+11930..11935 ; CM # Mc [6] DIVES AKURU VOWEL SIGN AA..DIVES AKURU VOWEL SIGN E
+11937..11938 ; CM # Mc [2] DIVES AKURU VOWEL SIGN AI..DIVES AKURU VOWEL SIGN O
+1193B..1193C ; CM # Mn [2] DIVES AKURU SIGN ANUSVARA..DIVES AKURU SIGN CANDRABINDU
+1193D ; CM # Mc DIVES AKURU SIGN HALANTA
+1193E ; VI # Mn DIVES AKURU VIRAMA
+1193F ; AP # Lo DIVES AKURU PREFIXED NASAL SIGN
+11940 ; CM # Mc DIVES AKURU MEDIAL YA
+11941 ; AP # Lo DIVES AKURU INITIAL RA
+11942 ; CM # Mc DIVES AKURU MEDIAL RA
+11943 ; CM # Mn DIVES AKURU SIGN NUKTA
+11944..11946 ; BA # Po [3] DIVES AKURU DOUBLE DANDA..DIVES AKURU END OF TEXT MARK
+11950..11959 ; ID # Nd [10] DIVES AKURU DIGIT ZERO..DIVES AKURU DIGIT NINE
+119A0..119A7 ; AL # Lo [8] NANDINAGARI LETTER A..NANDINAGARI LETTER VOCALIC RR
+119AA..119D0 ; AL # Lo [39] NANDINAGARI LETTER E..NANDINAGARI LETTER RRA
+119D1..119D3 ; CM # Mc [3] NANDINAGARI VOWEL SIGN AA..NANDINAGARI VOWEL SIGN II
+119D4..119D7 ; CM # Mn [4] NANDINAGARI VOWEL SIGN U..NANDINAGARI VOWEL SIGN VOCALIC RR
+119DA..119DB ; CM # Mn [2] NANDINAGARI VOWEL SIGN E..NANDINAGARI VOWEL SIGN AI
+119DC..119DF ; CM # Mc [4] NANDINAGARI VOWEL SIGN O..NANDINAGARI SIGN VISARGA
+119E0 ; CM # Mn NANDINAGARI SIGN VIRAMA
+119E1 ; AL # Lo NANDINAGARI SIGN AVAGRAHA
+119E2 ; BB # Po NANDINAGARI SIGN SIDDHAM
+119E3 ; AL # Lo NANDINAGARI HEADSTROKE
+119E4 ; CM # Mc NANDINAGARI VOWEL SIGN PRISHTHAMATRA E
+11A00 ; AL # Lo ZANABAZAR SQUARE LETTER A
+11A01..11A0A ; CM # Mn [10] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL LENGTH MARK
+11A0B..11A32 ; AL # Lo [40] ZANABAZAR SQUARE LETTER KA..ZANABAZAR SQUARE LETTER KSSA
+11A33..11A38 ; CM # Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
+11A39 ; CM # Mc ZANABAZAR SQUARE SIGN VISARGA
+11A3A ; AL # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
+11A3B..11A3E ; CM # Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
+11A3F ; BB # Po ZANABAZAR SQUARE INITIAL HEAD MARK
+11A40 ; AL # Po ZANABAZAR SQUARE CLOSING HEAD MARK
+11A41..11A44 ; BA # Po [4] ZANABAZAR SQUARE MARK TSHEG..ZANABAZAR SQUARE MARK LONG TSHEG
+11A45 ; BB # Po ZANABAZAR SQUARE INITIAL DOUBLE-LINED HEAD MARK
+11A46 ; AL # Po ZANABAZAR SQUARE CLOSING DOUBLE-LINED HEAD MARK
+11A47 ; CM # Mn ZANABAZAR SQUARE SUBJOINER
+11A50 ; AL # Lo SOYOMBO LETTER A
+11A51..11A56 ; CM # Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
+11A57..11A58 ; CM # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
+11A59..11A5B ; CM # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
+11A5C..11A89 ; AL # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
+11A8A..11A96 ; CM # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
+11A97 ; CM # Mc SOYOMBO SIGN VISARGA
+11A98..11A99 ; CM # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
+11A9A..11A9C ; BA # Po [3] SOYOMBO MARK TSHEG..SOYOMBO MARK DOUBLE SHAD
+11A9D ; AL # Lo SOYOMBO MARK PLUTA
+11A9E..11AA0 ; BB # Po [3] SOYOMBO HEAD MARK WITH MOON AND SUN AND TRIPLE FLAME..SOYOMBO HEAD MARK WITH MOON AND SUN
+11AA1..11AA2 ; BA # Po [2] SOYOMBO TERMINAL MARK-1..SOYOMBO TERMINAL MARK-2
+11AB0..11ABF ; AL # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
+11AC0..11AF8 ; AL # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11B00..11B09 ; BB # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
+11C00..11C08 ; AL # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
+11C0A..11C2E ; AL # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
+11C2F ; CM # Mc BHAIKSUKI VOWEL SIGN AA
+11C30..11C36 ; CM # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
+11C38..11C3D ; CM # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
+11C3E ; CM # Mc BHAIKSUKI SIGN VISARGA
+11C3F ; CM # Mn BHAIKSUKI SIGN VIRAMA
+11C40 ; AL # Lo BHAIKSUKI SIGN AVAGRAHA
+11C41..11C45 ; BA # Po [5] BHAIKSUKI DANDA..BHAIKSUKI GAP FILLER-2
+11C50..11C59 ; NU # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
+11C5A..11C6C ; AL # No [19] BHAIKSUKI NUMBER ONE..BHAIKSUKI HUNDREDS UNIT MARK
+11C70 ; BB # Po MARCHEN HEAD MARK
+11C71 ; EX # Po MARCHEN MARK SHAD
+11C72..11C8F ; AL # Lo [30] MARCHEN LETTER KA..MARCHEN LETTER A
+11C92..11CA7 ; CM # Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
+11CA9 ; CM # Mc MARCHEN SUBJOINED LETTER YA
+11CAA..11CB0 ; CM # Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
+11CB1 ; CM # Mc MARCHEN VOWEL SIGN I
+11CB2..11CB3 ; CM # Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
+11CB4 ; CM # Mc MARCHEN VOWEL SIGN O
+11CB5..11CB6 ; CM # Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
+11D00..11D06 ; AL # Lo [7] MASARAM GONDI LETTER A..MASARAM GONDI LETTER E
+11D08..11D09 ; AL # Lo [2] MASARAM GONDI LETTER AI..MASARAM GONDI LETTER O
+11D0B..11D30 ; AL # Lo [38] MASARAM GONDI LETTER AU..MASARAM GONDI LETTER TRA
+11D31..11D36 ; CM # Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
+11D3A ; CM # Mn MASARAM GONDI VOWEL SIGN E
+11D3C..11D3D ; CM # Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
+11D3F..11D45 ; CM # Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
+11D46 ; AL # Lo MASARAM GONDI REPHA
+11D47 ; CM # Mn MASARAM GONDI RA-KARA
+11D50..11D59 ; NU # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
+11D60..11D65 ; AL # Lo [6] GUNJALA GONDI LETTER A..GUNJALA GONDI LETTER UU
+11D67..11D68 ; AL # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI
+11D6A..11D89 ; AL # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
+11D8A..11D8E ; CM # Mc [5] GUNJALA GONDI VOWEL SIGN AA..GUNJALA GONDI VOWEL SIGN UU
+11D90..11D91 ; CM # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI
+11D93..11D94 ; CM # Mc [2] GUNJALA GONDI VOWEL SIGN OO..GUNJALA GONDI VOWEL SIGN AU
+11D95 ; CM # Mn GUNJALA GONDI SIGN ANUSVARA
+11D96 ; CM # Mc GUNJALA GONDI SIGN VISARGA
+11D97 ; CM # Mn GUNJALA GONDI VIRAMA
+11D98 ; AL # Lo GUNJALA GONDI OM
+11DA0..11DA9 ; NU # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11EE0..11EF1 ; AS # Lo [18] MAKASAR LETTER KA..MAKASAR LETTER A
+11EF2 ; BA # Lo MAKASAR ANGKA
+11EF3..11EF4 ; CM # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
+11EF5..11EF6 ; CM # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11EF7..11EF8 ; BA # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F00..11F01 ; CM # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02 ; AP # Lo KAWI SIGN REPHA
+11F03 ; CM # Mc KAWI SIGN VISARGA
+11F04..11F10 ; AK # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33 ; AK # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35 ; CM # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; CM # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; CM # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; CM # Mn KAWI VOWEL SIGN EU
+11F41 ; CM # Mc KAWI SIGN KILLER
+11F42 ; VI # Mn KAWI CONJOINER
+11F43..11F44 ; BA # Po [2] KAWI DANDA..KAWI DOUBLE DANDA
+11F45..11F4F ; ID # Po [11] KAWI PUNCTUATION SECTION MARKER..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59 ; AS # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+11FB0 ; AL # Lo LISU LETTER YHA
+11FC0..11FD4 ; AL # No [21] TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH..TAMIL FRACTION DOWNSCALING FACTOR KIIZH
+11FD5..11FDC ; AL # So [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI
+11FDD..11FE0 ; PO # Sc [4] TAMIL SIGN KAACU..TAMIL SIGN VARAAKAN
+11FE1..11FF1 ; AL # So [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA
+11FFF ; BA # Po TAMIL PUNCTUATION END OF TEXT
+12000..12399 ; AL # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
+12400..1246E ; AL # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
+12470..12474 ; BA # Po [5] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL QUADCOLON
+12480..12543 ; AL # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
+12F90..12FF0 ; AL # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
+12FF1..12FF2 ; AL # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
+13000..13257 ; AL # Lo [600] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH O006
+13258..1325A ; OP # Lo [3] EGYPTIAN HIEROGLYPH O006A..EGYPTIAN HIEROGLYPH O006C
+1325B..1325D ; CL # Lo [3] EGYPTIAN HIEROGLYPH O006D..EGYPTIAN HIEROGLYPH O006F
+1325E..13281 ; AL # Lo [36] EGYPTIAN HIEROGLYPH O007..EGYPTIAN HIEROGLYPH O033
+13282 ; CL # Lo EGYPTIAN HIEROGLYPH O033A
+13283..13285 ; AL # Lo [3] EGYPTIAN HIEROGLYPH O034..EGYPTIAN HIEROGLYPH O036
+13286 ; OP # Lo EGYPTIAN HIEROGLYPH O036A
+13287 ; CL # Lo EGYPTIAN HIEROGLYPH O036B
+13288 ; OP # Lo EGYPTIAN HIEROGLYPH O036C
+13289 ; CL # Lo EGYPTIAN HIEROGLYPH O036D
+1328A..13378 ; AL # Lo [239] EGYPTIAN HIEROGLYPH O037..EGYPTIAN HIEROGLYPH V011
+13379 ; OP # Lo EGYPTIAN HIEROGLYPH V011A
+1337A..1337B ; CL # Lo [2] EGYPTIAN HIEROGLYPH V011B..EGYPTIAN HIEROGLYPH V011C
+1337C..1342E ; AL # Lo [179] EGYPTIAN HIEROGLYPH V012..EGYPTIAN HIEROGLYPH AA032
+1342F ; OP # Lo EGYPTIAN HIEROGLYPH V011D
+13430..13436 ; GL # Cf [7] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH OVERLAY MIDDLE
+13437 ; OP # Cf EGYPTIAN HIEROGLYPH BEGIN SEGMENT
+13438 ; CL # Cf EGYPTIAN HIEROGLYPH END SEGMENT
+13439..1343B ; GL # Cf [3] EGYPTIAN HIEROGLYPH INSERT AT MIDDLE..EGYPTIAN HIEROGLYPH INSERT AT BOTTOM
+1343C ; OP # Cf EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE
+1343D ; CL # Cf EGYPTIAN HIEROGLYPH END ENCLOSURE
+1343E ; OP # Cf EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE
+1343F ; CL # Cf EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440 ; CM # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446 ; AL # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455 ; CM # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
+14400..145CD ; AL # Lo [462] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A409
+145CE ; OP # Lo ANATOLIAN HIEROGLYPH A410 BEGIN LOGOGRAM MARK
+145CF ; CL # Lo ANATOLIAN HIEROGLYPH A410A END LOGOGRAM MARK
+145D0..14646 ; AL # Lo [119] ANATOLIAN HIEROGLYPH A411..ANATOLIAN HIEROGLYPH A530
+16800..16A38 ; AL # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
+16A40..16A5E ; AL # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16A60..16A69 ; NU # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16A6E..16A6F ; BA # Po [2] MRO DANDA..MRO DOUBLE DANDA
+16A70..16ABE ; AL # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
+16AC0..16AC9 ; NU # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
+16AD0..16AED ; AL # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
+16AF0..16AF4 ; CM # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
+16AF5 ; BA # Po BASSA VAH FULL STOP
+16B00..16B2F ; AL # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
+16B30..16B36 ; CM # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
+16B37..16B39 ; BA # Po [3] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN CIM CHEEM
+16B3A..16B3B ; AL # Po [2] PAHAWH HMONG SIGN VOS THIAB..PAHAWH HMONG SIGN VOS FEEM
+16B3C..16B3F ; AL # So [4] PAHAWH HMONG SIGN XYEEM NTXIV..PAHAWH HMONG SIGN XYEEM FAIB
+16B40..16B43 ; AL # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
+16B44 ; BA # Po PAHAWH HMONG SIGN XAUS
+16B45 ; AL # So PAHAWH HMONG SIGN CIM TSOV ROG
+16B50..16B59 ; NU # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
+16B5B..16B61 ; AL # No [7] PAHAWH HMONG NUMBER TENS..PAHAWH HMONG NUMBER TRILLIONS
+16B63..16B77 ; AL # Lo [21] PAHAWH HMONG SIGN VOS LUB..PAHAWH HMONG SIGN CIM NRES TOS
+16B7D..16B8F ; AL # Lo [19] PAHAWH HMONG CLAN SIGN TSHEEJ..PAHAWH HMONG CLAN SIGN VWJ
+16E40..16E7F ; AL # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y
+16E80..16E96 ; AL # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM
+16E97..16E98 ; BA # Po [2] MEDEFAIDRIN COMMA..MEDEFAIDRIN FULL STOP
+16E99..16E9A ; AL # Po [2] MEDEFAIDRIN SYMBOL AIVA..MEDEFAIDRIN EXCLAMATION OH
+16F00..16F4A ; AL # Lo [75] MIAO LETTER PA..MIAO LETTER RTE
+16F4F ; CM # Mn MIAO SIGN CONSONANT MODIFIER BAR
+16F50 ; AL # Lo MIAO LETTER NASALIZATION
+16F51..16F87 ; CM # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI
+16F8F..16F92 ; CM # Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
+16F93..16F9F ; AL # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8
+16FE0..16FE1 ; NS # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK
+16FE2 ; NS # Po OLD CHINESE HOOK MARK
+16FE3 ; NS # Lm OLD CHINESE ITERATION MARK
+16FE4 ; GL # Mn KHITAN SMALL SCRIPT FILLER
+16FF0..16FF1 ; CM # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
+17000..187F7 ; ID # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
+18800..18AFF ; ID # Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768
+18B00..18CD5 ; AL # Lo [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5
+18D00..18D08 ; ID # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
+1AFF0..1AFF3 ; AL # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF5..1AFFB ; AL # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFD..1AFFE ; AL # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1B000..1B0FF ; ID # Lo [256] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER RE-2
+1B100..1B122 ; ID # Lo [35] HENTAIGANA LETTER RE-3..KATAKANA LETTER ARCHAIC WU
+1B132 ; CJ # Lo HIRAGANA LETTER SMALL KO
+1B150..1B152 ; CJ # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155 ; CJ # Lo KATAKANA LETTER SMALL KO
+1B164..1B167 ; CJ # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
+1B170..1B2FB ; ID # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
+1BC00..1BC6A ; AL # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
+1BC70..1BC7C ; AL # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
+1BC80..1BC88 ; AL # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
+1BC90..1BC99 ; AL # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1BC9C ; AL # So DUPLOYAN SIGN O WITH CROSS
+1BC9D..1BC9E ; CM # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1BC9F ; BA # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
+1BCA0..1BCA3 ; CM # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1CF00..1CF2D ; CM # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; CM # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
+1CF50..1CFC3 ; AL # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
+1D000..1D0F5 ; AL # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
+1D100..1D126 ; AL # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
+1D129..1D164 ; AL # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+1D165..1D166 ; CM # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
+1D167..1D169 ; CM # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
+1D16A..1D16C ; AL # So [3] MUSICAL SYMBOL FINGERED TREMOLO-1..MUSICAL SYMBOL FINGERED TREMOLO-3
+1D16D..1D172 ; CM # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
+1D173..1D17A ; CM # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
+1D17B..1D182 ; CM # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
+1D183..1D184 ; AL # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
+1D185..1D18B ; CM # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
+1D18C..1D1A9 ; AL # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
+1D1AA..1D1AD ; CM # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
+1D1AE..1D1EA ; AL # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
+1D200..1D241 ; AL # So [66] GREEK VOCAL NOTATION SYMBOL-1..GREEK INSTRUMENTAL NOTATION SYMBOL-54
+1D242..1D244 ; CM # Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
+1D245 ; AL # So GREEK MUSICAL LEIMMA
+1D2C0..1D2D3 ; AL # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
+1D2E0..1D2F3 ; AL # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
+1D300..1D356 ; AL # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
+1D360..1D378 ; AL # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
+1D400..1D454 ; AL # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+1D456..1D49C ; AL # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+1D49E..1D49F ; AL # Lu [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+1D4A2 ; AL # Lu MATHEMATICAL SCRIPT CAPITAL G
+1D4A5..1D4A6 ; AL # Lu [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+1D4A9..1D4AC ; AL # Lu [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+1D4AE..1D4B9 ; AL # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+1D4BB ; AL # Ll MATHEMATICAL SCRIPT SMALL F
+1D4BD..1D4C3 ; AL # Ll [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+1D4C5..1D505 ; AL # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+1D507..1D50A ; AL # Lu [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+1D50D..1D514 ; AL # Lu [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+1D516..1D51C ; AL # Lu [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+1D51E..1D539 ; AL # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+1D53B..1D53E ; AL # Lu [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+1D540..1D544 ; AL # Lu [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+1D546 ; AL # Lu MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+1D54A..1D550 ; AL # Lu [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+1D552..1D6A5 ; AL # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+1D6A8..1D6C0 ; AL # Lu [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+1D6C1 ; AL # Sm MATHEMATICAL BOLD NABLA
+1D6C2..1D6DA ; AL # Ll [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+1D6DB ; AL # Sm MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+1D6DC..1D6FA ; AL # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+1D6FB ; AL # Sm MATHEMATICAL ITALIC NABLA
+1D6FC..1D714 ; AL # Ll [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+1D715 ; AL # Sm MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+1D716..1D734 ; AL # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+1D735 ; AL # Sm MATHEMATICAL BOLD ITALIC NABLA
+1D736..1D74E ; AL # Ll [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+1D74F ; AL # Sm MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+1D750..1D76E ; AL # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+1D76F ; AL # Sm MATHEMATICAL SANS-SERIF BOLD NABLA
+1D770..1D788 ; AL # Ll [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+1D789 ; AL # Sm MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+1D78A..1D7A8 ; AL # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+1D7A9 ; AL # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+1D7AA..1D7C2 ; AL # Ll [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+1D7C3 ; AL # Sm MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+1D7C4..1D7CB ; AL # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1D7CE..1D7FF ; NU # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+1D800..1D9FF ; AL # So [512] SIGNWRITING HAND-FIST INDEX..SIGNWRITING HEAD
+1DA00..1DA36 ; CM # Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
+1DA37..1DA3A ; AL # So [4] SIGNWRITING AIR BLOW SMALL ROTATIONS..SIGNWRITING BREATH EXHALE
+1DA3B..1DA6C ; CM # Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
+1DA6D..1DA74 ; AL # So [8] SIGNWRITING SHOULDER HIP SPINE..SIGNWRITING TORSO-FLOORPLANE TWISTING
+1DA75 ; CM # Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
+1DA76..1DA83 ; AL # So [14] SIGNWRITING LIMB COMBINATION..SIGNWRITING LOCATION DEPTH
+1DA84 ; CM # Mn SIGNWRITING LOCATION HEAD NECK
+1DA85..1DA86 ; AL # So [2] SIGNWRITING LOCATION TORSO..SIGNWRITING LOCATION LIMBS DIGITS
+1DA87..1DA8A ; BA # Po [4] SIGNWRITING COMMA..SIGNWRITING COLON
+1DA8B ; AL # Po SIGNWRITING PARENTHESIS
+1DA9B..1DA9F ; CM # Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
+1DAA1..1DAAF ; CM # Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
+1DF00..1DF09 ; AL # Ll [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+1DF0A ; AL # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+1DF0B..1DF1E ; AL # Ll [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A ; AL # Ll [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E000..1E006 ; CM # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
+1E008..1E018 ; CM # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
+1E01B..1E021 ; CM # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
+1E023..1E024 ; CM # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
+1E026..1E02A ; CM # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E030..1E06D ; AL # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F ; CM # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+1E100..1E12C ; AL # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
+1E130..1E136 ; CM # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E137..1E13D ; AL # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
+1E140..1E149 ; NU # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
+1E14E ; AL # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E14F ; AL # So NYIAKENG PUACHUE HMONG CIRCLED CA
+1E290..1E2AD ; AL # Lo [30] TOTO LETTER PA..TOTO LETTER A
+1E2AE ; CM # Mn TOTO SIGN RISING TONE
+1E2C0..1E2EB ; AL # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E2EC..1E2EF ; CM # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E2F0..1E2F9 ; NU # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E2FF ; PR # Sc WANCHO NGUN SIGN
+1E4D0..1E4EA ; AL # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB ; AL # Lm NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF ; CM # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9 ; NU # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+1E7E0..1E7E6 ; AL # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E8..1E7EB ; AL # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7ED..1E7EE ; AL # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7F0..1E7FE ; AL # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
+1E800..1E8C4 ; AL # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
+1E8C7..1E8CF ; AL # No [9] MENDE KIKAKUI DIGIT ONE..MENDE KIKAKUI DIGIT NINE
+1E8D0..1E8D6 ; CM # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
+1E900..1E943 ; AL # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
+1E944..1E94A ; CM # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
+1E94B ; AL # Lm ADLAM NASALIZATION MARK
+1E950..1E959 ; NU # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
+1E95E..1E95F ; OP # Po [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK
+1EC71..1ECAB ; AL # No [59] INDIC SIYAQ NUMBER ONE..INDIC SIYAQ NUMBER PREFIXED NINE
+1ECAC ; PO # So INDIC SIYAQ PLACEHOLDER
+1ECAD..1ECAF ; AL # No [3] INDIC SIYAQ FRACTION ONE QUARTER..INDIC SIYAQ FRACTION THREE QUARTERS
+1ECB0 ; PO # Sc INDIC SIYAQ RUPEE MARK
+1ECB1..1ECB4 ; AL # No [4] INDIC SIYAQ NUMBER ALTERNATE ONE..INDIC SIYAQ ALTERNATE LAKH MARK
+1ED01..1ED2D ; AL # No [45] OTTOMAN SIYAQ NUMBER ONE..OTTOMAN SIYAQ NUMBER NINETY THOUSAND
+1ED2E ; AL # So OTTOMAN SIYAQ MARRATAN
+1ED2F..1ED3D ; AL # No [15] OTTOMAN SIYAQ ALTERNATE NUMBER TWO..OTTOMAN SIYAQ FRACTION ONE SIXTH
+1EE00..1EE03 ; AL # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+1EE05..1EE1F ; AL # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+1EE21..1EE22 ; AL # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+1EE24 ; AL # Lo ARABIC MATHEMATICAL INITIAL HEH
+1EE27 ; AL # Lo ARABIC MATHEMATICAL INITIAL HAH
+1EE29..1EE32 ; AL # Lo [10] ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+1EE34..1EE37 ; AL # Lo [4] ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+1EE39 ; AL # Lo ARABIC MATHEMATICAL INITIAL DAD
+1EE3B ; AL # Lo ARABIC MATHEMATICAL INITIAL GHAIN
+1EE42 ; AL # Lo ARABIC MATHEMATICAL TAILED JEEM
+1EE47 ; AL # Lo ARABIC MATHEMATICAL TAILED HAH
+1EE49 ; AL # Lo ARABIC MATHEMATICAL TAILED YEH
+1EE4B ; AL # Lo ARABIC MATHEMATICAL TAILED LAM
+1EE4D..1EE4F ; AL # Lo [3] ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+1EE51..1EE52 ; AL # Lo [2] ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+1EE54 ; AL # Lo ARABIC MATHEMATICAL TAILED SHEEN
+1EE57 ; AL # Lo ARABIC MATHEMATICAL TAILED KHAH
+1EE59 ; AL # Lo ARABIC MATHEMATICAL TAILED DAD
+1EE5B ; AL # Lo ARABIC MATHEMATICAL TAILED GHAIN
+1EE5D ; AL # Lo ARABIC MATHEMATICAL TAILED DOTLESS NOON
+1EE5F ; AL # Lo ARABIC MATHEMATICAL TAILED DOTLESS QAF
+1EE61..1EE62 ; AL # Lo [2] ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+1EE64 ; AL # Lo ARABIC MATHEMATICAL STRETCHED HEH
+1EE67..1EE6A ; AL # Lo [4] ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+1EE6C..1EE72 ; AL # Lo [7] ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+1EE74..1EE77 ; AL # Lo [4] ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+1EE79..1EE7C ; AL # Lo [4] ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+1EE7E ; AL # Lo ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+1EE80..1EE89 ; AL # Lo [10] ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+1EE8B..1EE9B ; AL # Lo [17] ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+1EEA1..1EEA3 ; AL # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+1EEA5..1EEA9 ; AL # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+1EEAB..1EEBB ; AL # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+1EEF0..1EEF1 ; AL # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
+1F000..1F02B ; ID # So [44] MAHJONG TILE EAST WIND..MAHJONG TILE BACK
+1F02C..1F02F ; ID # Cn [4] <reserved-1F02C>..<reserved-1F02F>
+1F030..1F093 ; ID # So [100] DOMINO TILE HORIZONTAL BACK..DOMINO TILE VERTICAL-06-06
+1F094..1F09F ; ID # Cn [12] <reserved-1F094>..<reserved-1F09F>
+1F0A0..1F0AE ; ID # So [15] PLAYING CARD BACK..PLAYING CARD KING OF SPADES
+1F0AF..1F0B0 ; ID # Cn [2] <reserved-1F0AF>..<reserved-1F0B0>
+1F0B1..1F0BF ; ID # So [15] PLAYING CARD ACE OF HEARTS..PLAYING CARD RED JOKER
+1F0C0 ; ID # Cn <reserved-1F0C0>
+1F0C1..1F0CF ; ID # So [15] PLAYING CARD ACE OF DIAMONDS..PLAYING CARD BLACK JOKER
+1F0D0 ; ID # Cn <reserved-1F0D0>
+1F0D1..1F0F5 ; ID # So [37] PLAYING CARD ACE OF CLUBS..PLAYING CARD TRUMP-21
+1F0F6..1F0FF ; ID # Cn [10] <reserved-1F0F6>..<reserved-1F0FF>
+1F100..1F10C ; AI # No [13] DIGIT ZERO FULL STOP..DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ZERO
+1F10D..1F10F ; ID # So [3] CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH
+1F110..1F12D ; AI # So [30] PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED CD
+1F12E..1F12F ; AL # So [2] CIRCLED WZ..COPYLEFT SYMBOL
+1F130..1F169 ; AI # So [58] SQUARED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
+1F16A..1F16C ; AL # So [3] RAISED MC SIGN..RAISED MR SIGN
+1F16D..1F16F ; ID # So [3] CIRCLED CC..CIRCLED HUMAN FIGURE
+1F170..1F1AC ; AI # So [61] NEGATIVE SQUARED LATIN CAPITAL LETTER A..SQUARED VOD
+1F1AD ; ID # So MASK WORK SYMBOL
+1F1AE..1F1E5 ; ID # Cn [56] <reserved-1F1AE>..<reserved-1F1E5>
+1F1E6..1F1FF ; RI # So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
+1F200..1F202 ; ID # So [3] SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
+1F203..1F20F ; ID # Cn [13] <reserved-1F203>..<reserved-1F20F>
+1F210..1F23B ; ID # So [44] SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
+1F23C..1F23F ; ID # Cn [4] <reserved-1F23C>..<reserved-1F23F>
+1F240..1F248 ; ID # So [9] TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+1F249..1F24F ; ID # Cn [7] <reserved-1F249>..<reserved-1F24F>
+1F250..1F251 ; ID # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+1F252..1F25F ; ID # Cn [14] <reserved-1F252>..<reserved-1F25F>
+1F260..1F265 ; ID # So [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI
+1F266..1F2FF ; ID # Cn [154] <reserved-1F266>..<reserved-1F2FF>
+1F300..1F384 ; ID # So [133] CYCLONE..CHRISTMAS TREE
+1F385 ; EB # So FATHER CHRISTMAS
+1F386..1F39B ; ID # So [22] FIREWORKS..CONTROL KNOBS
+1F39C..1F39D ; AL # So [2] BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES
+1F39E..1F3B4 ; ID # So [23] FILM FRAMES..FLOWER PLAYING CARDS
+1F3B5..1F3B6 ; AL # So [2] MUSICAL NOTE..MULTIPLE MUSICAL NOTES
+1F3B7..1F3BB ; ID # So [5] SAXOPHONE..VIOLIN
+1F3BC ; AL # So MUSICAL SCORE
+1F3BD..1F3C1 ; ID # So [5] RUNNING SHIRT WITH SASH..CHEQUERED FLAG
+1F3C2..1F3C4 ; EB # So [3] SNOWBOARDER..SURFER
+1F3C5..1F3C6 ; ID # So [2] SPORTS MEDAL..TROPHY
+1F3C7 ; EB # So HORSE RACING
+1F3C8..1F3C9 ; ID # So [2] AMERICAN FOOTBALL..RUGBY FOOTBALL
+1F3CA..1F3CC ; EB # So [3] SWIMMER..GOLFER
+1F3CD..1F3FA ; ID # So [46] RACING MOTORCYCLE..AMPHORA
+1F3FB..1F3FF ; EM # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
+1F400..1F441 ; ID # So [66] RAT..EYE
+1F442..1F443 ; EB # So [2] EAR..NOSE
+1F444..1F445 ; ID # So [2] MOUTH..TONGUE
+1F446..1F450 ; EB # So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN
+1F451..1F465 ; ID # So [21] CROWN..BUSTS IN SILHOUETTE
+1F466..1F478 ; EB # So [19] BOY..PRINCESS
+1F479..1F47B ; ID # So [3] JAPANESE OGRE..GHOST
+1F47C ; EB # So BABY ANGEL
+1F47D..1F480 ; ID # So [4] EXTRATERRESTRIAL ALIEN..SKULL
+1F481..1F483 ; EB # So [3] INFORMATION DESK PERSON..DANCER
+1F484 ; ID # So LIPSTICK
+1F485..1F487 ; EB # So [3] NAIL POLISH..HAIRCUT
+1F488..1F48E ; ID # So [7] BARBER POLE..GEM STONE
+1F48F ; EB # So KISS
+1F490 ; ID # So BOUQUET
+1F491 ; EB # So COUPLE WITH HEART
+1F492..1F49F ; ID # So [14] WEDDING..HEART DECORATION
+1F4A0 ; AL # So DIAMOND SHAPE WITH A DOT INSIDE
+1F4A1 ; ID # So ELECTRIC LIGHT BULB
+1F4A2 ; AL # So ANGER SYMBOL
+1F4A3 ; ID # So BOMB
+1F4A4 ; AL # So SLEEPING SYMBOL
+1F4A5..1F4A9 ; ID # So [5] COLLISION SYMBOL..PILE OF POO
+1F4AA ; EB # So FLEXED BICEPS
+1F4AB..1F4AE ; ID # So [4] DIZZY SYMBOL..WHITE FLOWER
+1F4AF ; AL # So HUNDRED POINTS SYMBOL
+1F4B0 ; ID # So MONEY BAG
+1F4B1..1F4B2 ; AL # So [2] CURRENCY EXCHANGE..HEAVY DOLLAR SIGN
+1F4B3..1F4FF ; ID # So [77] CREDIT CARD..PRAYER BEADS
+1F500..1F506 ; AL # So [7] TWISTED RIGHTWARDS ARROWS..HIGH BRIGHTNESS SYMBOL
+1F507..1F516 ; ID # So [16] SPEAKER WITH CANCELLATION STROKE..BOOKMARK
+1F517..1F524 ; AL # So [14] LINK SYMBOL..INPUT SYMBOL FOR LATIN LETTERS
+1F525..1F531 ; ID # So [13] FIRE..TRIDENT EMBLEM
+1F532..1F549 ; AL # So [24] BLACK SQUARE BUTTON..OM SYMBOL
+1F54A..1F573 ; ID # So [42] DOVE OF PEACE..HOLE
+1F574..1F575 ; EB # So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY
+1F576..1F579 ; ID # So [4] DARK SUNGLASSES..JOYSTICK
+1F57A ; EB # So MAN DANCING
+1F57B..1F58F ; ID # So [21] LEFT HAND TELEPHONE RECEIVER..TURNED OK HAND SIGN
+1F590 ; EB # So RAISED HAND WITH FINGERS SPLAYED
+1F591..1F594 ; ID # So [4] REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND
+1F595..1F596 ; EB # So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
+1F597..1F5D3 ; ID # So [61] WHITE DOWN POINTING LEFT HAND INDEX..SPIRAL CALENDAR PAD
+1F5D4..1F5DB ; AL # So [8] DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL
+1F5DC..1F5F3 ; ID # So [24] COMPRESSION..BALLOT BOX WITH BALLOT
+1F5F4..1F5F9 ; AL # So [6] BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK
+1F5FA..1F5FF ; ID # So [6] WORLD MAP..MOYAI
+1F600..1F644 ; ID # So [69] GRINNING FACE..FACE WITH ROLLING EYES
+1F645..1F647 ; EB # So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY
+1F648..1F64A ; ID # So [3] SEE-NO-EVIL MONKEY..SPEAK-NO-EVIL MONKEY
+1F64B..1F64F ; EB # So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS
+1F650..1F675 ; AL # So [38] NORTH WEST POINTING LEAF..SWASH AMPERSAND ORNAMENT
+1F676..1F678 ; QU # So [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+1F679..1F67B ; NS # So [3] HEAVY INTERROBANG ORNAMENT..HEAVY SANS-SERIF INTERROBANG ORNAMENT
+1F67C..1F67F ; AL # So [4] VERY HEAVY SOLIDUS..REVERSE CHECKER BOARD
+1F680..1F6A2 ; ID # So [35] ROCKET..SHIP
+1F6A3 ; EB # So ROWBOAT
+1F6A4..1F6B3 ; ID # So [16] SPEEDBOAT..NO BICYCLES
+1F6B4..1F6B6 ; EB # So [3] BICYCLIST..PEDESTRIAN
+1F6B7..1F6BF ; ID # So [9] NO PEDESTRIANS..SHOWER
+1F6C0 ; EB # So BATH
+1F6C1..1F6CB ; ID # So [11] BATHTUB..COUCH AND LAMP
+1F6CC ; EB # So SLEEPING ACCOMMODATION
+1F6CD..1F6D7 ; ID # So [11] SHOPPING BAGS..ELEVATOR
+1F6D8..1F6DB ; ID # Cn [4] <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC..1F6EC ; ID # So [17] WIRELESS..AIRPLANE ARRIVING
+1F6ED..1F6EF ; ID # Cn [3] <reserved-1F6ED>..<reserved-1F6EF>
+1F6F0..1F6FC ; ID # So [13] SATELLITE..ROLLER SKATE
+1F6FD..1F6FF ; ID # Cn [3] <reserved-1F6FD>..<reserved-1F6FF>
+1F700..1F773 ; AL # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
+1F774..1F776 ; ID # So [3] LOT OF FORTUNE..LUNAR ECLIPSE
+1F777..1F77A ; ID # Cn [4] <reserved-1F777>..<reserved-1F77A>
+1F77B..1F77F ; ID # So [5] HAUMEA..ORCUS
+1F780..1F7D4 ; AL # So [85] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..HEAVY TWELVE POINTED PINWHEEL STAR
+1F7D5..1F7D9 ; ID # So [5] CIRCLED TRIANGLE..NINE POINTED WHITE STAR
+1F7DA..1F7DF ; ID # Cn [6] <reserved-1F7DA>..<reserved-1F7DF>
+1F7E0..1F7EB ; ID # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
+1F7EC..1F7EF ; ID # Cn [4] <reserved-1F7EC>..<reserved-1F7EF>
+1F7F0 ; ID # So HEAVY EQUALS SIGN
+1F7F1..1F7FF ; ID # Cn [15] <reserved-1F7F1>..<reserved-1F7FF>
+1F800..1F80B ; AL # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
+1F80C..1F80F ; ID # Cn [4] <reserved-1F80C>..<reserved-1F80F>
+1F810..1F847 ; AL # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
+1F848..1F84F ; ID # Cn [8] <reserved-1F848>..<reserved-1F84F>
+1F850..1F859 ; AL # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
+1F85A..1F85F ; ID # Cn [6] <reserved-1F85A>..<reserved-1F85F>
+1F860..1F887 ; AL # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
+1F888..1F88F ; ID # Cn [8] <reserved-1F888>..<reserved-1F88F>
+1F890..1F8AD ; AL # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
+1F8AE..1F8AF ; ID # Cn [2] <reserved-1F8AE>..<reserved-1F8AF>
+1F8B0..1F8B1 ; ID # So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
+1F8B2..1F8FF ; ID # Cn [78] <reserved-1F8B2>..<reserved-1F8FF>
+1F900..1F90B ; AL # So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT
+1F90C ; EB # So PINCHED FINGERS
+1F90D..1F90E ; ID # So [2] WHITE HEART..BROWN HEART
+1F90F ; EB # So PINCHING HAND
+1F910..1F917 ; ID # So [8] ZIPPER-MOUTH FACE..HUGGING FACE
+1F918..1F91F ; EB # So [8] SIGN OF THE HORNS..I LOVE YOU HAND SIGN
+1F920..1F925 ; ID # So [6] FACE WITH COWBOY HAT..LYING FACE
+1F926 ; EB # So FACE PALM
+1F927..1F92F ; ID # So [9] SNEEZING FACE..SHOCKED FACE WITH EXPLODING HEAD
+1F930..1F939 ; EB # So [10] PREGNANT WOMAN..JUGGLING
+1F93A..1F93B ; ID # So [2] FENCER..MODERN PENTATHLON
+1F93C..1F93E ; EB # So [3] WRESTLERS..HANDBALL
+1F93F..1F976 ; ID # So [56] DIVING MASK..FREEZING FACE
+1F977 ; EB # So NINJA
+1F978..1F9B4 ; ID # So [61] DISGUISED FACE..BONE
+1F9B5..1F9B6 ; EB # So [2] LEG..FOOT
+1F9B7 ; ID # So TOOTH
+1F9B8..1F9B9 ; EB # So [2] SUPERHERO..SUPERVILLAIN
+1F9BA ; ID # So SAFETY VEST
+1F9BB ; EB # So EAR WITH HEARING AID
+1F9BC..1F9CC ; ID # So [17] MOTORIZED WHEELCHAIR..TROLL
+1F9CD..1F9CF ; EB # So [3] STANDING PERSON..DEAF PERSON
+1F9D0 ; ID # So FACE WITH MONOCLE
+1F9D1..1F9DD ; EB # So [13] ADULT..ELF
+1F9DE..1F9FF ; ID # So [34] GENIE..NAZAR AMULET
+1FA00..1FA53 ; AL # So [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP
+1FA54..1FA5F ; ID # Cn [12] <reserved-1FA54>..<reserved-1FA5F>
+1FA60..1FA6D ; ID # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
+1FA6E..1FA6F ; ID # Cn [2] <reserved-1FA6E>..<reserved-1FA6F>
+1FA70..1FA7C ; ID # So [13] BALLET SHOES..CRUTCH
+1FA7D..1FA7F ; ID # Cn [3] <reserved-1FA7D>..<reserved-1FA7F>
+1FA80..1FA88 ; ID # So [9] YO-YO..FLUTE
+1FA89..1FA8F ; ID # Cn [7] <reserved-1FA89>..<reserved-1FA8F>
+1FA90..1FABD ; ID # So [46] RINGED PLANET..WING
+1FABE ; ID # Cn <reserved-1FABE>
+1FABF..1FAC2 ; ID # So [4] GOOSE..PEOPLE HUGGING
+1FAC3..1FAC5 ; EB # So [3] PREGNANT MAN..PERSON WITH CROWN
+1FAC6..1FACD ; ID # Cn [8] <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FADB ; ID # So [14] MOOSE..PEA POD
+1FADC..1FADF ; ID # Cn [4] <reserved-1FADC>..<reserved-1FADF>
+1FAE0..1FAE8 ; ID # So [9] MELTING FACE..SHAKING FACE
+1FAE9..1FAEF ; ID # Cn [7] <reserved-1FAE9>..<reserved-1FAEF>
+1FAF0..1FAF8 ; EB # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
+1FAF9..1FAFF ; ID # Cn [7] <reserved-1FAF9>..<reserved-1FAFF>
+1FB00..1FB92 ; AL # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
+1FB94..1FBCA ; AL # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
+1FBF0..1FBF9 ; NU # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
+1FC00..1FFFD ; ID # Cn [1022] <reserved-1FC00>..<reserved-1FFFD>
+20000..2A6DF ; ID # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
+2A6E0..2A6FF ; ID # Cn [32] <reserved-2A6E0>..<reserved-2A6FF>
+2A700..2B739 ; ID # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
+2B73A..2B73F ; ID # Cn [6] <reserved-2B73A>..<reserved-2B73F>
+2B740..2B81D ; ID # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
+2B81E..2B81F ; ID # Cn [2] <reserved-2B81E>..<reserved-2B81F>
+2B820..2CEA1 ; ID # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
+2CEA2..2CEAF ; ID # Cn [14] <reserved-2CEA2>..<reserved-2CEAF>
+2CEB0..2EBE0 ; ID # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+2EBE1..2EBEF ; ID # Cn [15] <reserved-2EBE1>..<reserved-2EBEF>
+2EBF0..2EE5D ; ID # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
+2EE5E..2F7FF ; ID # Cn [2466] <reserved-2EE5E>..<reserved-2F7FF>
+2F800..2FA1D ; ID # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+2FA1E..2FA1F ; ID # Cn [2] <reserved-2FA1E>..<reserved-2FA1F>
+2FA20..2FFFD ; ID # Cn [1502] <reserved-2FA20>..<reserved-2FFFD>
+30000..3134A ; ID # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+3134B..3134F ; ID # Cn [5] <reserved-3134B>..<reserved-3134F>
+31350..323AF ; ID # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
+323B0..3FFFD ; ID # Cn [56398] <reserved-323B0>..<reserved-3FFFD>
+E0001 ; CM # Cf LANGUAGE TAG
+E0020..E007F ; CM # Cf [96] TAG SPACE..CANCEL TAG
+E0100..E01EF ; CM # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
+F0000..FFFFD ; XX # Co [65534] <private-use-F0000>..<private-use-FFFFD>
+100000..10FFFD ; XX # Co [65534] <private-use-100000>..<private-use-10FFFD>
# EOF
diff --git a/util/unicode/data/NormalizationCorrections.txt b/util/unicode/data/NormalizationCorrections.txt
index 7144fb8935..8cfb588e8f 100644
--- a/util/unicode/data/NormalizationCorrections.txt
+++ b/util/unicode/data/NormalizationCorrections.txt
@@ -1,10 +1,10 @@
-# NormalizationCorrections-13.0.0.txt
-# Date: 2019-09-09, 19:50:00 GMT [KW, LI]
-# © 2019 Unicode®, Inc.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# NormalizationCorrections-15.1.0.txt
+# Date: 2023-01-05
+# © 2023 Unicode®, Inc.
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# This file is a normative contributory data file in the
# Unicode Character Database.
diff --git a/util/unicode/data/Scripts.txt b/util/unicode/data/Scripts.txt
index e0363f54d1..0b3f717cb2 100644
--- a/util/unicode/data/Scripts.txt
+++ b/util/unicode/data/Scripts.txt
@@ -1,16 +1,16 @@
-# Scripts-13.0.0.txt
-# Date: 2020-01-22, 00:07:43 GMT
-# © 2020 Unicode®, Inc.
+# Scripts-15.1.0.txt
+# Date: 2023-07-28, 16:01:07 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# For more information, see:
-# UAX #24, Unicode Script Property: http://www.unicode.org/reports/tr24/
+# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/
# Especially the sections:
-# http://www.unicode.org/reports/tr24/#Assignment_Script_Values
-# http://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
+# https://www.unicode.org/reports/tr24/#Assignment_Script_Values
+# https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
#
# ================================================
@@ -154,7 +154,7 @@
208A..208C ; Common # Sm [3] SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
208D ; Common # Ps SUBSCRIPT LEFT PARENTHESIS
208E ; Common # Pe SUBSCRIPT RIGHT PARENTHESIS
-20A0..20BF ; Common # Sc [32] EURO-CURRENCY SIGN..BITCOIN SIGN
+20A0..20C0 ; Common # Sc [33] EURO-CURRENCY SIGN..SOM SIGN
2100..2101 ; Common # So [2] ACCOUNT OF..ADDRESSED TO THE SUBJECT
2102 ; Common # L& DOUBLE-STRUCK CAPITAL C
2103..2106 ; Common # So [4] DEGREE CELSIUS..CADA UNA
@@ -347,8 +347,17 @@
2E42 ; Common # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
2E43..2E4F ; Common # Po [13] DASH WITH LEFT UPTURN..CORNISH VERSE DIVIDER
2E50..2E51 ; Common # So [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR
-2E52 ; Common # Po TIRONIAN SIGN CAPITAL ET
-2FF0..2FFB ; Common # So [12] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
+2E52..2E54 ; Common # Po [3] TIRONIAN SIGN CAPITAL ET..MEDIEVAL QUESTION MARK
+2E55 ; Common # Ps LEFT SQUARE BRACKET WITH STROKE
+2E56 ; Common # Pe RIGHT SQUARE BRACKET WITH STROKE
+2E57 ; Common # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
+2E58 ; Common # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+2E59 ; Common # Ps TOP HALF LEFT PARENTHESIS
+2E5A ; Common # Pe TOP HALF RIGHT PARENTHESIS
+2E5B ; Common # Ps BOTTOM HALF LEFT PARENTHESIS
+2E5C ; Common # Pe BOTTOM HALF RIGHT PARENTHESIS
+2E5D ; Common # Pd OBLIQUE HYPHEN
+2FF0..2FFF ; Common # So [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
3000 ; Common # Zs IDEOGRAPHIC SPACE
3001..3003 ; Common # Po [3] IDEOGRAPHIC COMMA..DITTO MARK
3004 ; Common # So JAPANESE INDUSTRIAL STANDARD SYMBOL
@@ -390,6 +399,7 @@
3192..3195 ; Common # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
3196..319F ; Common # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
31C0..31E3 ; Common # So [36] CJK STROKE T..CJK STROKE Q
+31EF ; Common # So IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
3220..3229 ; Common # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
322A..3247 ; Common # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
3248..324F ; Common # No [8] CIRCLED NUMBER TEN ON BLACK SQUARE..CIRCLED NUMBER EIGHTY ON BLACK SQUARE
@@ -511,9 +521,8 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
10190..1019C ; Common # So [13] ROMAN SEXTANS SIGN..ASCIA SYMBOL
101D0..101FC ; Common # So [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND
102E1..102FB ; Common # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
-16FE2 ; Common # Po OLD CHINESE HOOK MARK
-16FE3 ; Common # Lm OLD CHINESE ITERATION MARK
1BCA0..1BCA3 ; Common # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
+1CF50..1CFC3 ; Common # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK
1D000..1D0F5 ; Common # So [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
1D100..1D126 ; Common # So [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2
1D129..1D164 ; Common # So [60] MUSICAL SYMBOL MULTIPLE MEASURE REST..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
@@ -523,7 +532,8 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1D173..1D17A ; Common # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
1D183..1D184 ; Common # So [2] MUSICAL SYMBOL ARPEGGIATO UP..MUSICAL SYMBOL ARPEGGIATO DOWN
1D18C..1D1A9 ; Common # So [30] MUSICAL SYMBOL RINFORZANDO..MUSICAL SYMBOL DEGREE SLASH
-1D1AE..1D1E8 ; Common # So [59] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KIEVAN FLAT SIGN
+1D1AE..1D1EA ; Common # So [61] MUSICAL SYMBOL PEDAL MARK..MUSICAL SYMBOL KORON
+1D2C0..1D2D3 ; Common # No [20] KAKTOVIK NUMERAL ZERO..KAKTOVIK NUMERAL NINETEEN
1D2E0..1D2F3 ; Common # No [20] MAYAN NUMERAL ZERO..MAYAN NUMERAL NINETEEN
1D300..1D356 ; Common # So [87] MONOGRAM FOR EARTH..TETRAGRAM FOR FOSTERING
1D360..1D378 ; Common # No [25] COUNTING ROD UNIT DIGIT ONE..TALLY MARK FIVE
@@ -593,35 +603,34 @@ FFFC..FFFD ; Common # So [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHAR
1F300..1F3FA ; Common # So [251] CYCLONE..AMPHORA
1F3FB..1F3FF ; Common # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
1F400..1F6D7 ; Common # So [728] RAT..ELEVATOR
-1F6E0..1F6EC ; Common # So [13] HAMMER AND WRENCH..AIRPLANE ARRIVING
+1F6DC..1F6EC ; Common # So [17] WIRELESS..AIRPLANE ARRIVING
1F6F0..1F6FC ; Common # So [13] SATELLITE..ROLLER SKATE
-1F700..1F773 ; Common # So [116] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ALCHEMICAL SYMBOL FOR HALF OUNCE
-1F780..1F7D8 ; Common # So [89] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NEGATIVE CIRCLED SQUARE
+1F700..1F776 ; Common # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE
+1F77B..1F7D9 ; Common # So [95] HAUMEA..NINE POINTED WHITE STAR
1F7E0..1F7EB ; Common # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE
+1F7F0 ; Common # So HEAVY EQUALS SIGN
1F800..1F80B ; Common # So [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD
1F810..1F847 ; Common # So [56] LEFTWARDS ARROW WITH SMALL EQUILATERAL ARROWHEAD..DOWNWARDS HEAVY ARROW
1F850..1F859 ; Common # So [10] LEFTWARDS SANS-SERIF ARROW..UP DOWN SANS-SERIF ARROW
1F860..1F887 ; Common # So [40] WIDE-HEADED LEFTWARDS LIGHT BARB ARROW..WIDE-HEADED SOUTH WEST VERY HEAVY BARB ARROW
1F890..1F8AD ; Common # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS
1F8B0..1F8B1 ; Common # So [2] ARROW POINTING UPWARDS THEN NORTH WEST..ARROW POINTING RIGHTWARDS THEN CURVING SOUTH WEST
-1F900..1F978 ; Common # So [121] CIRCLED CROSS FORMEE WITH FOUR DOTS..DISGUISED FACE
-1F97A..1F9CB ; Common # So [82] FACE WITH PLEADING EYES..BUBBLE TEA
-1F9CD..1FA53 ; Common # So [135] STANDING PERSON..BLACK CHESS KNIGHT-BISHOP
+1F900..1FA53 ; Common # So [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP
1FA60..1FA6D ; Common # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER
-1FA70..1FA74 ; Common # So [5] BALLET SHOES..THONG SANDAL
-1FA78..1FA7A ; Common # So [3] DROP OF BLOOD..STETHOSCOPE
-1FA80..1FA86 ; Common # So [7] YO-YO..NESTING DOLLS
-1FA90..1FAA8 ; Common # So [25] RINGED PLANET..ROCK
-1FAB0..1FAB6 ; Common # So [7] FLY..FEATHER
-1FAC0..1FAC2 ; Common # So [3] ANATOMICAL HEART..PEOPLE HUGGING
-1FAD0..1FAD6 ; Common # So [7] BLUEBERRIES..TEAPOT
+1FA70..1FA7C ; Common # So [13] BALLET SHOES..CRUTCH
+1FA80..1FA88 ; Common # So [9] YO-YO..FLUTE
+1FA90..1FABD ; Common # So [46] RINGED PLANET..WING
+1FABF..1FAC5 ; Common # So [7] GOOSE..PERSON WITH CROWN
+1FACE..1FADB ; Common # So [14] MOOSE..PEA POD
+1FAE0..1FAE8 ; Common # So [9] MELTING FACE..SHAKING FACE
+1FAF0..1FAF8 ; Common # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND
1FB00..1FB92 ; Common # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK
1FB94..1FBCA ; Common # So [55] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..WHITE UP-POINTING CHEVRON
1FBF0..1FBF9 ; Common # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
E0001 ; Common # Cf LANGUAGE TAG
E0020..E007F ; Common # Cf [96] TAG SPACE..CANCEL TAG
-# Total code points: 8087
+# Total code points: 8306
# ================================================
@@ -664,8 +673,11 @@ A770 ; Latin # Lm MODIFIER LETTER US
A771..A787 ; Latin # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T
A78B..A78E ; Latin # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; Latin # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7BF ; Latin # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
-A7C2..A7CA ; Latin # L& [9] LATIN CAPITAL LETTER ANGLICANA W..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A790..A7CA ; Latin # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7D0..A7D1 ; Latin # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
+A7D3 ; Latin # L& LATIN SMALL LETTER DOUBLE THORN
+A7D5..A7D9 ; Latin # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4 ; Latin # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
A7F5..A7F6 ; Latin # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
A7F7 ; Latin # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; Latin # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
@@ -679,8 +691,15 @@ AB69 ; Latin # Lm MODIFIER LETTER SMALL TURNED W
FB00..FB06 ; Latin # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FF21..FF3A ; Latin # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
FF41..FF5A ; Latin # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+10780..10785 ; Latin # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; Latin # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; Latin # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
+1DF00..1DF09 ; Latin # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+1DF0A ; Latin # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+1DF0B..1DF1E ; Latin # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A ; Latin # L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
-# Total code points: 1374
+# Total code points: 1481
# ================================================
@@ -766,8 +785,10 @@ A680..A69B ; Cyrillic # L& [28] CYRILLIC CAPITAL LETTER DWE..CYRILLIC SMALL
A69C..A69D ; Cyrillic # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
A69E..A69F ; Cyrillic # Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
FE2E..FE2F ; Cyrillic # Mn [2] COMBINING CYRILLIC TITLO LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
+1E030..1E06D ; Cyrillic # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
+1E08F ; Cyrillic # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
-# Total code points: 443
+# Total code points: 506
# ================================================
@@ -820,7 +841,7 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
060E..060F ; Arabic # So [2] ARABIC POETIC VERSE SIGN..ARABIC SIGN MISRA
0610..061A ; Arabic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
061C ; Arabic # Cf ARABIC LETTER MARK
-061E ; Arabic # Po ARABIC TRIPLE DOT PUNCTUATION MARK
+061D..061E ; Arabic # Po [2] ARABIC END OF TEXT MARK..ARABIC TRIPLE DOT PUNCTUATION MARK
0620..063F ; Arabic # Lo [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE
0641..064A ; Arabic # Lo [10] ARABIC LETTER FEH..ARABIC LETTER YEH
0656..065F ; Arabic # Mn [10] ARABIC SUBSCRIPT ALEF..ARABIC WAVY HAMZA BELOW
@@ -843,21 +864,29 @@ FB46..FB4F ; Hebrew # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATU
06FD..06FE ; Arabic # So [2] ARABIC SIGN SINDHI AMPERSAND..ARABIC SIGN SINDHI POSTPOSITION MEN
06FF ; Arabic # Lo ARABIC LETTER HEH WITH INVERTED V
0750..077F ; Arabic # Lo [48] ARABIC LETTER BEH WITH THREE DOTS HORIZONTALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS ABOVE
-08A0..08B4 ; Arabic # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
-08B6..08C7 ; Arabic # Lo [18] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
-08D3..08E1 ; Arabic # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
+0870..0887 ; Arabic # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+0888 ; Arabic # Sk ARABIC RAISED ROUND DOT
+0889..088E ; Arabic # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+0890..0891 ; Arabic # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+0898..089F ; Arabic # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08A0..08C8 ; Arabic # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
+08C9 ; Arabic # Lm ARABIC SMALL FARSI YEH
+08CA..08E1 ; Arabic # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E3..08FF ; Arabic # Mn [29] ARABIC TURNED DAMMA BELOW..ARABIC MARK SIDEWAYS NOON GHUNNA
FB50..FBB1 ; Arabic # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
-FBB2..FBC1 ; Arabic # Sk [16] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL SMALL TAH BELOW
+FBB2..FBC2 ; Arabic # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE
FBD3..FD3D ; Arabic # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+FD40..FD4F ; Arabic # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH
FD50..FD8F ; Arabic # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
FD92..FDC7 ; Arabic # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+FDCF ; Arabic # So ARABIC LIGATURE SALAAMUHU ALAYNAA
FDF0..FDFB ; Arabic # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
FDFC ; Arabic # Sc RIAL SIGN
-FDFD ; Arabic # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
+FDFD..FDFF ; Arabic # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL
FE70..FE74 ; Arabic # Lo [5] ARABIC FATHATAN ISOLATED FORM..ARABIC KASRATAN ISOLATED FORM
FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
10E60..10E7E ; Arabic # No [31] RUMI DIGIT ONE..RUMI FRACTION TWO THIRDS
+10EFD..10EFF ; Arabic # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
1EE00..1EE03 ; Arabic # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
1EE05..1EE1F ; Arabic # Lo [27] ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
1EE21..1EE22 ; Arabic # Lo [2] ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
@@ -893,7 +922,7 @@ FE76..FEFC ; Arabic # Lo [135] ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LA
1EEAB..1EEBB ; Arabic # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
1EEF0..1EEF1 ; Arabic # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL
-# Total code points: 1291
+# Total code points: 1368
# ================================================
@@ -945,8 +974,9 @@ A8FB ; Devanagari # Lo DEVANAGARI HEADSTROKE
A8FC ; Devanagari # Po DEVANAGARI SIGN SIDDHAM
A8FD..A8FE ; Devanagari # Lo [2] DEVANAGARI JAIN OM..DEVANAGARI LETTER AY
A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
+11B00..11B09 ; Devanagari # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU
-# Total code points: 154
+# Total code points: 164
# ================================================
@@ -1113,6 +1143,7 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
0C0E..0C10 ; Telugu # Lo [3] TELUGU LETTER E..TELUGU LETTER AI
0C12..0C28 ; Telugu # Lo [23] TELUGU LETTER O..TELUGU LETTER NA
0C2A..0C39 ; Telugu # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
+0C3C ; Telugu # Mn TELUGU SIGN NUKTA
0C3D ; Telugu # Lo TELUGU SIGN AVAGRAHA
0C3E..0C40 ; Telugu # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; Telugu # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
@@ -1120,6 +1151,7 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
0C4A..0C4D ; Telugu # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
0C55..0C56 ; Telugu # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
0C58..0C5A ; Telugu # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C5D ; Telugu # Lo TELUGU LETTER NAKAARA POLLU
0C60..0C61 ; Telugu # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
0C62..0C63 ; Telugu # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
0C66..0C6F ; Telugu # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE
@@ -1127,7 +1159,7 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
0C78..0C7E ; Telugu # No [7] TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR..TELUGU FRACTION DIGIT THREE FOR EVEN POWERS OF FOUR
0C7F ; Telugu # So TELUGU SIGN TUUMU
-# Total code points: 98
+# Total code points: 100
# ================================================
@@ -1150,13 +1182,14 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
0CCA..0CCB ; Kannada # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
0CCC..0CCD ; Kannada # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Kannada # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
-0CDE ; Kannada # Lo KANNADA LETTER FA
+0CDD..0CDE ; Kannada # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
0CE0..0CE1 ; Kannada # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
0CE2..0CE3 ; Kannada # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
0CE6..0CEF ; Kannada # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
0CF1..0CF2 ; Kannada # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
+0CF3 ; Kannada # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
-# Total code points: 89
+# Total code points: 91
# ================================================
@@ -1236,11 +1269,11 @@ A8FF ; Devanagari # Mn DEVANAGARI VOWEL SIGN AY
0EBD ; Lao # Lo LAO SEMIVOWEL SIGN NYO
0EC0..0EC4 ; Lao # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI
0EC6 ; Lao # Lm LAO KO LA
-0EC8..0ECD ; Lao # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE ; Lao # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0ED0..0ED9 ; Lao # Nd [10] LAO DIGIT ZERO..LAO DIGIT NINE
0EDC..0EDF ; Lao # Lo [4] LAO HO NO..LAO LETTER KHMU NYO
-# Total code points: 82
+# Total code points: 83
# ================================================
@@ -1411,8 +1444,12 @@ AB09..AB0E ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DD
AB11..AB16 ; Ethiopic # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
AB20..AB26 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
AB28..AB2E ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
+1E7E0..1E7E6 ; Ethiopic # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E8..1E7EB ; Ethiopic # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7ED..1E7EE ; Ethiopic # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7F0..1E7FE ; Ethiopic # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
-# Total code points: 495
+# Total code points: 523
# ================================================
@@ -1430,8 +1467,9 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
166E ; Canadian_Aboriginal # Po CANADIAN SYLLABICS FULL STOP
166F..167F ; Canadian_Aboriginal # Lo [17] CANADIAN SYLLABICS QAI..CANADIAN SYLLABICS BLACKFOOT W
18B0..18F5 ; Canadian_Aboriginal # Lo [70] CANADIAN SYLLABICS OY..CANADIAN SYLLABICS CARRIER DENTAL S
+11AB0..11ABF ; Canadian_Aboriginal # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA
-# Total code points: 710
+# Total code points: 726
# ================================================
@@ -1480,6 +1518,7 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
1807..180A ; Mongolian # Po [4] MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER..MONGOLIAN NIRUGU
180B..180D ; Mongolian # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
180E ; Mongolian # Cf MONGOLIAN VOWEL SEPARATOR
+180F ; Mongolian # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1810..1819 ; Mongolian # Nd [10] MONGOLIAN DIGIT ZERO..MONGOLIAN DIGIT NINE
1820..1842 ; Mongolian # Lo [35] MONGOLIAN LETTER A..MONGOLIAN LETTER CHI
1843 ; Mongolian # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN
@@ -1491,18 +1530,19 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
18AA ; Mongolian # Lo MONGOLIAN LETTER MANCHU ALI GALI LHA
11660..1166C ; Mongolian # Po [13] MONGOLIAN BIRGA WITH ORNAMENT..MONGOLIAN TURNED SWIRL BIRGA WITH DOUBLE ORNAMENT
-# Total code points: 167
+# Total code points: 168
# ================================================
3041..3096 ; Hiragana # Lo [86] HIRAGANA LETTER SMALL A..HIRAGANA LETTER SMALL KE
309D..309E ; Hiragana # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK
309F ; Hiragana # Lo HIRAGANA DIGRAPH YORI
-1B001..1B11E ; Hiragana # Lo [286] HIRAGANA LETTER ARCHAIC YE..HENTAIGANA LETTER N-MU-MO-2
+1B001..1B11F ; Hiragana # Lo [287] HIRAGANA LETTER ARCHAIC YE..HIRAGANA LETTER ARCHAIC WU
+1B132 ; Hiragana # Lo HIRAGANA LETTER SMALL KO
1B150..1B152 ; Hiragana # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
1F200 ; Hiragana # So SQUARE HIRAGANA HOKA
-# Total code points: 379
+# Total code points: 381
# ================================================
@@ -1514,10 +1554,15 @@ AB70..ABBF ; Cherokee # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETT
3300..3357 ; Katakana # So [88] SQUARE APAATO..SQUARE WATTO
FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+1AFF0..1AFF3 ; Katakana # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF5..1AFFB ; Katakana # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFD..1AFFE ; Katakana # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
+1B120..1B122 ; Katakana # Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU
+1B155 ; Katakana # Lo KATAKANA LETTER SMALL KO
1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
-# Total code points: 304
+# Total code points: 321
# ================================================
@@ -1538,19 +1583,23 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
3038..303A ; Han # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
303B ; Han # Lm VERTICAL IDEOGRAPHIC ITERATION MARK
3400..4DBF ; Han # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
-4E00..9FFC ; Han # Lo [20989] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFC
+4E00..9FFF ; Han # Lo [20992] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFF
F900..FA6D ; Han # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D
FA70..FAD9 ; Han # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+16FE2 ; Han # Po OLD CHINESE HOOK MARK
+16FE3 ; Han # Lm OLD CHINESE ITERATION MARK
16FF0..16FF1 ; Han # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
-20000..2A6DD ; Han # Lo [42718] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DD
-2A700..2B734 ; Han # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
+20000..2A6DF ; Han # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
+2A700..2B739 ; Han # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
2B740..2B81D ; Han # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEA1 ; Han # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
2CEB0..2EBE0 ; Han # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+2EBF0..2EE5D ; Han # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
2F800..2FA1D ; Han # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
30000..3134A ; Han # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF ; Han # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
-# Total code points: 94204
+# Total code points: 99030
# ================================================
@@ -1593,15 +1642,14 @@ A490..A4C6 ; Yi # So [55] YI RADICAL QOT..YI RADICAL KE
0951..0954 ; Inherited # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT
1AB0..1ABD ; Inherited # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABE ; Inherited # Me COMBINING PARENTHESES OVERLAY
-1ABF..1AC0 ; Inherited # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
+1ABF..1ACE ; Inherited # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
1CD0..1CD2 ; Inherited # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
1CD4..1CE0 ; Inherited # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE2..1CE8 ; Inherited # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CED ; Inherited # Mn VEDIC SIGN TIRYAK
1CF4 ; Inherited # Mn VEDIC TONE CANDRA ABOVE
1CF8..1CF9 ; Inherited # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
-1DC0..1DF9 ; Inherited # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
-1DFB..1DFF ; Inherited # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1DC0..1DFF ; Inherited # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Inherited # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Inherited # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; Inherited # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
@@ -1615,26 +1663,30 @@ FE20..FE2D ; Inherited # Mn [14] COMBINING LIGATURE LEFT HALF..COMBINING CON
101FD ; Inherited # Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
102E0 ; Inherited # Mn COPTIC EPACT THOUSANDS MARK
1133B ; Inherited # Mn COMBINING BINDU BELOW
+1CF00..1CF2D ; Inherited # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; Inherited # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1D167..1D169 ; Inherited # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D17B..1D182 ; Inherited # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
1D185..1D18B ; Inherited # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
1D1AA..1D1AD ; Inherited # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 573
+# Total code points: 657
# ================================================
-1700..170C ; Tagalog # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
-170E..1711 ; Tagalog # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
+1700..1711 ; Tagalog # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
1712..1714 ; Tagalog # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
+1715 ; Tagalog # Mc TAGALOG SIGN PAMUDPOD
+171F ; Tagalog # Lo TAGALOG LETTER ARCHAIC RA
-# Total code points: 20
+# Total code points: 23
# ================================================
1720..1731 ; Hanunoo # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
-1732..1734 ; Hanunoo # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1732..1733 ; Hanunoo # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+1734 ; Hanunoo # Mc HANUNOO SIGN PAMUDPOD
# Total code points: 21
@@ -1762,15 +1814,14 @@ E0100..E01EF ; Inherited # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-2
# ================================================
-2C00..2C2E ; Glagolitic # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C30..2C5E ; Glagolitic # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C00..2C5F ; Glagolitic # L& [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
1E000..1E006 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
1E008..1E018 ; Glagolitic # Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
1E01B..1E021 ; Glagolitic # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Glagolitic # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Glagolitic # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
-# Total code points: 132
+# Total code points: 134
# ================================================
@@ -1836,14 +1887,15 @@ A82C ; Syloti_Nagri # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA
1B3D..1B41 ; Balinese # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
1B42 ; Balinese # Mn BALINESE VOWEL SIGN PEPET
1B43..1B44 ; Balinese # Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
-1B45..1B4B ; Balinese # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B45..1B4C ; Balinese # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
1B50..1B59 ; Balinese # Nd [10] BALINESE DIGIT ZERO..BALINESE DIGIT NINE
1B5A..1B60 ; Balinese # Po [7] BALINESE PANTI..BALINESE PAMENENG
1B61..1B6A ; Balinese # So [10] BALINESE MUSICAL SYMBOL DONG..BALINESE MUSICAL SYMBOL DANG GEDE
1B6B..1B73 ; Balinese # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
1B74..1B7C ; Balinese # So [9] BALINESE MUSICAL SYMBOL RIGHT-HAND OPEN DUG..BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
+1B7D..1B7E ; Balinese # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
-# Total code points: 121
+# Total code points: 124
# ================================================
@@ -2051,10 +2103,13 @@ AADE..AADF ; Tai_Viet # Po [2] TAI VIET SYMBOL HO HOI..TAI VIET SYMBOL KOI
# ================================================
-13000..1342E ; Egyptian_Hieroglyphs # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
-13430..13438 ; Egyptian_Hieroglyphs # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13000..1342F ; Egyptian_Hieroglyphs # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13430..1343F ; Egyptian_Hieroglyphs # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
+13440 ; Egyptian_Hieroglyphs # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13441..13446 ; Egyptian_Hieroglyphs # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
+13447..13455 ; Egyptian_Hieroglyphs # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
-# Total code points: 1080
+# Total code points: 1110
# ================================================
@@ -2178,9 +2233,10 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
110BB..110BC ; Kaithi # Po [2] KAITHI ABBREVIATION SIGN..KAITHI ENUMERATION SIGN
110BD ; Kaithi # Cf KAITHI NUMBER SIGN
110BE..110C1 ; Kaithi # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
+110C2 ; Kaithi # Mn KAITHI VOWEL SIGN VOCALIC R
110CD ; Kaithi # Cf KAITHI NUMBER SIGN ABOVE
-# Total code points: 67
+# Total code points: 68
# ================================================
@@ -2207,9 +2263,13 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
11047..1104D ; Brahmi # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS
11052..11065 ; Brahmi # No [20] BRAHMI NUMBER ONE..BRAHMI NUMBER ONE THOUSAND
11066..1106F ; Brahmi # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+11070 ; Brahmi # Mn BRAHMI SIGN OLD TAMIL VIRAMA
+11071..11072 ; Brahmi # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
+11073..11074 ; Brahmi # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
+11075 ; Brahmi # Lo BRAHMI LETTER OLD TAMIL LLA
1107F ; Brahmi # Mn BRAHMI NUMBER JOINER
-# Total code points: 109
+# Total code points: 115
# ================================================
@@ -2301,9 +2361,10 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
116B6 ; Takri # Mc TAKRI SIGN VIRAMA
116B7 ; Takri # Mn TAKRI SIGN NUKTA
116B8 ; Takri # Lo TAKRI LETTER ARCHAIC KHA
+116B9 ; Takri # Po TAKRI ABBREVIATION SIGN
116C0..116C9 ; Takri # Nd [10] TAKRI DIGIT ZERO..TAKRI DIGIT NINE
-# Total code points: 67
+# Total code points: 68
# ================================================
@@ -2392,8 +2453,10 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
11236..11237 ; Khojki # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
11238..1123D ; Khojki # Po [6] KHOJKI DANDA..KHOJKI ABBREVIATION SIGN
1123E ; Khojki # Mn KHOJKI SIGN SUKUN
+1123F..11240 ; Khojki # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
+11241 ; Khojki # Mn KHOJKI VOWEL SIGN VOCALIC R
-# Total code points: 62
+# Total code points: 65
# ================================================
@@ -2561,8 +2624,9 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
1173A..1173B ; Ahom # No [2] AHOM NUMBER TEN..AHOM NUMBER TWENTY
1173C..1173E ; Ahom # Po [3] AHOM SIGN SMALL SECTION..AHOM SIGN RULAI
1173F ; Ahom # So AHOM SYMBOL VI
+11740..11746 ; Ahom # Lo [7] AHOM LETTER CA..AHOM LETTER LLA
-# Total code points: 58
+# Total code points: 65
# ================================================
@@ -2897,4 +2961,73 @@ ABF0..ABF9 ; Meetei_Mayek # Nd [10] MEETEI MAYEK DIGIT ZERO..MEETEI MAYEK DI
# Total code points: 47
+# ================================================
+
+12F90..12FF0 ; Cypro_Minoan # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
+12FF1..12FF2 ; Cypro_Minoan # Po [2] CYPRO-MINOAN SIGN CM301..CYPRO-MINOAN SIGN CM302
+
+# Total code points: 99
+
+# ================================================
+
+10F70..10F81 ; Old_Uyghur # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
+10F82..10F85 ; Old_Uyghur # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
+10F86..10F89 ; Old_Uyghur # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
+
+# Total code points: 26
+
+# ================================================
+
+16A70..16ABE ; Tangsa # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
+16AC0..16AC9 ; Tangsa # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
+
+# Total code points: 89
+
+# ================================================
+
+1E290..1E2AD ; Toto # Lo [30] TOTO LETTER PA..TOTO LETTER A
+1E2AE ; Toto # Mn TOTO SIGN RISING TONE
+
+# Total code points: 31
+
+# ================================================
+
+10570..1057A ; Vithkuqi # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+1057C..1058A ; Vithkuqi # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+1058C..10592 ; Vithkuqi # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+10594..10595 ; Vithkuqi # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
+10597..105A1 ; Vithkuqi # L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+105A3..105B1 ; Vithkuqi # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+105B3..105B9 ; Vithkuqi # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+105BB..105BC ; Vithkuqi # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+
+# Total code points: 70
+
+# ================================================
+
+11F00..11F01 ; Kawi # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F02 ; Kawi # Lo KAWI SIGN REPHA
+11F03 ; Kawi # Mc KAWI SIGN VISARGA
+11F04..11F10 ; Kawi # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33 ; Kawi # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
+11F34..11F35 ; Kawi # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; Kawi # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; Kawi # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; Kawi # Mn KAWI VOWEL SIGN EU
+11F41 ; Kawi # Mc KAWI SIGN KILLER
+11F42 ; Kawi # Mn KAWI CONJOINER
+11F43..11F4F ; Kawi # Po [13] KAWI DANDA..KAWI PUNCTUATION CLOSING SPIRAL
+11F50..11F59 ; Kawi # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
+
+# Total code points: 86
+
+# ================================================
+
+1E4D0..1E4EA ; Nag_Mundari # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB ; Nag_Mundari # Lm NAG MUNDARI SIGN OJOD
+1E4EC..1E4EF ; Nag_Mundari # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
+1E4F0..1E4F9 ; Nag_Mundari # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
+
+# Total code points: 42
+
# EOF
diff --git a/util/unicode/data/SentenceBreakProperty.txt b/util/unicode/data/SentenceBreakProperty.txt
index 432385b269..f848af1d11 100644
--- a/util/unicode/data/SentenceBreakProperty.txt
+++ b/util/unicode/data/SentenceBreakProperty.txt
@@ -1,11 +1,11 @@
-# SentenceBreakProperty-13.0.0.txt
-# Date: 2019-11-27, 03:13:39 GMT
-# © 2019 Unicode®, Inc.
+# SentenceBreakProperty-15.1.0.txt
+# Date: 2023-07-28, 23:34:37 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
@@ -55,7 +55,8 @@
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08D3..08E1 ; Extend # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
+0898..089F ; Extend # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08CA..08E1 ; Extend # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E3..0902 ; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
0903 ; Extend # Mc DEVANAGARI SIGN VISARGA
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
@@ -124,6 +125,7 @@
0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C01..0C03 ; Extend # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C04 ; Extend # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C3C ; Extend # Mn TELUGU SIGN NUKTA
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; Extend # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
@@ -142,6 +144,7 @@
0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3 ; Extend # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D00..0D01 ; Extend # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; Extend # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3B..0D3C ; Extend # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
@@ -165,7 +168,7 @@
0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD ; Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE ; Extend # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -202,7 +205,9 @@
109D ; Extend # Mn MYANMAR VOWEL SIGN AITON AI
135D..135F ; Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1712..1714 ; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
-1732..1734 ; Extend # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1715 ; Extend # Mc TAGALOG SIGN PAMUDPOD
+1732..1733 ; Extend # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+1734 ; Extend # Mc HANUNOO SIGN PAMUDPOD
1752..1753 ; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773 ; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
17B4..17B5 ; Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
@@ -214,6 +219,7 @@
17C9..17D3 ; Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD ; Extend # Mn KHMER SIGN ATTHACAN
180B..180D ; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180F ; Extend # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1885..1886 ; Extend # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
18A9 ; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922 ; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
@@ -241,7 +247,7 @@
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
-1ABF..1AC0 ; Extend # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
+1ABF..1ACE ; Extend # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B04 ; Extend # Mc BALINESE SIGN BISAH
1B34 ; Extend # Mn BALINESE SIGN REREKAN
@@ -281,8 +287,7 @@
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
1CF7 ; Extend # Mc VEDIC SIGN ATIKRAMA
1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
-1DC0..1DF9 ; Extend # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
-1DFB..1DFF ; Extend # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1DC0..1DFF ; Extend # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C..200D ; Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
@@ -367,17 +372,22 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF ; Extend # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11000 ; Extend # Mc BRAHMI SIGN CANDRABINDU
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
11002 ; Extend # Mc BRAHMI SIGN VISARGA
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11070 ; Extend # Mn BRAHMI SIGN OLD TAMIL VIRAMA
+11073..11074 ; Extend # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
11082 ; Extend # Mc KAITHI SIGN VISARGA
110B0..110B2 ; Extend # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B7..110B8 ; Extend # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
110B9..110BA ; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110C2 ; Extend # Mn KAITHI VOWEL SIGN VOCALIC R
11100..11102 ; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112C ; Extend # Mc CHAKMA VOWEL SIGN E
@@ -399,6 +409,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11235 ; Extend # Mc KHOJKI SIGN VIRAMA
11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; Extend # Mn KHOJKI SIGN SUKUN
+11241 ; Extend # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
112E0..112E2 ; Extend # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
@@ -508,6 +519,16 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11D97 ; Extend # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6 ; Extend # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01 ; Extend # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03 ; Extend # Mc KAWI SIGN VISARGA
+11F34..11F35 ; Extend # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; Extend # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; Extend # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; Extend # Mn KAWI VOWEL SIGN EU
+11F41 ; Extend # Mc KAWI SIGN KILLER
+11F42 ; Extend # Mn KAWI CONJOINER
+13440 ; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455 ; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
@@ -516,6 +537,8 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
16FE4 ; Extend # Mn KHITAN SMALL SCRIPT FILLER
16FF0..16FF1 ; Extend # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1CF00..1CF2D ; Extend # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; Extend # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1D165..1D166 ; Extend # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16D..1D172 ; Extend # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -534,14 +557,17 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1E01B..1E021 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F ; Extend # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E2AE ; Extend # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 2395
+# Total code points: 2550
# ================================================
@@ -554,11 +580,8 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# ================================================
00AD ; Format # Cf SOFT HYPHEN
-0600..0605 ; Format # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
061C ; Format # Cf ARABIC LETTER MARK
-06DD ; Format # Cf ARABIC END OF AYAH
070F ; Format # Cf SYRIAC ABBREVIATION MARK
-08E2 ; Format # Cf ARABIC DISPUTED END OF AYAH
180E ; Format # Cf MONGOLIAN VOWEL SEPARATOR
200B ; Format # Cf ZERO WIDTH SPACE
200E..200F ; Format # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
@@ -567,14 +590,12 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
2066..206F ; Format # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
FEFF ; Format # Cf ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; Format # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-110BD ; Format # Cf KAITHI NUMBER SIGN
-110CD ; Format # Cf KAITHI NUMBER SIGN ABOVE
-13430..13438 ; Format # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F ; Format # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
1BCA0..1BCA3 ; Format # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Format # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0001 ; Format # Cf LANGUAGE TAG
-# Total code points: 63
+# Total code points: 60
# ================================================
@@ -868,6 +889,7 @@ E0001 ; Format # Cf LANGUAGE TAG
052D ; Lower # L& CYRILLIC SMALL LETTER DCHE
052F ; Lower # L& CYRILLIC SMALL LETTER EL WITH DESCENDER
0560..0588 ; Lower # L& [41] ARMENIAN SMALL LETTER TURNED AYB..ARMENIAN SMALL LETTER YI WITH STROKE
+10FC ; Lower # Lm MODIFIER LETTER GEORGIAN NAR
13F8..13FD ; Lower # L& [6] CHEROKEE SMALL LETTER YE..CHEROKEE SMALL LETTER MV
1C80..1C88 ; Lower # L& [9] CYRILLIC SMALL LETTER ROUNDED VE..CYRILLIC SMALL LETTER UNBLENDED UK
1D00..1D2B ; Lower # L& [44] LATIN LETTER SMALL CAPITAL A..CYRILLIC LETTER SMALL CAPITAL EL
@@ -1035,7 +1057,7 @@ E0001 ; Format # Cf LANGUAGE TAG
2170..217F ; Lower # Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
2184 ; Lower # L& LATIN SMALL LETTER REVERSED C
24D0..24E9 ; Lower # So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
-2C30..2C5E ; Lower # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
+2C30..2C5F ; Lower # L& [48] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI
2C61 ; Lower # L& LATIN SMALL LETTER L WITH DOUBLE BAR
2C65..2C66 ; Lower # L& [2] LATIN SMALL LETTER A WITH STROKE..LATIN SMALL LETTER T WITH DIAGONAL STROKE
2C68 ; Lower # L& LATIN SMALL LETTER H WITH DESCENDER
@@ -1207,21 +1229,37 @@ A7B9 ; Lower # L& LATIN SMALL LETTER U WITH STROKE
A7BB ; Lower # L& LATIN SMALL LETTER GLOTTAL A
A7BD ; Lower # L& LATIN SMALL LETTER GLOTTAL I
A7BF ; Lower # L& LATIN SMALL LETTER GLOTTAL U
+A7C1 ; Lower # L& LATIN SMALL LETTER OLD POLISH O
A7C3 ; Lower # L& LATIN SMALL LETTER ANGLICANA W
A7C8 ; Lower # L& LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY
A7CA ; Lower # L& LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7D1 ; Lower # L& LATIN SMALL LETTER CLOSED INSULAR G
+A7D3 ; Lower # L& LATIN SMALL LETTER DOUBLE THORN
+A7D5 ; Lower # L& LATIN SMALL LETTER DOUBLE WYNN
+A7D7 ; Lower # L& LATIN SMALL LETTER MIDDLE SCOTS S
+A7D9 ; Lower # L& LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4 ; Lower # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
A7F6 ; Lower # L& LATIN SMALL LETTER REVERSED HALF H
A7F8..A7F9 ; Lower # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
A7FA ; Lower # L& LATIN LETTER SMALL CAPITAL TURNED M
AB30..AB5A ; Lower # L& [43] LATIN SMALL LETTER BARRED ALPHA..LATIN SMALL LETTER Y WITH SHORT RIGHT LEG
AB5C..AB5F ; Lower # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
AB60..AB68 ; Lower # L& [9] LATIN SMALL LETTER SAKHA YAT..LATIN SMALL LETTER TURNED R WITH MIDDLE TILDE
+AB69 ; Lower # Lm MODIFIER LETTER SMALL TURNED W
AB70..ABBF ; Lower # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA
FB00..FB06 ; Lower # L& [7] LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
FB13..FB17 ; Lower # L& [5] ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
FF41..FF5A ; Lower # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
10428..1044F ; Lower # L& [40] DESERET SMALL LETTER LONG I..DESERET SMALL LETTER EW
104D8..104FB ; Lower # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
+10597..105A1 ; Lower # L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+105A3..105B1 ; Lower # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+105B3..105B9 ; Lower # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+105BB..105BC ; Lower # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
+10780 ; Lower # Lm MODIFIER LETTER SMALL CAPITAL AA
+10783..10785 ; Lower # Lm [3] MODIFIER LETTER SMALL AE..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; Lower # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; Lower # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
10CC0..10CF2 ; Lower # L& [51] OLD HUNGARIAN SMALL LETTER A..OLD HUNGARIAN SMALL LETTER US
118C0..118DF ; Lower # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO
16E60..16E7F ; Lower # L& [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y
@@ -1253,9 +1291,13 @@ FF41..FF5A ; Lower # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
1D7AA..1D7C2 ; Lower # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C4..1D7C9 ; Lower # L& [6] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL
1D7CB ; Lower # L& MATHEMATICAL BOLD SMALL DIGAMMA
+1DF00..1DF09 ; Lower # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+1DF0B..1DF1E ; Lower # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A ; Lower # L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D ; Lower # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E922..1E943 ; Lower # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA
-# Total code points: 2297
+# Total code points: 2497
# ================================================
@@ -1693,7 +1735,7 @@ FF41..FF5A ; Lower # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN
2160..216F ; Upper # Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND
2183 ; Upper # L& ROMAN NUMERAL REVERSED ONE HUNDRED
24B6..24CF ; Upper # So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z
-2C00..2C2E ; Upper # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
+2C00..2C2F ; Upper # L& [48] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI
2C60 ; Upper # L& LATIN CAPITAL LETTER L WITH DOUBLE BAR
2C62..2C64 ; Upper # L& [3] LATIN CAPITAL LETTER L WITH MIDDLE TILDE..LATIN CAPITAL LETTER R WITH TAIL
2C67 ; Upper # L& LATIN CAPITAL LETTER H WITH DESCENDER
@@ -1858,13 +1900,21 @@ A7B8 ; Upper # L& LATIN CAPITAL LETTER U WITH STROKE
A7BA ; Upper # L& LATIN CAPITAL LETTER GLOTTAL A
A7BC ; Upper # L& LATIN CAPITAL LETTER GLOTTAL I
A7BE ; Upper # L& LATIN CAPITAL LETTER GLOTTAL U
+A7C0 ; Upper # L& LATIN CAPITAL LETTER OLD POLISH O
A7C2 ; Upper # L& LATIN CAPITAL LETTER ANGLICANA W
A7C4..A7C7 ; Upper # L& [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY
A7C9 ; Upper # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY
+A7D0 ; Upper # L& LATIN CAPITAL LETTER CLOSED INSULAR G
+A7D6 ; Upper # L& LATIN CAPITAL LETTER MIDDLE SCOTS S
+A7D8 ; Upper # L& LATIN CAPITAL LETTER SIGMOID S
A7F5 ; Upper # L& LATIN CAPITAL LETTER REVERSED HALF H
FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
10400..10427 ; Upper # L& [40] DESERET CAPITAL LETTER LONG I..DESERET CAPITAL LETTER EW
104B0..104D3 ; Upper # L& [36] OSAGE CAPITAL LETTER A..OSAGE CAPITAL LETTER ZHA
+10570..1057A ; Upper # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+1057C..1058A ; Upper # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+1058C..10592 ; Upper # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+10594..10595 ; Upper # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
10C80..10CB2 ; Upper # L& [51] OLD HUNGARIAN CAPITAL LETTER A..OLD HUNGARIAN CAPITAL LETTER US
118A0..118BF ; Upper # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO
16E40..16E5F ; Upper # L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y
@@ -1904,7 +1954,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
1F150..1F169 ; Upper # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F189 ; Upper # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 1896
+# Total code points: 1936
# ================================================
@@ -1943,8 +1993,10 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
0828 ; OLetter # Lm SAMARITAN MODIFIER LETTER I
0840..0858 ; OLetter # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
0860..086A ; OLetter # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
-08A0..08B4 ; OLetter # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
-08B6..08C7 ; OLetter # Lo [18] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
+0870..0887 ; OLetter # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+0889..088E ; OLetter # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+08A0..08C8 ; OLetter # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
+08C9 ; OLetter # Lm ARABIC SMALL FARSI YEH
0904..0939 ; OLetter # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093D ; OLetter # Lo DEVANAGARI SIGN AVAGRAHA
0950 ; OLetter # Lo DEVANAGARI OM
@@ -2010,6 +2062,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
0C2A..0C39 ; OLetter # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
0C3D ; OLetter # Lo TELUGU SIGN AVAGRAHA
0C58..0C5A ; OLetter # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C5D ; OLetter # Lo TELUGU LETTER NAKAARA POLLU
0C60..0C61 ; OLetter # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
0C80 ; OLetter # Lo KANNADA SIGN SPACING CANDRABINDU
0C85..0C8C ; OLetter # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
@@ -2018,7 +2071,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
0CAA..0CB3 ; OLetter # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
0CB5..0CB9 ; OLetter # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
0CBD ; OLetter # Lo KANNADA SIGN AVAGRAHA
-0CDE ; OLetter # Lo KANNADA LETTER FA
+0CDD..0CDE ; OLetter # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
0CE0..0CE1 ; OLetter # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
0CF1..0CF2 ; OLetter # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
0D04..0D0C ; OLetter # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -2063,7 +2116,6 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
1075..1081 ; OLetter # Lo [13] MYANMAR LETTER SHAN KA..MYANMAR LETTER SHAN HA
108E ; OLetter # Lo MYANMAR LETTER RUMAI PALAUNG FA
10D0..10FA ; OLetter # L& [43] GEORGIAN LETTER AN..GEORGIAN LETTER AIN
-10FC ; OLetter # Lm MODIFIER LETTER GEORGIAN NAR
10FD..10FF ; OLetter # L& [3] GEORGIAN LETTER AEN..GEORGIAN LETTER LABIAL SIGN
1100..1248 ; OLetter # Lo [329] HANGUL CHOSEONG KIYEOK..ETHIOPIC SYLLABLE QWA
124A..124D ; OLetter # Lo [4] ETHIOPIC SYLLABLE QWI..ETHIOPIC SYLLABLE QWE
@@ -2088,9 +2140,8 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
16A0..16EA ; OLetter # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
16EE..16F0 ; OLetter # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
16F1..16F8 ; OLetter # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
-1700..170C ; OLetter # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
-170E..1711 ; OLetter # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
-1720..1731 ; OLetter # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1700..1711 ; OLetter # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
+171F..1731 ; OLetter # Lo [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA
1740..1751 ; OLetter # Lo [18] BUHID LETTER A..BUHID LETTER HA
1760..176C ; OLetter # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
176E..1770 ; OLetter # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
@@ -2113,7 +2164,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
1A20..1A54 ; OLetter # Lo [53] TAI THAM LETTER HIGH KA..TAI THAM LETTER GREAT SA
1AA7 ; OLetter # Lm TAI THAM SIGN MAI YAMOK
1B05..1B33 ; OLetter # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
-1B45..1B4B ; OLetter # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B45..1B4C ; OLetter # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
1B83..1BA0 ; OLetter # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
1BAE..1BAF ; OLetter # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
1BBA..1BE5 ; OLetter # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U
@@ -2161,8 +2212,7 @@ FF21..FF3A ; Upper # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LAT
31A0..31BF ; OLetter # Lo [32] BOPOMOFO LETTER BU..BOPOMOFO LETTER AH
31F0..31FF ; OLetter # Lo [16] KATAKANA LETTER SMALL KU..KATAKANA LETTER SMALL RO
3400..4DBF ; OLetter # Lo [6592] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DBF
-4E00..9FFC ; OLetter # Lo [20989] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FFC
-A000..A014 ; OLetter # Lo [21] YI SYLLABLE IT..YI SYLLABLE E
+4E00..A014 ; OLetter # Lo [21013] CJK UNIFIED IDEOGRAPH-4E00..YI SYLLABLE E
A015 ; OLetter # Lm YI SYLLABLE WU
A016..A48C ; OLetter # Lo [1143] YI SYLLABLE BIT..YI SYLLABLE YYR
A4D0..A4F7 ; OLetter # Lo [40] LISU LETTER BA..LISU LETTER OE
@@ -2220,7 +2270,6 @@ AB09..AB0E ; OLetter # Lo [6] ETHIOPIC SYLLABLE DDHU..ETHIOPIC SYLLABLE DDH
AB11..AB16 ; OLetter # Lo [6] ETHIOPIC SYLLABLE DZU..ETHIOPIC SYLLABLE DZO
AB20..AB26 ; OLetter # Lo [7] ETHIOPIC SYLLABLE CCHHA..ETHIOPIC SYLLABLE CCHHO
AB28..AB2E ; OLetter # Lo [7] ETHIOPIC SYLLABLE BBA..ETHIOPIC SYLLABLE BBO
-AB69 ; OLetter # Lm MODIFIER LETTER SMALL TURNED W
ABC0..ABE2 ; OLetter # Lo [35] MEETEI MAYEK LETTER KOK..MEETEI MAYEK LETTER I LONSUM
AC00..D7A3 ; OLetter # Lo [11172] HANGUL SYLLABLE GA..HANGUL SYLLABLE HIH
D7B0..D7C6 ; OLetter # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
@@ -2275,6 +2324,7 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10600..10736 ; OLetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
10740..10755 ; OLetter # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
10760..10767 ; OLetter # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10781..10782 ; OLetter # Lm [2] MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON..MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON
10800..10805 ; OLetter # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
10808 ; OLetter # Lo CYPRIOT SYLLABLE JO
1080A..10835 ; OLetter # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
@@ -2308,9 +2358,12 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10F00..10F1C ; OLetter # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F27 ; OLetter # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; OLetter # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10F70..10F81 ; OLetter # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
10FB0..10FC4 ; OLetter # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
10FE0..10FF6 ; OLetter # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11003..11037 ; OLetter # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+11071..11072 ; OLetter # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
+11075 ; OLetter # Lo BRAHMI LETTER OLD TAMIL LLA
11083..110AF ; OLetter # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
110D0..110E8 ; OLetter # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
11103..11126 ; OLetter # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
@@ -2324,6 +2377,7 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
111DC ; OLetter # Lo SHARADA HEADSTROKE
11200..11211 ; OLetter # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
11213..1122B ; OLetter # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240 ; OLetter # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
11280..11286 ; OLetter # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
11288 ; OLetter # Lo MULTANI LETTER GHA
1128A..1128D ; OLetter # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -2352,6 +2406,7 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
11680..116AA ; OLetter # Lo [43] TAKRI LETTER A..TAKRI LETTER RRA
116B8 ; OLetter # Lo TAKRI LETTER ARCHAIC KHA
11700..1171A ; OLetter # Lo [27] AHOM LETTER KA..AHOM LETTER ALTERNATE BA
+11740..11746 ; OLetter # Lo [7] AHOM LETTER CA..AHOM LETTER LLA
11800..1182B ; OLetter # Lo [44] DOGRA LETTER A..DOGRA LETTER RRA
118FF..11906 ; OLetter # Lo [8] WARANG CITI OM..DIVES AKURU LETTER E
11909 ; OLetter # Lo DIVES AKURU LETTER O
@@ -2370,7 +2425,7 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
11A50 ; OLetter # Lo SOYOMBO LETTER A
11A5C..11A89 ; OLetter # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A9D ; OLetter # Lo SOYOMBO MARK PLUTA
-11AC0..11AF8 ; OLetter # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11AB0..11AF8 ; OLetter # Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
11C00..11C08 ; OLetter # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
11C0A..11C2E ; OLetter # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
11C40 ; OLetter # Lo BHAIKSUKI SIGN AVAGRAHA
@@ -2384,14 +2439,20 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
11D6A..11D89 ; OLetter # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
11D98 ; OLetter # Lo GUNJALA GONDI OM
11EE0..11EF2 ; OLetter # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02 ; OLetter # Lo KAWI SIGN REPHA
+11F04..11F10 ; OLetter # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33 ; OLetter # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
11FB0 ; OLetter # Lo LISU LETTER YHA
12000..12399 ; OLetter # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
12400..1246E ; OLetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
12480..12543 ; OLetter # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
-13000..1342E ; OLetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+12F90..12FF0 ; OLetter # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
+13000..1342F ; OLetter # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446 ; OLetter # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
14400..14646 ; OLetter # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
16800..16A38 ; OLetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
16A40..16A5E ; OLetter # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16A70..16ABE ; OLetter # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
16AD0..16AED ; OLetter # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
16B00..16B2F ; OLetter # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
16B40..16B43 ; OLetter # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
@@ -2405,18 +2466,31 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
17000..187F7 ; OLetter # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7
18800..18CD5 ; OLetter # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5
18D00..18D08 ; OLetter # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08
-1B000..1B11E ; OLetter # Lo [287] KATAKANA LETTER ARCHAIC E..HENTAIGANA LETTER N-MU-MO-2
+1AFF0..1AFF3 ; OLetter # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF5..1AFFB ; OLetter # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFD..1AFFE ; OLetter # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
+1B000..1B122 ; OLetter # Lo [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU
+1B132 ; OLetter # Lo HIRAGANA LETTER SMALL KO
1B150..1B152 ; OLetter # Lo [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO
+1B155 ; OLetter # Lo KATAKANA LETTER SMALL KO
1B164..1B167 ; OLetter # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
1B170..1B2FB ; OLetter # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB
1BC00..1BC6A ; OLetter # Lo [107] DUPLOYAN LETTER H..DUPLOYAN LETTER VOCALIC M
1BC70..1BC7C ; OLetter # Lo [13] DUPLOYAN AFFIX LEFT HORIZONTAL SECANT..DUPLOYAN AFFIX ATTACHED TANGENT HOOK
1BC80..1BC88 ; OLetter # Lo [9] DUPLOYAN AFFIX HIGH ACUTE..DUPLOYAN AFFIX HIGH VERTICAL
1BC90..1BC99 ; OLetter # Lo [10] DUPLOYAN AFFIX LOW ACUTE..DUPLOYAN AFFIX LOW ARROW
+1DF0A ; OLetter # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
1E100..1E12C ; OLetter # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
1E137..1E13D ; OLetter # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
1E14E ; OLetter # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E290..1E2AD ; OLetter # Lo [30] TOTO LETTER PA..TOTO LETTER A
1E2C0..1E2EB ; OLetter # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA ; OLetter # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB ; OLetter # Lm NAG MUNDARI SIGN OJOD
+1E7E0..1E7E6 ; OLetter # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E8..1E7EB ; OLetter # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7ED..1E7EE ; OLetter # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7F0..1E7FE ; OLetter # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
1E800..1E8C4 ; OLetter # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E94B ; OLetter # Lm ADLAM NASALIZATION MARK
1EE00..1EE03 ; OLetter # Lo [4] ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
@@ -2452,23 +2526,29 @@ FFDA..FFDC ; OLetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1EEA1..1EEA3 ; OLetter # Lo [3] ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
1EEA5..1EEA9 ; OLetter # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
1EEAB..1EEBB ; OLetter # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
-20000..2A6DD ; OLetter # Lo [42718] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DD
-2A700..2B734 ; OLetter # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734
+20000..2A6DF ; OLetter # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF
+2A700..2B739 ; OLetter # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739
2B740..2B81D ; OLetter # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D
2B820..2CEA1 ; OLetter # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1
2CEB0..2EBE0 ; OLetter # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0
+2EBF0..2EE5D ; OLetter # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D
2F800..2FA1D ; OLetter # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
30000..3134A ; OLetter # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A
+31350..323AF ; OLetter # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF
-# Total code points: 127413
+# Total code points: 132658
# ================================================
0030..0039 ; Numeric # Nd [10] DIGIT ZERO..DIGIT NINE
+0600..0605 ; Numeric # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
0660..0669 ; Numeric # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
066B..066C ; Numeric # Po [2] ARABIC DECIMAL SEPARATOR..ARABIC THOUSANDS SEPARATOR
+06DD ; Numeric # Cf ARABIC END OF AYAH
06F0..06F9 ; Numeric # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
07C0..07C9 ; Numeric # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+0890..0891 ; Numeric # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+08E2 ; Numeric # Cf ARABIC DISPUTED END OF AYAH
0966..096F ; Numeric # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
09E6..09EF ; Numeric # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
0A66..0A6F ; Numeric # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
@@ -2505,6 +2585,8 @@ FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
104A0..104A9 ; Numeric # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
10D30..10D39 ; Numeric # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
11066..1106F ; Numeric # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+110BD ; Numeric # Cf KAITHI NUMBER SIGN
+110CD ; Numeric # Cf KAITHI NUMBER SIGN ABOVE
110F0..110F9 ; Numeric # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
11136..1113F ; Numeric # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
111D0..111D9 ; Numeric # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
@@ -2519,15 +2601,18 @@ FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
11C50..11C59 ; Numeric # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
11D50..11D59 ; Numeric # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
11DA0..11DA9 ; Numeric # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59 ; Numeric # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
16A60..16A69 ; Numeric # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16AC0..16AC9 ; Numeric # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
16B50..16B59 ; Numeric # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
1D7CE..1D7FF ; Numeric # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
1E140..1E149 ; Numeric # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
1E2F0..1E2F9 ; Numeric # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9 ; Numeric # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
1E950..1E959 ; Numeric # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1FBF0..1FBF9 ; Numeric # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
-# Total code points: 652
+# Total code points: 694
# ================================================
@@ -2543,7 +2628,7 @@ FF0E ; ATerm # Po FULLWIDTH FULL STOP
0021 ; STerm # Po EXCLAMATION MARK
003F ; STerm # Po QUESTION MARK
0589 ; STerm # Po ARMENIAN FULL STOP
-061E..061F ; STerm # Po [2] ARABIC TRIPLE DOT PUNCTUATION MARK..ARABIC QUESTION MARK
+061D..061F ; STerm # Po [3] ARABIC END OF TEXT MARK..ARABIC QUESTION MARK
06D4 ; STerm # Po ARABIC FULL STOP
0700..0702 ; STerm # Po [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP
07F9 ; STerm # Po NKO EXCLAMATION MARK
@@ -2556,18 +2641,21 @@ FF0E ; ATerm # Po FULLWIDTH FULL STOP
1367..1368 ; STerm # Po [2] ETHIOPIC QUESTION MARK..ETHIOPIC PARAGRAPH SEPARATOR
166E ; STerm # Po CANADIAN SYLLABICS FULL STOP
1735..1736 ; STerm # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
+17D4..17D5 ; STerm # Po [2] KHMER SIGN KHAN..KHMER SIGN BARIYOOSAN
1803 ; STerm # Po MONGOLIAN FULL STOP
1809 ; STerm # Po MONGOLIAN MANCHU FULL STOP
1944..1945 ; STerm # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK
1AA8..1AAB ; STerm # Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU
1B5A..1B5B ; STerm # Po [2] BALINESE PANTI..BALINESE PAMADA
1B5E..1B5F ; STerm # Po [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN
+1B7D..1B7E ; STerm # Po [2] BALINESE PANTI LANTANG..BALINESE PAMADA LANTANG
1C3B..1C3C ; STerm # Po [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL
1C7E..1C7F ; STerm # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD
203C..203D ; STerm # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG
2047..2049 ; STerm # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
2E2E ; STerm # Po REVERSED QUESTION MARK
2E3C ; STerm # Po STENOGRAPHIC FULL STOP
+2E53..2E54 ; STerm # Po [2] MEDIEVAL EXCLAMATION MARK..MEDIEVAL QUESTION MARK
3002 ; STerm # Po IDEOGRAPHIC FULL STOP
A4FF ; STerm # Po LISU PUNCTUATION FULL STOP
A60E..A60F ; STerm # Po [2] VAI FULL STOP..VAI QUESTION MARK
@@ -2586,6 +2674,7 @@ FF1F ; STerm # Po FULLWIDTH QUESTION MARK
FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
10A56..10A57 ; STerm # Po [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA
10F55..10F59 ; STerm # Po [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT
+10F86..10F89 ; STerm # Po [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS
11047..11048 ; STerm # Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA
110BE..110C1 ; STerm # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA
11141..11143 ; STerm # Po [3] CHAKMA DANDA..CHAKMA QUESTION MARK
@@ -2606,6 +2695,7 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
11A9B..11A9C ; STerm # Po [2] SOYOMBO MARK SHAD..SOYOMBO MARK DOUBLE SHAD
11C41..11C42 ; STerm # Po [2] BHAIKSUKI DANDA..BHAIKSUKI DOUBLE DANDA
11EF7..11EF8 ; STerm # Po [2] MAKASAR PASSIMBANG..MAKASAR END OF SECTION
+11F43..11F44 ; STerm # Po [2] KAWI DANDA..KAWI DOUBLE DANDA
16A6E..16A6F ; STerm # Po [2] MRO DANDA..MRO DOUBLE DANDA
16AF5 ; STerm # Po BASSA VAH FULL STOP
16B37..16B38 ; STerm # Po [2] PAHAWH HMONG SIGN VOS THOM..PAHAWH HMONG SIGN VOS TSHAB CEEB
@@ -2614,7 +2704,7 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
1BC9F ; STerm # Po DUPLOYAN PUNCTUATION CHINOOK FULL STOP
1DA88 ; STerm # Po SIGNWRITING FULL STOP
-# Total code points: 140
+# Total code points: 153
# ================================================
@@ -2734,6 +2824,14 @@ FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP
2E28 ; Close # Ps LEFT DOUBLE PARENTHESIS
2E29 ; Close # Pe RIGHT DOUBLE PARENTHESIS
2E42 ; Close # Ps DOUBLE LOW-REVERSED-9 QUOTATION MARK
+2E55 ; Close # Ps LEFT SQUARE BRACKET WITH STROKE
+2E56 ; Close # Pe RIGHT SQUARE BRACKET WITH STROKE
+2E57 ; Close # Ps LEFT SQUARE BRACKET WITH DOUBLE STROKE
+2E58 ; Close # Pe RIGHT SQUARE BRACKET WITH DOUBLE STROKE
+2E59 ; Close # Ps TOP HALF LEFT PARENTHESIS
+2E5A ; Close # Pe TOP HALF RIGHT PARENTHESIS
+2E5B ; Close # Ps BOTTOM HALF LEFT PARENTHESIS
+2E5C ; Close # Pe BOTTOM HALF RIGHT PARENTHESIS
3008 ; Close # Ps LEFT ANGLE BRACKET
3009 ; Close # Pe RIGHT ANGLE BRACKET
300A ; Close # Ps LEFT DOUBLE ANGLE BRACKET
@@ -2794,7 +2892,7 @@ FF62 ; Close # Ps HALFWIDTH LEFT CORNER BRACKET
FF63 ; Close # Pe HALFWIDTH RIGHT CORNER BRACKET
1F676..1F678 ; Close # So [3] SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT..SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
-# Total code points: 187
+# Total code points: 195
# ================================================
diff --git a/util/unicode/data/SpecialCasing.txt b/util/unicode/data/SpecialCasing.txt
index 2a1a5a1d6b..de08450a6b 100644
--- a/util/unicode/data/SpecialCasing.txt
+++ b/util/unicode/data/SpecialCasing.txt
@@ -1,11 +1,11 @@
-# SpecialCasing-13.0.0.txt
-# Date: 2019-09-08, 23:31:24 GMT
-# © 2019 Unicode®, Inc.
+# SpecialCasing-15.1.0.txt
+# Date: 2023-01-05, 20:35:03 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
#
# Special Casing
#
diff --git a/util/unicode/data/UnicodeData.txt b/util/unicode/data/UnicodeData.txt
index e22f967bba..bdcc41850d 100644
--- a/util/unicode/data/UnicodeData.txt
+++ b/util/unicode/data/UnicodeData.txt
@@ -1525,6 +1525,7 @@
061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;;
061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
061C;ARABIC LETTER MARK;Cf;0;AL;;;;;N;;;;;
+061D;ARABIC END OF TEXT MARK;Po;0;AL;;;;;N;;;;;
061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
0620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;;
@@ -2089,6 +2090,47 @@
0868;SYRIAC LETTER MALAYALAM LLA;Lo;0;AL;;;;;N;;;;;
0869;SYRIAC LETTER MALAYALAM LLLA;Lo;0;AL;;;;;N;;;;;
086A;SYRIAC LETTER MALAYALAM SSA;Lo;0;AL;;;;;N;;;;;
+0870;ARABIC LETTER ALEF WITH ATTACHED FATHA;Lo;0;AL;;;;;N;;;;;
+0871;ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA;Lo;0;AL;;;;;N;;;;;
+0872;ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE;Lo;0;AL;;;;;N;;;;;
+0873;ARABIC LETTER ALEF WITH LEFT MIDDLE STROKE;Lo;0;AL;;;;;N;;;;;
+0874;ARABIC LETTER ALEF WITH ATTACHED KASRA;Lo;0;AL;;;;;N;;;;;
+0875;ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA;Lo;0;AL;;;;;N;;;;;
+0876;ARABIC LETTER ALEF WITH ATTACHED ROUND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+0877;ARABIC LETTER ALEF WITH ATTACHED RIGHT ROUND DOT;Lo;0;AL;;;;;N;;;;;
+0878;ARABIC LETTER ALEF WITH ATTACHED LEFT ROUND DOT;Lo;0;AL;;;;;N;;;;;
+0879;ARABIC LETTER ALEF WITH ATTACHED ROUND DOT BELOW;Lo;0;AL;;;;;N;;;;;
+087A;ARABIC LETTER ALEF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+087B;ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+087C;ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+087D;ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+087E;ARABIC LETTER ALEF WITH ATTACHED TOP RIGHT FATHA AND LEFT RING;Lo;0;AL;;;;;N;;;;;
+087F;ARABIC LETTER ALEF WITH RIGHT MIDDLE STROKE AND LEFT RING;Lo;0;AL;;;;;N;;;;;
+0880;ARABIC LETTER ALEF WITH ATTACHED BOTTOM RIGHT KASRA AND LEFT RING;Lo;0;AL;;;;;N;;;;;
+0881;ARABIC LETTER ALEF WITH ATTACHED RIGHT HAMZA;Lo;0;AL;;;;;N;;;;;
+0882;ARABIC LETTER ALEF WITH ATTACHED LEFT HAMZA;Lo;0;AL;;;;;N;;;;;
+0883;ARABIC TATWEEL WITH OVERSTRUCK HAMZA;Lo;0;AL;;;;;N;;;;;
+0884;ARABIC TATWEEL WITH OVERSTRUCK WAW;Lo;0;AL;;;;;N;;;;;
+0885;ARABIC TATWEEL WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+0886;ARABIC LETTER THIN YEH;Lo;0;AL;;;;;N;;;;;
+0887;ARABIC BASELINE ROUND DOT;Lo;0;AL;;;;;N;;;;;
+0888;ARABIC RAISED ROUND DOT;Sk;0;AL;;;;;N;;;;;
+0889;ARABIC LETTER NOON WITH INVERTED SMALL V;Lo;0;AL;;;;;N;;;;;
+088A;ARABIC LETTER HAH WITH INVERTED SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+088B;ARABIC LETTER TAH WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+088C;ARABIC LETTER TAH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
+088D;ARABIC LETTER KEHEH WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;;
+088E;ARABIC VERTICAL TAIL;Lo;0;AL;;;;;N;;;;;
+0890;ARABIC POUND MARK ABOVE;Cf;0;AN;;;;;N;;;;;
+0891;ARABIC PIASTRE MARK ABOVE;Cf;0;AN;;;;;N;;;;;
+0898;ARABIC SMALL HIGH WORD AL-JUZ;Mn;230;NSM;;;;;N;;;;;
+0899;ARABIC SMALL LOW WORD ISHMAAM;Mn;220;NSM;;;;;N;;;;;
+089A;ARABIC SMALL LOW WORD IMAALA;Mn;220;NSM;;;;;N;;;;;
+089B;ARABIC SMALL LOW WORD TASHEEL;Mn;220;NSM;;;;;N;;;;;
+089C;ARABIC MADDA WAAJIB;Mn;230;NSM;;;;;N;;;;;
+089D;ARABIC SUPERSCRIPT ALEF MOKHASSAS;Mn;230;NSM;;;;;N;;;;;
+089E;ARABIC DOUBLED MADDA;Mn;230;NSM;;;;;N;;;;;
+089F;ARABIC HALF MADDA OVER MADDA;Mn;230;NSM;;;;;N;;;;;
08A0;ARABIC LETTER BEH WITH SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
08A1;ARABIC LETTER BEH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
08A2;ARABIC LETTER JEEM WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
@@ -2110,6 +2152,7 @@
08B2;ARABIC LETTER ZAIN WITH INVERTED V ABOVE;Lo;0;AL;;;;;N;;;;;
08B3;ARABIC LETTER AIN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
08B4;ARABIC LETTER KAF WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+08B5;ARABIC LETTER QAF WITH DOT BELOW AND NO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
08B6;ARABIC LETTER BEH WITH SMALL MEEM ABOVE;Lo;0;AL;;;;;N;;;;;
08B7;ARABIC LETTER PEH WITH SMALL MEEM ABOVE;Lo;0;AL;;;;;N;;;;;
08B8;ARABIC LETTER TEH WITH SMALL TEH ABOVE;Lo;0;AL;;;;;N;;;;;
@@ -2128,6 +2171,17 @@
08C5;ARABIC LETTER JEEM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
08C6;ARABIC LETTER JEEM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;;
08C7;ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE;Lo;0;AL;;;;;N;;;;;
+08C8;ARABIC LETTER GRAF;Lo;0;AL;;;;;N;;;;;
+08C9;ARABIC SMALL FARSI YEH;Lm;0;AL;;;;;N;;;;;
+08CA;ARABIC SMALL HIGH FARSI YEH;Mn;230;NSM;;;;;N;;;;;
+08CB;ARABIC SMALL HIGH YEH BARREE WITH TWO DOTS BELOW;Mn;230;NSM;;;;;N;;;;;
+08CC;ARABIC SMALL HIGH WORD SAH;Mn;230;NSM;;;;;N;;;;;
+08CD;ARABIC SMALL HIGH ZAH;Mn;230;NSM;;;;;N;;;;;
+08CE;ARABIC LARGE ROUND DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+08CF;ARABIC LARGE ROUND DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+08D0;ARABIC SUKUN BELOW;Mn;220;NSM;;;;;N;;;;;
+08D1;ARABIC LARGE CIRCLE BELOW;Mn;220;NSM;;;;;N;;;;;
+08D2;ARABIC LARGE ROUND DOT INSIDE CIRCLE BELOW;Mn;220;NSM;;;;;N;;;;;
08D3;ARABIC SMALL LOW WAW;Mn;220;NSM;;;;;N;;;;;
08D4;ARABIC SMALL HIGH WORD AR-RUB;Mn;230;NSM;;;;;N;;;;;
08D5;ARABIC SMALL HIGH SAD;Mn;230;NSM;;;;;N;;;;;
@@ -2786,6 +2840,7 @@
0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;;
0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;;
0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;;
+0C3C;TELUGU SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
0C3D;TELUGU SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
@@ -2806,6 +2861,7 @@
0C58;TELUGU LETTER TSA;Lo;0;L;;;;;N;;;;;
0C59;TELUGU LETTER DZA;Lo;0;L;;;;;N;;;;;
0C5A;TELUGU LETTER RRRA;Lo;0;L;;;;;N;;;;;
+0C5D;TELUGU LETTER NAKAARA POLLU;Lo;0;L;;;;;N;;;;;
0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
0C62;TELUGU VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
@@ -2901,6 +2957,7 @@
0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;;
0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;;
+0CDD;KANNADA LETTER NAKAARA POLLU;Lo;0;L;;;;;N;;;;;
0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;;
0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
@@ -2918,6 +2975,7 @@
0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
0CF1;KANNADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
0CF2;KANNADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+0CF3;KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT;Mc;0;L;;;;;N;;;;;
0D00;MALAYALAM SIGN COMBINING ANUSVARA ABOVE;Mn;0;NSM;;;;;N;;;;;
0D01;MALAYALAM SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
@@ -3282,6 +3340,7 @@
0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;;
0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;;
0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;;
+0ECE;LAO YAMAKKAN;Mn;0;NSM;;;;;N;;;;;
0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -5258,6 +5317,7 @@
170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;;
170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;;
170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;;
+170D;TAGALOG LETTER RA;Lo;0;L;;;;;N;;;;;
170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;;
170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;;
1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;;
@@ -5265,6 +5325,8 @@
1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1715;TAGALOG SIGN PAMUDPOD;Mc;9;L;;;;;N;;;;;
+171F;TAGALOG LETTER ARCHAIC RA;Lo;0;L;;;;;N;;;;;
1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;;
1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;;
1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;;
@@ -5285,7 +5347,7 @@
1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;;
1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
-1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;;
+1734;HANUNOO SIGN PAMUDPOD;Mc;9;L;;;;;N;;;;;
1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;;
1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;;
1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;;
@@ -5455,6 +5517,7 @@
180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;;
+180F;MONGOLIAN FREE VARIATION SELECTOR FOUR;Mn;0;NSM;;;;;N;;;;;
1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -6059,6 +6122,20 @@
1ABE;COMBINING PARENTHESES OVERLAY;Me;0;NSM;;;;;N;;;;;
1ABF;COMBINING LATIN SMALL LETTER W BELOW;Mn;220;NSM;;;;;N;;;;;
1AC0;COMBINING LATIN SMALL LETTER TURNED W BELOW;Mn;220;NSM;;;;;N;;;;;
+1AC1;COMBINING LEFT PARENTHESIS ABOVE LEFT;Mn;230;NSM;;;;;N;;;;;
+1AC2;COMBINING RIGHT PARENTHESIS ABOVE RIGHT;Mn;230;NSM;;;;;N;;;;;
+1AC3;COMBINING LEFT PARENTHESIS BELOW LEFT;Mn;220;NSM;;;;;N;;;;;
+1AC4;COMBINING RIGHT PARENTHESIS BELOW RIGHT;Mn;220;NSM;;;;;N;;;;;
+1AC5;COMBINING SQUARE BRACKETS ABOVE;Mn;230;NSM;;;;;N;;;;;
+1AC6;COMBINING NUMBER SIGN ABOVE;Mn;230;NSM;;;;;N;;;;;
+1AC7;COMBINING INVERTED DOUBLE ARCH ABOVE;Mn;230;NSM;;;;;N;;;;;
+1AC8;COMBINING PLUS SIGN ABOVE;Mn;230;NSM;;;;;N;;;;;
+1AC9;COMBINING DOUBLE PLUS SIGN ABOVE;Mn;230;NSM;;;;;N;;;;;
+1ACA;COMBINING DOUBLE PLUS SIGN BELOW;Mn;220;NSM;;;;;N;;;;;
+1ACB;COMBINING TRIPLE ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;;
+1ACC;COMBINING LATIN SMALL LETTER INSULAR G;Mn;230;NSM;;;;;N;;;;;
+1ACD;COMBINING LATIN SMALL LETTER INSULAR R;Mn;230;NSM;;;;;N;;;;;
+1ACE;COMBINING LATIN SMALL LETTER INSULAR T;Mn;230;NSM;;;;;N;;;;;
1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;;
1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;;
1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;;
@@ -6135,6 +6212,7 @@
1B49;BALINESE LETTER VE SASAK;Lo;0;L;;;;;N;;;;;
1B4A;BALINESE LETTER ZAL SASAK;Lo;0;L;;;;;N;;;;;
1B4B;BALINESE LETTER ASYURA SASAK;Lo;0;L;;;;;N;;;;;
+1B4C;BALINESE LETTER ARCHAIC JNYA;Lo;0;L;;;;;N;;;;;
1B50;BALINESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
1B51;BALINESE DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
1B52;BALINESE DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -6180,6 +6258,8 @@
1B7A;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLAK;So;0;L;;;;;N;;;;;
1B7B;BALINESE MUSICAL SYMBOL LEFT-HAND CLOSED PLUK;So;0;L;;;;;N;;;;;
1B7C;BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING;So;0;L;;;;;N;;;;;
+1B7D;BALINESE PANTI LANTANG;Po;0;L;;;;;N;;;;;
+1B7E;BALINESE PAMADA LANTANG;Po;0;L;;;;;N;;;;;
1B80;SUNDANESE SIGN PANYECEK;Mn;0;NSM;;;;;N;;;;;
1B81;SUNDANESE SIGN PANGLAYAR;Mn;0;NSM;;;;;N;;;;;
1B82;SUNDANESE SIGN PANGWISAD;Mc;0;L;;;;;N;;;;;
@@ -6778,6 +6858,7 @@
1DF7;COMBINING KAVYKA ABOVE LEFT;Mn;228;NSM;;;;;N;;;;;
1DF8;COMBINING DOT ABOVE LEFT;Mn;228;NSM;;;;;N;;;;;
1DF9;COMBINING WIDE INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;;;;;
+1DFA;COMBINING DOT BELOW LEFT;Mn;218;NSM;;;;;N;;;;;
1DFB;COMBINING DELETION MARK;Mn;230;NSM;;;;;N;;;;;
1DFC;COMBINING DOUBLE INVERTED BREVE BELOW;Mn;233;NSM;;;;;N;;;;;
1DFD;COMBINING ALMOST EQUAL TO BELOW;Mn;220;NSM;;;;;N;;;;;
@@ -7457,6 +7538,7 @@
20BD;RUBLE SIGN;Sc;0;ET;;;;;N;;;;;
20BE;LARI SIGN;Sc;0;ET;;;;;N;;;;;
20BF;BITCOIN SIGN;Sc;0;ET;;;;;N;;;;;
+20C0;SOM SIGN;Sc;0;ET;;;;;N;;;;;
20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;;
20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;;
20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;;
@@ -10300,6 +10382,7 @@
2C2C;GLAGOLITIC CAPITAL LETTER SHTAPIC;Lu;0;L;;;;;N;;;;2C5C;
2C2D;GLAGOLITIC CAPITAL LETTER TROKUTASTI A;Lu;0;L;;;;;N;;;;2C5D;
2C2E;GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE;Lu;0;L;;;;;N;;;;2C5E;
+2C2F;GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI;Lu;0;L;;;;;N;;;;2C5F;
2C30;GLAGOLITIC SMALL LETTER AZU;Ll;0;L;;;;;N;;;2C00;;2C00
2C31;GLAGOLITIC SMALL LETTER BUKY;Ll;0;L;;;;;N;;;2C01;;2C01
2C32;GLAGOLITIC SMALL LETTER VEDE;Ll;0;L;;;;;N;;;2C02;;2C02
@@ -10347,6 +10430,7 @@
2C5C;GLAGOLITIC SMALL LETTER SHTAPIC;Ll;0;L;;;;;N;;;2C2C;;2C2C
2C5D;GLAGOLITIC SMALL LETTER TROKUTASTI A;Ll;0;L;;;;;N;;;2C2D;;2C2D
2C5E;GLAGOLITIC SMALL LETTER LATINATE MYSLITE;Ll;0;L;;;;;N;;;2C2E;;2C2E
+2C5F;GLAGOLITIC SMALL LETTER CAUDATE CHRIVI;Ll;0;L;;;;;N;;;2C2F;;2C2F
2C60;LATIN CAPITAL LETTER L WITH DOUBLE BAR;Lu;0;L;;;;;N;;;;2C61;
2C61;LATIN SMALL LETTER L WITH DOUBLE BAR;Ll;0;L;;;;;N;;;2C60;;2C60
2C62;LATIN CAPITAL LETTER L WITH MIDDLE TILDE;Lu;0;L;;;;;N;;;;026B;
@@ -10795,6 +10879,17 @@
2E50;CROSS PATTY WITH RIGHT CROSSBAR;So;0;ON;;;;;N;;;;;
2E51;CROSS PATTY WITH LEFT CROSSBAR;So;0;ON;;;;;N;;;;;
2E52;TIRONIAN SIGN CAPITAL ET;Po;0;ON;;;;;N;;;;;
+2E53;MEDIEVAL EXCLAMATION MARK;Po;0;ON;;;;;N;;;;;
+2E54;MEDIEVAL QUESTION MARK;Po;0;ON;;;;;N;;;;;
+2E55;LEFT SQUARE BRACKET WITH STROKE;Ps;0;ON;;;;;Y;;;;;
+2E56;RIGHT SQUARE BRACKET WITH STROKE;Pe;0;ON;;;;;Y;;;;;
+2E57;LEFT SQUARE BRACKET WITH DOUBLE STROKE;Ps;0;ON;;;;;Y;;;;;
+2E58;RIGHT SQUARE BRACKET WITH DOUBLE STROKE;Pe;0;ON;;;;;Y;;;;;
+2E59;TOP HALF LEFT PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+2E5A;TOP HALF RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+2E5B;BOTTOM HALF LEFT PARENTHESIS;Ps;0;ON;;;;;Y;;;;;
+2E5C;BOTTOM HALF RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;;;;;
+2E5D;OBLIQUE HYPHEN;Pd;0;ON;;;;;N;;;;;
2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
@@ -11136,6 +11231,10 @@
2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;;
2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;;
2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;;
+2FFC;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM RIGHT;So;0;ON;;;;;N;;;;;
+2FFD;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER RIGHT;So;0;ON;;;;;N;;;;;
+2FFE;IDEOGRAPHIC DESCRIPTION CHARACTER HORIZONTAL REFLECTION;So;0;ON;;;;;N;;;;;
+2FFF;IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION;So;0;ON;;;;;N;;;;;
3000;IDEOGRAPHIC SPACE;Zs;0;WS;<wide> 0020;;;;N;;;;;
3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;;
3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;;
@@ -11610,6 +11709,7 @@
31E1;CJK STROKE HZZZG;So;0;ON;;;;;N;;;;;
31E2;CJK STROKE PG;So;0;ON;;;;;N;;;;;
31E3;CJK STROKE Q;So;0;ON;;;;;N;;;;;
+31EF;IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION;So;0;ON;;;;;N;;;;;
31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;;
31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;;
31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;;
@@ -12204,7 +12304,7 @@
4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
-9FFC;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+9FFF;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
@@ -14149,6 +14249,8 @@ A7BC;LATIN CAPITAL LETTER GLOTTAL I;Lu;0;L;;;;;N;;;;A7BD;
A7BD;LATIN SMALL LETTER GLOTTAL I;Ll;0;L;;;;;N;;;A7BC;;A7BC
A7BE;LATIN CAPITAL LETTER GLOTTAL U;Lu;0;L;;;;;N;;;;A7BF;
A7BF;LATIN SMALL LETTER GLOTTAL U;Ll;0;L;;;;;N;;;A7BE;;A7BE
+A7C0;LATIN CAPITAL LETTER OLD POLISH O;Lu;0;L;;;;;N;;;;A7C1;
+A7C1;LATIN SMALL LETTER OLD POLISH O;Ll;0;L;;;;;N;;;A7C0;;A7C0
A7C2;LATIN CAPITAL LETTER ANGLICANA W;Lu;0;L;;;;;N;;;;A7C3;
A7C3;LATIN SMALL LETTER ANGLICANA W;Ll;0;L;;;;;N;;;A7C2;;A7C2
A7C4;LATIN CAPITAL LETTER C WITH PALATAL HOOK;Lu;0;L;;;;;N;;;;A794;
@@ -14158,6 +14260,17 @@ A7C7;LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY;Lu;0;L;;;;;N;;;;A7C8;
A7C8;LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY;Ll;0;L;;;;;N;;;A7C7;;A7C7
A7C9;LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY;Lu;0;L;;;;;N;;;;A7CA;
A7CA;LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY;Ll;0;L;;;;;N;;;A7C9;;A7C9
+A7D0;LATIN CAPITAL LETTER CLOSED INSULAR G;Lu;0;L;;;;;N;;;;A7D1;
+A7D1;LATIN SMALL LETTER CLOSED INSULAR G;Ll;0;L;;;;;N;;;A7D0;;A7D0
+A7D3;LATIN SMALL LETTER DOUBLE THORN;Ll;0;L;;;;;N;;;;;
+A7D5;LATIN SMALL LETTER DOUBLE WYNN;Ll;0;L;;;;;N;;;;;
+A7D6;LATIN CAPITAL LETTER MIDDLE SCOTS S;Lu;0;L;;;;;N;;;;A7D7;
+A7D7;LATIN SMALL LETTER MIDDLE SCOTS S;Ll;0;L;;;;;N;;;A7D6;;A7D6
+A7D8;LATIN CAPITAL LETTER SIGMOID S;Lu;0;L;;;;;N;;;;A7D9;
+A7D9;LATIN SMALL LETTER SIGMOID S;Ll;0;L;;;;;N;;;A7D8;;A7D8
+A7F2;MODIFIER LETTER CAPITAL C;Lm;0;L;<super> 0043;;;;N;;;;;
+A7F3;MODIFIER LETTER CAPITAL F;Lm;0;L;<super> 0046;;;;N;;;;;
+A7F4;MODIFIER LETTER CAPITAL Q;Lm;0;L;<super> 0051;;;;N;;;;;
A7F5;LATIN CAPITAL LETTER REVERSED HALF H;Lu;0;L;;;;;N;;;;A7F6;
A7F6;LATIN SMALL LETTER REVERSED HALF H;Ll;0;L;;;;;N;;;A7F5;;A7F5
A7F7;LATIN EPIGRAPHIC LETTER SIDEWAYS I;Lo;0;L;;;;;N;;;;;
@@ -15794,6 +15907,7 @@ FBBE;ARABIC SYMBOL TWO DOTS VERTICALLY BELOW;Sk;0;AL;;;;;N;;;;;
FBBF;ARABIC SYMBOL RING;Sk;0;AL;;;;;N;;;;;
FBC0;ARABIC SYMBOL SMALL TAH ABOVE;Sk;0;AL;;;;;N;;;;;
FBC1;ARABIC SYMBOL SMALL TAH BELOW;Sk;0;AL;;;;;N;;;;;
+FBC2;ARABIC SYMBOL WASLA ABOVE;Sk;0;AL;;;;;N;;;;;
FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL;<isolated> 06AD;;;;N;;;;;
FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL;<final> 06AD;;;;N;;;;;
FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL;<initial> 06AD;;;;N;;;;;
@@ -16159,6 +16273,22 @@ FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL;<final> 0627 064B;;;;
FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL;<isolated> 0627 064B;;;;N;;;;;
FD3E;ORNATE LEFT PARENTHESIS;Pe;0;ON;;;;;N;;;;;
FD3F;ORNATE RIGHT PARENTHESIS;Ps;0;ON;;;;;N;;;;;
+FD40;ARABIC LIGATURE RAHIMAHU ALLAAH;So;0;ON;;;;;N;;;;;
+FD41;ARABIC LIGATURE RADI ALLAAHU ANH;So;0;ON;;;;;N;;;;;
+FD42;ARABIC LIGATURE RADI ALLAAHU ANHAA;So;0;ON;;;;;N;;;;;
+FD43;ARABIC LIGATURE RADI ALLAAHU ANHUM;So;0;ON;;;;;N;;;;;
+FD44;ARABIC LIGATURE RADI ALLAAHU ANHUMAA;So;0;ON;;;;;N;;;;;
+FD45;ARABIC LIGATURE RADI ALLAAHU ANHUNNA;So;0;ON;;;;;N;;;;;
+FD46;ARABIC LIGATURE SALLALLAAHU ALAYHI WA-AALIH;So;0;ON;;;;;N;;;;;
+FD47;ARABIC LIGATURE ALAYHI AS-SALAAM;So;0;ON;;;;;N;;;;;
+FD48;ARABIC LIGATURE ALAYHIM AS-SALAAM;So;0;ON;;;;;N;;;;;
+FD49;ARABIC LIGATURE ALAYHIMAA AS-SALAAM;So;0;ON;;;;;N;;;;;
+FD4A;ARABIC LIGATURE ALAYHI AS-SALAATU WAS-SALAAM;So;0;ON;;;;;N;;;;;
+FD4B;ARABIC LIGATURE QUDDISA SIRRAH;So;0;ON;;;;;N;;;;;
+FD4C;ARABIC LIGATURE SALLALLAHU ALAYHI WAAALIHEE WA-SALLAM;So;0;ON;;;;;N;;;;;
+FD4D;ARABIC LIGATURE ALAYHAA AS-SALAAM;So;0;ON;;;;;N;;;;;
+FD4E;ARABIC LIGATURE TABAARAKA WA-TAAALAA;So;0;ON;;;;;N;;;;;
+FD4F;ARABIC LIGATURE RAHIMAHUM ALLAAH;So;0;ON;;;;;N;;;;;
FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062C 0645;;;;N;;;;;
FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL;<final> 062A 062D 062C;;;;N;;;;;
FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL;<initial> 062A 062D 062C;;;;N;;;;;
@@ -16277,6 +16407,7 @@ FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0639
FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL;<initial> 0635 0645 0645;;;;N;;;;;
FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL;<final> 0633 062E 064A;;;;N;;;;;
FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL;<final> 0646 062C 064A;;;;N;;;;;
+FDCF;ARABIC LIGATURE SALAAMUHU ALAYNAA;So;0;ON;;;;;N;;;;;
FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0635 0644 06D2;;;;N;;;;;
FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL;<isolated> 0642 0644 06D2;;;;N;;;;;
FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL;<isolated> 0627 0644 0644 0647;;;;N;;;;;
@@ -16291,6 +16422,8 @@ FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL;<isolated> 0635 0644 06
FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL;<isolated> 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;;
FDFC;RIAL SIGN;Sc;0;AL;<isolated> 0631 06CC 0627 0644;;;;N;;;;;
FDFD;ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM;So;0;ON;;;;;N;;;;;
+FDFE;ARABIC LIGATURE SUBHAANAHU WA TAAALAA;So;0;ON;;;;;N;;;;;
+FDFF;ARABIC LIGATURE AZZA WA JALL;So;0;ON;;;;;N;;;;;
FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;;
FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;;
FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;;
@@ -17798,6 +17931,76 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10562;CAUCASIAN ALBANIAN LETTER PIWR;Lo;0;L;;;;;N;;;;;
10563;CAUCASIAN ALBANIAN LETTER KIW;Lo;0;L;;;;;N;;;;;
1056F;CAUCASIAN ALBANIAN CITATION MARK;Po;0;L;;;;;N;;;;;
+10570;VITHKUQI CAPITAL LETTER A;Lu;0;L;;;;;N;;;;10597;
+10571;VITHKUQI CAPITAL LETTER BBE;Lu;0;L;;;;;N;;;;10598;
+10572;VITHKUQI CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;10599;
+10573;VITHKUQI CAPITAL LETTER CE;Lu;0;L;;;;;N;;;;1059A;
+10574;VITHKUQI CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;1059B;
+10575;VITHKUQI CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;1059C;
+10576;VITHKUQI CAPITAL LETTER DHE;Lu;0;L;;;;;N;;;;1059D;
+10577;VITHKUQI CAPITAL LETTER EI;Lu;0;L;;;;;N;;;;1059E;
+10578;VITHKUQI CAPITAL LETTER E;Lu;0;L;;;;;N;;;;1059F;
+10579;VITHKUQI CAPITAL LETTER FE;Lu;0;L;;;;;N;;;;105A0;
+1057A;VITHKUQI CAPITAL LETTER GA;Lu;0;L;;;;;N;;;;105A1;
+1057C;VITHKUQI CAPITAL LETTER HA;Lu;0;L;;;;;N;;;;105A3;
+1057D;VITHKUQI CAPITAL LETTER HHA;Lu;0;L;;;;;N;;;;105A4;
+1057E;VITHKUQI CAPITAL LETTER I;Lu;0;L;;;;;N;;;;105A5;
+1057F;VITHKUQI CAPITAL LETTER IJE;Lu;0;L;;;;;N;;;;105A6;
+10580;VITHKUQI CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;105A7;
+10581;VITHKUQI CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;105A8;
+10582;VITHKUQI CAPITAL LETTER LA;Lu;0;L;;;;;N;;;;105A9;
+10583;VITHKUQI CAPITAL LETTER LLA;Lu;0;L;;;;;N;;;;105AA;
+10584;VITHKUQI CAPITAL LETTER ME;Lu;0;L;;;;;N;;;;105AB;
+10585;VITHKUQI CAPITAL LETTER NE;Lu;0;L;;;;;N;;;;105AC;
+10586;VITHKUQI CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;105AD;
+10587;VITHKUQI CAPITAL LETTER O;Lu;0;L;;;;;N;;;;105AE;
+10588;VITHKUQI CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;105AF;
+10589;VITHKUQI CAPITAL LETTER QA;Lu;0;L;;;;;N;;;;105B0;
+1058A;VITHKUQI CAPITAL LETTER RE;Lu;0;L;;;;;N;;;;105B1;
+1058C;VITHKUQI CAPITAL LETTER SE;Lu;0;L;;;;;N;;;;105B3;
+1058D;VITHKUQI CAPITAL LETTER SHE;Lu;0;L;;;;;N;;;;105B4;
+1058E;VITHKUQI CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;105B5;
+1058F;VITHKUQI CAPITAL LETTER THE;Lu;0;L;;;;;N;;;;105B6;
+10590;VITHKUQI CAPITAL LETTER U;Lu;0;L;;;;;N;;;;105B7;
+10591;VITHKUQI CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;105B8;
+10592;VITHKUQI CAPITAL LETTER XE;Lu;0;L;;;;;N;;;;105B9;
+10594;VITHKUQI CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;105BB;
+10595;VITHKUQI CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;105BC;
+10597;VITHKUQI SMALL LETTER A;Ll;0;L;;;;;N;;;10570;;10570
+10598;VITHKUQI SMALL LETTER BBE;Ll;0;L;;;;;N;;;10571;;10571
+10599;VITHKUQI SMALL LETTER BE;Ll;0;L;;;;;N;;;10572;;10572
+1059A;VITHKUQI SMALL LETTER CE;Ll;0;L;;;;;N;;;10573;;10573
+1059B;VITHKUQI SMALL LETTER CHE;Ll;0;L;;;;;N;;;10574;;10574
+1059C;VITHKUQI SMALL LETTER DE;Ll;0;L;;;;;N;;;10575;;10575
+1059D;VITHKUQI SMALL LETTER DHE;Ll;0;L;;;;;N;;;10576;;10576
+1059E;VITHKUQI SMALL LETTER EI;Ll;0;L;;;;;N;;;10577;;10577
+1059F;VITHKUQI SMALL LETTER E;Ll;0;L;;;;;N;;;10578;;10578
+105A0;VITHKUQI SMALL LETTER FE;Ll;0;L;;;;;N;;;10579;;10579
+105A1;VITHKUQI SMALL LETTER GA;Ll;0;L;;;;;N;;;1057A;;1057A
+105A3;VITHKUQI SMALL LETTER HA;Ll;0;L;;;;;N;;;1057C;;1057C
+105A4;VITHKUQI SMALL LETTER HHA;Ll;0;L;;;;;N;;;1057D;;1057D
+105A5;VITHKUQI SMALL LETTER I;Ll;0;L;;;;;N;;;1057E;;1057E
+105A6;VITHKUQI SMALL LETTER IJE;Ll;0;L;;;;;N;;;1057F;;1057F
+105A7;VITHKUQI SMALL LETTER JE;Ll;0;L;;;;;N;;;10580;;10580
+105A8;VITHKUQI SMALL LETTER KA;Ll;0;L;;;;;N;;;10581;;10581
+105A9;VITHKUQI SMALL LETTER LA;Ll;0;L;;;;;N;;;10582;;10582
+105AA;VITHKUQI SMALL LETTER LLA;Ll;0;L;;;;;N;;;10583;;10583
+105AB;VITHKUQI SMALL LETTER ME;Ll;0;L;;;;;N;;;10584;;10584
+105AC;VITHKUQI SMALL LETTER NE;Ll;0;L;;;;;N;;;10585;;10585
+105AD;VITHKUQI SMALL LETTER NJE;Ll;0;L;;;;;N;;;10586;;10586
+105AE;VITHKUQI SMALL LETTER O;Ll;0;L;;;;;N;;;10587;;10587
+105AF;VITHKUQI SMALL LETTER PE;Ll;0;L;;;;;N;;;10588;;10588
+105B0;VITHKUQI SMALL LETTER QA;Ll;0;L;;;;;N;;;10589;;10589
+105B1;VITHKUQI SMALL LETTER RE;Ll;0;L;;;;;N;;;1058A;;1058A
+105B3;VITHKUQI SMALL LETTER SE;Ll;0;L;;;;;N;;;1058C;;1058C
+105B4;VITHKUQI SMALL LETTER SHE;Ll;0;L;;;;;N;;;1058D;;1058D
+105B5;VITHKUQI SMALL LETTER TE;Ll;0;L;;;;;N;;;1058E;;1058E
+105B6;VITHKUQI SMALL LETTER THE;Ll;0;L;;;;;N;;;1058F;;1058F
+105B7;VITHKUQI SMALL LETTER U;Ll;0;L;;;;;N;;;10590;;10590
+105B8;VITHKUQI SMALL LETTER VE;Ll;0;L;;;;;N;;;10591;;10591
+105B9;VITHKUQI SMALL LETTER XE;Ll;0;L;;;;;N;;;10592;;10592
+105BB;VITHKUQI SMALL LETTER Y;Ll;0;L;;;;;N;;;10594;;10594
+105BC;VITHKUQI SMALL LETTER ZE;Ll;0;L;;;;;N;;;10595;;10595
10600;LINEAR A SIGN AB001;Lo;0;L;;;;;N;;;;;
10601;LINEAR A SIGN AB002;Lo;0;L;;;;;N;;;;;
10602;LINEAR A SIGN AB003;Lo;0;L;;;;;N;;;;;
@@ -18139,6 +18342,63 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10765;LINEAR A SIGN A805;Lo;0;L;;;;;N;;;;;
10766;LINEAR A SIGN A806;Lo;0;L;;;;;N;;;;;
10767;LINEAR A SIGN A807;Lo;0;L;;;;;N;;;;;
+10780;MODIFIER LETTER SMALL CAPITAL AA;Lm;0;L;;;;;N;;;;;
+10781;MODIFIER LETTER SUPERSCRIPT TRIANGULAR COLON;Lm;0;L;<super> 02D0;;;;N;;;;;
+10782;MODIFIER LETTER SUPERSCRIPT HALF TRIANGULAR COLON;Lm;0;L;<super> 02D1;;;;N;;;;;
+10783;MODIFIER LETTER SMALL AE;Lm;0;L;<super> 00E6;;;;N;;;;;
+10784;MODIFIER LETTER SMALL CAPITAL B;Lm;0;L;<super> 0299;;;;N;;;;;
+10785;MODIFIER LETTER SMALL B WITH HOOK;Lm;0;L;<super> 0253;;;;N;;;;;
+10787;MODIFIER LETTER SMALL DZ DIGRAPH;Lm;0;L;<super> 02A3;;;;N;;;;;
+10788;MODIFIER LETTER SMALL DZ DIGRAPH WITH RETROFLEX HOOK;Lm;0;L;<super> AB66;;;;N;;;;;
+10789;MODIFIER LETTER SMALL DZ DIGRAPH WITH CURL;Lm;0;L;<super> 02A5;;;;N;;;;;
+1078A;MODIFIER LETTER SMALL DEZH DIGRAPH;Lm;0;L;<super> 02A4;;;;N;;;;;
+1078B;MODIFIER LETTER SMALL D WITH TAIL;Lm;0;L;<super> 0256;;;;N;;;;;
+1078C;MODIFIER LETTER SMALL D WITH HOOK;Lm;0;L;<super> 0257;;;;N;;;;;
+1078D;MODIFIER LETTER SMALL D WITH HOOK AND TAIL;Lm;0;L;<super> 1D91;;;;N;;;;;
+1078E;MODIFIER LETTER SMALL REVERSED E;Lm;0;L;<super> 0258;;;;N;;;;;
+1078F;MODIFIER LETTER SMALL CLOSED REVERSED OPEN E;Lm;0;L;<super> 025E;;;;N;;;;;
+10790;MODIFIER LETTER SMALL FENG DIGRAPH;Lm;0;L;<super> 02A9;;;;N;;;;;
+10791;MODIFIER LETTER SMALL RAMS HORN;Lm;0;L;<super> 0264;;;;N;;;;;
+10792;MODIFIER LETTER SMALL CAPITAL G;Lm;0;L;<super> 0262;;;;N;;;;;
+10793;MODIFIER LETTER SMALL G WITH HOOK;Lm;0;L;<super> 0260;;;;N;;;;;
+10794;MODIFIER LETTER SMALL CAPITAL G WITH HOOK;Lm;0;L;<super> 029B;;;;N;;;;;
+10795;MODIFIER LETTER SMALL H WITH STROKE;Lm;0;L;<super> 0127;;;;N;;;;;
+10796;MODIFIER LETTER SMALL CAPITAL H;Lm;0;L;<super> 029C;;;;N;;;;;
+10797;MODIFIER LETTER SMALL HENG WITH HOOK;Lm;0;L;<super> 0267;;;;N;;;;;
+10798;MODIFIER LETTER SMALL DOTLESS J WITH STROKE AND HOOK;Lm;0;L;<super> 0284;;;;N;;;;;
+10799;MODIFIER LETTER SMALL LS DIGRAPH;Lm;0;L;<super> 02AA;;;;N;;;;;
+1079A;MODIFIER LETTER SMALL LZ DIGRAPH;Lm;0;L;<super> 02AB;;;;N;;;;;
+1079B;MODIFIER LETTER SMALL L WITH BELT;Lm;0;L;<super> 026C;;;;N;;;;;
+1079C;MODIFIER LETTER SMALL CAPITAL L WITH BELT;Lm;0;L;<super> 1DF04;;;;N;;;;;
+1079D;MODIFIER LETTER SMALL L WITH RETROFLEX HOOK AND BELT;Lm;0;L;<super> A78E;;;;N;;;;;
+1079E;MODIFIER LETTER SMALL LEZH;Lm;0;L;<super> 026E;;;;N;;;;;
+1079F;MODIFIER LETTER SMALL LEZH WITH RETROFLEX HOOK;Lm;0;L;<super> 1DF05;;;;N;;;;;
+107A0;MODIFIER LETTER SMALL TURNED Y;Lm;0;L;<super> 028E;;;;N;;;;;
+107A1;MODIFIER LETTER SMALL TURNED Y WITH BELT;Lm;0;L;<super> 1DF06;;;;N;;;;;
+107A2;MODIFIER LETTER SMALL O WITH STROKE;Lm;0;L;<super> 00F8;;;;N;;;;;
+107A3;MODIFIER LETTER SMALL CAPITAL OE;Lm;0;L;<super> 0276;;;;N;;;;;
+107A4;MODIFIER LETTER SMALL CLOSED OMEGA;Lm;0;L;<super> 0277;;;;N;;;;;
+107A5;MODIFIER LETTER SMALL Q;Lm;0;L;<super> 0071;;;;N;;;;;
+107A6;MODIFIER LETTER SMALL TURNED R WITH LONG LEG;Lm;0;L;<super> 027A;;;;N;;;;;
+107A7;MODIFIER LETTER SMALL TURNED R WITH LONG LEG AND RETROFLEX HOOK;Lm;0;L;<super> 1DF08;;;;N;;;;;
+107A8;MODIFIER LETTER SMALL R WITH TAIL;Lm;0;L;<super> 027D;;;;N;;;;;
+107A9;MODIFIER LETTER SMALL R WITH FISHHOOK;Lm;0;L;<super> 027E;;;;N;;;;;
+107AA;MODIFIER LETTER SMALL CAPITAL R;Lm;0;L;<super> 0280;;;;N;;;;;
+107AB;MODIFIER LETTER SMALL TC DIGRAPH WITH CURL;Lm;0;L;<super> 02A8;;;;N;;;;;
+107AC;MODIFIER LETTER SMALL TS DIGRAPH;Lm;0;L;<super> 02A6;;;;N;;;;;
+107AD;MODIFIER LETTER SMALL TS DIGRAPH WITH RETROFLEX HOOK;Lm;0;L;<super> AB67;;;;N;;;;;
+107AE;MODIFIER LETTER SMALL TESH DIGRAPH;Lm;0;L;<super> 02A7;;;;N;;;;;
+107AF;MODIFIER LETTER SMALL T WITH RETROFLEX HOOK;Lm;0;L;<super> 0288;;;;N;;;;;
+107B0;MODIFIER LETTER SMALL V WITH RIGHT HOOK;Lm;0;L;<super> 2C71;;;;N;;;;;
+107B2;MODIFIER LETTER SMALL CAPITAL Y;Lm;0;L;<super> 028F;;;;N;;;;;
+107B3;MODIFIER LETTER GLOTTAL STOP WITH STROKE;Lm;0;L;<super> 02A1;;;;N;;;;;
+107B4;MODIFIER LETTER REVERSED GLOTTAL STOP WITH STROKE;Lm;0;L;<super> 02A2;;;;N;;;;;
+107B5;MODIFIER LETTER BILABIAL CLICK;Lm;0;L;<super> 0298;;;;N;;;;;
+107B6;MODIFIER LETTER DENTAL CLICK;Lm;0;L;<super> 01C0;;;;N;;;;;
+107B7;MODIFIER LETTER LATERAL CLICK;Lm;0;L;<super> 01C1;;;;N;;;;;
+107B8;MODIFIER LETTER ALVEOLAR CLICK;Lm;0;L;<super> 01C2;;;;N;;;;;
+107B9;MODIFIER LETTER RETROFLEX CLICK WITH RETROFLEX HOOK;Lm;0;L;<super> 1DF0A;;;;N;;;;;
+107BA;MODIFIER LETTER SMALL S WITH CURL;Lm;0;L;<super> 1DF1E;;;;N;;;;;
10800;CYPRIOT SYLLABLE A;Lo;0;R;;;;;N;;;;;
10801;CYPRIOT SYLLABLE E;Lo;0;R;;;;;N;;;;;
10802;CYPRIOT SYLLABLE I;Lo;0;R;;;;;N;;;;;
@@ -19140,6 +19400,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10EAD;YEZIDI HYPHENATION MARK;Pd;0;R;;;;;N;;;;;
10EB0;YEZIDI LETTER LAM WITH DOT ABOVE;Lo;0;R;;;;;N;;;;;
10EB1;YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE;Lo;0;R;;;;;N;;;;;
+10EFD;ARABIC SMALL LOW WORD SAKTA;Mn;220;NSM;;;;;N;;;;;
+10EFE;ARABIC SMALL LOW WORD QASR;Mn;220;NSM;;;;;N;;;;;
+10EFF;ARABIC SMALL LOW WORD MADDA;Mn;220;NSM;;;;;N;;;;;
10F00;OLD SOGDIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
10F01;OLD SOGDIAN LETTER FINAL ALEPH;Lo;0;R;;;;;N;;;;;
10F02;OLD SOGDIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
@@ -19222,6 +19485,32 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
10F57;SOGDIAN PUNCTUATION CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
10F58;SOGDIAN PUNCTUATION TWO CIRCLES WITH DOTS;Po;0;AL;;;;;N;;;;;
10F59;SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT;Po;0;AL;;;;;N;;;;;
+10F70;OLD UYGHUR LETTER ALEPH;Lo;0;R;;;;;N;;;;;
+10F71;OLD UYGHUR LETTER BETH;Lo;0;R;;;;;N;;;;;
+10F72;OLD UYGHUR LETTER GIMEL-HETH;Lo;0;R;;;;;N;;;;;
+10F73;OLD UYGHUR LETTER WAW;Lo;0;R;;;;;N;;;;;
+10F74;OLD UYGHUR LETTER ZAYIN;Lo;0;R;;;;;N;;;;;
+10F75;OLD UYGHUR LETTER FINAL HETH;Lo;0;R;;;;;N;;;;;
+10F76;OLD UYGHUR LETTER YODH;Lo;0;R;;;;;N;;;;;
+10F77;OLD UYGHUR LETTER KAPH;Lo;0;R;;;;;N;;;;;
+10F78;OLD UYGHUR LETTER LAMEDH;Lo;0;R;;;;;N;;;;;
+10F79;OLD UYGHUR LETTER MEM;Lo;0;R;;;;;N;;;;;
+10F7A;OLD UYGHUR LETTER NUN;Lo;0;R;;;;;N;;;;;
+10F7B;OLD UYGHUR LETTER SAMEKH;Lo;0;R;;;;;N;;;;;
+10F7C;OLD UYGHUR LETTER PE;Lo;0;R;;;;;N;;;;;
+10F7D;OLD UYGHUR LETTER SADHE;Lo;0;R;;;;;N;;;;;
+10F7E;OLD UYGHUR LETTER RESH;Lo;0;R;;;;;N;;;;;
+10F7F;OLD UYGHUR LETTER SHIN;Lo;0;R;;;;;N;;;;;
+10F80;OLD UYGHUR LETTER TAW;Lo;0;R;;;;;N;;;;;
+10F81;OLD UYGHUR LETTER LESH;Lo;0;R;;;;;N;;;;;
+10F82;OLD UYGHUR COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+10F83;OLD UYGHUR COMBINING DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+10F84;OLD UYGHUR COMBINING TWO DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+10F85;OLD UYGHUR COMBINING TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+10F86;OLD UYGHUR PUNCTUATION BAR;Po;0;R;;;;;N;;;;;
+10F87;OLD UYGHUR PUNCTUATION TWO BARS;Po;0;R;;;;;N;;;;;
+10F88;OLD UYGHUR PUNCTUATION TWO DOTS;Po;0;R;;;;;N;;;;;
+10F89;OLD UYGHUR PUNCTUATION FOUR DOTS;Po;0;R;;;;;N;;;;;
10FB0;CHORASMIAN LETTER ALEPH;Lo;0;R;;;;;N;;;;;
10FB1;CHORASMIAN LETTER SMALL ALEPH;Lo;0;R;;;;;N;;;;;
10FB2;CHORASMIAN LETTER BETH;Lo;0;R;;;;;N;;;;;
@@ -19381,6 +19670,12 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1106D;BRAHMI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
1106E;BRAHMI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
1106F;BRAHMI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11070;BRAHMI SIGN OLD TAMIL VIRAMA;Mn;9;NSM;;;;;N;;;;;
+11071;BRAHMI LETTER OLD TAMIL SHORT E;Lo;0;L;;;;;N;;;;;
+11072;BRAHMI LETTER OLD TAMIL SHORT O;Lo;0;L;;;;;N;;;;;
+11073;BRAHMI VOWEL SIGN OLD TAMIL SHORT E;Mn;0;NSM;;;;;N;;;;;
+11074;BRAHMI VOWEL SIGN OLD TAMIL SHORT O;Mn;0;NSM;;;;;N;;;;;
+11075;BRAHMI LETTER OLD TAMIL LLA;Lo;0;L;;;;;N;;;;;
1107F;BRAHMI NUMBER JOINER;Mn;9;NSM;;;;;N;;;;;
11080;KAITHI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
11081;KAITHI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
@@ -19448,6 +19743,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
110BF;KAITHI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
110C0;KAITHI DANDA;Po;0;L;;;;;N;;;;;
110C1;KAITHI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+110C2;KAITHI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
110CD;KAITHI NUMBER SIGN ABOVE;Cf;0;L;;;;;N;;;;;
110D0;SORA SOMPENG LETTER SAH;Lo;0;L;;;;;N;;;;;
110D1;SORA SOMPENG LETTER TAH;Lo;0;L;;;;;N;;;;;
@@ -19772,6 +20068,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1123C;KHOJKI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
1123D;KHOJKI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
1123E;KHOJKI SIGN SUKUN;Mn;0;NSM;;;;;N;;;;;
+1123F;KHOJKI LETTER QA;Lo;0;L;;;;;N;;;;;
+11240;KHOJKI LETTER SHORT I;Lo;0;L;;;;;N;;;;;
+11241;KHOJKI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
11280;MULTANI LETTER A;Lo;0;L;;;;;N;;;;;
11281;MULTANI LETTER I;Lo;0;L;;;;;N;;;;;
11282;MULTANI LETTER U;Lo;0;L;;;;;N;;;;;
@@ -20385,6 +20684,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
116B6;TAKRI SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
116B7;TAKRI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
116B8;TAKRI LETTER ARCHAIC KHA;Lo;0;L;;;;;N;;;;;
+116B9;TAKRI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
116C0;TAKRI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
116C1;TAKRI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
116C2;TAKRI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -20453,6 +20753,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1173D;AHOM SIGN SECTION;Po;0;L;;;;;N;;;;;
1173E;AHOM SIGN RULAI;Po;0;L;;;;;N;;;;;
1173F;AHOM SYMBOL VI;So;0;L;;;;;N;;;;;
+11740;AHOM LETTER CA;Lo;0;L;;;;;N;;;;;
+11741;AHOM LETTER TTA;Lo;0;L;;;;;N;;;;;
+11742;AHOM LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11743;AHOM LETTER DDA;Lo;0;L;;;;;N;;;;;
+11744;AHOM LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11745;AHOM LETTER NNA;Lo;0;L;;;;;N;;;;;
+11746;AHOM LETTER LLA;Lo;0;L;;;;;N;;;;;
11800;DOGRA LETTER A;Lo;0;L;;;;;N;;;;;
11801;DOGRA LETTER AA;Lo;0;L;;;;;N;;;;;
11802;DOGRA LETTER I;Lo;0;L;;;;;N;;;;;
@@ -20889,6 +21196,22 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11AA0;SOYOMBO HEAD MARK WITH MOON AND SUN;Po;0;L;;;;;N;;;;;
11AA1;SOYOMBO TERMINAL MARK-1;Po;0;L;;;;;N;;;;;
11AA2;SOYOMBO TERMINAL MARK-2;Po;0;L;;;;;N;;;;;
+11AB0;CANADIAN SYLLABICS NATTILIK HI;Lo;0;L;;;;;N;;;;;
+11AB1;CANADIAN SYLLABICS NATTILIK HII;Lo;0;L;;;;;N;;;;;
+11AB2;CANADIAN SYLLABICS NATTILIK HO;Lo;0;L;;;;;N;;;;;
+11AB3;CANADIAN SYLLABICS NATTILIK HOO;Lo;0;L;;;;;N;;;;;
+11AB4;CANADIAN SYLLABICS NATTILIK HA;Lo;0;L;;;;;N;;;;;
+11AB5;CANADIAN SYLLABICS NATTILIK HAA;Lo;0;L;;;;;N;;;;;
+11AB6;CANADIAN SYLLABICS NATTILIK SHRI;Lo;0;L;;;;;N;;;;;
+11AB7;CANADIAN SYLLABICS NATTILIK SHRII;Lo;0;L;;;;;N;;;;;
+11AB8;CANADIAN SYLLABICS NATTILIK SHRO;Lo;0;L;;;;;N;;;;;
+11AB9;CANADIAN SYLLABICS NATTILIK SHROO;Lo;0;L;;;;;N;;;;;
+11ABA;CANADIAN SYLLABICS NATTILIK SHRA;Lo;0;L;;;;;N;;;;;
+11ABB;CANADIAN SYLLABICS NATTILIK SHRAA;Lo;0;L;;;;;N;;;;;
+11ABC;CANADIAN SYLLABICS SPE;Lo;0;L;;;;;N;;;;;
+11ABD;CANADIAN SYLLABICS SPI;Lo;0;L;;;;;N;;;;;
+11ABE;CANADIAN SYLLABICS SPO;Lo;0;L;;;;;N;;;;;
+11ABF;CANADIAN SYLLABICS SPA;Lo;0;L;;;;;N;;;;;
11AC0;PAU CIN HAU LETTER PA;Lo;0;L;;;;;N;;;;;
11AC1;PAU CIN HAU LETTER KA;Lo;0;L;;;;;N;;;;;
11AC2;PAU CIN HAU LETTER LA;Lo;0;L;;;;;N;;;;;
@@ -20946,6 +21269,16 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11AF6;PAU CIN HAU LOW-FALLING TONE LONG FINAL;Lo;0;L;;;;;N;;;;;
11AF7;PAU CIN HAU LOW-FALLING TONE FINAL;Lo;0;L;;;;;N;;;;;
11AF8;PAU CIN HAU GLOTTAL STOP FINAL;Lo;0;L;;;;;N;;;;;
+11B00;DEVANAGARI HEAD MARK;Po;0;L;;;;;N;;;;;
+11B01;DEVANAGARI HEAD MARK WITH HEADSTROKE;Po;0;L;;;;;N;;;;;
+11B02;DEVANAGARI SIGN BHALE;Po;0;L;;;;;N;;;;;
+11B03;DEVANAGARI SIGN BHALE WITH HOOK;Po;0;L;;;;;N;;;;;
+11B04;DEVANAGARI SIGN EXTENDED BHALE;Po;0;L;;;;;N;;;;;
+11B05;DEVANAGARI SIGN EXTENDED BHALE WITH HOOK;Po;0;L;;;;;N;;;;;
+11B06;DEVANAGARI SIGN WESTERN FIVE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B07;DEVANAGARI SIGN WESTERN NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B08;DEVANAGARI SIGN REVERSED NINE-LIKE BHALE;Po;0;L;;;;;N;;;;;
+11B09;DEVANAGARI SIGN MINDU;Po;0;L;;;;;N;;;;;
11C00;BHAIKSUKI LETTER A;Lo;0;L;;;;;N;;;;;
11C01;BHAIKSUKI LETTER AA;Lo;0;L;;;;;N;;;;;
11C02;BHAIKSUKI LETTER I;Lo;0;L;;;;;N;;;;;
@@ -21274,6 +21607,92 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
11EF6;MAKASAR VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
11EF7;MAKASAR PASSIMBANG;Po;0;L;;;;;N;;;;;
11EF8;MAKASAR END OF SECTION;Po;0;L;;;;;N;;;;;
+11F00;KAWI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+11F01;KAWI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11F02;KAWI SIGN REPHA;Lo;0;L;;;;;N;;;;;
+11F03;KAWI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11F04;KAWI LETTER A;Lo;0;L;;;;;N;;;;;
+11F05;KAWI LETTER AA;Lo;0;L;;;;;N;;;;;
+11F06;KAWI LETTER I;Lo;0;L;;;;;N;;;;;
+11F07;KAWI LETTER II;Lo;0;L;;;;;N;;;;;
+11F08;KAWI LETTER U;Lo;0;L;;;;;N;;;;;
+11F09;KAWI LETTER UU;Lo;0;L;;;;;N;;;;;
+11F0A;KAWI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+11F0B;KAWI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+11F0C;KAWI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+11F0D;KAWI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+11F0E;KAWI LETTER E;Lo;0;L;;;;;N;;;;;
+11F0F;KAWI LETTER AI;Lo;0;L;;;;;N;;;;;
+11F10;KAWI LETTER O;Lo;0;L;;;;;N;;;;;
+11F12;KAWI LETTER KA;Lo;0;L;;;;;N;;;;;
+11F13;KAWI LETTER KHA;Lo;0;L;;;;;N;;;;;
+11F14;KAWI LETTER GA;Lo;0;L;;;;;N;;;;;
+11F15;KAWI LETTER GHA;Lo;0;L;;;;;N;;;;;
+11F16;KAWI LETTER NGA;Lo;0;L;;;;;N;;;;;
+11F17;KAWI LETTER CA;Lo;0;L;;;;;N;;;;;
+11F18;KAWI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11F19;KAWI LETTER JA;Lo;0;L;;;;;N;;;;;
+11F1A;KAWI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11F1B;KAWI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11F1C;KAWI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11F1D;KAWI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11F1E;KAWI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11F1F;KAWI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11F20;KAWI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11F21;KAWI LETTER TA;Lo;0;L;;;;;N;;;;;
+11F22;KAWI LETTER THA;Lo;0;L;;;;;N;;;;;
+11F23;KAWI LETTER DA;Lo;0;L;;;;;N;;;;;
+11F24;KAWI LETTER DHA;Lo;0;L;;;;;N;;;;;
+11F25;KAWI LETTER NA;Lo;0;L;;;;;N;;;;;
+11F26;KAWI LETTER PA;Lo;0;L;;;;;N;;;;;
+11F27;KAWI LETTER PHA;Lo;0;L;;;;;N;;;;;
+11F28;KAWI LETTER BA;Lo;0;L;;;;;N;;;;;
+11F29;KAWI LETTER BHA;Lo;0;L;;;;;N;;;;;
+11F2A;KAWI LETTER MA;Lo;0;L;;;;;N;;;;;
+11F2B;KAWI LETTER YA;Lo;0;L;;;;;N;;;;;
+11F2C;KAWI LETTER RA;Lo;0;L;;;;;N;;;;;
+11F2D;KAWI LETTER LA;Lo;0;L;;;;;N;;;;;
+11F2E;KAWI LETTER WA;Lo;0;L;;;;;N;;;;;
+11F2F;KAWI LETTER SHA;Lo;0;L;;;;;N;;;;;
+11F30;KAWI LETTER SSA;Lo;0;L;;;;;N;;;;;
+11F31;KAWI LETTER SA;Lo;0;L;;;;;N;;;;;
+11F32;KAWI LETTER HA;Lo;0;L;;;;;N;;;;;
+11F33;KAWI LETTER JNYA;Lo;0;L;;;;;N;;;;;
+11F34;KAWI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+11F35;KAWI VOWEL SIGN ALTERNATE AA;Mc;0;L;;;;;N;;;;;
+11F36;KAWI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+11F37;KAWI VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+11F38;KAWI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+11F39;KAWI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+11F3A;KAWI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+11F3E;KAWI VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+11F3F;KAWI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+11F40;KAWI VOWEL SIGN EU;Mn;0;NSM;;;;;N;;;;;
+11F41;KAWI SIGN KILLER;Mc;9;L;;;;;N;;;;;
+11F42;KAWI CONJOINER;Mn;9;NSM;;;;;N;;;;;
+11F43;KAWI DANDA;Po;0;L;;;;;N;;;;;
+11F44;KAWI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11F45;KAWI PUNCTUATION SECTION MARKER;Po;0;L;;;;;N;;;;;
+11F46;KAWI PUNCTUATION ALTERNATE SECTION MARKER;Po;0;L;;;;;N;;;;;
+11F47;KAWI PUNCTUATION FLOWER;Po;0;L;;;;;N;;;;;
+11F48;KAWI PUNCTUATION SPACE FILLER;Po;0;L;;;;;N;;;;;
+11F49;KAWI PUNCTUATION DOT;Po;0;L;;;;;N;;;;;
+11F4A;KAWI PUNCTUATION DOUBLE DOT;Po;0;L;;;;;N;;;;;
+11F4B;KAWI PUNCTUATION TRIPLE DOT;Po;0;L;;;;;N;;;;;
+11F4C;KAWI PUNCTUATION CIRCLE;Po;0;L;;;;;N;;;;;
+11F4D;KAWI PUNCTUATION FILLED CIRCLE;Po;0;L;;;;;N;;;;;
+11F4E;KAWI PUNCTUATION SPIRAL;Po;0;L;;;;;N;;;;;
+11F4F;KAWI PUNCTUATION CLOSING SPIRAL;Po;0;L;;;;;N;;;;;
+11F50;KAWI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11F51;KAWI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11F52;KAWI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11F53;KAWI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+11F54;KAWI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+11F55;KAWI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+11F56;KAWI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+11F57;KAWI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+11F58;KAWI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+11F59;KAWI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
11FB0;LISU LETTER YHA;Lo;0;L;;;;;N;;;;;
11FC0;TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH;No;0;L;;;;1/320;N;;;;;
11FC1;TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH;No;0;L;;;;1/160;N;;;;;
@@ -22560,6 +22979,105 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
12541;CUNEIFORM SIGN ZA7;Lo;0;L;;;;;N;;;;;
12542;CUNEIFORM SIGN ZU OVER ZU PLUS SAR;Lo;0;L;;;;;N;;;;;
12543;CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU;Lo;0;L;;;;;N;;;;;
+12F90;CYPRO-MINOAN SIGN CM001;Lo;0;L;;;;;N;;;;;
+12F91;CYPRO-MINOAN SIGN CM002;Lo;0;L;;;;;N;;;;;
+12F92;CYPRO-MINOAN SIGN CM004;Lo;0;L;;;;;N;;;;;
+12F93;CYPRO-MINOAN SIGN CM005;Lo;0;L;;;;;N;;;;;
+12F94;CYPRO-MINOAN SIGN CM006;Lo;0;L;;;;;N;;;;;
+12F95;CYPRO-MINOAN SIGN CM007;Lo;0;L;;;;;N;;;;;
+12F96;CYPRO-MINOAN SIGN CM008;Lo;0;L;;;;;N;;;;;
+12F97;CYPRO-MINOAN SIGN CM009;Lo;0;L;;;;;N;;;;;
+12F98;CYPRO-MINOAN SIGN CM010;Lo;0;L;;;;;N;;;;;
+12F99;CYPRO-MINOAN SIGN CM011;Lo;0;L;;;;;N;;;;;
+12F9A;CYPRO-MINOAN SIGN CM012;Lo;0;L;;;;;N;;;;;
+12F9B;CYPRO-MINOAN SIGN CM012B;Lo;0;L;;;;;N;;;;;
+12F9C;CYPRO-MINOAN SIGN CM013;Lo;0;L;;;;;N;;;;;
+12F9D;CYPRO-MINOAN SIGN CM015;Lo;0;L;;;;;N;;;;;
+12F9E;CYPRO-MINOAN SIGN CM017;Lo;0;L;;;;;N;;;;;
+12F9F;CYPRO-MINOAN SIGN CM019;Lo;0;L;;;;;N;;;;;
+12FA0;CYPRO-MINOAN SIGN CM021;Lo;0;L;;;;;N;;;;;
+12FA1;CYPRO-MINOAN SIGN CM023;Lo;0;L;;;;;N;;;;;
+12FA2;CYPRO-MINOAN SIGN CM024;Lo;0;L;;;;;N;;;;;
+12FA3;CYPRO-MINOAN SIGN CM025;Lo;0;L;;;;;N;;;;;
+12FA4;CYPRO-MINOAN SIGN CM026;Lo;0;L;;;;;N;;;;;
+12FA5;CYPRO-MINOAN SIGN CM027;Lo;0;L;;;;;N;;;;;
+12FA6;CYPRO-MINOAN SIGN CM028;Lo;0;L;;;;;N;;;;;
+12FA7;CYPRO-MINOAN SIGN CM029;Lo;0;L;;;;;N;;;;;
+12FA8;CYPRO-MINOAN SIGN CM030;Lo;0;L;;;;;N;;;;;
+12FA9;CYPRO-MINOAN SIGN CM033;Lo;0;L;;;;;N;;;;;
+12FAA;CYPRO-MINOAN SIGN CM034;Lo;0;L;;;;;N;;;;;
+12FAB;CYPRO-MINOAN SIGN CM035;Lo;0;L;;;;;N;;;;;
+12FAC;CYPRO-MINOAN SIGN CM036;Lo;0;L;;;;;N;;;;;
+12FAD;CYPRO-MINOAN SIGN CM037;Lo;0;L;;;;;N;;;;;
+12FAE;CYPRO-MINOAN SIGN CM038;Lo;0;L;;;;;N;;;;;
+12FAF;CYPRO-MINOAN SIGN CM039;Lo;0;L;;;;;N;;;;;
+12FB0;CYPRO-MINOAN SIGN CM040;Lo;0;L;;;;;N;;;;;
+12FB1;CYPRO-MINOAN SIGN CM041;Lo;0;L;;;;;N;;;;;
+12FB2;CYPRO-MINOAN SIGN CM044;Lo;0;L;;;;;N;;;;;
+12FB3;CYPRO-MINOAN SIGN CM046;Lo;0;L;;;;;N;;;;;
+12FB4;CYPRO-MINOAN SIGN CM047;Lo;0;L;;;;;N;;;;;
+12FB5;CYPRO-MINOAN SIGN CM049;Lo;0;L;;;;;N;;;;;
+12FB6;CYPRO-MINOAN SIGN CM050;Lo;0;L;;;;;N;;;;;
+12FB7;CYPRO-MINOAN SIGN CM051;Lo;0;L;;;;;N;;;;;
+12FB8;CYPRO-MINOAN SIGN CM052;Lo;0;L;;;;;N;;;;;
+12FB9;CYPRO-MINOAN SIGN CM053;Lo;0;L;;;;;N;;;;;
+12FBA;CYPRO-MINOAN SIGN CM054;Lo;0;L;;;;;N;;;;;
+12FBB;CYPRO-MINOAN SIGN CM055;Lo;0;L;;;;;N;;;;;
+12FBC;CYPRO-MINOAN SIGN CM056;Lo;0;L;;;;;N;;;;;
+12FBD;CYPRO-MINOAN SIGN CM058;Lo;0;L;;;;;N;;;;;
+12FBE;CYPRO-MINOAN SIGN CM059;Lo;0;L;;;;;N;;;;;
+12FBF;CYPRO-MINOAN SIGN CM060;Lo;0;L;;;;;N;;;;;
+12FC0;CYPRO-MINOAN SIGN CM061;Lo;0;L;;;;;N;;;;;
+12FC1;CYPRO-MINOAN SIGN CM062;Lo;0;L;;;;;N;;;;;
+12FC2;CYPRO-MINOAN SIGN CM063;Lo;0;L;;;;;N;;;;;
+12FC3;CYPRO-MINOAN SIGN CM064;Lo;0;L;;;;;N;;;;;
+12FC4;CYPRO-MINOAN SIGN CM066;Lo;0;L;;;;;N;;;;;
+12FC5;CYPRO-MINOAN SIGN CM067;Lo;0;L;;;;;N;;;;;
+12FC6;CYPRO-MINOAN SIGN CM068;Lo;0;L;;;;;N;;;;;
+12FC7;CYPRO-MINOAN SIGN CM069;Lo;0;L;;;;;N;;;;;
+12FC8;CYPRO-MINOAN SIGN CM070;Lo;0;L;;;;;N;;;;;
+12FC9;CYPRO-MINOAN SIGN CM071;Lo;0;L;;;;;N;;;;;
+12FCA;CYPRO-MINOAN SIGN CM072;Lo;0;L;;;;;N;;;;;
+12FCB;CYPRO-MINOAN SIGN CM073;Lo;0;L;;;;;N;;;;;
+12FCC;CYPRO-MINOAN SIGN CM074;Lo;0;L;;;;;N;;;;;
+12FCD;CYPRO-MINOAN SIGN CM075;Lo;0;L;;;;;N;;;;;
+12FCE;CYPRO-MINOAN SIGN CM075B;Lo;0;L;;;;;N;;;;;
+12FCF;CYPRO-MINOAN SIGN CM076;Lo;0;L;;;;;N;;;;;
+12FD0;CYPRO-MINOAN SIGN CM078;Lo;0;L;;;;;N;;;;;
+12FD1;CYPRO-MINOAN SIGN CM079;Lo;0;L;;;;;N;;;;;
+12FD2;CYPRO-MINOAN SIGN CM080;Lo;0;L;;;;;N;;;;;
+12FD3;CYPRO-MINOAN SIGN CM081;Lo;0;L;;;;;N;;;;;
+12FD4;CYPRO-MINOAN SIGN CM082;Lo;0;L;;;;;N;;;;;
+12FD5;CYPRO-MINOAN SIGN CM083;Lo;0;L;;;;;N;;;;;
+12FD6;CYPRO-MINOAN SIGN CM084;Lo;0;L;;;;;N;;;;;
+12FD7;CYPRO-MINOAN SIGN CM085;Lo;0;L;;;;;N;;;;;
+12FD8;CYPRO-MINOAN SIGN CM086;Lo;0;L;;;;;N;;;;;
+12FD9;CYPRO-MINOAN SIGN CM087;Lo;0;L;;;;;N;;;;;
+12FDA;CYPRO-MINOAN SIGN CM088;Lo;0;L;;;;;N;;;;;
+12FDB;CYPRO-MINOAN SIGN CM089;Lo;0;L;;;;;N;;;;;
+12FDC;CYPRO-MINOAN SIGN CM090;Lo;0;L;;;;;N;;;;;
+12FDD;CYPRO-MINOAN SIGN CM091;Lo;0;L;;;;;N;;;;;
+12FDE;CYPRO-MINOAN SIGN CM092;Lo;0;L;;;;;N;;;;;
+12FDF;CYPRO-MINOAN SIGN CM094;Lo;0;L;;;;;N;;;;;
+12FE0;CYPRO-MINOAN SIGN CM095;Lo;0;L;;;;;N;;;;;
+12FE1;CYPRO-MINOAN SIGN CM096;Lo;0;L;;;;;N;;;;;
+12FE2;CYPRO-MINOAN SIGN CM097;Lo;0;L;;;;;N;;;;;
+12FE3;CYPRO-MINOAN SIGN CM098;Lo;0;L;;;;;N;;;;;
+12FE4;CYPRO-MINOAN SIGN CM099;Lo;0;L;;;;;N;;;;;
+12FE5;CYPRO-MINOAN SIGN CM100;Lo;0;L;;;;;N;;;;;
+12FE6;CYPRO-MINOAN SIGN CM101;Lo;0;L;;;;;N;;;;;
+12FE7;CYPRO-MINOAN SIGN CM102;Lo;0;L;;;;;N;;;;;
+12FE8;CYPRO-MINOAN SIGN CM103;Lo;0;L;;;;;N;;;;;
+12FE9;CYPRO-MINOAN SIGN CM104;Lo;0;L;;;;;N;;;;;
+12FEA;CYPRO-MINOAN SIGN CM105;Lo;0;L;;;;;N;;;;;
+12FEB;CYPRO-MINOAN SIGN CM107;Lo;0;L;;;;;N;;;;;
+12FEC;CYPRO-MINOAN SIGN CM108;Lo;0;L;;;;;N;;;;;
+12FED;CYPRO-MINOAN SIGN CM109;Lo;0;L;;;;;N;;;;;
+12FEE;CYPRO-MINOAN SIGN CM110;Lo;0;L;;;;;N;;;;;
+12FEF;CYPRO-MINOAN SIGN CM112;Lo;0;L;;;;;N;;;;;
+12FF0;CYPRO-MINOAN SIGN CM114;Lo;0;L;;;;;N;;;;;
+12FF1;CYPRO-MINOAN SIGN CM301;Po;0;L;;;;;N;;;;;
+12FF2;CYPRO-MINOAN SIGN CM302;Po;0;L;;;;;N;;;;;
13000;EGYPTIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
13001;EGYPTIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
13002;EGYPTIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
@@ -23631,6 +24149,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1342C;EGYPTIAN HIEROGLYPH AA030;Lo;0;L;;;;;N;;;;;
1342D;EGYPTIAN HIEROGLYPH AA031;Lo;0;L;;;;;N;;;;;
1342E;EGYPTIAN HIEROGLYPH AA032;Lo;0;L;;;;;N;;;;;
+1342F;EGYPTIAN HIEROGLYPH V011D;Lo;0;L;;;;;N;;;;;
13430;EGYPTIAN HIEROGLYPH VERTICAL JOINER;Cf;0;L;;;;;N;;;;;
13431;EGYPTIAN HIEROGLYPH HORIZONTAL JOINER;Cf;0;L;;;;;N;;;;;
13432;EGYPTIAN HIEROGLYPH INSERT AT TOP START;Cf;0;L;;;;;N;;;;;
@@ -23640,6 +24159,35 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
13436;EGYPTIAN HIEROGLYPH OVERLAY MIDDLE;Cf;0;L;;;;;N;;;;;
13437;EGYPTIAN HIEROGLYPH BEGIN SEGMENT;Cf;0;L;;;;;N;;;;;
13438;EGYPTIAN HIEROGLYPH END SEGMENT;Cf;0;L;;;;;N;;;;;
+13439;EGYPTIAN HIEROGLYPH INSERT AT MIDDLE;Cf;0;L;;;;;N;;;;;
+1343A;EGYPTIAN HIEROGLYPH INSERT AT TOP;Cf;0;L;;;;;N;;;;;
+1343B;EGYPTIAN HIEROGLYPH INSERT AT BOTTOM;Cf;0;L;;;;;N;;;;;
+1343C;EGYPTIAN HIEROGLYPH BEGIN ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343D;EGYPTIAN HIEROGLYPH END ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343E;EGYPTIAN HIEROGLYPH BEGIN WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;;
+1343F;EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE;Cf;0;L;;;;;N;;;;;
+13440;EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY;Mn;0;NSM;;;;;N;;;;;
+13441;EGYPTIAN HIEROGLYPH FULL BLANK;Lo;0;L;;;;;N;;;;;
+13442;EGYPTIAN HIEROGLYPH HALF BLANK;Lo;0;L;;;;;N;;;;;
+13443;EGYPTIAN HIEROGLYPH LOST SIGN;Lo;0;L;;;;;N;;;;;
+13444;EGYPTIAN HIEROGLYPH HALF LOST SIGN;Lo;0;L;;;;;N;;;;;
+13445;EGYPTIAN HIEROGLYPH TALL LOST SIGN;Lo;0;L;;;;;N;;;;;
+13446;EGYPTIAN HIEROGLYPH WIDE LOST SIGN;Lo;0;L;;;;;N;;;;;
+13447;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START;Mn;0;NSM;;;;;N;;;;;
+13448;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START;Mn;0;NSM;;;;;N;;;;;
+13449;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START;Mn;0;NSM;;;;;N;;;;;
+1344A;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP END;Mn;0;NSM;;;;;N;;;;;
+1344B;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP;Mn;0;NSM;;;;;N;;;;;
+1344C;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM START AND TOP END;Mn;0;NSM;;;;;N;;;;;
+1344D;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND TOP;Mn;0;NSM;;;;;N;;;;;
+1344E;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM END;Mn;0;NSM;;;;;N;;;;;
+1344F;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START AND BOTTOM END;Mn;0;NSM;;;;;N;;;;;
+13450;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM;Mn;0;NSM;;;;;N;;;;;
+13451;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT START AND BOTTOM;Mn;0;NSM;;;;;N;;;;;
+13452;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT END;Mn;0;NSM;;;;;N;;;;;
+13453;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP AND END;Mn;0;NSM;;;;;N;;;;;
+13454;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT BOTTOM AND END;Mn;0;NSM;;;;;N;;;;;
+13455;EGYPTIAN HIEROGLYPH MODIFIER DAMAGED;Mn;0;NSM;;;;;N;;;;;
14400;ANATOLIAN HIEROGLYPH A001;Lo;0;L;;;;;N;;;;;
14401;ANATOLIAN HIEROGLYPH A002;Lo;0;L;;;;;N;;;;;
14402;ANATOLIAN HIEROGLYPH A003;Lo;0;L;;;;;N;;;;;
@@ -24835,6 +25383,95 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
16A69;MRO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
16A6E;MRO DANDA;Po;0;L;;;;;N;;;;;
16A6F;MRO DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+16A70;TANGSA LETTER OZ;Lo;0;L;;;;;N;;;;;
+16A71;TANGSA LETTER OC;Lo;0;L;;;;;N;;;;;
+16A72;TANGSA LETTER OQ;Lo;0;L;;;;;N;;;;;
+16A73;TANGSA LETTER OX;Lo;0;L;;;;;N;;;;;
+16A74;TANGSA LETTER AZ;Lo;0;L;;;;;N;;;;;
+16A75;TANGSA LETTER AC;Lo;0;L;;;;;N;;;;;
+16A76;TANGSA LETTER AQ;Lo;0;L;;;;;N;;;;;
+16A77;TANGSA LETTER AX;Lo;0;L;;;;;N;;;;;
+16A78;TANGSA LETTER VZ;Lo;0;L;;;;;N;;;;;
+16A79;TANGSA LETTER VC;Lo;0;L;;;;;N;;;;;
+16A7A;TANGSA LETTER VQ;Lo;0;L;;;;;N;;;;;
+16A7B;TANGSA LETTER VX;Lo;0;L;;;;;N;;;;;
+16A7C;TANGSA LETTER EZ;Lo;0;L;;;;;N;;;;;
+16A7D;TANGSA LETTER EC;Lo;0;L;;;;;N;;;;;
+16A7E;TANGSA LETTER EQ;Lo;0;L;;;;;N;;;;;
+16A7F;TANGSA LETTER EX;Lo;0;L;;;;;N;;;;;
+16A80;TANGSA LETTER IZ;Lo;0;L;;;;;N;;;;;
+16A81;TANGSA LETTER IC;Lo;0;L;;;;;N;;;;;
+16A82;TANGSA LETTER IQ;Lo;0;L;;;;;N;;;;;
+16A83;TANGSA LETTER IX;Lo;0;L;;;;;N;;;;;
+16A84;TANGSA LETTER UZ;Lo;0;L;;;;;N;;;;;
+16A85;TANGSA LETTER UC;Lo;0;L;;;;;N;;;;;
+16A86;TANGSA LETTER UQ;Lo;0;L;;;;;N;;;;;
+16A87;TANGSA LETTER UX;Lo;0;L;;;;;N;;;;;
+16A88;TANGSA LETTER AWZ;Lo;0;L;;;;;N;;;;;
+16A89;TANGSA LETTER AWC;Lo;0;L;;;;;N;;;;;
+16A8A;TANGSA LETTER AWQ;Lo;0;L;;;;;N;;;;;
+16A8B;TANGSA LETTER AWX;Lo;0;L;;;;;N;;;;;
+16A8C;TANGSA LETTER UIZ;Lo;0;L;;;;;N;;;;;
+16A8D;TANGSA LETTER UIC;Lo;0;L;;;;;N;;;;;
+16A8E;TANGSA LETTER UIQ;Lo;0;L;;;;;N;;;;;
+16A8F;TANGSA LETTER UIX;Lo;0;L;;;;;N;;;;;
+16A90;TANGSA LETTER FINAL NG;Lo;0;L;;;;;N;;;;;
+16A91;TANGSA LETTER LONG UEX;Lo;0;L;;;;;N;;;;;
+16A92;TANGSA LETTER SHORT UEZ;Lo;0;L;;;;;N;;;;;
+16A93;TANGSA LETTER SHORT AWX;Lo;0;L;;;;;N;;;;;
+16A94;TANGSA LETTER UEC;Lo;0;L;;;;;N;;;;;
+16A95;TANGSA LETTER UEZ;Lo;0;L;;;;;N;;;;;
+16A96;TANGSA LETTER UEQ;Lo;0;L;;;;;N;;;;;
+16A97;TANGSA LETTER UEX;Lo;0;L;;;;;N;;;;;
+16A98;TANGSA LETTER UIUZ;Lo;0;L;;;;;N;;;;;
+16A99;TANGSA LETTER UIUC;Lo;0;L;;;;;N;;;;;
+16A9A;TANGSA LETTER UIUQ;Lo;0;L;;;;;N;;;;;
+16A9B;TANGSA LETTER UIUX;Lo;0;L;;;;;N;;;;;
+16A9C;TANGSA LETTER MZ;Lo;0;L;;;;;N;;;;;
+16A9D;TANGSA LETTER MC;Lo;0;L;;;;;N;;;;;
+16A9E;TANGSA LETTER MQ;Lo;0;L;;;;;N;;;;;
+16A9F;TANGSA LETTER MX;Lo;0;L;;;;;N;;;;;
+16AA0;TANGSA LETTER KA;Lo;0;L;;;;;N;;;;;
+16AA1;TANGSA LETTER KHA;Lo;0;L;;;;;N;;;;;
+16AA2;TANGSA LETTER GA;Lo;0;L;;;;;N;;;;;
+16AA3;TANGSA LETTER NGA;Lo;0;L;;;;;N;;;;;
+16AA4;TANGSA LETTER SA;Lo;0;L;;;;;N;;;;;
+16AA5;TANGSA LETTER YA;Lo;0;L;;;;;N;;;;;
+16AA6;TANGSA LETTER WA;Lo;0;L;;;;;N;;;;;
+16AA7;TANGSA LETTER PA;Lo;0;L;;;;;N;;;;;
+16AA8;TANGSA LETTER NYA;Lo;0;L;;;;;N;;;;;
+16AA9;TANGSA LETTER PHA;Lo;0;L;;;;;N;;;;;
+16AAA;TANGSA LETTER BA;Lo;0;L;;;;;N;;;;;
+16AAB;TANGSA LETTER MA;Lo;0;L;;;;;N;;;;;
+16AAC;TANGSA LETTER NA;Lo;0;L;;;;;N;;;;;
+16AAD;TANGSA LETTER HA;Lo;0;L;;;;;N;;;;;
+16AAE;TANGSA LETTER LA;Lo;0;L;;;;;N;;;;;
+16AAF;TANGSA LETTER HTA;Lo;0;L;;;;;N;;;;;
+16AB0;TANGSA LETTER TA;Lo;0;L;;;;;N;;;;;
+16AB1;TANGSA LETTER DA;Lo;0;L;;;;;N;;;;;
+16AB2;TANGSA LETTER RA;Lo;0;L;;;;;N;;;;;
+16AB3;TANGSA LETTER NHA;Lo;0;L;;;;;N;;;;;
+16AB4;TANGSA LETTER SHA;Lo;0;L;;;;;N;;;;;
+16AB5;TANGSA LETTER CA;Lo;0;L;;;;;N;;;;;
+16AB6;TANGSA LETTER TSA;Lo;0;L;;;;;N;;;;;
+16AB7;TANGSA LETTER GHA;Lo;0;L;;;;;N;;;;;
+16AB8;TANGSA LETTER HTTA;Lo;0;L;;;;;N;;;;;
+16AB9;TANGSA LETTER THA;Lo;0;L;;;;;N;;;;;
+16ABA;TANGSA LETTER XA;Lo;0;L;;;;;N;;;;;
+16ABB;TANGSA LETTER FA;Lo;0;L;;;;;N;;;;;
+16ABC;TANGSA LETTER DHA;Lo;0;L;;;;;N;;;;;
+16ABD;TANGSA LETTER CHA;Lo;0;L;;;;;N;;;;;
+16ABE;TANGSA LETTER ZA;Lo;0;L;;;;;N;;;;;
+16AC0;TANGSA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+16AC1;TANGSA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+16AC2;TANGSA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+16AC3;TANGSA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+16AC4;TANGSA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+16AC5;TANGSA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+16AC6;TANGSA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+16AC7;TANGSA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+16AC8;TANGSA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+16AC9;TANGSA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
16AD0;BASSA VAH LETTER ENNI;Lo;0;L;;;;;N;;;;;
16AD1;BASSA VAH LETTER KA;Lo;0;L;;;;;N;;;;;
16AD2;BASSA VAH LETTER SE;Lo;0;L;;;;;N;;;;;
@@ -26487,6 +27124,19 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
18CD5;KHITAN SMALL SCRIPT CHARACTER-18CD5;Lo;0;L;;;;;N;;;;;
18D00;<Tangut Ideograph Supplement, First>;Lo;0;L;;;;;N;;;;;
18D08;<Tangut Ideograph Supplement, Last>;Lo;0;L;;;;;N;;;;;
+1AFF0;KATAKANA LETTER MINNAN TONE-2;Lm;0;L;;;;;N;;;;;
+1AFF1;KATAKANA LETTER MINNAN TONE-3;Lm;0;L;;;;;N;;;;;
+1AFF2;KATAKANA LETTER MINNAN TONE-4;Lm;0;L;;;;;N;;;;;
+1AFF3;KATAKANA LETTER MINNAN TONE-5;Lm;0;L;;;;;N;;;;;
+1AFF5;KATAKANA LETTER MINNAN TONE-7;Lm;0;L;;;;;N;;;;;
+1AFF6;KATAKANA LETTER MINNAN TONE-8;Lm;0;L;;;;;N;;;;;
+1AFF7;KATAKANA LETTER MINNAN NASALIZED TONE-1;Lm;0;L;;;;;N;;;;;
+1AFF8;KATAKANA LETTER MINNAN NASALIZED TONE-2;Lm;0;L;;;;;N;;;;;
+1AFF9;KATAKANA LETTER MINNAN NASALIZED TONE-3;Lm;0;L;;;;;N;;;;;
+1AFFA;KATAKANA LETTER MINNAN NASALIZED TONE-4;Lm;0;L;;;;;N;;;;;
+1AFFB;KATAKANA LETTER MINNAN NASALIZED TONE-5;Lm;0;L;;;;;N;;;;;
+1AFFD;KATAKANA LETTER MINNAN NASALIZED TONE-7;Lm;0;L;;;;;N;;;;;
+1AFFE;KATAKANA LETTER MINNAN NASALIZED TONE-8;Lm;0;L;;;;;N;;;;;
1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;;
1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
1B002;HENTAIGANA LETTER A-1;Lo;0;L;;;;;N;;;;;
@@ -26774,9 +27424,15 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1B11C;HENTAIGANA LETTER WO-7;Lo;0;L;;;;;N;;;;;
1B11D;HENTAIGANA LETTER N-MU-MO-1;Lo;0;L;;;;;N;;;;;
1B11E;HENTAIGANA LETTER N-MU-MO-2;Lo;0;L;;;;;N;;;;;
+1B11F;HIRAGANA LETTER ARCHAIC WU;Lo;0;L;;;;;N;;;;;
+1B120;KATAKANA LETTER ARCHAIC YI;Lo;0;L;;;;;N;;;;;
+1B121;KATAKANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
+1B122;KATAKANA LETTER ARCHAIC WU;Lo;0;L;;;;;N;;;;;
+1B132;HIRAGANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;;
1B150;HIRAGANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
1B151;HIRAGANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
1B152;HIRAGANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
+1B155;KATAKANA LETTER SMALL KO;Lo;0;L;;;;;N;;;;;
1B164;KATAKANA LETTER SMALL WI;Lo;0;L;;;;;N;;;;;
1B165;KATAKANA LETTER SMALL WE;Lo;0;L;;;;;N;;;;;
1B166;KATAKANA LETTER SMALL WO;Lo;0;L;;;;;N;;;;;
@@ -27324,6 +27980,191 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1BCA1;SHORTHAND FORMAT CONTINUING OVERLAP;Cf;0;BN;;;;;N;;;;;
1BCA2;SHORTHAND FORMAT DOWN STEP;Cf;0;BN;;;;;N;;;;;
1BCA3;SHORTHAND FORMAT UP STEP;Cf;0;BN;;;;;N;;;;;
+1CF00;ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF01;ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF02;ZNAMENNY COMBINING MARK TSATA ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF03;ZNAMENNY COMBINING MARK GORAZDO NIZKO ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF04;ZNAMENNY COMBINING MARK NIZKO ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF05;ZNAMENNY COMBINING MARK SREDNE ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF06;ZNAMENNY COMBINING MARK MALO POVYSHE ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF07;ZNAMENNY COMBINING MARK POVYSHE ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF08;ZNAMENNY COMBINING MARK VYSOKO ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF09;ZNAMENNY COMBINING MARK MALO POVYSHE S KHOKHLOM ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF0A;ZNAMENNY COMBINING MARK POVYSHE S KHOKHLOM ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF0B;ZNAMENNY COMBINING MARK VYSOKO S KHOKHLOM ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF0C;ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF0D;ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF0E;ZNAMENNY COMBINING MARK TSATA ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF0F;ZNAMENNY COMBINING MARK GORAZDO NIZKO ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF10;ZNAMENNY COMBINING MARK NIZKO ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF11;ZNAMENNY COMBINING MARK SREDNE ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF12;ZNAMENNY COMBINING MARK MALO POVYSHE ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF13;ZNAMENNY COMBINING MARK POVYSHE ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF14;ZNAMENNY COMBINING MARK VYSOKO ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF15;ZNAMENNY COMBINING MARK MALO POVYSHE S KHOKHLOM ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF16;ZNAMENNY COMBINING MARK POVYSHE S KHOKHLOM ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF17;ZNAMENNY COMBINING MARK VYSOKO S KHOKHLOM ON RIGHT;Mn;0;NSM;;;;;N;;;;;
+1CF18;ZNAMENNY COMBINING MARK TSATA S KRYZHEM;Mn;0;NSM;;;;;N;;;;;
+1CF19;ZNAMENNY COMBINING MARK MALO POVYSHE S KRYZHEM;Mn;0;NSM;;;;;N;;;;;
+1CF1A;ZNAMENNY COMBINING MARK STRANNO MALO POVYSHE;Mn;0;NSM;;;;;N;;;;;
+1CF1B;ZNAMENNY COMBINING MARK POVYSHE S KRYZHEM;Mn;0;NSM;;;;;N;;;;;
+1CF1C;ZNAMENNY COMBINING MARK POVYSHE STRANNO;Mn;0;NSM;;;;;N;;;;;
+1CF1D;ZNAMENNY COMBINING MARK VYSOKO S KRYZHEM;Mn;0;NSM;;;;;N;;;;;
+1CF1E;ZNAMENNY COMBINING MARK MALO POVYSHE STRANNO;Mn;0;NSM;;;;;N;;;;;
+1CF1F;ZNAMENNY COMBINING MARK GORAZDO VYSOKO;Mn;0;NSM;;;;;N;;;;;
+1CF20;ZNAMENNY COMBINING MARK ZELO;Mn;0;NSM;;;;;N;;;;;
+1CF21;ZNAMENNY COMBINING MARK ON;Mn;0;NSM;;;;;N;;;;;
+1CF22;ZNAMENNY COMBINING MARK RAVNO;Mn;0;NSM;;;;;N;;;;;
+1CF23;ZNAMENNY COMBINING MARK TIKHAYA;Mn;0;NSM;;;;;N;;;;;
+1CF24;ZNAMENNY COMBINING MARK BORZAYA;Mn;0;NSM;;;;;N;;;;;
+1CF25;ZNAMENNY COMBINING MARK UDARKA;Mn;0;NSM;;;;;N;;;;;
+1CF26;ZNAMENNY COMBINING MARK PODVERTKA;Mn;0;NSM;;;;;N;;;;;
+1CF27;ZNAMENNY COMBINING MARK LOMKA;Mn;0;NSM;;;;;N;;;;;
+1CF28;ZNAMENNY COMBINING MARK KUPNAYA;Mn;0;NSM;;;;;N;;;;;
+1CF29;ZNAMENNY COMBINING MARK KACHKA;Mn;0;NSM;;;;;N;;;;;
+1CF2A;ZNAMENNY COMBINING MARK ZEVOK;Mn;0;NSM;;;;;N;;;;;
+1CF2B;ZNAMENNY COMBINING MARK SKOBA;Mn;0;NSM;;;;;N;;;;;
+1CF2C;ZNAMENNY COMBINING MARK RAZSEKA;Mn;0;NSM;;;;;N;;;;;
+1CF2D;ZNAMENNY COMBINING MARK KRYZH ON LEFT;Mn;0;NSM;;;;;N;;;;;
+1CF30;ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO;Mn;0;NSM;;;;;N;;;;;
+1CF31;ZNAMENNY COMBINING TONAL RANGE MARK SVETLO;Mn;0;NSM;;;;;N;;;;;
+1CF32;ZNAMENNY COMBINING TONAL RANGE MARK TRESVETLO;Mn;0;NSM;;;;;N;;;;;
+1CF33;ZNAMENNY COMBINING MARK ZADERZHKA;Mn;0;NSM;;;;;N;;;;;
+1CF34;ZNAMENNY COMBINING MARK DEMESTVENNY ZADERZHKA;Mn;0;NSM;;;;;N;;;;;
+1CF35;ZNAMENNY COMBINING MARK OTSECHKA;Mn;0;NSM;;;;;N;;;;;
+1CF36;ZNAMENNY COMBINING MARK PODCHASHIE;Mn;0;NSM;;;;;N;;;;;
+1CF37;ZNAMENNY COMBINING MARK PODCHASHIE WITH VERTICAL STROKE;Mn;0;NSM;;;;;N;;;;;
+1CF38;ZNAMENNY COMBINING MARK CHASHKA;Mn;0;NSM;;;;;N;;;;;
+1CF39;ZNAMENNY COMBINING MARK CHASHKA POLNAYA;Mn;0;NSM;;;;;N;;;;;
+1CF3A;ZNAMENNY COMBINING MARK OBLACHKO;Mn;0;NSM;;;;;N;;;;;
+1CF3B;ZNAMENNY COMBINING MARK SOROCHYA NOZHKA;Mn;0;NSM;;;;;N;;;;;
+1CF3C;ZNAMENNY COMBINING MARK TOCHKA;Mn;0;NSM;;;;;N;;;;;
+1CF3D;ZNAMENNY COMBINING MARK DVOETOCHIE;Mn;0;NSM;;;;;N;;;;;
+1CF3E;ZNAMENNY COMBINING ATTACHING VERTICAL OMET;Mn;0;NSM;;;;;N;;;;;
+1CF3F;ZNAMENNY COMBINING MARK CURVED OMET;Mn;0;NSM;;;;;N;;;;;
+1CF40;ZNAMENNY COMBINING MARK KRYZH;Mn;0;NSM;;;;;N;;;;;
+1CF41;ZNAMENNY COMBINING LOWER TONAL RANGE INDICATOR;Mn;0;NSM;;;;;N;;;;;
+1CF42;ZNAMENNY PRIZNAK MODIFIER LEVEL-2;Mn;0;NSM;;;;;N;;;;;
+1CF43;ZNAMENNY PRIZNAK MODIFIER LEVEL-3;Mn;0;NSM;;;;;N;;;;;
+1CF44;ZNAMENNY PRIZNAK MODIFIER DIRECTION FLIP;Mn;0;NSM;;;;;N;;;;;
+1CF45;ZNAMENNY PRIZNAK MODIFIER KRYZH;Mn;0;NSM;;;;;N;;;;;
+1CF46;ZNAMENNY PRIZNAK MODIFIER ROG;Mn;0;NSM;;;;;N;;;;;
+1CF50;ZNAMENNY NEUME KRYUK;So;0;L;;;;;N;;;;;
+1CF51;ZNAMENNY NEUME KRYUK TIKHY;So;0;L;;;;;N;;;;;
+1CF52;ZNAMENNY NEUME PARAKLIT;So;0;L;;;;;N;;;;;
+1CF53;ZNAMENNY NEUME DVA V CHELNU;So;0;L;;;;;N;;;;;
+1CF54;ZNAMENNY NEUME KLYUCH;So;0;L;;;;;N;;;;;
+1CF55;ZNAMENNY NEUME ZANOZHEK;So;0;L;;;;;N;;;;;
+1CF56;ZNAMENNY NEUME STOPITSA;So;0;L;;;;;N;;;;;
+1CF57;ZNAMENNY NEUME STOPITSA S OCHKOM;So;0;L;;;;;N;;;;;
+1CF58;ZNAMENNY NEUME PEREVODKA;So;0;L;;;;;N;;;;;
+1CF59;ZNAMENNY NEUME PEREVODKA NEPOSTOYANNAYA;So;0;L;;;;;N;;;;;
+1CF5A;ZNAMENNY NEUME STOPITSA WITH SOROCHYA NOZHKA;So;0;L;;;;;N;;;;;
+1CF5B;ZNAMENNY NEUME CHELYUSTKA;So;0;L;;;;;N;;;;;
+1CF5C;ZNAMENNY NEUME PALKA;So;0;L;;;;;N;;;;;
+1CF5D;ZNAMENNY NEUME ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CF5E;ZNAMENNY NEUME GOLUBCHIK BORZY;So;0;L;;;;;N;;;;;
+1CF5F;ZNAMENNY NEUME GOLUBCHIK TIKHY;So;0;L;;;;;N;;;;;
+1CF60;ZNAMENNY NEUME GOLUBCHIK MRACHNY;So;0;L;;;;;N;;;;;
+1CF61;ZNAMENNY NEUME GOLUBCHIK SVETLY;So;0;L;;;;;N;;;;;
+1CF62;ZNAMENNY NEUME GOLUBCHIK TRESVETLY;So;0;L;;;;;N;;;;;
+1CF63;ZNAMENNY NEUME VRAKHIYA PROSTAYA;So;0;L;;;;;N;;;;;
+1CF64;ZNAMENNY NEUME VRAKHIYA MRACHNAYA;So;0;L;;;;;N;;;;;
+1CF65;ZNAMENNY NEUME VRAKHIYA SVETLAYA;So;0;L;;;;;N;;;;;
+1CF66;ZNAMENNY NEUME VRAKHIYA TRESVETLAYA;So;0;L;;;;;N;;;;;
+1CF67;ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA PROSTAYA;So;0;L;;;;;N;;;;;
+1CF68;ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA MRACHNAYA;So;0;L;;;;;N;;;;;
+1CF69;ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA SVETLAYA;So;0;L;;;;;N;;;;;
+1CF6A;ZNAMENNY NEUME VRAKHIYA KLYUCHEVAYA TRESVETLAYA;So;0;L;;;;;N;;;;;
+1CF6B;ZNAMENNY NEUME DOUBLE ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CF6C;ZNAMENNY NEUME REVERSED CHELYUSTKA;So;0;L;;;;;N;;;;;
+1CF6D;ZNAMENNY NEUME DERBITSA;So;0;L;;;;;N;;;;;
+1CF6E;ZNAMENNY NEUME KHAMILO;So;0;L;;;;;N;;;;;
+1CF6F;ZNAMENNY NEUME CHASHKA;So;0;L;;;;;N;;;;;
+1CF70;ZNAMENNY NEUME PODCHASHIE;So;0;L;;;;;N;;;;;
+1CF71;ZNAMENNY NEUME SKAMEYTSA MRACHNAYA;So;0;L;;;;;N;;;;;
+1CF72;ZNAMENNY NEUME SKAMEYTSA SVETLAYA;So;0;L;;;;;N;;;;;
+1CF73;ZNAMENNY NEUME SKAMEYTSA TRESVETLAYA;So;0;L;;;;;N;;;;;
+1CF74;ZNAMENNY NEUME SKAMEYTSA TIKHAYA;So;0;L;;;;;N;;;;;
+1CF75;ZNAMENNY NEUME DEMESTVENNY KLYUCH;So;0;L;;;;;N;;;;;
+1CF76;ZNAMENNY NEUME SKAMEYTSA KLYUCHEVAYA SVETLAYA;So;0;L;;;;;N;;;;;
+1CF77;ZNAMENNY NEUME SKAMEYTSA KLYUCHENEPOSTOYANNAYA;So;0;L;;;;;N;;;;;
+1CF78;ZNAMENNY NEUME SKAMEYTSA KLYUCHEVAYA TIKHAYA;So;0;L;;;;;N;;;;;
+1CF79;ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA PROSTAYA;So;0;L;;;;;N;;;;;
+1CF7A;ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA SVETLAYA;So;0;L;;;;;N;;;;;
+1CF7B;ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA NEPOSTOYANNAYA;So;0;L;;;;;N;;;;;
+1CF7C;ZNAMENNY NEUME SKAMEYTSA DVOECHELNAYA KLYUCHEVAYA;So;0;L;;;;;N;;;;;
+1CF7D;ZNAMENNY NEUME SLOZHITIE;So;0;L;;;;;N;;;;;
+1CF7E;ZNAMENNY NEUME SLOZHITIE S ZAPYATOY;So;0;L;;;;;N;;;;;
+1CF7F;ZNAMENNY NEUME SLOZHITIE ZAKRYTOE;So;0;L;;;;;N;;;;;
+1CF80;ZNAMENNY NEUME SLOZHITIE S KRYZHEM;So;0;L;;;;;N;;;;;
+1CF81;ZNAMENNY NEUME KRYZH;So;0;L;;;;;N;;;;;
+1CF82;ZNAMENNY NEUME ROG;So;0;L;;;;;N;;;;;
+1CF83;ZNAMENNY NEUME FITA;So;0;L;;;;;N;;;;;
+1CF84;ZNAMENNY NEUME KOBYLA;So;0;L;;;;;N;;;;;
+1CF85;ZNAMENNY NEUME ZMEYTSA;So;0;L;;;;;N;;;;;
+1CF86;ZNAMENNY NEUME STATYA;So;0;L;;;;;N;;;;;
+1CF87;ZNAMENNY NEUME STATYA S ZAPYATOY;So;0;L;;;;;N;;;;;
+1CF88;ZNAMENNY NEUME STATYA S KRYZHEM;So;0;L;;;;;N;;;;;
+1CF89;ZNAMENNY NEUME STATYA S ZAPYATOY I KRYZHEM;So;0;L;;;;;N;;;;;
+1CF8A;ZNAMENNY NEUME STATYA S KRYZHEM I ZAPYATOY;So;0;L;;;;;N;;;;;
+1CF8B;ZNAMENNY NEUME STATYA ZAKRYTAYA;So;0;L;;;;;N;;;;;
+1CF8C;ZNAMENNY NEUME STATYA ZAKRYTAYA S ZAPYATOY;So;0;L;;;;;N;;;;;
+1CF8D;ZNAMENNY NEUME STATYA S ROGOM;So;0;L;;;;;N;;;;;
+1CF8E;ZNAMENNY NEUME STATYA S DVUMYA ZAPYATYMI;So;0;L;;;;;N;;;;;
+1CF8F;ZNAMENNY NEUME STATYA S ZAPYATOY I PODCHASHIEM;So;0;L;;;;;N;;;;;
+1CF90;ZNAMENNY NEUME POLKULIZMY;So;0;L;;;;;N;;;;;
+1CF91;ZNAMENNY NEUME STATYA NEPOSTOYANNAYA;So;0;L;;;;;N;;;;;
+1CF92;ZNAMENNY NEUME STRELA PROSTAYA;So;0;L;;;;;N;;;;;
+1CF93;ZNAMENNY NEUME STRELA MRACHNOTIKHAYA;So;0;L;;;;;N;;;;;
+1CF94;ZNAMENNY NEUME STRELA KRYZHEVAYA;So;0;L;;;;;N;;;;;
+1CF95;ZNAMENNY NEUME STRELA POLUPOVODNAYA;So;0;L;;;;;N;;;;;
+1CF96;ZNAMENNY NEUME STRELA POVODNAYA;So;0;L;;;;;N;;;;;
+1CF97;ZNAMENNY NEUME STRELA NEPOSTOYANNAYA;So;0;L;;;;;N;;;;;
+1CF98;ZNAMENNY NEUME STRELA KLYUCHEPOVODNAYA;So;0;L;;;;;N;;;;;
+1CF99;ZNAMENNY NEUME STRELA KLYUCHENEPOSTOYANNAYA;So;0;L;;;;;N;;;;;
+1CF9A;ZNAMENNY NEUME STRELA TIKHAYA PUTNAYA;So;0;L;;;;;N;;;;;
+1CF9B;ZNAMENNY NEUME STRELA DVOECHELNAYA;So;0;L;;;;;N;;;;;
+1CF9C;ZNAMENNY NEUME STRELA DVOECHELNOKRYZHEVAYA;So;0;L;;;;;N;;;;;
+1CF9D;ZNAMENNY NEUME STRELA DVOECHELNOPOVODNAYA;So;0;L;;;;;N;;;;;
+1CF9E;ZNAMENNY NEUME STRELA DVOECHELNAYA KLYUCHEVAYA;So;0;L;;;;;N;;;;;
+1CF9F;ZNAMENNY NEUME STRELA DVOECHELNOPOVODNAYA KLYUCHEVAYA;So;0;L;;;;;N;;;;;
+1CFA0;ZNAMENNY NEUME STRELA GROMNAYA WITH SINGLE ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CFA1;ZNAMENNY NEUME STRELA GROMOPOVODNAYA WITH SINGLE ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CFA2;ZNAMENNY NEUME STRELA GROMNAYA;So;0;L;;;;;N;;;;;
+1CFA3;ZNAMENNY NEUME STRELA GROMOPOVODNAYA;So;0;L;;;;;N;;;;;
+1CFA4;ZNAMENNY NEUME STRELA GROMOPOVODNAYA WITH DOUBLE ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CFA5;ZNAMENNY NEUME STRELA GROMOKRYZHEVAYA;So;0;L;;;;;N;;;;;
+1CFA6;ZNAMENNY NEUME STRELA GROMOKRYZHEVAYA POVODNAYA;So;0;L;;;;;N;;;;;
+1CFA7;ZNAMENNY NEUME MECHIK;So;0;L;;;;;N;;;;;
+1CFA8;ZNAMENNY NEUME MECHIK POVODNY;So;0;L;;;;;N;;;;;
+1CFA9;ZNAMENNY NEUME MECHIK KLYUCHEVOY;So;0;L;;;;;N;;;;;
+1CFAA;ZNAMENNY NEUME MECHIK KLYUCHEPOVODNY;So;0;L;;;;;N;;;;;
+1CFAB;ZNAMENNY NEUME MECHIK KLYUCHENEPOSTOYANNY;So;0;L;;;;;N;;;;;
+1CFAC;ZNAMENNY NEUME STRELA TRYASOGLASNAYA;So;0;L;;;;;N;;;;;
+1CFAD;ZNAMENNY NEUME STRELA TRYASOPOVODNAYA;So;0;L;;;;;N;;;;;
+1CFAE;ZNAMENNY NEUME STRELA TRYASOSTRELNAYA;So;0;L;;;;;N;;;;;
+1CFAF;ZNAMENNY NEUME OSOKA;So;0;L;;;;;N;;;;;
+1CFB0;ZNAMENNY NEUME OSOKA SVETLAYA;So;0;L;;;;;N;;;;;
+1CFB1;ZNAMENNY NEUME OSOKA TRESVETLAYA;So;0;L;;;;;N;;;;;
+1CFB2;ZNAMENNY NEUME OSOKA KRYUKOVAYA SVETLAYA;So;0;L;;;;;N;;;;;
+1CFB3;ZNAMENNY NEUME OSOKA KLYUCHEVAYA SVETLAYA;So;0;L;;;;;N;;;;;
+1CFB4;ZNAMENNY NEUME OSOKA KLYUCHEVAYA NEPOSTOYANNAYA;So;0;L;;;;;N;;;;;
+1CFB5;ZNAMENNY NEUME STRELA KRYUKOVAYA;So;0;L;;;;;N;;;;;
+1CFB6;ZNAMENNY NEUME STRELA KRYUKOVAYA POVODNAYA;So;0;L;;;;;N;;;;;
+1CFB7;ZNAMENNY NEUME STRELA KRYUKOVAYA GROMNAYA WITH SINGLE ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CFB8;ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA WITH SINGLE ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CFB9;ZNAMENNY NEUME STRELA KRYUKOVAYA GROMNAYA;So;0;L;;;;;N;;;;;
+1CFBA;ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA;So;0;L;;;;;N;;;;;
+1CFBB;ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOPOVODNAYA WITH DOUBLE ZAPYATAYA;So;0;L;;;;;N;;;;;
+1CFBC;ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOKRYZHEVAYA;So;0;L;;;;;N;;;;;
+1CFBD;ZNAMENNY NEUME STRELA KRYUKOVAYA GROMOKRYZHEVAYA POVODNAYA;So;0;L;;;;;N;;;;;
+1CFBE;ZNAMENNY NEUME STRELA KRYUKOVAYA TRYASKA;So;0;L;;;;;N;;;;;
+1CFBF;ZNAMENNY NEUME KUFISMA;So;0;L;;;;;N;;;;;
+1CFC0;ZNAMENNY NEUME OBLAKO;So;0;L;;;;;N;;;;;
+1CFC1;ZNAMENNY NEUME DUDA;So;0;L;;;;;N;;;;;
+1CFC2;ZNAMENNY NEUME NEMKA;So;0;L;;;;;N;;;;;
+1CFC3;ZNAMENNY NEUME PAUK;So;0;L;;;;;N;;;;;
1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;;
1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;;
@@ -27801,6 +28642,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D1E6;MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM DOWN;So;0;L;;;;;N;;;;;
1D1E7;MUSICAL SYMBOL KIEVAN EIGHTH NOTE STEM UP;So;0;L;;;;;N;;;;;
1D1E8;MUSICAL SYMBOL KIEVAN FLAT SIGN;So;0;L;;;;;N;;;;;
+1D1E9;MUSICAL SYMBOL SORI;So;0;ON;;;;;N;;;;;
+1D1EA;MUSICAL SYMBOL KORON;So;0;ON;;;;;N;;;;;
1D200;GREEK VOCAL NOTATION SYMBOL-1;So;0;ON;;;;;N;;;;;
1D201;GREEK VOCAL NOTATION SYMBOL-2;So;0;ON;;;;;N;;;;;
1D202;GREEK VOCAL NOTATION SYMBOL-3;So;0;ON;;;;;N;;;;;
@@ -27871,6 +28714,26 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1D243;COMBINING GREEK MUSICAL TETRASEME;Mn;230;NSM;;;;;N;;;;;
1D244;COMBINING GREEK MUSICAL PENTASEME;Mn;230;NSM;;;;;N;;;;;
1D245;GREEK MUSICAL LEIMMA;So;0;ON;;;;;N;;;;;
+1D2C0;KAKTOVIK NUMERAL ZERO;No;0;L;;;;0;N;;;;;
+1D2C1;KAKTOVIK NUMERAL ONE;No;0;L;;;;1;N;;;;;
+1D2C2;KAKTOVIK NUMERAL TWO;No;0;L;;;;2;N;;;;;
+1D2C3;KAKTOVIK NUMERAL THREE;No;0;L;;;;3;N;;;;;
+1D2C4;KAKTOVIK NUMERAL FOUR;No;0;L;;;;4;N;;;;;
+1D2C5;KAKTOVIK NUMERAL FIVE;No;0;L;;;;5;N;;;;;
+1D2C6;KAKTOVIK NUMERAL SIX;No;0;L;;;;6;N;;;;;
+1D2C7;KAKTOVIK NUMERAL SEVEN;No;0;L;;;;7;N;;;;;
+1D2C8;KAKTOVIK NUMERAL EIGHT;No;0;L;;;;8;N;;;;;
+1D2C9;KAKTOVIK NUMERAL NINE;No;0;L;;;;9;N;;;;;
+1D2CA;KAKTOVIK NUMERAL TEN;No;0;L;;;;10;N;;;;;
+1D2CB;KAKTOVIK NUMERAL ELEVEN;No;0;L;;;;11;N;;;;;
+1D2CC;KAKTOVIK NUMERAL TWELVE;No;0;L;;;;12;N;;;;;
+1D2CD;KAKTOVIK NUMERAL THIRTEEN;No;0;L;;;;13;N;;;;;
+1D2CE;KAKTOVIK NUMERAL FOURTEEN;No;0;L;;;;14;N;;;;;
+1D2CF;KAKTOVIK NUMERAL FIFTEEN;No;0;L;;;;15;N;;;;;
+1D2D0;KAKTOVIK NUMERAL SIXTEEN;No;0;L;;;;16;N;;;;;
+1D2D1;KAKTOVIK NUMERAL SEVENTEEN;No;0;L;;;;17;N;;;;;
+1D2D2;KAKTOVIK NUMERAL EIGHTEEN;No;0;L;;;;18;N;;;;;
+1D2D3;KAKTOVIK NUMERAL NINETEEN;No;0;L;;;;19;N;;;;;
1D2E0;MAYAN NUMERAL ZERO;No;0;L;;;;0;N;;;;;
1D2E1;MAYAN NUMERAL ONE;No;0;L;;;;1;N;;;;;
1D2E2;MAYAN NUMERAL TWO;No;0;L;;;;2;N;;;;;
@@ -29671,6 +30534,43 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1DAAD;SIGNWRITING ROTATION MODIFIER-14;Mn;0;NSM;;;;;N;;;;;
1DAAE;SIGNWRITING ROTATION MODIFIER-15;Mn;0;NSM;;;;;N;;;;;
1DAAF;SIGNWRITING ROTATION MODIFIER-16;Mn;0;NSM;;;;;N;;;;;
+1DF00;LATIN SMALL LETTER FENG DIGRAPH WITH TRILL;Ll;0;L;;;;;N;;;;;
+1DF01;LATIN SMALL LETTER REVERSED SCRIPT G;Ll;0;L;;;;;N;;;;;
+1DF02;LATIN LETTER SMALL CAPITAL TURNED G;Ll;0;L;;;;;N;;;;;
+1DF03;LATIN SMALL LETTER REVERSED K;Ll;0;L;;;;;N;;;;;
+1DF04;LATIN LETTER SMALL CAPITAL L WITH BELT;Ll;0;L;;;;;N;;;;;
+1DF05;LATIN SMALL LETTER LEZH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF06;LATIN SMALL LETTER TURNED Y WITH BELT;Ll;0;L;;;;;N;;;;;
+1DF07;LATIN SMALL LETTER REVERSED ENG;Ll;0;L;;;;;N;;;;;
+1DF08;LATIN SMALL LETTER TURNED R WITH LONG LEG AND RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF09;LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF0A;LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK;Lo;0;L;;;;;N;;;;;
+1DF0B;LATIN SMALL LETTER ESH WITH DOUBLE BAR;Ll;0;L;;;;;N;;;;;
+1DF0C;LATIN SMALL LETTER ESH WITH DOUBLE BAR AND CURL;Ll;0;L;;;;;N;;;;;
+1DF0D;LATIN SMALL LETTER TURNED T WITH CURL;Ll;0;L;;;;;N;;;;;
+1DF0E;LATIN LETTER INVERTED GLOTTAL STOP WITH CURL;Ll;0;L;;;;;N;;;;;
+1DF0F;LATIN LETTER STRETCHED C WITH CURL;Ll;0;L;;;;;N;;;;;
+1DF10;LATIN LETTER SMALL CAPITAL TURNED K;Ll;0;L;;;;;N;;;;;
+1DF11;LATIN SMALL LETTER L WITH FISHHOOK;Ll;0;L;;;;;N;;;;;
+1DF12;LATIN SMALL LETTER DEZH DIGRAPH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1DF13;LATIN SMALL LETTER L WITH BELT AND PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1DF14;LATIN SMALL LETTER ENG WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1DF15;LATIN SMALL LETTER TURNED R WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1DF16;LATIN SMALL LETTER R WITH FISHHOOK AND PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1DF17;LATIN SMALL LETTER TESH DIGRAPH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1DF18;LATIN SMALL LETTER EZH WITH PALATAL HOOK;Ll;0;L;;;;;N;;;;;
+1DF19;LATIN SMALL LETTER DEZH DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF1A;LATIN SMALL LETTER I WITH STROKE AND RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF1B;LATIN SMALL LETTER O WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF1C;LATIN SMALL LETTER TESH DIGRAPH WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF1D;LATIN SMALL LETTER C WITH RETROFLEX HOOK;Ll;0;L;;;;;N;;;;;
+1DF1E;LATIN SMALL LETTER S WITH CURL;Ll;0;L;;;;;N;;;;;
+1DF25;LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF26;LATIN SMALL LETTER L WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF27;LATIN SMALL LETTER N WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF28;LATIN SMALL LETTER R WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF29;LATIN SMALL LETTER S WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
+1DF2A;LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK;Ll;0;L;;;;;N;;;;;
1E000;COMBINING GLAGOLITIC LETTER AZU;Mn;230;NSM;;;;;N;;;;;
1E001;COMBINING GLAGOLITIC LETTER BUKY;Mn;230;NSM;;;;;N;;;;;
1E002;COMBINING GLAGOLITIC LETTER VEDE;Mn;230;NSM;;;;;N;;;;;
@@ -29709,6 +30609,69 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E028;COMBINING GLAGOLITIC LETTER BIG YUS;Mn;230;NSM;;;;;N;;;;;
1E029;COMBINING GLAGOLITIC LETTER IOTATED BIG YUS;Mn;230;NSM;;;;;N;;;;;
1E02A;COMBINING GLAGOLITIC LETTER FITA;Mn;230;NSM;;;;;N;;;;;
+1E030;MODIFIER LETTER CYRILLIC SMALL A;Lm;0;L;<super> 0430;;;;N;;;;;
+1E031;MODIFIER LETTER CYRILLIC SMALL BE;Lm;0;L;<super> 0431;;;;N;;;;;
+1E032;MODIFIER LETTER CYRILLIC SMALL VE;Lm;0;L;<super> 0432;;;;N;;;;;
+1E033;MODIFIER LETTER CYRILLIC SMALL GHE;Lm;0;L;<super> 0433;;;;N;;;;;
+1E034;MODIFIER LETTER CYRILLIC SMALL DE;Lm;0;L;<super> 0434;;;;N;;;;;
+1E035;MODIFIER LETTER CYRILLIC SMALL IE;Lm;0;L;<super> 0435;;;;N;;;;;
+1E036;MODIFIER LETTER CYRILLIC SMALL ZHE;Lm;0;L;<super> 0436;;;;N;;;;;
+1E037;MODIFIER LETTER CYRILLIC SMALL ZE;Lm;0;L;<super> 0437;;;;N;;;;;
+1E038;MODIFIER LETTER CYRILLIC SMALL I;Lm;0;L;<super> 0438;;;;N;;;;;
+1E039;MODIFIER LETTER CYRILLIC SMALL KA;Lm;0;L;<super> 043A;;;;N;;;;;
+1E03A;MODIFIER LETTER CYRILLIC SMALL EL;Lm;0;L;<super> 043B;;;;N;;;;;
+1E03B;MODIFIER LETTER CYRILLIC SMALL EM;Lm;0;L;<super> 043C;;;;N;;;;;
+1E03C;MODIFIER LETTER CYRILLIC SMALL O;Lm;0;L;<super> 043E;;;;N;;;;;
+1E03D;MODIFIER LETTER CYRILLIC SMALL PE;Lm;0;L;<super> 043F;;;;N;;;;;
+1E03E;MODIFIER LETTER CYRILLIC SMALL ER;Lm;0;L;<super> 0440;;;;N;;;;;
+1E03F;MODIFIER LETTER CYRILLIC SMALL ES;Lm;0;L;<super> 0441;;;;N;;;;;
+1E040;MODIFIER LETTER CYRILLIC SMALL TE;Lm;0;L;<super> 0442;;;;N;;;;;
+1E041;MODIFIER LETTER CYRILLIC SMALL U;Lm;0;L;<super> 0443;;;;N;;;;;
+1E042;MODIFIER LETTER CYRILLIC SMALL EF;Lm;0;L;<super> 0444;;;;N;;;;;
+1E043;MODIFIER LETTER CYRILLIC SMALL HA;Lm;0;L;<super> 0445;;;;N;;;;;
+1E044;MODIFIER LETTER CYRILLIC SMALL TSE;Lm;0;L;<super> 0446;;;;N;;;;;
+1E045;MODIFIER LETTER CYRILLIC SMALL CHE;Lm;0;L;<super> 0447;;;;N;;;;;
+1E046;MODIFIER LETTER CYRILLIC SMALL SHA;Lm;0;L;<super> 0448;;;;N;;;;;
+1E047;MODIFIER LETTER CYRILLIC SMALL YERU;Lm;0;L;<super> 044B;;;;N;;;;;
+1E048;MODIFIER LETTER CYRILLIC SMALL E;Lm;0;L;<super> 044D;;;;N;;;;;
+1E049;MODIFIER LETTER CYRILLIC SMALL YU;Lm;0;L;<super> 044E;;;;N;;;;;
+1E04A;MODIFIER LETTER CYRILLIC SMALL DZZE;Lm;0;L;<super> A689;;;;N;;;;;
+1E04B;MODIFIER LETTER CYRILLIC SMALL SCHWA;Lm;0;L;<super> 04D9;;;;N;;;;;
+1E04C;MODIFIER LETTER CYRILLIC SMALL BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<super> 0456;;;;N;;;;;
+1E04D;MODIFIER LETTER CYRILLIC SMALL JE;Lm;0;L;<super> 0458;;;;N;;;;;
+1E04E;MODIFIER LETTER CYRILLIC SMALL BARRED O;Lm;0;L;<super> 04E9;;;;N;;;;;
+1E04F;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U;Lm;0;L;<super> 04AF;;;;N;;;;;
+1E050;MODIFIER LETTER CYRILLIC SMALL PALOCHKA;Lm;0;L;<super> 04CF;;;;N;;;;;
+1E051;CYRILLIC SUBSCRIPT SMALL LETTER A;Lm;0;L;<sub> 0430;;;;N;;;;;
+1E052;CYRILLIC SUBSCRIPT SMALL LETTER BE;Lm;0;L;<sub> 0431;;;;N;;;;;
+1E053;CYRILLIC SUBSCRIPT SMALL LETTER VE;Lm;0;L;<sub> 0432;;;;N;;;;;
+1E054;CYRILLIC SUBSCRIPT SMALL LETTER GHE;Lm;0;L;<sub> 0433;;;;N;;;;;
+1E055;CYRILLIC SUBSCRIPT SMALL LETTER DE;Lm;0;L;<sub> 0434;;;;N;;;;;
+1E056;CYRILLIC SUBSCRIPT SMALL LETTER IE;Lm;0;L;<sub> 0435;;;;N;;;;;
+1E057;CYRILLIC SUBSCRIPT SMALL LETTER ZHE;Lm;0;L;<sub> 0436;;;;N;;;;;
+1E058;CYRILLIC SUBSCRIPT SMALL LETTER ZE;Lm;0;L;<sub> 0437;;;;N;;;;;
+1E059;CYRILLIC SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0438;;;;N;;;;;
+1E05A;CYRILLIC SUBSCRIPT SMALL LETTER KA;Lm;0;L;<sub> 043A;;;;N;;;;;
+1E05B;CYRILLIC SUBSCRIPT SMALL LETTER EL;Lm;0;L;<sub> 043B;;;;N;;;;;
+1E05C;CYRILLIC SUBSCRIPT SMALL LETTER O;Lm;0;L;<sub> 043E;;;;N;;;;;
+1E05D;CYRILLIC SUBSCRIPT SMALL LETTER PE;Lm;0;L;<sub> 043F;;;;N;;;;;
+1E05E;CYRILLIC SUBSCRIPT SMALL LETTER ES;Lm;0;L;<sub> 0441;;;;N;;;;;
+1E05F;CYRILLIC SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0443;;;;N;;;;;
+1E060;CYRILLIC SUBSCRIPT SMALL LETTER EF;Lm;0;L;<sub> 0444;;;;N;;;;;
+1E061;CYRILLIC SUBSCRIPT SMALL LETTER HA;Lm;0;L;<sub> 0445;;;;N;;;;;
+1E062;CYRILLIC SUBSCRIPT SMALL LETTER TSE;Lm;0;L;<sub> 0446;;;;N;;;;;
+1E063;CYRILLIC SUBSCRIPT SMALL LETTER CHE;Lm;0;L;<sub> 0447;;;;N;;;;;
+1E064;CYRILLIC SUBSCRIPT SMALL LETTER SHA;Lm;0;L;<sub> 0448;;;;N;;;;;
+1E065;CYRILLIC SUBSCRIPT SMALL LETTER HARD SIGN;Lm;0;L;<sub> 044A;;;;N;;;;;
+1E066;CYRILLIC SUBSCRIPT SMALL LETTER YERU;Lm;0;L;<sub> 044B;;;;N;;;;;
+1E067;CYRILLIC SUBSCRIPT SMALL LETTER GHE WITH UPTURN;Lm;0;L;<sub> 0491;;;;N;;;;;
+1E068;CYRILLIC SUBSCRIPT SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Lm;0;L;<sub> 0456;;;;N;;;;;
+1E069;CYRILLIC SUBSCRIPT SMALL LETTER DZE;Lm;0;L;<sub> 0455;;;;N;;;;;
+1E06A;CYRILLIC SUBSCRIPT SMALL LETTER DZHE;Lm;0;L;<sub> 045F;;;;N;;;;;
+1E06B;MODIFIER LETTER CYRILLIC SMALL ES WITH DESCENDER;Lm;0;L;<super> 04AB;;;;N;;;;;
+1E06C;MODIFIER LETTER CYRILLIC SMALL YERU WITH BACK YER;Lm;0;L;<super> A651;;;;N;;;;;
+1E06D;MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE;Lm;0;L;<super> 04B1;;;;N;;;;;
+1E08F;COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Mn;230;NSM;;;;;N;;;;;
1E100;NYIAKENG PUACHUE HMONG LETTER MA;Lo;0;L;;;;;N;;;;;
1E101;NYIAKENG PUACHUE HMONG LETTER TSA;Lo;0;L;;;;;N;;;;;
1E102;NYIAKENG PUACHUE HMONG LETTER NTA;Lo;0;L;;;;;N;;;;;
@@ -29780,6 +30743,37 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E149;NYIAKENG PUACHUE HMONG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
1E14E;NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ;Lo;0;L;;;;;N;;;;;
1E14F;NYIAKENG PUACHUE HMONG CIRCLED CA;So;0;L;;;;;N;;;;;
+1E290;TOTO LETTER PA;Lo;0;L;;;;;N;;;;;
+1E291;TOTO LETTER BA;Lo;0;L;;;;;N;;;;;
+1E292;TOTO LETTER TA;Lo;0;L;;;;;N;;;;;
+1E293;TOTO LETTER DA;Lo;0;L;;;;;N;;;;;
+1E294;TOTO LETTER KA;Lo;0;L;;;;;N;;;;;
+1E295;TOTO LETTER GA;Lo;0;L;;;;;N;;;;;
+1E296;TOTO LETTER MA;Lo;0;L;;;;;N;;;;;
+1E297;TOTO LETTER NA;Lo;0;L;;;;;N;;;;;
+1E298;TOTO LETTER NGA;Lo;0;L;;;;;N;;;;;
+1E299;TOTO LETTER SA;Lo;0;L;;;;;N;;;;;
+1E29A;TOTO LETTER CHA;Lo;0;L;;;;;N;;;;;
+1E29B;TOTO LETTER YA;Lo;0;L;;;;;N;;;;;
+1E29C;TOTO LETTER WA;Lo;0;L;;;;;N;;;;;
+1E29D;TOTO LETTER JA;Lo;0;L;;;;;N;;;;;
+1E29E;TOTO LETTER HA;Lo;0;L;;;;;N;;;;;
+1E29F;TOTO LETTER RA;Lo;0;L;;;;;N;;;;;
+1E2A0;TOTO LETTER LA;Lo;0;L;;;;;N;;;;;
+1E2A1;TOTO LETTER I;Lo;0;L;;;;;N;;;;;
+1E2A2;TOTO LETTER BREATHY I;Lo;0;L;;;;;N;;;;;
+1E2A3;TOTO LETTER IU;Lo;0;L;;;;;N;;;;;
+1E2A4;TOTO LETTER BREATHY IU;Lo;0;L;;;;;N;;;;;
+1E2A5;TOTO LETTER U;Lo;0;L;;;;;N;;;;;
+1E2A6;TOTO LETTER E;Lo;0;L;;;;;N;;;;;
+1E2A7;TOTO LETTER BREATHY E;Lo;0;L;;;;;N;;;;;
+1E2A8;TOTO LETTER EO;Lo;0;L;;;;;N;;;;;
+1E2A9;TOTO LETTER BREATHY EO;Lo;0;L;;;;;N;;;;;
+1E2AA;TOTO LETTER O;Lo;0;L;;;;;N;;;;;
+1E2AB;TOTO LETTER AE;Lo;0;L;;;;;N;;;;;
+1E2AC;TOTO LETTER BREATHY AE;Lo;0;L;;;;;N;;;;;
+1E2AD;TOTO LETTER A;Lo;0;L;;;;;N;;;;;
+1E2AE;TOTO SIGN RISING TONE;Mn;230;NSM;;;;;N;;;;;
1E2C0;WANCHO LETTER AA;Lo;0;L;;;;;N;;;;;
1E2C1;WANCHO LETTER A;Lo;0;L;;;;;N;;;;;
1E2C2;WANCHO LETTER BA;Lo;0;L;;;;;N;;;;;
@@ -29839,6 +30833,76 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1E2F8;WANCHO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
1E2F9;WANCHO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
1E2FF;WANCHO NGUN SIGN;Sc;0;ET;;;;;N;;;;;
+1E4D0;NAG MUNDARI LETTER O;Lo;0;L;;;;;N;;;;;
+1E4D1;NAG MUNDARI LETTER OP;Lo;0;L;;;;;N;;;;;
+1E4D2;NAG MUNDARI LETTER OL;Lo;0;L;;;;;N;;;;;
+1E4D3;NAG MUNDARI LETTER OY;Lo;0;L;;;;;N;;;;;
+1E4D4;NAG MUNDARI LETTER ONG;Lo;0;L;;;;;N;;;;;
+1E4D5;NAG MUNDARI LETTER A;Lo;0;L;;;;;N;;;;;
+1E4D6;NAG MUNDARI LETTER AJ;Lo;0;L;;;;;N;;;;;
+1E4D7;NAG MUNDARI LETTER AB;Lo;0;L;;;;;N;;;;;
+1E4D8;NAG MUNDARI LETTER ANY;Lo;0;L;;;;;N;;;;;
+1E4D9;NAG MUNDARI LETTER AH;Lo;0;L;;;;;N;;;;;
+1E4DA;NAG MUNDARI LETTER I;Lo;0;L;;;;;N;;;;;
+1E4DB;NAG MUNDARI LETTER IS;Lo;0;L;;;;;N;;;;;
+1E4DC;NAG MUNDARI LETTER IDD;Lo;0;L;;;;;N;;;;;
+1E4DD;NAG MUNDARI LETTER IT;Lo;0;L;;;;;N;;;;;
+1E4DE;NAG MUNDARI LETTER IH;Lo;0;L;;;;;N;;;;;
+1E4DF;NAG MUNDARI LETTER U;Lo;0;L;;;;;N;;;;;
+1E4E0;NAG MUNDARI LETTER UC;Lo;0;L;;;;;N;;;;;
+1E4E1;NAG MUNDARI LETTER UD;Lo;0;L;;;;;N;;;;;
+1E4E2;NAG MUNDARI LETTER UK;Lo;0;L;;;;;N;;;;;
+1E4E3;NAG MUNDARI LETTER UR;Lo;0;L;;;;;N;;;;;
+1E4E4;NAG MUNDARI LETTER E;Lo;0;L;;;;;N;;;;;
+1E4E5;NAG MUNDARI LETTER ENN;Lo;0;L;;;;;N;;;;;
+1E4E6;NAG MUNDARI LETTER EG;Lo;0;L;;;;;N;;;;;
+1E4E7;NAG MUNDARI LETTER EM;Lo;0;L;;;;;N;;;;;
+1E4E8;NAG MUNDARI LETTER EN;Lo;0;L;;;;;N;;;;;
+1E4E9;NAG MUNDARI LETTER ETT;Lo;0;L;;;;;N;;;;;
+1E4EA;NAG MUNDARI LETTER ELL;Lo;0;L;;;;;N;;;;;
+1E4EB;NAG MUNDARI SIGN OJOD;Lm;0;L;;;;;N;;;;;
+1E4EC;NAG MUNDARI SIGN MUHOR;Mn;232;NSM;;;;;N;;;;;
+1E4ED;NAG MUNDARI SIGN TOYOR;Mn;232;NSM;;;;;N;;;;;
+1E4EE;NAG MUNDARI SIGN IKIR;Mn;220;NSM;;;;;N;;;;;
+1E4EF;NAG MUNDARI SIGN SUTUH;Mn;230;NSM;;;;;N;;;;;
+1E4F0;NAG MUNDARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+1E4F1;NAG MUNDARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+1E4F2;NAG MUNDARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+1E4F3;NAG MUNDARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1E4F4;NAG MUNDARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1E4F5;NAG MUNDARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1E4F6;NAG MUNDARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1E4F7;NAG MUNDARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1E4F8;NAG MUNDARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1E4F9;NAG MUNDARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1E7E0;ETHIOPIC SYLLABLE HHYA;Lo;0;L;;;;;N;;;;;
+1E7E1;ETHIOPIC SYLLABLE HHYU;Lo;0;L;;;;;N;;;;;
+1E7E2;ETHIOPIC SYLLABLE HHYI;Lo;0;L;;;;;N;;;;;
+1E7E3;ETHIOPIC SYLLABLE HHYAA;Lo;0;L;;;;;N;;;;;
+1E7E4;ETHIOPIC SYLLABLE HHYEE;Lo;0;L;;;;;N;;;;;
+1E7E5;ETHIOPIC SYLLABLE HHYE;Lo;0;L;;;;;N;;;;;
+1E7E6;ETHIOPIC SYLLABLE HHYO;Lo;0;L;;;;;N;;;;;
+1E7E8;ETHIOPIC SYLLABLE GURAGE HHWA;Lo;0;L;;;;;N;;;;;
+1E7E9;ETHIOPIC SYLLABLE HHWI;Lo;0;L;;;;;N;;;;;
+1E7EA;ETHIOPIC SYLLABLE HHWEE;Lo;0;L;;;;;N;;;;;
+1E7EB;ETHIOPIC SYLLABLE HHWE;Lo;0;L;;;;;N;;;;;
+1E7ED;ETHIOPIC SYLLABLE GURAGE MWI;Lo;0;L;;;;;N;;;;;
+1E7EE;ETHIOPIC SYLLABLE GURAGE MWEE;Lo;0;L;;;;;N;;;;;
+1E7F0;ETHIOPIC SYLLABLE GURAGE QWI;Lo;0;L;;;;;N;;;;;
+1E7F1;ETHIOPIC SYLLABLE GURAGE QWEE;Lo;0;L;;;;;N;;;;;
+1E7F2;ETHIOPIC SYLLABLE GURAGE QWE;Lo;0;L;;;;;N;;;;;
+1E7F3;ETHIOPIC SYLLABLE GURAGE BWI;Lo;0;L;;;;;N;;;;;
+1E7F4;ETHIOPIC SYLLABLE GURAGE BWEE;Lo;0;L;;;;;N;;;;;
+1E7F5;ETHIOPIC SYLLABLE GURAGE KWI;Lo;0;L;;;;;N;;;;;
+1E7F6;ETHIOPIC SYLLABLE GURAGE KWEE;Lo;0;L;;;;;N;;;;;
+1E7F7;ETHIOPIC SYLLABLE GURAGE KWE;Lo;0;L;;;;;N;;;;;
+1E7F8;ETHIOPIC SYLLABLE GURAGE GWI;Lo;0;L;;;;;N;;;;;
+1E7F9;ETHIOPIC SYLLABLE GURAGE GWEE;Lo;0;L;;;;;N;;;;;
+1E7FA;ETHIOPIC SYLLABLE GURAGE GWE;Lo;0;L;;;;;N;;;;;
+1E7FB;ETHIOPIC SYLLABLE GURAGE FWI;Lo;0;L;;;;;N;;;;;
+1E7FC;ETHIOPIC SYLLABLE GURAGE FWEE;Lo;0;L;;;;;N;;;;;
+1E7FD;ETHIOPIC SYLLABLE GURAGE PWI;Lo;0;L;;;;;N;;;;;
+1E7FE;ETHIOPIC SYLLABLE GURAGE PWEE;Lo;0;L;;;;;N;;;;;
1E800;MENDE KIKAKUI SYLLABLE M001 KI;Lo;0;R;;;;;N;;;;;
1E801;MENDE KIKAKUI SYLLABLE M002 KA;Lo;0;R;;;;;N;;;;;
1E802;MENDE KIKAKUI SYLLABLE M003 KU;Lo;0;R;;;;;N;;;;;
@@ -31886,6 +32950,10 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;;
1F6D6;HUT;So;0;ON;;;;;N;;;;;
1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;;
+1F6DC;WIRELESS;So;0;ON;;;;;N;;;;;
+1F6DD;PLAYGROUND SLIDE;So;0;ON;;;;;N;;;;;
+1F6DE;WHEEL;So;0;ON;;;;;N;;;;;
+1F6DF;RING BUOY;So;0;ON;;;;;N;;;;;
1F6E0;HAMMER AND WRENCH;So;0;ON;;;;;N;;;;;
1F6E1;SHIELD;So;0;ON;;;;;N;;;;;
1F6E2;OIL DRUM;So;0;ON;;;;;N;;;;;
@@ -32028,6 +33096,14 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F771;ALCHEMICAL SYMBOL FOR MONTH;So;0;ON;;;;;N;;;;;
1F772;ALCHEMICAL SYMBOL FOR HALF DRAM;So;0;ON;;;;;N;;;;;
1F773;ALCHEMICAL SYMBOL FOR HALF OUNCE;So;0;ON;;;;;N;;;;;
+1F774;LOT OF FORTUNE;So;0;ON;;;;;N;;;;;
+1F775;OCCULTATION;So;0;ON;;;;;N;;;;;
+1F776;LUNAR ECLIPSE;So;0;ON;;;;;N;;;;;
+1F77B;HAUMEA;So;0;ON;;;;;N;;;;;
+1F77C;MAKEMAKE;So;0;ON;;;;;N;;;;;
+1F77D;GONGGONG;So;0;ON;;;;;N;;;;;
+1F77E;QUAOAR;So;0;ON;;;;;N;;;;;
+1F77F;ORCUS;So;0;ON;;;;;N;;;;;
1F780;BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
1F781;BLACK UP-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
1F782;BLACK RIGHT-POINTING ISOSCELES RIGHT TRIANGLE;So;0;ON;;;;;N;;;;;
@@ -32117,6 +33193,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F7D6;NEGATIVE CIRCLED TRIANGLE;So;0;ON;;;;;N;;;;;
1F7D7;CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
1F7D8;NEGATIVE CIRCLED SQUARE;So;0;ON;;;;;N;;;;;
+1F7D9;NINE POINTED WHITE STAR;So;0;ON;;;;;N;;;;;
1F7E0;LARGE ORANGE CIRCLE;So;0;ON;;;;;N;;;;;
1F7E1;LARGE YELLOW CIRCLE;So;0;ON;;;;;N;;;;;
1F7E2;LARGE GREEN CIRCLE;So;0;ON;;;;;N;;;;;
@@ -32129,6 +33206,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F7E9;LARGE GREEN SQUARE;So;0;ON;;;;;N;;;;;
1F7EA;LARGE PURPLE SQUARE;So;0;ON;;;;;N;;;;;
1F7EB;LARGE BROWN SQUARE;So;0;ON;;;;;N;;;;;
+1F7F0;HEAVY EQUALS SIGN;So;0;ON;;;;;N;;;;;
1F800;LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
1F801;UPWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
1F802;RIGHTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD;So;0;ON;;;;;N;;;;;
@@ -32400,6 +33478,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F976;FREEZING FACE;So;0;ON;;;;;N;;;;;
1F977;NINJA;So;0;ON;;;;;N;;;;;
1F978;DISGUISED FACE;So;0;ON;;;;;N;;;;;
+1F979;FACE HOLDING BACK TEARS;So;0;ON;;;;;N;;;;;
1F97A;FACE WITH PLEADING EYES;So;0;ON;;;;;N;;;;;
1F97B;SARI;So;0;ON;;;;;N;;;;;
1F97C;LAB COAT;So;0;ON;;;;;N;;;;;
@@ -32482,6 +33561,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1F9C9;MATE DRINK;So;0;ON;;;;;N;;;;;
1F9CA;ICE CUBE;So;0;ON;;;;;N;;;;;
1F9CB;BUBBLE TEA;So;0;ON;;;;;N;;;;;
+1F9CC;TROLL;So;0;ON;;;;;N;;;;;
1F9CD;STANDING PERSON;So;0;ON;;;;;N;;;;;
1F9CE;KNEELING PERSON;So;0;ON;;;;;N;;;;;
1F9CF;DEAF PERSON;So;0;ON;;;;;N;;;;;
@@ -32636,9 +33716,14 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FA72;BRIEFS;So;0;ON;;;;;N;;;;;
1FA73;SHORTS;So;0;ON;;;;;N;;;;;
1FA74;THONG SANDAL;So;0;ON;;;;;N;;;;;
+1FA75;LIGHT BLUE HEART;So;0;ON;;;;;N;;;;;
+1FA76;GREY HEART;So;0;ON;;;;;N;;;;;
+1FA77;PINK HEART;So;0;ON;;;;;N;;;;;
1FA78;DROP OF BLOOD;So;0;ON;;;;;N;;;;;
1FA79;ADHESIVE BANDAGE;So;0;ON;;;;;N;;;;;
1FA7A;STETHOSCOPE;So;0;ON;;;;;N;;;;;
+1FA7B;X-RAY;So;0;ON;;;;;N;;;;;
+1FA7C;CRUTCH;So;0;ON;;;;;N;;;;;
1FA80;YO-YO;So;0;ON;;;;;N;;;;;
1FA81;KITE;So;0;ON;;;;;N;;;;;
1FA82;PARACHUTE;So;0;ON;;;;;N;;;;;
@@ -32646,6 +33731,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FA84;MAGIC WAND;So;0;ON;;;;;N;;;;;
1FA85;PINATA;So;0;ON;;;;;N;;;;;
1FA86;NESTING DOLLS;So;0;ON;;;;;N;;;;;
+1FA87;MARACAS;So;0;ON;;;;;N;;;;;
+1FA88;FLUTE;So;0;ON;;;;;N;;;;;
1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;;
1FA91;CHAIR;So;0;ON;;;;;N;;;;;
1FA92;RAZOR;So;0;ON;;;;;N;;;;;
@@ -32671,6 +33758,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAA6;HEADSTONE;So;0;ON;;;;;N;;;;;
1FAA7;PLACARD;So;0;ON;;;;;N;;;;;
1FAA8;ROCK;So;0;ON;;;;;N;;;;;
+1FAA9;MIRROR BALL;So;0;ON;;;;;N;;;;;
+1FAAA;IDENTIFICATION CARD;So;0;ON;;;;;N;;;;;
+1FAAB;LOW BATTERY;So;0;ON;;;;;N;;;;;
+1FAAC;HAMSA;So;0;ON;;;;;N;;;;;
+1FAAD;FOLDING HAND FAN;So;0;ON;;;;;N;;;;;
+1FAAE;HAIR PICK;So;0;ON;;;;;N;;;;;
+1FAAF;KHANDA;So;0;ON;;;;;N;;;;;
1FAB0;FLY;So;0;ON;;;;;N;;;;;
1FAB1;WORM;So;0;ON;;;;;N;;;;;
1FAB2;BEETLE;So;0;ON;;;;;N;;;;;
@@ -32678,9 +33772,22 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAB4;POTTED PLANT;So;0;ON;;;;;N;;;;;
1FAB5;WOOD;So;0;ON;;;;;N;;;;;
1FAB6;FEATHER;So;0;ON;;;;;N;;;;;
+1FAB7;LOTUS;So;0;ON;;;;;N;;;;;
+1FAB8;CORAL;So;0;ON;;;;;N;;;;;
+1FAB9;EMPTY NEST;So;0;ON;;;;;N;;;;;
+1FABA;NEST WITH EGGS;So;0;ON;;;;;N;;;;;
+1FABB;HYACINTH;So;0;ON;;;;;N;;;;;
+1FABC;JELLYFISH;So;0;ON;;;;;N;;;;;
+1FABD;WING;So;0;ON;;;;;N;;;;;
+1FABF;GOOSE;So;0;ON;;;;;N;;;;;
1FAC0;ANATOMICAL HEART;So;0;ON;;;;;N;;;;;
1FAC1;LUNGS;So;0;ON;;;;;N;;;;;
1FAC2;PEOPLE HUGGING;So;0;ON;;;;;N;;;;;
+1FAC3;PREGNANT MAN;So;0;ON;;;;;N;;;;;
+1FAC4;PREGNANT PERSON;So;0;ON;;;;;N;;;;;
+1FAC5;PERSON WITH CROWN;So;0;ON;;;;;N;;;;;
+1FACE;MOOSE;So;0;ON;;;;;N;;;;;
+1FACF;DONKEY;So;0;ON;;;;;N;;;;;
1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;;
1FAD1;BELL PEPPER;So;0;ON;;;;;N;;;;;
1FAD2;OLIVE;So;0;ON;;;;;N;;;;;
@@ -32688,6 +33795,29 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FAD4;TAMALE;So;0;ON;;;;;N;;;;;
1FAD5;FONDUE;So;0;ON;;;;;N;;;;;
1FAD6;TEAPOT;So;0;ON;;;;;N;;;;;
+1FAD7;POURING LIQUID;So;0;ON;;;;;N;;;;;
+1FAD8;BEANS;So;0;ON;;;;;N;;;;;
+1FAD9;JAR;So;0;ON;;;;;N;;;;;
+1FADA;GINGER ROOT;So;0;ON;;;;;N;;;;;
+1FADB;PEA POD;So;0;ON;;;;;N;;;;;
+1FAE0;MELTING FACE;So;0;ON;;;;;N;;;;;
+1FAE1;SALUTING FACE;So;0;ON;;;;;N;;;;;
+1FAE2;FACE WITH OPEN EYES AND HAND OVER MOUTH;So;0;ON;;;;;N;;;;;
+1FAE3;FACE WITH PEEKING EYE;So;0;ON;;;;;N;;;;;
+1FAE4;FACE WITH DIAGONAL MOUTH;So;0;ON;;;;;N;;;;;
+1FAE5;DOTTED LINE FACE;So;0;ON;;;;;N;;;;;
+1FAE6;BITING LIP;So;0;ON;;;;;N;;;;;
+1FAE7;BUBBLES;So;0;ON;;;;;N;;;;;
+1FAE8;SHAKING FACE;So;0;ON;;;;;N;;;;;
+1FAF0;HAND WITH INDEX FINGER AND THUMB CROSSED;So;0;ON;;;;;N;;;;;
+1FAF1;RIGHTWARDS HAND;So;0;ON;;;;;N;;;;;
+1FAF2;LEFTWARDS HAND;So;0;ON;;;;;N;;;;;
+1FAF3;PALM DOWN HAND;So;0;ON;;;;;N;;;;;
+1FAF4;PALM UP HAND;So;0;ON;;;;;N;;;;;
+1FAF5;INDEX POINTING AT THE VIEWER;So;0;ON;;;;;N;;;;;
+1FAF6;HEART HANDS;So;0;ON;;;;;N;;;;;
+1FAF7;LEFTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;;
+1FAF8;RIGHTWARDS PUSHING HAND;So;0;ON;;;;;N;;;;;
1FB00;BLOCK SEXTANT-1;So;0;ON;;;;;N;;;;;
1FB01;BLOCK SEXTANT-2;So;0;ON;;;;;N;;;;;
1FB02;BLOCK SEXTANT-12;So;0;ON;;;;;N;;;;;
@@ -32901,15 +34031,17 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1FBF8;SEGMENTED DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
1FBF9;SEGMENTED DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
20000;<CJK Ideograph Extension B, First>;Lo;0;L;;;;;N;;;;;
-2A6DD;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
+2A6DF;<CJK Ideograph Extension B, Last>;Lo;0;L;;;;;N;;;;;
2A700;<CJK Ideograph Extension C, First>;Lo;0;L;;;;;N;;;;;
-2B734;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
+2B739;<CJK Ideograph Extension C, Last>;Lo;0;L;;;;;N;;;;;
2B740;<CJK Ideograph Extension D, First>;Lo;0;L;;;;;N;;;;;
2B81D;<CJK Ideograph Extension D, Last>;Lo;0;L;;;;;N;;;;;
2B820;<CJK Ideograph Extension E, First>;Lo;0;L;;;;;N;;;;;
2CEA1;<CJK Ideograph Extension E, Last>;Lo;0;L;;;;;N;;;;;
2CEB0;<CJK Ideograph Extension F, First>;Lo;0;L;;;;;N;;;;;
2EBE0;<CJK Ideograph Extension F, Last>;Lo;0;L;;;;;N;;;;;
+2EBF0;<CJK Ideograph Extension I, First>;Lo;0;L;;;;;N;;;;;
+2EE5D;<CJK Ideograph Extension I, Last>;Lo;0;L;;;;;N;;;;;
2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;;
2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;;
2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;;
@@ -33454,6 +34586,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;;
30000;<CJK Ideograph Extension G, First>;Lo;0;L;;;;;N;;;;;
3134A;<CJK Ideograph Extension G, Last>;Lo;0;L;;;;;N;;;;;
+31350;<CJK Ideograph Extension H, First>;Lo;0;L;;;;;N;;;;;
+323AF;<CJK Ideograph Extension H, Last>;Lo;0;L;;;;;N;;;;;
E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;;
E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;;
E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;;
diff --git a/util/unicode/data/WordBreakProperty.txt b/util/unicode/data/WordBreakProperty.txt
index 36d1438c26..302a2769b3 100644
--- a/util/unicode/data/WordBreakProperty.txt
+++ b/util/unicode/data/WordBreakProperty.txt
@@ -1,11 +1,11 @@
-# WordBreakProperty-13.0.0.txt
-# Date: 2020-01-22, 00:07:44 GMT
-# © 2020 Unicode®, Inc.
+# WordBreakProperty-15.1.0.txt
+# Date: 2023-03-31, 03:19:05 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
-# For documentation, see http://www.unicode.org/reports/tr44/
+# For documentation, see https://www.unicode.org/reports/tr44/
# ================================================
@@ -91,7 +91,8 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0825..0827 ; Extend # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
0829..082D ; Extend # Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
0859..085B ; Extend # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
-08D3..08E1 ; Extend # Mn [15] ARABIC SMALL LOW WAW..ARABIC SMALL HIGH SIGN SAFHA
+0898..089F ; Extend # Mn [8] ARABIC SMALL HIGH WORD AL-JUZ..ARABIC HALF MADDA OVER MADDA
+08CA..08E1 ; Extend # Mn [24] ARABIC SMALL HIGH FARSI YEH..ARABIC SMALL HIGH SIGN SAFHA
08E3..0902 ; Extend # Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
0903 ; Extend # Mc DEVANAGARI SIGN VISARGA
093A ; Extend # Mn DEVANAGARI VOWEL SIGN OE
@@ -160,6 +161,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0C00 ; Extend # Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
0C01..0C03 ; Extend # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
0C04 ; Extend # Mn TELUGU SIGN COMBINING ANUSVARA ABOVE
+0C3C ; Extend # Mn TELUGU SIGN NUKTA
0C3E..0C40 ; Extend # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
0C41..0C44 ; Extend # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
0C46..0C48 ; Extend # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
@@ -178,6 +180,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0CCC..0CCD ; Extend # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
0CD5..0CD6 ; Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
0CE2..0CE3 ; Extend # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
+0CF3 ; Extend # Mc KANNADA SIGN COMBINING ANUSVARA ABOVE RIGHT
0D00..0D01 ; Extend # Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
0D02..0D03 ; Extend # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
0D3B..0D3C ; Extend # Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
@@ -201,7 +204,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
0E47..0E4E ; Extend # Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
0EB1 ; Extend # Mn LAO VOWEL SIGN MAI KAN
0EB4..0EBC ; Extend # Mn [9] LAO VOWEL SIGN I..LAO SEMIVOWEL SIGN LO
-0EC8..0ECD ; Extend # Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
+0EC8..0ECE ; Extend # Mn [7] LAO TONE MAI EK..LAO YAMAKKAN
0F18..0F19 ; Extend # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
0F35 ; Extend # Mn TIBETAN MARK NGAS BZUNG NYI ZLA
0F37 ; Extend # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
@@ -238,7 +241,9 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
109D ; Extend # Mn MYANMAR VOWEL SIGN AITON AI
135D..135F ; Extend # Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
1712..1714 ; Extend # Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
-1732..1734 ; Extend # Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
+1715 ; Extend # Mc TAGALOG SIGN PAMUDPOD
+1732..1733 ; Extend # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U
+1734 ; Extend # Mc HANUNOO SIGN PAMUDPOD
1752..1753 ; Extend # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
1772..1773 ; Extend # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
17B4..17B5 ; Extend # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
@@ -250,6 +255,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
17C9..17D3 ; Extend # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
17DD ; Extend # Mn KHMER SIGN ATTHACAN
180B..180D ; Extend # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
+180F ; Extend # Mn MONGOLIAN FREE VARIATION SELECTOR FOUR
1885..1886 ; Extend # Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
18A9 ; Extend # Mn MONGOLIAN LETTER ALI GALI DAGALGA
1920..1922 ; Extend # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
@@ -277,7 +283,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY
-1ABF..1AC0 ; Extend # Mn [2] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER TURNED W BELOW
+1ABF..1ACE ; Extend # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T
1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
1B04 ; Extend # Mc BALINESE SIGN BISAH
1B34 ; Extend # Mn BALINESE SIGN REREKAN
@@ -317,8 +323,7 @@ FB46..FB4F ; Hebrew_Letter # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW
1CF4 ; Extend # Mn VEDIC TONE CANDRA ABOVE
1CF7 ; Extend # Mc VEDIC SIGN ATIKRAMA
1CF8..1CF9 ; Extend # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
-1DC0..1DF9 ; Extend # Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
-1DFB..1DFF ; Extend # Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+1DC0..1DFF ; Extend # Mn [64] COMBINING DOTTED GRAVE ACCENT..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
200C ; Extend # Cf ZERO WIDTH NON-JOINER
20D0..20DC ; Extend # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
20DD..20E0 ; Extend # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
@@ -403,17 +408,22 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
10AE5..10AE6 ; Extend # Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI
10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK
+10EFD..10EFF ; Extend # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA
10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW
+10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW
11000 ; Extend # Mc BRAHMI SIGN CANDRABINDU
11001 ; Extend # Mn BRAHMI SIGN ANUSVARA
11002 ; Extend # Mc BRAHMI SIGN VISARGA
11038..11046 ; Extend # Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
+11070 ; Extend # Mn BRAHMI SIGN OLD TAMIL VIRAMA
+11073..11074 ; Extend # Mn [2] BRAHMI VOWEL SIGN OLD TAMIL SHORT E..BRAHMI VOWEL SIGN OLD TAMIL SHORT O
1107F..11081 ; Extend # Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
11082 ; Extend # Mc KAITHI SIGN VISARGA
110B0..110B2 ; Extend # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
110B3..110B6 ; Extend # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
110B7..110B8 ; Extend # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
110B9..110BA ; Extend # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
+110C2 ; Extend # Mn KAITHI VOWEL SIGN VOCALIC R
11100..11102 ; Extend # Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
11127..1112B ; Extend # Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
1112C ; Extend # Mc CHAKMA VOWEL SIGN E
@@ -435,6 +445,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11235 ; Extend # Mc KHOJKI SIGN VIRAMA
11236..11237 ; Extend # Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
1123E ; Extend # Mn KHOJKI SIGN SUKUN
+11241 ; Extend # Mn KHOJKI VOWEL SIGN VOCALIC R
112DF ; Extend # Mn KHUDAWADI SIGN ANUSVARA
112E0..112E2 ; Extend # Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
112E3..112EA ; Extend # Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
@@ -544,6 +555,16 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
11D97 ; Extend # Mn GUNJALA GONDI VIRAMA
11EF3..11EF4 ; Extend # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U
11EF5..11EF6 ; Extend # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O
+11F00..11F01 ; Extend # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA
+11F03 ; Extend # Mc KAWI SIGN VISARGA
+11F34..11F35 ; Extend # Mc [2] KAWI VOWEL SIGN AA..KAWI VOWEL SIGN ALTERNATE AA
+11F36..11F3A ; Extend # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R
+11F3E..11F3F ; Extend # Mc [2] KAWI VOWEL SIGN E..KAWI VOWEL SIGN AI
+11F40 ; Extend # Mn KAWI VOWEL SIGN EU
+11F41 ; Extend # Mc KAWI SIGN KILLER
+11F42 ; Extend # Mn KAWI CONJOINER
+13440 ; Extend # Mn EGYPTIAN HIEROGLYPH MIRROR HORIZONTALLY
+13447..13455 ; Extend # Mn [15] EGYPTIAN HIEROGLYPH MODIFIER DAMAGED AT TOP START..EGYPTIAN HIEROGLYPH MODIFIER DAMAGED
16AF0..16AF4 ; Extend # Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
16B30..16B36 ; Extend # Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
16F4F ; Extend # Mn MIAO SIGN CONSONANT MODIFIER BAR
@@ -552,6 +573,8 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
16FE4 ; Extend # Mn KHITAN SMALL SCRIPT FILLER
16FF0..16FF1 ; Extend # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY
1BC9D..1BC9E ; Extend # Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
+1CF00..1CF2D ; Extend # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT
+1CF30..1CF46 ; Extend # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG
1D165..1D166 ; Extend # Mc [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
1D167..1D169 ; Extend # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
1D16D..1D172 ; Extend # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5
@@ -570,15 +593,18 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT
1E01B..1E021 ; Extend # Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
1E023..1E024 ; Extend # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
1E026..1E02A ; Extend # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
+1E08F ; Extend # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
1E130..1E136 ; Extend # Mn [7] NYIAKENG PUACHUE HMONG TONE-B..NYIAKENG PUACHUE HMONG TONE-D
+1E2AE ; Extend # Mn TOTO SIGN RISING TONE
1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI
+1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH
1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG
E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
-# Total code points: 2399
+# Total code points: 2554
# ================================================
@@ -589,11 +615,7 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
# ================================================
00AD ; Format # Cf SOFT HYPHEN
-0600..0605 ; Format # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
061C ; Format # Cf ARABIC LETTER MARK
-06DD ; Format # Cf ARABIC END OF AYAH
-070F ; Format # Cf SYRIAC ABBREVIATION MARK
-08E2 ; Format # Cf ARABIC DISPUTED END OF AYAH
180E ; Format # Cf MONGOLIAN VOWEL SEPARATOR
200E..200F ; Format # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
202A..202E ; Format # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
@@ -601,14 +623,12 @@ E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
2066..206F ; Format # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
FEFF ; Format # Cf ZERO WIDTH NO-BREAK SPACE
FFF9..FFFB ; Format # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
-110BD ; Format # Cf KAITHI NUMBER SIGN
-110CD ; Format # Cf KAITHI NUMBER SIGN ABOVE
-13430..13438 ; Format # Cf [9] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END SEGMENT
+13430..1343F ; Format # Cf [16] EGYPTIAN HIEROGLYPH VERTICAL JOINER..EGYPTIAN HIEROGLYPH END WALLED ENCLOSURE
1BCA0..1BCA3 ; Format # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D173..1D17A ; Format # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
E0001 ; Format # Cf LANGUAGE TAG
-# Total code points: 62
+# Total code points: 58
# ================================================
@@ -624,10 +644,15 @@ E0001 ; Format # Cf LANGUAGE TAG
FF66..FF6F ; Katakana # Lo [10] HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
FF70 ; Katakana # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+1AFF0..1AFF3 ; Katakana # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5
+1AFF5..1AFFB ; Katakana # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5
+1AFFD..1AFFE ; Katakana # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8
1B000 ; Katakana # Lo KATAKANA LETTER ARCHAIC E
+1B120..1B122 ; Katakana # Lo [3] KATAKANA LETTER ARCHAIC YI..KATAKANA LETTER ARCHAIC WU
+1B155 ; Katakana # Lo KATAKANA LETTER SMALL KO
1B164..1B167 ; Katakana # Lo [4] KATAKANA LETTER SMALL WI..KATAKANA LETTER SMALL N
-# Total code points: 314
+# Total code points: 331
# ================================================
@@ -686,6 +711,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
06EE..06EF ; ALetter # Lo [2] ARABIC LETTER DAL WITH INVERTED V..ARABIC LETTER REH WITH INVERTED V
06FA..06FC ; ALetter # Lo [3] ARABIC LETTER SHEEN WITH DOT BELOW..ARABIC LETTER GHAIN WITH DOT BELOW
06FF ; ALetter # Lo ARABIC LETTER HEH WITH INVERTED V
+070F ; ALetter # Cf SYRIAC ABBREVIATION MARK
0710 ; ALetter # Lo SYRIAC LETTER ALAPH
0712..072F ; ALetter # Lo [30] SYRIAC LETTER BETH..SYRIAC LETTER PERSIAN DHALATH
074D..07A5 ; ALetter # Lo [89] SYRIAC LETTER SOGDIAN ZHAIN..THAANA LETTER WAAVU
@@ -699,8 +725,10 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
0828 ; ALetter # Lm SAMARITAN MODIFIER LETTER I
0840..0858 ; ALetter # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN
0860..086A ; ALetter # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA
-08A0..08B4 ; ALetter # Lo [21] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER KAF WITH DOT BELOW
-08B6..08C7 ; ALetter # Lo [18] ARABIC LETTER BEH WITH SMALL MEEM ABOVE..ARABIC LETTER LAM WITH SMALL ARABIC LETTER TAH ABOVE
+0870..0887 ; ALetter # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT
+0889..088E ; ALetter # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL
+08A0..08C8 ; ALetter # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF
+08C9 ; ALetter # Lm ARABIC SMALL FARSI YEH
0904..0939 ; ALetter # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA
093D ; ALetter # Lo DEVANAGARI SIGN AVAGRAHA
0950 ; ALetter # Lo DEVANAGARI OM
@@ -766,6 +794,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
0C2A..0C39 ; ALetter # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA
0C3D ; ALetter # Lo TELUGU SIGN AVAGRAHA
0C58..0C5A ; ALetter # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA
+0C5D ; ALetter # Lo TELUGU LETTER NAKAARA POLLU
0C60..0C61 ; ALetter # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL
0C80 ; ALetter # Lo KANNADA SIGN SPACING CANDRABINDU
0C85..0C8C ; ALetter # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L
@@ -774,7 +803,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
0CAA..0CB3 ; ALetter # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA
0CB5..0CB9 ; ALetter # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA
0CBD ; ALetter # Lo KANNADA SIGN AVAGRAHA
-0CDE ; ALetter # Lo KANNADA LETTER FA
+0CDD..0CDE ; ALetter # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA
0CE0..0CE1 ; ALetter # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL
0CF1..0CF2 ; ALetter # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA
0D04..0D0C ; ALetter # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L
@@ -825,9 +854,8 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
16A0..16EA ; ALetter # Lo [75] RUNIC LETTER FEHU FEOH FE F..RUNIC LETTER X
16EE..16F0 ; ALetter # Nl [3] RUNIC ARLAUG SYMBOL..RUNIC BELGTHOR SYMBOL
16F1..16F8 ; ALetter # Lo [8] RUNIC LETTER K..RUNIC LETTER FRANKS CASKET AESC
-1700..170C ; ALetter # Lo [13] TAGALOG LETTER A..TAGALOG LETTER YA
-170E..1711 ; ALetter # Lo [4] TAGALOG LETTER LA..TAGALOG LETTER HA
-1720..1731 ; ALetter # Lo [18] HANUNOO LETTER A..HANUNOO LETTER HA
+1700..1711 ; ALetter # Lo [18] TAGALOG LETTER A..TAGALOG LETTER HA
+171F..1731 ; ALetter # Lo [19] TAGALOG LETTER ARCHAIC RA..HANUNOO LETTER HA
1740..1751 ; ALetter # Lo [18] BUHID LETTER A..BUHID LETTER HA
1760..176C ; ALetter # Lo [13] TAGBANWA LETTER A..TAGBANWA LETTER YA
176E..1770 ; ALetter # Lo [3] TAGBANWA LETTER LA..TAGBANWA LETTER SA
@@ -841,7 +869,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
1900..191E ; ALetter # Lo [31] LIMBU VOWEL-CARRIER LETTER..LIMBU LETTER TRA
1A00..1A16 ; ALetter # Lo [23] BUGINESE LETTER KA..BUGINESE LETTER HA
1B05..1B33 ; ALetter # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA
-1B45..1B4B ; ALetter # Lo [7] BALINESE LETTER KAF SASAK..BALINESE LETTER ASYURA SASAK
+1B45..1B4C ; ALetter # Lo [8] BALINESE LETTER KAF SASAK..BALINESE LETTER ARCHAIC JNYA
1B83..1BA0 ; ALetter # Lo [30] SUNDANESE LETTER A..SUNDANESE LETTER HA
1BAE..1BAF ; ALetter # Lo [2] SUNDANESE LETTER KHA..SUNDANESE LETTER SYA
1BBA..1BE5 ; ALetter # Lo [44] SUNDANESE AVAGRAHA..BATAK LETTER U
@@ -903,9 +931,7 @@ FF71..FF9D ; Katakana # Lo [45] HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAK
2183..2184 ; ALetter # L& [2] ROMAN NUMERAL REVERSED ONE HUNDRED..LATIN SMALL LETTER REVERSED C
2185..2188 ; ALetter # Nl [4] ROMAN NUMERAL SIX LATE FORM..ROMAN NUMERAL ONE HUNDRED THOUSAND
24B6..24E9 ; ALetter # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z
-2C00..2C2E ; ALetter # L& [47] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
-2C30..2C5E ; ALetter # L& [47] GLAGOLITIC SMALL LETTER AZU..GLAGOLITIC SMALL LETTER LATINATE MYSLITE
-2C60..2C7B ; ALetter # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E
+2C00..2C7B ; ALetter # L& [124] GLAGOLITIC CAPITAL LETTER AZU..LATIN LETTER SMALL CAPITAL TURNED E
2C7C..2C7D ; ALetter # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
2C7E..2CE4 ; ALetter # L& [103] LATIN CAPITAL LETTER S WITH SWASH TAIL..COPTIC SYMBOL KAI
2CEB..2CEE ; ALetter # L& [4] COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI..COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
@@ -957,8 +983,11 @@ A788 ; ALetter # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT
A789..A78A ; ALetter # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN
A78B..A78E ; ALetter # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
A78F ; ALetter # Lo LATIN LETTER SINOLOGICAL DOT
-A790..A7BF ; ALetter # L& [48] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER GLOTTAL U
-A7C2..A7CA ; ALetter # L& [9] LATIN CAPITAL LETTER ANGLICANA W..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A790..A7CA ; ALetter # L& [59] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY
+A7D0..A7D1 ; ALetter # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G
+A7D3 ; ALetter # L& LATIN SMALL LETTER DOUBLE THORN
+A7D5..A7D9 ; ALetter # L& [5] LATIN SMALL LETTER DOUBLE WYNN..LATIN SMALL LETTER SIGMOID S
+A7F2..A7F4 ; ALetter # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q
A7F5..A7F6 ; ALetter # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H
A7F7 ; ALetter # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I
A7F8..A7F9 ; ALetter # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
@@ -1040,9 +1069,20 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
104D8..104FB ; ALetter # L& [36] OSAGE SMALL LETTER A..OSAGE SMALL LETTER ZHA
10500..10527 ; ALetter # Lo [40] ELBASAN LETTER A..ELBASAN LETTER KHE
10530..10563 ; ALetter # Lo [52] CAUCASIAN ALBANIAN LETTER ALT..CAUCASIAN ALBANIAN LETTER KIW
+10570..1057A ; ALetter # L& [11] VITHKUQI CAPITAL LETTER A..VITHKUQI CAPITAL LETTER GA
+1057C..1058A ; ALetter # L& [15] VITHKUQI CAPITAL LETTER HA..VITHKUQI CAPITAL LETTER RE
+1058C..10592 ; ALetter # L& [7] VITHKUQI CAPITAL LETTER SE..VITHKUQI CAPITAL LETTER XE
+10594..10595 ; ALetter # L& [2] VITHKUQI CAPITAL LETTER Y..VITHKUQI CAPITAL LETTER ZE
+10597..105A1 ; ALetter # L& [11] VITHKUQI SMALL LETTER A..VITHKUQI SMALL LETTER GA
+105A3..105B1 ; ALetter # L& [15] VITHKUQI SMALL LETTER HA..VITHKUQI SMALL LETTER RE
+105B3..105B9 ; ALetter # L& [7] VITHKUQI SMALL LETTER SE..VITHKUQI SMALL LETTER XE
+105BB..105BC ; ALetter # L& [2] VITHKUQI SMALL LETTER Y..VITHKUQI SMALL LETTER ZE
10600..10736 ; ALetter # Lo [311] LINEAR A SIGN AB001..LINEAR A SIGN A664
10740..10755 ; ALetter # Lo [22] LINEAR A SIGN A701 A..LINEAR A SIGN A732 JE
10760..10767 ; ALetter # Lo [8] LINEAR A SIGN A800..LINEAR A SIGN A807
+10780..10785 ; ALetter # Lm [6] MODIFIER LETTER SMALL CAPITAL AA..MODIFIER LETTER SMALL B WITH HOOK
+10787..107B0 ; ALetter # Lm [42] MODIFIER LETTER SMALL DZ DIGRAPH..MODIFIER LETTER SMALL V WITH RIGHT HOOK
+107B2..107BA ; ALetter # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL
10800..10805 ; ALetter # Lo [6] CYPRIOT SYLLABLE A..CYPRIOT SYLLABLE JA
10808 ; ALetter # Lo CYPRIOT SYLLABLE JO
1080A..10835 ; ALetter # Lo [44] CYPRIOT SYLLABLE KA..CYPRIOT SYLLABLE WO
@@ -1078,9 +1118,12 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
10F00..10F1C ; ALetter # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL
10F27 ; ALetter # Lo OLD SOGDIAN LIGATURE AYIN-DALETH
10F30..10F45 ; ALetter # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN
+10F70..10F81 ; ALetter # Lo [18] OLD UYGHUR LETTER ALEPH..OLD UYGHUR LETTER LESH
10FB0..10FC4 ; ALetter # Lo [21] CHORASMIAN LETTER ALEPH..CHORASMIAN LETTER TAW
10FE0..10FF6 ; ALetter # Lo [23] ELYMAIC LETTER ALEPH..ELYMAIC LIGATURE ZAYIN-YODH
11003..11037 ; ALetter # Lo [53] BRAHMI SIGN JIHVAMULIYA..BRAHMI LETTER OLD TAMIL NNNA
+11071..11072 ; ALetter # Lo [2] BRAHMI LETTER OLD TAMIL SHORT E..BRAHMI LETTER OLD TAMIL SHORT O
+11075 ; ALetter # Lo BRAHMI LETTER OLD TAMIL LLA
11083..110AF ; ALetter # Lo [45] KAITHI LETTER A..KAITHI LETTER HA
110D0..110E8 ; ALetter # Lo [25] SORA SOMPENG LETTER SAH..SORA SOMPENG LETTER MAE
11103..11126 ; ALetter # Lo [36] CHAKMA LETTER AA..CHAKMA LETTER HAA
@@ -1094,6 +1137,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
111DC ; ALetter # Lo SHARADA HEADSTROKE
11200..11211 ; ALetter # Lo [18] KHOJKI LETTER A..KHOJKI LETTER JJA
11213..1122B ; ALetter # Lo [25] KHOJKI LETTER NYA..KHOJKI LETTER LLA
+1123F..11240 ; ALetter # Lo [2] KHOJKI LETTER QA..KHOJKI LETTER SHORT I
11280..11286 ; ALetter # Lo [7] MULTANI LETTER A..MULTANI LETTER GA
11288 ; ALetter # Lo MULTANI LETTER GHA
1128A..1128D ; ALetter # Lo [4] MULTANI LETTER CA..MULTANI LETTER JJA
@@ -1140,7 +1184,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
11A50 ; ALetter # Lo SOYOMBO LETTER A
11A5C..11A89 ; ALetter # Lo [46] SOYOMBO LETTER KA..SOYOMBO CLUSTER-INITIAL LETTER SA
11A9D ; ALetter # Lo SOYOMBO MARK PLUTA
-11AC0..11AF8 ; ALetter # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL
+11AB0..11AF8 ; ALetter # Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL
11C00..11C08 ; ALetter # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L
11C0A..11C2E ; ALetter # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA
11C40 ; ALetter # Lo BHAIKSUKI SIGN AVAGRAHA
@@ -1154,14 +1198,20 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
11D6A..11D89 ; ALetter # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA
11D98 ; ALetter # Lo GUNJALA GONDI OM
11EE0..11EF2 ; ALetter # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA
+11F02 ; ALetter # Lo KAWI SIGN REPHA
+11F04..11F10 ; ALetter # Lo [13] KAWI LETTER A..KAWI LETTER O
+11F12..11F33 ; ALetter # Lo [34] KAWI LETTER KA..KAWI LETTER JNYA
11FB0 ; ALetter # Lo LISU LETTER YHA
12000..12399 ; ALetter # Lo [922] CUNEIFORM SIGN A..CUNEIFORM SIGN U U
12400..1246E ; ALetter # Nl [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM
12480..12543 ; ALetter # Lo [196] CUNEIFORM SIGN AB TIMES NUN TENU..CUNEIFORM SIGN ZU5 TIMES THREE DISH TENU
-13000..1342E ; ALetter # Lo [1071] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH AA032
+12F90..12FF0 ; ALetter # Lo [97] CYPRO-MINOAN SIGN CM001..CYPRO-MINOAN SIGN CM114
+13000..1342F ; ALetter # Lo [1072] EGYPTIAN HIEROGLYPH A001..EGYPTIAN HIEROGLYPH V011D
+13441..13446 ; ALetter # Lo [6] EGYPTIAN HIEROGLYPH FULL BLANK..EGYPTIAN HIEROGLYPH WIDE LOST SIGN
14400..14646 ; ALetter # Lo [583] ANATOLIAN HIEROGLYPH A001..ANATOLIAN HIEROGLYPH A530
16800..16A38 ; ALetter # Lo [569] BAMUM LETTER PHASE-A NGKUE MFON..BAMUM LETTER PHASE-F VUEQ
16A40..16A5E ; ALetter # Lo [31] MRO LETTER TA..MRO LETTER TEK
+16A70..16ABE ; ALetter # Lo [79] TANGSA LETTER OZ..TANGSA LETTER ZA
16AD0..16AED ; ALetter # Lo [30] BASSA VAH LETTER ENNI..BASSA VAH LETTER I
16B00..16B2F ; ALetter # Lo [48] PAHAWH HMONG VOWEL KEEB..PAHAWH HMONG CONSONANT CAU
16B40..16B43 ; ALetter # Lm [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM
@@ -1207,10 +1257,22 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1D78A..1D7A8 ; ALetter # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
1D7AA..1D7C2 ; ALetter # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
1D7C4..1D7CB ; ALetter # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+1DF00..1DF09 ; ALetter # L& [10] LATIN SMALL LETTER FENG DIGRAPH WITH TRILL..LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK
+1DF0A ; ALetter # Lo LATIN LETTER RETROFLEX CLICK WITH RETROFLEX HOOK
+1DF0B..1DF1E ; ALetter # L& [20] LATIN SMALL LETTER ESH WITH DOUBLE BAR..LATIN SMALL LETTER S WITH CURL
+1DF25..1DF2A ; ALetter # L& [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK
+1E030..1E06D ; ALetter # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE
1E100..1E12C ; ALetter # Lo [45] NYIAKENG PUACHUE HMONG LETTER MA..NYIAKENG PUACHUE HMONG LETTER W
1E137..1E13D ; ALetter # Lm [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER
1E14E ; ALetter # Lo NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ
+1E290..1E2AD ; ALetter # Lo [30] TOTO LETTER PA..TOTO LETTER A
1E2C0..1E2EB ; ALetter # Lo [44] WANCHO LETTER AA..WANCHO LETTER YIH
+1E4D0..1E4EA ; ALetter # Lo [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL
+1E4EB ; ALetter # Lm NAG MUNDARI SIGN OJOD
+1E7E0..1E7E6 ; ALetter # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO
+1E7E8..1E7EB ; ALetter # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE
+1E7ED..1E7EE ; ALetter # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE
+1E7F0..1E7FE ; ALetter # Lo [15] ETHIOPIC SYLLABLE GURAGE QWI..ETHIOPIC SYLLABLE GURAGE PWEE
1E800..1E8C4 ; ALetter # Lo [197] MENDE KIKAKUI SYLLABLE M001 KI..MENDE KIKAKUI SYLLABLE M060 NYON
1E900..1E943 ; ALetter # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA
1E94B ; ALetter # Lm ADLAM NASALIZATION MARK
@@ -1251,7 +1313,7 @@ FFDA..FFDC ; ALetter # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL
1F150..1F169 ; ALetter # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
1F170..1F189 ; ALetter # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z
-# Total code points: 28854
+# Total code points: 29490
# ================================================
@@ -1301,10 +1363,14 @@ FF0E ; MidNumLet # Po FULLWIDTH FULL STOP
# ================================================
0030..0039 ; Numeric # Nd [10] DIGIT ZERO..DIGIT NINE
+0600..0605 ; Numeric # Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
0660..0669 ; Numeric # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
066B ; Numeric # Po ARABIC DECIMAL SEPARATOR
+06DD ; Numeric # Cf ARABIC END OF AYAH
06F0..06F9 ; Numeric # Nd [10] EXTENDED ARABIC-INDIC DIGIT ZERO..EXTENDED ARABIC-INDIC DIGIT NINE
07C0..07C9 ; Numeric # Nd [10] NKO DIGIT ZERO..NKO DIGIT NINE
+0890..0891 ; Numeric # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE
+08E2 ; Numeric # Cf ARABIC DISPUTED END OF AYAH
0966..096F ; Numeric # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
09E6..09EF ; Numeric # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
0A66..0A6F ; Numeric # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
@@ -1341,6 +1407,8 @@ FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
104A0..104A9 ; Numeric # Nd [10] OSMANYA DIGIT ZERO..OSMANYA DIGIT NINE
10D30..10D39 ; Numeric # Nd [10] HANIFI ROHINGYA DIGIT ZERO..HANIFI ROHINGYA DIGIT NINE
11066..1106F ; Numeric # Nd [10] BRAHMI DIGIT ZERO..BRAHMI DIGIT NINE
+110BD ; Numeric # Cf KAITHI NUMBER SIGN
+110CD ; Numeric # Cf KAITHI NUMBER SIGN ABOVE
110F0..110F9 ; Numeric # Nd [10] SORA SOMPENG DIGIT ZERO..SORA SOMPENG DIGIT NINE
11136..1113F ; Numeric # Nd [10] CHAKMA DIGIT ZERO..CHAKMA DIGIT NINE
111D0..111D9 ; Numeric # Nd [10] SHARADA DIGIT ZERO..SHARADA DIGIT NINE
@@ -1355,15 +1423,18 @@ FF10..FF19 ; Numeric # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
11C50..11C59 ; Numeric # Nd [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE
11D50..11D59 ; Numeric # Nd [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE
11DA0..11DA9 ; Numeric # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE
+11F50..11F59 ; Numeric # Nd [10] KAWI DIGIT ZERO..KAWI DIGIT NINE
16A60..16A69 ; Numeric # Nd [10] MRO DIGIT ZERO..MRO DIGIT NINE
+16AC0..16AC9 ; Numeric # Nd [10] TANGSA DIGIT ZERO..TANGSA DIGIT NINE
16B50..16B59 ; Numeric # Nd [10] PAHAWH HMONG DIGIT ZERO..PAHAWH HMONG DIGIT NINE
1D7CE..1D7FF ; Numeric # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
1E140..1E149 ; Numeric # Nd [10] NYIAKENG PUACHUE HMONG DIGIT ZERO..NYIAKENG PUACHUE HMONG DIGIT NINE
1E2F0..1E2F9 ; Numeric # Nd [10] WANCHO DIGIT ZERO..WANCHO DIGIT NINE
+1E4F0..1E4F9 ; Numeric # Nd [10] NAG MUNDARI DIGIT ZERO..NAG MUNDARI DIGIT NINE
1E950..1E959 ; Numeric # Nd [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE
1FBF0..1FBF9 ; Numeric # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
-# Total code points: 651
+# Total code points: 693
# ================================================
diff --git a/util/unicode/data/emoji-data.txt b/util/unicode/data/emoji-data.txt
index 5d7dc1b156..0ba10e9ce4 100644
--- a/util/unicode/data/emoji-data.txt
+++ b/util/unicode/data/emoji-data.txt
@@ -1,13 +1,13 @@
# emoji-data.txt
-# Date: 2020-01-28, 20:52:38 GMT
-# © 2020 Unicode®, Inc.
+# Date: 2023-02-01, 02:22:54 GMT
+# © 2023 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
-# For terms of use, see http://www.unicode.org/terms_of_use.html
+# For terms of use, see https://www.unicode.org/terms_of_use.html
#
# Emoji Data for UTS #51
-# Version: 13.0
+# Used with Emoji Version 15.1 and subsequent minor revisions (if any)
#
-# For documentation and usage, see http://www.unicode.org/reports/tr51
+# For documentation and usage, see https://www.unicode.org/reports/tr51
#
# Format:
# <codepoint(s)> ; <property> # <comments>
@@ -19,10 +19,9 @@
# ================================================
-# All omitted code points have Emoji=No
-# @missing: 0000..10FFFF ; Emoji ; No
+# All omitted code points have Emoji=No
-0023 ; Emoji # E0.0 [1] (#️) number sign
+0023 ; Emoji # E0.0 [1] (#️) hash sign
002A ; Emoji # E0.0 [1] (*️) asterisk
0030..0039 ; Emoji # E0.0 [10] (0️..9️) digit zero..digit nine
00A9 ; Emoji # E0.6 [1] (©️) copyright
@@ -119,8 +118,8 @@
2747 ; Emoji # E0.6 [1] (❇️) sparkle
274C ; Emoji # E0.6 [1] (❌) cross mark
274E ; Emoji # E0.6 [1] (❎) cross mark button
-2753..2755 ; Emoji # E0.6 [3] (❓..❕) question mark..white exclamation mark
-2757 ; Emoji # E0.6 [1] (❗) exclamation mark
+2753..2755 ; Emoji # E0.6 [3] (❓..❕) red question mark..white exclamation mark
+2757 ; Emoji # E0.6 [1] (❗) red exclamation mark
2763 ; Emoji # E1.0 [1] (❣️) heart exclamation
2764 ; Emoji # E0.6 [1] (❤️) red heart
2795..2797 ; Emoji # E0.6 [3] (➕..➗) plus..divide
@@ -239,7 +238,7 @@
1F509 ; Emoji # E1.0 [1] (🔉) speaker medium volume
1F50A..1F514 ; Emoji # E0.6 [11] (🔊..🔔) speaker high volume..bell
1F515 ; Emoji # E1.0 [1] (🔕) bell with slash
-1F516..1F52B ; Emoji # E0.6 [22] (🔖..🔫) bookmark..pistol
+1F516..1F52B ; Emoji # E0.6 [22] (🔖..🔫) bookmark..water pistol
1F52C..1F52D ; Emoji # E1.0 [2] (🔬..🔭) microscope..telescope
1F52E..1F53D ; Emoji # E0.6 [16] (🔮..🔽) crystal ball..downwards button
1F549..1F54A ; Emoji # E0.7 [2] (🕉️..🕊️) om..dove
@@ -294,7 +293,7 @@
1F62E..1F62F ; Emoji # E1.0 [2] (😮..😯) face with open mouth..hushed face
1F630..1F633 ; Emoji # E0.6 [4] (😰..😳) anxious face with sweat..flushed face
1F634 ; Emoji # E1.0 [1] (😴) sleeping face
-1F635 ; Emoji # E0.6 [1] (😵) dizzy face
+1F635 ; Emoji # E0.6 [1] (😵) face with crossed-out eyes
1F636 ; Emoji # E1.0 [1] (😶) face without mouth
1F637..1F640 ; Emoji # E0.6 [10] (😷..🙀) face with medical mask..weary cat
1F641..1F644 ; Emoji # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
@@ -341,6 +340,8 @@
1F6D1..1F6D2 ; Emoji # E3.0 [2] (🛑..🛒) stop sign..shopping cart
1F6D5 ; Emoji # E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Emoji # E13.0 [2] (🛖..🛗) hut..elevator
+1F6DC ; Emoji # E15.0 [1] (🛜) wireless
+1F6DD..1F6DF ; Emoji # E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6E0..1F6E5 ; Emoji # E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
1F6E9 ; Emoji # E0.7 [1] (🛩️) small airplane
1F6EB..1F6EC ; Emoji # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
@@ -352,6 +353,7 @@
1F6FA ; Emoji # E12.0 [1] (🛺) auto rickshaw
1F6FB..1F6FC ; Emoji # E13.0 [2] (🛻..🛼) pickup truck..roller skate
1F7E0..1F7EB ; Emoji # E12.0 [12] (🟠..🟫) orange circle..brown square
+1F7F0 ; Emoji # E14.0 [1] (🟰) heavy equals sign
1F90C ; Emoji # E13.0 [1] (🤌) pinched fingers
1F90D..1F90F ; Emoji # E12.0 [3] (🤍..🤏) white heart..pinching hand
1F910..1F918 ; Emoji # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns
@@ -375,6 +377,7 @@
1F972 ; Emoji # E13.0 [1] (🥲) smiling face with tear
1F973..1F976 ; Emoji # E11.0 [4] (🥳..🥶) partying face..cold face
1F977..1F978 ; Emoji # E13.0 [2] (🥷..🥸) ninja..disguised face
+1F979 ; Emoji # E14.0 [1] (🥹) face holding back tears
1F97A ; Emoji # E11.0 [1] (🥺) pleading face
1F97B ; Emoji # E12.0 [1] (🥻) sari
1F97C..1F97F ; Emoji # E11.0 [4] (🥼..🥿) lab coat..flat shoe
@@ -392,26 +395,42 @@
1F9C1..1F9C2 ; Emoji # E11.0 [2] (🧁..🧂) cupcake..salt
1F9C3..1F9CA ; Emoji # E12.0 [8] (🧃..🧊) beverage box..ice
1F9CB ; Emoji # E13.0 [1] (🧋) bubble tea
+1F9CC ; Emoji # E14.0 [1] (🧌) troll
1F9CD..1F9CF ; Emoji # E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D0..1F9E6 ; Emoji # E5.0 [23] (🧐..🧦) face with monocle..socks
1F9E7..1F9FF ; Emoji # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA70..1FA73 ; Emoji # E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Emoji # E13.0 [1] (🩴) thong sandal
+1FA75..1FA77 ; Emoji # E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Emoji # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
+1FA7B..1FA7C ; Emoji # E14.0 [2] (🩻..🩼) x-ray..crutch
1FA80..1FA82 ; Emoji # E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
+1FA87..1FA88 ; Emoji # E15.0 [2] (🪇..🪈) maracas..flute
1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock
+1FAA9..1FAAC ; Emoji # E14.0 [4] (🪩..🪬) mirror ball..hamsa
+1FAAD..1FAAF ; Emoji # E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Emoji # E13.0 [7] (🪰..🪶) fly..feather
+1FAB7..1FABA ; Emoji # E14.0 [4] (🪷..🪺) lotus..nest with eggs
+1FABB..1FABD ; Emoji # E15.0 [3] (🪻..🪽) hyacinth..wing
+1FABF ; Emoji # E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
+1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown
+1FACE..1FACF ; Emoji # E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot
+1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar
+1FADA..1FADB ; Emoji # E15.0 [2] (🫚..🫛) ginger root..pea pod
+1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles
+1FAE8 ; Emoji # E15.0 [1] (🫨) shaking face
+1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8 ; Emoji # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
-# Total elements: 1367
+# Total elements: 1424
# ================================================
-# All omitted code points have Emoji_Presentation=No
-# @missing: 0000..10FFFF ; Emoji_Presentation ; No
+# All omitted code points have Emoji_Presentation=No
231A..231B ; Emoji_Presentation # E0.6 [2] (⌚..⌛) watch..hourglass done
23E9..23EC ; Emoji_Presentation # E0.6 [4] (⏩..⏬) fast-forward button..fast down button
@@ -438,8 +457,8 @@
2728 ; Emoji_Presentation # E0.6 [1] (✨) sparkles
274C ; Emoji_Presentation # E0.6 [1] (❌) cross mark
274E ; Emoji_Presentation # E0.6 [1] (❎) cross mark button
-2753..2755 ; Emoji_Presentation # E0.6 [3] (❓..❕) question mark..white exclamation mark
-2757 ; Emoji_Presentation # E0.6 [1] (❗) exclamation mark
+2753..2755 ; Emoji_Presentation # E0.6 [3] (❓..❕) red question mark..white exclamation mark
+2757 ; Emoji_Presentation # E0.6 [1] (❗) red exclamation mark
2795..2797 ; Emoji_Presentation # E0.6 [3] (➕..➗) plus..divide
27B0 ; Emoji_Presentation # E0.6 [1] (➰) curly loop
27BF ; Emoji_Presentation # E1.0 [1] (➿) double curly loop
@@ -533,7 +552,7 @@
1F509 ; Emoji_Presentation # E1.0 [1] (🔉) speaker medium volume
1F50A..1F514 ; Emoji_Presentation # E0.6 [11] (🔊..🔔) speaker high volume..bell
1F515 ; Emoji_Presentation # E1.0 [1] (🔕) bell with slash
-1F516..1F52B ; Emoji_Presentation # E0.6 [22] (🔖..🔫) bookmark..pistol
+1F516..1F52B ; Emoji_Presentation # E0.6 [22] (🔖..🔫) bookmark..water pistol
1F52C..1F52D ; Emoji_Presentation # E1.0 [2] (🔬..🔭) microscope..telescope
1F52E..1F53D ; Emoji_Presentation # E0.6 [16] (🔮..🔽) crystal ball..downwards button
1F54B..1F54E ; Emoji_Presentation # E1.0 [4] (🕋..🕎) kaaba..menorah
@@ -569,7 +588,7 @@
1F62E..1F62F ; Emoji_Presentation # E1.0 [2] (😮..😯) face with open mouth..hushed face
1F630..1F633 ; Emoji_Presentation # E0.6 [4] (😰..😳) anxious face with sweat..flushed face
1F634 ; Emoji_Presentation # E1.0 [1] (😴) sleeping face
-1F635 ; Emoji_Presentation # E0.6 [1] (😵) dizzy face
+1F635 ; Emoji_Presentation # E0.6 [1] (😵) face with crossed-out eyes
1F636 ; Emoji_Presentation # E1.0 [1] (😶) face without mouth
1F637..1F640 ; Emoji_Presentation # E0.6 [10] (😷..🙀) face with medical mask..weary cat
1F641..1F644 ; Emoji_Presentation # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
@@ -614,6 +633,8 @@
1F6D1..1F6D2 ; Emoji_Presentation # E3.0 [2] (🛑..🛒) stop sign..shopping cart
1F6D5 ; Emoji_Presentation # E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Emoji_Presentation # E13.0 [2] (🛖..🛗) hut..elevator
+1F6DC ; Emoji_Presentation # E15.0 [1] (🛜) wireless
+1F6DD..1F6DF ; Emoji_Presentation # E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6EB..1F6EC ; Emoji_Presentation # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival
1F6F4..1F6F6 ; Emoji_Presentation # E3.0 [3] (🛴..🛶) kick scooter..canoe
1F6F7..1F6F8 ; Emoji_Presentation # E5.0 [2] (🛷..🛸) sled..flying saucer
@@ -621,6 +642,7 @@
1F6FA ; Emoji_Presentation # E12.0 [1] (🛺) auto rickshaw
1F6FB..1F6FC ; Emoji_Presentation # E13.0 [2] (🛻..🛼) pickup truck..roller skate
1F7E0..1F7EB ; Emoji_Presentation # E12.0 [12] (🟠..🟫) orange circle..brown square
+1F7F0 ; Emoji_Presentation # E14.0 [1] (🟰) heavy equals sign
1F90C ; Emoji_Presentation # E13.0 [1] (🤌) pinched fingers
1F90D..1F90F ; Emoji_Presentation # E12.0 [3] (🤍..🤏) white heart..pinching hand
1F910..1F918 ; Emoji_Presentation # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns
@@ -644,6 +666,7 @@
1F972 ; Emoji_Presentation # E13.0 [1] (🥲) smiling face with tear
1F973..1F976 ; Emoji_Presentation # E11.0 [4] (🥳..🥶) partying face..cold face
1F977..1F978 ; Emoji_Presentation # E13.0 [2] (🥷..🥸) ninja..disguised face
+1F979 ; Emoji_Presentation # E14.0 [1] (🥹) face holding back tears
1F97A ; Emoji_Presentation # E11.0 [1] (🥺) pleading face
1F97B ; Emoji_Presentation # E12.0 [1] (🥻) sari
1F97C..1F97F ; Emoji_Presentation # E11.0 [4] (🥼..🥿) lab coat..flat shoe
@@ -661,26 +684,42 @@
1F9C1..1F9C2 ; Emoji_Presentation # E11.0 [2] (🧁..🧂) cupcake..salt
1F9C3..1F9CA ; Emoji_Presentation # E12.0 [8] (🧃..🧊) beverage box..ice
1F9CB ; Emoji_Presentation # E13.0 [1] (🧋) bubble tea
+1F9CC ; Emoji_Presentation # E14.0 [1] (🧌) troll
1F9CD..1F9CF ; Emoji_Presentation # E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D0..1F9E6 ; Emoji_Presentation # E5.0 [23] (🧐..🧦) face with monocle..socks
1F9E7..1F9FF ; Emoji_Presentation # E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA70..1FA73 ; Emoji_Presentation # E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Emoji_Presentation # E13.0 [1] (🩴) thong sandal
+1FA75..1FA77 ; Emoji_Presentation # E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Emoji_Presentation # E12.0 [3] (🩸..🩺) drop of blood..stethoscope
+1FA7B..1FA7C ; Emoji_Presentation # E14.0 [2] (🩻..🩼) x-ray..crutch
1FA80..1FA82 ; Emoji_Presentation # E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls
+1FA87..1FA88 ; Emoji_Presentation # E15.0 [2] (🪇..🪈) maracas..flute
1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock
+1FAA9..1FAAC ; Emoji_Presentation # E14.0 [4] (🪩..🪬) mirror ball..hamsa
+1FAAD..1FAAF ; Emoji_Presentation # E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Emoji_Presentation # E13.0 [7] (🪰..🪶) fly..feather
+1FAB7..1FABA ; Emoji_Presentation # E14.0 [4] (🪷..🪺) lotus..nest with eggs
+1FABB..1FABD ; Emoji_Presentation # E15.0 [3] (🪻..🪽) hyacinth..wing
+1FABF ; Emoji_Presentation # E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging
+1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown
+1FACE..1FACF ; Emoji_Presentation # E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot
+1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar
+1FADA..1FADB ; Emoji_Presentation # E15.0 [2] (🫚..🫛) ginger root..pea pod
+1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles
+1FAE8 ; Emoji_Presentation # E15.0 [1] (🫨) shaking face
+1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8 ; Emoji_Presentation # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
-# Total elements: 1148
+# Total elements: 1205
# ================================================
-# All omitted code points have Emoji_Modifier=No
-# @missing: 0000..10FFFF ; Emoji_Modifier ; No
+# All omitted code points have Emoji_Modifier=No
1F3FB..1F3FF ; Emoji_Modifier # E1.0 [5] (🏻..🏿) light skin tone..dark skin tone
@@ -688,8 +727,7 @@
# ================================================
-# All omitted code points have Emoji_Modifier_Base=No
-# @missing: 0000..10FFFF ; Emoji_Modifier_Base ; No
+# All omitted code points have Emoji_Modifier_Base=No
261D ; Emoji_Modifier_Base # E0.6 [1] (☝️) index pointing up
26F9 ; Emoji_Modifier_Base # E0.7 [1] (⛹️) person bouncing ball
@@ -738,15 +776,17 @@
1F9BB ; Emoji_Modifier_Base # E12.0 [1] (🦻) ear with hearing aid
1F9CD..1F9CF ; Emoji_Modifier_Base # E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D1..1F9DD ; Emoji_Modifier_Base # E5.0 [13] (🧑..🧝) person..elf
+1FAC3..1FAC5 ; Emoji_Modifier_Base # E14.0 [3] (🫃..🫅) pregnant man..person with crown
+1FAF0..1FAF6 ; Emoji_Modifier_Base # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8 ; Emoji_Modifier_Base # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
-# Total elements: 122
+# Total elements: 134
# ================================================
-# All omitted code points have Emoji_Component=No
-# @missing: 0000..10FFFF ; Emoji_Component ; No
+# All omitted code points have Emoji_Component=No
-0023 ; Emoji_Component # E0.0 [1] (#️) number sign
+0023 ; Emoji_Component # E0.0 [1] (#️) hash sign
002A ; Emoji_Component # E0.0 [1] (*️) asterisk
0030..0039 ; Emoji_Component # E0.0 [10] (0️..9️) digit zero..digit nine
200D ; Emoji_Component # E0.0 [1] (‍) zero width joiner
@@ -761,8 +801,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
# ================================================
-# All omitted code points have Extended_Pictographic=No
-# @missing: 0000..10FFFF ; Extended_Pictographic ; No
+# All omitted code points have Extended_Pictographic=No
00A9 ; Extended_Pictographic# E0.6 [1] (©️) copyright
00AE ; Extended_Pictographic# E0.6 [1] (®️) registered
@@ -902,8 +941,8 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
2747 ; Extended_Pictographic# E0.6 [1] (❇️) sparkle
274C ; Extended_Pictographic# E0.6 [1] (❌) cross mark
274E ; Extended_Pictographic# E0.6 [1] (❎) cross mark button
-2753..2755 ; Extended_Pictographic# E0.6 [3] (❓..❕) question mark..white exclamation mark
-2757 ; Extended_Pictographic# E0.6 [1] (❗) exclamation mark
+2753..2755 ; Extended_Pictographic# E0.6 [3] (❓..❕) red question mark..white exclamation mark
+2757 ; Extended_Pictographic# E0.6 [1] (❗) red exclamation mark
2763 ; Extended_Pictographic# E1.0 [1] (❣️) heart exclamation
2764 ; Extended_Pictographic# E0.6 [1] (❤️) red heart
2765..2767 ; Extended_Pictographic# E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET
@@ -1041,7 +1080,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F509 ; Extended_Pictographic# E1.0 [1] (🔉) speaker medium volume
1F50A..1F514 ; Extended_Pictographic# E0.6 [11] (🔊..🔔) speaker high volume..bell
1F515 ; Extended_Pictographic# E1.0 [1] (🔕) bell with slash
-1F516..1F52B ; Extended_Pictographic# E0.6 [22] (🔖..🔫) bookmark..pistol
+1F516..1F52B ; Extended_Pictographic# E0.6 [22] (🔖..🔫) bookmark..water pistol
1F52C..1F52D ; Extended_Pictographic# E1.0 [2] (🔬..🔭) microscope..telescope
1F52E..1F53D ; Extended_Pictographic# E0.6 [16] (🔮..🔽) crystal ball..downwards button
1F546..1F548 ; Extended_Pictographic# E0.0 [3] (🕆..🕈) WHITE LATIN CROSS..CELTIC CROSS
@@ -1117,7 +1156,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F62E..1F62F ; Extended_Pictographic# E1.0 [2] (😮..😯) face with open mouth..hushed face
1F630..1F633 ; Extended_Pictographic# E0.6 [4] (😰..😳) anxious face with sweat..flushed face
1F634 ; Extended_Pictographic# E1.0 [1] (😴) sleeping face
-1F635 ; Extended_Pictographic# E0.6 [1] (😵) dizzy face
+1F635 ; Extended_Pictographic# E0.6 [1] (😵) face with crossed-out eyes
1F636 ; Extended_Pictographic# E1.0 [1] (😶) face without mouth
1F637..1F640 ; Extended_Pictographic# E0.6 [10] (😷..🙀) face with medical mask..weary cat
1F641..1F644 ; Extended_Pictographic# E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes
@@ -1166,7 +1205,9 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F6D3..1F6D4 ; Extended_Pictographic# E0.0 [2] (🛓..🛔) STUPA..PAGODA
1F6D5 ; Extended_Pictographic# E12.0 [1] (🛕) hindu temple
1F6D6..1F6D7 ; Extended_Pictographic# E13.0 [2] (🛖..🛗) hut..elevator
-1F6D8..1F6DF ; Extended_Pictographic# E0.0 [8] (🛘..🛟) <reserved-1F6D8>..<reserved-1F6DF>
+1F6D8..1F6DB ; Extended_Pictographic# E0.0 [4] (🛘..🛛) <reserved-1F6D8>..<reserved-1F6DB>
+1F6DC ; Extended_Pictographic# E15.0 [1] (🛜) wireless
+1F6DD..1F6DF ; Extended_Pictographic# E14.0 [3] (🛝..🛟) playground slide..ring buoy
1F6E0..1F6E5 ; Extended_Pictographic# E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat
1F6E6..1F6E8 ; Extended_Pictographic# E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE
1F6E9 ; Extended_Pictographic# E0.7 [1] (🛩️) small airplane
@@ -1182,10 +1223,12 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F6FA ; Extended_Pictographic# E12.0 [1] (🛺) auto rickshaw
1F6FB..1F6FC ; Extended_Pictographic# E13.0 [2] (🛻..🛼) pickup truck..roller skate
1F6FD..1F6FF ; Extended_Pictographic# E0.0 [3] (🛽..🛿) <reserved-1F6FD>..<reserved-1F6FF>
-1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) <reserved-1F774>..<reserved-1F77F>
+1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS
1F7D5..1F7DF ; Extended_Pictographic# E0.0 [11] (🟕..🟟) CIRCLED TRIANGLE..<reserved-1F7DF>
1F7E0..1F7EB ; Extended_Pictographic# E12.0 [12] (🟠..🟫) orange circle..brown square
-1F7EC..1F7FF ; Extended_Pictographic# E0.0 [20] (🟬..🟿) <reserved-1F7EC>..<reserved-1F7FF>
+1F7EC..1F7EF ; Extended_Pictographic# E0.0 [4] (🟬..🟯) <reserved-1F7EC>..<reserved-1F7EF>
+1F7F0 ; Extended_Pictographic# E14.0 [1] (🟰) heavy equals sign
+1F7F1..1F7FF ; Extended_Pictographic# E0.0 [15] (🟱..🟿) <reserved-1F7F1>..<reserved-1F7FF>
1F80C..1F80F ; Extended_Pictographic# E0.0 [4] (🠌..🠏) <reserved-1F80C>..<reserved-1F80F>
1F848..1F84F ; Extended_Pictographic# E0.0 [8] (🡈..🡏) <reserved-1F848>..<reserved-1F84F>
1F85A..1F85F ; Extended_Pictographic# E0.0 [6] (🡚..🡟) <reserved-1F85A>..<reserved-1F85F>
@@ -1214,7 +1257,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F972 ; Extended_Pictographic# E13.0 [1] (🥲) smiling face with tear
1F973..1F976 ; Extended_Pictographic# E11.0 [4] (🥳..🥶) partying face..cold face
1F977..1F978 ; Extended_Pictographic# E13.0 [2] (🥷..🥸) ninja..disguised face
-1F979 ; Extended_Pictographic# E0.0 [1] (🥹) <reserved-1F979>
+1F979 ; Extended_Pictographic# E14.0 [1] (🥹) face holding back tears
1F97A ; Extended_Pictographic# E11.0 [1] (🥺) pleading face
1F97B ; Extended_Pictographic# E12.0 [1] (🥻) sari
1F97C..1F97F ; Extended_Pictographic# E11.0 [4] (🥼..🥿) lab coat..flat shoe
@@ -1232,28 +1275,44 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c
1F9C1..1F9C2 ; Extended_Pictographic# E11.0 [2] (🧁..🧂) cupcake..salt
1F9C3..1F9CA ; Extended_Pictographic# E12.0 [8] (🧃..🧊) beverage box..ice
1F9CB ; Extended_Pictographic# E13.0 [1] (🧋) bubble tea
-1F9CC ; Extended_Pictographic# E0.0 [1] (🧌) <reserved-1F9CC>
+1F9CC ; Extended_Pictographic# E14.0 [1] (🧌) troll
1F9CD..1F9CF ; Extended_Pictographic# E12.0 [3] (🧍..🧏) person standing..deaf person
1F9D0..1F9E6 ; Extended_Pictographic# E5.0 [23] (🧐..🧦) face with monocle..socks
1F9E7..1F9FF ; Extended_Pictographic# E11.0 [25] (🧧..🧿) red envelope..nazar amulet
1FA00..1FA6F ; Extended_Pictographic# E0.0 [112] (🨀..🩯) NEUTRAL CHESS KING..<reserved-1FA6F>
1FA70..1FA73 ; Extended_Pictographic# E12.0 [4] (🩰..🩳) ballet shoes..shorts
1FA74 ; Extended_Pictographic# E13.0 [1] (🩴) thong sandal
-1FA75..1FA77 ; Extended_Pictographic# E0.0 [3] (🩵..🩷) <reserved-1FA75>..<reserved-1FA77>
+1FA75..1FA77 ; Extended_Pictographic# E15.0 [3] (🩵..🩷) light blue heart..pink heart
1FA78..1FA7A ; Extended_Pictographic# E12.0 [3] (🩸..🩺) drop of blood..stethoscope
-1FA7B..1FA7F ; Extended_Pictographic# E0.0 [5] (🩻..🩿) <reserved-1FA7B>..<reserved-1FA7F>
+1FA7B..1FA7C ; Extended_Pictographic# E14.0 [2] (🩻..🩼) x-ray..crutch
+1FA7D..1FA7F ; Extended_Pictographic# E0.0 [3] (🩽..🩿) <reserved-1FA7D>..<reserved-1FA7F>
1FA80..1FA82 ; Extended_Pictographic# E12.0 [3] (🪀..🪂) yo-yo..parachute
1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls
-1FA87..1FA8F ; Extended_Pictographic# E0.0 [9] (🪇..🪏) <reserved-1FA87>..<reserved-1FA8F>
+1FA87..1FA88 ; Extended_Pictographic# E15.0 [2] (🪇..🪈) maracas..flute
+1FA89..1FA8F ; Extended_Pictographic# E0.0 [7] (🪉..🪏) <reserved-1FA89>..<reserved-1FA8F>
1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo
1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock
-1FAA9..1FAAF ; Extended_Pictographic# E0.0 [7] (🪩..🪯) <reserved-1FAA9>..<reserved-1FAAF>
+1FAA9..1FAAC ; Extended_Pictographic# E14.0 [4] (🪩..🪬) mirror ball..hamsa
+1FAAD..1FAAF ; Extended_Pictographic# E15.0 [3] (🪭..🪯) folding hand fan..khanda
1FAB0..1FAB6 ; Extended_Pictographic# E13.0 [7] (🪰..🪶) fly..feather
-1FAB7..1FABF ; Extended_Pictographic# E0.0 [9] (🪷..🪿) <reserved-1FAB7>..<reserved-1FABF>
+1FAB7..1FABA ; Extended_Pictographic# E14.0 [4] (🪷..🪺) lotus..nest with eggs
+1FABB..1FABD ; Extended_Pictographic# E15.0 [3] (🪻..🪽) hyacinth..wing
+1FABE ; Extended_Pictographic# E0.0 [1] (🪾) <reserved-1FABE>
+1FABF ; Extended_Pictographic# E15.0 [1] (🪿) goose
1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging
-1FAC3..1FACF ; Extended_Pictographic# E0.0 [13] (🫃..🫏) <reserved-1FAC3>..<reserved-1FACF>
+1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown
+1FAC6..1FACD ; Extended_Pictographic# E0.0 [8] (🫆..🫍) <reserved-1FAC6>..<reserved-1FACD>
+1FACE..1FACF ; Extended_Pictographic# E15.0 [2] (🫎..🫏) moose..donkey
1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot
-1FAD7..1FAFF ; Extended_Pictographic# E0.0 [41] (🫗..🫿) <reserved-1FAD7>..<reserved-1FAFF>
+1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar
+1FADA..1FADB ; Extended_Pictographic# E15.0 [2] (🫚..🫛) ginger root..pea pod
+1FADC..1FADF ; Extended_Pictographic# E0.0 [4] (🫜..🫟) <reserved-1FADC>..<reserved-1FADF>
+1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles
+1FAE8 ; Extended_Pictographic# E15.0 [1] (🫨) shaking face
+1FAE9..1FAEF ; Extended_Pictographic# E0.0 [7] (🫩..🫯) <reserved-1FAE9>..<reserved-1FAEF>
+1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands
+1FAF7..1FAF8 ; Extended_Pictographic# E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand
+1FAF9..1FAFF ; Extended_Pictographic# E0.0 [7] (🫹..🫿) <reserved-1FAF9>..<reserved-1FAFF>
1FC00..1FFFD ; Extended_Pictographic# E0.0[1022] (🰀..🿽) <reserved-1FC00>..<reserved-1FFFD>
# Total elements: 3537
diff --git a/util/unicode/main.cpp b/util/unicode/main.cpp
index e40acffd5c..fb308b7dc0 100644
--- a/util/unicode/main.cpp
+++ b/util/unicode/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2020 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <qbytearray.h>
#include <qchar.h>
@@ -33,12 +8,14 @@
#include <qhash.h>
#include <qlist.h>
#include <qstring.h>
+#include <qbitarray.h>
+#include <private/qstringiterator_p.h>
#if 0
#include <private/qunicodetables_p.h>
#endif
-#define DATA_VERSION_S "13.0"
-#define DATA_VERSION_STR "QChar::Unicode_13_0"
+#define DATA_VERSION_S "15.1"
+#define DATA_VERSION_STR "QChar::Unicode_15_1"
static QHash<QByteArray, QChar::UnicodeVersion> age_map;
@@ -72,6 +49,9 @@ static void initAgeMap()
{ QChar::Unicode_12_0, "12.0" },
{ QChar::Unicode_12_1, "12.1" }, // UCD Revision 24
{ QChar::Unicode_13_0, "13.0" }, // UCD Revision 26
+ { QChar::Unicode_14_0, "14.0" }, // UCD Revision 28
+ { QChar::Unicode_15_0, "15.0" }, // UCD Revision 30
+ { QChar::Unicode_15_1, "15.1" }, // UCD Revision 32
{ QChar::Unicode_Unassigned, 0 }
};
AgeMap *d = ageMap;
@@ -81,6 +61,47 @@ static void initAgeMap()
}
}
+static const char *east_asian_width_string =
+R"(enum class EastAsianWidth : unsigned int {
+ A,
+ F,
+ H,
+ N,
+ Na,
+ W,
+};
+
+)";
+
+enum class EastAsianWidth : unsigned int {
+ A,
+ F,
+ H,
+ N,
+ Na,
+ W,
+};
+
+static QHash<QByteArray, EastAsianWidth> eastAsianWidthMap;
+
+static void initEastAsianWidthMap()
+{
+ constexpr struct W {
+ EastAsianWidth width;
+ const char *name;
+ } widths[] = {
+ { EastAsianWidth::A, "A" },
+ { EastAsianWidth::F, "F" },
+ { EastAsianWidth::H, "H" },
+ { EastAsianWidth::N, "N" },
+ { EastAsianWidth::Na, "Na" },
+ { EastAsianWidth::W, "W" },
+ };
+
+ for (auto &w : widths)
+ eastAsianWidthMap.insert(w.name, w.width);
+}
+
static QHash<QByteArray, QChar::Category> categoryMap;
static void initCategoryMap()
@@ -368,10 +389,6 @@ static const char *word_break_class_string =
" WordBreak_MidNum,\n"
" WordBreak_Numeric,\n"
" WordBreak_ExtendNumLet,\n"
- " WordBreak_E_Base,\n"
- " WordBreak_E_Modifier,\n"
- " WordBreak_Glue_After_Zwj,\n"
- " WordBreak_E_Base_GAZ,\n"
" WordBreak_WSegSpace,\n"
"\n"
" NumWordBreakClasses\n"
@@ -396,10 +413,6 @@ enum WordBreakClass {
WordBreak_MidNum,
WordBreak_Numeric,
WordBreak_ExtendNumLet,
- WordBreak_E_Base,
- WordBreak_E_Modifier,
- WordBreak_Glue_After_Zwj,
- WordBreak_E_Base_GAZ,
WordBreak_WSegSpace,
WordBreak_Unassigned
@@ -431,10 +444,6 @@ static void initWordBreak()
{ WordBreak_MidNum, "MidNum" },
{ WordBreak_Numeric, "Numeric" },
{ WordBreak_ExtendNumLet, "ExtendNumLet" },
- { WordBreak_E_Base, "E_Base" },
- { WordBreak_E_Modifier, "E_Modifier" },
- { WordBreak_Glue_After_Zwj, "Glue_After_Zwj" },
- { WordBreak_E_Base_GAZ, "E_Base_GAZ" },
{ WordBreak_WSegSpace, "WSegSpace" },
{ WordBreak_Unassigned, 0 }
};
@@ -520,9 +529,11 @@ static void initSentenceBreak()
static const char *line_break_class_string =
"// see http://www.unicode.org/reports/tr14/tr14-30.html\n"
- "// we don't use the XX and AI classes and map them to AL instead.\n"
+ "// we don't use the XX, AK, AP, AS and AI classes and map them to AL instead.\n"
+ "// VI and VF classes are mapped to CM.\n"
"enum LineBreakClass {\n"
- " LineBreak_OP, LineBreak_CL, LineBreak_CP, LineBreak_QU, LineBreak_GL,\n"
+ " LineBreak_OP, LineBreak_CL, LineBreak_CP,\n"
+ " LineBreak_QU, LineBreak_QU_Pi, LineBreak_QU_Pf, LineBreak_GL,\n"
" LineBreak_NS, LineBreak_EX, LineBreak_SY, LineBreak_IS, LineBreak_PR,\n"
" LineBreak_PO, LineBreak_NU, LineBreak_AL, LineBreak_HL, LineBreak_ID,\n"
" LineBreak_IN, LineBreak_HY, LineBreak_BA, LineBreak_BB, LineBreak_B2,\n"
@@ -536,7 +547,8 @@ static const char *line_break_class_string =
"};\n\n";
enum LineBreakClass {
- LineBreak_OP, LineBreak_CL, LineBreak_CP, LineBreak_QU, LineBreak_GL,
+ LineBreak_OP, LineBreak_CL, LineBreak_CP,
+ LineBreak_QU, LineBreak_QU_Pi, LineBreak_QU_Pf, LineBreak_GL,
LineBreak_NS, LineBreak_EX, LineBreak_SY, LineBreak_IS, LineBreak_PR,
LineBreak_PO, LineBreak_NU, LineBreak_AL, LineBreak_HL, LineBreak_ID,
LineBreak_IN, LineBreak_HY, LineBreak_BA, LineBreak_BB, LineBreak_B2,
@@ -604,6 +616,11 @@ static void initLineBreak()
{ LineBreak_EB, "EB" },
{ LineBreak_EM, "EM" },
{ LineBreak_ZWJ, "ZWJ" },
+ { LineBreak_AL, "AK" },
+ { LineBreak_AL, "AP" },
+ { LineBreak_AL, "AS" },
+ { LineBreak_CM, "VI" },
+ { LineBreak_CM, "VF" },
{ LineBreak_Unassigned, 0 }
};
LineBreakList *d = breaks;
@@ -795,6 +812,17 @@ static void initScriptMap()
{ QChar::Script_KhitanSmallScript, "KhitanSmallScript" },
{ QChar::Script_Yezidi, "Yezidi" },
+ // 14.0
+ { QChar::Script_CyproMinoan, "CyproMinoan"},
+ { QChar::Script_OldUyghur, "OldUyghur"},
+ { QChar::Script_Tangsa, "Tangsa"},
+ { QChar::Script_Toto, "Toto"},
+ { QChar::Script_Vithkuqi, "Vithkuqi"},
+
+ // 15.0
+ { QChar::Script_Kawi, "Kawi"},
+ { QChar::Script_NagMundari, "NagMundari"},
+
// unhandled
{ QChar::Script_Unknown, 0 }
};
@@ -805,6 +833,59 @@ static void initScriptMap()
}
}
+// IDNA status as present int the data file
+enum class IdnaRawStatus : unsigned int {
+ Disallowed,
+ Valid,
+ Ignored,
+ Mapped,
+ Deviation,
+ DisallowedStd3Valid,
+ DisallowedStd3Mapped,
+};
+
+static QHash<QByteArray, IdnaRawStatus> idnaStatusMap;
+
+static void initIdnaStatusMap()
+{
+ struct {
+ IdnaRawStatus status;
+ const char *name;
+ } data[] = {
+ {IdnaRawStatus::Disallowed, "disallowed"},
+ {IdnaRawStatus::Valid, "valid"},
+ {IdnaRawStatus::Ignored, "ignored"},
+ {IdnaRawStatus::Mapped, "mapped"},
+ {IdnaRawStatus::Deviation, "deviation"},
+ {IdnaRawStatus::DisallowedStd3Valid, "disallowed_STD3_valid"},
+ {IdnaRawStatus::DisallowedStd3Mapped, "disallowed_STD3_mapped"},
+ };
+
+ for (const auto &entry : data)
+ idnaStatusMap[entry.name] = entry.status;
+}
+
+static const char *idna_status_string =
+ "enum class IdnaStatus : unsigned int {\n"
+ " Disallowed,\n"
+ " Valid,\n"
+ " Ignored,\n"
+ " Mapped,\n"
+ " Deviation\n"
+ "};\n\n";
+
+// Resolved IDNA status as it goes into the database.
+// Qt extends host name validity rules to allow underscores
+// NOTE: The members here should come in the same order and have the same values
+// as in IdnaRawStatus
+enum class IdnaStatus : unsigned int {
+ Disallowed,
+ Valid,
+ Ignored,
+ Mapped,
+ Deviation,
+};
+
// Keep this one in sync with the code in createPropertyInfo
static const char *property_string =
"enum Case {\n"
@@ -823,7 +904,8 @@ static const char *property_string =
" ushort joining : 3;\n"
" signed short digitValue : 5;\n"
" signed short mirrorDiff : 16;\n"
- " ushort unicodeVersion : 8; /* 5 used */\n"
+ " ushort unicodeVersion : 5; /* 5 used */\n"
+ " ushort eastAsianWidth : 3; /* 3 used */\n"
" ushort nfQuickCheck : 8;\n" // could be narrowed
"#ifdef Q_OS_WASM\n"
" unsigned char : 0; //wasm 64 packing trick\n"
@@ -838,7 +920,8 @@ static const char *property_string =
" ushort graphemeBreakClass : 5; /* 5 used */\n"
" ushort wordBreakClass : 5; /* 5 used */\n"
" ushort lineBreakClass : 6; /* 6 used */\n"
- " ushort sentenceBreakClass : 8; /* 4 used */\n"
+ " ushort sentenceBreakClass : 4; /* 4 used */\n"
+ " ushort idnaStatus : 4; /* 3 used */\n"
" ushort script : 8;\n"
"};\n\n"
"Q_CORE_EXPORT const Properties * QT_FASTCALL properties(char32_t ucs4) noexcept;\n"
@@ -861,6 +944,18 @@ static const char *methods =
"Q_CORE_EXPORT LineBreakClass QT_FASTCALL lineBreakClass(char32_t ucs4) noexcept;\n"
"inline LineBreakClass lineBreakClass(QChar ch) noexcept\n"
"{ return lineBreakClass(ch.unicode()); }\n"
+ "\n"
+ "Q_CORE_EXPORT IdnaStatus QT_FASTCALL idnaStatus(char32_t ucs4) noexcept;\n"
+ "inline IdnaStatus idnaStatus(QChar ch) noexcept\n"
+ "{ return idnaStatus(ch.unicode()); }\n"
+ "\n"
+ "Q_CORE_EXPORT QStringView QT_FASTCALL idnaMapping(char32_t usc4) noexcept;\n"
+ "inline QStringView idnaMapping(QChar ch) noexcept\n"
+ "{ return idnaMapping(ch.unicode()); }\n"
+ "\n"
+ "Q_CORE_EXPORT EastAsianWidth QT_FASTCALL eastAsianWidth(char32_t ucs4) noexcept;\n"
+ "inline EastAsianWidth eastAsianWidth(QChar ch) noexcept\n"
+ "{ return eastAsianWidth(ch.unicode()); }\n"
"\n";
static const int SizeOfPropertiesStruct = 20;
@@ -883,6 +978,7 @@ struct PropertyFlags {
&& direction == o.direction
&& joining == o.joining
&& age == o.age
+ && eastAsianWidth == o.eastAsianWidth
&& digitValue == o.digitValue
&& mirrorDiff == o.mirrorDiff
&& lowerCaseDiff == o.lowerCaseDiff
@@ -899,6 +995,7 @@ struct PropertyFlags {
&& lineBreakClass == o.lineBreakClass
&& script == o.script
&& nfQuickCheck == o.nfQuickCheck
+ && idnaStatus == o.idnaStatus
);
}
// from UnicodeData.txt
@@ -909,6 +1006,8 @@ struct PropertyFlags {
QChar::JoiningType joining : 3;
// from DerivedAge.txt
QChar::UnicodeVersion age : 5;
+ // From EastAsianWidth.txt
+ EastAsianWidth eastAsianWidth = EastAsianWidth::N;
int digitValue = -1;
int mirrorDiff : 16;
@@ -928,6 +1027,7 @@ struct PropertyFlags {
int script = QChar::Script_Unknown;
// from DerivedNormalizationProps.txt
uchar nfQuickCheck = 0;
+ IdnaStatus idnaStatus = IdnaStatus::Disallowed;
};
@@ -1082,6 +1182,8 @@ struct UnicodeData {
// computed position of unicode property set
int propertyIndex = -1;
+
+ IdnaRawStatus idnaRawStatus = IdnaRawStatus::Disallowed;
};
static QList<UnicodeData> unicodeData;
@@ -1444,6 +1546,52 @@ static void readDerivedAge()
}
}
+static void readEastAsianWidth()
+{
+ qDebug("Reading EastAsianWidth.txt");
+
+ QFile f("data/EastAsianWidth.txt");
+ if (!f.exists() || !f.open(QFile::ReadOnly))
+ qFatal("Couldn't find or read EastAsianWidth.txt");
+
+ while (!f.atEnd()) {
+ QByteArray line = f.readLine().trimmed();
+
+ int comment = line.indexOf('#');
+ line = (comment < 0 ? line : line.left(comment)).simplified();
+
+ if (line.isEmpty())
+ continue;
+
+ QList<QByteArray> fields = line.split(';');
+ Q_ASSERT(fields.size() == 2);
+
+ // That would be split(".."), but that API does not exist.
+ const QByteArray codePoints = fields[0].trimmed().replace("..", ".");
+ QList<QByteArray> cl = codePoints.split('.');
+ Q_ASSERT(cl.size() >= 1 && cl.size() <= 2);
+
+ const QByteArray widthString = fields[1].trimmed();
+ if (!eastAsianWidthMap.contains(widthString)) {
+ qFatal("Unhandled EastAsianWidth property value for %s: %s",
+ qPrintable(codePoints), qPrintable(widthString));
+ }
+ auto width = eastAsianWidthMap.value(widthString);
+
+ bool ok;
+ const int first = cl[0].toInt(&ok, 16);
+ const int last = ok && cl.size() == 2 ? cl[1].toInt(&ok, 16) : first;
+ Q_ASSERT(ok);
+
+ for (int codepoint = first; codepoint <= last; ++codepoint) {
+ UnicodeData &ud = UnicodeData::valueRef(codepoint);
+ // Ensure that ranges don't overlap.
+ Q_ASSERT(ud.p.eastAsianWidth == EastAsianWidth::N);
+ ud.p.eastAsianWidth = width;
+ }
+ }
+}
+
static void readDerivedNormalizationProps()
{
qDebug("Reading DerivedNormalizationProps.txt");
@@ -1571,7 +1719,7 @@ static QByteArray createNormalizationCorrections()
" int version;\n"
"};\n\n"
- "static const NormalizationCorrection uc_normalization_corrections[] = {\n";
+ "static constexpr NormalizationCorrection uc_normalization_corrections[] = {\n";
int maxVersion = 0;
int numCorrections = 0;
@@ -2292,6 +2440,367 @@ static void readScripts()
}
}
+static QMap<char32_t, QString> idnaMappingTable;
+
+static void readIdnaMappingTable()
+{
+ qDebug("Reading IdnaMappingTable.txt");
+
+ QFile f("data/IdnaMappingTable.txt");
+ if (!f.exists() || !f.open(QFile::ReadOnly))
+ qFatal("Couldn't find or read IdnaMappingTable.txt");
+
+ while (!f.atEnd()) {
+ QByteArray line = f.readLine().trimmed();
+
+ int comment = line.indexOf('#');
+ line = (comment < 0 ? line : line.left(comment)).simplified();
+
+ if (line.isEmpty())
+ continue;
+
+ QList<QByteArray> fields = line.split(';');
+ Q_ASSERT(fields.size() >= 2);
+
+ // That would be split(".."), but that API does not exist.
+ const QByteArray codePoints = fields[0].trimmed().replace("..", ".");
+ QList<QByteArray> cl = codePoints.split('.');
+ Q_ASSERT(cl.size() >= 1 && cl.size() <= 2);
+
+ const QByteArray statusString = fields[1].trimmed();
+ if (!idnaStatusMap.contains(statusString))
+ qFatal("Unhandled IDNA status property value for %s: %s",
+ qPrintable(codePoints), qPrintable(statusString));
+ IdnaRawStatus rawStatus = idnaStatusMap.value(statusString);
+
+ bool ok;
+ const int first = cl[0].toInt(&ok, 16);
+ const int last = ok && cl.size() == 2 ? cl[1].toInt(&ok, 16) : first;
+ Q_ASSERT(ok);
+
+ QString mapping;
+
+ switch (rawStatus) {
+ case IdnaRawStatus::Disallowed:
+ case IdnaRawStatus::Valid:
+ case IdnaRawStatus::Ignored:
+ case IdnaRawStatus::DisallowedStd3Valid:
+ break;
+
+ case IdnaRawStatus::Mapped:
+ case IdnaRawStatus::Deviation:
+ case IdnaRawStatus::DisallowedStd3Mapped:
+ Q_ASSERT(fields.size() >= 3);
+
+ for (const auto &s : fields[2].trimmed().split(' ')) {
+ if (!s.isEmpty()) {
+ bool ok;
+ int val = s.toInt(&ok, 16);
+ Q_ASSERT_X(ok, "readIdnaMappingTable", qPrintable(line));
+ for (auto c : QChar::fromUcs4(val))
+ mapping.append(c);
+ }
+ }
+
+ // Some deviations have empty mappings, others should not...
+ if (mapping.isEmpty()) {
+ Q_ASSERT(rawStatus == IdnaRawStatus::Deviation);
+ qDebug() << " Empty IDNA mapping for" << codePoints;
+ }
+
+ break;
+ }
+
+ for (int codepoint = first; codepoint <= last; ++codepoint) {
+ UnicodeData &ud = UnicodeData::valueRef(codepoint);
+ // Ensure that ranges don't overlap.
+ Q_ASSERT(ud.idnaRawStatus == IdnaRawStatus::Disallowed);
+ ud.idnaRawStatus = rawStatus;
+
+ // ASCII codepoints are skipped here because they are processed in separate
+ // optimized code paths that do not use this mapping table.
+ if (codepoint >= 0x80 && !mapping.isEmpty())
+ idnaMappingTable[codepoint] = mapping;
+ }
+ }
+}
+
+/*
+ Resolve IDNA status by deciding whether to allow STD3 violations
+
+ Underscores are normally prohibited by STD3 rules but Qt allows underscores
+ to be used inside URLs (see QTBUG-7434 for example). This code changes the
+ underscore status to Valid. The same is done to mapped codepoints that
+ map to underscores combined with other Valid codepoints.
+
+ Underscores in domain names are required when using DNS-SD protocol and they
+ are also allowed by the SMB protocol.
+*/
+static void resolveIdnaStatus()
+{
+ qDebug("resolveIdnaStatus:");
+
+ UnicodeData::valueRef(u'_').idnaRawStatus = IdnaRawStatus::Valid;
+
+ for (int codepoint = 0; codepoint <= QChar::LastValidCodePoint; ++codepoint) {
+ UnicodeData &ud = UnicodeData::valueRef(codepoint);
+ switch (ud.idnaRawStatus) {
+ case IdnaRawStatus::Disallowed:
+ case IdnaRawStatus::Valid:
+ case IdnaRawStatus::Ignored:
+ case IdnaRawStatus::Deviation:
+ case IdnaRawStatus::Mapped:
+ ud.p.idnaStatus = static_cast<IdnaStatus>(ud.idnaRawStatus);
+ break;
+ case IdnaRawStatus::DisallowedStd3Valid:
+ ud.p.idnaStatus = IdnaStatus::Disallowed;
+ break;
+ case IdnaRawStatus::DisallowedStd3Mapped: {
+ Q_ASSERT(idnaMappingTable.contains(codepoint));
+ const auto &mapping = idnaMappingTable[codepoint];
+
+ bool allow = true;
+ for (QStringIterator iter(mapping); iter.hasNext();) {
+ if (UnicodeData::valueRef(iter.next()).idnaRawStatus != IdnaRawStatus::Valid) {
+ allow = false;
+ break;
+ }
+ }
+
+ if (allow) {
+ qDebug() << " Allowing" << Qt::hex << codepoint;
+ ud.p.idnaStatus = IdnaStatus::Mapped;
+ } else {
+ ud.p.idnaStatus = IdnaStatus::Disallowed;
+ idnaMappingTable.remove(codepoint);
+ }
+ break;
+ }
+ }
+ }
+}
+
+/*
+ Return maximum overlap for strings left and right in this order.
+
+ The input strings should not be substrings of each other.
+*/
+static qsizetype overlap(const QString &left, const QString &right)
+{
+ for (qsizetype n = std::min(left.size(), right.size()) - 1; n > 0; n--) {
+ if (left.last(n) == right.first(n))
+ return n;
+ }
+ return 0;
+}
+
+using GraphNode = unsigned int;
+
+struct OverlapGraphEdge
+{
+ GraphNode start;
+ GraphNode end;
+ qsizetype overlap;
+};
+
+/*
+ Returns a common superstring of all inputs.
+
+ Ideally this function would return the superstring of the smallest
+ possible size, but the shortest common superstring problem is know to be
+ NP-hard so an approximation must be used here.
+
+ This function implements the greedy algorithm for building the superstring.
+
+ As an optimization this function is allowed to destroy its inputs.
+*/
+static QString buildSuperstring(QList<QString> &inputs)
+{
+ // Ensure that the inputs don't contain substrings.
+ // First, sort the array by length to make substring removal easier.
+ std::sort(inputs.begin(), inputs.end(), [](const QString &a, const QString &b) {
+ return a.size() == b.size() ? a > b : a.size() > b.size();
+ });
+
+ // Remove duplicates and other substrings
+ for (auto i = inputs.begin() + 1; i != inputs.end();) {
+ bool isSubstring = std::any_of(inputs.begin(), i, [i](const QString &s) {
+ return s.contains(*i);
+ });
+ i = isSubstring ? inputs.erase(i) : i + 1;
+ }
+
+ // Build overlap graph for the remaining inputs. It is fully-connected.
+ QList<OverlapGraphEdge> graphEdges;
+ graphEdges.reserve(inputs.size() * (inputs.size() - 1));
+
+ for (GraphNode i = 0; i < inputs.size(); i++) {
+ for (GraphNode j = 0; j < inputs.size(); j++) {
+ if (i != j)
+ graphEdges.append(OverlapGraphEdge {i, j, overlap(inputs[i], inputs[j])});
+ }
+ }
+
+ // Build a Hamiltonian path through the overlap graph, taking nodes with highest overlap
+ // first.
+ std::sort(graphEdges.begin(), graphEdges.end(), [](const auto &a, const auto &b) {
+ return a.overlap == b.overlap
+ ? a.start == b.start ? a.end < b.end : a.start < b.start
+ : a.overlap > b.overlap;
+ });
+
+ QBitArray starts(inputs.size());
+ QBitArray ends(inputs.size());
+ QMap<GraphNode, OverlapGraphEdge> pathEdges;
+
+ auto createsCycle = [&](const OverlapGraphEdge &edge) {
+ if (!starts[edge.end] || !ends[edge.start])
+ return false;
+ Q_ASSERT(!pathEdges.contains(edge.start)); // Caller checks it's not yet a start.
+
+ GraphNode node = edge.end;
+ while (pathEdges.contains(node))
+ node = pathEdges[node].end;
+
+ return node == edge.start;
+ };
+
+ for (const auto &edge : graphEdges) {
+ if (!starts[edge.start] && !ends[edge.end] && !createsCycle(edge)) {
+ starts.setBit(edge.start);
+ ends.setBit(edge.end);
+ pathEdges[edge.start] = edge;
+ if (pathEdges.size() == inputs.size() - 1)
+ break;
+ }
+ }
+
+ Q_ASSERT(ends.count(false) == 1);
+ Q_ASSERT(starts.count(false) == 1);
+
+ // Find the start node of the path.
+ GraphNode node = 0;
+ while (node < ends.size() && ends[node])
+ node++;
+ Q_ASSERT(node < ends.size());
+
+ QString superstring = inputs[node];
+ qsizetype pathNodes = 1; // Count path nodes for sanity check
+
+ while (pathEdges.contains(node)) {
+ const auto &edge = pathEdges[node];
+ Q_ASSERT(edge.start == node);
+
+ superstring.append(QStringView { inputs[edge.end] }.sliced(edge.overlap));
+
+ node = edge.end;
+ pathNodes++;
+ }
+ Q_ASSERT(pathNodes == inputs.size());
+
+ return superstring;
+}
+
+/*
+ Stores IDNA mapping information.
+
+ The mapping table is an array of IdnaMapEntry instances sorted
+ by codePoint. For mapping resulting in a single QChar, that character
+ is stored inside the entry in charOrOffset. Otherwise the entry contains
+ offset inside idnaMappingData array.
+
+ It should be possible to find all mapped strings with size > 1 inside
+ idnaMappingData, otherwise the construction of this array should be optimized
+ to take advantage of common substrings and minimize the data size.
+*/
+static QByteArray createIdnaMapping()
+{
+ qDebug("createIdnaMapping:");
+
+ QList<QString> values;
+ values.reserve(idnaMappingTable.size());
+ qsizetype uncompressedSize = 0;
+
+ for (const auto &v : idnaMappingTable.values()) {
+ if (v.size() > 2) {
+ values.append(v);
+ uncompressedSize += v.size();
+ }
+ }
+
+ QString idnaMappingData = buildSuperstring(values);
+ qDebug() << " uncompressed size:" << uncompressedSize << "characters";
+ qDebug() << " consolidated size:" << idnaMappingData.size() << "characters";
+
+ qsizetype memoryUsage = 0;
+
+ QByteArray out =
+ "static constexpr char16_t idnaMappingData[] = {";
+
+ int col = 0;
+ for (auto c : idnaMappingData) {
+ if (col == 0)
+ out += "\n ";
+ out += " 0x" + QByteArray::number(c.unicode(), 16) + ",";
+ col = (col + 1) % 12;
+ memoryUsage += 2;
+ }
+ out += "\n};\n\n";
+
+ // Check if the values fit into IdnaMapEntry below.
+ Q_ASSERT(idnaMappingData.size() < (1 << 16));
+
+ // This could be written more elegantly with a union and designated initializers,
+ // but designated initizers is a C++20 feature
+ out +=
+ "struct IdnaMapEntry {\n"
+ " // 21 bits suffice for any valid code-point (LastValidCodePoint = 0x10ffff)\n"
+ " unsigned codePoint : 24;\n"
+ " unsigned size : 8;\n"
+ " char16_t ucs[2]; // ucs[0] is offset if size > 2\n"
+ "};\n"
+ "static_assert(sizeof(IdnaMapEntry) == 8);\n\n"
+ "static constexpr IdnaMapEntry idnaMap[] = {\n";
+
+ for (auto i = idnaMappingTable.keyValueBegin(); i != idnaMappingTable.keyValueEnd(); i++) {
+ const QString &mapping = i->second;
+ Q_ASSERT(!mapping.isEmpty());
+
+ qsizetype mappingIndex = idnaMappingData.indexOf(mapping);
+ Q_ASSERT(mappingIndex >= 0 || mapping.size() <= 2);
+
+ out += " { 0x" + QByteArray::number(i->first, 16) +
+ ", " + QByteArray::number(mapping.size());
+ if (mapping.size() <= 2) {
+ out += ", { 0x" + QByteArray::number(mapping[0].unicode(), 16);
+ if (mapping.size() == 2)
+ out += ", 0x" + QByteArray::number(mapping[1].unicode(), 16);
+ else
+ out += ", 0";
+ } else {
+ out += ", { " + QByteArray::number(mappingIndex);
+ out += ", 0";
+ }
+ out += " } },\n";
+ memoryUsage += 8;
+ }
+
+ qDebug() << " memory usage:" << memoryUsage << "bytes";
+
+ out +=
+ "};\n\n"
+ "Q_CORE_EXPORT QStringView QT_FASTCALL idnaMapping(char32_t ucs4) noexcept\n"
+ "{\n"
+ " auto i = std::lower_bound(std::begin(idnaMap), std::end(idnaMap), ucs4,\n"
+ " [](const auto &p, char32_t c) { return p.codePoint < c; });\n"
+ " if (i == std::end(idnaMap) || i->codePoint != ucs4)\n"
+ " return {};\n\n"
+ " return QStringView(i->size > 2 ? idnaMappingData + i->ucs[0] : i->ucs, i->size);\n"
+ "}\n\n";
+
+ return out;
+}
+
#if 0
static void dump(int from, int to)
{
@@ -2420,7 +2929,7 @@ static QByteArray createPropertyInfo()
Q_ASSERT(blockMap.size() == BMP_END/BMP_BLOCKSIZE +(SMP_END-BMP_END)/SMP_BLOCKSIZE); // 0x1870
Q_ASSERT(blockMap.last() + blockMap.size() < (1<<(sizeof(unsigned short)*8)));
- QByteArray out = "static const unsigned short uc_property_trie[] = {\n";
+ QByteArray out = "static constexpr unsigned short uc_property_trie[] = {\n";
// First write the map from blockId to indices of unique blocks:
out += " // [0x0..0x" + QByteArray::number(BMP_END, 16) + ")";
for (int i = 0; i < BMP_END/BMP_BLOCKSIZE; ++i) {
@@ -2473,7 +2982,7 @@ static QByteArray createPropertyInfo()
out.chop(2);
out += "\n};\n\n";
- out += "static const Properties uc_properties[] = {";
+ out += "static constexpr Properties uc_properties[] = {";
// keep in sync with the property declaration
for (int i = 0; i < uniqueProperties.size(); ++i) {
const PropertyFlags &p = uniqueProperties.at(i);
@@ -2496,9 +3005,12 @@ static QByteArray createPropertyInfo()
// " signed short mirrorDiff : 16;\n"
out += QByteArray::number( p.mirrorDiff );
out += ", ";
-// " ushort unicodeVersion : 8; /* 5 used */\n"
+// " ushort unicodeVersion : 5; /* 5 used */\n"
out += QByteArray::number( p.age );
out += ", ";
+// " ushort eastAsianWidth : 3;" /* 3 used */\n"
+ out += QByteArray::number( static_cast<unsigned int>(p.eastAsianWidth) );
+ out += ", ";
// " ushort nfQuickCheck : 8;\n"
out += QByteArray::number( p.nfQuickCheck );
out += ", ";
@@ -2532,9 +3044,12 @@ static QByteArray createPropertyInfo()
out += ", ";
out += QByteArray::number( p.lineBreakClass );
out += ", ";
-// " ushort sentenceBreakClass : 8; /* 4 used */\n"
+// " ushort sentenceBreakClass : 4; /* 4 used */\n"
out += QByteArray::number( p.sentenceBreakClass );
out += ", ";
+// " ushort idnaStatus : 4; /* 3 used */\n"
+ out += QByteArray::number( static_cast<unsigned int>(p.idnaStatus) );
+ out += ", ";
// " ushort script : 8;\n"
out += QByteArray::number( p.script );
out += " },";
@@ -2595,6 +3110,16 @@ static QByteArray createPropertyInfo()
"{\n"
" return static_cast<LineBreakClass>(qGetProp(ucs4)->lineBreakClass);\n"
"}\n"
+ "\n"
+ "Q_CORE_EXPORT IdnaStatus QT_FASTCALL idnaStatus(char32_t ucs4) noexcept\n"
+ "{\n"
+ " return static_cast<IdnaStatus>(qGetProp(ucs4)->idnaStatus);\n"
+ "}\n"
+ "\n"
+ "Q_CORE_EXPORT EastAsianWidth QT_FASTCALL eastAsianWidth(char32_t ucs4) noexcept\n"
+ "{\n"
+ " return static_cast<EastAsianWidth>(qGetProp(ucs4)->eastAsianWidth);\n"
+ "}\n"
"\n";
return out;
@@ -2605,7 +3130,7 @@ static QByteArray createSpecialCaseMap()
qDebug("createSpecialCaseMap:");
QByteArray out
- = "static const unsigned short specialCaseMap[] = {\n"
+ = "static constexpr unsigned short specialCaseMap[] = {\n"
" 0x0, // placeholder";
int i = 1;
@@ -2621,7 +3146,7 @@ static QByteArray createSpecialCaseMap()
maxN = std::max(maxN, n);
}
out.chop(1);
- out += "\n};\n\nconst unsigned int MaxSpecialCaseLength = ";
+ out += "\n};\n\nconstexpr unsigned int MaxSpecialCaseLength = ";
out += QByteArray::number(maxN);
out += ";\n\n";
@@ -2753,7 +3278,7 @@ static QByteArray createCompositionInfo()
Q_ASSERT(blockMap.last() + blockMap.size() < (1<<(sizeof(unsigned short)*8)));
- QByteArray out = "static const unsigned short uc_decomposition_trie[] = {\n";
+ QByteArray out = "static constexpr unsigned short uc_decomposition_trie[] = {\n";
// first write the map
out += " // 0 - 0x" + QByteArray::number(BMP_END, 16);
for (int i = 0; i < BMP_END/BMP_BLOCKSIZE; ++i) {
@@ -2817,7 +3342,7 @@ static QByteArray createCompositionInfo()
+ QByteArray::number(SMP_BLOCKSIZE-1, 16) + ")] \\\n"
" : 0xffff)\n\n";
- out += "static const unsigned short uc_decomposition_map[] = {";
+ out += "static constexpr unsigned short uc_decomposition_map[] = {";
for (int i = 0; i < decompositions.size(); ++i) {
if (!(i % 8)) {
if (out.endsWith(' '))
@@ -2953,7 +3478,7 @@ static QByteArray createLigatureInfo()
Q_ASSERT(blockMap.last() + blockMap.size() < (1<<(sizeof(unsigned short)*8)));
- QByteArray out = "static const unsigned short uc_ligature_trie[] = {\n";
+ QByteArray out = "static constexpr unsigned short uc_ligature_trie[] = {\n";
// first write the map
out += " // 0 - 0x" + QByteArray::number(BMP_END, 16);
for (int i = 0; i < BMP_END/BMP_BLOCKSIZE; ++i) {
@@ -3017,7 +3542,7 @@ static QByteArray createLigatureInfo()
+ QByteArray::number(SMP_BLOCKSIZE-1, 16) + ")] \\\n"
" : 0xffff)\n\n";
- out += "static const unsigned short uc_ligature_map[] = {";
+ out += "static constexpr unsigned short uc_ligature_map[] = {";
for (int i = 0; i < ligatures.size(); ++i) {
if (!(i % 8)) {
if (out.endsWith(' '))
@@ -3050,6 +3575,7 @@ QByteArray createCasingInfo()
int main(int, char **)
{
initAgeMap();
+ initEastAsianWidthMap();
initCategoryMap();
initDecompositionMap();
initDirectionMap();
@@ -3059,11 +3585,13 @@ int main(int, char **)
initSentenceBreak();
initLineBreak();
initScriptMap();
+ initIdnaStatusMap();
readUnicodeData();
readBidiMirroring();
readArabicShaping();
readDerivedAge();
+ readEastAsianWidth();
readDerivedNormalizationProps();
readSpecialCasing();
readCaseFolding();
@@ -3074,6 +3602,9 @@ int main(int, char **)
readWordBreak();
readSentenceBreak();
readLineBreak();
+ readIdnaMappingTable();
+
+ resolveIdnaStatus();
computeUniqueProperties();
QByteArray properties = createPropertyInfo();
@@ -3081,46 +3612,12 @@ int main(int, char **)
QByteArray compositions = createCompositionInfo();
QByteArray ligatures = createLigatureInfo();
QByteArray normalizationCorrections = createNormalizationCorrections();
+ QByteArray idnaMapping = createIdnaMapping();
QByteArray header =
- "/****************************************************************************\n"
- "**\n"
- "** Copyright (C) 2020 The Qt Company Ltd.\n"
- "** Contact: https://www.qt.io/licensing/\n"
- "**\n"
- "** This file is part of the QtCore module of the Qt Toolkit.\n"
- "**\n"
- "** $QT_BEGIN_LICENSE:LGPL$\n"
- "** Commercial License Usage\n"
- "** Licensees holding valid commercial Qt licenses may use this file in\n"
- "** accordance with the commercial license agreement provided with the\n"
- "** Software or, alternatively, in accordance with the terms contained in\n"
- "** a written agreement between you and The Qt Company. For licensing terms\n"
- "** and conditions see https://www.qt.io/terms-conditions. For further\n"
- "** information use the contact form at https://www.qt.io/contact-us.\n"
- "**\n"
- "** GNU Lesser General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU Lesser\n"
- "** General Public License version 3 as published by the Free Software\n"
- "** Foundation and appearing in the file LICENSE.LGPL3 included in the\n"
- "** packaging of this file. Please review the following information to\n"
- "** ensure the GNU Lesser General Public License version 3 requirements\n"
- "** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.\n"
- "**\n"
- "** GNU General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU\n"
- "** General Public License version 2.0 or (at your option) the GNU General\n"
- "** Public license version 3 or any later version approved by the KDE Free\n"
- "** Qt Foundation. The licenses are as published by the Free Software\n"
- "** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3\n"
- "** included in the packaging of this file. Please review the following\n"
- "** information to ensure the GNU General Public License requirements will\n"
- "** be met: https://www.gnu.org/licenses/gpl-2.0.html and\n"
- "** https://www.gnu.org/licenses/gpl-3.0.html.\n"
- "**\n"
- "** $QT_END_LICENSE$\n"
- "**\n"
- "****************************************************************************/\n\n";
+ "// Copyright (C) 2020 The Qt Company Ltd.\n"
+ "// SPDX-License-Identifier: Unicode-3.0\n"
+ "\n";
QByteArray note =
"/* This file is autogenerated from the Unicode " DATA_VERSION_S " database. Do not edit */\n\n";
@@ -3150,6 +3647,7 @@ int main(int, char **)
f.write(ligatures);
f.write("\n");
f.write(normalizationCorrections);
+ f.write(idnaMapping);
f.write("} // namespace QUnicodeTables\n\n");
f.write("using namespace QUnicodeTables;\n\n");
f.write("QT_END_NAMESPACE\n");
@@ -3169,10 +3667,12 @@ int main(int, char **)
f.write("namespace QUnicodeTables {\n\n");
f.write(property_string);
f.write(sizeOfPropertiesStructCheck);
+ f.write(east_asian_width_string);
f.write(grapheme_break_class_string);
f.write(word_break_class_string);
f.write(sentence_break_class_string);
f.write(line_break_class_string);
+ f.write(idna_status_string);
f.write(methods);
f.write("} // namespace QUnicodeTables\n\n"
"QT_END_NAMESPACE\n\n"
diff --git a/util/unicode/unicode.pro b/util/unicode/unicode.pro
index a8c941cf8c..d5a02ee031 100644
--- a/util/unicode/unicode.pro
+++ b/util/unicode/unicode.pro
@@ -1,4 +1,4 @@
SOURCES += main.cpp
-QT = core
+QT = core core-private
CONFIG += console
DEFINES += QT_FORCE_ASSERTS
diff --git a/util/unicode/update_ucd.sh b/util/unicode/update_ucd.sh
new file mode 100755
index 0000000000..64fee6ddc9
--- /dev/null
+++ b/util/unicode/update_ucd.sh
@@ -0,0 +1,53 @@
+#! /bin/sh
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+# This script downloads UCD files for an Unicode release and updates the
+# copies used by Qt. It expects the new Unicode version as argument:
+#
+# $ ./update_ucd.sh 14.0.0
+
+set -e
+
+if [ "$#" -ne 1 ]
+then
+ echo "Usage: $0 <UNICODE-VERSION>" >&2
+ exit 1
+fi
+
+VERSION="$1"
+
+qtbase=$(realpath "$(dirname "$0")"/../..)
+tmp=$(mktemp)
+
+download()
+{
+ wget -nv -P "$tmp" "$1"
+}
+
+download "https://www.unicode.org/Public/zipped/$VERSION/UCD.zip"
+unzip -q "$tmp/UCD.zip" -d "$tmp"
+download "https://www.unicode.org/Public/idna/$VERSION/IdnaMappingTable.txt"
+download "https://www.unicode.org/Public/idna/$VERSION/IdnaTestV2.txt"
+
+data_dirs="util/unicode/data \
+tests/auto/corelib/io/qurluts46/testdata \
+tests/auto/corelib/text/qtextboundaryfinder/data"
+
+for dir in $data_dirs
+do
+ find "$qtbase/$dir" -name '*.txt' -o -name '*.html'
+done | grep -vw 'ReadMe.*\.txt' | while read -r file
+do
+ base_name=$(basename "$file")
+ echo "Updating ${base_name}"
+ full_name=$(find "$tmp" -name "$base_name" -print -quit)
+ if [ "$full_name" = "" ]
+ then
+ echo "No source file for: ${base_name}" >&2
+ exit 1
+ fi
+ cp "$full_name" "$file"
+done
+
+rm -rf "$tmp"
diff --git a/util/unicode/writingSystems.sh b/util/unicode/writingSystems.sh
index 2727dee28b..c6d09bce14 100755
--- a/util/unicode/writingSystems.sh
+++ b/util/unicode/writingSystems.sh
@@ -1,32 +1,6 @@
#!/bin/sh
-
-#############################################################################
-##
-## Copyright (C) 2016 The Qt Company Ltd.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is the build configuration utility of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:GPL-EXCEPT$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see https://www.qt.io/terms-conditions. For further
-## information use the contact form at https://www.qt.io/contact-us.
-##
-## GNU General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU
-## General Public License version 3 as published by the Free Software
-## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-## included in the packaging of this file. Please review the following
-## information to ensure the GNU General Public License requirements will
-## be met: https://www.gnu.org/licenses/gpl-3.0.html.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# Copyright (C) 2016 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#
# This script generates the QFontDatabase::WritingSystem enum. It
diff --git a/util/update_public_suffix_list.sh b/util/update_public_suffix_list.sh
new file mode 100755
index 0000000000..d284d03df3
--- /dev/null
+++ b/util/update_public_suffix_list.sh
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+PICK_TO_BRANCHES="6.7 6.6 6.5 6.2 5.15"
+#UPSTREAM=github.com:publicsuffix/list.git # use this if you have a github account
+UPSTREAM=https://github.com/publicsuffix/list.git # and this if you don't
+
+THIS="util/update_public_suffix_list.sh"
+PUBLIC_SUFFIX_LIST_DAT_DIR="$1"
+MAKE_DAFSA=src/3rdparty/libpsl/src/psl-make-dafsa
+PSL_DATA_CPP=src/3rdparty/libpsl/psl_data.cpp
+PUBLIC_SUFFIX_LIST_DAFSA=tests/auto/network/access/qnetworkcookiejar/testdata/publicsuffix/public_suffix_list.dafsa
+ATTRIBUTION_JSON=src/3rdparty/libpsl/qt_attribution.json
+
+function msg() {
+ echo "$@" 1>&2
+}
+
+function die() {
+ msg "$@"
+ exit 1
+}
+
+function check_or_die() {
+ TYPE=$1
+ OP=$2
+ FILE="$3"
+ test $OP "$FILE" || die "$TYPE \"$FILE\" not found (test $OP \"$FILE\" failed). Please run $THIS from \$SRCDIR/qtbase and pass the directory containing a checkout of $UPSTEAM on the command line."
+}
+
+function run_or_die() {
+ msg -n "Running \"$@\"..."
+ "$@" || die "Failed"
+ msg "Done"
+}
+
+INPUT="$PUBLIC_SUFFIX_LIST_DAT_DIR/public_suffix_list.dat"
+
+check_or_die tool -x "$MAKE_DAFSA"
+if [ ! -d "$PUBLIC_SUFFIX_LIST_DAT_DIR" ]; then
+ msg -n "$PUBLIC_SUFFIX_LIST_DAT_DIR does not exist; Clone $UPSTREAM there? [y/N]"
+ read -N1 -t60
+ msg
+ if [ "x$REPLY" = "xy" -o "x$REPLY" = "xY" ]; then
+ run_or_die git clone "$UPSTREAM" "$PUBLIC_SUFFIX_LIST_DAT_DIR"
+ else
+ check_or_die publicsuffix/list.git -d "$PUBLIC_SUFFIX_LIST_DAT_DIR" # reuse error message
+ fi
+fi
+check_or_die publicsuffix/list.git -d "$PUBLIC_SUFFIX_LIST_DAT_DIR"
+check_or_die input -r "$INPUT"
+check_or_die output -w "$PSL_DATA_CPP"
+check_or_die binary-output -w "$PUBLIC_SUFFIX_LIST_DAFSA"
+
+GITSHA1=$(cd "$PUBLIC_SUFFIX_LIST_DAT_DIR" && git log -1 --format=format:%H)
+TODAY=$(date +%Y-%m-%d)
+msg "Using $INPUT @ $GITSHA1, fetched on $TODAY"
+
+run_or_die "$MAKE_DAFSA" "$INPUT" "$PSL_DATA_CPP"
+run_or_die "$MAKE_DAFSA" --output-format=binary "$INPUT" "$PUBLIC_SUFFIX_LIST_DAFSA"
+
+# update the first Version line in qt_attribution.json with the new SHA1 and date:
+run_or_die sed -i -e "1,/\"Version\":/{ /\"Version\":/ { s/[0-9a-fA-F]\{40\}/$GITSHA1/; s/[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}/$TODAY/ } }" "$ATTRIBUTION_JSON"
+
+run_or_die git add "$PSL_DATA_CPP"
+run_or_die git add "$PUBLIC_SUFFIX_LIST_DAFSA"
+run_or_die git add "$ATTRIBUTION_JSON"
+
+run_or_die git commit -m "Update public suffix list
+
+Version $GITSHA1, fetched on
+$TODAY.
+
+[ChangeLog][Third-Party Code] Updated the public suffix list to upstream
+SHA $GITSHA1.
+
+Pick-to: $PICK_TO_BRANCHES
+" --edit
+
+msg "Please use topic=publicsuffix-list-$GITSHA1 when pushing."
diff --git a/util/wasm/batchedtestrunner/README.md b/util/wasm/batchedtestrunner/README.md
new file mode 100644
index 0000000000..a5d165c630
--- /dev/null
+++ b/util/wasm/batchedtestrunner/README.md
@@ -0,0 +1,60 @@
+This package contains sources for a webpage whose scripts run batched WASM tests - a single
+executable with a number of linked test classes.
+The webpage operates on an assumption that the test program, when run without arguments,
+prints out a list of test classes inside its module. Then, when run with the first argument
+equal to the name of one of the test classes, the test program will execute all tests within
+that single class.
+
+The following query parameters are recognized by the webpage:
+
+qtestname=testname - the test case to run. When batched test module is used, the test is assumed to
+ be a part of the batch. If a standalone test module is used, this is assumed to be the name of
+ the wasm module.
+
+quseemrun - if specified, the test communicates with the emrun instance via the protocol expected
+ by emrun.
+
+qtestoutputformat=txt|xml|lightxml|junitxml|tap - specifies the output format for the test case.
+
+qbatchedtest - if specified, the script will load the test_batch.wasm module and either run all
+ testcases in it or a specific test case, depending on the existence of the qtestname parameter.
+ Otherwise, the test is assumed to be a standalone binary whose name is determined by the
+ qtestname parameter.
+
+The scripts in the page will load the wasm file as specified by a combination of qbatchedtest and
+qtestname.
+
+Public interface for querying the test execution status is accessible via the global object
+'qtTestRunner':
+
+qtTestRunner.status - this contains the status of the test runner itself, of the enumeration type
+RunnerStatus.
+
+qtTestRunner.results - a map of test class name to test result. The result contains a test status
+(status, of the enumeration TestStatus), text output chunks (output), and in case of a terminal
+status, also the test's exit code (exitCode)
+
+qtTestRunner.onStatusChanged - an event for changes in state of the runner itself. The possible
+values are those of the enumeration RunnerStatus.
+
+qtTestRunner.onTestStatusChanged - an event for changes in state of a single tests class. The
+possible values are those of the enumeration TestStatus. When a terminal state is reached
+(Completed, Error, Crashed), the text results and exit code are filled in, if available, and
+will not change.
+
+Typical usage:
+Run all tests in a batch:
+ - load the webpage batchedtestrunner.html
+
+Run a single test in a batch:
+ - load the webpage batchedtestrunner.html?qtestname=tst_mytest
+
+Query for test execution state:
+ - qtTestRunner.onStatusChanged.addEventListener((runnerStatus) => (...)))
+ - qtTestRunner.onTestStatusChanged.addEventListener((testName, status) => (...))
+ - qtTestRunner.status === (...)
+ - qtTestRunner.results['tst_mytest'].status === (...)
+ - qtTestRunner.results['tst_mytest'].textOutput
+
+When queseemrun is specified, the built-in emrun support module will POST the test output to the
+emrun instance and will report ^exit^ with a suitable exit code to it when testing is finished.
diff --git a/util/wasm/batchedtestrunner/batchedtestrunner.html b/util/wasm/batchedtestrunner/batchedtestrunner.html
new file mode 100644
index 0000000000..147cf34376
--- /dev/null
+++ b/util/wasm/batchedtestrunner/batchedtestrunner.html
@@ -0,0 +1,15 @@
+<!--
+Copyright (C) 2022 The Qt Company Ltd.
+SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+-->
+
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <title>WASM batched test runner (emrun-enabled)</title>
+ <link rel="stylesheet" href="qtestoutputreporter.css"></link>
+ <script type="module" defer="defer" src="qwasmtestmain.js"></script>
+</head>
+<body></body>
+</html>
diff --git a/util/wasm/batchedtestrunner/batchedtestrunner.js b/util/wasm/batchedtestrunner/batchedtestrunner.js
new file mode 100644
index 0000000000..453865a935
--- /dev/null
+++ b/util/wasm/batchedtestrunner/batchedtestrunner.js
@@ -0,0 +1,178 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import {
+ AbortedError,
+} from './qwasmjsruntime.js';
+
+import { EventSource } from './util.js';
+
+class ProgramError extends Error {
+ constructor(exitCode) {
+ super(`The program reported an exit code of ${exitCode}`)
+ }
+}
+
+export class RunnerStatus {
+ static Running = 'Running';
+ static Passed = 'Passed';
+ static Error = 'Error';
+ static TestCrashed = 'TestCrashed';
+ static TestsFailed = 'TestsFailed';
+}
+
+export class TestStatus {
+ static Pending = 'Pending';
+ static Running = 'Running';
+ static Completed = 'Completed';
+ static Error = 'Error';
+ static Failed = 'Failed';
+ static Crashed = 'Crashed';
+}
+
+export class BatchedTestRunner {
+ static #TestBatchModuleName = 'test_batch';
+
+ #loader;
+
+ #results = new Map();
+ #status = RunnerStatus.Running;
+ #numberOfFailed = 0;
+ #statusChangedEventPrivate;
+ #testStatusChangedEventPrivate;
+ #testOutputChangedEventPrivate;
+ #errorDetails;
+
+ onStatusChanged =
+ new EventSource((privateInterface) => this.#statusChangedEventPrivate = privateInterface);
+ onTestStatusChanged =
+ new EventSource((privateInterface) =>
+ this.#testStatusChangedEventPrivate = privateInterface);
+ onTestOutputChanged =
+ new EventSource(
+ (privateInterface) => this.#testOutputChangedEventPrivate = privateInterface);
+
+ constructor(loader) {
+ this.#loader = loader;
+ }
+
+ get results() { return this.#results; }
+
+ get status() { return this.#status; }
+
+ get numberOfFailed() {
+ if (this.#status !== RunnerStatus.TestsFailed)
+ throw new Error(`numberOfFailed called with status=${this.#status}`);
+ return this.#numberOfFailed;
+ }
+
+ get errorDetails() { return this.#errorDetails; }
+
+ async run(targetIsBatch, testName, functions, testOutputFormat) {
+ try {
+ await this.#doRun(targetIsBatch, testName, functions, testOutputFormat);
+ } catch (e) {
+ this.#setTestRunnerError(e.message);
+ return;
+ }
+
+ const status = (() => {
+ const hasAnyCrashedTest =
+ !![...window.qtTestRunner.results.values()].find(
+ result => result.status === TestStatus.Crashed);
+ if (hasAnyCrashedTest)
+ return { code: RunnerStatus.TestCrashed };
+ const numberOfFailed = [...window.qtTestRunner.results.values()].reduce(
+ (previous, current) => previous + current.exitCode, 0);
+ return {
+ code: (numberOfFailed ? RunnerStatus.TestsFailed : RunnerStatus.Passed),
+ numberOfFailed
+ };
+ })();
+
+ this.#setTestRunnerStatus(status.code, status.numberOfFailed);
+ }
+
+ async #doRun(targetIsBatch, testName, functions, testOutputFormat) {
+ const module = await this.#loader.loadEmscriptenModule(
+ targetIsBatch ? BatchedTestRunner.#TestBatchModuleName : testName,
+ () => { }
+ );
+
+ const testsToExecute = (testName || !targetIsBatch)
+ ? [testName] : await this.#getTestClassNames(module);
+ testsToExecute.forEach(testClassName => this.#registerTest(testClassName));
+
+ for (const testClassName of testsToExecute) {
+ let result = {};
+ this.#setTestStatus(testClassName, TestStatus.Running);
+
+ try {
+ const LogToStdoutSpecialFilename = '-';
+ result = await module.exec({
+ args: [...(targetIsBatch ? [testClassName] : []),
+ ...(functions ?? []),
+ '-o', `${LogToStdoutSpecialFilename},${testOutputFormat}`],
+ onStdout: (output) => {
+ this.#addTestOutput(testClassName, output);
+ }
+ });
+
+ if (result.exitCode < 0)
+ throw new ProgramError(result.exitCode);
+ result.status = result.exitCode > 0 ? TestStatus.Failed : TestStatus.Completed;
+ // Yield to other tasks on the main thread.
+ await new Promise(resolve => window.setTimeout(resolve, 0));
+ } catch (e) {
+ result.status = e instanceof ProgramError ? TestStatus.Error : TestStatus.Crashed;
+ result.stdout = e instanceof AbortedError ? e.stdout : result.stdout;
+ }
+ this.#setTestResultData(testClassName, result.status, result.exitCode);
+ }
+ }
+
+ async #getTestClassNames(module) {
+ return (await module.exec()).stdout.trim().split(' ');
+ }
+
+ #registerTest(testName) {
+ this.#results.set(testName, { status: TestStatus.Pending, output: [] });
+ }
+
+ #setTestStatus(testName, status) {
+ const testData = this.#results.get(testName);
+ if (testData.status === status)
+ return;
+ this.#results.get(testName).status = status;
+ this.#testStatusChangedEventPrivate.fireEvent(testName, status);
+ }
+
+ #setTestResultData(testName, testStatus, exitCode) {
+ const testData = this.#results.get(testName);
+ const statusChanged = testStatus !== testData.status;
+ testData.status = testStatus;
+ testData.exitCode = exitCode;
+ if (statusChanged)
+ this.#testStatusChangedEventPrivate.fireEvent(testName, testStatus);
+ }
+
+ #setTestRunnerStatus(status, numberOfFailed) {
+ if (status === this.#status)
+ return;
+ this.#status = status;
+ this.#numberOfFailed = numberOfFailed;
+ this.#statusChangedEventPrivate.fireEvent(status);
+ }
+
+ #setTestRunnerError(details) {
+ this.#status = RunnerStatus.Error;
+ this.#errorDetails = details;
+ this.#statusChangedEventPrivate.fireEvent(this.#status);
+ }
+
+ #addTestOutput(testName, output) {
+ const testData = this.#results.get(testName);
+ testData.output.push(output);
+ this.#testOutputChangedEventPrivate.fireEvent(testName, testData.output);
+ }
+}
diff --git a/util/wasm/batchedtestrunner/emrunadapter.js b/util/wasm/batchedtestrunner/emrunadapter.js
new file mode 100644
index 0000000000..5b4284e18f
--- /dev/null
+++ b/util/wasm/batchedtestrunner/emrunadapter.js
@@ -0,0 +1,137 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import { RunnerStatus, TestStatus } from './batchedtestrunner.js';
+
+// Sends messages to the running emrun instance via POST requests.
+export class EmrunCommunication {
+ static #BATCHING_DELAY = 300;
+
+ #indexOfMessage = 0;
+ #postOutputPromise;
+ // Accumulate output in a batch that gets sent with a delay so that the emrun http server
+ // does not get pounded with requests.
+ #nextOutputBatch = null;
+
+ #post(body) {
+ return fetch('stdio.html', {
+ method: 'POST',
+ body
+ });
+ }
+
+ // Waits for the output sending to finish, if any output transfer is still in progress.
+ async waitUntilAllSent()
+ {
+ if (this.#postOutputPromise)
+ await this.#postOutputPromise;
+ }
+
+ // Posts the exit status to the running emrun instance. Emrun will drop connection unless it is
+ // run with --serve_after_exit, therefore this method will throw most of the times.
+ postExit(status) {
+ return this.#post(`^exit^${status}`);
+ }
+
+ // Posts an indexed output chunk to the running emrun instance. Each consecutive call to this
+ // method increments the output index by 1.
+ postOutput(output)
+ {
+ if (this.#nextOutputBatch) {
+ this.#nextOutputBatch += output;
+ } else {
+ this.#nextOutputBatch = output;
+ this.#postOutputPromise = new Promise(resolve =>
+ {
+ window.setTimeout(() =>
+ {
+ const toSend = this.#nextOutputBatch;
+ this.#nextOutputBatch = null;
+ this.#post(`^out^${this.#indexOfMessage++}^${toSend}$`)
+ .finally(resolve);
+ }, EmrunCommunication.#BATCHING_DELAY);
+ });
+ }
+
+ return this.#postOutputPromise;
+ }
+}
+
+// Wraps a test module runner; forwards its output and resolution state to the running emrun
+// instance.
+export class EmrunAdapter {
+ #communication;
+ #batchedTestRunner;
+ #sentLines = 0;
+ #onExitSent;
+
+ constructor(communication, batchedTestRunner, onExitSent) {
+ this.#communication = communication;
+ this.#batchedTestRunner = batchedTestRunner;
+ this.#onExitSent = onExitSent;
+ }
+
+ // Starts listening to test module runner's state changes. When the test module runner finishes
+ // or reports output, sends suitable messages to the emrun instance.
+ run() {
+ this.#batchedTestRunner.onStatusChanged.addEventListener(
+ status => this.#onRunnerStatusChanged(status));
+ this.#batchedTestRunner.onTestStatusChanged.addEventListener(
+ (test, status) => this.#onTestStatusChanged(test, status));
+ this.#batchedTestRunner.onTestOutputChanged.addEventListener(
+ (test, output) => this.#onTestOutputChanged(test, output));
+
+ const currentTest = [...this.#batchedTestRunner.results.entries()].find(
+ entry => entry[1].status === TestStatus.Running)?.[0];
+
+ const output = this.#batchedTestRunner.results.get(currentTest)?.output;
+ if (output)
+ this.#onTestOutputChanged(testName, output);
+ this.#onRunnerStatusChanged(this.#batchedTestRunner.status);
+ }
+
+ #toExitCode(status) {
+ switch (status) {
+ case RunnerStatus.Error:
+ return -1;
+ case RunnerStatus.Passed:
+ return 0;
+ case RunnerStatus.Running:
+ throw new Error('No exit code when still running');
+ case RunnerStatus.TestCrashed:
+ return -2;
+ case RunnerStatus.TestsFailed:
+ return this.#batchedTestRunner.numberOfFailed;
+ }
+ }
+
+ async #onRunnerStatusChanged(status) {
+ if (RunnerStatus.Running === status)
+ return;
+
+ const exit = this.#toExitCode(status);
+ if (RunnerStatus.Error === status)
+ this.#communication.postOutput(this.#batchedTestRunner.errorDetails);
+
+ await this.#communication.waitUntilAllSent();
+ try {
+ await this.#communication.postExit(exit);
+ } catch {
+ // no-op: The remote end will drop connection on exit.
+ } finally {
+ this.#onExitSent?.();
+ }
+ }
+
+ async #onTestOutputChanged(_, output) {
+ const notSent = output.slice(this.#sentLines);
+ for (const out of notSent)
+ this.#communication.postOutput(out);
+ this.#sentLines = output.length;
+ }
+
+ async #onTestStatusChanged(_, status) {
+ if (status === TestStatus.Running)
+ this.#sentLines = 0;
+ }
+}
diff --git a/util/wasm/batchedtestrunner/qtestoutputreporter.css b/util/wasm/batchedtestrunner/qtestoutputreporter.css
new file mode 100644
index 0000000000..aefb867b81
--- /dev/null
+++ b/util/wasm/batchedtestrunner/qtestoutputreporter.css
@@ -0,0 +1,89 @@
+/*
+ Copyright (C) 2022 The Qt Company Ltd.
+ SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+*/
+
+:root {
+ --good-color-light: chartreuse;
+ --bad-color-light: lightcoral;
+ --warning-color-light: orange;
+ --info-color-light: cornflowerblue;
+ --ignore-color-light: gray;
+ --good-color-dark: green;
+ --bad-color-dark: red;
+ --warning-color-dark: darkorange;
+ --info-color-dark: blue;
+ --ignore-color-dark: lightgray;
+}
+
+.zero {
+ display: none;
+}
+
+.light-background .good {
+ color: var(--good-color-dark);
+}
+
+.light-background .bad {
+ color: var(--bad-color-dark);
+}
+
+.light-background .warning {
+ color: var(--warning-color-dark);
+}
+
+.light-background .info {
+ color: var(--info-color-dark);
+}
+
+.light-background .ignore {
+ color: var(--ignore-color-dark);
+}
+
+.output-area {
+ font-family: monospace;
+}
+
+.output-line {
+ display: block;
+ white-space: pre-wrap;
+}
+
+.counter-box {
+ position: fixed;
+ width: 100%;
+ display: flex;
+ justify-content: center;
+}
+
+.counter-box span {
+ padding-right: 10px;
+}
+
+.counter-box .pass {
+ background-color: var(--good-color-light);
+}
+
+.counter-box .fail {
+ background-color: var(--bad-color-light);
+}
+
+.counter-box .skip {
+ background-color: var(--info-color-light);
+}
+
+.counter-box .xfail {
+ background-color: var(--warning-color-light);
+}
+
+.counter-box .xpass {
+ background-color: var(--bad-color-light);
+}
+
+.counter-box .bpass,
+.counter-box .bfail,
+.counter-box .bxpass,
+.counter-box .bxfail,
+.counter-box .other {
+ background-color: var(--ignore-color-light);
+}
diff --git a/util/wasm/batchedtestrunner/qtestoutputreporter.js b/util/wasm/batchedtestrunner/qtestoutputreporter.js
new file mode 100644
index 0000000000..7af288b8f0
--- /dev/null
+++ b/util/wasm/batchedtestrunner/qtestoutputreporter.js
@@ -0,0 +1,366 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import { RunnerStatus, TestStatus } from './batchedtestrunner.js'
+
+class AttentionType
+{
+ static None = 1;
+ static Bad = 2;
+ static Good = 3;
+ static Warning = 4;
+ static Info = 5;
+ static Ignore = 6;
+};
+
+export class IncidentType
+{
+ // See QAbstractTestLogger::IncidentTypes (and keep in sync with it):
+ static Pass = 'pass';
+ static Fail = 'fail';
+ static Skip = 'skip';
+ static XFail = 'xfail';
+ static XPass = 'xpass';
+ static BlacklistedPass = 'bpass';
+ static BlacklistedFail = 'bfail';
+ static BlacklistedXPass = 'bxpass';
+ static BlacklistedXFail = 'bxfail';
+
+ // The following is not mapped from QAbstractTestLogger::IncidentTypes and is used internally:
+ static None = 'none';
+
+ static values()
+ {
+ return Object.getOwnPropertyNames(IncidentType)
+ .filter(
+ propertyName =>
+ ['length', 'prototype', 'values', 'name'].indexOf(propertyName) === -1)
+ .map(propertyName => IncidentType[propertyName]);
+ }
+}
+
+class OutputArea
+{
+ #outputDiv;
+
+ constructor()
+ {
+ this.#outputDiv = document.createElement('div');
+ this.#outputDiv.classList.add('output-area');
+ this.#outputDiv.classList.add('light-background');
+ document.querySelector('body').appendChild(this.#outputDiv);
+ }
+
+ addOutput(text, attentionType)
+ {
+ const newContentWrapper = document.createElement('span');
+ newContentWrapper.className = 'output-line';
+
+ newContentWrapper.innerText = text;
+
+ switch (attentionType) {
+ case AttentionType.Bad:
+ newContentWrapper.classList.add('bad');
+ break;
+ case AttentionType.Good:
+ newContentWrapper.classList.add('good');
+ break;
+ case AttentionType.Warning:
+ newContentWrapper.classList.add('warning');
+ break
+ case AttentionType.Info:
+ newContentWrapper.classList.add('info');
+ break;
+ case AttentionType.Ignore:
+ newContentWrapper.classList.add('ignore');
+ break;
+ default:
+ break;
+ }
+ this.#outputDiv.appendChild(newContentWrapper);
+ }
+}
+
+class Counter
+{
+ #count = 0;
+ #decriptionElement;
+ #counterElement;
+
+ constructor(parentElement, incidentType)
+ {
+ this.#decriptionElement = document.createElement('span');
+ this.#decriptionElement.classList.add(incidentType);
+ this.#decriptionElement.classList.add('zero');
+ this.#decriptionElement.innerText = Counter.#humanReadableIncidentName(incidentType);
+ parentElement.appendChild(this.#decriptionElement);
+
+ this.#counterElement = document.createElement('span');
+ this.#counterElement.classList.add(incidentType);
+ this.#counterElement.classList.add('zero');
+ parentElement.appendChild(this.#counterElement);
+ }
+
+ increment()
+ {
+ if (!this.#count++) {
+ this.#decriptionElement.classList.remove('zero');
+ this.#counterElement.classList.remove('zero');
+ }
+ this.#counterElement.innerText = this.#count;
+ }
+
+ static #humanReadableIncidentName(incidentName)
+ {
+ switch (incidentName) {
+ case IncidentType.Pass:
+ return 'Passed';
+ case IncidentType.Fail:
+ return 'Failed';
+ case IncidentType.Skip:
+ return 'Skipped';
+ case IncidentType.XFail:
+ return 'Known failure';
+ case IncidentType.XPass:
+ return 'Unexpectedly passed';
+ case IncidentType.BlacklistedPass:
+ return 'Blacklisted passed';
+ case IncidentType.BlacklistedFail:
+ return 'Blacklisted failed';
+ case IncidentType.BlacklistedXPass:
+ return 'Blacklisted unexpectedly passed';
+ case IncidentType.BlacklistedXFail:
+ return 'Blacklisted unexpectedly failed';
+ case IncidentType.None:
+ throw new Error('Incident of the None type cannot be displayed');
+ }
+ }
+}
+
+class Counters
+{
+ #contentsDiv;
+ #counters;
+
+ constructor(parentElement)
+ {
+ this.#contentsDiv = document.createElement('div');
+ this.#contentsDiv.className = 'counter-box';
+ parentElement.appendChild(this.#contentsDiv);
+
+ const centerDiv = document.createElement('div');
+ this.#contentsDiv.appendChild(centerDiv);
+
+ this.#counters = new Map(IncidentType.values()
+ .filter(incidentType => incidentType !== IncidentType.None)
+ .map(incidentType => [incidentType, new Counter(centerDiv, incidentType)]));
+ }
+
+ incrementIncidentCounter(incidentType)
+ {
+ this.#counters.get(incidentType).increment();
+ }
+}
+
+export class UI
+{
+ #contentsDiv;
+
+ #counters;
+ #outputArea;
+
+ constructor(parentElement, hasCounters)
+ {
+ this.#contentsDiv = document.createElement('div');
+ parentElement.appendChild(this.#contentsDiv);
+
+ if (hasCounters)
+ this.#counters = new Counters(this.#contentsDiv);
+ this.#outputArea = new OutputArea(this.#contentsDiv);
+ }
+
+ get counters()
+ {
+ return this.#counters;
+ }
+
+ get outputArea()
+ {
+ return this.#outputArea;
+ }
+
+ htmlElement()
+ {
+ return this.#contentsDiv;
+ }
+}
+
+class OutputScanner
+{
+ static #supportedIncidentTypes = IncidentType.values().filter(
+ incidentType => incidentType !== IncidentType.None);
+
+ static get supportedIncidentTypes()
+ {
+ return this.#supportedIncidentTypes;
+ }
+
+ #regex;
+
+ constructor(regex)
+ {
+ this.#regex = regex;
+ }
+
+ classifyOutputLine(line)
+ {
+ const match = this.#regex.exec(line);
+ if (!match)
+ return IncidentType.None;
+ match.splice(0, 1);
+ // Find the index of the first non-empty matching group and recover an incident type for it.
+ return OutputScanner.supportedIncidentTypes[match.findIndex(element => !!element)];
+ }
+}
+
+class XmlOutputScanner extends OutputScanner
+{
+ constructor()
+ {
+ // Scan for any line with an incident of type from supportedIncidentTypes. The matching
+ // group at offset n will contain the type. The match type can be preceded by any number of
+ // whitespace characters to factor in the indentation.
+ super(new RegExp(`^\\s*<Incident type="${OutputScanner.supportedIncidentTypes
+ .map(incidentType => `(${incidentType})`).join('|')}"`));
+ }
+}
+
+class TextOutputScanner extends OutputScanner
+{
+ static #incidentNameMap = new Map([
+ [IncidentType.Pass, 'PASS'],
+ [IncidentType.Fail, 'FAIL!'],
+ [IncidentType.Skip, 'SKIP'],
+ [IncidentType.XFail, 'XFAIL'],
+ [IncidentType.XPass, 'XPASS'],
+ [IncidentType.BlacklistedPass, 'BPASS'],
+ [IncidentType.BlacklistedFail, 'BFAIL'],
+ [IncidentType.BlacklistedXPass, 'BXPASS'],
+ [IncidentType.BlacklistedXFail, 'BXFAIL']
+ ]);
+
+ constructor()
+ {
+ // Scan for any line with an incident of type from incidentNameMap. The matching group
+ // at offset n will contain the type. The type can be preceded by any number of whitespace
+ // characters to factor in the indentation.
+ super(new RegExp(`^\\s*${OutputScanner.supportedIncidentTypes
+ .map(incidentType =>
+ `(${TextOutputScanner.#incidentNameMap.get(incidentType)})`).join('|')}\\s`));
+ }
+}
+
+export class ScannerFactory
+{
+ static createScannerForFormat(format)
+ {
+ switch (format) {
+ case 'txt':
+ return new TextOutputScanner();
+ case 'xml':
+ return new XmlOutputScanner();
+ default:
+ return null;
+ }
+ }
+}
+
+export class VisualOutputProducer
+{
+ #batchedTestRunner;
+
+ #outputArea;
+ #counters;
+ #outputScanner;
+ #processedLines;
+
+ constructor(outputArea, counters, outputScanner, batchedTestRunner)
+ {
+ this.#outputArea = outputArea;
+ this.#counters = counters;
+ this.#outputScanner = outputScanner;
+ this.#batchedTestRunner = batchedTestRunner;
+ this.#processedLines = 0;
+ }
+
+ run()
+ {
+ this.#batchedTestRunner.onStatusChanged.addEventListener(
+ status => this.#onRunnerStatusChanged(status));
+ this.#batchedTestRunner.onTestStatusChanged.addEventListener(
+ (test, status) => this.#onTestStatusChanged(test, status));
+ this.#batchedTestRunner.onTestOutputChanged.addEventListener(
+ (test, output) => this.#onTestOutputChanged(test, output));
+
+ const currentTest = [...this.#batchedTestRunner.results.entries()].find(
+ entry => entry[1].status === TestStatus.Running)?.[0];
+
+ const output = this.#batchedTestRunner.results.get(currentTest)?.output;
+ if (output)
+ this.#onTestOutputChanged(testName, output);
+ this.#onRunnerStatusChanged(this.#batchedTestRunner.status);
+ }
+
+ async #onRunnerStatusChanged(status)
+ {
+ if (RunnerStatus.Running === status)
+ return;
+
+ this.#outputArea.addOutput(
+ `Runner exited with status: ${status}`,
+ status === RunnerStatus.Passed ? AttentionType.Good : AttentionType.Bad);
+ if (RunnerStatus.Error === status)
+ this.#outputArea.addOutput(`The error was: ${this.#batchedTestRunner.errorDetails}`);
+ }
+
+ async #onTestOutputChanged(_, output)
+ {
+ const notSent = output.slice(this.#processedLines);
+ for (const out of notSent) {
+ const incidentType = this.#outputScanner?.classifyOutputLine(out);
+ if (incidentType !== IncidentType.None)
+ this.#counters.incrementIncidentCounter(incidentType);
+ this.#outputArea.addOutput(
+ out,
+ (() =>
+ {
+ switch (incidentType) {
+ case IncidentType.Fail:
+ case IncidentType.XPass:
+ return AttentionType.Bad;
+ case IncidentType.Pass:
+ return AttentionType.Good;
+ case IncidentType.XFail:
+ return AttentionType.Warning;
+ case IncidentType.Skip:
+ return AttentionType.Info;
+ case IncidentType.BlacklistedFail:
+ case IncidentType.BlacklistedPass:
+ case IncidentType.BlacklistedXFail:
+ case IncidentType.BlacklistedXPass:
+ return AttentionType.Ignore;
+ case IncidentType.None:
+ return AttentionType.None;
+ }
+ })());
+ }
+ this.#processedLines = output.length;
+ }
+
+ async #onTestStatusChanged(_, status)
+ {
+ if (status === TestStatus.Running)
+ this.#processedLines = 0;
+ await new Promise(resolve => window.setTimeout(resolve, 500));
+ }
+}
diff --git a/util/wasm/batchedtestrunner/qwasmjsruntime.js b/util/wasm/batchedtestrunner/qwasmjsruntime.js
new file mode 100644
index 0000000000..3f2d421181
--- /dev/null
+++ b/util/wasm/batchedtestrunner/qwasmjsruntime.js
@@ -0,0 +1,231 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+// Exposes platform capabilities as static properties
+
+export class AbortedError extends Error {
+ constructor(stdout) {
+ super(`The program has been aborted`)
+
+ this.stdout = stdout;
+ }
+}
+export class Platform {
+ static #webAssemblySupported = typeof WebAssembly !== 'undefined';
+
+ static #canCompileStreaming = WebAssembly.compileStreaming !== 'undefined';
+
+ static #webGLSupported = (() => {
+ // We expect that WebGL is supported if WebAssembly is; however
+ // the GPU may be blacklisted.
+ try {
+ const canvas = document.createElement('canvas');
+ return !!(
+ window.WebGLRenderingContext &&
+ (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))
+ );
+ } catch (e) {
+ return false;
+ }
+ })();
+
+ static #canLoadQt = Platform.#webAssemblySupported && Platform.#webGLSupported;
+
+ static get webAssemblySupported() {
+ return this.#webAssemblySupported;
+ }
+ static get canCompileStreaming() {
+ return this.#canCompileStreaming;
+ }
+ static get webGLSupported() {
+ return this.#webGLSupported;
+ }
+ static get canLoadQt() {
+ return this.#canLoadQt;
+ }
+}
+
+// Locates a resource, based on its relative path
+export class ResourceLocator {
+ #rootPath;
+
+ constructor(rootPath) {
+ this.#rootPath = rootPath;
+ if (rootPath.length > 0 && !rootPath.endsWith('/')) rootPath += '/';
+ }
+
+ locate(relativePath) {
+ return this.#rootPath + relativePath;
+ }
+}
+
+// Allows fetching of resources, such as text resources or wasm modules.
+export class ResourceFetcher {
+ #locator;
+
+ constructor(locator) {
+ this.#locator = locator;
+ }
+
+ async fetchText(filePath) {
+ return (await this.#fetchRawResource(filePath)).text();
+ }
+
+ async fetchCompileWasm(filePath, onFetched) {
+ const fetchResponse = await this.#fetchRawResource(filePath);
+ onFetched?.();
+
+ if (Platform.canCompileStreaming) {
+ try {
+ return await WebAssembly.compileStreaming(fetchResponse);
+ } catch {
+ // NOOP - fallback to sequential fetching below
+ }
+ }
+ return WebAssembly.compile(await fetchResponse.arrayBuffer());
+ }
+
+ async #fetchRawResource(filePath) {
+ const response = await fetch(this.#locator.locate(filePath));
+ if (!response.ok)
+ throw new Error(
+ `${response.status} ${response.statusText} ${response.url}`
+ );
+ return response;
+ }
+}
+
+// Represents a WASM module, wrapping the instantiation and execution thereof.
+export class CompiledModule {
+ #createQtAppInstanceFn;
+ #js;
+ #wasm;
+ #resourceLocator;
+
+ constructor(createQtAppInstanceFn, js, wasm, resourceLocator) {
+ this.#createQtAppInstanceFn = createQtAppInstanceFn;
+ this.#js = js;
+ this.#wasm = wasm;
+ this.#resourceLocator = resourceLocator;
+ }
+
+ static make(js, wasm, entryFunctionName, resourceLocator)
+ {
+ const exports = {};
+ const module = {};
+ eval(js);
+ if (!module.exports) {
+ throw new Error(
+ '${entryFunctionName} has not been exported by the main script'
+ );
+ }
+
+ return new CompiledModule(
+ module.exports, js, wasm, resourceLocator
+ );
+ }
+
+ async exec(parameters) {
+ return await new Promise(async (resolve, reject) => {
+ let instance = undefined;
+ let result = undefined;
+
+ let testFinished = false;
+ const testFinishedEvent = new CustomEvent('testFinished');
+ instance = await this.#createQtAppInstanceFn((() => {
+ const params = this.#makeDefaultExecParams({
+ onInstantiationError: (error) => { reject(error); },
+ });
+ params.arguments = parameters?.args;
+ let data = '';
+ params.print = (out) => {
+ parameters?.onStdout?.(out);
+ data += `${out}\n`;
+ };
+ params.printErr = () => { };
+ params.onAbort = () => reject(new AbortedError(data));
+ params.quit = (code, exception) => {
+ if (exception && exception.name !== 'ExitStatus')
+ reject(exception);
+ };
+ params.notifyTestFinished = (code) => {
+ result = { stdout: data, exitCode: code };
+ testFinished = true;
+ window.dispatchEvent(testFinishedEvent);
+ };
+ return params;
+ })());
+ if (!testFinished) {
+ await new Promise((resolve) => {
+ window.addEventListener('testFinished', () => {
+ resolve();
+ });
+ });
+ }
+ resolve({
+ stdout: result.stdout,
+ exitCode: result.exitCode,
+ instance,
+ });
+ });
+ }
+
+ #makeDefaultExecParams(params) {
+ const instanceParams = {};
+ instanceParams.instantiateWasm = async (imports, onDone) => {
+ try {
+ onDone(await WebAssembly.instantiate(this.#wasm, imports), this.#wasm);
+ } catch (e) {
+ params?.onInstantiationError?.(e);
+ }
+ };
+ instanceParams.locateFile = (filename) =>
+ this.#resourceLocator.locate(filename);
+ instanceParams.monitorRunDependencies = (name) => { };
+ instanceParams.print = (text) => true && console.log(text);
+ instanceParams.printErr = (text) => true && console.warn(text);
+
+ instanceParams.mainScriptUrlOrBlob = new Blob([this.#js], {
+ type: 'text/javascript',
+ });
+ return instanceParams;
+ }
+}
+
+// Streamlines loading of WASM modules.
+export class ModuleLoader {
+ #fetcher;
+ #resourceLocator;
+
+ constructor(
+ fetcher,
+ resourceLocator
+ ) {
+ this.#fetcher = fetcher;
+ this.#resourceLocator = resourceLocator;
+ }
+
+ // Loads an emscripten module named |moduleName| from the main resource path. Provides
+ // progress of 'downloading' and 'compiling' to the caller using the |onProgress| callback.
+ async loadEmscriptenModule(
+ moduleName, onProgress
+ ) {
+ if (!Platform.webAssemblySupported)
+ throw new Error('Web assembly not supported');
+ if (!Platform.webGLSupported)
+ throw new Error('WebGL is not supported');
+
+ onProgress('downloading');
+
+ const jsLoadPromise = this.#fetcher.fetchText(`${moduleName}.js`);
+ const wasmLoadPromise = this.#fetcher.fetchCompileWasm(
+ `${moduleName}.wasm`,
+ () => {
+ onProgress('compiling');
+ }
+ );
+
+ const [js, wasm] = await Promise.all([jsLoadPromise, wasmLoadPromise]);
+ return CompiledModule.make(js, wasm, `${moduleName}_entry`, this.#resourceLocator);
+ }
+}
diff --git a/util/wasm/batchedtestrunner/qwasmtestmain.js b/util/wasm/batchedtestrunner/qwasmtestmain.js
new file mode 100644
index 0000000000..a92a3a4b30
--- /dev/null
+++ b/util/wasm/batchedtestrunner/qwasmtestmain.js
@@ -0,0 +1,86 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import { BatchedTestRunner } from './batchedtestrunner.js'
+import { EmrunAdapter, EmrunCommunication } from './emrunadapter.js'
+import {
+ ModuleLoader,
+ ResourceFetcher,
+ ResourceLocator,
+} from './qwasmjsruntime.js';
+import { parseQuery } from './util.js';
+import { VisualOutputProducer, UI, ScannerFactory } from './qtestoutputreporter.js'
+
+const StandardArg = {
+ qVisualOutput: 'qvisualoutput',
+ qTestName: 'qtestname',
+ qBatchedTest: 'qbatchedtest',
+ qUseEmrun: 'quseemrun',
+ qTestOutputFormat: 'qtestoutputformat',
+}
+
+const allArgs = new Set(Object.getOwnPropertyNames(StandardArg).map(arg => StandardArg[arg]));
+Object.defineProperty(StandardArg, 'isKnown', {
+ get()
+ {
+ return name => allArgs.has(name);
+ },
+});
+
+(() => {
+ const setPageTitle = (useEmrun, testName, isBatch) => {
+ document.title = 'Qt WASM test runner';
+ if (useEmrun || testName || isBatch) {
+ document.title += `(${[
+ ...[useEmrun ? ['emrun'] : []],
+ ...[testName ? ['test=' + testName] : []],
+ ...[isBatch ? ['batch'] : []]
+ ].flat().join(", ")})`;
+ }
+ }
+
+ const parsed = parseQuery(location.search);
+ const outputInPage = parsed.has(StandardArg.qVisualOutput);
+ const testName = parsed.get(StandardArg.qTestName);
+ const isBatch = parsed.has(StandardArg.qBatchedTest);
+ const useEmrun = parsed.has(StandardArg.qUseEmrun);
+ const functions = [...parsed.keys()].filter(arg => !StandardArg.isKnown(arg));
+
+ if (testName === undefined) {
+ if (!isBatch)
+ throw new Error('The qtestname parameter is required if not running a batch');
+ } else if (testName === '') {
+ throw new Error(`The qtestname=${testName} parameter is incorrect`);
+ }
+
+ const testOutputFormat = (() => {
+ const format = parsed.get(StandardArg.qTestOutputFormat) ?? 'txt';
+ if (-1 === ['txt', 'xml', 'lightxml', 'junitxml', 'tap'].indexOf(format))
+ throw new Error(`Bad file format: ${format}`);
+ return format;
+ })();
+
+ const resourceLocator = new ResourceLocator('');
+ const testRunner = new BatchedTestRunner(
+ new ModuleLoader(new ResourceFetcher(resourceLocator), resourceLocator),
+ );
+ window.qtTestRunner = testRunner;
+
+ if (useEmrun) {
+ const adapter = new EmrunAdapter(new EmrunCommunication(), testRunner, () => {
+ if (!outputInPage)
+ window.close();
+ });
+ adapter.run();
+ }
+ if (outputInPage) {
+ const scanner = ScannerFactory.createScannerForFormat(testOutputFormat);
+ const ui = new UI(document.querySelector('body'), !!scanner);
+ const adapter =
+ new VisualOutputProducer(ui.outputArea, ui.counters, scanner, testRunner);
+ adapter.run();
+ }
+ setPageTitle(useEmrun, testName, isBatch);
+
+ testRunner.run(isBatch, testName, functions, testOutputFormat);
+})();
diff --git a/util/wasm/batchedtestrunner/util.js b/util/wasm/batchedtestrunner/util.js
new file mode 100644
index 0000000000..a297baf6b2
--- /dev/null
+++ b/util/wasm/batchedtestrunner/util.js
@@ -0,0 +1,31 @@
+// Copyright (C) 2022 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+export function parseQuery() {
+ const trimmed = window.location.search.substring(1);
+ return new Map(
+ trimmed.length === 0 ?
+ [] :
+ trimmed.split('&').map(paramNameAndValue => {
+ const [name, value] = paramNameAndValue.split('=');
+ return [decodeURIComponent(name), value ? decodeURIComponent(value) : ''];
+ }));
+}
+
+export class EventSource {
+ #listeners = [];
+
+ constructor(receivePrivateInterface) {
+ receivePrivateInterface({
+ fireEvent: (arg0, arg1) => this.#fireEvent(arg0, arg1)
+ });
+ }
+
+ addEventListener(listener) {
+ this.#listeners.push(listener);
+ }
+
+ #fireEvent(arg0, arg1) {
+ this.#listeners.forEach(listener => listener(arg0, arg1));
+ }
+}
diff --git a/util/wasm/preload/preload_qml_imports.py b/util/wasm/preload/preload_qml_imports.py
new file mode 100755
index 0000000000..9af4fa2a28
--- /dev/null
+++ b/util/wasm/preload/preload_qml_imports.py
@@ -0,0 +1,101 @@
+#!/usr/bin/env python3
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import subprocess
+import json
+
+# Paths to shared libraries and qml imports on the Qt installation on the web server.
+# "$QTDIR" is replaced by qtloader.js at load time (defaults to "qt"), and makes
+# possible to relocate the application build relative to the Qt build on the web server.
+qt_lib_path = "$QTDIR/lib"
+qt_qml_path = "$QTDIR/qml"
+
+# Path to QML imports on the in-memory file system provided by Emscripten. This script emits
+# preload commands which copies QML imports to this directory. In addition, preload_qt_plugins.py
+# creates (and preloads) a qt.conf file which makes Qt load QML plugins from this location.
+qt_deploy_qml_path = "/qt/qml"
+
+
+def eprint(*args, **kwargs):
+ print(*args, file=sys.stderr, **kwargs)
+
+
+def preload_file(source, destination):
+ preload_files.append({"source": source, "destination": destination})
+
+
+def extract_preload_files_from_imports(imports):
+ libraries = []
+ for qml_import in imports:
+ try:
+ relative_path = qml_import["relativePath"]
+ plugin = qml_import["plugin"]
+
+ # plugin .so
+ plugin_filename = "lib" + plugin + ".so"
+ so_plugin_source_path = os.path.join(
+ qt_qml_path, relative_path, plugin_filename
+ )
+ so_plugin_destination_path = os.path.join(
+ qt_deploy_qml_path, relative_path, plugin_filename
+ )
+
+ preload_file(so_plugin_source_path, so_plugin_destination_path)
+ so_plugin_qt_install_path = os.path.join(
+ qt_wasm_path, "qml", relative_path, plugin_filename
+ )
+
+ # qmldir file
+ qmldir_source_path = os.path.join(qt_qml_path, relative_path, "qmldir")
+ qmldir_destination_path = os.path.join(
+ qt_deploy_qml_path, relative_path, "qmldir"
+ )
+ preload_file(qmldir_source_path, qmldir_destination_path)
+ except Exception as e:
+ eprint(e)
+ continue
+ return libraries
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 4:
+ print("Usage: python preload_qml_imports.py <qml-source-path> <qt-host-path> <qt-wasm-path>")
+ sys.exit(1)
+
+ qml_source_path = sys.argv[1]
+ qt_host_path = sys.argv[2]
+ qt_wasm_path = sys.argv[3]
+
+ qml_import_path = os.path.join(qt_wasm_path, "qml")
+ qmlimportsscanner_path = os.path.join(qt_host_path, "libexec/qmlimportscanner")
+
+ eprint("runing qmlimportsscanner")
+ command = [qmlimportsscanner_path, "-rootPath", qml_source_path, "-importPath", qml_import_path]
+ result = subprocess.run(command, stdout=subprocess.PIPE)
+ imports = json.loads(result.stdout)
+
+ preload_files = []
+ libraries = extract_preload_files_from_imports(imports)
+
+ # Deploy plugin dependencies, that is, shared libraries used by the plugins.
+ # Skip some of the obvious libraries which will be
+ skip_libraries = [
+ "libQt6Core.so",
+ "libQt6Gui.so",
+ "libQt6Quick.so",
+ "libQt6Qml.so" "libQt6Network.so",
+ "libQt6OpenGL.so",
+ ]
+
+ libraries = set(libraries) - set(skip_libraries)
+ for library in libraries:
+ source = os.path.join(qt_lib_path, library)
+ # Emscripten looks for shared libraries on "/", shared libraries
+ # most be deployed there instead of at /qt/lib
+ destination = os.path.join("/", library)
+ preload_file(source, destination)
+
+ print(json.dumps(preload_files, indent=2))
diff --git a/util/wasm/preload/preload_qt_plugins.py b/util/wasm/preload/preload_qt_plugins.py
new file mode 100755
index 0000000000..362d129732
--- /dev/null
+++ b/util/wasm/preload/preload_qt_plugins.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python3
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import sys
+import json
+
+# Path to plugins on the Qt installation on the web server. "$QTPATH" is replaced by qtloader.js
+# at load time (defaults to "qt"), which makes it possible to relocate the application build relative
+# to the Qt build on the web server.
+qt_plugins_path = "$QTDIR/plugins"
+
+# Path to plugins on the in-memory file system provided by Emscripten. This script emits
+# preload commands which copies plugins to this directory.
+qt_deploy_plugins_path = "/qt/plugins"
+
+
+def find_so_files(directory):
+ so_files = []
+ for root, dirs, files in os.walk(directory):
+ for file in files:
+ if file.endswith(".so"):
+ relative_path = os.path.relpath(os.path.join(root, file), directory)
+ so_files.append(relative_path)
+ return so_files
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python make_qt_symlinks.py <qt-wasm-path>")
+ sys.exit(1)
+
+ qt_wasm_path = sys.argv[1]
+
+ # preload all plugins
+ plugins = find_so_files(os.path.join(qt_wasm_path, "plugins"))
+ preload = [
+ {
+ "source": os.path.join(qt_plugins_path, plugin),
+ "destination": os.path.join(qt_deploy_plugins_path, plugin),
+ }
+ for plugin in plugins
+ ]
+
+ # Create and preload qt.conf which will tell Qt to look for plugins
+ # and QML imports in /qt/plugins and /qt/qml. The qt.conf file is
+ # written to the current directory.
+ qtconf = "[Paths]\nPrefix = /qt\n"
+ with open("qt.conf", "w") as f:
+ f.write(qtconf)
+ preload.append({"source": "qt.conf", "destination": "/qt.conf"})
+
+ print(json.dumps(preload, indent=2))
diff --git a/util/wasm/preload/wasm_binary_tools.py b/util/wasm/preload/wasm_binary_tools.py
new file mode 100644
index 0000000000..9a2150b964
--- /dev/null
+++ b/util/wasm/preload/wasm_binary_tools.py
@@ -0,0 +1,78 @@
+
+#!/usr/bin/env python3
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import sys
+import struct
+
+
+class WasmBinary:
+ """For reference of binary format see Emscripten source code, especially library_dylink.js."""
+
+ def __init__(self, filepath):
+ self._offset = 0
+ self._end = 0
+ self._dependencies = []
+ with open(filepath, 'rb') as file:
+ self._binary = file.read()
+ self._check_preamble()
+ self._parse_subsections()
+
+ def get_dependencies(self):
+ return self._dependencies
+
+ def _get_leb(self):
+ ret = 0
+ mul = 1
+ while True:
+ byte = self._binary[self._offset]
+ self._offset += 1
+ ret += (byte & 0x7f) * mul
+ mul *= 0x80
+ if not (byte & 0x80):
+ break
+ return ret
+
+ def _get_string(self):
+ length = self._get_leb()
+ self._offset += length
+ return self._binary[self._offset - length:self._offset].decode('utf-8')
+
+ def _check_preamble(self):
+ preamble = memoryview(self._binary)[:24]
+ int32View = struct.unpack('<6I', preamble)
+ assert int32View[0] == 0x6d736100, "magic number not found"
+ assert self._binary[8] == 0, "dynlink section needs to be first"
+ self._offset = 9
+ section_size = self._get_leb()
+ self._end = self._offset + section_size
+ name = self._get_string()
+ assert name == "dylink.0", "section dylink.0 not found"
+
+ def _parse_subsections(self):
+ WASM_DYLINK_NEEDED = 0x2
+
+ while self._offset < self._end:
+ subsection_type = self._binary[self._offset]
+ self._offset += 1
+ subsection_size = self._get_leb()
+
+ if subsection_type == WASM_DYLINK_NEEDED:
+ needed_dynlibs_count = self._get_leb()
+ for _ in range(needed_dynlibs_count):
+ self._dependencies.append(self._get_string())
+ else:
+ self._offset += subsection_size # we don't care about other sections for now
+
+
+if __name__ == "__main__":
+ if len(sys.argv) != 2:
+ print("Usage: python wasm_binary_tools.py <shared_object>")
+ sys.exit(1)
+
+ file_path = sys.argv[1]
+ binary = WasmBinary(file_path)
+ dependencies = binary.get_dependencies()
+ for d in dependencies:
+ print(d)
diff --git a/util/wasm/qtwasmserver/Pipfile b/util/wasm/qtwasmserver/Pipfile
new file mode 100644
index 0000000000..ef542c1048
--- /dev/null
+++ b/util/wasm/qtwasmserver/Pipfile
@@ -0,0 +1,12 @@
+[[source]]
+url = "https://pypi.org/simple"
+verify_ssl = true
+name = "pypi"
+
+[packages]
+netifaces = "*"
+
+[dev-packages]
+
+[requires]
+python_version = "3.9"
diff --git a/util/wasm/qtwasmserver/qtwasmserver.py b/util/wasm/qtwasmserver/qtwasmserver.py
new file mode 100755
index 0000000000..31dc74539d
--- /dev/null
+++ b/util/wasm/qtwasmserver/qtwasmserver.py
@@ -0,0 +1,124 @@
+#!/usr/bin/env python3
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import os
+import socket
+import ssl
+import sys
+import threading
+from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler
+from subprocess import run
+import netifaces as ni
+import argparse
+
+# This script implements a web server which serves the content of the current
+# working directory using the http and secure https protocols. The server is
+# intented to be used as a development server.
+#
+# Https certificates are generated using the 'mkcert' utility. You should generate
+# a certificate authority first, see the mkcert documentation at
+# https://github.com/FiloSottile/mkcert
+#
+# The server sets the COOP and COEP headers, which are required to enable multithreading.
+
+def main():
+ parser = argparse.ArgumentParser(
+ description="Run a minimal HTTP(S) server to test Qt for WebAssembly applications.",
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter,
+ )
+ parser.add_argument(
+ "--port",
+ "-p",
+ help="Port on which to listen for HTTP and HTTPS (PORT + 1)",
+ type=int,
+ default=8000,
+ )
+ parser.add_argument(
+ "--address",
+ "-a",
+ help="Address on which to listen for HTTP and HTTPS, in addition to localhost",
+ action="append",
+ )
+ parser.add_argument(
+ "--all",
+ help="Start web server which binds to all local interfaces, instead of locahost only",
+ action="store_true",
+ )
+ parser.add_argument(
+ "path", help="The directory to serve", nargs="?", default=os.getcwd()
+ )
+
+ args = parser.parse_args()
+ http_port = args.port
+ https_port = http_port + 1
+ all_addresses = args.all
+ cmd_addresses = args.address or []
+ serve_path = args.path
+
+ addresses = ["127.0.0.1"] + cmd_addresses
+ if all_addresses:
+ addresses += [
+ addr[ni.AF_INET][0]["addr"]
+ for addr in map(ni.ifaddresses, ni.interfaces())
+ if ni.AF_INET in addr
+ ]
+ addresses = sorted(set(addresses)) # deduplicate
+
+ # Generate a https certificate for "localhost" and selected addresses. This
+ # requires that the mkcert utility is installed, and that a certificate
+ # authority key pair (rootCA-key.pem and rootCA.pem) has been generated. The
+ # certificates are written to /tmp, where the https server can find them
+ # later on.
+ cert_base_path = "/tmp/qtwasmserver-certificate"
+ cert_file = f"{cert_base_path}.pem"
+ cert_key_file = f"{cert_base_path}-key.pem"
+ addresses_string = f"localhost {' '.join(addresses)}"
+ ret = run(
+ f"mkcert -cert-file {cert_file} -key-file {cert_key_file} {addresses_string}",
+ shell=True,
+ )
+ has_certificate = ret.returncode == 0
+ if not has_certificate:
+ print(
+ "Warning: mkcert is not installed or was unable to create a certificate. Will not start HTTPS server."
+ )
+
+ # Http request handler which sends headers required to enable multithreading using SharedArrayBuffer.
+ class MyHTTPRequestHandler(SimpleHTTPRequestHandler):
+ def __init__(self, request, client_address, server):
+ super().__init__(request, client_address, server, directory=serve_path)
+
+ def end_headers(self):
+ self.send_header("Cross-Origin-Opener-Policy", "same-origin")
+ self.send_header("Cross-Origin-Embedder-Policy", "require-corp")
+ self.send_header("Cross-Origin-Resource-Policy", "cross-origin")
+ SimpleHTTPRequestHandler.end_headers(self)
+
+ # Serve cwd from http(s)://address:port, with certificates from certdir if set
+ def serve_on_thread(address, port, secure):
+ httpd = ThreadingHTTPServer((address, port), MyHTTPRequestHandler)
+ if secure:
+ httpd.socket = ssl.wrap_socket(
+ httpd.socket,
+ certfile=cert_file,
+ keyfile=cert_key_file,
+ server_side=True,
+ )
+ thread = threading.Thread(target=httpd.serve_forever)
+ thread.start()
+
+ # Start servers
+ print(f"Serving at:")
+ for address in addresses:
+ print(f" http://{address}:{http_port}")
+ serve_on_thread(address, http_port, False)
+
+ if has_certificate:
+ for address in addresses:
+ print(f" https://{address}:{https_port}")
+ serve_on_thread(address, https_port, True)
+
+
+if __name__ == "__main__":
+ main()
diff --git a/util/wasm/wasmtestrunner/Pipfile b/util/wasm/wasmtestrunner/Pipfile
new file mode 100644
index 0000000000..851778a313
--- /dev/null
+++ b/util/wasm/wasmtestrunner/Pipfile
@@ -0,0 +1,13 @@
+[[source]]
+url = "https://pypi.org/simple"
+verify_ssl = true
+name = "pypi"
+
+[packages]
+selenium = "*"
+argparse = "*"
+
+[dev-packages]
+
+[requires]
+python_version = "3.9"
diff --git a/util/wasm/wasmtestrunner/README.md b/util/wasm/wasmtestrunner/README.md
new file mode 100644
index 0000000000..0beb3f0c12
--- /dev/null
+++ b/util/wasm/wasmtestrunner/README.md
@@ -0,0 +1,10 @@
+# qtwasmtestrunner
+This is a utility that launches a small webserver and\
+either a browser or a webdriver (only chrome/chromedriver at the time of writing)\
+This allows running wasm tests and printing the output to stdout like a normal test.
+
+chromedriver must be installed: https://chromedriver.chromium.org/ \
+to use it with chromedriver (default operation), and it must be in PATH\
+unless --chromedriver_path is passed with full path to chromedriver
+
+Run the script with --help for more info.
diff --git a/util/wasm/wasmtestrunner/qt-wasmtestrunner.py b/util/wasm/wasmtestrunner/qt-wasmtestrunner.py
new file mode 100755
index 0000000000..7eb840f1cb
--- /dev/null
+++ b/util/wasm/wasmtestrunner/qt-wasmtestrunner.py
@@ -0,0 +1,331 @@
+#!/usr/bin/env python3
+# Copyright (C) 2021 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+import argparse
+from selenium.webdriver.chrome.service import Service
+from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
+from selenium.webdriver.support import expected_conditions
+from selenium.webdriver.support.ui import WebDriverWait
+from selenium import webdriver
+from pathlib import Path
+import typing
+import http.server
+import subprocess
+import threading
+import psutil
+import re
+import os
+from signal import SIGINT
+
+import sys
+
+
+class StdoutOutputSink(object):
+ def __init__(self):
+ pass
+
+ def write(self, data: str):
+ print(data)
+
+ def __enter__(self):
+ pass
+
+ def __exit__(self, _, __, ___):
+ pass
+
+
+class FileOutputSink(object):
+ def __init__(self, filename: str):
+ self.__filename = filename
+ self.__file = None
+
+ def write(self, data: str):
+ self.__file.write(data)
+
+ def __enter__(self):
+ self.__file = open(self.__filename, 'w')
+
+ def __exit__(self, _, __, ___):
+ self.__file.close()
+
+
+class OutputMulticast(object):
+ def __init__(self, destinations: typing.List[str]):
+ self.__sinks: typing.List[typing.Union[StdoutOutputSink, FileOutputSink]] = [
+ ]
+ self.__destinations = [
+ 'stdout'] if destinations is None else destinations
+ number_of_stdout_sinks = sum(
+ [1 if destination == 'stdout' else 0 for destination in self.__destinations])
+ if number_of_stdout_sinks > 1:
+ raise Exception('Maximum allowed number of stdout sinks is 1')
+
+ def write(self, data: str):
+ for sink in self.__sinks:
+ sink.write(data)
+
+ def _makeSink(self, destination: str):
+ return StdoutOutputSink() if 'stdout' == destination else FileOutputSink(destination)
+
+ def __enter__(self):
+ for destination in self.__destinations:
+ sink = self._makeSink(destination)
+ sink.__enter__()
+ self.__sinks.append(sink)
+ return self
+
+ def __exit__(self, _, __, ___):
+ for sink in reversed(self.__sinks):
+ sink.__exit__(_, __, ___)
+
+
+class WasmTestRunner:
+ def __init__(self, args: dict):
+ self.server_process = None
+ self.browser_process = None
+ self.python_path = Path(sys.executable)
+ self.script_dir = Path(os.path.dirname(os.path.realpath(__file__)))
+ self.host = 'localhost'
+ self.webserver = None
+ self.webthread = None
+
+ paths = ['html_path', 'browser_path', 'chromedriver_path', 'tmp_dir']
+
+ for key, value in args.items():
+ if value is None:
+ continue
+ if key in paths:
+ value = Path(value)
+ value.resolve()
+ setattr(self, key, value)
+
+ if not self.html_path.exists():
+ raise FileNotFoundError(self.html_path)
+
+ self.webroot = self.html_path.parent
+
+ if hasattr(self, 'browser_path') and not self.browser_path.exists():
+ raise FileNotFoundError(self.browser_path)
+
+ def run(self):
+ self.run_threaded_webserver()
+
+ with OutputMulticast(
+ self.output if hasattr(self, 'output') else ['stdout']) as output_multicast:
+ try:
+ if self.use_browser:
+ return self.run_wasm_browser()
+ else:
+ return self.run_wasm_webdriver(output_multicast)
+ finally:
+ self.cleanup()
+
+ def run_webserver(self):
+ webroot = self.html_path.parent.resolve()
+ self.server_process =\
+ subprocess.Popen([
+ str(self.python_path),
+ '-m', 'http.server',
+ '--directory', str(webroot),
+ self.port
+ ])
+
+ def run_threaded_webserver(self):
+ self.webserver = http.server.ThreadingHTTPServer(
+ (self.host, int(self.port)), self.get_http_handler_class())
+
+ self.webthread = threading.Thread(target=self.webserver.serve_forever)
+ self.webthread.start()
+
+ def shutdown_threaded_webserver(self):
+ if self.webserver is not None:
+ self.webserver.shutdown()
+ if self.webthread is not None:
+ self.webthread.join()
+
+ def run_wasm_webdriver(self, output_multicast: OutputMulticast):
+ url = f'http://localhost:{self.port}/{self.html_path.name}'
+ if (self.batched_test is not None):
+ url = f'{url}?qtestname={self.batched_test}&qtestoutputformat={self.format}'
+
+ d = DesiredCapabilities.CHROME
+ d['goog:loggingPrefs'] = {'browser': 'ALL'}
+ ser = Service(executable_path=self.chromedriver_path)
+ driver = webdriver.Chrome(desired_capabilities=d, service=ser)
+ driver.get(url)
+ driver.execute_script(
+ """ const status = qtTestRunner.status;
+ const onFinished = status => {
+ if (status === 'Completed' || status === 'Error')
+ document.title = 'qtFinished';
+ };
+ onFinished(status);
+ qtTestRunner.onStatusChanged.addEventListener(onFinished);
+ """)
+
+ WebDriverWait(driver, self.timeout).until(
+ expected_conditions.title_is('qtFinished'))
+
+ runner_status = driver.execute_script(f"return qtTestRunner.status")
+ if runner_status == 'Error':
+ output_multicast.write(driver.execute_script(
+ "return qtTestRunner.errorDetails"))
+ return -1
+ else:
+ assert runner_status == 'Completed'
+ output_multicast.write(driver.execute_script(
+ f"return qtTestRunner.results.get('{self.batched_test}').textOutput"))
+ return driver.execute_script(
+ f"return qtTestRunner.results.get('{self.batched_test}').exitCode")
+
+ def run_wasm_browser(self):
+ if not hasattr(self, 'browser_path'):
+ print('Error: browser path must be set to run with browser')
+ return
+
+ if not hasattr(self, 'tmp_dir'):
+ print('Error: tmp_dir must be set to run with browser')
+ return
+
+ self.create_tmp_dir()
+ self.browser_process =\
+ subprocess.Popen([
+ str(self.browser_path),
+ '--user-data-dir=' + str(self.tmp_dir),
+ '--enable-logging=stderr',
+ f'http://localhost:{self.port}/{self.html_path.name}'
+ ],
+ stderr=subprocess.PIPE
+ )
+
+ # Only capture the console content
+ regex = re.compile(r'[^"]*CONSOLE[^"]*"(.*)"[.\w]*')
+
+ for line in self.browser_process.stderr:
+ str_line = line.decode('utf-8')
+
+ match = regex.match(str_line)
+
+ # Error condition, this should have matched
+ if 'CONSOLE' in str_line and match is None:
+ print('Error: did not match console line:')
+ print(str_line)
+
+ if match is not None:
+ console_line = match.group(1)
+ print(console_line)
+
+ if 'Finished testing' in str_line:
+ self.browser_process.kill()
+ break
+
+ @staticmethod
+ def get_loader_variable(driver, varname: str):
+ return driver.execute_script('return qtLoader.' + varname)
+
+ def create_tmp_dir(self):
+ if not self.tmp_dir.exists():
+ self.tmp_dir.mkdir()
+
+ if not self.tmp_dir.is_dir():
+ raise NotADirectoryError(self.tmp_dir)
+
+ # Needed to bypass the "Welcome to Chrome" prompt
+ first_run = Path(self.tmp_dir, 'First Run')
+ first_run.touch()
+
+ def get_http_handler_class(self):
+ wtr = self
+
+ class OriginIsolationHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
+ def __init__(self, request, client_address, server):
+ super().__init__(request, client_address, server, directory=wtr.webroot)
+
+ # Headers required to enable SharedArrayBuffer
+ # See https://web.dev/cross-origin-isolation-guide/
+ def end_headers(self):
+ self.send_header("Cross-Origin-Opener-Policy", "same-origin")
+ self.send_header(
+ "Cross-Origin-Embedder-Policy", "require-corp")
+ self.send_header(
+ "Cross-Origin-Resource-Policy", "cross-origin")
+ http.server.SimpleHTTPRequestHandler.end_headers(self)
+
+ # We usually don't care that much about what the webserver is logging
+ def log_message(self, format_, *args):
+ return
+
+ return OriginIsolationHTTPRequestHandler
+
+ def cleanup(self):
+ if self.browser_process is not None:
+ self.browser_process.kill()
+ if self.server_process is not None:
+ self.server_process.kill()
+ self.shutdown_threaded_webserver()
+
+
+class BackendProcess:
+ def __init__(self) -> None:
+ self.__process = subprocess.Popen(
+ [sys.executable, *sys.argv, '--backend'], shell=False, stdout=subprocess.PIPE)
+
+ def abort(self):
+ current_process = psutil.Process(self.__process.pid)
+ children = current_process.children(recursive=True)
+ for child in [*children, current_process]:
+ os.kill(child.pid, SIGINT)
+
+ def communicate(self, timeout):
+ return self.__process.communicate(timeout)[0].decode('utf-8')
+
+ def returncode(self):
+ return self.__process.returncode
+
+
+def main():
+ parser = argparse.ArgumentParser(description='WASM testrunner')
+ parser.add_argument('html_path', help='Path to the HTML file to request')
+ parser.add_argument(
+ '--batched_test', help='Specifies a batched test to run')
+ parser.add_argument('--timeout', help='Test timeout',
+ type=int, default=120)
+ parser.add_argument(
+ '--port', help='Port to run the webserver on', default='8000')
+ parser.add_argument('--use_browser', action='store_true')
+ parser.add_argument('--browser_path', help='Path to the browser to use')
+ parser.add_argument('--chromedriver_path', help='Absolute path to chromedriver',
+ default='chromedriver')
+ parser.add_argument('--tmp_dir', help='Path to the tmpdir to use when using a browser',
+ default='/tmp/wasm-testrunner')
+ parser.add_argument(
+ '-o', help='filename. Filename may be "stdout" to write to stdout.',
+ action='append', dest='output')
+ parser.add_argument(
+ '--format', help='Output format', choices=['txt', 'xml', 'lightxml', 'junitxml', 'tap'],
+ default='txt')
+ parser.add_argument(
+ '--backend', help='Run as a backend process. There are two types of test runner processes - '
+ 'the main monitoring process and the backend processes launched by it. The tests are '
+ 'run on the backend to avoid any undesired behavior, like deadlocks in browser main process, '
+ 'spilling over across test cases.',
+ action='store_true')
+
+ args = parser.parse_args()
+ if not args.backend:
+ backend_process = BackendProcess()
+ try:
+ stdout = backend_process.communicate(args.timeout)
+ print(stdout)
+ return backend_process.returncode()
+ except Exception as e:
+ print(f"Exception while executing test {e}")
+ backend_process.abort()
+ return -1
+
+ return WasmTestRunner(vars(args)).run()
+
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/util/x86simdgen/.gitignore b/util/x86simdgen/.gitignore
new file mode 100644
index 0000000000..e9c3a83dde
--- /dev/null
+++ b/util/x86simdgen/.gitignore
@@ -0,0 +1 @@
+qsimd_x86_p.h
diff --git a/util/x86simdgen/3rdparty/simd-amd.conf b/util/x86simdgen/3rdparty/simd-amd.conf
new file mode 100644
index 0000000000..dd7c214207
--- /dev/null
+++ b/util/x86simdgen/3rdparty/simd-amd.conf
@@ -0,0 +1,35 @@
+# -*- mode: conf; indent-tabs-mode: t -*-
+# Feature CPUID function Bit Required feature
+#mmxext Leaf80000001hEDX 22 # AMD extensions to MMX
+#rdtscp Leaf80000001hEDX 27 # RDTSCP instruction
+#3dnow Leaf80000001hEDX 31 # 3DNow! instructions
+#3dnowext Leaf80000001hEDX 30 # AMD extensions to 3DNow!
+lzcnt Leaf80000001hECX 5 # Leading Zero Count
+sse4a Leaf80000001hECX 6 # SSE4a
+xop Leaf80000001hECX 11 # eXtended Operations
+fma4 Leaf80000001hECX 16 # 4-operand Fused Multiply-Add
+tbm Leaf80000001hECX 21 # Trailing Bit Manipulation
+clzero Leaf80000008hEBX 0 # Cacheline clear and write zero
+wbnoinvd Leaf80000008hEBX 9 # Write Back with No Invalidate
+
+# Processor/arch listing below this line
+# Source: GCC gcc/common/config/i386/i386-common.c
+# Source: Wikipedia
+# Architecture Based on New features
+arch=AmdFam10h x86_64 sse3,sse4a,cx16,popcnt,lzcnt # AMD K10
+arch=BtVer1 AmdFam10h xsave # AMD Bobcat v1
+arch=BtVer2 BtVer1 ssse3,sse4.1,sse4.2,avx,bmi,f16c,movbe,xsaveopt # AMD Bobcat v2
+arch=BdVer1 BtVer1 ssse3,sse4.1,sse4.2,avx,xop,fma4
+arch=BdVer2 BdVer1 bmi,f16c,fma,tbm
+arch=BdVer3 BdVer2 fsgsbase,xsaveopt
+arch=BdVer4 BdVer3 avx2,bmi2,rdrnd,movbe
+arch=ZnVer1 BdVer4 adx,rdseed,clzero,clfushopt,xsavec,xsaves
+arch=ZnVer2 ZnVer1 clwb,wbnoinvd
+
+arch=Barcelona AmdFam10h
+arch=Bulldozer BdVer1 # AMD Bulldozer
+arch=Piledriver BdVer2 # AMD Bulldozer v2 (Piledriver)
+arch=Steamroller BdVer3 # AMD Bulldozer v3 (Steamroller)
+arch=Excavator BdVer4 # AMD Bulldozer v4 (Excavator)
+arch=Zen ZnVer1 # AMD Zen
+arch=Zen2 ZnVer2 # AMD Zen2
diff --git a/util/x86simdgen/3rdparty/simd-intel.conf b/util/x86simdgen/3rdparty/simd-intel.conf
new file mode 100644
index 0000000000..3837855c19
--- /dev/null
+++ b/util/x86simdgen/3rdparty/simd-intel.conf
@@ -0,0 +1,222 @@
+# -*- mode: conf; indent-tabs-mode: t -*-
+# Feature CPUID function Bit Required feature
+#sep Leaf01EDX 11 # Sysenter/sysexit
+#cmov Leaf01EDX 15 # Conditional Move
+#clflush Leaf01EDX 19 # Cache-Line Flush
+#mmx Leaf01EDX 23 # Multi Media Extensions
+#fxsr Leaf01EDX 24 # FXSAVE instruction
+#sse Leaf01EDX 25 # Streaming SIMD Extensions
+sse2 Leaf01EDX 26 # Streaming SIMD Extensions 2
+# -- everything above this line is mandatory on x86-64 --
+sse3 Leaf01ECX 0 # Streaming SIMD Extensions 3
+#pclmul Leaf01ECX 1 # Carryless Multiply
+ssse3 Leaf01ECX 9 # Supplemental Streaming SIMD Extensions 3
+fma Leaf01ECX 12 # Fused Multiply-Add
+#cx16 Leaf01ECX 13 # Compare-Exchange 16 bytes
+sse4.1 Leaf01ECX 19 # Streaming SIMD Extensions 4.1
+sse4.2 Leaf01ECX 20 # Streaming SIMD Extensions 4.2
+movbe Leaf01ECX 22 # MOV Big Endian
+popcnt Leaf01ECX 23 # Population count
+aes Leaf01ECX 25 sse4.2 # Advenced Encryption Standard
+#xsave Leaf01ECX 26 # XSAVE, XGETBV instructions
+#osxsave Leaf01ECX 27 # XSAVE enabled by OS
+avx Leaf01ECX 28 # Advanced Vector Extensions
+f16c Leaf01ECX 29 avx # 16-bit Float Conversion
+rdrnd Leaf01ECX 30 # Random number generator
+#hypervisor Leaf01ECX 31 # Running on a hypervisor
+#fsgsbase Leaf07_00EBX 0 # FS/GS base access
+bmi Leaf07_00EBX 3 # Bit Manipulation Instructions
+#hle Leaf07_00EBX 4 # Hardware Lock Ellision
+avx2 Leaf07_00EBX 5 avx # Advanced Vector Extensions 2
+bmi2 Leaf07_00EBX 8 # Bit Manipulation Instructions 2
+#erms Leaf07_00EBX 9 # Enhanced REP MOVSB/STOSB
+#rtm Leaf07_00EBX 11 # Restricted Transactional Memory
+#rdt_m Leaf07_00EBX 12 # Resource Director Technology (RDT) Monitoring
+#mpx Leaf07_00EBX 14 # Memory Protection Extensions
+#rdt_a Leaf07_00EBX 12 # Resource Director Technology (RDT) Allocation
+avx512f Leaf07_00EBX 16 avx # AVX512 Foundation
+avx512dq Leaf07_00EBX 17 avx512f # AVX512 Double & Quadword
+rdseed Leaf07_00EBX 18 # Random number generator for seeding
+#adx Leaf07_00EBX 19 # Multi-Precision Add-Carry
+avx512ifma Leaf07_00EBX 21 avx512f # AVX512 Integer Fused Multiply-Add
+#clflushopt Leaf07_00EBX 23 # Cache-Fline Flush Optimized
+#clwb Leaf07_00EBX 24 # Cache-Line Write Back
+#avx512pf Leaf07_00EBX 26 avx512f # AVX512 Prefetch
+#avx512er Leaf07_00EBX 27 avx512f # AVX512 Exponential & Reciprocal
+avx512cd Leaf07_00EBX 28 avx512f # AVX512 Conflict Detection
+sha Leaf07_00EBX 29 # SHA-1 and SHA-256 instructions
+avx512bw Leaf07_00EBX 30 avx512f # AVX512 Byte & Word
+avx512vl Leaf07_00EBX 31 avx512f # AVX512 Vector Length
+avx512vbmi Leaf07_00ECX 1 avx512f # AVX512 Vector Byte Manipulation Instructions
+#pku Leaf07_00ECX 3 # Protection Keys for User mode
+#ospke Leaf07_00ECX 4 # Protection Keys Enabled by OS
+waitpkg Leaf07_00ECX 5 # User-Level Monitor / Wait
+avx512vbmi2 Leaf07_00ECX 6 avx512f # AVX512 Vector Byte Manipulation Instructions 2
+shstk Leaf07_00ECX 7 # Control Flow Enforcement Technology Shadow Stack
+gfni Leaf07_00ECX 8 # Galois Field new instructions
+vaes Leaf07_00ECX 9 avx2,avx,aes # 256- and 512-bit AES
+#vpclmulqdq Leaf07_00ECX 10 avx # 256- and 512-bit Carryless Multiply
+#avx512vnni Leaf07_00ECX 11 avx512f # AVX512 Vector Neural Network Instructions
+avx512bitalg Leaf07_00ECX 12 avx512f # AVX512 Bit Algorithms
+avx512vpopcntdq Leaf07_00ECX 14 avx512f # AVX512 Population Count
+#la57 Leaf07_00ECX 16 # 5-level page tables
+#rdpid Leaf07_00ECX 22 # RDPID instruction
+#cldemote Leaf07_00ECX 25 # Cache Line Demotion
+#movdiri Leaf07_00ECX 27 # Move Direct-store Integer
+#movdir64b Leaf07_00ECX 28 # Move Direct-store 64 bytes
+#enqcmd Leaf07_00ECX 29 # Enqueue Command
+#pks Leaf07_00ECX 31 # Protection Keys for Supervisor mode
+#avx5124nniw Leaf07_00EDX 2 avx512f # AVX512 4-iteration Vector Neural Network Instructions
+#avx5124fmaps Leaf07_00EDX 3 avx512f # AVX512 4-iteration Fused Multiply Accumulation
+#fsrm Leaf07_00EDX 4 # Fast Short REP MOV
+#uintr Leaf07_00EDX 5 # User interrupts
+#avx512vp2intersect Leaf07_00EDX 8 avx512f # AVX512 Intersection computation
+#serialize Leaf07_00EDX 14 # SERIALIZE instruction
+hybrid Leaf07_00EDX 15 # Hybrid processor
+#tsxldtrk Leaf07_00EDX 16 # TDX (RTM) Suspend Load Address Tracking
+#pconfig Leaf07_00EDX 18 # Platform configuration
+ibt Leaf07_00EDX 20 # Control Flow Enforcement Technology Indirect Branch Tracking
+#amxbf16 Leaf07_00EDX 22 amxtile # AMX Tile multiplication in BFloat16
+avx512fp16 Leaf07_00EDX 23 avx512f,f16c # AVX512 16-bit Floating Point
+#amx-tile Leaf07_00EDX 24 # Advanced Matrix Extensions Tile support
+#amx-int8 Leaf07_00EDX 25 amx-tile # AMX Tile multiplication for Int8
+raoint Leaf07_01EAX 3 # Remote Atomic Operations, Integer
+#avxvnni Leaf07_01EAX 4 avx # AVX (VEX-encoded) versions of the Vector Neural Network Instructions
+#avx512bf16 Leaf07_01EAX 5 avx512f # AVX512 Brain Float16
+cmpccxadd Leaf07_01EAX 6 # CMPccXADD instructions
+#zlmovsb Leaf07_01EAX 10 # Zero-length MOVSB
+#fsrs Leaf07_01EAX 11 # Fast Short (REP?) STOSB
+#fsrc Leaf07_01EAX 12 # Fast Short (REP?) CMPSB, SCASB
+#fred Leaf07_01EAX 17 # Flexible Return and Event Delivery
+#lkgs Leaf07_01EAX 18 # Load into Kernel GS
+#amx-fp16 Leaf07_01EAX 21 amx-tile # AMX Tile multiplication in FP16
+avxifma Leaf07_01EAX 23 avx # AVX-IFMA instructions
+lam Leaf07_01EAX 26 # Linear Address Masking
+#avxvnniint8 Leaf07_01EDX 4 avx # AVX Vector Neural Network Instructions, Int8
+#avxneconvert Leaf07_01EDX 5 avx # AVX Non-Exception BF16/FP16/FP32 Conversion instructions
+#amx-complex Leaf07_01EDX 8 amx-tile # AMX Complex Matrix multiplication
+#prefetchiti Leaf07_01EDX 14 # PREFETCHIT0/1 instructions
+#xsaveopt Leaf13_01EAX 0 # Optimized XSAVE
+#xsavec Leaf13_01EAX 1 # XSAVE with Compaction
+#xgetbv1 Leaf13_01EAX 2 # XGETBV with ECX=1
+#xsaves Leaf13_01EAX 3 # XSAVE Supervisor mode
+#xfd Leaf13_01EAX 4 # eXtended Feature Disable MSR
+#lzcnt Leaf80000001hECX 5 # Leading Zero Count
+
+# XSAVE states
+# Source: Intel Software Development Manual, Volume 1, Chapter 13
+# Source: Intel Instruction Set Extensions Manual (ed. 041), Chapter 3, "Intel AMX Instruction Set"
+# Grouping Value Required for
+xsave=X87 0x0001 # X87 and MMX state
+xsave=SseState 0x0002 sse # SSE: 128 bits of XMM registers
+xsave=Ymm_Hi128 0x0004 # AVX: high 128 bits in YMM registers
+xsave=Bndregs 0x0008 # Memory Protection Extensions
+xsave=Bndcsr 0x0010 # Memory Protection Extensions
+xsave=OpMask 0x0020 # AVX512: k0 through k7
+xsave=Zmm_Hi256 0x0040 # AVX512: high 256 bits of ZMM0-15
+xsave=Hi16_Zmm 0x0080 # AVX512: all 512 bits of ZMM16-31
+xsave=PTState 0x0100 # Processor Trace
+xsave=PKRUState 0x0200 pku # Protection Key
+# ??? 0x0400
+xsave=CetUState 0x0800 # CET: user mode
+xsave=CetSState 0x1000 # CET: supervisor mode
+xsave=HdcState 0x2000 # Hardware Duty Cycle
+xsave=UintrState 0x4000 uintr # User Interrupts
+# ??? 0x8000
+xsave=HwpState 0x10000 # Hardware P-State
+xsave=Xtilecfg 0x20000 # AMX: XTILECFG register
+xsave=Xtiledata 0x40000 # AMX: data in the tiles
+xsave=AvxState SseState|Ymm_Hi128 avx,fma,avx512f
+xsave=MPXState Bndregs|Bndcsr mpx
+xsave=Avx512State AvxState|OpMask|Zmm_Hi256|Hi16_Zmm avx512f
+xsave=CetState CetUState|CetSState shstk
+xsave=AmxState Xtilecfg|Xtiledata amx-tile
+
+# Processor/arch listing below this line
+# Source: Intel Instruction Set Extension manual, section 1.2
+# Source: GCC gcc/config/i386/i386.h, i386-c.c, i386-builtins.c
+# Architecture Based on New features
+arch=x86_64 <> sse2
+ # Core line
+arch=Core2 x86_64 sse3,ssse3,cx16
+arch=NHM Core2 sse4.1,sse4.2,popcnt
+arch=WSM NHM
+arch=SNB WSM avx
+arch=IVB SNB f16c,rdrnd,fsgsbase
+arch=HSW IVB avx2,fma,bmi,bmi2,lzcnt,movbe # hle,rtm
+arch=BDW HSW adx,rdseed
+arch=BDX BDW
+arch=SKL BDW xsavec,xsaves
+arch=SKX SKL avx512f,avx512dq,avx512cd,avx512bw,avx512vl #clwb
+arch=CLX SKX avx512vnni
+arch=CPX CLX avx512bf16
+arch=PLC SKX avx512ifma,avx512vbmi #sha
+arch=SNC PLC avx512vbmi2,gfni,vaes,vpclmulqdq,avx512vnni,avx512bitalg,avx512vpopcntdq #fsrm,rdpid
+arch=WLC SNC shstk,movdiri,movdir64b,ibt,keylocker # avx512vp2intersect
+arch=GLC WLC avx512bf16,avxvnni,cldemote,waitpkg,serialize,uintr # tsxldtrk
+arch=RPC GLC
+arch=RWC RPC prefetchiti
+ # Atom line
+arch=SLM WSM rdrnd,movbe
+arch=GLM SLM fsgsbase,rdseed,lzcnt,xsavec,xsaves
+arch=TNT GLM clwb,gfni,cldemote,waitpkg,movdiri,movdir64b
+arch=GRT SKL avxvnni,gfni,vaes,vpclmulqdq,serialize,shstk,cldemote,movdiri,movdir64b,ibt,waitpkg,keylocker # rdpid
+arch=CMT GRT cmpccxadd,avxifma,avxneconvert,avxvnniint8
+ # Xeon Phi line
+#arch=KNL SKL avx512f,avx512er,avx512pf,avx512cd
+#arch=KNM KNL avx5124fmaps,avx5124vnniw,avx512vpopcntdq
+ # Hybrids and other names
+arch=CNL PLC
+arch=ICL SNC
+arch=TGL WLC
+arch=ADL GRT
+arch=RPL GRT
+arch=MTL CMT
+arch=ARL CMT
+arch=LNL CMT
+arch=ICX SNC pconfig
+arch=SPR GLC pconfig,amx-tile,amx-bf16,amx-int8
+arch=EMR SPR
+arch=GNR GLC pconfig,amx-tile,amx-bf16,amx-int8,amx-fp16,amx-complex
+arch=SRF CMT cmpccxadd,avxifma,avxneconvert,avxvnniint8
+arch=GRR SRF raoint
+arch=CWF SRF
+ # Longer names
+arch=Nehalem NHM # Intel Core i3/i5/i7
+arch=Westmere WSM # Intel Core i3/i5/i7
+arch=SandyBridge SNB # Second Generation Intel Core i3/i5/i7
+arch=IvyBridge IVB # Third Generation Intel Core i3/i5/i7
+arch=Haswell HSW # Fourth Generation Intel Core i3/i5/i7
+arch=Broadwell BDW # Fifth Generation Intel Core i3/i5/i7
+arch=Skylake SKL # Sixth Generation Intel Core i3/i5/i7
+arch=Skylake-Avx512 SKX # Intel Xeon Scalable
+arch=CascadeLake CLX # Second Generation Intel Xeon Scalable
+arch=CooperLake CPX # Third Generation Intel Xeon Scalable
+arch=PalmCove PLC
+arch=CannonLake CNL # Intel Core i3-8121U
+arch=SunnyCove SNC
+arch=IceLake-Client ICL # Tenth Generation Intel Core i3/i5/i7
+arch=IceLake-Server ICX # Third Generation Intel Xeon Scalable
+arch=WillowCove WLC
+arch=TigerLake TGL # Eleventh Generation Intel Core i3/i5/i7
+arch=GoldenCove GLC
+arch=AlderLake ADL # Twelfth Generation Intel Core
+arch=RaptorCove RPC
+arch=RaptorLake RPL # Thirteenth Generation Intel Core
+arch=RedwoodCove RWC
+arch=MeteorLake MTL
+arch=ArrowLake ARL
+arch=LunarLake LNL
+arch=SapphireRapids SPR # Fourth Generation Intel Xeon Scalable
+arch=EmeraldRapids EMR # Fifth Generation Intel Xeon Scalable
+arch=GraniteRapids GNR
+arch=Silvermont SLM
+arch=Goldmont GLM
+arch=Tremont TNT
+arch=Gracemont GRT
+arch=Crestmont CMT
+arch=GrandRidge GRR
+arch=SierraForest SRF
+arch=ClearwaterForest CWF
+#arch=KnightsLanding KNL
+#arch=KnightsMill KNM
diff --git a/util/x86simdgen/3rdparty/x86simd_generate.pl b/util/x86simdgen/3rdparty/x86simd_generate.pl
new file mode 100755
index 0000000000..66bb1bbd9c
--- /dev/null
+++ b/util/x86simdgen/3rdparty/x86simd_generate.pl
@@ -0,0 +1,354 @@
+#!/usr/bin/env perl
+
+# Copyright 2022 Intel Corporation.
+# SPDX-License-Identifier: Apache-2.0
+
+use strict;
+$\ = "\n";
+$/ = "\n";
+my $debug = 0;
+my %leaves = (
+ Leaf01ECX => "CPUID Leaf 1, ECX",
+ Leaf07_00EBX => "CPUID Leaf 7, Sub-leaf 0, EBX",
+ Leaf07_00ECX => "CPUID Leaf 7, Sub-leaf 0, ECX",
+ Leaf07_00EDX => "CPUID Leaf 7, Sub-leaf 0, EDX",
+ Leaf07_01EAX => "CPUID Leaf 7, Sub-leaf 1, EAX",
+ Leaf07_01EDX => "CPUID Leaf 7, Sub-leaf 1, EDX",
+ Leaf13_01EAX => "CPUID Leaf 13, Sub-leaf 1, EAX",
+ Leaf80000001hECX => "CPUID Leaf 80000001h, ECX",
+ Leaf80000008hEBX => "CPUID Leaf 80000008h, EBX",
+);
+my @leafNames = sort keys %leaves;
+
+# out of order (we want it first)
+unshift @leafNames, "Leaf01EDX";
+$leaves{Leaf01EDX} = "CPUID Leaf 1, EDX";
+
+# Read input from file specified by first argument
+my $input_conf_file = shift @ARGV;
+open(FH, '<', $input_conf_file) or die $!;
+
+my $i = 0;
+my @features;
+my %feature_ids;
+my @architecture_names;
+my %architectures;
+my @xsaveStates;
+my $maxarchnamelen = 0;
+while (<FH>) {
+ chomp $_;
+ m/#\s*(.*)\s*/;
+ my $comment = $1;
+
+ s/#.*$//;
+ s/^\s+//;
+ next if $_ eq "";
+
+ if (s/^arch=//) {
+ my ($arch, $based, $f) = split /\s+/;
+ die("Unknown base architecture \"$based\"")
+ unless $based eq "<>" or grep {$_ eq $based} @architecture_names;
+ my $id = lc($arch);
+ $id =~ s/[^A-Za-z0-9_]/_/g;
+
+ my $prettyname = $arch;
+ $prettyname =~ s/\B([A-Z])/ $1/g;
+ $prettyname =~ s/-(\w+)/ ($1)/g;
+ $maxarchnamelen = length($prettyname) if length($prettyname) > $maxarchnamelen;
+
+ my @basefeatures;
+ my @extrafeatures;
+ @basefeatures = @{$architectures{$based}->{allfeatures}} if $based ne "<>";
+ @extrafeatures = @{$architectures{$arch}{features}} if defined($architectures{$arch});
+ @extrafeatures = (@extrafeatures, split(',', $f));
+ my @allfeatures = sort { $feature_ids{$a} <=> $feature_ids{$b} } (@basefeatures, @extrafeatures);
+
+ $architectures{$arch} = {
+ name => $arch,
+ prettyname => $prettyname,
+ id => $id,
+ base => $based,
+ features => \@extrafeatures,
+ allfeatures => \@allfeatures,
+ comment => $comment
+ };
+ push @architecture_names, $arch
+ unless grep {$_ eq $arch} @architecture_names;
+ } elsif (s/^xsave=//) {
+ my ($name, $value, $required) = split /\s+/;
+ push @xsaveStates,
+ { id => $name, value => $value, required_for => $required, comment => $comment };
+ } else {
+ my ($name, $function, $bit, $depends) = split /\s+/;
+ die("Unknown CPUID function \"$function\"")
+ unless grep {$_ eq $function} @leafNames;
+ if (my @match = grep { $_->{name} eq $name } @features) {
+ die("internal error") if scalar @match != 1;
+ next if $match[0]->{function} eq $function &&
+ $match[0]->{bit} eq $bit && $match[0]->{depends} eq $depends;
+ die("Duplicate feature \"$name\" with different details. " .
+ "Previously was $match[0]->{function} bit $match[0]->{bit}.");
+ }
+
+ my $id = uc($name);
+ $id =~ s/[^A-Z0-9_]/_/g;
+ push @features,
+ { name => $name, depends => $depends, id => $id, bit => $bit, leaf => $function, comment => $comment };
+ $feature_ids{$name} = $i;
+ ++$i;
+ die("Too many features to fit a 64-bit integer") if $i > 64;
+ }
+}
+close FH;
+
+# Print the header output
+my $headername = "";
+my $headerguard = "";
+if ($headername = shift @ARGV) {
+
+ $headerguard = uc($headername);
+ $headerguard =~ s/[^A-Z0-9_]/_/g;
+
+ print qq|// This is a generated file. DO NOT EDIT.
+// Please see $0
+#ifndef $headerguard
+#define $headerguard
+
+#include <stdint.h>|;
+} else {
+ $debug = 1;
+}
+
+# Print the feature list
+my $lastleaf;
+for (my $i = 0; $i < scalar @features; ++$i) {
+ my $feature = $features[$i];
+ # Leaf header:
+ printf "\n// in %s:\n", $leaves{$feature->{leaf}}
+ if $feature->{leaf} ne $lastleaf;
+ $lastleaf = $feature->{leaf};
+
+ # Feature
+ printf "#define cpu_feature_%-31s (UINT64_C(1) << %d)\n", lc($feature->{id}), $i;
+}
+
+# Print the architecture list
+print "\n// CPU architectures";
+for (@architecture_names) {
+ my $arch = $architectures{$_};
+ my $base = $arch->{base};
+ if ($base eq "<>") {
+ $base = "0";
+ } else {
+ $base =~ s/[^A-Za-z0-9_]/_/g;
+ $base = "cpu_" . $base;
+ }
+
+ printf "#define cpu_%-19s (%s", lc($arch->{id}), lc($base);
+
+ for my $f (@{$arch->{features}}) {
+ my @match = grep { $_->{name} eq $f } @features;
+ if (scalar @match == 1) {
+ printf " \\\n%33s| cpu_feature_%s", " ", lc($match[0]->{id});
+ } else {
+ printf STDERR "%s: unknown feature '%s' for CPU '%s'\n", $0, $f, $arch->{name}
+ if $debug;
+ }
+ }
+ print ")";
+}
+
+print "\n// __attribute__ target strings for GCC and Clang";
+for (my $i = 0; $i < scalar @features; ++$i) {
+ my $feature = $features[$i];
+ my $str = $feature->{name} . ',' . $feature->{depends};
+ $str =~ s/,$//;
+ printf "#define QT_FUNCTION_TARGET_STRING_%-17s \"%s\"\n",
+ $feature->{id}, $str;
+}
+for (@architecture_names) {
+ my $arch = $architectures{$_};
+ my $base = $arch->{base};
+ my $featurestr = "";
+ if ($base ne "<>") {
+ $featurestr = "QT_FUNCTION_TARGET_STRING_ARCH_" . uc($base);
+ }
+
+ my @features = @{$arch->{features}};
+ #@features = map { defined($feature_ids{$_}) ? $_ : () } @features;
+ if (scalar @features) {
+ $featurestr .= ' ",' if length $featurestr;
+ $featurestr .= '"' unless length $featurestr;
+ $featurestr .= join(',', @features);
+ $featurestr .= '"';
+ }
+ printf "#define QT_FUNCTION_TARGET_STRING_ARCH_%-12s %s\n", uc($arch->{id}), $featurestr;
+}
+
+print q{
+static const uint64_t _compilerCpuFeatures = 0};
+
+# And print the compiler-enabled features part:
+for (my $i = 0; $i < scalar @features; ++$i) {
+ my $feature = $features[$i];
+ printf
+ "#ifdef __%s__\n" .
+ " | cpu_feature_%s\n" .
+ "#endif\n",
+ $feature->{id}, lc($feature->{id});
+}
+
+print ' ;';
+if ($headerguard ne "") {
+ print q|
+#if (defined __cplusplus) && __cplusplus >= 201103L
+enum X86CpuFeatures : uint64_t {|;
+
+ for (@features) {
+ my $line = sprintf "CpuFeature%s = cpu_feature_%s,", $_->{id}, lc($_->{id});
+ if ($_->{comment} ne "") {
+ printf " %-56s ///< %s\n", $line, $_->{comment};
+ } else {
+ print " $line";
+ }
+ }
+
+print qq|}; // enum X86CpuFeatures
+
+enum X86CpuArchitectures : uint64_t {|;
+
+ for (@architecture_names) {
+ my $arch = $architectures{$_};
+ my $name = $arch->{name};
+ $name =~ s/[^A-Za-z0-9]//g;
+ my $line = sprintf "CpuArch%s = cpu_%s,", $name, lc($arch->{id});
+ if ($arch->{comment} ne "") {
+ printf " %-56s ///< %s\n", $line, $arch->{comment};
+ } else {
+ print " $line";
+ }
+ }
+
+ print qq|}; // enum X86cpuArchitectures
+#endif /* C++11 */\n|;
+};
+
+print "// -- implementation start --\n";
+# Now generate the string table and bit-location array
+my $offset = 0;
+my @offsets;
+print "static const char features_string[] =";
+for my $feature (@features) {
+ print " \" $feature->{name}\\0\"";
+ push @offsets, $offset;
+ $offset += 2 + length($feature->{name});
+}
+print " \"\\0\";";
+
+# Print the string offset table
+printf "\nstatic const %s features_indices[] = {",
+ $offset > 255 ? "uint16_t" : "uint8_t";
+for (my $j = 0; $j < scalar @offsets; ++$j) {
+ printf "%s%3d,",
+ $j % 8 ? " " : "\n ", $offsets[$j];
+}
+print "\n};";
+
+# Print the locator enum and table
+print "\nenum X86CpuidLeaves {";
+map { print " $_," } @leafNames;
+print " X86CpuidMaxLeaf\n};";
+
+my $type = scalar keys %leaves > 8 ? "uint16_t" : "uint8_t";
+printf "\nstatic const %s x86_locators[] = {\n",
+ $type, $type;
+for (my $j = 0; $j < scalar @features; ++$j) {
+ my $feature = $features[$j];
+ printf " %s*32 + %2d, %s// %s\n",
+ $feature->{leaf}, $feature->{bit}, ' ' x (24 - length($feature->{leaf})), $feature->{name};
+}
+print '};';
+
+# Generate the processor name listing, sorted by feature length
+my %sorted_archs;
+for (@architecture_names) {
+ my $arch = $architectures{$_};
+ my $key = sprintf "%02d_%s", scalar(@{$arch->{allfeatures}}), join(',', @{$arch->{allfeatures}});
+ $sorted_archs{$key} = $arch;
+}
+print qq|
+struct X86Architecture
+{
+ uint64_t features;
+ char name[$maxarchnamelen + 1];
+};
+
+static const struct X86Architecture x86_architectures[] = {|;
+for (sort keys %sorted_archs) {
+ my $arch = $sorted_archs{$_};
+ next if $arch->{base} eq "<>";
+ printf " { cpu_%s, \"%s\" },\n", $arch->{id}, $arch->{prettyname};
+}
+print "};";
+
+# Produce the list of XSAVE states
+print "\nenum XSaveBits {";
+my $xsaveEnumPrefix = "XSave_";
+for my $state (@xsaveStates) {
+ my $value = $state->{value};
+ unless ($value =~ /^0x/) {
+ # Compound value
+ $value = join(" | ", map { $xsaveEnumPrefix . $_ } split(/\|/, $value));
+ }
+ printf " %s%-12s = %s,", $xsaveEnumPrefix, $state->{id}, $value;
+ printf "%s// %s", ' ' x (18 - length($value)), $state->{comment}
+ if $state->{comment} ne '';
+ printf "\n";
+};
+print "};";
+
+# Produce a list of features require extended XSAVE state
+my $xsaveRequirementMapping;
+for my $state (@xsaveStates) {
+ my $xsaveReqPrefix = "XSaveReq_";
+ my @required_for = split /,/, $state->{required_for};
+ next unless scalar @required_for;
+
+ my $prefix = sprintf "\n// List of features requiring %s%s\nstatic const uint64_t %s%s = 0",
+ $xsaveEnumPrefix, $state->{id}, $xsaveReqPrefix, $state->{id};
+
+ # match either the feature name or one of its requirements against list
+ # of features that this state is required for
+ for my $feature (@features) {
+ my $id = lc($feature->{id});
+ my $required = 0;
+ for my $requirement (@required_for) {
+ my @depends = split /,/, "$id," . $feature->{depends};
+ $required = grep { $_ eq $requirement } @depends;
+ last if $required;
+ }
+ printf "$prefix\n | cpu_feature_%s", $id if $required;
+ $prefix = "" if $required;
+ }
+
+ if ($prefix eq "") {
+ # we printed something
+ print ";";
+ $xsaveRequirementMapping .= sprintf " { %s%s, %s%s },\n",
+ $xsaveReqPrefix, $state->{id}, $xsaveEnumPrefix, $state->{id};
+ }
+}
+
+# Finally, make a table
+printf qq|
+struct XSaveRequirementMapping
+{
+ uint64_t cpu_features;
+ uint64_t xsave_state;
+};
+
+static const struct XSaveRequirementMapping xsave_requirements[] = {
+%s};
+
+// -- implementation end --
+#endif /* $headerguard */\n|, $xsaveRequirementMapping if $xsaveRequirementMapping ne "";
diff --git a/util/x86simdgen/Makefile b/util/x86simdgen/Makefile
new file mode 100644
index 0000000000..8f4dcbf4e8
--- /dev/null
+++ b/util/x86simdgen/Makefile
@@ -0,0 +1,22 @@
+GENERATOR = 3rdparty/x86simd_generate.pl
+TARGETDIR = ../../src/corelib/global/
+TARGETCPP = qsimd_x86.cpp
+TARGETHEADER = qsimd_x86_p.h
+
+CONF_FILES = 3rdparty/simd-intel.conf
+# We don't currently use any feature from simd-amd.conf
+# CONF_FILES += 3rdparty/simd-amd.conf
+
+all: $(TARGETDIR)/$(TARGETHEADER) $(TARGETDIR)/$(TARGETCPP)
+$(TARGETHEADER): $(CONF_FILES) | $(GENERATOR)
+ cat $^ | perl $(GENERATOR) /dev/stdin $@ > $@
+$(TARGETDIR)/$(TARGETHEADER): header $(TARGETHEADER)
+ sed '/-- implementation start --/,/-- implementation end --/d' $^ | \
+ sed 's!3rdparty/x86simd_generate\.pl!util/x86simdgen/README.md!' > $@
+$(TARGETDIR)/$(TARGETCPP): $(TARGETHEADER) header
+ (sed '/^$$/q' header; \
+ echo '#include "$(TARGETHEADER)"'; \
+ sed '1,/-- implementation start --/d;/-- implementation end --/,$$d' $<) > $@
+
+clean:
+ -$(RM) $(TARGETHEADER)
diff --git a/util/x86simdgen/README.md b/util/x86simdgen/README.md
new file mode 100644
index 0000000000..83f554a84e
--- /dev/null
+++ b/util/x86simdgen/README.md
@@ -0,0 +1,13 @@
+# Scripts to regenerate the x86 SIMD flags
+
+Upstream: https://github.com/opendcdiag/opendcdiag
+License: Apache-2.0
+
+The .conf files are meant to be edited and the options we want to use
+are uncommented.
+
+To regenerate:
+ make
+
+Note: the license of the script does not affect the produced output's
+license. Therefore, no qt_attribution.json file is provided.
diff --git a/util/x86simdgen/generate.pl b/util/x86simdgen/generate.pl
deleted file mode 100755
index b3e7e99298..0000000000
--- a/util/x86simdgen/generate.pl
+++ /dev/null
@@ -1,277 +0,0 @@
-#!/usr/bin/env perl
-#############################################################################
-##
-## Copyright (C) 2018 Intel Corporation.
-## Contact: https://www.qt.io/licensing/
-##
-## This file is part of the build configuration tools of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:MIT$
-## Permission is hereby granted, free of charge, to any person obtaining a copy
-## of this software and associated documentation files (the "Software"), to deal
-## in the Software without restriction, including without limitation the rights
-## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-## copies of the Software, and to permit persons to whom the Software is
-## furnished to do so, subject to the following conditions:
-##
-## The above copyright notice and this permission notice shall be included in
-## all copies or substantial portions of the Software.
-##
-## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-## THE SOFTWARE.
-## $QT_END_LICENSE$
-##
-#############################################################################
-
-use strict;
-$\ = "\n";
-$/ = "\n";
-my %leaves = (
- Leaf1EDX => "CPUID Leaf 1, EDX",
- Leaf1ECX => "CPUID Leaf 1, ECX",
- Leaf7_0EBX => "CPUID Leaf 7, Sub-leaf 0, EBX",
- Leaf7_0ECX => "CPUID Leaf 7, Sub-leaf 0, ECX",
- Leaf7_0EDX => "CPUID Leaf 7, Sub-leaf 0, EDX",
-);
-my @leafNames = sort keys %leaves;
-
-# Read data from stdin
-my $i = 1;
-my @features;
-while (<STDIN>) {
- s/#.*$//;
- chomp;
- next if $_ eq "";
-
- my ($name, $function, $bit, $depends) = split /\s+/;
- die("Unknown CPUID function \"$function\"")
- unless grep $function, @leafNames;
-
- my $id = uc($name);
- $id =~ s/[^A-Z0-9_]/_/g;
- push @features,
- { name => $name, depends => $depends, id => $id, bit => $bit, leaf => $function };
- ++$i;
-}
-
-if (my $h = shift @ARGV) {
- open HEADER, ">", $h;
- select HEADER;
-}
-
-# Print the qsimd_x86_p.h output
-print q{/****************************************************************************
-**
-** Copyright (C) 2018 Intel Corporation.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// This is a generated file. DO NOT EDIT.
-// Please see util/x86simdgen/generate.pl";
-#ifndef QSIMD_P_H
-# error "Please include <private/qsimd_p.h> instead"
-#endif
-#ifndef QSIMD_X86_P_H
-#define QSIMD_X86_P_H
-
-#include "qsimd_p.h"
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-QT_BEGIN_NAMESPACE
-
-// used only to indicate that the CPU detection was initialized
-#define QSimdInitialized (Q_UINT64_C(1) << 0)};
-
-# Print the enum
-my $lastleaf;
-for (my $i = 0; $i < scalar @features; ++$i) {
- my $feature = $features[$i];
- # Leaf header:
- printf "\n// in %s:\n", $leaves{$feature->{leaf}}
- if $feature->{leaf} ne $lastleaf;
- $lastleaf = $feature->{leaf};
-
- # Feature
- printf "#define CpuFeature%-33s (Q_UINT64_C(1) << %d)\n", $feature->{id}, $i + 1;
-
- # Feature string names for Clang and GCC
- my $str = $feature->{name};
- $str .= ",$feature->{depends}" if defined($feature->{depends});
- printf "#define QT_FUNCTION_TARGET_STRING_%-17s \"%s\"\n",
- $feature->{id}, $str;
-}
-
-print q{
-static const quint64 qCompilerCpuFeatures = 0};
-
-# And print the compiler-enabled features part:
-for (my $i = 0; $i < scalar @features; ++$i) {
- my $feature = $features[$i];
- printf
- "#ifdef __%s__\n" .
- " | CpuFeature%s\n" .
- "#endif\n",
- $feature->{id}, $feature->{id};
-}
-
-print q{ ;
-
-QT_END_NAMESPACE
-
-#endif // QSIMD_X86_P_H
-};
-
-if (my $cpp = shift @ARGV) {
- open CPP, ">", $cpp;
- select CPP;
-} else {
- print q{
-
----- cut here, paste the rest into qsimd_x86.cpp ---
-
-
-};
-};
-
-print q{/****************************************************************************
-**
-** Copyright (C) 2018 Intel Corporation.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the QtCore module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 3 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL3 included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 3 requirements
-** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 2.0 or (at your option) the GNU General
-** Public license version 3 or any later version approved by the KDE Free
-** Qt Foundation. The licenses are as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-2.0.html and
-** https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-// This is a generated file. DO NOT EDIT.
-// Please see util/x86simdgen/generate.pl";
-#include "qsimd_p.h"
-};
-
-# Now generate the string table and bit-location array
-my $offset = 0;
-my @offsets;
-print "static const char features_string[] =";
-for my $feature (@features) {
- print " \" $feature->{name}\\0\"";
- push @offsets, $offset;
- $offset += 2 + length($feature->{name});
-}
-print " \"\\0\";";
-
-# Print the string offset table
-printf "\nstatic const %s features_indices[] = {\n %3d",
- $offset > 255 ? "quint16" : "quint8", $offset;
-for (my $j = 0; $j < scalar @offsets; ++$j) {
- printf ",%s%3d",
- ($j + 1) % 8 ? " " : "\n ", $offsets[$j];
-}
-print "\n};";
-
-# Print the locator enum and table
-print "\nenum X86CpuidLeaves {";
-map { print " $_," } @leafNames;
-print " X86CpuidMaxLeaf\n};";
-
-my $type = scalar %leaves > 8 ? "quint16" : "quint8";
-printf "\nstatic const %s x86_locators[] = {",
- $type, $type;
-my $lastname;
-for (my $j = 0; $j < scalar @features; ++$j) {
- my $feature = $features[$j];
- printf ", // %s", $lastname
- if defined($lastname);
- printf "\n %s*32 + %2d",
- $feature->{leaf}, $feature->{bit};
- $lastname = $feature->{name};
-}
-printf qq{ // $lastname
-\};
-
-// List of AVX512 features (see detectProcessorFeatures())
-static const quint64 AllAVX512 = 0};
-
-# Print AVX512 features
-for (my $j = 0; $j < scalar @features; ++$j) {
- my $feature = $features[$j];
- $_ = $feature->{id};
- printf "\n | CpuFeature%s", $_ if /AVX512/;
-}
-print ";";
diff --git a/util/x86simdgen/header b/util/x86simdgen/header
new file mode 100644
index 0000000000..50a9fef7ed
--- /dev/null
+++ b/util/x86simdgen/header
@@ -0,0 +1,16 @@
+// Copyright (C) 2022 Intel Corporation.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+// This is a generated file. DO NOT EDIT.
+// Please see util/x86simdgen/README.md
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
diff --git a/util/x86simdgen/simd.txt b/util/x86simdgen/simd.txt
deleted file mode 100644
index 1fce7b9497..0000000000
--- a/util/x86simdgen/simd.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# Feature CPUID function Bit Required feature
-sse2 Leaf1EDX 26
-sse3 Leaf1ECX 0
-ssse3 Leaf1ECX 9
-fma Leaf1ECX 12
-sse4.1 Leaf1ECX 19
-sse4.2 Leaf1ECX 20
-movbe Leaf1ECX 22
-popcnt Leaf1ECX 23
-aes Leaf1ECX 25 sse4.2
-avx Leaf1ECX 28
-f16c Leaf1ECX 29
-rdrnd Leaf1ECX 30
-bmi Leaf7_0EBX 3
-hle Leaf7_0EBX 4
-avx2 Leaf7_0EBX 5
-bmi2 Leaf7_0EBX 8
-rtm Leaf7_0EBX 11
-avx512f Leaf7_0EBX 16
-avx512dq Leaf7_0EBX 17
-rdseed Leaf7_0EBX 18
-avx512ifma Leaf7_0EBX 21
-avx512pf Leaf7_0EBX 26
-avx512er Leaf7_0EBX 27
-avx512cd Leaf7_0EBX 28
-sha Leaf7_0EBX 29
-avx512bw Leaf7_0EBX 30
-avx512vl Leaf7_0EBX 31
-avx512vbmi Leaf7_0ECX 1
-avx512vbmi2 Leaf7_0ECX 6
-gfni Leaf7_0ECX 8
-vaes Leaf7_0ECX 9
-avx512vnni Leaf7_0ECX 11
-avx512bitalg Leaf7_0ECX 12
-avx512vpopcntdq Leaf7_0ECX 14
-avx5124nniw Leaf7_0EDX 2
-avx5124fmaps Leaf7_0EDX 3
diff --git a/util/xkbdatagen/main.cpp b/util/xkbdatagen/main.cpp
index d0b96b78d3..6dfd765e39 100644
--- a/util/xkbdatagen/main.cpp
+++ b/util/xkbdatagen/main.cpp
@@ -1,30 +1,5 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the utils of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:GPL-EXCEPT$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include <QtCore>
#include <QtXml>
@@ -401,45 +376,8 @@ int main(int argc, char **argv)
QList<XKBLayout> layouts = findLayouts(layoutList);
// copyright and stuff
- printf("/****************************************************************************\n"
- "**\n"
- "** Copyright (C) 2016 The Qt Company Ltd.\n"
- "** Contact: https://www.qt.io/licensing/\n"
- "**\n"
- "** This file is part of the QtGui module of the Qt Toolkit.\n"
- "**\n"
- "** $QT_BEGIN_LICENSE:LGPL$\n"
- "** Commercial License Usage\n"
- "** Licensees holding valid commercial Qt licenses may use this file in\n"
- "** accordance with the commercial license agreement provided with the\n"
- "** Software or, alternatively, in accordance with the terms contained in\n"
- "** a written agreement between you and The Qt Company. For licensing terms\n"
- "** and conditions see https://www.qt.io/terms-conditions. For further\n"
- "** information use the contact form at https://www.qt.io/contact-us.\n"
- "**\n"
- "** GNU Lesser General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU Lesser\n"
- "** General Public License version 3 as published by the Free Software\n"
- "** Foundation and appearing in the file LICENSE.LGPL3 included in the\n"
- "** packaging of this file. Please review the following information to\n"
- "** ensure the GNU Lesser General Public License version 3 requirements\n"
- "** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.\n"
- "**\n"
- "** GNU General Public License Usage\n"
- "** Alternatively, this file may be used under the terms of the GNU\n"
- "** General Public License version 2.0 or (at your option) the GNU General\n"
- "** Public license version 3 or any later version approved by the KDE Free\n"
- "** Qt Foundation. The licenses are as published by the Free Software\n"
- "** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3\n"
- "** included in the packaging of this file. Please review the following\n"
- "** information to ensure the GNU General Public License requirements will\n"
- "** be met: https://www.gnu.org/licenses/gpl-2.0.html and\n"
- "** https://www.gnu.org/licenses/gpl-3.0.html.\n"
- "**\n"
- "** $QT_END_LICENSE$\n"
- "**\n"
- "****************************************************************************/\n"
- "\n"
+ printf("// Copyright (C) 2016 The Qt Company Ltd.\n"
+ "// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only\n"
"// This file is auto-generated, do not edit!\n"
"// (Generated using util/xkbdatagen)\n"
"\n");