From 5428d5f7284eebbece3d09de9e44d41ee084ce30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= Date: Thu, 2 Oct 2025 00:05:42 +0200 Subject: [PATCH] Update to Unicode 17.0.0 --- DerivedGeneralCategory.txt.sha | 2 +- Makefile | 2 +- scripts/transcode-to-json.py | 5 +- setup.cfg | 1 - src/_unicode_cat_of.hpp | 143 ++++++++++++++++----------------- 5 files changed, 75 insertions(+), 78 deletions(-) diff --git a/DerivedGeneralCategory.txt.sha b/DerivedGeneralCategory.txt.sha index 8afbd05..8b8c1f9 100644 --- a/DerivedGeneralCategory.txt.sha +++ b/DerivedGeneralCategory.txt.sha @@ -1 +1 @@ -993261c82681a5580aaa42c6184d61a289a1eaa48022fded929d00487066b0ed1014f35cbc0890c6db5f3cbf8ca51dd99362e088aceedf548cfb3cc8d72bb14e DerivedGeneralCategory.txt +a8f5a4c366f441632cf0bfa9f3e89016b4efdc3c1190bd99b014346494b36167f9a4f40c41224738eb4b569d5258dfa7802f6907a3021e06a71e0fb7376a10a0 DerivedGeneralCategory.txt diff --git a/Makefile b/Makefile index 5d32ca2..21d28a8 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ INCLUDES := \ FILES := Makefile MANIFEST.in pyjson5.pyx README.rst pyproject.toml ${INCLUDES} DerivedGeneralCategory.txt: DerivedGeneralCategory.txt.sha - curl -s -o $@ https://www.unicode.org/Public/16.0.0/ucd/extracted/DerivedGeneralCategory.txt + curl -s -o $@ https://www.unicode.org/Public/17.0.0/ucd/extracted/DerivedGeneralCategory.txt python scripts/sha512sum.py -c $@.sha src/_unicode_cat_of.hpp: DerivedGeneralCategory.txt scripts/make_unicode_categories.py diff --git a/scripts/transcode-to-json.py b/scripts/transcode-to-json.py index 5324307..95e9106 100755 --- a/scripts/transcode-to-json.py +++ b/scripts/transcode-to-json.py @@ -2,7 +2,6 @@ from argparse import ArgumentParser from collections.abc import Mapping, Sequence -from codecs import open as codecs_open from itertools import zip_longest from json import loads from logging import basicConfig, DEBUG, getLogger @@ -57,7 +56,7 @@ def eq_with_nans(left, right): args = argparser.parse_args() try: - with codecs_open(args.input.resolve(), "r", "UTF-8") as f: + with open(args.input.resolve(), "r", encoding="UTF-8") as f: data = f.read() except Exception: logger.error("Could not even read file: %s", args.input, exc_info=True) @@ -91,7 +90,7 @@ def eq_with_nans(left, right): if args.output is not None: try: - with codecs_open(args.output.resolve(), "w", "UTF-8") as f: + with open(args.output.resolve(), "w", encoding="UTF-8") as f: f.write(data) except Exception: logger.error("Could open output file: %s", args.output, exc_info=True) diff --git a/setup.cfg b/setup.cfg index 0a37db1..1fd95f0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -22,7 +22,6 @@ maintainer_email = pypi.org@k6i.de long_description = file: README.rst long_description_content_type = text/x-rst -license = MIT OR Apache-2.0 license_files = LICENSE.MIT, LICENSE.Apache classifiers = diff --git a/src/_unicode_cat_of.hpp b/src/_unicode_cat_of.hpp index f96ebb5..5170d61 100644 --- a/src/_unicode_cat_of.hpp +++ b/src/_unicode_cat_of.hpp @@ -64,7 +64,7 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { { // 8 -> 0x08u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfau, 0xefu, 0xffu, 0xffu, 0xfeu, 0xfeu, 0x0fu, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0x00u, 0xaau, 0xaau, 0x2au, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xa8u, 0x2au, 0x00u, 0xc0u, 0xffu, 0xffu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, + 0xaau, 0xaau, 0xa8u, 0xaau, 0x00u, 0xc0u, 0xffu, 0xffu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfau, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xcfu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, }, { // 9 -> 0x09u @@ -87,9 +87,9 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { }, { // 12 -> 0x0cu 0xffu, 0xabu, 0xaau, 0xa2u, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0x0au, 0xfbu, - 0xffu, 0xf3u, 0xf3u, 0x0fu, 0x00u, 0x3cu, 0x2au, 0x08u, 0xfau, 0xf0u, 0xffu, 0xffu, 0x00u, 0x00u, 0x00u, 0x00u, + 0xffu, 0xf3u, 0xf3u, 0x0fu, 0x00u, 0x3cu, 0x2au, 0x0au, 0xfau, 0xf0u, 0xffu, 0xffu, 0x00u, 0x00u, 0x00u, 0x00u, 0xfeu, 0xa8u, 0xaau, 0xa2u, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xa8u, 0x0au, 0xfbu, - 0xffu, 0xf3u, 0xf3u, 0x0fu, 0x00u, 0x3cu, 0x00u, 0x28u, 0xfau, 0xf0u, 0xffu, 0xffu, 0xe8u, + 0xffu, 0xf3u, 0xf3u, 0x0fu, 0x00u, 0x3cu, 0x00u, 0x2au, 0xfau, 0xf0u, 0xffu, 0xffu, 0xe8u, }, { // 13 -> 0x0du 0xffu, 0xaau, 0xaau, 0xa2u, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xfbu, @@ -161,7 +161,7 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0xffu, 0x3fu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xc3u, 0xffu, 0xffu, 0x0fu, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0x00u, 0x80u, 0x00u, 0x00u, 0xffu, 0xffu, 0xffu, 0xcfu, - 0xffu, 0xffu, 0xffu, 0x3fu, + 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0x0fu, 0xffu, 0xffu, 0xffu, }, { // 27 -> 0x19u 0xffu, 0xabu, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0xffu, @@ -248,7 +248,7 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x80u, 0xaau, 0xaau, 0xa0u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x82u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0x0au, 0x8au, 0xa8u, 0xaau, 0x02u, 0x00u, 0x00u, 0x00u, 0x00u, 0xa0u, 0xaau, 0xaau, 0xaau, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 0x00u, 0x00u, 0x00u, 0x00u, 0xa8u, 0xaau, 0xaau, 0xaau, }, { // 168 -> 0x29u 0xbau, 0xbau, 0xeau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xeau, 0xffu, 0x00u, 0x03u, 0x00u, 0x00u, 0x00u, 0x00u, @@ -359,7 +359,7 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { }, { // 265 -> 0x3bu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x00u, 0xa0u, }, { // 266 -> 0x3cu @@ -388,7 +388,7 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xcau, 0x03u, 0x0au, 0x00u, 0x00u, 0x00u, - 0xa0u, 0x02u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xffu, + 0xa0u, 0xaau, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xf0u, 0xffu, }, { // 271 -> 0x41u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 0x00u, 0x80u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, @@ -462,7 +462,7 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { }, { // 283 -> 0x4du 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xffu, 0xffu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 0x00u, 0x00u, 0x00u, 0xffu, 0xffu, 0x0fu, }, @@ -474,7 +474,8 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { { // 285 -> 0x4fu 0xaau, 0x2au, 0x8au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfeu, 0x3fu, 0x30u, 0xcfu, 0xffu, 0xefu, 0x00u, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0xaau, 0x8au, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xfau, 0x3fu, 0xcfu, 0xffu, 0x02u, 0x00u, 0xffu, 0xffu, 0x0fu, + 0xaau, 0xaau, 0xfau, 0x3fu, 0xcfu, 0xffu, 0x02u, 0x00u, 0xffu, 0xffu, 0x0fu, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x00u, 0xffu, 0xffu, 0x0fu, }, { // 286 -> 0x50u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, @@ -545,129 +546,134 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { { // 366 -> 0x5du 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x82u, 0xaau, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, { // 367 -> 0x5eu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xc0u, 0xfeu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0x00u, 0xc0u, 0xbfu, 0xaau, 0xaau, 0xaau, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, - 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x8au, 0x03u, 0x00u, 0x00u, 0x0fu, - }, - { // 391 -> 0x5fu - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x8au, 0x03u, 0x00u, 0x00u, 0xafu, 0x2au, }, - { // 396 -> 0x60u + { // 396 -> 0x5fu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x80u, }, - { // 397 -> 0x61u - 0xaau, 0xaau, 0x02u, + { // 397 -> 0x60u + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, }, - { // 431 -> 0x62u + { // 431 -> 0x61u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xa8u, 0xaau, 0x28u, }, - { // 433 -> 0x63u + { // 433 -> 0x62u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0x00u, 0x00u, 0x20u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x2au, 0x08u, 0x00u, 0x00u, 0x00u, 0xaau, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 434 -> 0x64u + { // 434 -> 0x63u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 444 -> 0x65u + { // 444 -> 0x64u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0xaau, 0xaau, 0xaau, 0x02u, 0xaau, 0xaau, 0x02u, 0x00u, 0xaau, 0xaau, 0x0au, 0x3cu, }, - { // 460 -> 0x66u + { // 460 -> 0x65u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xffu, 0xffu, 0x0fu, }, - { // 463 -> 0x67u + { // 463 -> 0x66u 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0x0fu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0x3fu, }, - { // 465 -> 0x68u + { // 465 -> 0x67u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xfcu, 0x0fu, 0xfcu, 0x3fu, 0x00u, 0xc0u, 0xffu, 0x3fu, 0xfcu, 0xffu, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xf0u, 0x0fu, }, - { // 466 -> 0x69u + { // 466 -> 0x68u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xf0u, 0x03u, }, - { // 468 -> 0x6au + { // 468 -> 0x69u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0x20u, 0x28u, 0xa8u, 0xa2u, 0xaau, 0xaau, 0x8au, 0xa8u, 0xaau, 0xa8u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 469 -> 0x6bu + { // 469 -> 0x6au 0xaau, 0x8au, 0x2au, 0xa8u, 0xaau, 0xa2u, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x8au, 0x2au, 0xaau, 0x22u, 0xa0u, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 470 -> 0x6cu + { // 470 -> 0x6bu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, }, - { // 471 -> 0x6du + { // 471 -> 0x6cu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xa2u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xaau, 0xaau, 0xf0u, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, }, - { // 474 -> 0x6eu + { // 474 -> 0x6du 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0x3fu, 0xc0u, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0x03u, 0x00u, 0x0cu, 0x00u, 0x00u, 0x00u, 0x03u, 0x00u, 0x00u, 0x00u, 0x00u, 0xc0u, 0xffu, 0xfcu, 0xffu, 0xffu, 0xffu, }, - { // 479 -> 0x6fu + { // 479 -> 0x6eu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0xa8u, 0x2au, }, - { // 480 -> 0x70u + { // 480 -> 0x6fu 0xffu, 0x3fu, 0xffu, 0xffu, 0xffu, 0xffu, 0xc3u, 0xffu, 0xcfu, 0xf3u, 0x3fu, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xc0u, }, - { // 481 -> 0x71u + { // 481 -> 0x70u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 0xffu, 0xbfu, 0xaau, 0x0au, 0xffu, 0xffu, 0x0fu, 0x20u, }, - { // 482 -> 0x72u + { // 482 -> 0x71u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x3au, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0xffu, 0x0fu, }, - { // 484 -> 0x73u + { // 484 -> 0x72u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xffu, 0xffu, 0xffu, 0x0fu, }, - { // 485 -> 0x74u + { // 485 -> 0x73u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xfau, 0xfeu, 0xffu, 0x3fu, }, + { // 486 -> 0x74u + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0xeau, 0xbau, 0xaau, 0xfau, 0xaau, 0x0eu, 0x00u, 0xa0u, + }, { // 487 -> 0x75u 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, @@ -695,55 +701,48 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 695 -> 0x7au - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - }, - { // 696 -> 0x7bu + { // 696 -> 0x7au 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 718 -> 0x7cu + { // 718 -> 0x7bu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 747 -> 0x7du + { // 747 -> 0x7cu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x02u, 0x00u, 0x00u, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 750 -> 0x7eu + { // 750 -> 0x7du 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, }, - { // 762 -> 0x7fu + { // 762 -> 0x7eu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, }, - { // 787 -> 0x80u + { // 787 -> 0x7fu 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x2au, 0x00u, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, }, - { // 803 -> 0x81u - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, + { // 820 -> 0x80u 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, - 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, + 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0xaau, 0x0au, }, - { // 3585 -> 0x82u + { // 3585 -> 0x81u 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, 0xffu, }, - { // 4352 -> 0x83u + { // 4352 -> 0x82u 0x01u, }, }; @@ -786,16 +785,16 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, }, { // 6 -> 0x06u - 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x5fu, 0x01u, 0x01u, 0x01u, 0x01u, 0x60u, 0x61u, 0x1fu, 0x1fu, + 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x5fu, 0x60u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, - 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x62u, - 0x01u, 0x63u, 0x64u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x65u, 0x1fu, 0x1fu, 0x1fu, + 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x61u, + 0x01u, 0x62u, 0x63u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x64u, 0x1fu, 0x1fu, 0x1fu, }, { // 7 -> 0x07u - 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x66u, 0x1fu, 0x1fu, 0x67u, - 0x1fu, 0x68u, 0x69u, 0x1fu, 0x6au, 0x6bu, 0x6cu, 0x6du, 0x1fu, 0x1fu, 0x6eu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x6fu, - 0x70u, 0x71u, 0x72u, 0x1fu, 0x73u, 0x74u, 0x1fu, 0x75u, 0x76u, 0x77u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x78u, 0x1fu, - 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x66u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, + 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x65u, 0x1fu, 0x1fu, 0x66u, + 0x1fu, 0x67u, 0x68u, 0x1fu, 0x69u, 0x6au, 0x6bu, 0x6cu, 0x1fu, 0x1fu, 0x6du, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x6eu, + 0x6fu, 0x70u, 0x71u, 0x1fu, 0x72u, 0x73u, 0x74u, 0x75u, 0x76u, 0x77u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x78u, 0x1fu, + 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x65u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, }, { // 8 -> 0x08u 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, @@ -807,19 +806,19 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x79u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, - 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x7au, 0x7bu, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, + 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x7au, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, }, { // 11 -> 0x0au - 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x7cu, 0x01u, + 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x7bu, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, - 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x7du, 0x01u, 0x01u, 0x7eu, 0x1fu, - 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x01u, 0x01u, 0x7fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, + 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x7cu, 0x01u, 0x01u, 0x7du, 0x1fu, + 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x01u, 0x01u, 0x7eu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, }, { // 12 -> 0x0bu 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, - 0x01u, 0x01u, 0x01u, 0x80u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, - 0x01u, 0x01u, 0x01u, 0x81u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, - 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, + 0x01u, 0x01u, 0x01u, 0x7fu, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, + 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, 0x01u, + 0x01u, 0x01u, 0x01u, 0x01u, 0x80u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, }, { // 13 -> 0x0cu 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, @@ -828,13 +827,13 @@ static unsigned unicode_cat_of(std::uint32_t codepoint) { 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, }, { // 56 -> 0x0du - 0x1fu, 0x82u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, + 0x1fu, 0x81u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, }, { // 68 -> 0x0eu - 0x83u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, + 0x82u, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu, 0x1fu,