koichi12 commited on
Commit
aa7c027
·
verified ·
1 Parent(s): 90f4bc9

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -0
  2. tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Compiler/__pycache__/Symtab.cpython-311.pyc +3 -0
  3. tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Scanners.cpython-311-x86_64-linux-gnu.so +3 -0
  4. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-311.pyc +0 -0
  5. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-311.pyc +0 -0
  6. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
  7. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-311.pyc +0 -0
  8. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-311.pyc +0 -0
  9. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-311.pyc +0 -0
  10. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +182 -0
  11. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/serialize.py +146 -0
  12. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__init__.py +44 -0
  13. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/codec.py +118 -0
  14. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/core.py +395 -0
  15. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/idnadata.py +4245 -0
  16. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/intranges.py +54 -0
  17. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/package_data.py +2 -0
  18. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/py.typed +0 -0
  19. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-311.pyc +0 -0
  20. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-311.pyc +0 -0
  21. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__main__.py +17 -0
  22. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-311.pyc +0 -0
  23. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-311.pyc +0 -0
  24. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-311.pyc +0 -0
  25. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-311.pyc +0 -0
  26. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-311.pyc +0 -0
  27. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-311.pyc +0 -0
  28. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-311.pyc +0 -0
  29. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-311.pyc +0 -0
  30. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-311.pyc +0 -0
  31. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-311.pyc +0 -0
  32. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-311.pyc +0 -0
  33. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-311.pyc +0 -0
  34. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-311.pyc +0 -0
  35. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-311.pyc +0 -0
  36. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-311.pyc +0 -0
  37. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-311.pyc +0 -0
  38. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-311.pyc +0 -0
  39. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-311.pyc +0 -0
  40. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-311.pyc +0 -0
  41. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-311.pyc +0 -0
  42. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-311.pyc +0 -0
  43. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-311.pyc +0 -0
  44. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-311.pyc +0 -0
  45. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-311.pyc +0 -0
  46. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/bbcode.py +108 -0
  47. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/terminal256.py +338 -0
  48. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-311.pyc +0 -0
  49. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/unistring.py +153 -0
  50. tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-311.pyc +0 -0
.gitattributes CHANGED
@@ -35,3 +35,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Machines.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
37
  tuning-competition-baseline/.venv/lib/python3.11/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
 
 
 
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
  tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Machines.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
37
  tuning-competition-baseline/.venv/lib/python3.11/site-packages/networkx/algorithms/isomorphism/tests/__pycache__/test_vf2pp_helpers.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
38
+ tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Compiler/__pycache__/Symtab.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
39
+ tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Scanners.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Compiler/__pycache__/Symtab.cpython-311.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cc60ff15fc508c42b8569fad5e5ac7ef0309c1580cc53bf88de181aea13accb8
3
+ size 127955
tuning-competition-baseline/.venv/lib/python3.11/site-packages/Cython/Plex/Scanners.cpython-311-x86_64-linux-gnu.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2fef79e91891e093589b5cd892d3d7cb7809df37f7092bca6c27b9b2353c1b8a
3
+ size 123048
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-311.pyc ADDED
Binary file (4.52 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-311.pyc ADDED
Binary file (4.78 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__init__.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ # SPDX-FileCopyrightText: 2015 Eric Larson
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ from pip._vendor.cachecontrol.caches.file_cache import FileCache, SeparateBodyFileCache
6
+ from pip._vendor.cachecontrol.caches.redis_cache import RedisCache
7
+
8
+ __all__ = ["FileCache", "SeparateBodyFileCache", "RedisCache"]
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (500 Bytes). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-311.pyc ADDED
Binary file (9.11 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-311.pyc ADDED
Binary file (3.11 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SPDX-FileCopyrightText: 2015 Eric Larson
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+ from __future__ import annotations
5
+
6
+ import hashlib
7
+ import os
8
+ from textwrap import dedent
9
+ from typing import IO, TYPE_CHECKING, Union
10
+ from pathlib import Path
11
+
12
+ from pip._vendor.cachecontrol.cache import BaseCache, SeparateBodyBaseCache
13
+ from pip._vendor.cachecontrol.controller import CacheController
14
+
15
+ if TYPE_CHECKING:
16
+ from datetime import datetime
17
+
18
+ from filelock import BaseFileLock
19
+
20
+
21
+ def _secure_open_write(filename: str, fmode: int) -> IO[bytes]:
22
+ # We only want to write to this file, so open it in write only mode
23
+ flags = os.O_WRONLY
24
+
25
+ # os.O_CREAT | os.O_EXCL will fail if the file already exists, so we only
26
+ # will open *new* files.
27
+ # We specify this because we want to ensure that the mode we pass is the
28
+ # mode of the file.
29
+ flags |= os.O_CREAT | os.O_EXCL
30
+
31
+ # Do not follow symlinks to prevent someone from making a symlink that
32
+ # we follow and insecurely open a cache file.
33
+ if hasattr(os, "O_NOFOLLOW"):
34
+ flags |= os.O_NOFOLLOW
35
+
36
+ # On Windows we'll mark this file as binary
37
+ if hasattr(os, "O_BINARY"):
38
+ flags |= os.O_BINARY
39
+
40
+ # Before we open our file, we want to delete any existing file that is
41
+ # there
42
+ try:
43
+ os.remove(filename)
44
+ except OSError:
45
+ # The file must not exist already, so we can just skip ahead to opening
46
+ pass
47
+
48
+ # Open our file, the use of os.O_CREAT | os.O_EXCL will ensure that if a
49
+ # race condition happens between the os.remove and this line, that an
50
+ # error will be raised. Because we utilize a lockfile this should only
51
+ # happen if someone is attempting to attack us.
52
+ fd = os.open(filename, flags, fmode)
53
+ try:
54
+ return os.fdopen(fd, "wb")
55
+
56
+ except:
57
+ # An error occurred wrapping our FD in a file object
58
+ os.close(fd)
59
+ raise
60
+
61
+
62
+ class _FileCacheMixin:
63
+ """Shared implementation for both FileCache variants."""
64
+
65
+ def __init__(
66
+ self,
67
+ directory: str | Path,
68
+ forever: bool = False,
69
+ filemode: int = 0o0600,
70
+ dirmode: int = 0o0700,
71
+ lock_class: type[BaseFileLock] | None = None,
72
+ ) -> None:
73
+ try:
74
+ if lock_class is None:
75
+ from filelock import FileLock
76
+
77
+ lock_class = FileLock
78
+ except ImportError:
79
+ notice = dedent(
80
+ """
81
+ NOTE: In order to use the FileCache you must have
82
+ filelock installed. You can install it via pip:
83
+ pip install cachecontrol[filecache]
84
+ """
85
+ )
86
+ raise ImportError(notice)
87
+
88
+ self.directory = directory
89
+ self.forever = forever
90
+ self.filemode = filemode
91
+ self.dirmode = dirmode
92
+ self.lock_class = lock_class
93
+
94
+ @staticmethod
95
+ def encode(x: str) -> str:
96
+ return hashlib.sha224(x.encode()).hexdigest()
97
+
98
+ def _fn(self, name: str) -> str:
99
+ # NOTE: This method should not change as some may depend on it.
100
+ # See: https://github.com/ionrock/cachecontrol/issues/63
101
+ hashed = self.encode(name)
102
+ parts = list(hashed[:5]) + [hashed]
103
+ return os.path.join(self.directory, *parts)
104
+
105
+ def get(self, key: str) -> bytes | None:
106
+ name = self._fn(key)
107
+ try:
108
+ with open(name, "rb") as fh:
109
+ return fh.read()
110
+
111
+ except FileNotFoundError:
112
+ return None
113
+
114
+ def set(
115
+ self, key: str, value: bytes, expires: int | datetime | None = None
116
+ ) -> None:
117
+ name = self._fn(key)
118
+ self._write(name, value)
119
+
120
+ def _write(self, path: str, data: bytes) -> None:
121
+ """
122
+ Safely write the data to the given path.
123
+ """
124
+ # Make sure the directory exists
125
+ try:
126
+ os.makedirs(os.path.dirname(path), self.dirmode)
127
+ except OSError:
128
+ pass
129
+
130
+ with self.lock_class(path + ".lock"):
131
+ # Write our actual file
132
+ with _secure_open_write(path, self.filemode) as fh:
133
+ fh.write(data)
134
+
135
+ def _delete(self, key: str, suffix: str) -> None:
136
+ name = self._fn(key) + suffix
137
+ if not self.forever:
138
+ try:
139
+ os.remove(name)
140
+ except FileNotFoundError:
141
+ pass
142
+
143
+
144
+ class FileCache(_FileCacheMixin, BaseCache):
145
+ """
146
+ Traditional FileCache: body is stored in memory, so not suitable for large
147
+ downloads.
148
+ """
149
+
150
+ def delete(self, key: str) -> None:
151
+ self._delete(key, "")
152
+
153
+
154
+ class SeparateBodyFileCache(_FileCacheMixin, SeparateBodyBaseCache):
155
+ """
156
+ Memory-efficient FileCache: body is stored in a separate file, reducing
157
+ peak memory usage.
158
+ """
159
+
160
+ def get_body(self, key: str) -> IO[bytes] | None:
161
+ name = self._fn(key) + ".body"
162
+ try:
163
+ return open(name, "rb")
164
+ except FileNotFoundError:
165
+ return None
166
+
167
+ def set_body(self, key: str, body: bytes) -> None:
168
+ name = self._fn(key) + ".body"
169
+ self._write(name, body)
170
+
171
+ def delete(self, key: str) -> None:
172
+ self._delete(key, "")
173
+ self._delete(key, ".body")
174
+
175
+
176
+ def url_to_file_path(url: str, filecache: FileCache) -> str:
177
+ """Return the file cache path based on the URL.
178
+
179
+ This does not ensure the file exists!
180
+ """
181
+ key = CacheController.cache_url(url)
182
+ return filecache._fn(key)
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/cachecontrol/serialize.py ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SPDX-FileCopyrightText: 2015 Eric Larson
2
+ #
3
+ # SPDX-License-Identifier: Apache-2.0
4
+ from __future__ import annotations
5
+
6
+ import io
7
+ from typing import IO, TYPE_CHECKING, Any, Mapping, cast
8
+
9
+ from pip._vendor import msgpack
10
+ from pip._vendor.requests.structures import CaseInsensitiveDict
11
+ from pip._vendor.urllib3 import HTTPResponse
12
+
13
+ if TYPE_CHECKING:
14
+ from pip._vendor.requests import PreparedRequest
15
+
16
+
17
+ class Serializer:
18
+ serde_version = "4"
19
+
20
+ def dumps(
21
+ self,
22
+ request: PreparedRequest,
23
+ response: HTTPResponse,
24
+ body: bytes | None = None,
25
+ ) -> bytes:
26
+ response_headers: CaseInsensitiveDict[str] = CaseInsensitiveDict(
27
+ response.headers
28
+ )
29
+
30
+ if body is None:
31
+ # When a body isn't passed in, we'll read the response. We
32
+ # also update the response with a new file handler to be
33
+ # sure it acts as though it was never read.
34
+ body = response.read(decode_content=False)
35
+ response._fp = io.BytesIO(body) # type: ignore[assignment]
36
+ response.length_remaining = len(body)
37
+
38
+ data = {
39
+ "response": {
40
+ "body": body, # Empty bytestring if body is stored separately
41
+ "headers": {str(k): str(v) for k, v in response.headers.items()},
42
+ "status": response.status,
43
+ "version": response.version,
44
+ "reason": str(response.reason),
45
+ "decode_content": response.decode_content,
46
+ }
47
+ }
48
+
49
+ # Construct our vary headers
50
+ data["vary"] = {}
51
+ if "vary" in response_headers:
52
+ varied_headers = response_headers["vary"].split(",")
53
+ for header in varied_headers:
54
+ header = str(header).strip()
55
+ header_value = request.headers.get(header, None)
56
+ if header_value is not None:
57
+ header_value = str(header_value)
58
+ data["vary"][header] = header_value
59
+
60
+ return b",".join([f"cc={self.serde_version}".encode(), self.serialize(data)])
61
+
62
+ def serialize(self, data: dict[str, Any]) -> bytes:
63
+ return cast(bytes, msgpack.dumps(data, use_bin_type=True))
64
+
65
+ def loads(
66
+ self,
67
+ request: PreparedRequest,
68
+ data: bytes,
69
+ body_file: IO[bytes] | None = None,
70
+ ) -> HTTPResponse | None:
71
+ # Short circuit if we've been given an empty set of data
72
+ if not data:
73
+ return None
74
+
75
+ # Previous versions of this library supported other serialization
76
+ # formats, but these have all been removed.
77
+ if not data.startswith(f"cc={self.serde_version},".encode()):
78
+ return None
79
+
80
+ data = data[5:]
81
+ return self._loads_v4(request, data, body_file)
82
+
83
+ def prepare_response(
84
+ self,
85
+ request: PreparedRequest,
86
+ cached: Mapping[str, Any],
87
+ body_file: IO[bytes] | None = None,
88
+ ) -> HTTPResponse | None:
89
+ """Verify our vary headers match and construct a real urllib3
90
+ HTTPResponse object.
91
+ """
92
+ # Special case the '*' Vary value as it means we cannot actually
93
+ # determine if the cached response is suitable for this request.
94
+ # This case is also handled in the controller code when creating
95
+ # a cache entry, but is left here for backwards compatibility.
96
+ if "*" in cached.get("vary", {}):
97
+ return None
98
+
99
+ # Ensure that the Vary headers for the cached response match our
100
+ # request
101
+ for header, value in cached.get("vary", {}).items():
102
+ if request.headers.get(header, None) != value:
103
+ return None
104
+
105
+ body_raw = cached["response"].pop("body")
106
+
107
+ headers: CaseInsensitiveDict[str] = CaseInsensitiveDict(
108
+ data=cached["response"]["headers"]
109
+ )
110
+ if headers.get("transfer-encoding", "") == "chunked":
111
+ headers.pop("transfer-encoding")
112
+
113
+ cached["response"]["headers"] = headers
114
+
115
+ try:
116
+ body: IO[bytes]
117
+ if body_file is None:
118
+ body = io.BytesIO(body_raw)
119
+ else:
120
+ body = body_file
121
+ except TypeError:
122
+ # This can happen if cachecontrol serialized to v1 format (pickle)
123
+ # using Python 2. A Python 2 str(byte string) will be unpickled as
124
+ # a Python 3 str (unicode string), which will cause the above to
125
+ # fail with:
126
+ #
127
+ # TypeError: 'str' does not support the buffer interface
128
+ body = io.BytesIO(body_raw.encode("utf8"))
129
+
130
+ # Discard any `strict` parameter serialized by older version of cachecontrol.
131
+ cached["response"].pop("strict", None)
132
+
133
+ return HTTPResponse(body=body, preload_content=False, **cached["response"])
134
+
135
+ def _loads_v4(
136
+ self,
137
+ request: PreparedRequest,
138
+ data: bytes,
139
+ body_file: IO[bytes] | None = None,
140
+ ) -> HTTPResponse | None:
141
+ try:
142
+ cached = msgpack.loads(data, raw=False)
143
+ except ValueError:
144
+ return None
145
+
146
+ return self.prepare_response(request, cached, body_file)
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/__init__.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .package_data import __version__
2
+ from .core import (
3
+ IDNABidiError,
4
+ IDNAError,
5
+ InvalidCodepoint,
6
+ InvalidCodepointContext,
7
+ alabel,
8
+ check_bidi,
9
+ check_hyphen_ok,
10
+ check_initial_combiner,
11
+ check_label,
12
+ check_nfc,
13
+ decode,
14
+ encode,
15
+ ulabel,
16
+ uts46_remap,
17
+ valid_contextj,
18
+ valid_contexto,
19
+ valid_label_length,
20
+ valid_string_length,
21
+ )
22
+ from .intranges import intranges_contain
23
+
24
+ __all__ = [
25
+ "IDNABidiError",
26
+ "IDNAError",
27
+ "InvalidCodepoint",
28
+ "InvalidCodepointContext",
29
+ "alabel",
30
+ "check_bidi",
31
+ "check_hyphen_ok",
32
+ "check_initial_combiner",
33
+ "check_label",
34
+ "check_nfc",
35
+ "decode",
36
+ "encode",
37
+ "intranges_contain",
38
+ "ulabel",
39
+ "uts46_remap",
40
+ "valid_contextj",
41
+ "valid_contexto",
42
+ "valid_label_length",
43
+ "valid_string_length",
44
+ ]
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/codec.py ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .core import encode, decode, alabel, ulabel, IDNAError
2
+ import codecs
3
+ import re
4
+ from typing import Any, Tuple, Optional
5
+
6
+ _unicode_dots_re = re.compile('[\u002e\u3002\uff0e\uff61]')
7
+
8
+ class Codec(codecs.Codec):
9
+
10
+ def encode(self, data: str, errors: str = 'strict') -> Tuple[bytes, int]:
11
+ if errors != 'strict':
12
+ raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
13
+
14
+ if not data:
15
+ return b"", 0
16
+
17
+ return encode(data), len(data)
18
+
19
+ def decode(self, data: bytes, errors: str = 'strict') -> Tuple[str, int]:
20
+ if errors != 'strict':
21
+ raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
22
+
23
+ if not data:
24
+ return '', 0
25
+
26
+ return decode(data), len(data)
27
+
28
+ class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
29
+ def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[bytes, int]:
30
+ if errors != 'strict':
31
+ raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
32
+
33
+ if not data:
34
+ return b'', 0
35
+
36
+ labels = _unicode_dots_re.split(data)
37
+ trailing_dot = b''
38
+ if labels:
39
+ if not labels[-1]:
40
+ trailing_dot = b'.'
41
+ del labels[-1]
42
+ elif not final:
43
+ # Keep potentially unfinished label until the next call
44
+ del labels[-1]
45
+ if labels:
46
+ trailing_dot = b'.'
47
+
48
+ result = []
49
+ size = 0
50
+ for label in labels:
51
+ result.append(alabel(label))
52
+ if size:
53
+ size += 1
54
+ size += len(label)
55
+
56
+ # Join with U+002E
57
+ result_bytes = b'.'.join(result) + trailing_dot
58
+ size += len(trailing_dot)
59
+ return result_bytes, size
60
+
61
+ class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
62
+ def _buffer_decode(self, data: Any, errors: str, final: bool) -> Tuple[str, int]:
63
+ if errors != 'strict':
64
+ raise IDNAError('Unsupported error handling \"{}\"'.format(errors))
65
+
66
+ if not data:
67
+ return ('', 0)
68
+
69
+ if not isinstance(data, str):
70
+ data = str(data, 'ascii')
71
+
72
+ labels = _unicode_dots_re.split(data)
73
+ trailing_dot = ''
74
+ if labels:
75
+ if not labels[-1]:
76
+ trailing_dot = '.'
77
+ del labels[-1]
78
+ elif not final:
79
+ # Keep potentially unfinished label until the next call
80
+ del labels[-1]
81
+ if labels:
82
+ trailing_dot = '.'
83
+
84
+ result = []
85
+ size = 0
86
+ for label in labels:
87
+ result.append(ulabel(label))
88
+ if size:
89
+ size += 1
90
+ size += len(label)
91
+
92
+ result_str = '.'.join(result) + trailing_dot
93
+ size += len(trailing_dot)
94
+ return (result_str, size)
95
+
96
+
97
+ class StreamWriter(Codec, codecs.StreamWriter):
98
+ pass
99
+
100
+
101
+ class StreamReader(Codec, codecs.StreamReader):
102
+ pass
103
+
104
+
105
+ def search_function(name: str) -> Optional[codecs.CodecInfo]:
106
+ if name != 'idna2008':
107
+ return None
108
+ return codecs.CodecInfo(
109
+ name=name,
110
+ encode=Codec().encode,
111
+ decode=Codec().decode,
112
+ incrementalencoder=IncrementalEncoder,
113
+ incrementaldecoder=IncrementalDecoder,
114
+ streamwriter=StreamWriter,
115
+ streamreader=StreamReader,
116
+ )
117
+
118
+ codecs.register(search_function)
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/core.py ADDED
@@ -0,0 +1,395 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from . import idnadata
2
+ import bisect
3
+ import unicodedata
4
+ import re
5
+ from typing import Union, Optional
6
+ from .intranges import intranges_contain
7
+
8
+ _virama_combining_class = 9
9
+ _alabel_prefix = b'xn--'
10
+ _unicode_dots_re = re.compile('[\u002e\u3002\uff0e\uff61]')
11
+
12
+ class IDNAError(UnicodeError):
13
+ """ Base exception for all IDNA-encoding related problems """
14
+ pass
15
+
16
+
17
+ class IDNABidiError(IDNAError):
18
+ """ Exception when bidirectional requirements are not satisfied """
19
+ pass
20
+
21
+
22
+ class InvalidCodepoint(IDNAError):
23
+ """ Exception when a disallowed or unallocated codepoint is used """
24
+ pass
25
+
26
+
27
+ class InvalidCodepointContext(IDNAError):
28
+ """ Exception when the codepoint is not valid in the context it is used """
29
+ pass
30
+
31
+
32
+ def _combining_class(cp: int) -> int:
33
+ v = unicodedata.combining(chr(cp))
34
+ if v == 0:
35
+ if not unicodedata.name(chr(cp)):
36
+ raise ValueError('Unknown character in unicodedata')
37
+ return v
38
+
39
+ def _is_script(cp: str, script: str) -> bool:
40
+ return intranges_contain(ord(cp), idnadata.scripts[script])
41
+
42
+ def _punycode(s: str) -> bytes:
43
+ return s.encode('punycode')
44
+
45
+ def _unot(s: int) -> str:
46
+ return 'U+{:04X}'.format(s)
47
+
48
+
49
+ def valid_label_length(label: Union[bytes, str]) -> bool:
50
+ if len(label) > 63:
51
+ return False
52
+ return True
53
+
54
+
55
+ def valid_string_length(label: Union[bytes, str], trailing_dot: bool) -> bool:
56
+ if len(label) > (254 if trailing_dot else 253):
57
+ return False
58
+ return True
59
+
60
+
61
+ def check_bidi(label: str, check_ltr: bool = False) -> bool:
62
+ # Bidi rules should only be applied if string contains RTL characters
63
+ bidi_label = False
64
+ for (idx, cp) in enumerate(label, 1):
65
+ direction = unicodedata.bidirectional(cp)
66
+ if direction == '':
67
+ # String likely comes from a newer version of Unicode
68
+ raise IDNABidiError('Unknown directionality in label {} at position {}'.format(repr(label), idx))
69
+ if direction in ['R', 'AL', 'AN']:
70
+ bidi_label = True
71
+ if not bidi_label and not check_ltr:
72
+ return True
73
+
74
+ # Bidi rule 1
75
+ direction = unicodedata.bidirectional(label[0])
76
+ if direction in ['R', 'AL']:
77
+ rtl = True
78
+ elif direction == 'L':
79
+ rtl = False
80
+ else:
81
+ raise IDNABidiError('First codepoint in label {} must be directionality L, R or AL'.format(repr(label)))
82
+
83
+ valid_ending = False
84
+ number_type = None # type: Optional[str]
85
+ for (idx, cp) in enumerate(label, 1):
86
+ direction = unicodedata.bidirectional(cp)
87
+
88
+ if rtl:
89
+ # Bidi rule 2
90
+ if not direction in ['R', 'AL', 'AN', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM']:
91
+ raise IDNABidiError('Invalid direction for codepoint at position {} in a right-to-left label'.format(idx))
92
+ # Bidi rule 3
93
+ if direction in ['R', 'AL', 'EN', 'AN']:
94
+ valid_ending = True
95
+ elif direction != 'NSM':
96
+ valid_ending = False
97
+ # Bidi rule 4
98
+ if direction in ['AN', 'EN']:
99
+ if not number_type:
100
+ number_type = direction
101
+ else:
102
+ if number_type != direction:
103
+ raise IDNABidiError('Can not mix numeral types in a right-to-left label')
104
+ else:
105
+ # Bidi rule 5
106
+ if not direction in ['L', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM']:
107
+ raise IDNABidiError('Invalid direction for codepoint at position {} in a left-to-right label'.format(idx))
108
+ # Bidi rule 6
109
+ if direction in ['L', 'EN']:
110
+ valid_ending = True
111
+ elif direction != 'NSM':
112
+ valid_ending = False
113
+
114
+ if not valid_ending:
115
+ raise IDNABidiError('Label ends with illegal codepoint directionality')
116
+
117
+ return True
118
+
119
+
120
+ def check_initial_combiner(label: str) -> bool:
121
+ if unicodedata.category(label[0])[0] == 'M':
122
+ raise IDNAError('Label begins with an illegal combining character')
123
+ return True
124
+
125
+
126
+ def check_hyphen_ok(label: str) -> bool:
127
+ if label[2:4] == '--':
128
+ raise IDNAError('Label has disallowed hyphens in 3rd and 4th position')
129
+ if label[0] == '-' or label[-1] == '-':
130
+ raise IDNAError('Label must not start or end with a hyphen')
131
+ return True
132
+
133
+
134
+ def check_nfc(label: str) -> None:
135
+ if unicodedata.normalize('NFC', label) != label:
136
+ raise IDNAError('Label must be in Normalization Form C')
137
+
138
+
139
+ def valid_contextj(label: str, pos: int) -> bool:
140
+ cp_value = ord(label[pos])
141
+
142
+ if cp_value == 0x200c:
143
+
144
+ if pos > 0:
145
+ if _combining_class(ord(label[pos - 1])) == _virama_combining_class:
146
+ return True
147
+
148
+ ok = False
149
+ for i in range(pos-1, -1, -1):
150
+ joining_type = idnadata.joining_types.get(ord(label[i]))
151
+ if joining_type == ord('T'):
152
+ continue
153
+ elif joining_type in [ord('L'), ord('D')]:
154
+ ok = True
155
+ break
156
+ else:
157
+ break
158
+
159
+ if not ok:
160
+ return False
161
+
162
+ ok = False
163
+ for i in range(pos+1, len(label)):
164
+ joining_type = idnadata.joining_types.get(ord(label[i]))
165
+ if joining_type == ord('T'):
166
+ continue
167
+ elif joining_type in [ord('R'), ord('D')]:
168
+ ok = True
169
+ break
170
+ else:
171
+ break
172
+ return ok
173
+
174
+ if cp_value == 0x200d:
175
+
176
+ if pos > 0:
177
+ if _combining_class(ord(label[pos - 1])) == _virama_combining_class:
178
+ return True
179
+ return False
180
+
181
+ else:
182
+
183
+ return False
184
+
185
+
186
+ def valid_contexto(label: str, pos: int, exception: bool = False) -> bool:
187
+ cp_value = ord(label[pos])
188
+
189
+ if cp_value == 0x00b7:
190
+ if 0 < pos < len(label)-1:
191
+ if ord(label[pos - 1]) == 0x006c and ord(label[pos + 1]) == 0x006c:
192
+ return True
193
+ return False
194
+
195
+ elif cp_value == 0x0375:
196
+ if pos < len(label)-1 and len(label) > 1:
197
+ return _is_script(label[pos + 1], 'Greek')
198
+ return False
199
+
200
+ elif cp_value == 0x05f3 or cp_value == 0x05f4:
201
+ if pos > 0:
202
+ return _is_script(label[pos - 1], 'Hebrew')
203
+ return False
204
+
205
+ elif cp_value == 0x30fb:
206
+ for cp in label:
207
+ if cp == '\u30fb':
208
+ continue
209
+ if _is_script(cp, 'Hiragana') or _is_script(cp, 'Katakana') or _is_script(cp, 'Han'):
210
+ return True
211
+ return False
212
+
213
+ elif 0x660 <= cp_value <= 0x669:
214
+ for cp in label:
215
+ if 0x6f0 <= ord(cp) <= 0x06f9:
216
+ return False
217
+ return True
218
+
219
+ elif 0x6f0 <= cp_value <= 0x6f9:
220
+ for cp in label:
221
+ if 0x660 <= ord(cp) <= 0x0669:
222
+ return False
223
+ return True
224
+
225
+ return False
226
+
227
+
228
+ def check_label(label: Union[str, bytes, bytearray]) -> None:
229
+ if isinstance(label, (bytes, bytearray)):
230
+ label = label.decode('utf-8')
231
+ if len(label) == 0:
232
+ raise IDNAError('Empty Label')
233
+
234
+ check_nfc(label)
235
+ check_hyphen_ok(label)
236
+ check_initial_combiner(label)
237
+
238
+ for (pos, cp) in enumerate(label):
239
+ cp_value = ord(cp)
240
+ if intranges_contain(cp_value, idnadata.codepoint_classes['PVALID']):
241
+ continue
242
+ elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTJ']):
243
+ if not valid_contextj(label, pos):
244
+ raise InvalidCodepointContext('Joiner {} not allowed at position {} in {}'.format(
245
+ _unot(cp_value), pos+1, repr(label)))
246
+ elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTO']):
247
+ if not valid_contexto(label, pos):
248
+ raise InvalidCodepointContext('Codepoint {} not allowed at position {} in {}'.format(_unot(cp_value), pos+1, repr(label)))
249
+ else:
250
+ raise InvalidCodepoint('Codepoint {} at position {} of {} not allowed'.format(_unot(cp_value), pos+1, repr(label)))
251
+
252
+ check_bidi(label)
253
+
254
+
255
+ def alabel(label: str) -> bytes:
256
+ try:
257
+ label_bytes = label.encode('ascii')
258
+ ulabel(label_bytes)
259
+ if not valid_label_length(label_bytes):
260
+ raise IDNAError('Label too long')
261
+ return label_bytes
262
+ except UnicodeEncodeError:
263
+ pass
264
+
265
+ check_label(label)
266
+ label_bytes = _alabel_prefix + _punycode(label)
267
+
268
+ if not valid_label_length(label_bytes):
269
+ raise IDNAError('Label too long')
270
+
271
+ return label_bytes
272
+
273
+
274
+ def ulabel(label: Union[str, bytes, bytearray]) -> str:
275
+ if not isinstance(label, (bytes, bytearray)):
276
+ try:
277
+ label_bytes = label.encode('ascii')
278
+ except UnicodeEncodeError:
279
+ check_label(label)
280
+ return label
281
+ else:
282
+ label_bytes = label
283
+
284
+ label_bytes = label_bytes.lower()
285
+ if label_bytes.startswith(_alabel_prefix):
286
+ label_bytes = label_bytes[len(_alabel_prefix):]
287
+ if not label_bytes:
288
+ raise IDNAError('Malformed A-label, no Punycode eligible content found')
289
+ if label_bytes.decode('ascii')[-1] == '-':
290
+ raise IDNAError('A-label must not end with a hyphen')
291
+ else:
292
+ check_label(label_bytes)
293
+ return label_bytes.decode('ascii')
294
+
295
+ try:
296
+ label = label_bytes.decode('punycode')
297
+ except UnicodeError:
298
+ raise IDNAError('Invalid A-label')
299
+ check_label(label)
300
+ return label
301
+
302
+
303
+ def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False) -> str:
304
+ """Re-map the characters in the string according to UTS46 processing."""
305
+ from .uts46data import uts46data
306
+ output = ''
307
+
308
+ for pos, char in enumerate(domain):
309
+ code_point = ord(char)
310
+ try:
311
+ uts46row = uts46data[code_point if code_point < 256 else
312
+ bisect.bisect_left(uts46data, (code_point, 'Z')) - 1]
313
+ status = uts46row[1]
314
+ replacement = None # type: Optional[str]
315
+ if len(uts46row) == 3:
316
+ replacement = uts46row[2]
317
+ if (status == 'V' or
318
+ (status == 'D' and not transitional) or
319
+ (status == '3' and not std3_rules and replacement is None)):
320
+ output += char
321
+ elif replacement is not None and (status == 'M' or
322
+ (status == '3' and not std3_rules) or
323
+ (status == 'D' and transitional)):
324
+ output += replacement
325
+ elif status != 'I':
326
+ raise IndexError()
327
+ except IndexError:
328
+ raise InvalidCodepoint(
329
+ 'Codepoint {} not allowed at position {} in {}'.format(
330
+ _unot(code_point), pos + 1, repr(domain)))
331
+
332
+ return unicodedata.normalize('NFC', output)
333
+
334
+
335
+ def encode(s: Union[str, bytes, bytearray], strict: bool = False, uts46: bool = False, std3_rules: bool = False, transitional: bool = False) -> bytes:
336
+ if not isinstance(s, str):
337
+ try:
338
+ s = str(s, 'ascii')
339
+ except UnicodeDecodeError:
340
+ raise IDNAError('should pass a unicode string to the function rather than a byte string.')
341
+ if uts46:
342
+ s = uts46_remap(s, std3_rules, transitional)
343
+ trailing_dot = False
344
+ result = []
345
+ if strict:
346
+ labels = s.split('.')
347
+ else:
348
+ labels = _unicode_dots_re.split(s)
349
+ if not labels or labels == ['']:
350
+ raise IDNAError('Empty domain')
351
+ if labels[-1] == '':
352
+ del labels[-1]
353
+ trailing_dot = True
354
+ for label in labels:
355
+ s = alabel(label)
356
+ if s:
357
+ result.append(s)
358
+ else:
359
+ raise IDNAError('Empty label')
360
+ if trailing_dot:
361
+ result.append(b'')
362
+ s = b'.'.join(result)
363
+ if not valid_string_length(s, trailing_dot):
364
+ raise IDNAError('Domain too long')
365
+ return s
366
+
367
+
368
+ def decode(s: Union[str, bytes, bytearray], strict: bool = False, uts46: bool = False, std3_rules: bool = False) -> str:
369
+ try:
370
+ if not isinstance(s, str):
371
+ s = str(s, 'ascii')
372
+ except UnicodeDecodeError:
373
+ raise IDNAError('Invalid ASCII in A-label')
374
+ if uts46:
375
+ s = uts46_remap(s, std3_rules, False)
376
+ trailing_dot = False
377
+ result = []
378
+ if not strict:
379
+ labels = _unicode_dots_re.split(s)
380
+ else:
381
+ labels = s.split('.')
382
+ if not labels or labels == ['']:
383
+ raise IDNAError('Empty domain')
384
+ if not labels[-1]:
385
+ del labels[-1]
386
+ trailing_dot = True
387
+ for label in labels:
388
+ s = ulabel(label)
389
+ if s:
390
+ result.append(s)
391
+ else:
392
+ raise IDNAError('Empty label')
393
+ if trailing_dot:
394
+ result.append('')
395
+ return '.'.join(result)
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/idnadata.py ADDED
@@ -0,0 +1,4245 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # This file is automatically generated by tools/idna-data
2
+
3
+ __version__ = '15.1.0'
4
+ scripts = {
5
+ 'Greek': (
6
+ 0x37000000374,
7
+ 0x37500000378,
8
+ 0x37a0000037e,
9
+ 0x37f00000380,
10
+ 0x38400000385,
11
+ 0x38600000387,
12
+ 0x3880000038b,
13
+ 0x38c0000038d,
14
+ 0x38e000003a2,
15
+ 0x3a3000003e2,
16
+ 0x3f000000400,
17
+ 0x1d2600001d2b,
18
+ 0x1d5d00001d62,
19
+ 0x1d6600001d6b,
20
+ 0x1dbf00001dc0,
21
+ 0x1f0000001f16,
22
+ 0x1f1800001f1e,
23
+ 0x1f2000001f46,
24
+ 0x1f4800001f4e,
25
+ 0x1f5000001f58,
26
+ 0x1f5900001f5a,
27
+ 0x1f5b00001f5c,
28
+ 0x1f5d00001f5e,
29
+ 0x1f5f00001f7e,
30
+ 0x1f8000001fb5,
31
+ 0x1fb600001fc5,
32
+ 0x1fc600001fd4,
33
+ 0x1fd600001fdc,
34
+ 0x1fdd00001ff0,
35
+ 0x1ff200001ff5,
36
+ 0x1ff600001fff,
37
+ 0x212600002127,
38
+ 0xab650000ab66,
39
+ 0x101400001018f,
40
+ 0x101a0000101a1,
41
+ 0x1d2000001d246,
42
+ ),
43
+ 'Han': (
44
+ 0x2e8000002e9a,
45
+ 0x2e9b00002ef4,
46
+ 0x2f0000002fd6,
47
+ 0x300500003006,
48
+ 0x300700003008,
49
+ 0x30210000302a,
50
+ 0x30380000303c,
51
+ 0x340000004dc0,
52
+ 0x4e000000a000,
53
+ 0xf9000000fa6e,
54
+ 0xfa700000fada,
55
+ 0x16fe200016fe4,
56
+ 0x16ff000016ff2,
57
+ 0x200000002a6e0,
58
+ 0x2a7000002b73a,
59
+ 0x2b7400002b81e,
60
+ 0x2b8200002cea2,
61
+ 0x2ceb00002ebe1,
62
+ 0x2ebf00002ee5e,
63
+ 0x2f8000002fa1e,
64
+ 0x300000003134b,
65
+ 0x31350000323b0,
66
+ ),
67
+ 'Hebrew': (
68
+ 0x591000005c8,
69
+ 0x5d0000005eb,
70
+ 0x5ef000005f5,
71
+ 0xfb1d0000fb37,
72
+ 0xfb380000fb3d,
73
+ 0xfb3e0000fb3f,
74
+ 0xfb400000fb42,
75
+ 0xfb430000fb45,
76
+ 0xfb460000fb50,
77
+ ),
78
+ 'Hiragana': (
79
+ 0x304100003097,
80
+ 0x309d000030a0,
81
+ 0x1b0010001b120,
82
+ 0x1b1320001b133,
83
+ 0x1b1500001b153,
84
+ 0x1f2000001f201,
85
+ ),
86
+ 'Katakana': (
87
+ 0x30a1000030fb,
88
+ 0x30fd00003100,
89
+ 0x31f000003200,
90
+ 0x32d0000032ff,
91
+ 0x330000003358,
92
+ 0xff660000ff70,
93
+ 0xff710000ff9e,
94
+ 0x1aff00001aff4,
95
+ 0x1aff50001affc,
96
+ 0x1affd0001afff,
97
+ 0x1b0000001b001,
98
+ 0x1b1200001b123,
99
+ 0x1b1550001b156,
100
+ 0x1b1640001b168,
101
+ ),
102
+ }
103
+ joining_types = {
104
+ 0xad: 84,
105
+ 0x300: 84,
106
+ 0x301: 84,
107
+ 0x302: 84,
108
+ 0x303: 84,
109
+ 0x304: 84,
110
+ 0x305: 84,
111
+ 0x306: 84,
112
+ 0x307: 84,
113
+ 0x308: 84,
114
+ 0x309: 84,
115
+ 0x30a: 84,
116
+ 0x30b: 84,
117
+ 0x30c: 84,
118
+ 0x30d: 84,
119
+ 0x30e: 84,
120
+ 0x30f: 84,
121
+ 0x310: 84,
122
+ 0x311: 84,
123
+ 0x312: 84,
124
+ 0x313: 84,
125
+ 0x314: 84,
126
+ 0x315: 84,
127
+ 0x316: 84,
128
+ 0x317: 84,
129
+ 0x318: 84,
130
+ 0x319: 84,
131
+ 0x31a: 84,
132
+ 0x31b: 84,
133
+ 0x31c: 84,
134
+ 0x31d: 84,
135
+ 0x31e: 84,
136
+ 0x31f: 84,
137
+ 0x320: 84,
138
+ 0x321: 84,
139
+ 0x322: 84,
140
+ 0x323: 84,
141
+ 0x324: 84,
142
+ 0x325: 84,
143
+ 0x326: 84,
144
+ 0x327: 84,
145
+ 0x328: 84,
146
+ 0x329: 84,
147
+ 0x32a: 84,
148
+ 0x32b: 84,
149
+ 0x32c: 84,
150
+ 0x32d: 84,
151
+ 0x32e: 84,
152
+ 0x32f: 84,
153
+ 0x330: 84,
154
+ 0x331: 84,
155
+ 0x332: 84,
156
+ 0x333: 84,
157
+ 0x334: 84,
158
+ 0x335: 84,
159
+ 0x336: 84,
160
+ 0x337: 84,
161
+ 0x338: 84,
162
+ 0x339: 84,
163
+ 0x33a: 84,
164
+ 0x33b: 84,
165
+ 0x33c: 84,
166
+ 0x33d: 84,
167
+ 0x33e: 84,
168
+ 0x33f: 84,
169
+ 0x340: 84,
170
+ 0x341: 84,
171
+ 0x342: 84,
172
+ 0x343: 84,
173
+ 0x344: 84,
174
+ 0x345: 84,
175
+ 0x346: 84,
176
+ 0x347: 84,
177
+ 0x348: 84,
178
+ 0x349: 84,
179
+ 0x34a: 84,
180
+ 0x34b: 84,
181
+ 0x34c: 84,
182
+ 0x34d: 84,
183
+ 0x34e: 84,
184
+ 0x34f: 84,
185
+ 0x350: 84,
186
+ 0x351: 84,
187
+ 0x352: 84,
188
+ 0x353: 84,
189
+ 0x354: 84,
190
+ 0x355: 84,
191
+ 0x356: 84,
192
+ 0x357: 84,
193
+ 0x358: 84,
194
+ 0x359: 84,
195
+ 0x35a: 84,
196
+ 0x35b: 84,
197
+ 0x35c: 84,
198
+ 0x35d: 84,
199
+ 0x35e: 84,
200
+ 0x35f: 84,
201
+ 0x360: 84,
202
+ 0x361: 84,
203
+ 0x362: 84,
204
+ 0x363: 84,
205
+ 0x364: 84,
206
+ 0x365: 84,
207
+ 0x366: 84,
208
+ 0x367: 84,
209
+ 0x368: 84,
210
+ 0x369: 84,
211
+ 0x36a: 84,
212
+ 0x36b: 84,
213
+ 0x36c: 84,
214
+ 0x36d: 84,
215
+ 0x36e: 84,
216
+ 0x36f: 84,
217
+ 0x483: 84,
218
+ 0x484: 84,
219
+ 0x485: 84,
220
+ 0x486: 84,
221
+ 0x487: 84,
222
+ 0x488: 84,
223
+ 0x489: 84,
224
+ 0x591: 84,
225
+ 0x592: 84,
226
+ 0x593: 84,
227
+ 0x594: 84,
228
+ 0x595: 84,
229
+ 0x596: 84,
230
+ 0x597: 84,
231
+ 0x598: 84,
232
+ 0x599: 84,
233
+ 0x59a: 84,
234
+ 0x59b: 84,
235
+ 0x59c: 84,
236
+ 0x59d: 84,
237
+ 0x59e: 84,
238
+ 0x59f: 84,
239
+ 0x5a0: 84,
240
+ 0x5a1: 84,
241
+ 0x5a2: 84,
242
+ 0x5a3: 84,
243
+ 0x5a4: 84,
244
+ 0x5a5: 84,
245
+ 0x5a6: 84,
246
+ 0x5a7: 84,
247
+ 0x5a8: 84,
248
+ 0x5a9: 84,
249
+ 0x5aa: 84,
250
+ 0x5ab: 84,
251
+ 0x5ac: 84,
252
+ 0x5ad: 84,
253
+ 0x5ae: 84,
254
+ 0x5af: 84,
255
+ 0x5b0: 84,
256
+ 0x5b1: 84,
257
+ 0x5b2: 84,
258
+ 0x5b3: 84,
259
+ 0x5b4: 84,
260
+ 0x5b5: 84,
261
+ 0x5b6: 84,
262
+ 0x5b7: 84,
263
+ 0x5b8: 84,
264
+ 0x5b9: 84,
265
+ 0x5ba: 84,
266
+ 0x5bb: 84,
267
+ 0x5bc: 84,
268
+ 0x5bd: 84,
269
+ 0x5bf: 84,
270
+ 0x5c1: 84,
271
+ 0x5c2: 84,
272
+ 0x5c4: 84,
273
+ 0x5c5: 84,
274
+ 0x5c7: 84,
275
+ 0x610: 84,
276
+ 0x611: 84,
277
+ 0x612: 84,
278
+ 0x613: 84,
279
+ 0x614: 84,
280
+ 0x615: 84,
281
+ 0x616: 84,
282
+ 0x617: 84,
283
+ 0x618: 84,
284
+ 0x619: 84,
285
+ 0x61a: 84,
286
+ 0x61c: 84,
287
+ 0x620: 68,
288
+ 0x622: 82,
289
+ 0x623: 82,
290
+ 0x624: 82,
291
+ 0x625: 82,
292
+ 0x626: 68,
293
+ 0x627: 82,
294
+ 0x628: 68,
295
+ 0x629: 82,
296
+ 0x62a: 68,
297
+ 0x62b: 68,
298
+ 0x62c: 68,
299
+ 0x62d: 68,
300
+ 0x62e: 68,
301
+ 0x62f: 82,
302
+ 0x630: 82,
303
+ 0x631: 82,
304
+ 0x632: 82,
305
+ 0x633: 68,
306
+ 0x634: 68,
307
+ 0x635: 68,
308
+ 0x636: 68,
309
+ 0x637: 68,
310
+ 0x638: 68,
311
+ 0x639: 68,
312
+ 0x63a: 68,
313
+ 0x63b: 68,
314
+ 0x63c: 68,
315
+ 0x63d: 68,
316
+ 0x63e: 68,
317
+ 0x63f: 68,
318
+ 0x640: 67,
319
+ 0x641: 68,
320
+ 0x642: 68,
321
+ 0x643: 68,
322
+ 0x644: 68,
323
+ 0x645: 68,
324
+ 0x646: 68,
325
+ 0x647: 68,
326
+ 0x648: 82,
327
+ 0x649: 68,
328
+ 0x64a: 68,
329
+ 0x64b: 84,
330
+ 0x64c: 84,
331
+ 0x64d: 84,
332
+ 0x64e: 84,
333
+ 0x64f: 84,
334
+ 0x650: 84,
335
+ 0x651: 84,
336
+ 0x652: 84,
337
+ 0x653: 84,
338
+ 0x654: 84,
339
+ 0x655: 84,
340
+ 0x656: 84,
341
+ 0x657: 84,
342
+ 0x658: 84,
343
+ 0x659: 84,
344
+ 0x65a: 84,
345
+ 0x65b: 84,
346
+ 0x65c: 84,
347
+ 0x65d: 84,
348
+ 0x65e: 84,
349
+ 0x65f: 84,
350
+ 0x66e: 68,
351
+ 0x66f: 68,
352
+ 0x670: 84,
353
+ 0x671: 82,
354
+ 0x672: 82,
355
+ 0x673: 82,
356
+ 0x675: 82,
357
+ 0x676: 82,
358
+ 0x677: 82,
359
+ 0x678: 68,
360
+ 0x679: 68,
361
+ 0x67a: 68,
362
+ 0x67b: 68,
363
+ 0x67c: 68,
364
+ 0x67d: 68,
365
+ 0x67e: 68,
366
+ 0x67f: 68,
367
+ 0x680: 68,
368
+ 0x681: 68,
369
+ 0x682: 68,
370
+ 0x683: 68,
371
+ 0x684: 68,
372
+ 0x685: 68,
373
+ 0x686: 68,
374
+ 0x687: 68,
375
+ 0x688: 82,
376
+ 0x689: 82,
377
+ 0x68a: 82,
378
+ 0x68b: 82,
379
+ 0x68c: 82,
380
+ 0x68d: 82,
381
+ 0x68e: 82,
382
+ 0x68f: 82,
383
+ 0x690: 82,
384
+ 0x691: 82,
385
+ 0x692: 82,
386
+ 0x693: 82,
387
+ 0x694: 82,
388
+ 0x695: 82,
389
+ 0x696: 82,
390
+ 0x697: 82,
391
+ 0x698: 82,
392
+ 0x699: 82,
393
+ 0x69a: 68,
394
+ 0x69b: 68,
395
+ 0x69c: 68,
396
+ 0x69d: 68,
397
+ 0x69e: 68,
398
+ 0x69f: 68,
399
+ 0x6a0: 68,
400
+ 0x6a1: 68,
401
+ 0x6a2: 68,
402
+ 0x6a3: 68,
403
+ 0x6a4: 68,
404
+ 0x6a5: 68,
405
+ 0x6a6: 68,
406
+ 0x6a7: 68,
407
+ 0x6a8: 68,
408
+ 0x6a9: 68,
409
+ 0x6aa: 68,
410
+ 0x6ab: 68,
411
+ 0x6ac: 68,
412
+ 0x6ad: 68,
413
+ 0x6ae: 68,
414
+ 0x6af: 68,
415
+ 0x6b0: 68,
416
+ 0x6b1: 68,
417
+ 0x6b2: 68,
418
+ 0x6b3: 68,
419
+ 0x6b4: 68,
420
+ 0x6b5: 68,
421
+ 0x6b6: 68,
422
+ 0x6b7: 68,
423
+ 0x6b8: 68,
424
+ 0x6b9: 68,
425
+ 0x6ba: 68,
426
+ 0x6bb: 68,
427
+ 0x6bc: 68,
428
+ 0x6bd: 68,
429
+ 0x6be: 68,
430
+ 0x6bf: 68,
431
+ 0x6c0: 82,
432
+ 0x6c1: 68,
433
+ 0x6c2: 68,
434
+ 0x6c3: 82,
435
+ 0x6c4: 82,
436
+ 0x6c5: 82,
437
+ 0x6c6: 82,
438
+ 0x6c7: 82,
439
+ 0x6c8: 82,
440
+ 0x6c9: 82,
441
+ 0x6ca: 82,
442
+ 0x6cb: 82,
443
+ 0x6cc: 68,
444
+ 0x6cd: 82,
445
+ 0x6ce: 68,
446
+ 0x6cf: 82,
447
+ 0x6d0: 68,
448
+ 0x6d1: 68,
449
+ 0x6d2: 82,
450
+ 0x6d3: 82,
451
+ 0x6d5: 82,
452
+ 0x6d6: 84,
453
+ 0x6d7: 84,
454
+ 0x6d8: 84,
455
+ 0x6d9: 84,
456
+ 0x6da: 84,
457
+ 0x6db: 84,
458
+ 0x6dc: 84,
459
+ 0x6df: 84,
460
+ 0x6e0: 84,
461
+ 0x6e1: 84,
462
+ 0x6e2: 84,
463
+ 0x6e3: 84,
464
+ 0x6e4: 84,
465
+ 0x6e7: 84,
466
+ 0x6e8: 84,
467
+ 0x6ea: 84,
468
+ 0x6eb: 84,
469
+ 0x6ec: 84,
470
+ 0x6ed: 84,
471
+ 0x6ee: 82,
472
+ 0x6ef: 82,
473
+ 0x6fa: 68,
474
+ 0x6fb: 68,
475
+ 0x6fc: 68,
476
+ 0x6ff: 68,
477
+ 0x70f: 84,
478
+ 0x710: 82,
479
+ 0x711: 84,
480
+ 0x712: 68,
481
+ 0x713: 68,
482
+ 0x714: 68,
483
+ 0x715: 82,
484
+ 0x716: 82,
485
+ 0x717: 82,
486
+ 0x718: 82,
487
+ 0x719: 82,
488
+ 0x71a: 68,
489
+ 0x71b: 68,
490
+ 0x71c: 68,
491
+ 0x71d: 68,
492
+ 0x71e: 82,
493
+ 0x71f: 68,
494
+ 0x720: 68,
495
+ 0x721: 68,
496
+ 0x722: 68,
497
+ 0x723: 68,
498
+ 0x724: 68,
499
+ 0x725: 68,
500
+ 0x726: 68,
501
+ 0x727: 68,
502
+ 0x728: 82,
503
+ 0x729: 68,
504
+ 0x72a: 82,
505
+ 0x72b: 68,
506
+ 0x72c: 82,
507
+ 0x72d: 68,
508
+ 0x72e: 68,
509
+ 0x72f: 82,
510
+ 0x730: 84,
511
+ 0x731: 84,
512
+ 0x732: 84,
513
+ 0x733: 84,
514
+ 0x734: 84,
515
+ 0x735: 84,
516
+ 0x736: 84,
517
+ 0x737: 84,
518
+ 0x738: 84,
519
+ 0x739: 84,
520
+ 0x73a: 84,
521
+ 0x73b: 84,
522
+ 0x73c: 84,
523
+ 0x73d: 84,
524
+ 0x73e: 84,
525
+ 0x73f: 84,
526
+ 0x740: 84,
527
+ 0x741: 84,
528
+ 0x742: 84,
529
+ 0x743: 84,
530
+ 0x744: 84,
531
+ 0x745: 84,
532
+ 0x746: 84,
533
+ 0x747: 84,
534
+ 0x748: 84,
535
+ 0x749: 84,
536
+ 0x74a: 84,
537
+ 0x74d: 82,
538
+ 0x74e: 68,
539
+ 0x74f: 68,
540
+ 0x750: 68,
541
+ 0x751: 68,
542
+ 0x752: 68,
543
+ 0x753: 68,
544
+ 0x754: 68,
545
+ 0x755: 68,
546
+ 0x756: 68,
547
+ 0x757: 68,
548
+ 0x758: 68,
549
+ 0x759: 82,
550
+ 0x75a: 82,
551
+ 0x75b: 82,
552
+ 0x75c: 68,
553
+ 0x75d: 68,
554
+ 0x75e: 68,
555
+ 0x75f: 68,
556
+ 0x760: 68,
557
+ 0x761: 68,
558
+ 0x762: 68,
559
+ 0x763: 68,
560
+ 0x764: 68,
561
+ 0x765: 68,
562
+ 0x766: 68,
563
+ 0x767: 68,
564
+ 0x768: 68,
565
+ 0x769: 68,
566
+ 0x76a: 68,
567
+ 0x76b: 82,
568
+ 0x76c: 82,
569
+ 0x76d: 68,
570
+ 0x76e: 68,
571
+ 0x76f: 68,
572
+ 0x770: 68,
573
+ 0x771: 82,
574
+ 0x772: 68,
575
+ 0x773: 82,
576
+ 0x774: 82,
577
+ 0x775: 68,
578
+ 0x776: 68,
579
+ 0x777: 68,
580
+ 0x778: 82,
581
+ 0x779: 82,
582
+ 0x77a: 68,
583
+ 0x77b: 68,
584
+ 0x77c: 68,
585
+ 0x77d: 68,
586
+ 0x77e: 68,
587
+ 0x77f: 68,
588
+ 0x7a6: 84,
589
+ 0x7a7: 84,
590
+ 0x7a8: 84,
591
+ 0x7a9: 84,
592
+ 0x7aa: 84,
593
+ 0x7ab: 84,
594
+ 0x7ac: 84,
595
+ 0x7ad: 84,
596
+ 0x7ae: 84,
597
+ 0x7af: 84,
598
+ 0x7b0: 84,
599
+ 0x7ca: 68,
600
+ 0x7cb: 68,
601
+ 0x7cc: 68,
602
+ 0x7cd: 68,
603
+ 0x7ce: 68,
604
+ 0x7cf: 68,
605
+ 0x7d0: 68,
606
+ 0x7d1: 68,
607
+ 0x7d2: 68,
608
+ 0x7d3: 68,
609
+ 0x7d4: 68,
610
+ 0x7d5: 68,
611
+ 0x7d6: 68,
612
+ 0x7d7: 68,
613
+ 0x7d8: 68,
614
+ 0x7d9: 68,
615
+ 0x7da: 68,
616
+ 0x7db: 68,
617
+ 0x7dc: 68,
618
+ 0x7dd: 68,
619
+ 0x7de: 68,
620
+ 0x7df: 68,
621
+ 0x7e0: 68,
622
+ 0x7e1: 68,
623
+ 0x7e2: 68,
624
+ 0x7e3: 68,
625
+ 0x7e4: 68,
626
+ 0x7e5: 68,
627
+ 0x7e6: 68,
628
+ 0x7e7: 68,
629
+ 0x7e8: 68,
630
+ 0x7e9: 68,
631
+ 0x7ea: 68,
632
+ 0x7eb: 84,
633
+ 0x7ec: 84,
634
+ 0x7ed: 84,
635
+ 0x7ee: 84,
636
+ 0x7ef: 84,
637
+ 0x7f0: 84,
638
+ 0x7f1: 84,
639
+ 0x7f2: 84,
640
+ 0x7f3: 84,
641
+ 0x7fa: 67,
642
+ 0x7fd: 84,
643
+ 0x816: 84,
644
+ 0x817: 84,
645
+ 0x818: 84,
646
+ 0x819: 84,
647
+ 0x81b: 84,
648
+ 0x81c: 84,
649
+ 0x81d: 84,
650
+ 0x81e: 84,
651
+ 0x81f: 84,
652
+ 0x820: 84,
653
+ 0x821: 84,
654
+ 0x822: 84,
655
+ 0x823: 84,
656
+ 0x825: 84,
657
+ 0x826: 84,
658
+ 0x827: 84,
659
+ 0x829: 84,
660
+ 0x82a: 84,
661
+ 0x82b: 84,
662
+ 0x82c: 84,
663
+ 0x82d: 84,
664
+ 0x840: 82,
665
+ 0x841: 68,
666
+ 0x842: 68,
667
+ 0x843: 68,
668
+ 0x844: 68,
669
+ 0x845: 68,
670
+ 0x846: 82,
671
+ 0x847: 82,
672
+ 0x848: 68,
673
+ 0x849: 82,
674
+ 0x84a: 68,
675
+ 0x84b: 68,
676
+ 0x84c: 68,
677
+ 0x84d: 68,
678
+ 0x84e: 68,
679
+ 0x84f: 68,
680
+ 0x850: 68,
681
+ 0x851: 68,
682
+ 0x852: 68,
683
+ 0x853: 68,
684
+ 0x854: 82,
685
+ 0x855: 68,
686
+ 0x856: 82,
687
+ 0x857: 82,
688
+ 0x858: 82,
689
+ 0x859: 84,
690
+ 0x85a: 84,
691
+ 0x85b: 84,
692
+ 0x860: 68,
693
+ 0x862: 68,
694
+ 0x863: 68,
695
+ 0x864: 68,
696
+ 0x865: 68,
697
+ 0x867: 82,
698
+ 0x868: 68,
699
+ 0x869: 82,
700
+ 0x86a: 82,
701
+ 0x870: 82,
702
+ 0x871: 82,
703
+ 0x872: 82,
704
+ 0x873: 82,
705
+ 0x874: 82,
706
+ 0x875: 82,
707
+ 0x876: 82,
708
+ 0x877: 82,
709
+ 0x878: 82,
710
+ 0x879: 82,
711
+ 0x87a: 82,
712
+ 0x87b: 82,
713
+ 0x87c: 82,
714
+ 0x87d: 82,
715
+ 0x87e: 82,
716
+ 0x87f: 82,
717
+ 0x880: 82,
718
+ 0x881: 82,
719
+ 0x882: 82,
720
+ 0x883: 67,
721
+ 0x884: 67,
722
+ 0x885: 67,
723
+ 0x886: 68,
724
+ 0x889: 68,
725
+ 0x88a: 68,
726
+ 0x88b: 68,
727
+ 0x88c: 68,
728
+ 0x88d: 68,
729
+ 0x88e: 82,
730
+ 0x898: 84,
731
+ 0x899: 84,
732
+ 0x89a: 84,
733
+ 0x89b: 84,
734
+ 0x89c: 84,
735
+ 0x89d: 84,
736
+ 0x89e: 84,
737
+ 0x89f: 84,
738
+ 0x8a0: 68,
739
+ 0x8a1: 68,
740
+ 0x8a2: 68,
741
+ 0x8a3: 68,
742
+ 0x8a4: 68,
743
+ 0x8a5: 68,
744
+ 0x8a6: 68,
745
+ 0x8a7: 68,
746
+ 0x8a8: 68,
747
+ 0x8a9: 68,
748
+ 0x8aa: 82,
749
+ 0x8ab: 82,
750
+ 0x8ac: 82,
751
+ 0x8ae: 82,
752
+ 0x8af: 68,
753
+ 0x8b0: 68,
754
+ 0x8b1: 82,
755
+ 0x8b2: 82,
756
+ 0x8b3: 68,
757
+ 0x8b4: 68,
758
+ 0x8b5: 68,
759
+ 0x8b6: 68,
760
+ 0x8b7: 68,
761
+ 0x8b8: 68,
762
+ 0x8b9: 82,
763
+ 0x8ba: 68,
764
+ 0x8bb: 68,
765
+ 0x8bc: 68,
766
+ 0x8bd: 68,
767
+ 0x8be: 68,
768
+ 0x8bf: 68,
769
+ 0x8c0: 68,
770
+ 0x8c1: 68,
771
+ 0x8c2: 68,
772
+ 0x8c3: 68,
773
+ 0x8c4: 68,
774
+ 0x8c5: 68,
775
+ 0x8c6: 68,
776
+ 0x8c7: 68,
777
+ 0x8c8: 68,
778
+ 0x8ca: 84,
779
+ 0x8cb: 84,
780
+ 0x8cc: 84,
781
+ 0x8cd: 84,
782
+ 0x8ce: 84,
783
+ 0x8cf: 84,
784
+ 0x8d0: 84,
785
+ 0x8d1: 84,
786
+ 0x8d2: 84,
787
+ 0x8d3: 84,
788
+ 0x8d4: 84,
789
+ 0x8d5: 84,
790
+ 0x8d6: 84,
791
+ 0x8d7: 84,
792
+ 0x8d8: 84,
793
+ 0x8d9: 84,
794
+ 0x8da: 84,
795
+ 0x8db: 84,
796
+ 0x8dc: 84,
797
+ 0x8dd: 84,
798
+ 0x8de: 84,
799
+ 0x8df: 84,
800
+ 0x8e0: 84,
801
+ 0x8e1: 84,
802
+ 0x8e3: 84,
803
+ 0x8e4: 84,
804
+ 0x8e5: 84,
805
+ 0x8e6: 84,
806
+ 0x8e7: 84,
807
+ 0x8e8: 84,
808
+ 0x8e9: 84,
809
+ 0x8ea: 84,
810
+ 0x8eb: 84,
811
+ 0x8ec: 84,
812
+ 0x8ed: 84,
813
+ 0x8ee: 84,
814
+ 0x8ef: 84,
815
+ 0x8f0: 84,
816
+ 0x8f1: 84,
817
+ 0x8f2: 84,
818
+ 0x8f3: 84,
819
+ 0x8f4: 84,
820
+ 0x8f5: 84,
821
+ 0x8f6: 84,
822
+ 0x8f7: 84,
823
+ 0x8f8: 84,
824
+ 0x8f9: 84,
825
+ 0x8fa: 84,
826
+ 0x8fb: 84,
827
+ 0x8fc: 84,
828
+ 0x8fd: 84,
829
+ 0x8fe: 84,
830
+ 0x8ff: 84,
831
+ 0x900: 84,
832
+ 0x901: 84,
833
+ 0x902: 84,
834
+ 0x93a: 84,
835
+ 0x93c: 84,
836
+ 0x941: 84,
837
+ 0x942: 84,
838
+ 0x943: 84,
839
+ 0x944: 84,
840
+ 0x945: 84,
841
+ 0x946: 84,
842
+ 0x947: 84,
843
+ 0x948: 84,
844
+ 0x94d: 84,
845
+ 0x951: 84,
846
+ 0x952: 84,
847
+ 0x953: 84,
848
+ 0x954: 84,
849
+ 0x955: 84,
850
+ 0x956: 84,
851
+ 0x957: 84,
852
+ 0x962: 84,
853
+ 0x963: 84,
854
+ 0x981: 84,
855
+ 0x9bc: 84,
856
+ 0x9c1: 84,
857
+ 0x9c2: 84,
858
+ 0x9c3: 84,
859
+ 0x9c4: 84,
860
+ 0x9cd: 84,
861
+ 0x9e2: 84,
862
+ 0x9e3: 84,
863
+ 0x9fe: 84,
864
+ 0xa01: 84,
865
+ 0xa02: 84,
866
+ 0xa3c: 84,
867
+ 0xa41: 84,
868
+ 0xa42: 84,
869
+ 0xa47: 84,
870
+ 0xa48: 84,
871
+ 0xa4b: 84,
872
+ 0xa4c: 84,
873
+ 0xa4d: 84,
874
+ 0xa51: 84,
875
+ 0xa70: 84,
876
+ 0xa71: 84,
877
+ 0xa75: 84,
878
+ 0xa81: 84,
879
+ 0xa82: 84,
880
+ 0xabc: 84,
881
+ 0xac1: 84,
882
+ 0xac2: 84,
883
+ 0xac3: 84,
884
+ 0xac4: 84,
885
+ 0xac5: 84,
886
+ 0xac7: 84,
887
+ 0xac8: 84,
888
+ 0xacd: 84,
889
+ 0xae2: 84,
890
+ 0xae3: 84,
891
+ 0xafa: 84,
892
+ 0xafb: 84,
893
+ 0xafc: 84,
894
+ 0xafd: 84,
895
+ 0xafe: 84,
896
+ 0xaff: 84,
897
+ 0xb01: 84,
898
+ 0xb3c: 84,
899
+ 0xb3f: 84,
900
+ 0xb41: 84,
901
+ 0xb42: 84,
902
+ 0xb43: 84,
903
+ 0xb44: 84,
904
+ 0xb4d: 84,
905
+ 0xb55: 84,
906
+ 0xb56: 84,
907
+ 0xb62: 84,
908
+ 0xb63: 84,
909
+ 0xb82: 84,
910
+ 0xbc0: 84,
911
+ 0xbcd: 84,
912
+ 0xc00: 84,
913
+ 0xc04: 84,
914
+ 0xc3c: 84,
915
+ 0xc3e: 84,
916
+ 0xc3f: 84,
917
+ 0xc40: 84,
918
+ 0xc46: 84,
919
+ 0xc47: 84,
920
+ 0xc48: 84,
921
+ 0xc4a: 84,
922
+ 0xc4b: 84,
923
+ 0xc4c: 84,
924
+ 0xc4d: 84,
925
+ 0xc55: 84,
926
+ 0xc56: 84,
927
+ 0xc62: 84,
928
+ 0xc63: 84,
929
+ 0xc81: 84,
930
+ 0xcbc: 84,
931
+ 0xcbf: 84,
932
+ 0xcc6: 84,
933
+ 0xccc: 84,
934
+ 0xccd: 84,
935
+ 0xce2: 84,
936
+ 0xce3: 84,
937
+ 0xd00: 84,
938
+ 0xd01: 84,
939
+ 0xd3b: 84,
940
+ 0xd3c: 84,
941
+ 0xd41: 84,
942
+ 0xd42: 84,
943
+ 0xd43: 84,
944
+ 0xd44: 84,
945
+ 0xd4d: 84,
946
+ 0xd62: 84,
947
+ 0xd63: 84,
948
+ 0xd81: 84,
949
+ 0xdca: 84,
950
+ 0xdd2: 84,
951
+ 0xdd3: 84,
952
+ 0xdd4: 84,
953
+ 0xdd6: 84,
954
+ 0xe31: 84,
955
+ 0xe34: 84,
956
+ 0xe35: 84,
957
+ 0xe36: 84,
958
+ 0xe37: 84,
959
+ 0xe38: 84,
960
+ 0xe39: 84,
961
+ 0xe3a: 84,
962
+ 0xe47: 84,
963
+ 0xe48: 84,
964
+ 0xe49: 84,
965
+ 0xe4a: 84,
966
+ 0xe4b: 84,
967
+ 0xe4c: 84,
968
+ 0xe4d: 84,
969
+ 0xe4e: 84,
970
+ 0xeb1: 84,
971
+ 0xeb4: 84,
972
+ 0xeb5: 84,
973
+ 0xeb6: 84,
974
+ 0xeb7: 84,
975
+ 0xeb8: 84,
976
+ 0xeb9: 84,
977
+ 0xeba: 84,
978
+ 0xebb: 84,
979
+ 0xebc: 84,
980
+ 0xec8: 84,
981
+ 0xec9: 84,
982
+ 0xeca: 84,
983
+ 0xecb: 84,
984
+ 0xecc: 84,
985
+ 0xecd: 84,
986
+ 0xece: 84,
987
+ 0xf18: 84,
988
+ 0xf19: 84,
989
+ 0xf35: 84,
990
+ 0xf37: 84,
991
+ 0xf39: 84,
992
+ 0xf71: 84,
993
+ 0xf72: 84,
994
+ 0xf73: 84,
995
+ 0xf74: 84,
996
+ 0xf75: 84,
997
+ 0xf76: 84,
998
+ 0xf77: 84,
999
+ 0xf78: 84,
1000
+ 0xf79: 84,
1001
+ 0xf7a: 84,
1002
+ 0xf7b: 84,
1003
+ 0xf7c: 84,
1004
+ 0xf7d: 84,
1005
+ 0xf7e: 84,
1006
+ 0xf80: 84,
1007
+ 0xf81: 84,
1008
+ 0xf82: 84,
1009
+ 0xf83: 84,
1010
+ 0xf84: 84,
1011
+ 0xf86: 84,
1012
+ 0xf87: 84,
1013
+ 0xf8d: 84,
1014
+ 0xf8e: 84,
1015
+ 0xf8f: 84,
1016
+ 0xf90: 84,
1017
+ 0xf91: 84,
1018
+ 0xf92: 84,
1019
+ 0xf93: 84,
1020
+ 0xf94: 84,
1021
+ 0xf95: 84,
1022
+ 0xf96: 84,
1023
+ 0xf97: 84,
1024
+ 0xf99: 84,
1025
+ 0xf9a: 84,
1026
+ 0xf9b: 84,
1027
+ 0xf9c: 84,
1028
+ 0xf9d: 84,
1029
+ 0xf9e: 84,
1030
+ 0xf9f: 84,
1031
+ 0xfa0: 84,
1032
+ 0xfa1: 84,
1033
+ 0xfa2: 84,
1034
+ 0xfa3: 84,
1035
+ 0xfa4: 84,
1036
+ 0xfa5: 84,
1037
+ 0xfa6: 84,
1038
+ 0xfa7: 84,
1039
+ 0xfa8: 84,
1040
+ 0xfa9: 84,
1041
+ 0xfaa: 84,
1042
+ 0xfab: 84,
1043
+ 0xfac: 84,
1044
+ 0xfad: 84,
1045
+ 0xfae: 84,
1046
+ 0xfaf: 84,
1047
+ 0xfb0: 84,
1048
+ 0xfb1: 84,
1049
+ 0xfb2: 84,
1050
+ 0xfb3: 84,
1051
+ 0xfb4: 84,
1052
+ 0xfb5: 84,
1053
+ 0xfb6: 84,
1054
+ 0xfb7: 84,
1055
+ 0xfb8: 84,
1056
+ 0xfb9: 84,
1057
+ 0xfba: 84,
1058
+ 0xfbb: 84,
1059
+ 0xfbc: 84,
1060
+ 0xfc6: 84,
1061
+ 0x102d: 84,
1062
+ 0x102e: 84,
1063
+ 0x102f: 84,
1064
+ 0x1030: 84,
1065
+ 0x1032: 84,
1066
+ 0x1033: 84,
1067
+ 0x1034: 84,
1068
+ 0x1035: 84,
1069
+ 0x1036: 84,
1070
+ 0x1037: 84,
1071
+ 0x1039: 84,
1072
+ 0x103a: 84,
1073
+ 0x103d: 84,
1074
+ 0x103e: 84,
1075
+ 0x1058: 84,
1076
+ 0x1059: 84,
1077
+ 0x105e: 84,
1078
+ 0x105f: 84,
1079
+ 0x1060: 84,
1080
+ 0x1071: 84,
1081
+ 0x1072: 84,
1082
+ 0x1073: 84,
1083
+ 0x1074: 84,
1084
+ 0x1082: 84,
1085
+ 0x1085: 84,
1086
+ 0x1086: 84,
1087
+ 0x108d: 84,
1088
+ 0x109d: 84,
1089
+ 0x135d: 84,
1090
+ 0x135e: 84,
1091
+ 0x135f: 84,
1092
+ 0x1712: 84,
1093
+ 0x1713: 84,
1094
+ 0x1714: 84,
1095
+ 0x1732: 84,
1096
+ 0x1733: 84,
1097
+ 0x1752: 84,
1098
+ 0x1753: 84,
1099
+ 0x1772: 84,
1100
+ 0x1773: 84,
1101
+ 0x17b4: 84,
1102
+ 0x17b5: 84,
1103
+ 0x17b7: 84,
1104
+ 0x17b8: 84,
1105
+ 0x17b9: 84,
1106
+ 0x17ba: 84,
1107
+ 0x17bb: 84,
1108
+ 0x17bc: 84,
1109
+ 0x17bd: 84,
1110
+ 0x17c6: 84,
1111
+ 0x17c9: 84,
1112
+ 0x17ca: 84,
1113
+ 0x17cb: 84,
1114
+ 0x17cc: 84,
1115
+ 0x17cd: 84,
1116
+ 0x17ce: 84,
1117
+ 0x17cf: 84,
1118
+ 0x17d0: 84,
1119
+ 0x17d1: 84,
1120
+ 0x17d2: 84,
1121
+ 0x17d3: 84,
1122
+ 0x17dd: 84,
1123
+ 0x1807: 68,
1124
+ 0x180a: 67,
1125
+ 0x180b: 84,
1126
+ 0x180c: 84,
1127
+ 0x180d: 84,
1128
+ 0x180f: 84,
1129
+ 0x1820: 68,
1130
+ 0x1821: 68,
1131
+ 0x1822: 68,
1132
+ 0x1823: 68,
1133
+ 0x1824: 68,
1134
+ 0x1825: 68,
1135
+ 0x1826: 68,
1136
+ 0x1827: 68,
1137
+ 0x1828: 68,
1138
+ 0x1829: 68,
1139
+ 0x182a: 68,
1140
+ 0x182b: 68,
1141
+ 0x182c: 68,
1142
+ 0x182d: 68,
1143
+ 0x182e: 68,
1144
+ 0x182f: 68,
1145
+ 0x1830: 68,
1146
+ 0x1831: 68,
1147
+ 0x1832: 68,
1148
+ 0x1833: 68,
1149
+ 0x1834: 68,
1150
+ 0x1835: 68,
1151
+ 0x1836: 68,
1152
+ 0x1837: 68,
1153
+ 0x1838: 68,
1154
+ 0x1839: 68,
1155
+ 0x183a: 68,
1156
+ 0x183b: 68,
1157
+ 0x183c: 68,
1158
+ 0x183d: 68,
1159
+ 0x183e: 68,
1160
+ 0x183f: 68,
1161
+ 0x1840: 68,
1162
+ 0x1841: 68,
1163
+ 0x1842: 68,
1164
+ 0x1843: 68,
1165
+ 0x1844: 68,
1166
+ 0x1845: 68,
1167
+ 0x1846: 68,
1168
+ 0x1847: 68,
1169
+ 0x1848: 68,
1170
+ 0x1849: 68,
1171
+ 0x184a: 68,
1172
+ 0x184b: 68,
1173
+ 0x184c: 68,
1174
+ 0x184d: 68,
1175
+ 0x184e: 68,
1176
+ 0x184f: 68,
1177
+ 0x1850: 68,
1178
+ 0x1851: 68,
1179
+ 0x1852: 68,
1180
+ 0x1853: 68,
1181
+ 0x1854: 68,
1182
+ 0x1855: 68,
1183
+ 0x1856: 68,
1184
+ 0x1857: 68,
1185
+ 0x1858: 68,
1186
+ 0x1859: 68,
1187
+ 0x185a: 68,
1188
+ 0x185b: 68,
1189
+ 0x185c: 68,
1190
+ 0x185d: 68,
1191
+ 0x185e: 68,
1192
+ 0x185f: 68,
1193
+ 0x1860: 68,
1194
+ 0x1861: 68,
1195
+ 0x1862: 68,
1196
+ 0x1863: 68,
1197
+ 0x1864: 68,
1198
+ 0x1865: 68,
1199
+ 0x1866: 68,
1200
+ 0x1867: 68,
1201
+ 0x1868: 68,
1202
+ 0x1869: 68,
1203
+ 0x186a: 68,
1204
+ 0x186b: 68,
1205
+ 0x186c: 68,
1206
+ 0x186d: 68,
1207
+ 0x186e: 68,
1208
+ 0x186f: 68,
1209
+ 0x1870: 68,
1210
+ 0x1871: 68,
1211
+ 0x1872: 68,
1212
+ 0x1873: 68,
1213
+ 0x1874: 68,
1214
+ 0x1875: 68,
1215
+ 0x1876: 68,
1216
+ 0x1877: 68,
1217
+ 0x1878: 68,
1218
+ 0x1885: 84,
1219
+ 0x1886: 84,
1220
+ 0x1887: 68,
1221
+ 0x1888: 68,
1222
+ 0x1889: 68,
1223
+ 0x188a: 68,
1224
+ 0x188b: 68,
1225
+ 0x188c: 68,
1226
+ 0x188d: 68,
1227
+ 0x188e: 68,
1228
+ 0x188f: 68,
1229
+ 0x1890: 68,
1230
+ 0x1891: 68,
1231
+ 0x1892: 68,
1232
+ 0x1893: 68,
1233
+ 0x1894: 68,
1234
+ 0x1895: 68,
1235
+ 0x1896: 68,
1236
+ 0x1897: 68,
1237
+ 0x1898: 68,
1238
+ 0x1899: 68,
1239
+ 0x189a: 68,
1240
+ 0x189b: 68,
1241
+ 0x189c: 68,
1242
+ 0x189d: 68,
1243
+ 0x189e: 68,
1244
+ 0x189f: 68,
1245
+ 0x18a0: 68,
1246
+ 0x18a1: 68,
1247
+ 0x18a2: 68,
1248
+ 0x18a3: 68,
1249
+ 0x18a4: 68,
1250
+ 0x18a5: 68,
1251
+ 0x18a6: 68,
1252
+ 0x18a7: 68,
1253
+ 0x18a8: 68,
1254
+ 0x18a9: 84,
1255
+ 0x18aa: 68,
1256
+ 0x1920: 84,
1257
+ 0x1921: 84,
1258
+ 0x1922: 84,
1259
+ 0x1927: 84,
1260
+ 0x1928: 84,
1261
+ 0x1932: 84,
1262
+ 0x1939: 84,
1263
+ 0x193a: 84,
1264
+ 0x193b: 84,
1265
+ 0x1a17: 84,
1266
+ 0x1a18: 84,
1267
+ 0x1a1b: 84,
1268
+ 0x1a56: 84,
1269
+ 0x1a58: 84,
1270
+ 0x1a59: 84,
1271
+ 0x1a5a: 84,
1272
+ 0x1a5b: 84,
1273
+ 0x1a5c: 84,
1274
+ 0x1a5d: 84,
1275
+ 0x1a5e: 84,
1276
+ 0x1a60: 84,
1277
+ 0x1a62: 84,
1278
+ 0x1a65: 84,
1279
+ 0x1a66: 84,
1280
+ 0x1a67: 84,
1281
+ 0x1a68: 84,
1282
+ 0x1a69: 84,
1283
+ 0x1a6a: 84,
1284
+ 0x1a6b: 84,
1285
+ 0x1a6c: 84,
1286
+ 0x1a73: 84,
1287
+ 0x1a74: 84,
1288
+ 0x1a75: 84,
1289
+ 0x1a76: 84,
1290
+ 0x1a77: 84,
1291
+ 0x1a78: 84,
1292
+ 0x1a79: 84,
1293
+ 0x1a7a: 84,
1294
+ 0x1a7b: 84,
1295
+ 0x1a7c: 84,
1296
+ 0x1a7f: 84,
1297
+ 0x1ab0: 84,
1298
+ 0x1ab1: 84,
1299
+ 0x1ab2: 84,
1300
+ 0x1ab3: 84,
1301
+ 0x1ab4: 84,
1302
+ 0x1ab5: 84,
1303
+ 0x1ab6: 84,
1304
+ 0x1ab7: 84,
1305
+ 0x1ab8: 84,
1306
+ 0x1ab9: 84,
1307
+ 0x1aba: 84,
1308
+ 0x1abb: 84,
1309
+ 0x1abc: 84,
1310
+ 0x1abd: 84,
1311
+ 0x1abe: 84,
1312
+ 0x1abf: 84,
1313
+ 0x1ac0: 84,
1314
+ 0x1ac1: 84,
1315
+ 0x1ac2: 84,
1316
+ 0x1ac3: 84,
1317
+ 0x1ac4: 84,
1318
+ 0x1ac5: 84,
1319
+ 0x1ac6: 84,
1320
+ 0x1ac7: 84,
1321
+ 0x1ac8: 84,
1322
+ 0x1ac9: 84,
1323
+ 0x1aca: 84,
1324
+ 0x1acb: 84,
1325
+ 0x1acc: 84,
1326
+ 0x1acd: 84,
1327
+ 0x1ace: 84,
1328
+ 0x1b00: 84,
1329
+ 0x1b01: 84,
1330
+ 0x1b02: 84,
1331
+ 0x1b03: 84,
1332
+ 0x1b34: 84,
1333
+ 0x1b36: 84,
1334
+ 0x1b37: 84,
1335
+ 0x1b38: 84,
1336
+ 0x1b39: 84,
1337
+ 0x1b3a: 84,
1338
+ 0x1b3c: 84,
1339
+ 0x1b42: 84,
1340
+ 0x1b6b: 84,
1341
+ 0x1b6c: 84,
1342
+ 0x1b6d: 84,
1343
+ 0x1b6e: 84,
1344
+ 0x1b6f: 84,
1345
+ 0x1b70: 84,
1346
+ 0x1b71: 84,
1347
+ 0x1b72: 84,
1348
+ 0x1b73: 84,
1349
+ 0x1b80: 84,
1350
+ 0x1b81: 84,
1351
+ 0x1ba2: 84,
1352
+ 0x1ba3: 84,
1353
+ 0x1ba4: 84,
1354
+ 0x1ba5: 84,
1355
+ 0x1ba8: 84,
1356
+ 0x1ba9: 84,
1357
+ 0x1bab: 84,
1358
+ 0x1bac: 84,
1359
+ 0x1bad: 84,
1360
+ 0x1be6: 84,
1361
+ 0x1be8: 84,
1362
+ 0x1be9: 84,
1363
+ 0x1bed: 84,
1364
+ 0x1bef: 84,
1365
+ 0x1bf0: 84,
1366
+ 0x1bf1: 84,
1367
+ 0x1c2c: 84,
1368
+ 0x1c2d: 84,
1369
+ 0x1c2e: 84,
1370
+ 0x1c2f: 84,
1371
+ 0x1c30: 84,
1372
+ 0x1c31: 84,
1373
+ 0x1c32: 84,
1374
+ 0x1c33: 84,
1375
+ 0x1c36: 84,
1376
+ 0x1c37: 84,
1377
+ 0x1cd0: 84,
1378
+ 0x1cd1: 84,
1379
+ 0x1cd2: 84,
1380
+ 0x1cd4: 84,
1381
+ 0x1cd5: 84,
1382
+ 0x1cd6: 84,
1383
+ 0x1cd7: 84,
1384
+ 0x1cd8: 84,
1385
+ 0x1cd9: 84,
1386
+ 0x1cda: 84,
1387
+ 0x1cdb: 84,
1388
+ 0x1cdc: 84,
1389
+ 0x1cdd: 84,
1390
+ 0x1cde: 84,
1391
+ 0x1cdf: 84,
1392
+ 0x1ce0: 84,
1393
+ 0x1ce2: 84,
1394
+ 0x1ce3: 84,
1395
+ 0x1ce4: 84,
1396
+ 0x1ce5: 84,
1397
+ 0x1ce6: 84,
1398
+ 0x1ce7: 84,
1399
+ 0x1ce8: 84,
1400
+ 0x1ced: 84,
1401
+ 0x1cf4: 84,
1402
+ 0x1cf8: 84,
1403
+ 0x1cf9: 84,
1404
+ 0x1dc0: 84,
1405
+ 0x1dc1: 84,
1406
+ 0x1dc2: 84,
1407
+ 0x1dc3: 84,
1408
+ 0x1dc4: 84,
1409
+ 0x1dc5: 84,
1410
+ 0x1dc6: 84,
1411
+ 0x1dc7: 84,
1412
+ 0x1dc8: 84,
1413
+ 0x1dc9: 84,
1414
+ 0x1dca: 84,
1415
+ 0x1dcb: 84,
1416
+ 0x1dcc: 84,
1417
+ 0x1dcd: 84,
1418
+ 0x1dce: 84,
1419
+ 0x1dcf: 84,
1420
+ 0x1dd0: 84,
1421
+ 0x1dd1: 84,
1422
+ 0x1dd2: 84,
1423
+ 0x1dd3: 84,
1424
+ 0x1dd4: 84,
1425
+ 0x1dd5: 84,
1426
+ 0x1dd6: 84,
1427
+ 0x1dd7: 84,
1428
+ 0x1dd8: 84,
1429
+ 0x1dd9: 84,
1430
+ 0x1dda: 84,
1431
+ 0x1ddb: 84,
1432
+ 0x1ddc: 84,
1433
+ 0x1ddd: 84,
1434
+ 0x1dde: 84,
1435
+ 0x1ddf: 84,
1436
+ 0x1de0: 84,
1437
+ 0x1de1: 84,
1438
+ 0x1de2: 84,
1439
+ 0x1de3: 84,
1440
+ 0x1de4: 84,
1441
+ 0x1de5: 84,
1442
+ 0x1de6: 84,
1443
+ 0x1de7: 84,
1444
+ 0x1de8: 84,
1445
+ 0x1de9: 84,
1446
+ 0x1dea: 84,
1447
+ 0x1deb: 84,
1448
+ 0x1dec: 84,
1449
+ 0x1ded: 84,
1450
+ 0x1dee: 84,
1451
+ 0x1def: 84,
1452
+ 0x1df0: 84,
1453
+ 0x1df1: 84,
1454
+ 0x1df2: 84,
1455
+ 0x1df3: 84,
1456
+ 0x1df4: 84,
1457
+ 0x1df5: 84,
1458
+ 0x1df6: 84,
1459
+ 0x1df7: 84,
1460
+ 0x1df8: 84,
1461
+ 0x1df9: 84,
1462
+ 0x1dfa: 84,
1463
+ 0x1dfb: 84,
1464
+ 0x1dfc: 84,
1465
+ 0x1dfd: 84,
1466
+ 0x1dfe: 84,
1467
+ 0x1dff: 84,
1468
+ 0x200b: 84,
1469
+ 0x200d: 67,
1470
+ 0x200e: 84,
1471
+ 0x200f: 84,
1472
+ 0x202a: 84,
1473
+ 0x202b: 84,
1474
+ 0x202c: 84,
1475
+ 0x202d: 84,
1476
+ 0x202e: 84,
1477
+ 0x2060: 84,
1478
+ 0x2061: 84,
1479
+ 0x2062: 84,
1480
+ 0x2063: 84,
1481
+ 0x2064: 84,
1482
+ 0x206a: 84,
1483
+ 0x206b: 84,
1484
+ 0x206c: 84,
1485
+ 0x206d: 84,
1486
+ 0x206e: 84,
1487
+ 0x206f: 84,
1488
+ 0x20d0: 84,
1489
+ 0x20d1: 84,
1490
+ 0x20d2: 84,
1491
+ 0x20d3: 84,
1492
+ 0x20d4: 84,
1493
+ 0x20d5: 84,
1494
+ 0x20d6: 84,
1495
+ 0x20d7: 84,
1496
+ 0x20d8: 84,
1497
+ 0x20d9: 84,
1498
+ 0x20da: 84,
1499
+ 0x20db: 84,
1500
+ 0x20dc: 84,
1501
+ 0x20dd: 84,
1502
+ 0x20de: 84,
1503
+ 0x20df: 84,
1504
+ 0x20e0: 84,
1505
+ 0x20e1: 84,
1506
+ 0x20e2: 84,
1507
+ 0x20e3: 84,
1508
+ 0x20e4: 84,
1509
+ 0x20e5: 84,
1510
+ 0x20e6: 84,
1511
+ 0x20e7: 84,
1512
+ 0x20e8: 84,
1513
+ 0x20e9: 84,
1514
+ 0x20ea: 84,
1515
+ 0x20eb: 84,
1516
+ 0x20ec: 84,
1517
+ 0x20ed: 84,
1518
+ 0x20ee: 84,
1519
+ 0x20ef: 84,
1520
+ 0x20f0: 84,
1521
+ 0x2cef: 84,
1522
+ 0x2cf0: 84,
1523
+ 0x2cf1: 84,
1524
+ 0x2d7f: 84,
1525
+ 0x2de0: 84,
1526
+ 0x2de1: 84,
1527
+ 0x2de2: 84,
1528
+ 0x2de3: 84,
1529
+ 0x2de4: 84,
1530
+ 0x2de5: 84,
1531
+ 0x2de6: 84,
1532
+ 0x2de7: 84,
1533
+ 0x2de8: 84,
1534
+ 0x2de9: 84,
1535
+ 0x2dea: 84,
1536
+ 0x2deb: 84,
1537
+ 0x2dec: 84,
1538
+ 0x2ded: 84,
1539
+ 0x2dee: 84,
1540
+ 0x2def: 84,
1541
+ 0x2df0: 84,
1542
+ 0x2df1: 84,
1543
+ 0x2df2: 84,
1544
+ 0x2df3: 84,
1545
+ 0x2df4: 84,
1546
+ 0x2df5: 84,
1547
+ 0x2df6: 84,
1548
+ 0x2df7: 84,
1549
+ 0x2df8: 84,
1550
+ 0x2df9: 84,
1551
+ 0x2dfa: 84,
1552
+ 0x2dfb: 84,
1553
+ 0x2dfc: 84,
1554
+ 0x2dfd: 84,
1555
+ 0x2dfe: 84,
1556
+ 0x2dff: 84,
1557
+ 0x302a: 84,
1558
+ 0x302b: 84,
1559
+ 0x302c: 84,
1560
+ 0x302d: 84,
1561
+ 0x3099: 84,
1562
+ 0x309a: 84,
1563
+ 0xa66f: 84,
1564
+ 0xa670: 84,
1565
+ 0xa671: 84,
1566
+ 0xa672: 84,
1567
+ 0xa674: 84,
1568
+ 0xa675: 84,
1569
+ 0xa676: 84,
1570
+ 0xa677: 84,
1571
+ 0xa678: 84,
1572
+ 0xa679: 84,
1573
+ 0xa67a: 84,
1574
+ 0xa67b: 84,
1575
+ 0xa67c: 84,
1576
+ 0xa67d: 84,
1577
+ 0xa69e: 84,
1578
+ 0xa69f: 84,
1579
+ 0xa6f0: 84,
1580
+ 0xa6f1: 84,
1581
+ 0xa802: 84,
1582
+ 0xa806: 84,
1583
+ 0xa80b: 84,
1584
+ 0xa825: 84,
1585
+ 0xa826: 84,
1586
+ 0xa82c: 84,
1587
+ 0xa840: 68,
1588
+ 0xa841: 68,
1589
+ 0xa842: 68,
1590
+ 0xa843: 68,
1591
+ 0xa844: 68,
1592
+ 0xa845: 68,
1593
+ 0xa846: 68,
1594
+ 0xa847: 68,
1595
+ 0xa848: 68,
1596
+ 0xa849: 68,
1597
+ 0xa84a: 68,
1598
+ 0xa84b: 68,
1599
+ 0xa84c: 68,
1600
+ 0xa84d: 68,
1601
+ 0xa84e: 68,
1602
+ 0xa84f: 68,
1603
+ 0xa850: 68,
1604
+ 0xa851: 68,
1605
+ 0xa852: 68,
1606
+ 0xa853: 68,
1607
+ 0xa854: 68,
1608
+ 0xa855: 68,
1609
+ 0xa856: 68,
1610
+ 0xa857: 68,
1611
+ 0xa858: 68,
1612
+ 0xa859: 68,
1613
+ 0xa85a: 68,
1614
+ 0xa85b: 68,
1615
+ 0xa85c: 68,
1616
+ 0xa85d: 68,
1617
+ 0xa85e: 68,
1618
+ 0xa85f: 68,
1619
+ 0xa860: 68,
1620
+ 0xa861: 68,
1621
+ 0xa862: 68,
1622
+ 0xa863: 68,
1623
+ 0xa864: 68,
1624
+ 0xa865: 68,
1625
+ 0xa866: 68,
1626
+ 0xa867: 68,
1627
+ 0xa868: 68,
1628
+ 0xa869: 68,
1629
+ 0xa86a: 68,
1630
+ 0xa86b: 68,
1631
+ 0xa86c: 68,
1632
+ 0xa86d: 68,
1633
+ 0xa86e: 68,
1634
+ 0xa86f: 68,
1635
+ 0xa870: 68,
1636
+ 0xa871: 68,
1637
+ 0xa872: 76,
1638
+ 0xa8c4: 84,
1639
+ 0xa8c5: 84,
1640
+ 0xa8e0: 84,
1641
+ 0xa8e1: 84,
1642
+ 0xa8e2: 84,
1643
+ 0xa8e3: 84,
1644
+ 0xa8e4: 84,
1645
+ 0xa8e5: 84,
1646
+ 0xa8e6: 84,
1647
+ 0xa8e7: 84,
1648
+ 0xa8e8: 84,
1649
+ 0xa8e9: 84,
1650
+ 0xa8ea: 84,
1651
+ 0xa8eb: 84,
1652
+ 0xa8ec: 84,
1653
+ 0xa8ed: 84,
1654
+ 0xa8ee: 84,
1655
+ 0xa8ef: 84,
1656
+ 0xa8f0: 84,
1657
+ 0xa8f1: 84,
1658
+ 0xa8ff: 84,
1659
+ 0xa926: 84,
1660
+ 0xa927: 84,
1661
+ 0xa928: 84,
1662
+ 0xa929: 84,
1663
+ 0xa92a: 84,
1664
+ 0xa92b: 84,
1665
+ 0xa92c: 84,
1666
+ 0xa92d: 84,
1667
+ 0xa947: 84,
1668
+ 0xa948: 84,
1669
+ 0xa949: 84,
1670
+ 0xa94a: 84,
1671
+ 0xa94b: 84,
1672
+ 0xa94c: 84,
1673
+ 0xa94d: 84,
1674
+ 0xa94e: 84,
1675
+ 0xa94f: 84,
1676
+ 0xa950: 84,
1677
+ 0xa951: 84,
1678
+ 0xa980: 84,
1679
+ 0xa981: 84,
1680
+ 0xa982: 84,
1681
+ 0xa9b3: 84,
1682
+ 0xa9b6: 84,
1683
+ 0xa9b7: 84,
1684
+ 0xa9b8: 84,
1685
+ 0xa9b9: 84,
1686
+ 0xa9bc: 84,
1687
+ 0xa9bd: 84,
1688
+ 0xa9e5: 84,
1689
+ 0xaa29: 84,
1690
+ 0xaa2a: 84,
1691
+ 0xaa2b: 84,
1692
+ 0xaa2c: 84,
1693
+ 0xaa2d: 84,
1694
+ 0xaa2e: 84,
1695
+ 0xaa31: 84,
1696
+ 0xaa32: 84,
1697
+ 0xaa35: 84,
1698
+ 0xaa36: 84,
1699
+ 0xaa43: 84,
1700
+ 0xaa4c: 84,
1701
+ 0xaa7c: 84,
1702
+ 0xaab0: 84,
1703
+ 0xaab2: 84,
1704
+ 0xaab3: 84,
1705
+ 0xaab4: 84,
1706
+ 0xaab7: 84,
1707
+ 0xaab8: 84,
1708
+ 0xaabe: 84,
1709
+ 0xaabf: 84,
1710
+ 0xaac1: 84,
1711
+ 0xaaec: 84,
1712
+ 0xaaed: 84,
1713
+ 0xaaf6: 84,
1714
+ 0xabe5: 84,
1715
+ 0xabe8: 84,
1716
+ 0xabed: 84,
1717
+ 0xfb1e: 84,
1718
+ 0xfe00: 84,
1719
+ 0xfe01: 84,
1720
+ 0xfe02: 84,
1721
+ 0xfe03: 84,
1722
+ 0xfe04: 84,
1723
+ 0xfe05: 84,
1724
+ 0xfe06: 84,
1725
+ 0xfe07: 84,
1726
+ 0xfe08: 84,
1727
+ 0xfe09: 84,
1728
+ 0xfe0a: 84,
1729
+ 0xfe0b: 84,
1730
+ 0xfe0c: 84,
1731
+ 0xfe0d: 84,
1732
+ 0xfe0e: 84,
1733
+ 0xfe0f: 84,
1734
+ 0xfe20: 84,
1735
+ 0xfe21: 84,
1736
+ 0xfe22: 84,
1737
+ 0xfe23: 84,
1738
+ 0xfe24: 84,
1739
+ 0xfe25: 84,
1740
+ 0xfe26: 84,
1741
+ 0xfe27: 84,
1742
+ 0xfe28: 84,
1743
+ 0xfe29: 84,
1744
+ 0xfe2a: 84,
1745
+ 0xfe2b: 84,
1746
+ 0xfe2c: 84,
1747
+ 0xfe2d: 84,
1748
+ 0xfe2e: 84,
1749
+ 0xfe2f: 84,
1750
+ 0xfeff: 84,
1751
+ 0xfff9: 84,
1752
+ 0xfffa: 84,
1753
+ 0xfffb: 84,
1754
+ 0x101fd: 84,
1755
+ 0x102e0: 84,
1756
+ 0x10376: 84,
1757
+ 0x10377: 84,
1758
+ 0x10378: 84,
1759
+ 0x10379: 84,
1760
+ 0x1037a: 84,
1761
+ 0x10a01: 84,
1762
+ 0x10a02: 84,
1763
+ 0x10a03: 84,
1764
+ 0x10a05: 84,
1765
+ 0x10a06: 84,
1766
+ 0x10a0c: 84,
1767
+ 0x10a0d: 84,
1768
+ 0x10a0e: 84,
1769
+ 0x10a0f: 84,
1770
+ 0x10a38: 84,
1771
+ 0x10a39: 84,
1772
+ 0x10a3a: 84,
1773
+ 0x10a3f: 84,
1774
+ 0x10ac0: 68,
1775
+ 0x10ac1: 68,
1776
+ 0x10ac2: 68,
1777
+ 0x10ac3: 68,
1778
+ 0x10ac4: 68,
1779
+ 0x10ac5: 82,
1780
+ 0x10ac7: 82,
1781
+ 0x10ac9: 82,
1782
+ 0x10aca: 82,
1783
+ 0x10acd: 76,
1784
+ 0x10ace: 82,
1785
+ 0x10acf: 82,
1786
+ 0x10ad0: 82,
1787
+ 0x10ad1: 82,
1788
+ 0x10ad2: 82,
1789
+ 0x10ad3: 68,
1790
+ 0x10ad4: 68,
1791
+ 0x10ad5: 68,
1792
+ 0x10ad6: 68,
1793
+ 0x10ad7: 76,
1794
+ 0x10ad8: 68,
1795
+ 0x10ad9: 68,
1796
+ 0x10ada: 68,
1797
+ 0x10adb: 68,
1798
+ 0x10adc: 68,
1799
+ 0x10add: 82,
1800
+ 0x10ade: 68,
1801
+ 0x10adf: 68,
1802
+ 0x10ae0: 68,
1803
+ 0x10ae1: 82,
1804
+ 0x10ae4: 82,
1805
+ 0x10ae5: 84,
1806
+ 0x10ae6: 84,
1807
+ 0x10aeb: 68,
1808
+ 0x10aec: 68,
1809
+ 0x10aed: 68,
1810
+ 0x10aee: 68,
1811
+ 0x10aef: 82,
1812
+ 0x10b80: 68,
1813
+ 0x10b81: 82,
1814
+ 0x10b82: 68,
1815
+ 0x10b83: 82,
1816
+ 0x10b84: 82,
1817
+ 0x10b85: 82,
1818
+ 0x10b86: 68,
1819
+ 0x10b87: 68,
1820
+ 0x10b88: 68,
1821
+ 0x10b89: 82,
1822
+ 0x10b8a: 68,
1823
+ 0x10b8b: 68,
1824
+ 0x10b8c: 82,
1825
+ 0x10b8d: 68,
1826
+ 0x10b8e: 82,
1827
+ 0x10b8f: 82,
1828
+ 0x10b90: 68,
1829
+ 0x10b91: 82,
1830
+ 0x10ba9: 82,
1831
+ 0x10baa: 82,
1832
+ 0x10bab: 82,
1833
+ 0x10bac: 82,
1834
+ 0x10bad: 68,
1835
+ 0x10bae: 68,
1836
+ 0x10d00: 76,
1837
+ 0x10d01: 68,
1838
+ 0x10d02: 68,
1839
+ 0x10d03: 68,
1840
+ 0x10d04: 68,
1841
+ 0x10d05: 68,
1842
+ 0x10d06: 68,
1843
+ 0x10d07: 68,
1844
+ 0x10d08: 68,
1845
+ 0x10d09: 68,
1846
+ 0x10d0a: 68,
1847
+ 0x10d0b: 68,
1848
+ 0x10d0c: 68,
1849
+ 0x10d0d: 68,
1850
+ 0x10d0e: 68,
1851
+ 0x10d0f: 68,
1852
+ 0x10d10: 68,
1853
+ 0x10d11: 68,
1854
+ 0x10d12: 68,
1855
+ 0x10d13: 68,
1856
+ 0x10d14: 68,
1857
+ 0x10d15: 68,
1858
+ 0x10d16: 68,
1859
+ 0x10d17: 68,
1860
+ 0x10d18: 68,
1861
+ 0x10d19: 68,
1862
+ 0x10d1a: 68,
1863
+ 0x10d1b: 68,
1864
+ 0x10d1c: 68,
1865
+ 0x10d1d: 68,
1866
+ 0x10d1e: 68,
1867
+ 0x10d1f: 68,
1868
+ 0x10d20: 68,
1869
+ 0x10d21: 68,
1870
+ 0x10d22: 82,
1871
+ 0x10d23: 68,
1872
+ 0x10d24: 84,
1873
+ 0x10d25: 84,
1874
+ 0x10d26: 84,
1875
+ 0x10d27: 84,
1876
+ 0x10eab: 84,
1877
+ 0x10eac: 84,
1878
+ 0x10efd: 84,
1879
+ 0x10efe: 84,
1880
+ 0x10eff: 84,
1881
+ 0x10f30: 68,
1882
+ 0x10f31: 68,
1883
+ 0x10f32: 68,
1884
+ 0x10f33: 82,
1885
+ 0x10f34: 68,
1886
+ 0x10f35: 68,
1887
+ 0x10f36: 68,
1888
+ 0x10f37: 68,
1889
+ 0x10f38: 68,
1890
+ 0x10f39: 68,
1891
+ 0x10f3a: 68,
1892
+ 0x10f3b: 68,
1893
+ 0x10f3c: 68,
1894
+ 0x10f3d: 68,
1895
+ 0x10f3e: 68,
1896
+ 0x10f3f: 68,
1897
+ 0x10f40: 68,
1898
+ 0x10f41: 68,
1899
+ 0x10f42: 68,
1900
+ 0x10f43: 68,
1901
+ 0x10f44: 68,
1902
+ 0x10f46: 84,
1903
+ 0x10f47: 84,
1904
+ 0x10f48: 84,
1905
+ 0x10f49: 84,
1906
+ 0x10f4a: 84,
1907
+ 0x10f4b: 84,
1908
+ 0x10f4c: 84,
1909
+ 0x10f4d: 84,
1910
+ 0x10f4e: 84,
1911
+ 0x10f4f: 84,
1912
+ 0x10f50: 84,
1913
+ 0x10f51: 68,
1914
+ 0x10f52: 68,
1915
+ 0x10f53: 68,
1916
+ 0x10f54: 82,
1917
+ 0x10f70: 68,
1918
+ 0x10f71: 68,
1919
+ 0x10f72: 68,
1920
+ 0x10f73: 68,
1921
+ 0x10f74: 82,
1922
+ 0x10f75: 82,
1923
+ 0x10f76: 68,
1924
+ 0x10f77: 68,
1925
+ 0x10f78: 68,
1926
+ 0x10f79: 68,
1927
+ 0x10f7a: 68,
1928
+ 0x10f7b: 68,
1929
+ 0x10f7c: 68,
1930
+ 0x10f7d: 68,
1931
+ 0x10f7e: 68,
1932
+ 0x10f7f: 68,
1933
+ 0x10f80: 68,
1934
+ 0x10f81: 68,
1935
+ 0x10f82: 84,
1936
+ 0x10f83: 84,
1937
+ 0x10f84: 84,
1938
+ 0x10f85: 84,
1939
+ 0x10fb0: 68,
1940
+ 0x10fb2: 68,
1941
+ 0x10fb3: 68,
1942
+ 0x10fb4: 82,
1943
+ 0x10fb5: 82,
1944
+ 0x10fb6: 82,
1945
+ 0x10fb8: 68,
1946
+ 0x10fb9: 82,
1947
+ 0x10fba: 82,
1948
+ 0x10fbb: 68,
1949
+ 0x10fbc: 68,
1950
+ 0x10fbd: 82,
1951
+ 0x10fbe: 68,
1952
+ 0x10fbf: 68,
1953
+ 0x10fc1: 68,
1954
+ 0x10fc2: 82,
1955
+ 0x10fc3: 82,
1956
+ 0x10fc4: 68,
1957
+ 0x10fc9: 82,
1958
+ 0x10fca: 68,
1959
+ 0x10fcb: 76,
1960
+ 0x11001: 84,
1961
+ 0x11038: 84,
1962
+ 0x11039: 84,
1963
+ 0x1103a: 84,
1964
+ 0x1103b: 84,
1965
+ 0x1103c: 84,
1966
+ 0x1103d: 84,
1967
+ 0x1103e: 84,
1968
+ 0x1103f: 84,
1969
+ 0x11040: 84,
1970
+ 0x11041: 84,
1971
+ 0x11042: 84,
1972
+ 0x11043: 84,
1973
+ 0x11044: 84,
1974
+ 0x11045: 84,
1975
+ 0x11046: 84,
1976
+ 0x11070: 84,
1977
+ 0x11073: 84,
1978
+ 0x11074: 84,
1979
+ 0x1107f: 84,
1980
+ 0x11080: 84,
1981
+ 0x11081: 84,
1982
+ 0x110b3: 84,
1983
+ 0x110b4: 84,
1984
+ 0x110b5: 84,
1985
+ 0x110b6: 84,
1986
+ 0x110b9: 84,
1987
+ 0x110ba: 84,
1988
+ 0x110c2: 84,
1989
+ 0x11100: 84,
1990
+ 0x11101: 84,
1991
+ 0x11102: 84,
1992
+ 0x11127: 84,
1993
+ 0x11128: 84,
1994
+ 0x11129: 84,
1995
+ 0x1112a: 84,
1996
+ 0x1112b: 84,
1997
+ 0x1112d: 84,
1998
+ 0x1112e: 84,
1999
+ 0x1112f: 84,
2000
+ 0x11130: 84,
2001
+ 0x11131: 84,
2002
+ 0x11132: 84,
2003
+ 0x11133: 84,
2004
+ 0x11134: 84,
2005
+ 0x11173: 84,
2006
+ 0x11180: 84,
2007
+ 0x11181: 84,
2008
+ 0x111b6: 84,
2009
+ 0x111b7: 84,
2010
+ 0x111b8: 84,
2011
+ 0x111b9: 84,
2012
+ 0x111ba: 84,
2013
+ 0x111bb: 84,
2014
+ 0x111bc: 84,
2015
+ 0x111bd: 84,
2016
+ 0x111be: 84,
2017
+ 0x111c9: 84,
2018
+ 0x111ca: 84,
2019
+ 0x111cb: 84,
2020
+ 0x111cc: 84,
2021
+ 0x111cf: 84,
2022
+ 0x1122f: 84,
2023
+ 0x11230: 84,
2024
+ 0x11231: 84,
2025
+ 0x11234: 84,
2026
+ 0x11236: 84,
2027
+ 0x11237: 84,
2028
+ 0x1123e: 84,
2029
+ 0x11241: 84,
2030
+ 0x112df: 84,
2031
+ 0x112e3: 84,
2032
+ 0x112e4: 84,
2033
+ 0x112e5: 84,
2034
+ 0x112e6: 84,
2035
+ 0x112e7: 84,
2036
+ 0x112e8: 84,
2037
+ 0x112e9: 84,
2038
+ 0x112ea: 84,
2039
+ 0x11300: 84,
2040
+ 0x11301: 84,
2041
+ 0x1133b: 84,
2042
+ 0x1133c: 84,
2043
+ 0x11340: 84,
2044
+ 0x11366: 84,
2045
+ 0x11367: 84,
2046
+ 0x11368: 84,
2047
+ 0x11369: 84,
2048
+ 0x1136a: 84,
2049
+ 0x1136b: 84,
2050
+ 0x1136c: 84,
2051
+ 0x11370: 84,
2052
+ 0x11371: 84,
2053
+ 0x11372: 84,
2054
+ 0x11373: 84,
2055
+ 0x11374: 84,
2056
+ 0x11438: 84,
2057
+ 0x11439: 84,
2058
+ 0x1143a: 84,
2059
+ 0x1143b: 84,
2060
+ 0x1143c: 84,
2061
+ 0x1143d: 84,
2062
+ 0x1143e: 84,
2063
+ 0x1143f: 84,
2064
+ 0x11442: 84,
2065
+ 0x11443: 84,
2066
+ 0x11444: 84,
2067
+ 0x11446: 84,
2068
+ 0x1145e: 84,
2069
+ 0x114b3: 84,
2070
+ 0x114b4: 84,
2071
+ 0x114b5: 84,
2072
+ 0x114b6: 84,
2073
+ 0x114b7: 84,
2074
+ 0x114b8: 84,
2075
+ 0x114ba: 84,
2076
+ 0x114bf: 84,
2077
+ 0x114c0: 84,
2078
+ 0x114c2: 84,
2079
+ 0x114c3: 84,
2080
+ 0x115b2: 84,
2081
+ 0x115b3: 84,
2082
+ 0x115b4: 84,
2083
+ 0x115b5: 84,
2084
+ 0x115bc: 84,
2085
+ 0x115bd: 84,
2086
+ 0x115bf: 84,
2087
+ 0x115c0: 84,
2088
+ 0x115dc: 84,
2089
+ 0x115dd: 84,
2090
+ 0x11633: 84,
2091
+ 0x11634: 84,
2092
+ 0x11635: 84,
2093
+ 0x11636: 84,
2094
+ 0x11637: 84,
2095
+ 0x11638: 84,
2096
+ 0x11639: 84,
2097
+ 0x1163a: 84,
2098
+ 0x1163d: 84,
2099
+ 0x1163f: 84,
2100
+ 0x11640: 84,
2101
+ 0x116ab: 84,
2102
+ 0x116ad: 84,
2103
+ 0x116b0: 84,
2104
+ 0x116b1: 84,
2105
+ 0x116b2: 84,
2106
+ 0x116b3: 84,
2107
+ 0x116b4: 84,
2108
+ 0x116b5: 84,
2109
+ 0x116b7: 84,
2110
+ 0x1171d: 84,
2111
+ 0x1171e: 84,
2112
+ 0x1171f: 84,
2113
+ 0x11722: 84,
2114
+ 0x11723: 84,
2115
+ 0x11724: 84,
2116
+ 0x11725: 84,
2117
+ 0x11727: 84,
2118
+ 0x11728: 84,
2119
+ 0x11729: 84,
2120
+ 0x1172a: 84,
2121
+ 0x1172b: 84,
2122
+ 0x1182f: 84,
2123
+ 0x11830: 84,
2124
+ 0x11831: 84,
2125
+ 0x11832: 84,
2126
+ 0x11833: 84,
2127
+ 0x11834: 84,
2128
+ 0x11835: 84,
2129
+ 0x11836: 84,
2130
+ 0x11837: 84,
2131
+ 0x11839: 84,
2132
+ 0x1183a: 84,
2133
+ 0x1193b: 84,
2134
+ 0x1193c: 84,
2135
+ 0x1193e: 84,
2136
+ 0x11943: 84,
2137
+ 0x119d4: 84,
2138
+ 0x119d5: 84,
2139
+ 0x119d6: 84,
2140
+ 0x119d7: 84,
2141
+ 0x119da: 84,
2142
+ 0x119db: 84,
2143
+ 0x119e0: 84,
2144
+ 0x11a01: 84,
2145
+ 0x11a02: 84,
2146
+ 0x11a03: 84,
2147
+ 0x11a04: 84,
2148
+ 0x11a05: 84,
2149
+ 0x11a06: 84,
2150
+ 0x11a07: 84,
2151
+ 0x11a08: 84,
2152
+ 0x11a09: 84,
2153
+ 0x11a0a: 84,
2154
+ 0x11a33: 84,
2155
+ 0x11a34: 84,
2156
+ 0x11a35: 84,
2157
+ 0x11a36: 84,
2158
+ 0x11a37: 84,
2159
+ 0x11a38: 84,
2160
+ 0x11a3b: 84,
2161
+ 0x11a3c: 84,
2162
+ 0x11a3d: 84,
2163
+ 0x11a3e: 84,
2164
+ 0x11a47: 84,
2165
+ 0x11a51: 84,
2166
+ 0x11a52: 84,
2167
+ 0x11a53: 84,
2168
+ 0x11a54: 84,
2169
+ 0x11a55: 84,
2170
+ 0x11a56: 84,
2171
+ 0x11a59: 84,
2172
+ 0x11a5a: 84,
2173
+ 0x11a5b: 84,
2174
+ 0x11a8a: 84,
2175
+ 0x11a8b: 84,
2176
+ 0x11a8c: 84,
2177
+ 0x11a8d: 84,
2178
+ 0x11a8e: 84,
2179
+ 0x11a8f: 84,
2180
+ 0x11a90: 84,
2181
+ 0x11a91: 84,
2182
+ 0x11a92: 84,
2183
+ 0x11a93: 84,
2184
+ 0x11a94: 84,
2185
+ 0x11a95: 84,
2186
+ 0x11a96: 84,
2187
+ 0x11a98: 84,
2188
+ 0x11a99: 84,
2189
+ 0x11c30: 84,
2190
+ 0x11c31: 84,
2191
+ 0x11c32: 84,
2192
+ 0x11c33: 84,
2193
+ 0x11c34: 84,
2194
+ 0x11c35: 84,
2195
+ 0x11c36: 84,
2196
+ 0x11c38: 84,
2197
+ 0x11c39: 84,
2198
+ 0x11c3a: 84,
2199
+ 0x11c3b: 84,
2200
+ 0x11c3c: 84,
2201
+ 0x11c3d: 84,
2202
+ 0x11c3f: 84,
2203
+ 0x11c92: 84,
2204
+ 0x11c93: 84,
2205
+ 0x11c94: 84,
2206
+ 0x11c95: 84,
2207
+ 0x11c96: 84,
2208
+ 0x11c97: 84,
2209
+ 0x11c98: 84,
2210
+ 0x11c99: 84,
2211
+ 0x11c9a: 84,
2212
+ 0x11c9b: 84,
2213
+ 0x11c9c: 84,
2214
+ 0x11c9d: 84,
2215
+ 0x11c9e: 84,
2216
+ 0x11c9f: 84,
2217
+ 0x11ca0: 84,
2218
+ 0x11ca1: 84,
2219
+ 0x11ca2: 84,
2220
+ 0x11ca3: 84,
2221
+ 0x11ca4: 84,
2222
+ 0x11ca5: 84,
2223
+ 0x11ca6: 84,
2224
+ 0x11ca7: 84,
2225
+ 0x11caa: 84,
2226
+ 0x11cab: 84,
2227
+ 0x11cac: 84,
2228
+ 0x11cad: 84,
2229
+ 0x11cae: 84,
2230
+ 0x11caf: 84,
2231
+ 0x11cb0: 84,
2232
+ 0x11cb2: 84,
2233
+ 0x11cb3: 84,
2234
+ 0x11cb5: 84,
2235
+ 0x11cb6: 84,
2236
+ 0x11d31: 84,
2237
+ 0x11d32: 84,
2238
+ 0x11d33: 84,
2239
+ 0x11d34: 84,
2240
+ 0x11d35: 84,
2241
+ 0x11d36: 84,
2242
+ 0x11d3a: 84,
2243
+ 0x11d3c: 84,
2244
+ 0x11d3d: 84,
2245
+ 0x11d3f: 84,
2246
+ 0x11d40: 84,
2247
+ 0x11d41: 84,
2248
+ 0x11d42: 84,
2249
+ 0x11d43: 84,
2250
+ 0x11d44: 84,
2251
+ 0x11d45: 84,
2252
+ 0x11d47: 84,
2253
+ 0x11d90: 84,
2254
+ 0x11d91: 84,
2255
+ 0x11d95: 84,
2256
+ 0x11d97: 84,
2257
+ 0x11ef3: 84,
2258
+ 0x11ef4: 84,
2259
+ 0x11f00: 84,
2260
+ 0x11f01: 84,
2261
+ 0x11f36: 84,
2262
+ 0x11f37: 84,
2263
+ 0x11f38: 84,
2264
+ 0x11f39: 84,
2265
+ 0x11f3a: 84,
2266
+ 0x11f40: 84,
2267
+ 0x11f42: 84,
2268
+ 0x13430: 84,
2269
+ 0x13431: 84,
2270
+ 0x13432: 84,
2271
+ 0x13433: 84,
2272
+ 0x13434: 84,
2273
+ 0x13435: 84,
2274
+ 0x13436: 84,
2275
+ 0x13437: 84,
2276
+ 0x13438: 84,
2277
+ 0x13439: 84,
2278
+ 0x1343a: 84,
2279
+ 0x1343b: 84,
2280
+ 0x1343c: 84,
2281
+ 0x1343d: 84,
2282
+ 0x1343e: 84,
2283
+ 0x1343f: 84,
2284
+ 0x13440: 84,
2285
+ 0x13447: 84,
2286
+ 0x13448: 84,
2287
+ 0x13449: 84,
2288
+ 0x1344a: 84,
2289
+ 0x1344b: 84,
2290
+ 0x1344c: 84,
2291
+ 0x1344d: 84,
2292
+ 0x1344e: 84,
2293
+ 0x1344f: 84,
2294
+ 0x13450: 84,
2295
+ 0x13451: 84,
2296
+ 0x13452: 84,
2297
+ 0x13453: 84,
2298
+ 0x13454: 84,
2299
+ 0x13455: 84,
2300
+ 0x16af0: 84,
2301
+ 0x16af1: 84,
2302
+ 0x16af2: 84,
2303
+ 0x16af3: 84,
2304
+ 0x16af4: 84,
2305
+ 0x16b30: 84,
2306
+ 0x16b31: 84,
2307
+ 0x16b32: 84,
2308
+ 0x16b33: 84,
2309
+ 0x16b34: 84,
2310
+ 0x16b35: 84,
2311
+ 0x16b36: 84,
2312
+ 0x16f4f: 84,
2313
+ 0x16f8f: 84,
2314
+ 0x16f90: 84,
2315
+ 0x16f91: 84,
2316
+ 0x16f92: 84,
2317
+ 0x16fe4: 84,
2318
+ 0x1bc9d: 84,
2319
+ 0x1bc9e: 84,
2320
+ 0x1bca0: 84,
2321
+ 0x1bca1: 84,
2322
+ 0x1bca2: 84,
2323
+ 0x1bca3: 84,
2324
+ 0x1cf00: 84,
2325
+ 0x1cf01: 84,
2326
+ 0x1cf02: 84,
2327
+ 0x1cf03: 84,
2328
+ 0x1cf04: 84,
2329
+ 0x1cf05: 84,
2330
+ 0x1cf06: 84,
2331
+ 0x1cf07: 84,
2332
+ 0x1cf08: 84,
2333
+ 0x1cf09: 84,
2334
+ 0x1cf0a: 84,
2335
+ 0x1cf0b: 84,
2336
+ 0x1cf0c: 84,
2337
+ 0x1cf0d: 84,
2338
+ 0x1cf0e: 84,
2339
+ 0x1cf0f: 84,
2340
+ 0x1cf10: 84,
2341
+ 0x1cf11: 84,
2342
+ 0x1cf12: 84,
2343
+ 0x1cf13: 84,
2344
+ 0x1cf14: 84,
2345
+ 0x1cf15: 84,
2346
+ 0x1cf16: 84,
2347
+ 0x1cf17: 84,
2348
+ 0x1cf18: 84,
2349
+ 0x1cf19: 84,
2350
+ 0x1cf1a: 84,
2351
+ 0x1cf1b: 84,
2352
+ 0x1cf1c: 84,
2353
+ 0x1cf1d: 84,
2354
+ 0x1cf1e: 84,
2355
+ 0x1cf1f: 84,
2356
+ 0x1cf20: 84,
2357
+ 0x1cf21: 84,
2358
+ 0x1cf22: 84,
2359
+ 0x1cf23: 84,
2360
+ 0x1cf24: 84,
2361
+ 0x1cf25: 84,
2362
+ 0x1cf26: 84,
2363
+ 0x1cf27: 84,
2364
+ 0x1cf28: 84,
2365
+ 0x1cf29: 84,
2366
+ 0x1cf2a: 84,
2367
+ 0x1cf2b: 84,
2368
+ 0x1cf2c: 84,
2369
+ 0x1cf2d: 84,
2370
+ 0x1cf30: 84,
2371
+ 0x1cf31: 84,
2372
+ 0x1cf32: 84,
2373
+ 0x1cf33: 84,
2374
+ 0x1cf34: 84,
2375
+ 0x1cf35: 84,
2376
+ 0x1cf36: 84,
2377
+ 0x1cf37: 84,
2378
+ 0x1cf38: 84,
2379
+ 0x1cf39: 84,
2380
+ 0x1cf3a: 84,
2381
+ 0x1cf3b: 84,
2382
+ 0x1cf3c: 84,
2383
+ 0x1cf3d: 84,
2384
+ 0x1cf3e: 84,
2385
+ 0x1cf3f: 84,
2386
+ 0x1cf40: 84,
2387
+ 0x1cf41: 84,
2388
+ 0x1cf42: 84,
2389
+ 0x1cf43: 84,
2390
+ 0x1cf44: 84,
2391
+ 0x1cf45: 84,
2392
+ 0x1cf46: 84,
2393
+ 0x1d167: 84,
2394
+ 0x1d168: 84,
2395
+ 0x1d169: 84,
2396
+ 0x1d173: 84,
2397
+ 0x1d174: 84,
2398
+ 0x1d175: 84,
2399
+ 0x1d176: 84,
2400
+ 0x1d177: 84,
2401
+ 0x1d178: 84,
2402
+ 0x1d179: 84,
2403
+ 0x1d17a: 84,
2404
+ 0x1d17b: 84,
2405
+ 0x1d17c: 84,
2406
+ 0x1d17d: 84,
2407
+ 0x1d17e: 84,
2408
+ 0x1d17f: 84,
2409
+ 0x1d180: 84,
2410
+ 0x1d181: 84,
2411
+ 0x1d182: 84,
2412
+ 0x1d185: 84,
2413
+ 0x1d186: 84,
2414
+ 0x1d187: 84,
2415
+ 0x1d188: 84,
2416
+ 0x1d189: 84,
2417
+ 0x1d18a: 84,
2418
+ 0x1d18b: 84,
2419
+ 0x1d1aa: 84,
2420
+ 0x1d1ab: 84,
2421
+ 0x1d1ac: 84,
2422
+ 0x1d1ad: 84,
2423
+ 0x1d242: 84,
2424
+ 0x1d243: 84,
2425
+ 0x1d244: 84,
2426
+ 0x1da00: 84,
2427
+ 0x1da01: 84,
2428
+ 0x1da02: 84,
2429
+ 0x1da03: 84,
2430
+ 0x1da04: 84,
2431
+ 0x1da05: 84,
2432
+ 0x1da06: 84,
2433
+ 0x1da07: 84,
2434
+ 0x1da08: 84,
2435
+ 0x1da09: 84,
2436
+ 0x1da0a: 84,
2437
+ 0x1da0b: 84,
2438
+ 0x1da0c: 84,
2439
+ 0x1da0d: 84,
2440
+ 0x1da0e: 84,
2441
+ 0x1da0f: 84,
2442
+ 0x1da10: 84,
2443
+ 0x1da11: 84,
2444
+ 0x1da12: 84,
2445
+ 0x1da13: 84,
2446
+ 0x1da14: 84,
2447
+ 0x1da15: 84,
2448
+ 0x1da16: 84,
2449
+ 0x1da17: 84,
2450
+ 0x1da18: 84,
2451
+ 0x1da19: 84,
2452
+ 0x1da1a: 84,
2453
+ 0x1da1b: 84,
2454
+ 0x1da1c: 84,
2455
+ 0x1da1d: 84,
2456
+ 0x1da1e: 84,
2457
+ 0x1da1f: 84,
2458
+ 0x1da20: 84,
2459
+ 0x1da21: 84,
2460
+ 0x1da22: 84,
2461
+ 0x1da23: 84,
2462
+ 0x1da24: 84,
2463
+ 0x1da25: 84,
2464
+ 0x1da26: 84,
2465
+ 0x1da27: 84,
2466
+ 0x1da28: 84,
2467
+ 0x1da29: 84,
2468
+ 0x1da2a: 84,
2469
+ 0x1da2b: 84,
2470
+ 0x1da2c: 84,
2471
+ 0x1da2d: 84,
2472
+ 0x1da2e: 84,
2473
+ 0x1da2f: 84,
2474
+ 0x1da30: 84,
2475
+ 0x1da31: 84,
2476
+ 0x1da32: 84,
2477
+ 0x1da33: 84,
2478
+ 0x1da34: 84,
2479
+ 0x1da35: 84,
2480
+ 0x1da36: 84,
2481
+ 0x1da3b: 84,
2482
+ 0x1da3c: 84,
2483
+ 0x1da3d: 84,
2484
+ 0x1da3e: 84,
2485
+ 0x1da3f: 84,
2486
+ 0x1da40: 84,
2487
+ 0x1da41: 84,
2488
+ 0x1da42: 84,
2489
+ 0x1da43: 84,
2490
+ 0x1da44: 84,
2491
+ 0x1da45: 84,
2492
+ 0x1da46: 84,
2493
+ 0x1da47: 84,
2494
+ 0x1da48: 84,
2495
+ 0x1da49: 84,
2496
+ 0x1da4a: 84,
2497
+ 0x1da4b: 84,
2498
+ 0x1da4c: 84,
2499
+ 0x1da4d: 84,
2500
+ 0x1da4e: 84,
2501
+ 0x1da4f: 84,
2502
+ 0x1da50: 84,
2503
+ 0x1da51: 84,
2504
+ 0x1da52: 84,
2505
+ 0x1da53: 84,
2506
+ 0x1da54: 84,
2507
+ 0x1da55: 84,
2508
+ 0x1da56: 84,
2509
+ 0x1da57: 84,
2510
+ 0x1da58: 84,
2511
+ 0x1da59: 84,
2512
+ 0x1da5a: 84,
2513
+ 0x1da5b: 84,
2514
+ 0x1da5c: 84,
2515
+ 0x1da5d: 84,
2516
+ 0x1da5e: 84,
2517
+ 0x1da5f: 84,
2518
+ 0x1da60: 84,
2519
+ 0x1da61: 84,
2520
+ 0x1da62: 84,
2521
+ 0x1da63: 84,
2522
+ 0x1da64: 84,
2523
+ 0x1da65: 84,
2524
+ 0x1da66: 84,
2525
+ 0x1da67: 84,
2526
+ 0x1da68: 84,
2527
+ 0x1da69: 84,
2528
+ 0x1da6a: 84,
2529
+ 0x1da6b: 84,
2530
+ 0x1da6c: 84,
2531
+ 0x1da75: 84,
2532
+ 0x1da84: 84,
2533
+ 0x1da9b: 84,
2534
+ 0x1da9c: 84,
2535
+ 0x1da9d: 84,
2536
+ 0x1da9e: 84,
2537
+ 0x1da9f: 84,
2538
+ 0x1daa1: 84,
2539
+ 0x1daa2: 84,
2540
+ 0x1daa3: 84,
2541
+ 0x1daa4: 84,
2542
+ 0x1daa5: 84,
2543
+ 0x1daa6: 84,
2544
+ 0x1daa7: 84,
2545
+ 0x1daa8: 84,
2546
+ 0x1daa9: 84,
2547
+ 0x1daaa: 84,
2548
+ 0x1daab: 84,
2549
+ 0x1daac: 84,
2550
+ 0x1daad: 84,
2551
+ 0x1daae: 84,
2552
+ 0x1daaf: 84,
2553
+ 0x1e000: 84,
2554
+ 0x1e001: 84,
2555
+ 0x1e002: 84,
2556
+ 0x1e003: 84,
2557
+ 0x1e004: 84,
2558
+ 0x1e005: 84,
2559
+ 0x1e006: 84,
2560
+ 0x1e008: 84,
2561
+ 0x1e009: 84,
2562
+ 0x1e00a: 84,
2563
+ 0x1e00b: 84,
2564
+ 0x1e00c: 84,
2565
+ 0x1e00d: 84,
2566
+ 0x1e00e: 84,
2567
+ 0x1e00f: 84,
2568
+ 0x1e010: 84,
2569
+ 0x1e011: 84,
2570
+ 0x1e012: 84,
2571
+ 0x1e013: 84,
2572
+ 0x1e014: 84,
2573
+ 0x1e015: 84,
2574
+ 0x1e016: 84,
2575
+ 0x1e017: 84,
2576
+ 0x1e018: 84,
2577
+ 0x1e01b: 84,
2578
+ 0x1e01c: 84,
2579
+ 0x1e01d: 84,
2580
+ 0x1e01e: 84,
2581
+ 0x1e01f: 84,
2582
+ 0x1e020: 84,
2583
+ 0x1e021: 84,
2584
+ 0x1e023: 84,
2585
+ 0x1e024: 84,
2586
+ 0x1e026: 84,
2587
+ 0x1e027: 84,
2588
+ 0x1e028: 84,
2589
+ 0x1e029: 84,
2590
+ 0x1e02a: 84,
2591
+ 0x1e08f: 84,
2592
+ 0x1e130: 84,
2593
+ 0x1e131: 84,
2594
+ 0x1e132: 84,
2595
+ 0x1e133: 84,
2596
+ 0x1e134: 84,
2597
+ 0x1e135: 84,
2598
+ 0x1e136: 84,
2599
+ 0x1e2ae: 84,
2600
+ 0x1e2ec: 84,
2601
+ 0x1e2ed: 84,
2602
+ 0x1e2ee: 84,
2603
+ 0x1e2ef: 84,
2604
+ 0x1e4ec: 84,
2605
+ 0x1e4ed: 84,
2606
+ 0x1e4ee: 84,
2607
+ 0x1e4ef: 84,
2608
+ 0x1e8d0: 84,
2609
+ 0x1e8d1: 84,
2610
+ 0x1e8d2: 84,
2611
+ 0x1e8d3: 84,
2612
+ 0x1e8d4: 84,
2613
+ 0x1e8d5: 84,
2614
+ 0x1e8d6: 84,
2615
+ 0x1e900: 68,
2616
+ 0x1e901: 68,
2617
+ 0x1e902: 68,
2618
+ 0x1e903: 68,
2619
+ 0x1e904: 68,
2620
+ 0x1e905: 68,
2621
+ 0x1e906: 68,
2622
+ 0x1e907: 68,
2623
+ 0x1e908: 68,
2624
+ 0x1e909: 68,
2625
+ 0x1e90a: 68,
2626
+ 0x1e90b: 68,
2627
+ 0x1e90c: 68,
2628
+ 0x1e90d: 68,
2629
+ 0x1e90e: 68,
2630
+ 0x1e90f: 68,
2631
+ 0x1e910: 68,
2632
+ 0x1e911: 68,
2633
+ 0x1e912: 68,
2634
+ 0x1e913: 68,
2635
+ 0x1e914: 68,
2636
+ 0x1e915: 68,
2637
+ 0x1e916: 68,
2638
+ 0x1e917: 68,
2639
+ 0x1e918: 68,
2640
+ 0x1e919: 68,
2641
+ 0x1e91a: 68,
2642
+ 0x1e91b: 68,
2643
+ 0x1e91c: 68,
2644
+ 0x1e91d: 68,
2645
+ 0x1e91e: 68,
2646
+ 0x1e91f: 68,
2647
+ 0x1e920: 68,
2648
+ 0x1e921: 68,
2649
+ 0x1e922: 68,
2650
+ 0x1e923: 68,
2651
+ 0x1e924: 68,
2652
+ 0x1e925: 68,
2653
+ 0x1e926: 68,
2654
+ 0x1e927: 68,
2655
+ 0x1e928: 68,
2656
+ 0x1e929: 68,
2657
+ 0x1e92a: 68,
2658
+ 0x1e92b: 68,
2659
+ 0x1e92c: 68,
2660
+ 0x1e92d: 68,
2661
+ 0x1e92e: 68,
2662
+ 0x1e92f: 68,
2663
+ 0x1e930: 68,
2664
+ 0x1e931: 68,
2665
+ 0x1e932: 68,
2666
+ 0x1e933: 68,
2667
+ 0x1e934: 68,
2668
+ 0x1e935: 68,
2669
+ 0x1e936: 68,
2670
+ 0x1e937: 68,
2671
+ 0x1e938: 68,
2672
+ 0x1e939: 68,
2673
+ 0x1e93a: 68,
2674
+ 0x1e93b: 68,
2675
+ 0x1e93c: 68,
2676
+ 0x1e93d: 68,
2677
+ 0x1e93e: 68,
2678
+ 0x1e93f: 68,
2679
+ 0x1e940: 68,
2680
+ 0x1e941: 68,
2681
+ 0x1e942: 68,
2682
+ 0x1e943: 68,
2683
+ 0x1e944: 84,
2684
+ 0x1e945: 84,
2685
+ 0x1e946: 84,
2686
+ 0x1e947: 84,
2687
+ 0x1e948: 84,
2688
+ 0x1e949: 84,
2689
+ 0x1e94a: 84,
2690
+ 0x1e94b: 84,
2691
+ 0xe0001: 84,
2692
+ 0xe0020: 84,
2693
+ 0xe0021: 84,
2694
+ 0xe0022: 84,
2695
+ 0xe0023: 84,
2696
+ 0xe0024: 84,
2697
+ 0xe0025: 84,
2698
+ 0xe0026: 84,
2699
+ 0xe0027: 84,
2700
+ 0xe0028: 84,
2701
+ 0xe0029: 84,
2702
+ 0xe002a: 84,
2703
+ 0xe002b: 84,
2704
+ 0xe002c: 84,
2705
+ 0xe002d: 84,
2706
+ 0xe002e: 84,
2707
+ 0xe002f: 84,
2708
+ 0xe0030: 84,
2709
+ 0xe0031: 84,
2710
+ 0xe0032: 84,
2711
+ 0xe0033: 84,
2712
+ 0xe0034: 84,
2713
+ 0xe0035: 84,
2714
+ 0xe0036: 84,
2715
+ 0xe0037: 84,
2716
+ 0xe0038: 84,
2717
+ 0xe0039: 84,
2718
+ 0xe003a: 84,
2719
+ 0xe003b: 84,
2720
+ 0xe003c: 84,
2721
+ 0xe003d: 84,
2722
+ 0xe003e: 84,
2723
+ 0xe003f: 84,
2724
+ 0xe0040: 84,
2725
+ 0xe0041: 84,
2726
+ 0xe0042: 84,
2727
+ 0xe0043: 84,
2728
+ 0xe0044: 84,
2729
+ 0xe0045: 84,
2730
+ 0xe0046: 84,
2731
+ 0xe0047: 84,
2732
+ 0xe0048: 84,
2733
+ 0xe0049: 84,
2734
+ 0xe004a: 84,
2735
+ 0xe004b: 84,
2736
+ 0xe004c: 84,
2737
+ 0xe004d: 84,
2738
+ 0xe004e: 84,
2739
+ 0xe004f: 84,
2740
+ 0xe0050: 84,
2741
+ 0xe0051: 84,
2742
+ 0xe0052: 84,
2743
+ 0xe0053: 84,
2744
+ 0xe0054: 84,
2745
+ 0xe0055: 84,
2746
+ 0xe0056: 84,
2747
+ 0xe0057: 84,
2748
+ 0xe0058: 84,
2749
+ 0xe0059: 84,
2750
+ 0xe005a: 84,
2751
+ 0xe005b: 84,
2752
+ 0xe005c: 84,
2753
+ 0xe005d: 84,
2754
+ 0xe005e: 84,
2755
+ 0xe005f: 84,
2756
+ 0xe0060: 84,
2757
+ 0xe0061: 84,
2758
+ 0xe0062: 84,
2759
+ 0xe0063: 84,
2760
+ 0xe0064: 84,
2761
+ 0xe0065: 84,
2762
+ 0xe0066: 84,
2763
+ 0xe0067: 84,
2764
+ 0xe0068: 84,
2765
+ 0xe0069: 84,
2766
+ 0xe006a: 84,
2767
+ 0xe006b: 84,
2768
+ 0xe006c: 84,
2769
+ 0xe006d: 84,
2770
+ 0xe006e: 84,
2771
+ 0xe006f: 84,
2772
+ 0xe0070: 84,
2773
+ 0xe0071: 84,
2774
+ 0xe0072: 84,
2775
+ 0xe0073: 84,
2776
+ 0xe0074: 84,
2777
+ 0xe0075: 84,
2778
+ 0xe0076: 84,
2779
+ 0xe0077: 84,
2780
+ 0xe0078: 84,
2781
+ 0xe0079: 84,
2782
+ 0xe007a: 84,
2783
+ 0xe007b: 84,
2784
+ 0xe007c: 84,
2785
+ 0xe007d: 84,
2786
+ 0xe007e: 84,
2787
+ 0xe007f: 84,
2788
+ 0xe0100: 84,
2789
+ 0xe0101: 84,
2790
+ 0xe0102: 84,
2791
+ 0xe0103: 84,
2792
+ 0xe0104: 84,
2793
+ 0xe0105: 84,
2794
+ 0xe0106: 84,
2795
+ 0xe0107: 84,
2796
+ 0xe0108: 84,
2797
+ 0xe0109: 84,
2798
+ 0xe010a: 84,
2799
+ 0xe010b: 84,
2800
+ 0xe010c: 84,
2801
+ 0xe010d: 84,
2802
+ 0xe010e: 84,
2803
+ 0xe010f: 84,
2804
+ 0xe0110: 84,
2805
+ 0xe0111: 84,
2806
+ 0xe0112: 84,
2807
+ 0xe0113: 84,
2808
+ 0xe0114: 84,
2809
+ 0xe0115: 84,
2810
+ 0xe0116: 84,
2811
+ 0xe0117: 84,
2812
+ 0xe0118: 84,
2813
+ 0xe0119: 84,
2814
+ 0xe011a: 84,
2815
+ 0xe011b: 84,
2816
+ 0xe011c: 84,
2817
+ 0xe011d: 84,
2818
+ 0xe011e: 84,
2819
+ 0xe011f: 84,
2820
+ 0xe0120: 84,
2821
+ 0xe0121: 84,
2822
+ 0xe0122: 84,
2823
+ 0xe0123: 84,
2824
+ 0xe0124: 84,
2825
+ 0xe0125: 84,
2826
+ 0xe0126: 84,
2827
+ 0xe0127: 84,
2828
+ 0xe0128: 84,
2829
+ 0xe0129: 84,
2830
+ 0xe012a: 84,
2831
+ 0xe012b: 84,
2832
+ 0xe012c: 84,
2833
+ 0xe012d: 84,
2834
+ 0xe012e: 84,
2835
+ 0xe012f: 84,
2836
+ 0xe0130: 84,
2837
+ 0xe0131: 84,
2838
+ 0xe0132: 84,
2839
+ 0xe0133: 84,
2840
+ 0xe0134: 84,
2841
+ 0xe0135: 84,
2842
+ 0xe0136: 84,
2843
+ 0xe0137: 84,
2844
+ 0xe0138: 84,
2845
+ 0xe0139: 84,
2846
+ 0xe013a: 84,
2847
+ 0xe013b: 84,
2848
+ 0xe013c: 84,
2849
+ 0xe013d: 84,
2850
+ 0xe013e: 84,
2851
+ 0xe013f: 84,
2852
+ 0xe0140: 84,
2853
+ 0xe0141: 84,
2854
+ 0xe0142: 84,
2855
+ 0xe0143: 84,
2856
+ 0xe0144: 84,
2857
+ 0xe0145: 84,
2858
+ 0xe0146: 84,
2859
+ 0xe0147: 84,
2860
+ 0xe0148: 84,
2861
+ 0xe0149: 84,
2862
+ 0xe014a: 84,
2863
+ 0xe014b: 84,
2864
+ 0xe014c: 84,
2865
+ 0xe014d: 84,
2866
+ 0xe014e: 84,
2867
+ 0xe014f: 84,
2868
+ 0xe0150: 84,
2869
+ 0xe0151: 84,
2870
+ 0xe0152: 84,
2871
+ 0xe0153: 84,
2872
+ 0xe0154: 84,
2873
+ 0xe0155: 84,
2874
+ 0xe0156: 84,
2875
+ 0xe0157: 84,
2876
+ 0xe0158: 84,
2877
+ 0xe0159: 84,
2878
+ 0xe015a: 84,
2879
+ 0xe015b: 84,
2880
+ 0xe015c: 84,
2881
+ 0xe015d: 84,
2882
+ 0xe015e: 84,
2883
+ 0xe015f: 84,
2884
+ 0xe0160: 84,
2885
+ 0xe0161: 84,
2886
+ 0xe0162: 84,
2887
+ 0xe0163: 84,
2888
+ 0xe0164: 84,
2889
+ 0xe0165: 84,
2890
+ 0xe0166: 84,
2891
+ 0xe0167: 84,
2892
+ 0xe0168: 84,
2893
+ 0xe0169: 84,
2894
+ 0xe016a: 84,
2895
+ 0xe016b: 84,
2896
+ 0xe016c: 84,
2897
+ 0xe016d: 84,
2898
+ 0xe016e: 84,
2899
+ 0xe016f: 84,
2900
+ 0xe0170: 84,
2901
+ 0xe0171: 84,
2902
+ 0xe0172: 84,
2903
+ 0xe0173: 84,
2904
+ 0xe0174: 84,
2905
+ 0xe0175: 84,
2906
+ 0xe0176: 84,
2907
+ 0xe0177: 84,
2908
+ 0xe0178: 84,
2909
+ 0xe0179: 84,
2910
+ 0xe017a: 84,
2911
+ 0xe017b: 84,
2912
+ 0xe017c: 84,
2913
+ 0xe017d: 84,
2914
+ 0xe017e: 84,
2915
+ 0xe017f: 84,
2916
+ 0xe0180: 84,
2917
+ 0xe0181: 84,
2918
+ 0xe0182: 84,
2919
+ 0xe0183: 84,
2920
+ 0xe0184: 84,
2921
+ 0xe0185: 84,
2922
+ 0xe0186: 84,
2923
+ 0xe0187: 84,
2924
+ 0xe0188: 84,
2925
+ 0xe0189: 84,
2926
+ 0xe018a: 84,
2927
+ 0xe018b: 84,
2928
+ 0xe018c: 84,
2929
+ 0xe018d: 84,
2930
+ 0xe018e: 84,
2931
+ 0xe018f: 84,
2932
+ 0xe0190: 84,
2933
+ 0xe0191: 84,
2934
+ 0xe0192: 84,
2935
+ 0xe0193: 84,
2936
+ 0xe0194: 84,
2937
+ 0xe0195: 84,
2938
+ 0xe0196: 84,
2939
+ 0xe0197: 84,
2940
+ 0xe0198: 84,
2941
+ 0xe0199: 84,
2942
+ 0xe019a: 84,
2943
+ 0xe019b: 84,
2944
+ 0xe019c: 84,
2945
+ 0xe019d: 84,
2946
+ 0xe019e: 84,
2947
+ 0xe019f: 84,
2948
+ 0xe01a0: 84,
2949
+ 0xe01a1: 84,
2950
+ 0xe01a2: 84,
2951
+ 0xe01a3: 84,
2952
+ 0xe01a4: 84,
2953
+ 0xe01a5: 84,
2954
+ 0xe01a6: 84,
2955
+ 0xe01a7: 84,
2956
+ 0xe01a8: 84,
2957
+ 0xe01a9: 84,
2958
+ 0xe01aa: 84,
2959
+ 0xe01ab: 84,
2960
+ 0xe01ac: 84,
2961
+ 0xe01ad: 84,
2962
+ 0xe01ae: 84,
2963
+ 0xe01af: 84,
2964
+ 0xe01b0: 84,
2965
+ 0xe01b1: 84,
2966
+ 0xe01b2: 84,
2967
+ 0xe01b3: 84,
2968
+ 0xe01b4: 84,
2969
+ 0xe01b5: 84,
2970
+ 0xe01b6: 84,
2971
+ 0xe01b7: 84,
2972
+ 0xe01b8: 84,
2973
+ 0xe01b9: 84,
2974
+ 0xe01ba: 84,
2975
+ 0xe01bb: 84,
2976
+ 0xe01bc: 84,
2977
+ 0xe01bd: 84,
2978
+ 0xe01be: 84,
2979
+ 0xe01bf: 84,
2980
+ 0xe01c0: 84,
2981
+ 0xe01c1: 84,
2982
+ 0xe01c2: 84,
2983
+ 0xe01c3: 84,
2984
+ 0xe01c4: 84,
2985
+ 0xe01c5: 84,
2986
+ 0xe01c6: 84,
2987
+ 0xe01c7: 84,
2988
+ 0xe01c8: 84,
2989
+ 0xe01c9: 84,
2990
+ 0xe01ca: 84,
2991
+ 0xe01cb: 84,
2992
+ 0xe01cc: 84,
2993
+ 0xe01cd: 84,
2994
+ 0xe01ce: 84,
2995
+ 0xe01cf: 84,
2996
+ 0xe01d0: 84,
2997
+ 0xe01d1: 84,
2998
+ 0xe01d2: 84,
2999
+ 0xe01d3: 84,
3000
+ 0xe01d4: 84,
3001
+ 0xe01d5: 84,
3002
+ 0xe01d6: 84,
3003
+ 0xe01d7: 84,
3004
+ 0xe01d8: 84,
3005
+ 0xe01d9: 84,
3006
+ 0xe01da: 84,
3007
+ 0xe01db: 84,
3008
+ 0xe01dc: 84,
3009
+ 0xe01dd: 84,
3010
+ 0xe01de: 84,
3011
+ 0xe01df: 84,
3012
+ 0xe01e0: 84,
3013
+ 0xe01e1: 84,
3014
+ 0xe01e2: 84,
3015
+ 0xe01e3: 84,
3016
+ 0xe01e4: 84,
3017
+ 0xe01e5: 84,
3018
+ 0xe01e6: 84,
3019
+ 0xe01e7: 84,
3020
+ 0xe01e8: 84,
3021
+ 0xe01e9: 84,
3022
+ 0xe01ea: 84,
3023
+ 0xe01eb: 84,
3024
+ 0xe01ec: 84,
3025
+ 0xe01ed: 84,
3026
+ 0xe01ee: 84,
3027
+ 0xe01ef: 84,
3028
+ }
3029
+ codepoint_classes = {
3030
+ 'PVALID': (
3031
+ 0x2d0000002e,
3032
+ 0x300000003a,
3033
+ 0x610000007b,
3034
+ 0xdf000000f7,
3035
+ 0xf800000100,
3036
+ 0x10100000102,
3037
+ 0x10300000104,
3038
+ 0x10500000106,
3039
+ 0x10700000108,
3040
+ 0x1090000010a,
3041
+ 0x10b0000010c,
3042
+ 0x10d0000010e,
3043
+ 0x10f00000110,
3044
+ 0x11100000112,
3045
+ 0x11300000114,
3046
+ 0x11500000116,
3047
+ 0x11700000118,
3048
+ 0x1190000011a,
3049
+ 0x11b0000011c,
3050
+ 0x11d0000011e,
3051
+ 0x11f00000120,
3052
+ 0x12100000122,
3053
+ 0x12300000124,
3054
+ 0x12500000126,
3055
+ 0x12700000128,
3056
+ 0x1290000012a,
3057
+ 0x12b0000012c,
3058
+ 0x12d0000012e,
3059
+ 0x12f00000130,
3060
+ 0x13100000132,
3061
+ 0x13500000136,
3062
+ 0x13700000139,
3063
+ 0x13a0000013b,
3064
+ 0x13c0000013d,
3065
+ 0x13e0000013f,
3066
+ 0x14200000143,
3067
+ 0x14400000145,
3068
+ 0x14600000147,
3069
+ 0x14800000149,
3070
+ 0x14b0000014c,
3071
+ 0x14d0000014e,
3072
+ 0x14f00000150,
3073
+ 0x15100000152,
3074
+ 0x15300000154,
3075
+ 0x15500000156,
3076
+ 0x15700000158,
3077
+ 0x1590000015a,
3078
+ 0x15b0000015c,
3079
+ 0x15d0000015e,
3080
+ 0x15f00000160,
3081
+ 0x16100000162,
3082
+ 0x16300000164,
3083
+ 0x16500000166,
3084
+ 0x16700000168,
3085
+ 0x1690000016a,
3086
+ 0x16b0000016c,
3087
+ 0x16d0000016e,
3088
+ 0x16f00000170,
3089
+ 0x17100000172,
3090
+ 0x17300000174,
3091
+ 0x17500000176,
3092
+ 0x17700000178,
3093
+ 0x17a0000017b,
3094
+ 0x17c0000017d,
3095
+ 0x17e0000017f,
3096
+ 0x18000000181,
3097
+ 0x18300000184,
3098
+ 0x18500000186,
3099
+ 0x18800000189,
3100
+ 0x18c0000018e,
3101
+ 0x19200000193,
3102
+ 0x19500000196,
3103
+ 0x1990000019c,
3104
+ 0x19e0000019f,
3105
+ 0x1a1000001a2,
3106
+ 0x1a3000001a4,
3107
+ 0x1a5000001a6,
3108
+ 0x1a8000001a9,
3109
+ 0x1aa000001ac,
3110
+ 0x1ad000001ae,
3111
+ 0x1b0000001b1,
3112
+ 0x1b4000001b5,
3113
+ 0x1b6000001b7,
3114
+ 0x1b9000001bc,
3115
+ 0x1bd000001c4,
3116
+ 0x1ce000001cf,
3117
+ 0x1d0000001d1,
3118
+ 0x1d2000001d3,
3119
+ 0x1d4000001d5,
3120
+ 0x1d6000001d7,
3121
+ 0x1d8000001d9,
3122
+ 0x1da000001db,
3123
+ 0x1dc000001de,
3124
+ 0x1df000001e0,
3125
+ 0x1e1000001e2,
3126
+ 0x1e3000001e4,
3127
+ 0x1e5000001e6,
3128
+ 0x1e7000001e8,
3129
+ 0x1e9000001ea,
3130
+ 0x1eb000001ec,
3131
+ 0x1ed000001ee,
3132
+ 0x1ef000001f1,
3133
+ 0x1f5000001f6,
3134
+ 0x1f9000001fa,
3135
+ 0x1fb000001fc,
3136
+ 0x1fd000001fe,
3137
+ 0x1ff00000200,
3138
+ 0x20100000202,
3139
+ 0x20300000204,
3140
+ 0x20500000206,
3141
+ 0x20700000208,
3142
+ 0x2090000020a,
3143
+ 0x20b0000020c,
3144
+ 0x20d0000020e,
3145
+ 0x20f00000210,
3146
+ 0x21100000212,
3147
+ 0x21300000214,
3148
+ 0x21500000216,
3149
+ 0x21700000218,
3150
+ 0x2190000021a,
3151
+ 0x21b0000021c,
3152
+ 0x21d0000021e,
3153
+ 0x21f00000220,
3154
+ 0x22100000222,
3155
+ 0x22300000224,
3156
+ 0x22500000226,
3157
+ 0x22700000228,
3158
+ 0x2290000022a,
3159
+ 0x22b0000022c,
3160
+ 0x22d0000022e,
3161
+ 0x22f00000230,
3162
+ 0x23100000232,
3163
+ 0x2330000023a,
3164
+ 0x23c0000023d,
3165
+ 0x23f00000241,
3166
+ 0x24200000243,
3167
+ 0x24700000248,
3168
+ 0x2490000024a,
3169
+ 0x24b0000024c,
3170
+ 0x24d0000024e,
3171
+ 0x24f000002b0,
3172
+ 0x2b9000002c2,
3173
+ 0x2c6000002d2,
3174
+ 0x2ec000002ed,
3175
+ 0x2ee000002ef,
3176
+ 0x30000000340,
3177
+ 0x34200000343,
3178
+ 0x3460000034f,
3179
+ 0x35000000370,
3180
+ 0x37100000372,
3181
+ 0x37300000374,
3182
+ 0x37700000378,
3183
+ 0x37b0000037e,
3184
+ 0x39000000391,
3185
+ 0x3ac000003cf,
3186
+ 0x3d7000003d8,
3187
+ 0x3d9000003da,
3188
+ 0x3db000003dc,
3189
+ 0x3dd000003de,
3190
+ 0x3df000003e0,
3191
+ 0x3e1000003e2,
3192
+ 0x3e3000003e4,
3193
+ 0x3e5000003e6,
3194
+ 0x3e7000003e8,
3195
+ 0x3e9000003ea,
3196
+ 0x3eb000003ec,
3197
+ 0x3ed000003ee,
3198
+ 0x3ef000003f0,
3199
+ 0x3f3000003f4,
3200
+ 0x3f8000003f9,
3201
+ 0x3fb000003fd,
3202
+ 0x43000000460,
3203
+ 0x46100000462,
3204
+ 0x46300000464,
3205
+ 0x46500000466,
3206
+ 0x46700000468,
3207
+ 0x4690000046a,
3208
+ 0x46b0000046c,
3209
+ 0x46d0000046e,
3210
+ 0x46f00000470,
3211
+ 0x47100000472,
3212
+ 0x47300000474,
3213
+ 0x47500000476,
3214
+ 0x47700000478,
3215
+ 0x4790000047a,
3216
+ 0x47b0000047c,
3217
+ 0x47d0000047e,
3218
+ 0x47f00000480,
3219
+ 0x48100000482,
3220
+ 0x48300000488,
3221
+ 0x48b0000048c,
3222
+ 0x48d0000048e,
3223
+ 0x48f00000490,
3224
+ 0x49100000492,
3225
+ 0x49300000494,
3226
+ 0x49500000496,
3227
+ 0x49700000498,
3228
+ 0x4990000049a,
3229
+ 0x49b0000049c,
3230
+ 0x49d0000049e,
3231
+ 0x49f000004a0,
3232
+ 0x4a1000004a2,
3233
+ 0x4a3000004a4,
3234
+ 0x4a5000004a6,
3235
+ 0x4a7000004a8,
3236
+ 0x4a9000004aa,
3237
+ 0x4ab000004ac,
3238
+ 0x4ad000004ae,
3239
+ 0x4af000004b0,
3240
+ 0x4b1000004b2,
3241
+ 0x4b3000004b4,
3242
+ 0x4b5000004b6,
3243
+ 0x4b7000004b8,
3244
+ 0x4b9000004ba,
3245
+ 0x4bb000004bc,
3246
+ 0x4bd000004be,
3247
+ 0x4bf000004c0,
3248
+ 0x4c2000004c3,
3249
+ 0x4c4000004c5,
3250
+ 0x4c6000004c7,
3251
+ 0x4c8000004c9,
3252
+ 0x4ca000004cb,
3253
+ 0x4cc000004cd,
3254
+ 0x4ce000004d0,
3255
+ 0x4d1000004d2,
3256
+ 0x4d3000004d4,
3257
+ 0x4d5000004d6,
3258
+ 0x4d7000004d8,
3259
+ 0x4d9000004da,
3260
+ 0x4db000004dc,
3261
+ 0x4dd000004de,
3262
+ 0x4df000004e0,
3263
+ 0x4e1000004e2,
3264
+ 0x4e3000004e4,
3265
+ 0x4e5000004e6,
3266
+ 0x4e7000004e8,
3267
+ 0x4e9000004ea,
3268
+ 0x4eb000004ec,
3269
+ 0x4ed000004ee,
3270
+ 0x4ef000004f0,
3271
+ 0x4f1000004f2,
3272
+ 0x4f3000004f4,
3273
+ 0x4f5000004f6,
3274
+ 0x4f7000004f8,
3275
+ 0x4f9000004fa,
3276
+ 0x4fb000004fc,
3277
+ 0x4fd000004fe,
3278
+ 0x4ff00000500,
3279
+ 0x50100000502,
3280
+ 0x50300000504,
3281
+ 0x50500000506,
3282
+ 0x50700000508,
3283
+ 0x5090000050a,
3284
+ 0x50b0000050c,
3285
+ 0x50d0000050e,
3286
+ 0x50f00000510,
3287
+ 0x51100000512,
3288
+ 0x51300000514,
3289
+ 0x51500000516,
3290
+ 0x51700000518,
3291
+ 0x5190000051a,
3292
+ 0x51b0000051c,
3293
+ 0x51d0000051e,
3294
+ 0x51f00000520,
3295
+ 0x52100000522,
3296
+ 0x52300000524,
3297
+ 0x52500000526,
3298
+ 0x52700000528,
3299
+ 0x5290000052a,
3300
+ 0x52b0000052c,
3301
+ 0x52d0000052e,
3302
+ 0x52f00000530,
3303
+ 0x5590000055a,
3304
+ 0x56000000587,
3305
+ 0x58800000589,
3306
+ 0x591000005be,
3307
+ 0x5bf000005c0,
3308
+ 0x5c1000005c3,
3309
+ 0x5c4000005c6,
3310
+ 0x5c7000005c8,
3311
+ 0x5d0000005eb,
3312
+ 0x5ef000005f3,
3313
+ 0x6100000061b,
3314
+ 0x62000000640,
3315
+ 0x64100000660,
3316
+ 0x66e00000675,
3317
+ 0x679000006d4,
3318
+ 0x6d5000006dd,
3319
+ 0x6df000006e9,
3320
+ 0x6ea000006f0,
3321
+ 0x6fa00000700,
3322
+ 0x7100000074b,
3323
+ 0x74d000007b2,
3324
+ 0x7c0000007f6,
3325
+ 0x7fd000007fe,
3326
+ 0x8000000082e,
3327
+ 0x8400000085c,
3328
+ 0x8600000086b,
3329
+ 0x87000000888,
3330
+ 0x8890000088f,
3331
+ 0x898000008e2,
3332
+ 0x8e300000958,
3333
+ 0x96000000964,
3334
+ 0x96600000970,
3335
+ 0x97100000984,
3336
+ 0x9850000098d,
3337
+ 0x98f00000991,
3338
+ 0x993000009a9,
3339
+ 0x9aa000009b1,
3340
+ 0x9b2000009b3,
3341
+ 0x9b6000009ba,
3342
+ 0x9bc000009c5,
3343
+ 0x9c7000009c9,
3344
+ 0x9cb000009cf,
3345
+ 0x9d7000009d8,
3346
+ 0x9e0000009e4,
3347
+ 0x9e6000009f2,
3348
+ 0x9fc000009fd,
3349
+ 0x9fe000009ff,
3350
+ 0xa0100000a04,
3351
+ 0xa0500000a0b,
3352
+ 0xa0f00000a11,
3353
+ 0xa1300000a29,
3354
+ 0xa2a00000a31,
3355
+ 0xa3200000a33,
3356
+ 0xa3500000a36,
3357
+ 0xa3800000a3a,
3358
+ 0xa3c00000a3d,
3359
+ 0xa3e00000a43,
3360
+ 0xa4700000a49,
3361
+ 0xa4b00000a4e,
3362
+ 0xa5100000a52,
3363
+ 0xa5c00000a5d,
3364
+ 0xa6600000a76,
3365
+ 0xa8100000a84,
3366
+ 0xa8500000a8e,
3367
+ 0xa8f00000a92,
3368
+ 0xa9300000aa9,
3369
+ 0xaaa00000ab1,
3370
+ 0xab200000ab4,
3371
+ 0xab500000aba,
3372
+ 0xabc00000ac6,
3373
+ 0xac700000aca,
3374
+ 0xacb00000ace,
3375
+ 0xad000000ad1,
3376
+ 0xae000000ae4,
3377
+ 0xae600000af0,
3378
+ 0xaf900000b00,
3379
+ 0xb0100000b04,
3380
+ 0xb0500000b0d,
3381
+ 0xb0f00000b11,
3382
+ 0xb1300000b29,
3383
+ 0xb2a00000b31,
3384
+ 0xb3200000b34,
3385
+ 0xb3500000b3a,
3386
+ 0xb3c00000b45,
3387
+ 0xb4700000b49,
3388
+ 0xb4b00000b4e,
3389
+ 0xb5500000b58,
3390
+ 0xb5f00000b64,
3391
+ 0xb6600000b70,
3392
+ 0xb7100000b72,
3393
+ 0xb8200000b84,
3394
+ 0xb8500000b8b,
3395
+ 0xb8e00000b91,
3396
+ 0xb9200000b96,
3397
+ 0xb9900000b9b,
3398
+ 0xb9c00000b9d,
3399
+ 0xb9e00000ba0,
3400
+ 0xba300000ba5,
3401
+ 0xba800000bab,
3402
+ 0xbae00000bba,
3403
+ 0xbbe00000bc3,
3404
+ 0xbc600000bc9,
3405
+ 0xbca00000bce,
3406
+ 0xbd000000bd1,
3407
+ 0xbd700000bd8,
3408
+ 0xbe600000bf0,
3409
+ 0xc0000000c0d,
3410
+ 0xc0e00000c11,
3411
+ 0xc1200000c29,
3412
+ 0xc2a00000c3a,
3413
+ 0xc3c00000c45,
3414
+ 0xc4600000c49,
3415
+ 0xc4a00000c4e,
3416
+ 0xc5500000c57,
3417
+ 0xc5800000c5b,
3418
+ 0xc5d00000c5e,
3419
+ 0xc6000000c64,
3420
+ 0xc6600000c70,
3421
+ 0xc8000000c84,
3422
+ 0xc8500000c8d,
3423
+ 0xc8e00000c91,
3424
+ 0xc9200000ca9,
3425
+ 0xcaa00000cb4,
3426
+ 0xcb500000cba,
3427
+ 0xcbc00000cc5,
3428
+ 0xcc600000cc9,
3429
+ 0xcca00000cce,
3430
+ 0xcd500000cd7,
3431
+ 0xcdd00000cdf,
3432
+ 0xce000000ce4,
3433
+ 0xce600000cf0,
3434
+ 0xcf100000cf4,
3435
+ 0xd0000000d0d,
3436
+ 0xd0e00000d11,
3437
+ 0xd1200000d45,
3438
+ 0xd4600000d49,
3439
+ 0xd4a00000d4f,
3440
+ 0xd5400000d58,
3441
+ 0xd5f00000d64,
3442
+ 0xd6600000d70,
3443
+ 0xd7a00000d80,
3444
+ 0xd8100000d84,
3445
+ 0xd8500000d97,
3446
+ 0xd9a00000db2,
3447
+ 0xdb300000dbc,
3448
+ 0xdbd00000dbe,
3449
+ 0xdc000000dc7,
3450
+ 0xdca00000dcb,
3451
+ 0xdcf00000dd5,
3452
+ 0xdd600000dd7,
3453
+ 0xdd800000de0,
3454
+ 0xde600000df0,
3455
+ 0xdf200000df4,
3456
+ 0xe0100000e33,
3457
+ 0xe3400000e3b,
3458
+ 0xe4000000e4f,
3459
+ 0xe5000000e5a,
3460
+ 0xe8100000e83,
3461
+ 0xe8400000e85,
3462
+ 0xe8600000e8b,
3463
+ 0xe8c00000ea4,
3464
+ 0xea500000ea6,
3465
+ 0xea700000eb3,
3466
+ 0xeb400000ebe,
3467
+ 0xec000000ec5,
3468
+ 0xec600000ec7,
3469
+ 0xec800000ecf,
3470
+ 0xed000000eda,
3471
+ 0xede00000ee0,
3472
+ 0xf0000000f01,
3473
+ 0xf0b00000f0c,
3474
+ 0xf1800000f1a,
3475
+ 0xf2000000f2a,
3476
+ 0xf3500000f36,
3477
+ 0xf3700000f38,
3478
+ 0xf3900000f3a,
3479
+ 0xf3e00000f43,
3480
+ 0xf4400000f48,
3481
+ 0xf4900000f4d,
3482
+ 0xf4e00000f52,
3483
+ 0xf5300000f57,
3484
+ 0xf5800000f5c,
3485
+ 0xf5d00000f69,
3486
+ 0xf6a00000f6d,
3487
+ 0xf7100000f73,
3488
+ 0xf7400000f75,
3489
+ 0xf7a00000f81,
3490
+ 0xf8200000f85,
3491
+ 0xf8600000f93,
3492
+ 0xf9400000f98,
3493
+ 0xf9900000f9d,
3494
+ 0xf9e00000fa2,
3495
+ 0xfa300000fa7,
3496
+ 0xfa800000fac,
3497
+ 0xfad00000fb9,
3498
+ 0xfba00000fbd,
3499
+ 0xfc600000fc7,
3500
+ 0x10000000104a,
3501
+ 0x10500000109e,
3502
+ 0x10d0000010fb,
3503
+ 0x10fd00001100,
3504
+ 0x120000001249,
3505
+ 0x124a0000124e,
3506
+ 0x125000001257,
3507
+ 0x125800001259,
3508
+ 0x125a0000125e,
3509
+ 0x126000001289,
3510
+ 0x128a0000128e,
3511
+ 0x1290000012b1,
3512
+ 0x12b2000012b6,
3513
+ 0x12b8000012bf,
3514
+ 0x12c0000012c1,
3515
+ 0x12c2000012c6,
3516
+ 0x12c8000012d7,
3517
+ 0x12d800001311,
3518
+ 0x131200001316,
3519
+ 0x13180000135b,
3520
+ 0x135d00001360,
3521
+ 0x138000001390,
3522
+ 0x13a0000013f6,
3523
+ 0x14010000166d,
3524
+ 0x166f00001680,
3525
+ 0x16810000169b,
3526
+ 0x16a0000016eb,
3527
+ 0x16f1000016f9,
3528
+ 0x170000001716,
3529
+ 0x171f00001735,
3530
+ 0x174000001754,
3531
+ 0x17600000176d,
3532
+ 0x176e00001771,
3533
+ 0x177200001774,
3534
+ 0x1780000017b4,
3535
+ 0x17b6000017d4,
3536
+ 0x17d7000017d8,
3537
+ 0x17dc000017de,
3538
+ 0x17e0000017ea,
3539
+ 0x18100000181a,
3540
+ 0x182000001879,
3541
+ 0x1880000018ab,
3542
+ 0x18b0000018f6,
3543
+ 0x19000000191f,
3544
+ 0x19200000192c,
3545
+ 0x19300000193c,
3546
+ 0x19460000196e,
3547
+ 0x197000001975,
3548
+ 0x1980000019ac,
3549
+ 0x19b0000019ca,
3550
+ 0x19d0000019da,
3551
+ 0x1a0000001a1c,
3552
+ 0x1a2000001a5f,
3553
+ 0x1a6000001a7d,
3554
+ 0x1a7f00001a8a,
3555
+ 0x1a9000001a9a,
3556
+ 0x1aa700001aa8,
3557
+ 0x1ab000001abe,
3558
+ 0x1abf00001acf,
3559
+ 0x1b0000001b4d,
3560
+ 0x1b5000001b5a,
3561
+ 0x1b6b00001b74,
3562
+ 0x1b8000001bf4,
3563
+ 0x1c0000001c38,
3564
+ 0x1c4000001c4a,
3565
+ 0x1c4d00001c7e,
3566
+ 0x1cd000001cd3,
3567
+ 0x1cd400001cfb,
3568
+ 0x1d0000001d2c,
3569
+ 0x1d2f00001d30,
3570
+ 0x1d3b00001d3c,
3571
+ 0x1d4e00001d4f,
3572
+ 0x1d6b00001d78,
3573
+ 0x1d7900001d9b,
3574
+ 0x1dc000001e00,
3575
+ 0x1e0100001e02,
3576
+ 0x1e0300001e04,
3577
+ 0x1e0500001e06,
3578
+ 0x1e0700001e08,
3579
+ 0x1e0900001e0a,
3580
+ 0x1e0b00001e0c,
3581
+ 0x1e0d00001e0e,
3582
+ 0x1e0f00001e10,
3583
+ 0x1e1100001e12,
3584
+ 0x1e1300001e14,
3585
+ 0x1e1500001e16,
3586
+ 0x1e1700001e18,
3587
+ 0x1e1900001e1a,
3588
+ 0x1e1b00001e1c,
3589
+ 0x1e1d00001e1e,
3590
+ 0x1e1f00001e20,
3591
+ 0x1e2100001e22,
3592
+ 0x1e2300001e24,
3593
+ 0x1e2500001e26,
3594
+ 0x1e2700001e28,
3595
+ 0x1e2900001e2a,
3596
+ 0x1e2b00001e2c,
3597
+ 0x1e2d00001e2e,
3598
+ 0x1e2f00001e30,
3599
+ 0x1e3100001e32,
3600
+ 0x1e3300001e34,
3601
+ 0x1e3500001e36,
3602
+ 0x1e3700001e38,
3603
+ 0x1e3900001e3a,
3604
+ 0x1e3b00001e3c,
3605
+ 0x1e3d00001e3e,
3606
+ 0x1e3f00001e40,
3607
+ 0x1e4100001e42,
3608
+ 0x1e4300001e44,
3609
+ 0x1e4500001e46,
3610
+ 0x1e4700001e48,
3611
+ 0x1e4900001e4a,
3612
+ 0x1e4b00001e4c,
3613
+ 0x1e4d00001e4e,
3614
+ 0x1e4f00001e50,
3615
+ 0x1e5100001e52,
3616
+ 0x1e5300001e54,
3617
+ 0x1e5500001e56,
3618
+ 0x1e5700001e58,
3619
+ 0x1e5900001e5a,
3620
+ 0x1e5b00001e5c,
3621
+ 0x1e5d00001e5e,
3622
+ 0x1e5f00001e60,
3623
+ 0x1e6100001e62,
3624
+ 0x1e6300001e64,
3625
+ 0x1e6500001e66,
3626
+ 0x1e6700001e68,
3627
+ 0x1e6900001e6a,
3628
+ 0x1e6b00001e6c,
3629
+ 0x1e6d00001e6e,
3630
+ 0x1e6f00001e70,
3631
+ 0x1e7100001e72,
3632
+ 0x1e7300001e74,
3633
+ 0x1e7500001e76,
3634
+ 0x1e7700001e78,
3635
+ 0x1e7900001e7a,
3636
+ 0x1e7b00001e7c,
3637
+ 0x1e7d00001e7e,
3638
+ 0x1e7f00001e80,
3639
+ 0x1e8100001e82,
3640
+ 0x1e8300001e84,
3641
+ 0x1e8500001e86,
3642
+ 0x1e8700001e88,
3643
+ 0x1e8900001e8a,
3644
+ 0x1e8b00001e8c,
3645
+ 0x1e8d00001e8e,
3646
+ 0x1e8f00001e90,
3647
+ 0x1e9100001e92,
3648
+ 0x1e9300001e94,
3649
+ 0x1e9500001e9a,
3650
+ 0x1e9c00001e9e,
3651
+ 0x1e9f00001ea0,
3652
+ 0x1ea100001ea2,
3653
+ 0x1ea300001ea4,
3654
+ 0x1ea500001ea6,
3655
+ 0x1ea700001ea8,
3656
+ 0x1ea900001eaa,
3657
+ 0x1eab00001eac,
3658
+ 0x1ead00001eae,
3659
+ 0x1eaf00001eb0,
3660
+ 0x1eb100001eb2,
3661
+ 0x1eb300001eb4,
3662
+ 0x1eb500001eb6,
3663
+ 0x1eb700001eb8,
3664
+ 0x1eb900001eba,
3665
+ 0x1ebb00001ebc,
3666
+ 0x1ebd00001ebe,
3667
+ 0x1ebf00001ec0,
3668
+ 0x1ec100001ec2,
3669
+ 0x1ec300001ec4,
3670
+ 0x1ec500001ec6,
3671
+ 0x1ec700001ec8,
3672
+ 0x1ec900001eca,
3673
+ 0x1ecb00001ecc,
3674
+ 0x1ecd00001ece,
3675
+ 0x1ecf00001ed0,
3676
+ 0x1ed100001ed2,
3677
+ 0x1ed300001ed4,
3678
+ 0x1ed500001ed6,
3679
+ 0x1ed700001ed8,
3680
+ 0x1ed900001eda,
3681
+ 0x1edb00001edc,
3682
+ 0x1edd00001ede,
3683
+ 0x1edf00001ee0,
3684
+ 0x1ee100001ee2,
3685
+ 0x1ee300001ee4,
3686
+ 0x1ee500001ee6,
3687
+ 0x1ee700001ee8,
3688
+ 0x1ee900001eea,
3689
+ 0x1eeb00001eec,
3690
+ 0x1eed00001eee,
3691
+ 0x1eef00001ef0,
3692
+ 0x1ef100001ef2,
3693
+ 0x1ef300001ef4,
3694
+ 0x1ef500001ef6,
3695
+ 0x1ef700001ef8,
3696
+ 0x1ef900001efa,
3697
+ 0x1efb00001efc,
3698
+ 0x1efd00001efe,
3699
+ 0x1eff00001f08,
3700
+ 0x1f1000001f16,
3701
+ 0x1f2000001f28,
3702
+ 0x1f3000001f38,
3703
+ 0x1f4000001f46,
3704
+ 0x1f5000001f58,
3705
+ 0x1f6000001f68,
3706
+ 0x1f7000001f71,
3707
+ 0x1f7200001f73,
3708
+ 0x1f7400001f75,
3709
+ 0x1f7600001f77,
3710
+ 0x1f7800001f79,
3711
+ 0x1f7a00001f7b,
3712
+ 0x1f7c00001f7d,
3713
+ 0x1fb000001fb2,
3714
+ 0x1fb600001fb7,
3715
+ 0x1fc600001fc7,
3716
+ 0x1fd000001fd3,
3717
+ 0x1fd600001fd8,
3718
+ 0x1fe000001fe3,
3719
+ 0x1fe400001fe8,
3720
+ 0x1ff600001ff7,
3721
+ 0x214e0000214f,
3722
+ 0x218400002185,
3723
+ 0x2c3000002c60,
3724
+ 0x2c6100002c62,
3725
+ 0x2c6500002c67,
3726
+ 0x2c6800002c69,
3727
+ 0x2c6a00002c6b,
3728
+ 0x2c6c00002c6d,
3729
+ 0x2c7100002c72,
3730
+ 0x2c7300002c75,
3731
+ 0x2c7600002c7c,
3732
+ 0x2c8100002c82,
3733
+ 0x2c8300002c84,
3734
+ 0x2c8500002c86,
3735
+ 0x2c8700002c88,
3736
+ 0x2c8900002c8a,
3737
+ 0x2c8b00002c8c,
3738
+ 0x2c8d00002c8e,
3739
+ 0x2c8f00002c90,
3740
+ 0x2c9100002c92,
3741
+ 0x2c9300002c94,
3742
+ 0x2c9500002c96,
3743
+ 0x2c9700002c98,
3744
+ 0x2c9900002c9a,
3745
+ 0x2c9b00002c9c,
3746
+ 0x2c9d00002c9e,
3747
+ 0x2c9f00002ca0,
3748
+ 0x2ca100002ca2,
3749
+ 0x2ca300002ca4,
3750
+ 0x2ca500002ca6,
3751
+ 0x2ca700002ca8,
3752
+ 0x2ca900002caa,
3753
+ 0x2cab00002cac,
3754
+ 0x2cad00002cae,
3755
+ 0x2caf00002cb0,
3756
+ 0x2cb100002cb2,
3757
+ 0x2cb300002cb4,
3758
+ 0x2cb500002cb6,
3759
+ 0x2cb700002cb8,
3760
+ 0x2cb900002cba,
3761
+ 0x2cbb00002cbc,
3762
+ 0x2cbd00002cbe,
3763
+ 0x2cbf00002cc0,
3764
+ 0x2cc100002cc2,
3765
+ 0x2cc300002cc4,
3766
+ 0x2cc500002cc6,
3767
+ 0x2cc700002cc8,
3768
+ 0x2cc900002cca,
3769
+ 0x2ccb00002ccc,
3770
+ 0x2ccd00002cce,
3771
+ 0x2ccf00002cd0,
3772
+ 0x2cd100002cd2,
3773
+ 0x2cd300002cd4,
3774
+ 0x2cd500002cd6,
3775
+ 0x2cd700002cd8,
3776
+ 0x2cd900002cda,
3777
+ 0x2cdb00002cdc,
3778
+ 0x2cdd00002cde,
3779
+ 0x2cdf00002ce0,
3780
+ 0x2ce100002ce2,
3781
+ 0x2ce300002ce5,
3782
+ 0x2cec00002ced,
3783
+ 0x2cee00002cf2,
3784
+ 0x2cf300002cf4,
3785
+ 0x2d0000002d26,
3786
+ 0x2d2700002d28,
3787
+ 0x2d2d00002d2e,
3788
+ 0x2d3000002d68,
3789
+ 0x2d7f00002d97,
3790
+ 0x2da000002da7,
3791
+ 0x2da800002daf,
3792
+ 0x2db000002db7,
3793
+ 0x2db800002dbf,
3794
+ 0x2dc000002dc7,
3795
+ 0x2dc800002dcf,
3796
+ 0x2dd000002dd7,
3797
+ 0x2dd800002ddf,
3798
+ 0x2de000002e00,
3799
+ 0x2e2f00002e30,
3800
+ 0x300500003008,
3801
+ 0x302a0000302e,
3802
+ 0x303c0000303d,
3803
+ 0x304100003097,
3804
+ 0x30990000309b,
3805
+ 0x309d0000309f,
3806
+ 0x30a1000030fb,
3807
+ 0x30fc000030ff,
3808
+ 0x310500003130,
3809
+ 0x31a0000031c0,
3810
+ 0x31f000003200,
3811
+ 0x340000004dc0,
3812
+ 0x4e000000a48d,
3813
+ 0xa4d00000a4fe,
3814
+ 0xa5000000a60d,
3815
+ 0xa6100000a62c,
3816
+ 0xa6410000a642,
3817
+ 0xa6430000a644,
3818
+ 0xa6450000a646,
3819
+ 0xa6470000a648,
3820
+ 0xa6490000a64a,
3821
+ 0xa64b0000a64c,
3822
+ 0xa64d0000a64e,
3823
+ 0xa64f0000a650,
3824
+ 0xa6510000a652,
3825
+ 0xa6530000a654,
3826
+ 0xa6550000a656,
3827
+ 0xa6570000a658,
3828
+ 0xa6590000a65a,
3829
+ 0xa65b0000a65c,
3830
+ 0xa65d0000a65e,
3831
+ 0xa65f0000a660,
3832
+ 0xa6610000a662,
3833
+ 0xa6630000a664,
3834
+ 0xa6650000a666,
3835
+ 0xa6670000a668,
3836
+ 0xa6690000a66a,
3837
+ 0xa66b0000a66c,
3838
+ 0xa66d0000a670,
3839
+ 0xa6740000a67e,
3840
+ 0xa67f0000a680,
3841
+ 0xa6810000a682,
3842
+ 0xa6830000a684,
3843
+ 0xa6850000a686,
3844
+ 0xa6870000a688,
3845
+ 0xa6890000a68a,
3846
+ 0xa68b0000a68c,
3847
+ 0xa68d0000a68e,
3848
+ 0xa68f0000a690,
3849
+ 0xa6910000a692,
3850
+ 0xa6930000a694,
3851
+ 0xa6950000a696,
3852
+ 0xa6970000a698,
3853
+ 0xa6990000a69a,
3854
+ 0xa69b0000a69c,
3855
+ 0xa69e0000a6e6,
3856
+ 0xa6f00000a6f2,
3857
+ 0xa7170000a720,
3858
+ 0xa7230000a724,
3859
+ 0xa7250000a726,
3860
+ 0xa7270000a728,
3861
+ 0xa7290000a72a,
3862
+ 0xa72b0000a72c,
3863
+ 0xa72d0000a72e,
3864
+ 0xa72f0000a732,
3865
+ 0xa7330000a734,
3866
+ 0xa7350000a736,
3867
+ 0xa7370000a738,
3868
+ 0xa7390000a73a,
3869
+ 0xa73b0000a73c,
3870
+ 0xa73d0000a73e,
3871
+ 0xa73f0000a740,
3872
+ 0xa7410000a742,
3873
+ 0xa7430000a744,
3874
+ 0xa7450000a746,
3875
+ 0xa7470000a748,
3876
+ 0xa7490000a74a,
3877
+ 0xa74b0000a74c,
3878
+ 0xa74d0000a74e,
3879
+ 0xa74f0000a750,
3880
+ 0xa7510000a752,
3881
+ 0xa7530000a754,
3882
+ 0xa7550000a756,
3883
+ 0xa7570000a758,
3884
+ 0xa7590000a75a,
3885
+ 0xa75b0000a75c,
3886
+ 0xa75d0000a75e,
3887
+ 0xa75f0000a760,
3888
+ 0xa7610000a762,
3889
+ 0xa7630000a764,
3890
+ 0xa7650000a766,
3891
+ 0xa7670000a768,
3892
+ 0xa7690000a76a,
3893
+ 0xa76b0000a76c,
3894
+ 0xa76d0000a76e,
3895
+ 0xa76f0000a770,
3896
+ 0xa7710000a779,
3897
+ 0xa77a0000a77b,
3898
+ 0xa77c0000a77d,
3899
+ 0xa77f0000a780,
3900
+ 0xa7810000a782,
3901
+ 0xa7830000a784,
3902
+ 0xa7850000a786,
3903
+ 0xa7870000a789,
3904
+ 0xa78c0000a78d,
3905
+ 0xa78e0000a790,
3906
+ 0xa7910000a792,
3907
+ 0xa7930000a796,
3908
+ 0xa7970000a798,
3909
+ 0xa7990000a79a,
3910
+ 0xa79b0000a79c,
3911
+ 0xa79d0000a79e,
3912
+ 0xa79f0000a7a0,
3913
+ 0xa7a10000a7a2,
3914
+ 0xa7a30000a7a4,
3915
+ 0xa7a50000a7a6,
3916
+ 0xa7a70000a7a8,
3917
+ 0xa7a90000a7aa,
3918
+ 0xa7af0000a7b0,
3919
+ 0xa7b50000a7b6,
3920
+ 0xa7b70000a7b8,
3921
+ 0xa7b90000a7ba,
3922
+ 0xa7bb0000a7bc,
3923
+ 0xa7bd0000a7be,
3924
+ 0xa7bf0000a7c0,
3925
+ 0xa7c10000a7c2,
3926
+ 0xa7c30000a7c4,
3927
+ 0xa7c80000a7c9,
3928
+ 0xa7ca0000a7cb,
3929
+ 0xa7d10000a7d2,
3930
+ 0xa7d30000a7d4,
3931
+ 0xa7d50000a7d6,
3932
+ 0xa7d70000a7d8,
3933
+ 0xa7d90000a7da,
3934
+ 0xa7f60000a7f8,
3935
+ 0xa7fa0000a828,
3936
+ 0xa82c0000a82d,
3937
+ 0xa8400000a874,
3938
+ 0xa8800000a8c6,
3939
+ 0xa8d00000a8da,
3940
+ 0xa8e00000a8f8,
3941
+ 0xa8fb0000a8fc,
3942
+ 0xa8fd0000a92e,
3943
+ 0xa9300000a954,
3944
+ 0xa9800000a9c1,
3945
+ 0xa9cf0000a9da,
3946
+ 0xa9e00000a9ff,
3947
+ 0xaa000000aa37,
3948
+ 0xaa400000aa4e,
3949
+ 0xaa500000aa5a,
3950
+ 0xaa600000aa77,
3951
+ 0xaa7a0000aac3,
3952
+ 0xaadb0000aade,
3953
+ 0xaae00000aaf0,
3954
+ 0xaaf20000aaf7,
3955
+ 0xab010000ab07,
3956
+ 0xab090000ab0f,
3957
+ 0xab110000ab17,
3958
+ 0xab200000ab27,
3959
+ 0xab280000ab2f,
3960
+ 0xab300000ab5b,
3961
+ 0xab600000ab69,
3962
+ 0xabc00000abeb,
3963
+ 0xabec0000abee,
3964
+ 0xabf00000abfa,
3965
+ 0xac000000d7a4,
3966
+ 0xfa0e0000fa10,
3967
+ 0xfa110000fa12,
3968
+ 0xfa130000fa15,
3969
+ 0xfa1f0000fa20,
3970
+ 0xfa210000fa22,
3971
+ 0xfa230000fa25,
3972
+ 0xfa270000fa2a,
3973
+ 0xfb1e0000fb1f,
3974
+ 0xfe200000fe30,
3975
+ 0xfe730000fe74,
3976
+ 0x100000001000c,
3977
+ 0x1000d00010027,
3978
+ 0x100280001003b,
3979
+ 0x1003c0001003e,
3980
+ 0x1003f0001004e,
3981
+ 0x100500001005e,
3982
+ 0x10080000100fb,
3983
+ 0x101fd000101fe,
3984
+ 0x102800001029d,
3985
+ 0x102a0000102d1,
3986
+ 0x102e0000102e1,
3987
+ 0x1030000010320,
3988
+ 0x1032d00010341,
3989
+ 0x103420001034a,
3990
+ 0x103500001037b,
3991
+ 0x103800001039e,
3992
+ 0x103a0000103c4,
3993
+ 0x103c8000103d0,
3994
+ 0x104280001049e,
3995
+ 0x104a0000104aa,
3996
+ 0x104d8000104fc,
3997
+ 0x1050000010528,
3998
+ 0x1053000010564,
3999
+ 0x10597000105a2,
4000
+ 0x105a3000105b2,
4001
+ 0x105b3000105ba,
4002
+ 0x105bb000105bd,
4003
+ 0x1060000010737,
4004
+ 0x1074000010756,
4005
+ 0x1076000010768,
4006
+ 0x1078000010781,
4007
+ 0x1080000010806,
4008
+ 0x1080800010809,
4009
+ 0x1080a00010836,
4010
+ 0x1083700010839,
4011
+ 0x1083c0001083d,
4012
+ 0x1083f00010856,
4013
+ 0x1086000010877,
4014
+ 0x108800001089f,
4015
+ 0x108e0000108f3,
4016
+ 0x108f4000108f6,
4017
+ 0x1090000010916,
4018
+ 0x109200001093a,
4019
+ 0x10980000109b8,
4020
+ 0x109be000109c0,
4021
+ 0x10a0000010a04,
4022
+ 0x10a0500010a07,
4023
+ 0x10a0c00010a14,
4024
+ 0x10a1500010a18,
4025
+ 0x10a1900010a36,
4026
+ 0x10a3800010a3b,
4027
+ 0x10a3f00010a40,
4028
+ 0x10a6000010a7d,
4029
+ 0x10a8000010a9d,
4030
+ 0x10ac000010ac8,
4031
+ 0x10ac900010ae7,
4032
+ 0x10b0000010b36,
4033
+ 0x10b4000010b56,
4034
+ 0x10b6000010b73,
4035
+ 0x10b8000010b92,
4036
+ 0x10c0000010c49,
4037
+ 0x10cc000010cf3,
4038
+ 0x10d0000010d28,
4039
+ 0x10d3000010d3a,
4040
+ 0x10e8000010eaa,
4041
+ 0x10eab00010ead,
4042
+ 0x10eb000010eb2,
4043
+ 0x10efd00010f1d,
4044
+ 0x10f2700010f28,
4045
+ 0x10f3000010f51,
4046
+ 0x10f7000010f86,
4047
+ 0x10fb000010fc5,
4048
+ 0x10fe000010ff7,
4049
+ 0x1100000011047,
4050
+ 0x1106600011076,
4051
+ 0x1107f000110bb,
4052
+ 0x110c2000110c3,
4053
+ 0x110d0000110e9,
4054
+ 0x110f0000110fa,
4055
+ 0x1110000011135,
4056
+ 0x1113600011140,
4057
+ 0x1114400011148,
4058
+ 0x1115000011174,
4059
+ 0x1117600011177,
4060
+ 0x11180000111c5,
4061
+ 0x111c9000111cd,
4062
+ 0x111ce000111db,
4063
+ 0x111dc000111dd,
4064
+ 0x1120000011212,
4065
+ 0x1121300011238,
4066
+ 0x1123e00011242,
4067
+ 0x1128000011287,
4068
+ 0x1128800011289,
4069
+ 0x1128a0001128e,
4070
+ 0x1128f0001129e,
4071
+ 0x1129f000112a9,
4072
+ 0x112b0000112eb,
4073
+ 0x112f0000112fa,
4074
+ 0x1130000011304,
4075
+ 0x113050001130d,
4076
+ 0x1130f00011311,
4077
+ 0x1131300011329,
4078
+ 0x1132a00011331,
4079
+ 0x1133200011334,
4080
+ 0x113350001133a,
4081
+ 0x1133b00011345,
4082
+ 0x1134700011349,
4083
+ 0x1134b0001134e,
4084
+ 0x1135000011351,
4085
+ 0x1135700011358,
4086
+ 0x1135d00011364,
4087
+ 0x113660001136d,
4088
+ 0x1137000011375,
4089
+ 0x114000001144b,
4090
+ 0x114500001145a,
4091
+ 0x1145e00011462,
4092
+ 0x11480000114c6,
4093
+ 0x114c7000114c8,
4094
+ 0x114d0000114da,
4095
+ 0x11580000115b6,
4096
+ 0x115b8000115c1,
4097
+ 0x115d8000115de,
4098
+ 0x1160000011641,
4099
+ 0x1164400011645,
4100
+ 0x116500001165a,
4101
+ 0x11680000116b9,
4102
+ 0x116c0000116ca,
4103
+ 0x117000001171b,
4104
+ 0x1171d0001172c,
4105
+ 0x117300001173a,
4106
+ 0x1174000011747,
4107
+ 0x118000001183b,
4108
+ 0x118c0000118ea,
4109
+ 0x118ff00011907,
4110
+ 0x119090001190a,
4111
+ 0x1190c00011914,
4112
+ 0x1191500011917,
4113
+ 0x1191800011936,
4114
+ 0x1193700011939,
4115
+ 0x1193b00011944,
4116
+ 0x119500001195a,
4117
+ 0x119a0000119a8,
4118
+ 0x119aa000119d8,
4119
+ 0x119da000119e2,
4120
+ 0x119e3000119e5,
4121
+ 0x11a0000011a3f,
4122
+ 0x11a4700011a48,
4123
+ 0x11a5000011a9a,
4124
+ 0x11a9d00011a9e,
4125
+ 0x11ab000011af9,
4126
+ 0x11c0000011c09,
4127
+ 0x11c0a00011c37,
4128
+ 0x11c3800011c41,
4129
+ 0x11c5000011c5a,
4130
+ 0x11c7200011c90,
4131
+ 0x11c9200011ca8,
4132
+ 0x11ca900011cb7,
4133
+ 0x11d0000011d07,
4134
+ 0x11d0800011d0a,
4135
+ 0x11d0b00011d37,
4136
+ 0x11d3a00011d3b,
4137
+ 0x11d3c00011d3e,
4138
+ 0x11d3f00011d48,
4139
+ 0x11d5000011d5a,
4140
+ 0x11d6000011d66,
4141
+ 0x11d6700011d69,
4142
+ 0x11d6a00011d8f,
4143
+ 0x11d9000011d92,
4144
+ 0x11d9300011d99,
4145
+ 0x11da000011daa,
4146
+ 0x11ee000011ef7,
4147
+ 0x11f0000011f11,
4148
+ 0x11f1200011f3b,
4149
+ 0x11f3e00011f43,
4150
+ 0x11f5000011f5a,
4151
+ 0x11fb000011fb1,
4152
+ 0x120000001239a,
4153
+ 0x1248000012544,
4154
+ 0x12f9000012ff1,
4155
+ 0x1300000013430,
4156
+ 0x1344000013456,
4157
+ 0x1440000014647,
4158
+ 0x1680000016a39,
4159
+ 0x16a4000016a5f,
4160
+ 0x16a6000016a6a,
4161
+ 0x16a7000016abf,
4162
+ 0x16ac000016aca,
4163
+ 0x16ad000016aee,
4164
+ 0x16af000016af5,
4165
+ 0x16b0000016b37,
4166
+ 0x16b4000016b44,
4167
+ 0x16b5000016b5a,
4168
+ 0x16b6300016b78,
4169
+ 0x16b7d00016b90,
4170
+ 0x16e6000016e80,
4171
+ 0x16f0000016f4b,
4172
+ 0x16f4f00016f88,
4173
+ 0x16f8f00016fa0,
4174
+ 0x16fe000016fe2,
4175
+ 0x16fe300016fe5,
4176
+ 0x16ff000016ff2,
4177
+ 0x17000000187f8,
4178
+ 0x1880000018cd6,
4179
+ 0x18d0000018d09,
4180
+ 0x1aff00001aff4,
4181
+ 0x1aff50001affc,
4182
+ 0x1affd0001afff,
4183
+ 0x1b0000001b123,
4184
+ 0x1b1320001b133,
4185
+ 0x1b1500001b153,
4186
+ 0x1b1550001b156,
4187
+ 0x1b1640001b168,
4188
+ 0x1b1700001b2fc,
4189
+ 0x1bc000001bc6b,
4190
+ 0x1bc700001bc7d,
4191
+ 0x1bc800001bc89,
4192
+ 0x1bc900001bc9a,
4193
+ 0x1bc9d0001bc9f,
4194
+ 0x1cf000001cf2e,
4195
+ 0x1cf300001cf47,
4196
+ 0x1da000001da37,
4197
+ 0x1da3b0001da6d,
4198
+ 0x1da750001da76,
4199
+ 0x1da840001da85,
4200
+ 0x1da9b0001daa0,
4201
+ 0x1daa10001dab0,
4202
+ 0x1df000001df1f,
4203
+ 0x1df250001df2b,
4204
+ 0x1e0000001e007,
4205
+ 0x1e0080001e019,
4206
+ 0x1e01b0001e022,
4207
+ 0x1e0230001e025,
4208
+ 0x1e0260001e02b,
4209
+ 0x1e08f0001e090,
4210
+ 0x1e1000001e12d,
4211
+ 0x1e1300001e13e,
4212
+ 0x1e1400001e14a,
4213
+ 0x1e14e0001e14f,
4214
+ 0x1e2900001e2af,
4215
+ 0x1e2c00001e2fa,
4216
+ 0x1e4d00001e4fa,
4217
+ 0x1e7e00001e7e7,
4218
+ 0x1e7e80001e7ec,
4219
+ 0x1e7ed0001e7ef,
4220
+ 0x1e7f00001e7ff,
4221
+ 0x1e8000001e8c5,
4222
+ 0x1e8d00001e8d7,
4223
+ 0x1e9220001e94c,
4224
+ 0x1e9500001e95a,
4225
+ 0x200000002a6e0,
4226
+ 0x2a7000002b73a,
4227
+ 0x2b7400002b81e,
4228
+ 0x2b8200002cea2,
4229
+ 0x2ceb00002ebe1,
4230
+ 0x2ebf00002ee5e,
4231
+ 0x300000003134b,
4232
+ 0x31350000323b0,
4233
+ ),
4234
+ 'CONTEXTJ': (
4235
+ 0x200c0000200e,
4236
+ ),
4237
+ 'CONTEXTO': (
4238
+ 0xb7000000b8,
4239
+ 0x37500000376,
4240
+ 0x5f3000005f5,
4241
+ 0x6600000066a,
4242
+ 0x6f0000006fa,
4243
+ 0x30fb000030fc,
4244
+ ),
4245
+ }
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/intranges.py ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Given a list of integers, made up of (hopefully) a small number of long runs
3
+ of consecutive integers, compute a representation of the form
4
+ ((start1, end1), (start2, end2) ...). Then answer the question "was x present
5
+ in the original list?" in time O(log(# runs)).
6
+ """
7
+
8
+ import bisect
9
+ from typing import List, Tuple
10
+
11
+ def intranges_from_list(list_: List[int]) -> Tuple[int, ...]:
12
+ """Represent a list of integers as a sequence of ranges:
13
+ ((start_0, end_0), (start_1, end_1), ...), such that the original
14
+ integers are exactly those x such that start_i <= x < end_i for some i.
15
+
16
+ Ranges are encoded as single integers (start << 32 | end), not as tuples.
17
+ """
18
+
19
+ sorted_list = sorted(list_)
20
+ ranges = []
21
+ last_write = -1
22
+ for i in range(len(sorted_list)):
23
+ if i+1 < len(sorted_list):
24
+ if sorted_list[i] == sorted_list[i+1]-1:
25
+ continue
26
+ current_range = sorted_list[last_write+1:i+1]
27
+ ranges.append(_encode_range(current_range[0], current_range[-1] + 1))
28
+ last_write = i
29
+
30
+ return tuple(ranges)
31
+
32
+ def _encode_range(start: int, end: int) -> int:
33
+ return (start << 32) | end
34
+
35
+ def _decode_range(r: int) -> Tuple[int, int]:
36
+ return (r >> 32), (r & ((1 << 32) - 1))
37
+
38
+
39
+ def intranges_contain(int_: int, ranges: Tuple[int, ...]) -> bool:
40
+ """Determine if `int_` falls into one of the ranges in `ranges`."""
41
+ tuple_ = _encode_range(int_, 0)
42
+ pos = bisect.bisect_left(ranges, tuple_)
43
+ # we could be immediately ahead of a tuple (start, end)
44
+ # with start < int_ <= end
45
+ if pos > 0:
46
+ left, right = _decode_range(ranges[pos-1])
47
+ if left <= int_ < right:
48
+ return True
49
+ # or we could be immediately behind a tuple (int_, end)
50
+ if pos < len(ranges):
51
+ left, _ = _decode_range(ranges[pos])
52
+ if left == int_:
53
+ return True
54
+ return False
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/package_data.py ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ __version__ = '3.7'
2
+
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/idna/py.typed ADDED
File without changes
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (19.2 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-311.pyc ADDED
Binary file (682 Bytes). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__main__.py ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ pygments.__main__
3
+ ~~~~~~~~~~~~~~~~~
4
+
5
+ Main entry point for ``python -m pygments``.
6
+
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+ import sys
12
+ from pip._vendor.pygments.cmdline import main
13
+
14
+ try:
15
+ sys.exit(main(sys.argv))
16
+ except KeyboardInterrupt:
17
+ sys.exit(1)
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-311.pyc ADDED
Binary file (802 Bytes). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-311.pyc ADDED
Binary file (30.3 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-311.pyc ADDED
Binary file (3.07 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-311.pyc ADDED
Binary file (3.52 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-311.pyc ADDED
Binary file (5 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-311.pyc ADDED
Binary file (1.75 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-311.pyc ADDED
Binary file (2.88 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-311.pyc ADDED
Binary file (5.05 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-311.pyc ADDED
Binary file (4.91 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-311.pyc ADDED
Binary file (14 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-311.pyc ADDED
Binary file (7.49 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-311.pyc ADDED
Binary file (7.53 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-311.pyc ADDED
Binary file (33.9 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-311.pyc ADDED
Binary file (15.8 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (7.8 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-311.pyc ADDED
Binary file (4.24 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-311.pyc ADDED
Binary file (4.55 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-311.pyc ADDED
Binary file (43.2 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-311.pyc ADDED
Binary file (30.3 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-311.pyc ADDED
Binary file (6.43 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-311.pyc ADDED
Binary file (22.1 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-311.pyc ADDED
Binary file (7.67 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-311.pyc ADDED
Binary file (14.8 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-311.pyc ADDED
Binary file (16.4 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/bbcode.py ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ pygments.formatters.bbcode
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ BBcode formatter.
6
+
7
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
8
+ :license: BSD, see LICENSE for details.
9
+ """
10
+
11
+
12
+ from pip._vendor.pygments.formatter import Formatter
13
+ from pip._vendor.pygments.util import get_bool_opt
14
+
15
+ __all__ = ['BBCodeFormatter']
16
+
17
+
18
+ class BBCodeFormatter(Formatter):
19
+ """
20
+ Format tokens with BBcodes. These formatting codes are used by many
21
+ bulletin boards, so you can highlight your sourcecode with pygments before
22
+ posting it there.
23
+
24
+ This formatter has no support for background colors and borders, as there
25
+ are no common BBcode tags for that.
26
+
27
+ Some board systems (e.g. phpBB) don't support colors in their [code] tag,
28
+ so you can't use the highlighting together with that tag.
29
+ Text in a [code] tag usually is shown with a monospace font (which this
30
+ formatter can do with the ``monofont`` option) and no spaces (which you
31
+ need for indentation) are removed.
32
+
33
+ Additional options accepted:
34
+
35
+ `style`
36
+ The style to use, can be a string or a Style subclass (default:
37
+ ``'default'``).
38
+
39
+ `codetag`
40
+ If set to true, put the output into ``[code]`` tags (default:
41
+ ``false``)
42
+
43
+ `monofont`
44
+ If set to true, add a tag to show the code with a monospace font
45
+ (default: ``false``).
46
+ """
47
+ name = 'BBCode'
48
+ aliases = ['bbcode', 'bb']
49
+ filenames = []
50
+
51
+ def __init__(self, **options):
52
+ Formatter.__init__(self, **options)
53
+ self._code = get_bool_opt(options, 'codetag', False)
54
+ self._mono = get_bool_opt(options, 'monofont', False)
55
+
56
+ self.styles = {}
57
+ self._make_styles()
58
+
59
+ def _make_styles(self):
60
+ for ttype, ndef in self.style:
61
+ start = end = ''
62
+ if ndef['color']:
63
+ start += '[color=#{}]'.format(ndef['color'])
64
+ end = '[/color]' + end
65
+ if ndef['bold']:
66
+ start += '[b]'
67
+ end = '[/b]' + end
68
+ if ndef['italic']:
69
+ start += '[i]'
70
+ end = '[/i]' + end
71
+ if ndef['underline']:
72
+ start += '[u]'
73
+ end = '[/u]' + end
74
+ # there are no common BBcodes for background-color and border
75
+
76
+ self.styles[ttype] = start, end
77
+
78
+ def format_unencoded(self, tokensource, outfile):
79
+ if self._code:
80
+ outfile.write('[code]')
81
+ if self._mono:
82
+ outfile.write('[font=monospace]')
83
+
84
+ lastval = ''
85
+ lasttype = None
86
+
87
+ for ttype, value in tokensource:
88
+ while ttype not in self.styles:
89
+ ttype = ttype.parent
90
+ if ttype == lasttype:
91
+ lastval += value
92
+ else:
93
+ if lastval:
94
+ start, end = self.styles[lasttype]
95
+ outfile.write(''.join((start, lastval, end)))
96
+ lastval = value
97
+ lasttype = ttype
98
+
99
+ if lastval:
100
+ start, end = self.styles[lasttype]
101
+ outfile.write(''.join((start, lastval, end)))
102
+
103
+ if self._mono:
104
+ outfile.write('[/font]')
105
+ if self._code:
106
+ outfile.write('[/code]')
107
+ if self._code or self._mono:
108
+ outfile.write('\n')
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/terminal256.py ADDED
@@ -0,0 +1,338 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ pygments.formatters.terminal256
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+
5
+ Formatter for 256-color terminal output with ANSI sequences.
6
+
7
+ RGB-to-XTERM color conversion routines adapted from xterm256-conv
8
+ tool (http://frexx.de/xterm-256-notes/data/xterm256-conv2.tar.bz2)
9
+ by Wolfgang Frisch.
10
+
11
+ Formatter version 1.
12
+
13
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
14
+ :license: BSD, see LICENSE for details.
15
+ """
16
+
17
+ # TODO:
18
+ # - Options to map style's bold/underline/italic/border attributes
19
+ # to some ANSI attrbutes (something like 'italic=underline')
20
+ # - An option to output "style RGB to xterm RGB/index" conversion table
21
+ # - An option to indicate that we are running in "reverse background"
22
+ # xterm. This means that default colors are white-on-black, not
23
+ # black-on-while, so colors like "white background" need to be converted
24
+ # to "white background, black foreground", etc...
25
+
26
+ from pip._vendor.pygments.formatter import Formatter
27
+ from pip._vendor.pygments.console import codes
28
+ from pip._vendor.pygments.style import ansicolors
29
+
30
+
31
+ __all__ = ['Terminal256Formatter', 'TerminalTrueColorFormatter']
32
+
33
+
34
+ class EscapeSequence:
35
+ def __init__(self, fg=None, bg=None, bold=False, underline=False, italic=False):
36
+ self.fg = fg
37
+ self.bg = bg
38
+ self.bold = bold
39
+ self.underline = underline
40
+ self.italic = italic
41
+
42
+ def escape(self, attrs):
43
+ if len(attrs):
44
+ return "\x1b[" + ";".join(attrs) + "m"
45
+ return ""
46
+
47
+ def color_string(self):
48
+ attrs = []
49
+ if self.fg is not None:
50
+ if self.fg in ansicolors:
51
+ esc = codes[self.fg.replace('ansi','')]
52
+ if ';01m' in esc:
53
+ self.bold = True
54
+ # extract fg color code.
55
+ attrs.append(esc[2:4])
56
+ else:
57
+ attrs.extend(("38", "5", "%i" % self.fg))
58
+ if self.bg is not None:
59
+ if self.bg in ansicolors:
60
+ esc = codes[self.bg.replace('ansi','')]
61
+ # extract fg color code, add 10 for bg.
62
+ attrs.append(str(int(esc[2:4])+10))
63
+ else:
64
+ attrs.extend(("48", "5", "%i" % self.bg))
65
+ if self.bold:
66
+ attrs.append("01")
67
+ if self.underline:
68
+ attrs.append("04")
69
+ if self.italic:
70
+ attrs.append("03")
71
+ return self.escape(attrs)
72
+
73
+ def true_color_string(self):
74
+ attrs = []
75
+ if self.fg:
76
+ attrs.extend(("38", "2", str(self.fg[0]), str(self.fg[1]), str(self.fg[2])))
77
+ if self.bg:
78
+ attrs.extend(("48", "2", str(self.bg[0]), str(self.bg[1]), str(self.bg[2])))
79
+ if self.bold:
80
+ attrs.append("01")
81
+ if self.underline:
82
+ attrs.append("04")
83
+ if self.italic:
84
+ attrs.append("03")
85
+ return self.escape(attrs)
86
+
87
+ def reset_string(self):
88
+ attrs = []
89
+ if self.fg is not None:
90
+ attrs.append("39")
91
+ if self.bg is not None:
92
+ attrs.append("49")
93
+ if self.bold or self.underline or self.italic:
94
+ attrs.append("00")
95
+ return self.escape(attrs)
96
+
97
+
98
+ class Terminal256Formatter(Formatter):
99
+ """
100
+ Format tokens with ANSI color sequences, for output in a 256-color
101
+ terminal or console. Like in `TerminalFormatter` color sequences
102
+ are terminated at newlines, so that paging the output works correctly.
103
+
104
+ The formatter takes colors from a style defined by the `style` option
105
+ and converts them to nearest ANSI 256-color escape sequences. Bold and
106
+ underline attributes from the style are preserved (and displayed).
107
+
108
+ .. versionadded:: 0.9
109
+
110
+ .. versionchanged:: 2.2
111
+ If the used style defines foreground colors in the form ``#ansi*``, then
112
+ `Terminal256Formatter` will map these to non extended foreground color.
113
+ See :ref:`AnsiTerminalStyle` for more information.
114
+
115
+ .. versionchanged:: 2.4
116
+ The ANSI color names have been updated with names that are easier to
117
+ understand and align with colornames of other projects and terminals.
118
+ See :ref:`this table <new-ansi-color-names>` for more information.
119
+
120
+
121
+ Options accepted:
122
+
123
+ `style`
124
+ The style to use, can be a string or a Style subclass (default:
125
+ ``'default'``).
126
+
127
+ `linenos`
128
+ Set to ``True`` to have line numbers on the terminal output as well
129
+ (default: ``False`` = no line numbers).
130
+ """
131
+ name = 'Terminal256'
132
+ aliases = ['terminal256', 'console256', '256']
133
+ filenames = []
134
+
135
+ def __init__(self, **options):
136
+ Formatter.__init__(self, **options)
137
+
138
+ self.xterm_colors = []
139
+ self.best_match = {}
140
+ self.style_string = {}
141
+
142
+ self.usebold = 'nobold' not in options
143
+ self.useunderline = 'nounderline' not in options
144
+ self.useitalic = 'noitalic' not in options
145
+
146
+ self._build_color_table() # build an RGB-to-256 color conversion table
147
+ self._setup_styles() # convert selected style's colors to term. colors
148
+
149
+ self.linenos = options.get('linenos', False)
150
+ self._lineno = 0
151
+
152
+ def _build_color_table(self):
153
+ # colors 0..15: 16 basic colors
154
+
155
+ self.xterm_colors.append((0x00, 0x00, 0x00)) # 0
156
+ self.xterm_colors.append((0xcd, 0x00, 0x00)) # 1
157
+ self.xterm_colors.append((0x00, 0xcd, 0x00)) # 2
158
+ self.xterm_colors.append((0xcd, 0xcd, 0x00)) # 3
159
+ self.xterm_colors.append((0x00, 0x00, 0xee)) # 4
160
+ self.xterm_colors.append((0xcd, 0x00, 0xcd)) # 5
161
+ self.xterm_colors.append((0x00, 0xcd, 0xcd)) # 6
162
+ self.xterm_colors.append((0xe5, 0xe5, 0xe5)) # 7
163
+ self.xterm_colors.append((0x7f, 0x7f, 0x7f)) # 8
164
+ self.xterm_colors.append((0xff, 0x00, 0x00)) # 9
165
+ self.xterm_colors.append((0x00, 0xff, 0x00)) # 10
166
+ self.xterm_colors.append((0xff, 0xff, 0x00)) # 11
167
+ self.xterm_colors.append((0x5c, 0x5c, 0xff)) # 12
168
+ self.xterm_colors.append((0xff, 0x00, 0xff)) # 13
169
+ self.xterm_colors.append((0x00, 0xff, 0xff)) # 14
170
+ self.xterm_colors.append((0xff, 0xff, 0xff)) # 15
171
+
172
+ # colors 16..232: the 6x6x6 color cube
173
+
174
+ valuerange = (0x00, 0x5f, 0x87, 0xaf, 0xd7, 0xff)
175
+
176
+ for i in range(217):
177
+ r = valuerange[(i // 36) % 6]
178
+ g = valuerange[(i // 6) % 6]
179
+ b = valuerange[i % 6]
180
+ self.xterm_colors.append((r, g, b))
181
+
182
+ # colors 233..253: grayscale
183
+
184
+ for i in range(1, 22):
185
+ v = 8 + i * 10
186
+ self.xterm_colors.append((v, v, v))
187
+
188
+ def _closest_color(self, r, g, b):
189
+ distance = 257*257*3 # "infinity" (>distance from #000000 to #ffffff)
190
+ match = 0
191
+
192
+ for i in range(0, 254):
193
+ values = self.xterm_colors[i]
194
+
195
+ rd = r - values[0]
196
+ gd = g - values[1]
197
+ bd = b - values[2]
198
+ d = rd*rd + gd*gd + bd*bd
199
+
200
+ if d < distance:
201
+ match = i
202
+ distance = d
203
+ return match
204
+
205
+ def _color_index(self, color):
206
+ index = self.best_match.get(color, None)
207
+ if color in ansicolors:
208
+ # strip the `ansi/#ansi` part and look up code
209
+ index = color
210
+ self.best_match[color] = index
211
+ if index is None:
212
+ try:
213
+ rgb = int(str(color), 16)
214
+ except ValueError:
215
+ rgb = 0
216
+
217
+ r = (rgb >> 16) & 0xff
218
+ g = (rgb >> 8) & 0xff
219
+ b = rgb & 0xff
220
+ index = self._closest_color(r, g, b)
221
+ self.best_match[color] = index
222
+ return index
223
+
224
+ def _setup_styles(self):
225
+ for ttype, ndef in self.style:
226
+ escape = EscapeSequence()
227
+ # get foreground from ansicolor if set
228
+ if ndef['ansicolor']:
229
+ escape.fg = self._color_index(ndef['ansicolor'])
230
+ elif ndef['color']:
231
+ escape.fg = self._color_index(ndef['color'])
232
+ if ndef['bgansicolor']:
233
+ escape.bg = self._color_index(ndef['bgansicolor'])
234
+ elif ndef['bgcolor']:
235
+ escape.bg = self._color_index(ndef['bgcolor'])
236
+ if self.usebold and ndef['bold']:
237
+ escape.bold = True
238
+ if self.useunderline and ndef['underline']:
239
+ escape.underline = True
240
+ if self.useitalic and ndef['italic']:
241
+ escape.italic = True
242
+ self.style_string[str(ttype)] = (escape.color_string(),
243
+ escape.reset_string())
244
+
245
+ def _write_lineno(self, outfile):
246
+ self._lineno += 1
247
+ outfile.write("%s%04d: " % (self._lineno != 1 and '\n' or '', self._lineno))
248
+
249
+ def format(self, tokensource, outfile):
250
+ return Formatter.format(self, tokensource, outfile)
251
+
252
+ def format_unencoded(self, tokensource, outfile):
253
+ if self.linenos:
254
+ self._write_lineno(outfile)
255
+
256
+ for ttype, value in tokensource:
257
+ not_found = True
258
+ while ttype and not_found:
259
+ try:
260
+ # outfile.write( "<" + str(ttype) + ">" )
261
+ on, off = self.style_string[str(ttype)]
262
+
263
+ # Like TerminalFormatter, add "reset colors" escape sequence
264
+ # on newline.
265
+ spl = value.split('\n')
266
+ for line in spl[:-1]:
267
+ if line:
268
+ outfile.write(on + line + off)
269
+ if self.linenos:
270
+ self._write_lineno(outfile)
271
+ else:
272
+ outfile.write('\n')
273
+
274
+ if spl[-1]:
275
+ outfile.write(on + spl[-1] + off)
276
+
277
+ not_found = False
278
+ # outfile.write( '#' + str(ttype) + '#' )
279
+
280
+ except KeyError:
281
+ # ottype = ttype
282
+ ttype = ttype.parent
283
+ # outfile.write( '!' + str(ottype) + '->' + str(ttype) + '!' )
284
+
285
+ if not_found:
286
+ outfile.write(value)
287
+
288
+ if self.linenos:
289
+ outfile.write("\n")
290
+
291
+
292
+
293
+ class TerminalTrueColorFormatter(Terminal256Formatter):
294
+ r"""
295
+ Format tokens with ANSI color sequences, for output in a true-color
296
+ terminal or console. Like in `TerminalFormatter` color sequences
297
+ are terminated at newlines, so that paging the output works correctly.
298
+
299
+ .. versionadded:: 2.1
300
+
301
+ Options accepted:
302
+
303
+ `style`
304
+ The style to use, can be a string or a Style subclass (default:
305
+ ``'default'``).
306
+ """
307
+ name = 'TerminalTrueColor'
308
+ aliases = ['terminal16m', 'console16m', '16m']
309
+ filenames = []
310
+
311
+ def _build_color_table(self):
312
+ pass
313
+
314
+ def _color_tuple(self, color):
315
+ try:
316
+ rgb = int(str(color), 16)
317
+ except ValueError:
318
+ return None
319
+ r = (rgb >> 16) & 0xff
320
+ g = (rgb >> 8) & 0xff
321
+ b = rgb & 0xff
322
+ return (r, g, b)
323
+
324
+ def _setup_styles(self):
325
+ for ttype, ndef in self.style:
326
+ escape = EscapeSequence()
327
+ if ndef['color']:
328
+ escape.fg = self._color_tuple(ndef['color'])
329
+ if ndef['bgcolor']:
330
+ escape.bg = self._color_tuple(ndef['bgcolor'])
331
+ if self.usebold and ndef['bold']:
332
+ escape.bold = True
333
+ if self.useunderline and ndef['underline']:
334
+ escape.underline = True
335
+ if self.useitalic and ndef['italic']:
336
+ escape.italic = True
337
+ self.style_string[str(ttype)] = (escape.true_color_string(),
338
+ escape.reset_string())
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-311.pyc ADDED
Binary file (43.6 kB). View file
 
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/pygments/unistring.py ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ pygments.unistring
3
+ ~~~~~~~~~~~~~~~~~~
4
+
5
+ Strings of all Unicode characters of a certain category.
6
+ Used for matching in Unicode-aware languages. Run to regenerate.
7
+
8
+ Inspired by chartypes_create.py from the MoinMoin project.
9
+
10
+ :copyright: Copyright 2006-2024 by the Pygments team, see AUTHORS.
11
+ :license: BSD, see LICENSE for details.
12
+ """
13
+
14
+ Cc = '\x00-\x1f\x7f-\x9f'
15
+
16
+ Cf = '\xad\u0600-\u0605\u061c\u06dd\u070f\u08e2\u180e\u200b-\u200f\u202a-\u202e\u2060-\u2064\u2066-\u206f\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f'
17
+
18
+ Cn = '\u0378-\u0379\u0380-\u0383\u038b\u038d\u03a2\u0530\u0557-\u0558\u058b-\u058c\u0590\u05c8-\u05cf\u05eb-\u05ee\u05f5-\u05ff\u061d\u070e\u074b-\u074c\u07b2-\u07bf\u07fb-\u07fc\u082e-\u082f\u083f\u085c-\u085d\u085f\u086b-\u089f\u08b5\u08be-\u08d2\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09c5-\u09c6\u09c9-\u09ca\u09cf-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09ff-\u0a00\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a50\u0a52-\u0a58\u0a5d\u0a5f-\u0a65\u0a77-\u0a80\u0a84\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0acf\u0ad1-\u0adf\u0ae4-\u0ae5\u0af2-\u0af8\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34\u0b3a-\u0b3b\u0b45-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b64-\u0b65\u0b78-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bcf\u0bd1-\u0bd6\u0bd8-\u0be5\u0bfb-\u0bff\u0c0d\u0c11\u0c29\u0c3a-\u0c3c\u0c45\u0c49\u0c4e-\u0c54\u0c57\u0c5b-\u0c5f\u0c64-\u0c65\u0c70-\u0c77\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbb\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce4-\u0ce5\u0cf0\u0cf3-\u0cff\u0d04\u0d0d\u0d11\u0d45\u0d49\u0d50-\u0d53\u0d64-\u0d65\u0d80-\u0d81\u0d84\u0d97-\u0d99\u0db2\u0dbc\u0dbe-\u0dbf\u0dc7-\u0dc9\u0dcb-\u0dce\u0dd5\u0dd7\u0de0-\u0de5\u0df0-\u0df1\u0df5-\u0e00\u0e3b-\u0e3e\u0e5c-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0edb\u0ee0-\u0eff\u0f48\u0f6d-\u0f70\u0f98\u0fbd\u0fcd\u0fdb-\u0fff\u10c6\u10c8-\u10cc\u10ce-\u10cf\u1249\u124e-\u124f\u1257\u1259\u125e-\u125f\u1289\u128e-\u128f\u12b1\u12b6-\u12b7\u12bf\u12c1\u12c6-\u12c7\u12d7\u1311\u1316-\u1317\u135b-\u135c\u137d-\u137f\u139a-\u139f\u13f6-\u13f7\u13fe-\u13ff\u169d-\u169f\u16f9-\u16ff\u170d\u1715-\u171f\u1737-\u173f\u1754-\u175f\u176d\u1771\u1774-\u177f\u17de-\u17df\u17ea-\u17ef\u17fa-\u17ff\u180f\u181a-\u181f\u1879-\u187f\u18ab-\u18af\u18f6-\u18ff\u191f\u192c-\u192f\u193c-\u193f\u1941-\u1943\u196e-\u196f\u1975-\u197f\u19ac-\u19af\u19ca-\u19cf\u19db-\u19dd\u1a1c-\u1a1d\u1a5f\u1a7d-\u1a7e\u1a8a-\u1a8f\u1a9a-\u1a9f\u1aae-\u1aaf\u1abf-\u1aff\u1b4c-\u1b4f\u1b7d-\u1b7f\u1bf4-\u1bfb\u1c38-\u1c3a\u1c4a-\u1c4c\u1c89-\u1c8f\u1cbb-\u1cbc\u1cc8-\u1ccf\u1cfa-\u1cff\u1dfa\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fc5\u1fd4-\u1fd5\u1fdc\u1ff0-\u1ff1\u1ff5\u1fff\u2065\u2072-\u2073\u208f\u209d-\u209f\u20c0-\u20cf\u20f1-\u20ff\u218c-\u218f\u2427-\u243f\u244b-\u245f\u2b74-\u2b75\u2b96-\u2b97\u2bc9\u2bff\u2c2f\u2c5f\u2cf4-\u2cf8\u2d26\u2d28-\u2d2c\u2d2e-\u2d2f\u2d68-\u2d6e\u2d71-\u2d7e\u2d97-\u2d9f\u2da7\u2daf\u2db7\u2dbf\u2dc7\u2dcf\u2dd7\u2ddf\u2e4f-\u2e7f\u2e9a\u2ef4-\u2eff\u2fd6-\u2fef\u2ffc-\u2fff\u3040\u3097-\u3098\u3100-\u3104\u3130\u318f\u31bb-\u31bf\u31e4-\u31ef\u321f\u32ff\u4db6-\u4dbf\u9ff0-\u9fff\ua48d-\ua48f\ua4c7-\ua4cf\ua62c-\ua63f\ua6f8-\ua6ff\ua7ba-\ua7f6\ua82c-\ua82f\ua83a-\ua83f\ua878-\ua87f\ua8c6-\ua8cd\ua8da-\ua8df\ua954-\ua95e\ua97d-\ua97f\ua9ce\ua9da-\ua9dd\ua9ff\uaa37-\uaa3f\uaa4e-\uaa4f\uaa5a-\uaa5b\uaac3-\uaada\uaaf7-\uab00\uab07-\uab08\uab0f-\uab10\uab17-\uab1f\uab27\uab2f\uab66-\uab6f\uabee-\uabef\uabfa-\uabff\ud7a4-\ud7af\ud7c7-\ud7ca\ud7fc-\ud7ff\ufa6e-\ufa6f\ufada-\ufaff\ufb07-\ufb12\ufb18-\ufb1c\ufb37\ufb3d\ufb3f\ufb42\ufb45\ufbc2-\ufbd2\ufd40-\ufd4f\ufd90-\ufd91\ufdc8-\ufdef\ufdfe-\ufdff\ufe1a-\ufe1f\ufe53\ufe67\ufe6c-\ufe6f\ufe75\ufefd-\ufefe\uff00\uffbf-\uffc1\uffc8-\uffc9\uffd0-\uffd1\uffd8-\uffd9\uffdd-\uffdf\uffe7\uffef-\ufff8\ufffe-\uffff\U0001000c\U00010027\U0001003b\U0001003e\U0001004e-\U0001004f\U0001005e-\U0001007f\U000100fb-\U000100ff\U00010103-\U00010106\U00010134-\U00010136\U0001018f\U0001019c-\U0001019f\U000101a1-\U000101cf\U000101fe-\U0001027f\U0001029d-\U0001029f\U000102d1-\U000102df\U000102fc-\U000102ff\U00010324-\U0001032c\U0001034b-\U0001034f\U0001037b-\U0001037f\U0001039e\U000103c4-\U000103c7\U000103d6-\U000103ff\U0001049e-\U0001049f\U000104aa-\U000104af\U000104d4-\U000104d7\U000104fc-\U000104ff\U00010528-\U0001052f\U00010564-\U0001056e\U00010570-\U000105ff\U00010737-\U0001073f\U00010756-\U0001075f\U00010768-\U000107ff\U00010806-\U00010807\U00010809\U00010836\U00010839-\U0001083b\U0001083d-\U0001083e\U00010856\U0001089f-\U000108a6\U000108b0-\U000108df\U000108f3\U000108f6-\U000108fa\U0001091c-\U0001091e\U0001093a-\U0001093e\U00010940-\U0001097f\U000109b8-\U000109bb\U000109d0-\U000109d1\U00010a04\U00010a07-\U00010a0b\U00010a14\U00010a18\U00010a36-\U00010a37\U00010a3b-\U00010a3e\U00010a49-\U00010a4f\U00010a59-\U00010a5f\U00010aa0-\U00010abf\U00010ae7-\U00010aea\U00010af7-\U00010aff\U00010b36-\U00010b38\U00010b56-\U00010b57\U00010b73-\U00010b77\U00010b92-\U00010b98\U00010b9d-\U00010ba8\U00010bb0-\U00010bff\U00010c49-\U00010c7f\U00010cb3-\U00010cbf\U00010cf3-\U00010cf9\U00010d28-\U00010d2f\U00010d3a-\U00010e5f\U00010e7f-\U00010eff\U00010f28-\U00010f2f\U00010f5a-\U00010fff\U0001104e-\U00011051\U00011070-\U0001107e\U000110c2-\U000110cc\U000110ce-\U000110cf\U000110e9-\U000110ef\U000110fa-\U000110ff\U00011135\U00011147-\U0001114f\U00011177-\U0001117f\U000111ce-\U000111cf\U000111e0\U000111f5-\U000111ff\U00011212\U0001123f-\U0001127f\U00011287\U00011289\U0001128e\U0001129e\U000112aa-\U000112af\U000112eb-\U000112ef\U000112fa-\U000112ff\U00011304\U0001130d-\U0001130e\U00011311-\U00011312\U00011329\U00011331\U00011334\U0001133a\U00011345-\U00011346\U00011349-\U0001134a\U0001134e-\U0001134f\U00011351-\U00011356\U00011358-\U0001135c\U00011364-\U00011365\U0001136d-\U0001136f\U00011375-\U000113ff\U0001145a\U0001145c\U0001145f-\U0001147f\U000114c8-\U000114cf\U000114da-\U0001157f\U000115b6-\U000115b7\U000115de-\U000115ff\U00011645-\U0001164f\U0001165a-\U0001165f\U0001166d-\U0001167f\U000116b8-\U000116bf\U000116ca-\U000116ff\U0001171b-\U0001171c\U0001172c-\U0001172f\U00011740-\U000117ff\U0001183c-\U0001189f\U000118f3-\U000118fe\U00011900-\U000119ff\U00011a48-\U00011a4f\U00011a84-\U00011a85\U00011aa3-\U00011abf\U00011af9-\U00011bff\U00011c09\U00011c37\U00011c46-\U00011c4f\U00011c6d-\U00011c6f\U00011c90-\U00011c91\U00011ca8\U00011cb7-\U00011cff\U00011d07\U00011d0a\U00011d37-\U00011d39\U00011d3b\U00011d3e\U00011d48-\U00011d4f\U00011d5a-\U00011d5f\U00011d66\U00011d69\U00011d8f\U00011d92\U00011d99-\U00011d9f\U00011daa-\U00011edf\U00011ef9-\U00011fff\U0001239a-\U000123ff\U0001246f\U00012475-\U0001247f\U00012544-\U00012fff\U0001342f-\U000143ff\U00014647-\U000167ff\U00016a39-\U00016a3f\U00016a5f\U00016a6a-\U00016a6d\U00016a70-\U00016acf\U00016aee-\U00016aef\U00016af6-\U00016aff\U00016b46-\U00016b4f\U00016b5a\U00016b62\U00016b78-\U00016b7c\U00016b90-\U00016e3f\U00016e9b-\U00016eff\U00016f45-\U00016f4f\U00016f7f-\U00016f8e\U00016fa0-\U00016fdf\U00016fe2-\U00016fff\U000187f2-\U000187ff\U00018af3-\U0001afff\U0001b11f-\U0001b16f\U0001b2fc-\U0001bbff\U0001bc6b-\U0001bc6f\U0001bc7d-\U0001bc7f\U0001bc89-\U0001bc8f\U0001bc9a-\U0001bc9b\U0001bca4-\U0001cfff\U0001d0f6-\U0001d0ff\U0001d127-\U0001d128\U0001d1e9-\U0001d1ff\U0001d246-\U0001d2df\U0001d2f4-\U0001d2ff\U0001d357-\U0001d35f\U0001d379-\U0001d3ff\U0001d455\U0001d49d\U0001d4a0-\U0001d4a1\U0001d4a3-\U0001d4a4\U0001d4a7-\U0001d4a8\U0001d4ad\U0001d4ba\U0001d4bc\U0001d4c4\U0001d506\U0001d50b-\U0001d50c\U0001d515\U0001d51d\U0001d53a\U0001d53f\U0001d545\U0001d547-\U0001d549\U0001d551\U0001d6a6-\U0001d6a7\U0001d7cc-\U0001d7cd\U0001da8c-\U0001da9a\U0001daa0\U0001dab0-\U0001dfff\U0001e007\U0001e019-\U0001e01a\U0001e022\U0001e025\U0001e02b-\U0001e7ff\U0001e8c5-\U0001e8c6\U0001e8d7-\U0001e8ff\U0001e94b-\U0001e94f\U0001e95a-\U0001e95d\U0001e960-\U0001ec70\U0001ecb5-\U0001edff\U0001ee04\U0001ee20\U0001ee23\U0001ee25-\U0001ee26\U0001ee28\U0001ee33\U0001ee38\U0001ee3a\U0001ee3c-\U0001ee41\U0001ee43-\U0001ee46\U0001ee48\U0001ee4a\U0001ee4c\U0001ee50\U0001ee53\U0001ee55-\U0001ee56\U0001ee58\U0001ee5a\U0001ee5c\U0001ee5e\U0001ee60\U0001ee63\U0001ee65-\U0001ee66\U0001ee6b\U0001ee73\U0001ee78\U0001ee7d\U0001ee7f\U0001ee8a\U0001ee9c-\U0001eea0\U0001eea4\U0001eeaa\U0001eebc-\U0001eeef\U0001eef2-\U0001efff\U0001f02c-\U0001f02f\U0001f094-\U0001f09f\U0001f0af-\U0001f0b0\U0001f0c0\U0001f0d0\U0001f0f6-\U0001f0ff\U0001f10d-\U0001f10f\U0001f16c-\U0001f16f\U0001f1ad-\U0001f1e5\U0001f203-\U0001f20f\U0001f23c-\U0001f23f\U0001f249-\U0001f24f\U0001f252-\U0001f25f\U0001f266-\U0001f2ff\U0001f6d5-\U0001f6df\U0001f6ed-\U0001f6ef\U0001f6fa-\U0001f6ff\U0001f774-\U0001f77f\U0001f7d9-\U0001f7ff\U0001f80c-\U0001f80f\U0001f848-\U0001f84f\U0001f85a-\U0001f85f\U0001f888-\U0001f88f\U0001f8ae-\U0001f8ff\U0001f90c-\U0001f90f\U0001f93f\U0001f971-\U0001f972\U0001f977-\U0001f979\U0001f97b\U0001f9a3-\U0001f9af\U0001f9ba-\U0001f9bf\U0001f9c3-\U0001f9cf\U0001fa00-\U0001fa5f\U0001fa6e-\U0001ffff\U0002a6d7-\U0002a6ff\U0002b735-\U0002b73f\U0002b81e-\U0002b81f\U0002cea2-\U0002ceaf\U0002ebe1-\U0002f7ff\U0002fa1e-\U000e0000\U000e0002-\U000e001f\U000e0080-\U000e00ff\U000e01f0-\U000effff\U000ffffe-\U000fffff\U0010fffe-\U0010ffff'
19
+
20
+ Co = '\ue000-\uf8ff\U000f0000-\U000ffffd\U00100000-\U0010fffd'
21
+
22
+ Cs = '\ud800-\udbff\\\udc00\udc01-\udfff'
23
+
24
+ Ll = 'a-z\xb5\xdf-\xf6\xf8-\xff\u0101\u0103\u0105\u0107\u0109\u010b\u010d\u010f\u0111\u0113\u0115\u0117\u0119\u011b\u011d\u011f\u0121\u0123\u0125\u0127\u0129\u012b\u012d\u012f\u0131\u0133\u0135\u0137-\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146\u0148-\u0149\u014b\u014d\u014f\u0151\u0153\u0155\u0157\u0159\u015b\u015d\u015f\u0161\u0163\u0165\u0167\u0169\u016b\u016d\u016f\u0171\u0173\u0175\u0177\u017a\u017c\u017e-\u0180\u0183\u0185\u0188\u018c-\u018d\u0192\u0195\u0199-\u019b\u019e\u01a1\u01a3\u01a5\u01a8\u01aa-\u01ab\u01ad\u01b0\u01b4\u01b6\u01b9-\u01ba\u01bd-\u01bf\u01c6\u01c9\u01cc\u01ce\u01d0\u01d2\u01d4\u01d6\u01d8\u01da\u01dc-\u01dd\u01df\u01e1\u01e3\u01e5\u01e7\u01e9\u01eb\u01ed\u01ef-\u01f0\u01f3\u01f5\u01f9\u01fb\u01fd\u01ff\u0201\u0203\u0205\u0207\u0209\u020b\u020d\u020f\u0211\u0213\u0215\u0217\u0219\u021b\u021d\u021f\u0221\u0223\u0225\u0227\u0229\u022b\u022d\u022f\u0231\u0233-\u0239\u023c\u023f-\u0240\u0242\u0247\u0249\u024b\u024d\u024f-\u0293\u0295-\u02af\u0371\u0373\u0377\u037b-\u037d\u0390\u03ac-\u03ce\u03d0-\u03d1\u03d5-\u03d7\u03d9\u03db\u03dd\u03df\u03e1\u03e3\u03e5\u03e7\u03e9\u03eb\u03ed\u03ef-\u03f3\u03f5\u03f8\u03fb-\u03fc\u0430-\u045f\u0461\u0463\u0465\u0467\u0469\u046b\u046d\u046f\u0471\u0473\u0475\u0477\u0479\u047b\u047d\u047f\u0481\u048b\u048d\u048f\u0491\u0493\u0495\u0497\u0499\u049b\u049d\u049f\u04a1\u04a3\u04a5\u04a7\u04a9\u04ab\u04ad\u04af\u04b1\u04b3\u04b5\u04b7\u04b9\u04bb\u04bd\u04bf\u04c2\u04c4\u04c6\u04c8\u04ca\u04cc\u04ce-\u04cf\u04d1\u04d3\u04d5\u04d7\u04d9\u04db\u04dd\u04df\u04e1\u04e3\u04e5\u04e7\u04e9\u04eb\u04ed\u04ef\u04f1\u04f3\u04f5\u04f7\u04f9\u04fb\u04fd\u04ff\u0501\u0503\u0505\u0507\u0509\u050b\u050d\u050f\u0511\u0513\u0515\u0517\u0519\u051b\u051d\u051f\u0521\u0523\u0525\u0527\u0529\u052b\u052d\u052f\u0560-\u0588\u10d0-\u10fa\u10fd-\u10ff\u13f8-\u13fd\u1c80-\u1c88\u1d00-\u1d2b\u1d6b-\u1d77\u1d79-\u1d9a\u1e01\u1e03\u1e05\u1e07\u1e09\u1e0b\u1e0d\u1e0f\u1e11\u1e13\u1e15\u1e17\u1e19\u1e1b\u1e1d\u1e1f\u1e21\u1e23\u1e25\u1e27\u1e29\u1e2b\u1e2d\u1e2f\u1e31\u1e33\u1e35\u1e37\u1e39\u1e3b\u1e3d\u1e3f\u1e41\u1e43\u1e45\u1e47\u1e49\u1e4b\u1e4d\u1e4f\u1e51\u1e53\u1e55\u1e57\u1e59\u1e5b\u1e5d\u1e5f\u1e61\u1e63\u1e65\u1e67\u1e69\u1e6b\u1e6d\u1e6f\u1e71\u1e73\u1e75\u1e77\u1e79\u1e7b\u1e7d\u1e7f\u1e81\u1e83\u1e85\u1e87\u1e89\u1e8b\u1e8d\u1e8f\u1e91\u1e93\u1e95-\u1e9d\u1e9f\u1ea1\u1ea3\u1ea5\u1ea7\u1ea9\u1eab\u1ead\u1eaf\u1eb1\u1eb3\u1eb5\u1eb7\u1eb9\u1ebb\u1ebd\u1ebf\u1ec1\u1ec3\u1ec5\u1ec7\u1ec9\u1ecb\u1ecd\u1ecf\u1ed1\u1ed3\u1ed5\u1ed7\u1ed9\u1edb\u1edd\u1edf\u1ee1\u1ee3\u1ee5\u1ee7\u1ee9\u1eeb\u1eed\u1eef\u1ef1\u1ef3\u1ef5\u1ef7\u1ef9\u1efb\u1efd\u1eff-\u1f07\u1f10-\u1f15\u1f20-\u1f27\u1f30-\u1f37\u1f40-\u1f45\u1f50-\u1f57\u1f60-\u1f67\u1f70-\u1f7d\u1f80-\u1f87\u1f90-\u1f97\u1fa0-\u1fa7\u1fb0-\u1fb4\u1fb6-\u1fb7\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fc7\u1fd0-\u1fd3\u1fd6-\u1fd7\u1fe0-\u1fe7\u1ff2-\u1ff4\u1ff6-\u1ff7\u210a\u210e-\u210f\u2113\u212f\u2134\u2139\u213c-\u213d\u2146-\u2149\u214e\u2184\u2c30-\u2c5e\u2c61\u2c65-\u2c66\u2c68\u2c6a\u2c6c\u2c71\u2c73-\u2c74\u2c76-\u2c7b\u2c81\u2c83\u2c85\u2c87\u2c89\u2c8b\u2c8d\u2c8f\u2c91\u2c93\u2c95\u2c97\u2c99\u2c9b\u2c9d\u2c9f\u2ca1\u2ca3\u2ca5\u2ca7\u2ca9\u2cab\u2cad\u2caf\u2cb1\u2cb3\u2cb5\u2cb7\u2cb9\u2cbb\u2cbd\u2cbf\u2cc1\u2cc3\u2cc5\u2cc7\u2cc9\u2ccb\u2ccd\u2ccf\u2cd1\u2cd3\u2cd5\u2cd7\u2cd9\u2cdb\u2cdd\u2cdf\u2ce1\u2ce3-\u2ce4\u2cec\u2cee\u2cf3\u2d00-\u2d25\u2d27\u2d2d\ua641\ua643\ua645\ua647\ua649\ua64b\ua64d\ua64f\ua651\ua653\ua655\ua657\ua659\ua65b\ua65d\ua65f\ua661\ua663\ua665\ua667\ua669\ua66b\ua66d\ua681\ua683\ua685\ua687\ua689\ua68b\ua68d\ua68f\ua691\ua693\ua695\ua697\ua699\ua69b\ua723\ua725\ua727\ua729\ua72b\ua72d\ua72f-\ua731\ua733\ua735\ua737\ua739\ua73b\ua73d\ua73f\ua741\ua743\ua745\ua747\ua749\ua74b\ua74d\ua74f\ua751\ua753\ua755\ua757\ua759\ua75b\ua75d\ua75f\ua761\ua763\ua765\ua767\ua769\ua76b\ua76d\ua76f\ua771-\ua778\ua77a\ua77c\ua77f\ua781\ua783\ua785\ua787\ua78c\ua78e\ua791\ua793-\ua795\ua797\ua799\ua79b\ua79d\ua79f\ua7a1\ua7a3\ua7a5\ua7a7\ua7a9\ua7af\ua7b5\ua7b7\ua7b9\ua7fa\uab30-\uab5a\uab60-\uab65\uab70-\uabbf\ufb00-\ufb06\ufb13-\ufb17\uff41-\uff5a\U00010428-\U0001044f\U000104d8-\U000104fb\U00010cc0-\U00010cf2\U000118c0-\U000118df\U00016e60-\U00016e7f\U0001d41a-\U0001d433\U0001d44e-\U0001d454\U0001d456-\U0001d467\U0001d482-\U0001d49b\U0001d4b6-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d4cf\U0001d4ea-\U0001d503\U0001d51e-\U0001d537\U0001d552-\U0001d56b\U0001d586-\U0001d59f\U0001d5ba-\U0001d5d3\U0001d5ee-\U0001d607\U0001d622-\U0001d63b\U0001d656-\U0001d66f\U0001d68a-\U0001d6a5\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6e1\U0001d6fc-\U0001d714\U0001d716-\U0001d71b\U0001d736-\U0001d74e\U0001d750-\U0001d755\U0001d770-\U0001d788\U0001d78a-\U0001d78f\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7c9\U0001d7cb\U0001e922-\U0001e943'
25
+
26
+ Lm = '\u02b0-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0374\u037a\u0559\u0640\u06e5-\u06e6\u07f4-\u07f5\u07fa\u081a\u0824\u0828\u0971\u0e46\u0ec6\u10fc\u17d7\u1843\u1aa7\u1c78-\u1c7d\u1d2c-\u1d6a\u1d78\u1d9b-\u1dbf\u2071\u207f\u2090-\u209c\u2c7c-\u2c7d\u2d6f\u2e2f\u3005\u3031-\u3035\u303b\u309d-\u309e\u30fc-\u30fe\ua015\ua4f8-\ua4fd\ua60c\ua67f\ua69c-\ua69d\ua717-\ua71f\ua770\ua788\ua7f8-\ua7f9\ua9cf\ua9e6\uaa70\uaadd\uaaf3-\uaaf4\uab5c-\uab5f\uff70\uff9e-\uff9f\U00016b40-\U00016b43\U00016f93-\U00016f9f\U00016fe0-\U00016fe1'
27
+
28
+ Lo = '\xaa\xba\u01bb\u01c0-\u01c3\u0294\u05d0-\u05ea\u05ef-\u05f2\u0620-\u063f\u0641-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u0800-\u0815\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u1100-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16f1-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17dc\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c77\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5-\u1cf6\u2135-\u2138\u2d30-\u2d67\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3006\u303c\u3041-\u3096\u309f\u30a1-\u30fa\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua014\ua016-\ua48c\ua4d0-\ua4f7\ua500-\ua60b\ua610-\ua61f\ua62a-\ua62b\ua66e\ua6a0-\ua6e5\ua78f\ua7f7\ua7fb-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9e0-\ua9e4\ua9e7-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa6f\uaa71-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadc\uaae0-\uaaea\uaaf2\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff66-\uff6f\uff71-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U00010340\U00010342-\U00010349\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U00010450-\U0001049d\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010d00-\U00010d23\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f45\U00011003-\U00011037\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144\U00011150-\U00011172\U00011176\U00011183-\U000111b2\U000111c1-\U000111c4\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U0001122b\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112de\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133d\U00011350\U0001135d-\U00011361\U00011400-\U00011434\U00011447-\U0001144a\U00011480-\U000114af\U000114c4-\U000114c5\U000114c7\U00011580-\U000115ae\U000115d8-\U000115db\U00011600-\U0001162f\U00011644\U00011680-\U000116aa\U00011700-\U0001171a\U00011800-\U0001182b\U000118ff\U00011a00\U00011a0b-\U00011a32\U00011a3a\U00011a50\U00011a5c-\U00011a83\U00011a86-\U00011a89\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c2e\U00011c40\U00011c72-\U00011c8f\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d30\U00011d46\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d89\U00011d98\U00011ee0-\U00011ef2\U00012000-\U00012399\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016ad0-\U00016aed\U00016b00-\U00016b2f\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016f00-\U00016f44\U00016f50\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001e800-\U0001e8c4\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d'
29
+
30
+ Lt = '\u01c5\u01c8\u01cb\u01f2\u1f88-\u1f8f\u1f98-\u1f9f\u1fa8-\u1faf\u1fbc\u1fcc\u1ffc'
31
+
32
+ Lu = 'A-Z\xc0-\xd6\xd8-\xde\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0139\u013b\u013d\u013f\u0141\u0143\u0145\u0147\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176\u0178-\u0179\u017b\u017d\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018b\u018e-\u0191\u0193-\u0194\u0196-\u0198\u019c-\u019d\u019f-\u01a0\u01a2\u01a4\u01a6-\u01a7\u01a9\u01ac\u01ae-\u01af\u01b1-\u01b3\u01b5\u01b7-\u01b8\u01bc\u01c4\u01c7\u01ca\u01cd\u01cf\u01d1\u01d3\u01d5\u01d7\u01d9\u01db\u01de\u01e0\u01e2\u01e4\u01e6\u01e8\u01ea\u01ec\u01ee\u01f1\u01f4\u01f6-\u01f8\u01fa\u01fc\u01fe\u0200\u0202\u0204\u0206\u0208\u020a\u020c\u020e\u0210\u0212\u0214\u0216\u0218\u021a\u021c\u021e\u0220\u0222\u0224\u0226\u0228\u022a\u022c\u022e\u0230\u0232\u023a-\u023b\u023d-\u023e\u0241\u0243-\u0246\u0248\u024a\u024c\u024e\u0370\u0372\u0376\u037f\u0386\u0388-\u038a\u038c\u038e-\u038f\u0391-\u03a1\u03a3-\u03ab\u03cf\u03d2-\u03d4\u03d8\u03da\u03dc\u03de\u03e0\u03e2\u03e4\u03e6\u03e8\u03ea\u03ec\u03ee\u03f4\u03f7\u03f9-\u03fa\u03fd-\u042f\u0460\u0462\u0464\u0466\u0468\u046a\u046c\u046e\u0470\u0472\u0474\u0476\u0478\u047a\u047c\u047e\u0480\u048a\u048c\u048e\u0490\u0492\u0494\u0496\u0498\u049a\u049c\u049e\u04a0\u04a2\u04a4\u04a6\u04a8\u04aa\u04ac\u04ae\u04b0\u04b2\u04b4\u04b6\u04b8\u04ba\u04bc\u04be\u04c0-\u04c1\u04c3\u04c5\u04c7\u04c9\u04cb\u04cd\u04d0\u04d2\u04d4\u04d6\u04d8\u04da\u04dc\u04de\u04e0\u04e2\u04e4\u04e6\u04e8\u04ea\u04ec\u04ee\u04f0\u04f2\u04f4\u04f6\u04f8\u04fa\u04fc\u04fe\u0500\u0502\u0504\u0506\u0508\u050a\u050c\u050e\u0510\u0512\u0514\u0516\u0518\u051a\u051c\u051e\u0520\u0522\u0524\u0526\u0528\u052a\u052c\u052e\u0531-\u0556\u10a0-\u10c5\u10c7\u10cd\u13a0-\u13f5\u1c90-\u1cba\u1cbd-\u1cbf\u1e00\u1e02\u1e04\u1e06\u1e08\u1e0a\u1e0c\u1e0e\u1e10\u1e12\u1e14\u1e16\u1e18\u1e1a\u1e1c\u1e1e\u1e20\u1e22\u1e24\u1e26\u1e28\u1e2a\u1e2c\u1e2e\u1e30\u1e32\u1e34\u1e36\u1e38\u1e3a\u1e3c\u1e3e\u1e40\u1e42\u1e44\u1e46\u1e48\u1e4a\u1e4c\u1e4e\u1e50\u1e52\u1e54\u1e56\u1e58\u1e5a\u1e5c\u1e5e\u1e60\u1e62\u1e64\u1e66\u1e68\u1e6a\u1e6c\u1e6e\u1e70\u1e72\u1e74\u1e76\u1e78\u1e7a\u1e7c\u1e7e\u1e80\u1e82\u1e84\u1e86\u1e88\u1e8a\u1e8c\u1e8e\u1e90\u1e92\u1e94\u1e9e\u1ea0\u1ea2\u1ea4\u1ea6\u1ea8\u1eaa\u1eac\u1eae\u1eb0\u1eb2\u1eb4\u1eb6\u1eb8\u1eba\u1ebc\u1ebe\u1ec0\u1ec2\u1ec4\u1ec6\u1ec8\u1eca\u1ecc\u1ece\u1ed0\u1ed2\u1ed4\u1ed6\u1ed8\u1eda\u1edc\u1ede\u1ee0\u1ee2\u1ee4\u1ee6\u1ee8\u1eea\u1eec\u1eee\u1ef0\u1ef2\u1ef4\u1ef6\u1ef8\u1efa\u1efc\u1efe\u1f08-\u1f0f\u1f18-\u1f1d\u1f28-\u1f2f\u1f38-\u1f3f\u1f48-\u1f4d\u1f59\u1f5b\u1f5d\u1f5f\u1f68-\u1f6f\u1fb8-\u1fbb\u1fc8-\u1fcb\u1fd8-\u1fdb\u1fe8-\u1fec\u1ff8-\u1ffb\u2102\u2107\u210b-\u210d\u2110-\u2112\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u2130-\u2133\u213e-\u213f\u2145\u2183\u2c00-\u2c2e\u2c60\u2c62-\u2c64\u2c67\u2c69\u2c6b\u2c6d-\u2c70\u2c72\u2c75\u2c7e-\u2c80\u2c82\u2c84\u2c86\u2c88\u2c8a\u2c8c\u2c8e\u2c90\u2c92\u2c94\u2c96\u2c98\u2c9a\u2c9c\u2c9e\u2ca0\u2ca2\u2ca4\u2ca6\u2ca8\u2caa\u2cac\u2cae\u2cb0\u2cb2\u2cb4\u2cb6\u2cb8\u2cba\u2cbc\u2cbe\u2cc0\u2cc2\u2cc4\u2cc6\u2cc8\u2cca\u2ccc\u2cce\u2cd0\u2cd2\u2cd4\u2cd6\u2cd8\u2cda\u2cdc\u2cde\u2ce0\u2ce2\u2ceb\u2ced\u2cf2\ua640\ua642\ua644\ua646\ua648\ua64a\ua64c\ua64e\ua650\ua652\ua654\ua656\ua658\ua65a\ua65c\ua65e\ua660\ua662\ua664\ua666\ua668\ua66a\ua66c\ua680\ua682\ua684\ua686\ua688\ua68a\ua68c\ua68e\ua690\ua692\ua694\ua696\ua698\ua69a\ua722\ua724\ua726\ua728\ua72a\ua72c\ua72e\ua732\ua734\ua736\ua738\ua73a\ua73c\ua73e\ua740\ua742\ua744\ua746\ua748\ua74a\ua74c\ua74e\ua750\ua752\ua754\ua756\ua758\ua75a\ua75c\ua75e\ua760\ua762\ua764\ua766\ua768\ua76a\ua76c\ua76e\ua779\ua77b\ua77d-\ua77e\ua780\ua782\ua784\ua786\ua78b\ua78d\ua790\ua792\ua796\ua798\ua79a\ua79c\ua79e\ua7a0\ua7a2\ua7a4\ua7a6\ua7a8\ua7aa-\ua7ae\ua7b0-\ua7b4\ua7b6\ua7b8\uff21-\uff3a\U00010400-\U00010427\U000104b0-\U000104d3\U00010c80-\U00010cb2\U000118a0-\U000118bf\U00016e40-\U00016e5f\U0001d400-\U0001d419\U0001d434-\U0001d44d\U0001d468-\U0001d481\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b5\U0001d4d0-\U0001d4e9\U0001d504-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d538-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d56c-\U0001d585\U0001d5a0-\U0001d5b9\U0001d5d4-\U0001d5ed\U0001d608-\U0001d621\U0001d63c-\U0001d655\U0001d670-\U0001d689\U0001d6a8-\U0001d6c0\U0001d6e2-\U0001d6fa\U0001d71c-\U0001d734\U0001d756-\U0001d76e\U0001d790-\U0001d7a8\U0001d7ca\U0001e900-\U0001e921'
33
+
34
+ Mc = '\u0903\u093b\u093e-\u0940\u0949-\u094c\u094e-\u094f\u0982-\u0983\u09be-\u09c0\u09c7-\u09c8\u09cb-\u09cc\u09d7\u0a03\u0a3e-\u0a40\u0a83\u0abe-\u0ac0\u0ac9\u0acb-\u0acc\u0b02-\u0b03\u0b3e\u0b40\u0b47-\u0b48\u0b4b-\u0b4c\u0b57\u0bbe-\u0bbf\u0bc1-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcc\u0bd7\u0c01-\u0c03\u0c41-\u0c44\u0c82-\u0c83\u0cbe\u0cc0-\u0cc4\u0cc7-\u0cc8\u0cca-\u0ccb\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d40\u0d46-\u0d48\u0d4a-\u0d4c\u0d57\u0d82-\u0d83\u0dcf-\u0dd1\u0dd8-\u0ddf\u0df2-\u0df3\u0f3e-\u0f3f\u0f7f\u102b-\u102c\u1031\u1038\u103b-\u103c\u1056-\u1057\u1062-\u1064\u1067-\u106d\u1083-\u1084\u1087-\u108c\u108f\u109a-\u109c\u17b6\u17be-\u17c5\u17c7-\u17c8\u1923-\u1926\u1929-\u192b\u1930-\u1931\u1933-\u1938\u1a19-\u1a1a\u1a55\u1a57\u1a61\u1a63-\u1a64\u1a6d-\u1a72\u1b04\u1b35\u1b3b\u1b3d-\u1b41\u1b43-\u1b44\u1b82\u1ba1\u1ba6-\u1ba7\u1baa\u1be7\u1bea-\u1bec\u1bee\u1bf2-\u1bf3\u1c24-\u1c2b\u1c34-\u1c35\u1ce1\u1cf2-\u1cf3\u1cf7\u302e-\u302f\ua823-\ua824\ua827\ua880-\ua881\ua8b4-\ua8c3\ua952-\ua953\ua983\ua9b4-\ua9b5\ua9ba-\ua9bb\ua9bd-\ua9c0\uaa2f-\uaa30\uaa33-\uaa34\uaa4d\uaa7b\uaa7d\uaaeb\uaaee-\uaaef\uaaf5\uabe3-\uabe4\uabe6-\uabe7\uabe9-\uabea\uabec\U00011000\U00011002\U00011082\U000110b0-\U000110b2\U000110b7-\U000110b8\U0001112c\U00011145-\U00011146\U00011182\U000111b3-\U000111b5\U000111bf-\U000111c0\U0001122c-\U0001122e\U00011232-\U00011233\U00011235\U000112e0-\U000112e2\U00011302-\U00011303\U0001133e-\U0001133f\U00011341-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011357\U00011362-\U00011363\U00011435-\U00011437\U00011440-\U00011441\U00011445\U000114b0-\U000114b2\U000114b9\U000114bb-\U000114be\U000114c1\U000115af-\U000115b1\U000115b8-\U000115bb\U000115be\U00011630-\U00011632\U0001163b-\U0001163c\U0001163e\U000116ac\U000116ae-\U000116af\U000116b6\U00011720-\U00011721\U00011726\U0001182c-\U0001182e\U00011838\U00011a39\U00011a57-\U00011a58\U00011a97\U00011c2f\U00011c3e\U00011ca9\U00011cb1\U00011cb4\U00011d8a-\U00011d8e\U00011d93-\U00011d94\U00011d96\U00011ef5-\U00011ef6\U00016f51-\U00016f7e\U0001d165-\U0001d166\U0001d16d-\U0001d172'
35
+
36
+ Me = '\u0488-\u0489\u1abe\u20dd-\u20e0\u20e2-\u20e4\ua670-\ua672'
37
+
38
+ Mn = '\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09c1-\u09c4\u09cd\u09e2-\u09e3\u09fe\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0afa-\u0aff\u0b01\u0b3c\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b62-\u0b63\u0b82\u0bc0\u0bcd\u0c00\u0c04\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc6\u0ccc-\u0ccd\u0ce2-\u0ce3\u0d00-\u0d01\u0d3b-\u0d3c\u0d41-\u0d44\u0d4d\u0d62-\u0d63\u0dca\u0dd2-\u0dd4\u0dd6\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u1885-\u1886\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u3099-\u309a\ua66f\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4-\ua8c5\ua8e0-\ua8f1\ua8ff\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\U000101fd\U000102e0\U00010376-\U0001037a\U00010a01-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a0f\U00010a38-\U00010a3a\U00010a3f\U00010ae5-\U00010ae6\U00010d24-\U00010d27\U00010f46-\U00010f50\U00011001\U00011038-\U00011046\U0001107f-\U00011081\U000110b3-\U000110b6\U000110b9-\U000110ba\U00011100-\U00011102\U00011127-\U0001112b\U0001112d-\U00011134\U00011173\U00011180-\U00011181\U000111b6-\U000111be\U000111c9-\U000111cc\U0001122f-\U00011231\U00011234\U00011236-\U00011237\U0001123e\U000112df\U000112e3-\U000112ea\U00011300-\U00011301\U0001133b-\U0001133c\U00011340\U00011366-\U0001136c\U00011370-\U00011374\U00011438-\U0001143f\U00011442-\U00011444\U00011446\U0001145e\U000114b3-\U000114b8\U000114ba\U000114bf-\U000114c0\U000114c2-\U000114c3\U000115b2-\U000115b5\U000115bc-\U000115bd\U000115bf-\U000115c0\U000115dc-\U000115dd\U00011633-\U0001163a\U0001163d\U0001163f-\U00011640\U000116ab\U000116ad\U000116b0-\U000116b5\U000116b7\U0001171d-\U0001171f\U00011722-\U00011725\U00011727-\U0001172b\U0001182f-\U00011837\U00011839-\U0001183a\U00011a01-\U00011a0a\U00011a33-\U00011a38\U00011a3b-\U00011a3e\U00011a47\U00011a51-\U00011a56\U00011a59-\U00011a5b\U00011a8a-\U00011a96\U00011a98-\U00011a99\U00011c30-\U00011c36\U00011c38-\U00011c3d\U00011c3f\U00011c92-\U00011ca7\U00011caa-\U00011cb0\U00011cb2-\U00011cb3\U00011cb5-\U00011cb6\U00011d31-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d45\U00011d47\U00011d90-\U00011d91\U00011d95\U00011d97\U00011ef3-\U00011ef4\U00016af0-\U00016af4\U00016b30-\U00016b36\U00016f8f-\U00016f92\U0001bc9d-\U0001bc9e\U0001d167-\U0001d169\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e8d0-\U0001e8d6\U0001e944-\U0001e94a\U000e0100-\U000e01ef'
39
+
40
+ Nd = '0-9\u0660-\u0669\u06f0-\u06f9\u07c0-\u07c9\u0966-\u096f\u09e6-\u09ef\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be6-\u0bef\u0c66-\u0c6f\u0ce6-\u0cef\u0d66-\u0d6f\u0de6-\u0def\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29\u1040-\u1049\u1090-\u1099\u17e0-\u17e9\u1810-\u1819\u1946-\u194f\u19d0-\u19d9\u1a80-\u1a89\u1a90-\u1a99\u1b50-\u1b59\u1bb0-\u1bb9\u1c40-\u1c49\u1c50-\u1c59\ua620-\ua629\ua8d0-\ua8d9\ua900-\ua909\ua9d0-\ua9d9\ua9f0-\ua9f9\uaa50-\uaa59\uabf0-\uabf9\uff10-\uff19\U000104a0-\U000104a9\U00010d30-\U00010d39\U00011066-\U0001106f\U000110f0-\U000110f9\U00011136-\U0001113f\U000111d0-\U000111d9\U000112f0-\U000112f9\U00011450-\U00011459\U000114d0-\U000114d9\U00011650-\U00011659\U000116c0-\U000116c9\U00011730-\U00011739\U000118e0-\U000118e9\U00011c50-\U00011c59\U00011d50-\U00011d59\U00011da0-\U00011da9\U00016a60-\U00016a69\U00016b50-\U00016b59\U0001d7ce-\U0001d7ff\U0001e950-\U0001e959'
41
+
42
+ Nl = '\u16ee-\u16f0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303a\ua6e6-\ua6ef\U00010140-\U00010174\U00010341\U0001034a\U000103d1-\U000103d5\U00012400-\U0001246e'
43
+
44
+ No = '\xb2-\xb3\xb9\xbc-\xbe\u09f4-\u09f9\u0b72-\u0b77\u0bf0-\u0bf2\u0c78-\u0c7e\u0d58-\u0d5e\u0d70-\u0d78\u0f2a-\u0f33\u1369-\u137c\u17f0-\u17f9\u19da\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215f\u2189\u2460-\u249b\u24ea-\u24ff\u2776-\u2793\u2cfd\u3192-\u3195\u3220-\u3229\u3248-\u324f\u3251-\u325f\u3280-\u3289\u32b1-\u32bf\ua830-\ua835\U00010107-\U00010133\U00010175-\U00010178\U0001018a-\U0001018b\U000102e1-\U000102fb\U00010320-\U00010323\U00010858-\U0001085f\U00010879-\U0001087f\U000108a7-\U000108af\U000108fb-\U000108ff\U00010916-\U0001091b\U000109bc-\U000109bd\U000109c0-\U000109cf\U000109d2-\U000109ff\U00010a40-\U00010a48\U00010a7d-\U00010a7e\U00010a9d-\U00010a9f\U00010aeb-\U00010aef\U00010b58-\U00010b5f\U00010b78-\U00010b7f\U00010ba9-\U00010baf\U00010cfa-\U00010cff\U00010e60-\U00010e7e\U00010f1d-\U00010f26\U00010f51-\U00010f54\U00011052-\U00011065\U000111e1-\U000111f4\U0001173a-\U0001173b\U000118ea-\U000118f2\U00011c5a-\U00011c6c\U00016b5b-\U00016b61\U00016e80-\U00016e96\U0001d2e0-\U0001d2f3\U0001d360-\U0001d378\U0001e8c7-\U0001e8cf\U0001ec71-\U0001ecab\U0001ecad-\U0001ecaf\U0001ecb1-\U0001ecb4\U0001f100-\U0001f10c'
45
+
46
+ Pc = '_\u203f-\u2040\u2054\ufe33-\ufe34\ufe4d-\ufe4f\uff3f'
47
+
48
+ Pd = '\\-\u058a\u05be\u1400\u1806\u2010-\u2015\u2e17\u2e1a\u2e3a-\u2e3b\u2e40\u301c\u3030\u30a0\ufe31-\ufe32\ufe58\ufe63\uff0d'
49
+
50
+ Pe = ')\\]}\u0f3b\u0f3d\u169c\u2046\u207e\u208e\u2309\u230b\u232a\u2769\u276b\u276d\u276f\u2771\u2773\u2775\u27c6\u27e7\u27e9\u27eb\u27ed\u27ef\u2984\u2986\u2988\u298a\u298c\u298e\u2990\u2992\u2994\u2996\u2998\u29d9\u29db\u29fd\u2e23\u2e25\u2e27\u2e29\u3009\u300b\u300d\u300f\u3011\u3015\u3017\u3019\u301b\u301e-\u301f\ufd3e\ufe18\ufe36\ufe38\ufe3a\ufe3c\ufe3e\ufe40\ufe42\ufe44\ufe48\ufe5a\ufe5c\ufe5e\uff09\uff3d\uff5d\uff60\uff63'
51
+
52
+ Pf = '\xbb\u2019\u201d\u203a\u2e03\u2e05\u2e0a\u2e0d\u2e1d\u2e21'
53
+
54
+ Pi = '\xab\u2018\u201b-\u201c\u201f\u2039\u2e02\u2e04\u2e09\u2e0c\u2e1c\u2e20'
55
+
56
+ Po = "!-#%-'*,.-/:-;?-@\\\\\xa1\xa7\xb6-\xb7\xbf\u037e\u0387\u055a-\u055f\u0589\u05c0\u05c3\u05c6\u05f3-\u05f4\u0609-\u060a\u060c-\u060d\u061b\u061e-\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964-\u0965\u0970\u09fd\u0a76\u0af0\u0c84\u0df4\u0e4f\u0e5a-\u0e5b\u0f04-\u0f12\u0f14\u0f85\u0fd0-\u0fd4\u0fd9-\u0fda\u104a-\u104f\u10fb\u1360-\u1368\u166d-\u166e\u16eb-\u16ed\u1735-\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u1805\u1807-\u180a\u1944-\u1945\u1a1e-\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e-\u1c7f\u1cc0-\u1cc7\u1cd3\u2016-\u2017\u2020-\u2027\u2030-\u2038\u203b-\u203e\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205e\u2cf9-\u2cfc\u2cfe-\u2cff\u2d70\u2e00-\u2e01\u2e06-\u2e08\u2e0b\u2e0e-\u2e16\u2e18-\u2e19\u2e1b\u2e1e-\u2e1f\u2e2a-\u2e2e\u2e30-\u2e39\u2e3c-\u2e3f\u2e41\u2e43-\u2e4e\u3001-\u3003\u303d\u30fb\ua4fe-\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce-\ua8cf\ua8f8-\ua8fa\ua8fc\ua92e-\ua92f\ua95f\ua9c1-\ua9cd\ua9de-\ua9df\uaa5c-\uaa5f\uaade-\uaadf\uaaf0-\uaaf1\uabeb\ufe10-\ufe16\ufe19\ufe30\ufe45-\ufe46\ufe49-\ufe4c\ufe50-\ufe52\ufe54-\ufe57\ufe5f-\ufe61\ufe68\ufe6a-\ufe6b\uff01-\uff03\uff05-\uff07\uff0a\uff0c\uff0e-\uff0f\uff1a-\uff1b\uff1f-\uff20\uff3c\uff61\uff64-\uff65\U00010100-\U00010102\U0001039f\U000103d0\U0001056f\U00010857\U0001091f\U0001093f\U00010a50-\U00010a58\U00010a7f\U00010af0-\U00010af6\U00010b39-\U00010b3f\U00010b99-\U00010b9c\U00010f55-\U00010f59\U00011047-\U0001104d\U000110bb-\U000110bc\U000110be-\U000110c1\U00011140-\U00011143\U00011174-\U00011175\U000111c5-\U000111c8\U000111cd\U000111db\U000111dd-\U000111df\U00011238-\U0001123d\U000112a9\U0001144b-\U0001144f\U0001145b\U0001145d\U000114c6\U000115c1-\U000115d7\U00011641-\U00011643\U00011660-\U0001166c\U0001173c-\U0001173e\U0001183b\U00011a3f-\U00011a46\U00011a9a-\U00011a9c\U00011a9e-\U00011aa2\U00011c41-\U00011c45\U00011c70-\U00011c71\U00011ef7-\U00011ef8\U00012470-\U00012474\U00016a6e-\U00016a6f\U00016af5\U00016b37-\U00016b3b\U00016b44\U00016e97-\U00016e9a\U0001bc9f\U0001da87-\U0001da8b\U0001e95e-\U0001e95f"
57
+
58
+ Ps = '(\\[{\u0f3a\u0f3c\u169b\u201a\u201e\u2045\u207d\u208d\u2308\u230a\u2329\u2768\u276a\u276c\u276e\u2770\u2772\u2774\u27c5\u27e6\u27e8\u27ea\u27ec\u27ee\u2983\u2985\u2987\u2989\u298b\u298d\u298f\u2991\u2993\u2995\u2997\u29d8\u29da\u29fc\u2e22\u2e24\u2e26\u2e28\u2e42\u3008\u300a\u300c\u300e\u3010\u3014\u3016\u3018\u301a\u301d\ufd3f\ufe17\ufe35\ufe37\ufe39\ufe3b\ufe3d\ufe3f\ufe41\ufe43\ufe47\ufe59\ufe5b\ufe5d\uff08\uff3b\uff5b\uff5f\uff62'
59
+
60
+ Sc = '$\xa2-\xa5\u058f\u060b\u07fe-\u07ff\u09f2-\u09f3\u09fb\u0af1\u0bf9\u0e3f\u17db\u20a0-\u20bf\ua838\ufdfc\ufe69\uff04\uffe0-\uffe1\uffe5-\uffe6\U0001ecb0'
61
+
62
+ Sk = '\\^`\xa8\xaf\xb4\xb8\u02c2-\u02c5\u02d2-\u02df\u02e5-\u02eb\u02ed\u02ef-\u02ff\u0375\u0384-\u0385\u1fbd\u1fbf-\u1fc1\u1fcd-\u1fcf\u1fdd-\u1fdf\u1fed-\u1fef\u1ffd-\u1ffe\u309b-\u309c\ua700-\ua716\ua720-\ua721\ua789-\ua78a\uab5b\ufbb2-\ufbc1\uff3e\uff40\uffe3\U0001f3fb-\U0001f3ff'
63
+
64
+ Sm = '+<->|~\xac\xb1\xd7\xf7\u03f6\u0606-\u0608\u2044\u2052\u207a-\u207c\u208a-\u208c\u2118\u2140-\u2144\u214b\u2190-\u2194\u219a-\u219b\u21a0\u21a3\u21a6\u21ae\u21ce-\u21cf\u21d2\u21d4\u21f4-\u22ff\u2320-\u2321\u237c\u239b-\u23b3\u23dc-\u23e1\u25b7\u25c1\u25f8-\u25ff\u266f\u27c0-\u27c4\u27c7-\u27e5\u27f0-\u27ff\u2900-\u2982\u2999-\u29d7\u29dc-\u29fb\u29fe-\u2aff\u2b30-\u2b44\u2b47-\u2b4c\ufb29\ufe62\ufe64-\ufe66\uff0b\uff1c-\uff1e\uff5c\uff5e\uffe2\uffe9-\uffec\U0001d6c1\U0001d6db\U0001d6fb\U0001d715\U0001d735\U0001d74f\U0001d76f\U0001d789\U0001d7a9\U0001d7c3\U0001eef0-\U0001eef1'
65
+
66
+ So = '\xa6\xa9\xae\xb0\u0482\u058d-\u058e\u060e-\u060f\u06de\u06e9\u06fd-\u06fe\u07f6\u09fa\u0b70\u0bf3-\u0bf8\u0bfa\u0c7f\u0d4f\u0d79\u0f01-\u0f03\u0f13\u0f15-\u0f17\u0f1a-\u0f1f\u0f34\u0f36\u0f38\u0fbe-\u0fc5\u0fc7-\u0fcc\u0fce-\u0fcf\u0fd5-\u0fd8\u109e-\u109f\u1390-\u1399\u1940\u19de-\u19ff\u1b61-\u1b6a\u1b74-\u1b7c\u2100-\u2101\u2103-\u2106\u2108-\u2109\u2114\u2116-\u2117\u211e-\u2123\u2125\u2127\u2129\u212e\u213a-\u213b\u214a\u214c-\u214d\u214f\u218a-\u218b\u2195-\u2199\u219c-\u219f\u21a1-\u21a2\u21a4-\u21a5\u21a7-\u21ad\u21af-\u21cd\u21d0-\u21d1\u21d3\u21d5-\u21f3\u2300-\u2307\u230c-\u231f\u2322-\u2328\u232b-\u237b\u237d-\u239a\u23b4-\u23db\u23e2-\u2426\u2440-\u244a\u249c-\u24e9\u2500-\u25b6\u25b8-\u25c0\u25c2-\u25f7\u2600-\u266e\u2670-\u2767\u2794-\u27bf\u2800-\u28ff\u2b00-\u2b2f\u2b45-\u2b46\u2b4d-\u2b73\u2b76-\u2b95\u2b98-\u2bc8\u2bca-\u2bfe\u2ce5-\u2cea\u2e80-\u2e99\u2e9b-\u2ef3\u2f00-\u2fd5\u2ff0-\u2ffb\u3004\u3012-\u3013\u3020\u3036-\u3037\u303e-\u303f\u3190-\u3191\u3196-\u319f\u31c0-\u31e3\u3200-\u321e\u322a-\u3247\u3250\u3260-\u327f\u328a-\u32b0\u32c0-\u32fe\u3300-\u33ff\u4dc0-\u4dff\ua490-\ua4c6\ua828-\ua82b\ua836-\ua837\ua839\uaa77-\uaa79\ufdfd\uffe4\uffe8\uffed-\uffee\ufffc-\ufffd\U00010137-\U0001013f\U00010179-\U00010189\U0001018c-\U0001018e\U00010190-\U0001019b\U000101a0\U000101d0-\U000101fc\U00010877-\U00010878\U00010ac8\U0001173f\U00016b3c-\U00016b3f\U00016b45\U0001bc9c\U0001d000-\U0001d0f5\U0001d100-\U0001d126\U0001d129-\U0001d164\U0001d16a-\U0001d16c\U0001d183-\U0001d184\U0001d18c-\U0001d1a9\U0001d1ae-\U0001d1e8\U0001d200-\U0001d241\U0001d245\U0001d300-\U0001d356\U0001d800-\U0001d9ff\U0001da37-\U0001da3a\U0001da6d-\U0001da74\U0001da76-\U0001da83\U0001da85-\U0001da86\U0001ecac\U0001f000-\U0001f02b\U0001f030-\U0001f093\U0001f0a0-\U0001f0ae\U0001f0b1-\U0001f0bf\U0001f0c1-\U0001f0cf\U0001f0d1-\U0001f0f5\U0001f110-\U0001f16b\U0001f170-\U0001f1ac\U0001f1e6-\U0001f202\U0001f210-\U0001f23b\U0001f240-\U0001f248\U0001f250-\U0001f251\U0001f260-\U0001f265\U0001f300-\U0001f3fa\U0001f400-\U0001f6d4\U0001f6e0-\U0001f6ec\U0001f6f0-\U0001f6f9\U0001f700-\U0001f773\U0001f780-\U0001f7d8\U0001f800-\U0001f80b\U0001f810-\U0001f847\U0001f850-\U0001f859\U0001f860-\U0001f887\U0001f890-\U0001f8ad\U0001f900-\U0001f90b\U0001f910-\U0001f93e\U0001f940-\U0001f970\U0001f973-\U0001f976\U0001f97a\U0001f97c-\U0001f9a2\U0001f9b0-\U0001f9b9\U0001f9c0-\U0001f9c2\U0001f9d0-\U0001f9ff\U0001fa60-\U0001fa6d'
67
+
68
+ Zl = '\u2028'
69
+
70
+ Zp = '\u2029'
71
+
72
+ Zs = ' \xa0\u1680\u2000-\u200a\u202f\u205f\u3000'
73
+
74
+ xid_continue = '0-9A-Z_a-z\xaa\xb5\xb7\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cf9\u1d00-\u1df9\u1dfb-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U000101fd\U00010280-\U0001029c\U000102a0-\U000102d0\U000102e0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U0001037a\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104a0-\U000104a9\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00-\U00010a03\U00010a05-\U00010a06\U00010a0c-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a38-\U00010a3a\U00010a3f\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae6\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d00-\U00010d27\U00010d30-\U00010d39\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f50\U00011000-\U00011046\U00011066-\U0001106f\U0001107f-\U000110ba\U000110d0-\U000110e8\U000110f0-\U000110f9\U00011100-\U00011134\U00011136-\U0001113f\U00011144-\U00011146\U00011150-\U00011173\U00011176\U00011180-\U000111c4\U000111c9-\U000111cc\U000111d0-\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U00011237\U0001123e\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112ea\U000112f0-\U000112f9\U00011300-\U00011303\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133b-\U00011344\U00011347-\U00011348\U0001134b-\U0001134d\U00011350\U00011357\U0001135d-\U00011363\U00011366-\U0001136c\U00011370-\U00011374\U00011400-\U0001144a\U00011450-\U00011459\U0001145e\U00011480-\U000114c5\U000114c7\U000114d0-\U000114d9\U00011580-\U000115b5\U000115b8-\U000115c0\U000115d8-\U000115dd\U00011600-\U00011640\U00011644\U00011650-\U00011659\U00011680-\U000116b7\U000116c0-\U000116c9\U00011700-\U0001171a\U0001171d-\U0001172b\U00011730-\U00011739\U00011800-\U0001183a\U000118a0-\U000118e9\U000118ff\U00011a00-\U00011a3e\U00011a47\U00011a50-\U00011a83\U00011a86-\U00011a99\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c36\U00011c38-\U00011c40\U00011c50-\U00011c59\U00011c72-\U00011c8f\U00011c92-\U00011ca7\U00011ca9-\U00011cb6\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d36\U00011d3a\U00011d3c-\U00011d3d\U00011d3f-\U00011d47\U00011d50-\U00011d59\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d8e\U00011d90-\U00011d91\U00011d93-\U00011d98\U00011da0-\U00011da9\U00011ee0-\U00011ef6\U00012000-\U00012399\U00012400-\U0001246e\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016a60-\U00016a69\U00016ad0-\U00016aed\U00016af0-\U00016af4\U00016b00-\U00016b36\U00016b40-\U00016b43\U00016b50-\U00016b59\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016e40-\U00016e7f\U00016f00-\U00016f44\U00016f50-\U00016f7e\U00016f8f-\U00016f9f\U00016fe0-\U00016fe1\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001bc9d-\U0001bc9e\U0001d165-\U0001d169\U0001d16d-\U0001d172\U0001d17b-\U0001d182\U0001d185-\U0001d18b\U0001d1aa-\U0001d1ad\U0001d242-\U0001d244\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001d7ce-\U0001d7ff\U0001da00-\U0001da36\U0001da3b-\U0001da6c\U0001da75\U0001da84\U0001da9b-\U0001da9f\U0001daa1-\U0001daaf\U0001e000-\U0001e006\U0001e008-\U0001e018\U0001e01b-\U0001e021\U0001e023-\U0001e024\U0001e026-\U0001e02a\U0001e800-\U0001e8c4\U0001e8d0-\U0001e8d6\U0001e900-\U0001e94a\U0001e950-\U0001e959\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d\U000e0100-\U000e01ef'
75
+
76
+ xid_start = 'A-Z_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037b-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa-\u0eab\u0ead-\u0eb0\u0eb2\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5-\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7b9\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufc5d\ufc64-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdf9\ufe71\ufe73\ufe77\ufe79\ufe7b\ufe7d\ufe7f-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uff9d\uffa0-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc\U00010000-\U0001000b\U0001000d-\U00010026\U00010028-\U0001003a\U0001003c-\U0001003d\U0001003f-\U0001004d\U00010050-\U0001005d\U00010080-\U000100fa\U00010140-\U00010174\U00010280-\U0001029c\U000102a0-\U000102d0\U00010300-\U0001031f\U0001032d-\U0001034a\U00010350-\U00010375\U00010380-\U0001039d\U000103a0-\U000103c3\U000103c8-\U000103cf\U000103d1-\U000103d5\U00010400-\U0001049d\U000104b0-\U000104d3\U000104d8-\U000104fb\U00010500-\U00010527\U00010530-\U00010563\U00010600-\U00010736\U00010740-\U00010755\U00010760-\U00010767\U00010800-\U00010805\U00010808\U0001080a-\U00010835\U00010837-\U00010838\U0001083c\U0001083f-\U00010855\U00010860-\U00010876\U00010880-\U0001089e\U000108e0-\U000108f2\U000108f4-\U000108f5\U00010900-\U00010915\U00010920-\U00010939\U00010980-\U000109b7\U000109be-\U000109bf\U00010a00\U00010a10-\U00010a13\U00010a15-\U00010a17\U00010a19-\U00010a35\U00010a60-\U00010a7c\U00010a80-\U00010a9c\U00010ac0-\U00010ac7\U00010ac9-\U00010ae4\U00010b00-\U00010b35\U00010b40-\U00010b55\U00010b60-\U00010b72\U00010b80-\U00010b91\U00010c00-\U00010c48\U00010c80-\U00010cb2\U00010cc0-\U00010cf2\U00010d00-\U00010d23\U00010f00-\U00010f1c\U00010f27\U00010f30-\U00010f45\U00011003-\U00011037\U00011083-\U000110af\U000110d0-\U000110e8\U00011103-\U00011126\U00011144\U00011150-\U00011172\U00011176\U00011183-\U000111b2\U000111c1-\U000111c4\U000111da\U000111dc\U00011200-\U00011211\U00011213-\U0001122b\U00011280-\U00011286\U00011288\U0001128a-\U0001128d\U0001128f-\U0001129d\U0001129f-\U000112a8\U000112b0-\U000112de\U00011305-\U0001130c\U0001130f-\U00011310\U00011313-\U00011328\U0001132a-\U00011330\U00011332-\U00011333\U00011335-\U00011339\U0001133d\U00011350\U0001135d-\U00011361\U00011400-\U00011434\U00011447-\U0001144a\U00011480-\U000114af\U000114c4-\U000114c5\U000114c7\U00011580-\U000115ae\U000115d8-\U000115db\U00011600-\U0001162f\U00011644\U00011680-\U000116aa\U00011700-\U0001171a\U00011800-\U0001182b\U000118a0-\U000118df\U000118ff\U00011a00\U00011a0b-\U00011a32\U00011a3a\U00011a50\U00011a5c-\U00011a83\U00011a86-\U00011a89\U00011a9d\U00011ac0-\U00011af8\U00011c00-\U00011c08\U00011c0a-\U00011c2e\U00011c40\U00011c72-\U00011c8f\U00011d00-\U00011d06\U00011d08-\U00011d09\U00011d0b-\U00011d30\U00011d46\U00011d60-\U00011d65\U00011d67-\U00011d68\U00011d6a-\U00011d89\U00011d98\U00011ee0-\U00011ef2\U00012000-\U00012399\U00012400-\U0001246e\U00012480-\U00012543\U00013000-\U0001342e\U00014400-\U00014646\U00016800-\U00016a38\U00016a40-\U00016a5e\U00016ad0-\U00016aed\U00016b00-\U00016b2f\U00016b40-\U00016b43\U00016b63-\U00016b77\U00016b7d-\U00016b8f\U00016e40-\U00016e7f\U00016f00-\U00016f44\U00016f50\U00016f93-\U00016f9f\U00016fe0-\U00016fe1\U00017000-\U000187f1\U00018800-\U00018af2\U0001b000-\U0001b11e\U0001b170-\U0001b2fb\U0001bc00-\U0001bc6a\U0001bc70-\U0001bc7c\U0001bc80-\U0001bc88\U0001bc90-\U0001bc99\U0001d400-\U0001d454\U0001d456-\U0001d49c\U0001d49e-\U0001d49f\U0001d4a2\U0001d4a5-\U0001d4a6\U0001d4a9-\U0001d4ac\U0001d4ae-\U0001d4b9\U0001d4bb\U0001d4bd-\U0001d4c3\U0001d4c5-\U0001d505\U0001d507-\U0001d50a\U0001d50d-\U0001d514\U0001d516-\U0001d51c\U0001d51e-\U0001d539\U0001d53b-\U0001d53e\U0001d540-\U0001d544\U0001d546\U0001d54a-\U0001d550\U0001d552-\U0001d6a5\U0001d6a8-\U0001d6c0\U0001d6c2-\U0001d6da\U0001d6dc-\U0001d6fa\U0001d6fc-\U0001d714\U0001d716-\U0001d734\U0001d736-\U0001d74e\U0001d750-\U0001d76e\U0001d770-\U0001d788\U0001d78a-\U0001d7a8\U0001d7aa-\U0001d7c2\U0001d7c4-\U0001d7cb\U0001e800-\U0001e8c4\U0001e900-\U0001e943\U0001ee00-\U0001ee03\U0001ee05-\U0001ee1f\U0001ee21-\U0001ee22\U0001ee24\U0001ee27\U0001ee29-\U0001ee32\U0001ee34-\U0001ee37\U0001ee39\U0001ee3b\U0001ee42\U0001ee47\U0001ee49\U0001ee4b\U0001ee4d-\U0001ee4f\U0001ee51-\U0001ee52\U0001ee54\U0001ee57\U0001ee59\U0001ee5b\U0001ee5d\U0001ee5f\U0001ee61-\U0001ee62\U0001ee64\U0001ee67-\U0001ee6a\U0001ee6c-\U0001ee72\U0001ee74-\U0001ee77\U0001ee79-\U0001ee7c\U0001ee7e\U0001ee80-\U0001ee89\U0001ee8b-\U0001ee9b\U0001eea1-\U0001eea3\U0001eea5-\U0001eea9\U0001eeab-\U0001eebb\U00020000-\U0002a6d6\U0002a700-\U0002b734\U0002b740-\U0002b81d\U0002b820-\U0002cea1\U0002ceb0-\U0002ebe0\U0002f800-\U0002fa1d'
77
+
78
+ cats = ['Cc', 'Cf', 'Cn', 'Co', 'Cs', 'Ll', 'Lm', 'Lo', 'Lt', 'Lu', 'Mc', 'Me', 'Mn', 'Nd', 'Nl', 'No', 'Pc', 'Pd', 'Pe', 'Pf', 'Pi', 'Po', 'Ps', 'Sc', 'Sk', 'Sm', 'So', 'Zl', 'Zp', 'Zs']
79
+
80
+ # Generated from unidata 11.0.0
81
+
82
+ def combine(*args):
83
+ return ''.join(globals()[cat] for cat in args)
84
+
85
+
86
+ def allexcept(*args):
87
+ newcats = cats[:]
88
+ for arg in args:
89
+ newcats.remove(arg)
90
+ return ''.join(globals()[cat] for cat in newcats)
91
+
92
+
93
+ def _handle_runs(char_list): # pragma: no cover
94
+ buf = []
95
+ for c in char_list:
96
+ if len(c) == 1:
97
+ if buf and buf[-1][1] == chr(ord(c)-1):
98
+ buf[-1] = (buf[-1][0], c)
99
+ else:
100
+ buf.append((c, c))
101
+ else:
102
+ buf.append((c, c))
103
+ for a, b in buf:
104
+ if a == b:
105
+ yield a
106
+ else:
107
+ yield f'{a}-{b}'
108
+
109
+
110
+ if __name__ == '__main__': # pragma: no cover
111
+ import unicodedata
112
+
113
+ categories = {'xid_start': [], 'xid_continue': []}
114
+
115
+ with open(__file__, encoding='utf-8') as fp:
116
+ content = fp.read()
117
+
118
+ header = content[:content.find('Cc =')]
119
+ footer = content[content.find("def combine("):]
120
+
121
+ for code in range(0x110000):
122
+ c = chr(code)
123
+ cat = unicodedata.category(c)
124
+ if ord(c) == 0xdc00:
125
+ # Hack to avoid combining this combining with the preceding high
126
+ # surrogate, 0xdbff, when doing a repr.
127
+ c = '\\' + c
128
+ elif ord(c) in (0x2d, 0x5b, 0x5c, 0x5d, 0x5e):
129
+ # Escape regex metachars.
130
+ c = '\\' + c
131
+ categories.setdefault(cat, []).append(c)
132
+ # XID_START and XID_CONTINUE are special categories used for matching
133
+ # identifiers in Python 3.
134
+ if c.isidentifier():
135
+ categories['xid_start'].append(c)
136
+ if ('a' + c).isidentifier():
137
+ categories['xid_continue'].append(c)
138
+
139
+ with open(__file__, 'w', encoding='utf-8') as fp:
140
+ fp.write(header)
141
+
142
+ for cat in sorted(categories):
143
+ val = ''.join(_handle_runs(categories[cat]))
144
+ fp.write(f'{cat} = {val!a}\n\n')
145
+
146
+ cats = sorted(categories)
147
+ cats.remove('xid_start')
148
+ cats.remove('xid_continue')
149
+ fp.write(f'cats = {cats!r}\n\n')
150
+
151
+ fp.write(f'# Generated from unidata {unicodedata.unidata_version}\n\n')
152
+
153
+ fp.write(footer)
tuning-competition-baseline/.venv/lib/python3.11/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-311.pyc ADDED
Binary file (7.09 kB). View file