koichi12 commited on
Commit
8bddcf0
·
verified ·
1 Parent(s): 18859de

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. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/__init__.py +377 -0
  3. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/__init__.cpython-311.pyc +0 -0
  4. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/constants.cpython-311.pyc +0 -0
  5. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/default_impl.cpython-311.pyc +0 -0
  6. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/filters.cpython-311.pyc +0 -0
  7. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/formatters.cpython-311.pyc +0 -0
  8. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/logging_config.cpython-311.pyc +0 -0
  9. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/constants.py +57 -0
  10. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/default_impl.py +4 -0
  11. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/filters.py +32 -0
  12. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/formatters.py +92 -0
  13. .venv/lib/python3.11/site-packages/ray/_private/ray_logging/logging_config.py +112 -0
  14. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/INSTALLER +1 -0
  15. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/LICENSE +279 -0
  16. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/METADATA +126 -0
  17. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/RECORD +16 -0
  18. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/WHEEL +4 -0
  19. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/__init__.cpython-311.pyc +0 -0
  20. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/client.cpython-311.pyc +0 -0
  21. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/hdrs.cpython-311.pyc +0 -0
  22. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/helpers.cpython-311.pyc +0 -0
  23. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/http.cpython-311.pyc +0 -0
  24. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/http_parser.cpython-311.pyc +0 -0
  25. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/log.cpython-311.pyc +0 -0
  26. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/streams.cpython-311.pyc +0 -0
  27. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/web_middlewares.cpython-311.pyc +0 -0
  28. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_websocket/mask.cpython-311-x86_64-linux-gnu.so +3 -0
  29. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/attr/__pycache__/_make.cpython-311.pyc +3 -0
  30. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__init__.py +45 -0
  31. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/__init__.cpython-311.pyc +0 -0
  32. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/codec.cpython-311.pyc +0 -0
  33. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/compat.cpython-311.pyc +0 -0
  34. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/core.cpython-311.pyc +0 -0
  35. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/intranges.cpython-311.pyc +0 -0
  36. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/package_data.cpython-311.pyc +0 -0
  37. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/codec.py +122 -0
  38. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/compat.py +15 -0
  39. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/core.py +437 -0
  40. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/idnadata.py +4243 -0
  41. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/intranges.py +57 -0
  42. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/package_data.py +1 -0
  43. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/py.typed +0 -0
  44. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/uts46data.py +0 -0
  45. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/INSTALLER +1 -0
  46. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/LICENSE +13 -0
  47. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/METADATA +140 -0
  48. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/RECORD +19 -0
  49. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/WHEEL +6 -0
  50. .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/top_level.txt +1 -0
.gitattributes CHANGED
@@ -163,3 +163,5 @@ tuning-competition-baseline/.venv/lib/python3.11/site-packages/torch/_inductor/_
163
  .venv/lib/python3.11/site-packages/ray/dag/__pycache__/compiled_dag_node.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
164
  .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict/_multidict.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
165
  .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/frozenlist/_frozenlist.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
 
 
 
163
  .venv/lib/python3.11/site-packages/ray/dag/__pycache__/compiled_dag_node.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
164
  .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict/_multidict.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
165
  .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/frozenlist/_frozenlist.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
166
+ .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/attr/__pycache__/_make.cpython-311.pyc filter=lfs diff=lfs merge=lfs -text
167
+ .venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_websocket/mask.cpython-311-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/__init__.py ADDED
@@ -0,0 +1,377 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import colorama
2
+ from dataclasses import dataclass
3
+ import logging
4
+ import logging.handlers
5
+ import os
6
+ import re
7
+ import sys
8
+ import threading
9
+ import time
10
+ from typing import Callable, Dict, List, Set, Tuple, Any, Optional, Union, Iterable
11
+
12
+ import ray
13
+ from ray.experimental.tqdm_ray import RAY_TQDM_MAGIC
14
+ from ray._private.ray_constants import (
15
+ RAY_DEDUP_LOGS,
16
+ RAY_DEDUP_LOGS_AGG_WINDOW_S,
17
+ RAY_DEDUP_LOGS_ALLOW_REGEX,
18
+ RAY_DEDUP_LOGS_SKIP_REGEX,
19
+ )
20
+ from ray.util.debug import log_once
21
+
22
+
23
+ def setup_logger(
24
+ logging_level: int,
25
+ logging_format: str,
26
+ ):
27
+ """Setup default logging for ray."""
28
+ logger = logging.getLogger("ray")
29
+ if logging_format:
30
+ # Overwrite the formatters for all default handlers.
31
+ formatter = logging.Formatter(logging_format)
32
+ for handler in logger.handlers:
33
+ handler.setFormatter(formatter)
34
+ if type(logging_level) is str:
35
+ logging_level = logging.getLevelName(logging_level.upper())
36
+ logger.setLevel(logging_level)
37
+
38
+
39
+ def setup_component_logger(
40
+ *,
41
+ logging_level,
42
+ logging_format,
43
+ log_dir,
44
+ filename: Union[str, Iterable[str]],
45
+ max_bytes,
46
+ backup_count,
47
+ logger_name=None,
48
+ propagate=True,
49
+ ):
50
+ """Configure the logger that is used for Ray's python components.
51
+
52
+ For example, it should be used for monitor, dashboard, and log monitor.
53
+ The only exception is workers. They use the different logging config.
54
+
55
+ Ray's python components generally should not write to stdout/stderr, because
56
+ messages written there will be redirected to the head node. For deployments where
57
+ there may be thousands of workers, this would create unacceptable levels of log
58
+ spam. For this reason, we disable the "ray" logger's handlers, and enable
59
+ propagation so that log messages that actually do need to be sent to the head node
60
+ can reach it.
61
+
62
+ Args:
63
+ logging_level: Logging level in string or logging enum.
64
+ logging_format: Logging format string.
65
+ log_dir: Log directory path. If empty, logs will go to
66
+ stderr.
67
+ filename: A single filename or an iterable of filenames to write logs to.
68
+ If empty, logs will go to stderr.
69
+ max_bytes: Same argument as RotatingFileHandler's maxBytes.
70
+ backup_count: Same argument as RotatingFileHandler's backupCount.
71
+ logger_name: Used to create or get the correspoding
72
+ logger in getLogger call. It will get the root logger by default.
73
+ propagate: Whether to propagate the log to the parent logger.
74
+ Returns:
75
+ the created or modified logger.
76
+ """
77
+ ray._private.log.clear_logger("ray")
78
+
79
+ logger = logging.getLogger(logger_name)
80
+ if isinstance(logging_level, str):
81
+ logging_level = logging.getLevelName(logging_level.upper())
82
+ logger.setLevel(logging_level)
83
+
84
+ filenames = [filename] if isinstance(filename, str) else filename
85
+
86
+ for filename in filenames:
87
+ if not filename or not log_dir:
88
+ handler = logging.StreamHandler()
89
+ else:
90
+ handler = logging.handlers.RotatingFileHandler(
91
+ os.path.join(log_dir, filename),
92
+ maxBytes=max_bytes,
93
+ backupCount=backup_count,
94
+ )
95
+ handler.setLevel(logging_level)
96
+ handler.setFormatter(logging.Formatter(logging_format))
97
+ logger.addHandler(handler)
98
+
99
+ logger.propagate = propagate
100
+ return logger
101
+
102
+
103
+ def run_callback_on_events_in_ipython(event: str, cb: Callable):
104
+ """
105
+ Register a callback to be run after each cell completes in IPython.
106
+ E.g.:
107
+ This is used to flush the logs after each cell completes.
108
+
109
+ If IPython is not installed, this function does nothing.
110
+
111
+ Args:
112
+ cb: The callback to run.
113
+ """
114
+ if "IPython" in sys.modules:
115
+ from IPython import get_ipython
116
+
117
+ ipython = get_ipython()
118
+ # Register a callback on cell completion.
119
+ if ipython is not None:
120
+ ipython.events.register(event, cb)
121
+
122
+
123
+ """
124
+ All components underneath here is used specifically for the default_worker.py.
125
+ """
126
+
127
+
128
+ def get_worker_log_file_name(worker_type, job_id=None):
129
+ if job_id is None:
130
+ job_id = os.environ.get("RAY_JOB_ID")
131
+ if worker_type == "WORKER":
132
+ if job_id is None:
133
+ job_id = ""
134
+ worker_name = "worker"
135
+ else:
136
+ job_id = ""
137
+ worker_name = "io_worker"
138
+
139
+ # Make sure these values are set already.
140
+ assert ray._private.worker._global_node is not None
141
+ assert ray._private.worker.global_worker is not None
142
+ filename = f"{worker_name}-{ray.get_runtime_context().get_worker_id()}-"
143
+ if job_id:
144
+ filename += f"{job_id}-"
145
+ filename += f"{os.getpid()}"
146
+ return filename
147
+
148
+
149
+ def configure_log_file(out_file, err_file):
150
+ # If either of the file handles are None, there are no log files to
151
+ # configure since we're redirecting all output to stdout and stderr.
152
+ if out_file is None or err_file is None:
153
+ return
154
+ stdout_fileno = sys.stdout.fileno()
155
+ stderr_fileno = sys.stderr.fileno()
156
+ # C++ logging requires redirecting the stdout file descriptor. Note that
157
+ # dup2 will automatically close the old file descriptor before overriding
158
+ # it.
159
+ os.dup2(out_file.fileno(), stdout_fileno)
160
+ os.dup2(err_file.fileno(), stderr_fileno)
161
+ # We also manually set sys.stdout and sys.stderr because that seems to
162
+ # have an effect on the output buffering. Without doing this, stdout
163
+ # and stderr are heavily buffered resulting in seemingly lost logging
164
+ # statements. We never want to close the stdout file descriptor, dup2 will
165
+ # close it when necessary and we don't want python's GC to close it.
166
+ sys.stdout = ray._private.utils.open_log(
167
+ stdout_fileno, unbuffered=True, closefd=False
168
+ )
169
+ sys.stderr = ray._private.utils.open_log(
170
+ stderr_fileno, unbuffered=True, closefd=False
171
+ )
172
+
173
+
174
+ class WorkerStandardStreamDispatcher:
175
+ def __init__(self):
176
+ self.handlers = []
177
+ self._lock = threading.Lock()
178
+
179
+ def add_handler(self, name: str, handler: Callable) -> None:
180
+ with self._lock:
181
+ self.handlers.append((name, handler))
182
+
183
+ def remove_handler(self, name: str) -> None:
184
+ with self._lock:
185
+ new_handlers = [pair for pair in self.handlers if pair[0] != name]
186
+ self.handlers = new_handlers
187
+
188
+ def emit(self, data):
189
+ with self._lock:
190
+ for pair in self.handlers:
191
+ _, handle = pair
192
+ handle(data)
193
+
194
+
195
+ global_worker_stdstream_dispatcher = WorkerStandardStreamDispatcher()
196
+
197
+
198
+ # Regex for canonicalizing log lines.
199
+ NUMBERS = re.compile(r"(\d+|0x[0-9a-fA-F]+)")
200
+
201
+ # Batch of log lines including ip, pid, lines, etc.
202
+ LogBatch = Dict[str, Any]
203
+
204
+
205
+ def _canonicalise_log_line(line):
206
+ # Remove words containing numbers or hex, since those tend to differ between
207
+ # workers.
208
+ return " ".join(x for x in line.split() if not NUMBERS.search(x))
209
+
210
+
211
+ @dataclass
212
+ class DedupState:
213
+ # Timestamp of the earliest log message seen of this pattern.
214
+ timestamp: int
215
+
216
+ # The number of un-printed occurrances for this pattern.
217
+ count: int
218
+
219
+ # Latest instance of this log pattern.
220
+ line: int
221
+
222
+ # Latest metadata dict for this log pattern, not including the lines field.
223
+ metadata: LogBatch
224
+
225
+ # Set of (ip, pid) sources which have emitted this pattern.
226
+ sources: Set[Tuple[str, int]]
227
+
228
+ # The string that should be printed to stdout.
229
+ def formatted(self) -> str:
230
+ return self.line + _color(
231
+ f" [repeated {self.count}x across cluster]" + _warn_once()
232
+ )
233
+
234
+
235
+ class LogDeduplicator:
236
+ def __init__(
237
+ self,
238
+ agg_window_s: int,
239
+ allow_re: Optional[str],
240
+ skip_re: Optional[str],
241
+ *,
242
+ _timesource=None,
243
+ ):
244
+ self.agg_window_s = agg_window_s
245
+ if allow_re:
246
+ self.allow_re = re.compile(allow_re)
247
+ else:
248
+ self.allow_re = None
249
+ if skip_re:
250
+ self.skip_re = re.compile(skip_re)
251
+ else:
252
+ self.skip_re = None
253
+ # Buffer of up to RAY_DEDUP_LOGS_AGG_WINDOW_S recent log patterns.
254
+ # This buffer is cleared if the pattern isn't seen within the window.
255
+ self.recent: Dict[str, DedupState] = {}
256
+ self.timesource = _timesource or (lambda: time.time())
257
+
258
+ run_callback_on_events_in_ipython("post_execute", self.flush)
259
+
260
+ def deduplicate(self, batch: LogBatch) -> List[LogBatch]:
261
+ """Rewrite a batch of lines to reduce duplicate log messages.
262
+
263
+ Args:
264
+ batch: The batch of lines from a single source.
265
+
266
+ Returns:
267
+ List of batches from this and possibly other previous sources to print.
268
+ """
269
+ if not RAY_DEDUP_LOGS:
270
+ return [batch]
271
+
272
+ now = self.timesource()
273
+ metadata = batch.copy()
274
+ del metadata["lines"]
275
+ source = (metadata.get("ip"), metadata.get("pid"))
276
+ output: List[LogBatch] = [dict(**metadata, lines=[])]
277
+
278
+ # Decide which lines to emit from the input batch. Put the outputs in the
279
+ # first output log batch (output[0]).
280
+ for line in batch["lines"]:
281
+ if RAY_TQDM_MAGIC in line or (self.allow_re and self.allow_re.search(line)):
282
+ output[0]["lines"].append(line)
283
+ continue
284
+ elif self.skip_re and self.skip_re.search(line):
285
+ continue
286
+ dedup_key = _canonicalise_log_line(line)
287
+
288
+ if dedup_key == "":
289
+ # Don't dedup messages that are empty after canonicalization.
290
+ # Because that's all the information users want to see.
291
+ output[0]["lines"].append(line)
292
+ continue
293
+
294
+ if dedup_key in self.recent:
295
+ sources = self.recent[dedup_key].sources
296
+ sources.add(source)
297
+ # We deduplicate the warnings/error messages from raylet by default.
298
+ if len(sources) > 1 or batch["pid"] == "raylet":
299
+ state = self.recent[dedup_key]
300
+ self.recent[dedup_key] = DedupState(
301
+ state.timestamp,
302
+ state.count + 1,
303
+ line,
304
+ metadata,
305
+ sources,
306
+ )
307
+ else:
308
+ # Don't dedup messages from the same source, just print.
309
+ output[0]["lines"].append(line)
310
+ else:
311
+ self.recent[dedup_key] = DedupState(now, 0, line, metadata, {source})
312
+ output[0]["lines"].append(line)
313
+
314
+ # Flush patterns from the buffer that are older than the aggregation window.
315
+ while self.recent:
316
+ if now - next(iter(self.recent.values())).timestamp < self.agg_window_s:
317
+ break
318
+ dedup_key = next(iter(self.recent))
319
+ state = self.recent.pop(dedup_key)
320
+ # we already logged an instance of this line immediately when received,
321
+ # so don't log for count == 0
322
+ if state.count > 1:
323
+ # (Actor pid=xxxx) [repeated 2x across cluster] ...
324
+ output.append(dict(**state.metadata, lines=[state.formatted()]))
325
+ # Continue aggregating for this key but reset timestamp and count.
326
+ state.timestamp = now
327
+ state.count = 0
328
+ self.recent[dedup_key] = state
329
+ elif state.count > 0:
330
+ # Aggregation wasn't fruitful, print the line and stop aggregating.
331
+ output.append(dict(state.metadata, lines=[state.line]))
332
+
333
+ return output
334
+
335
+ def flush(self) -> List[dict]:
336
+ """Return all buffered log messages and clear the buffer.
337
+
338
+ Returns:
339
+ List of log batches to print.
340
+ """
341
+ output = []
342
+ for state in self.recent.values():
343
+ if state.count > 1:
344
+ output.append(
345
+ dict(
346
+ state.metadata,
347
+ lines=[state.formatted()],
348
+ )
349
+ )
350
+ elif state.count > 0:
351
+ output.append(dict(state.metadata, **{"lines": [state.line]}))
352
+ self.recent.clear()
353
+ return output
354
+
355
+
356
+ def _warn_once() -> str:
357
+ if log_once("log_dedup_warning"):
358
+ return (
359
+ " (Ray deduplicates logs by default. Set RAY_DEDUP_LOGS=0 to "
360
+ "disable log deduplication, or see https://docs.ray.io/en/master/"
361
+ "ray-observability/user-guides/configure-logging.html#log-deduplication "
362
+ "for more options.)"
363
+ )
364
+ else:
365
+ return ""
366
+
367
+
368
+ def _color(msg: str) -> str:
369
+ return "{}{}{}".format(colorama.Fore.GREEN, msg, colorama.Style.RESET_ALL)
370
+
371
+
372
+ stdout_deduplicator = LogDeduplicator(
373
+ RAY_DEDUP_LOGS_AGG_WINDOW_S, RAY_DEDUP_LOGS_ALLOW_REGEX, RAY_DEDUP_LOGS_SKIP_REGEX
374
+ )
375
+ stderr_deduplicator = LogDeduplicator(
376
+ RAY_DEDUP_LOGS_AGG_WINDOW_S, RAY_DEDUP_LOGS_ALLOW_REGEX, RAY_DEDUP_LOGS_SKIP_REGEX
377
+ )
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (17.4 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/constants.cpython-311.pyc ADDED
Binary file (1.25 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/default_impl.cpython-311.pyc ADDED
Binary file (466 Bytes). View file
 
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/filters.cpython-311.pyc ADDED
Binary file (2.49 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/formatters.cpython-311.pyc ADDED
Binary file (5.13 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/__pycache__/logging_config.cpython-311.pyc ADDED
Binary file (6.48 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/constants.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from enum import Enum
2
+
3
+ # A set containing the standard attributes of a LogRecord. This is used to
4
+ # help us determine which attributes constitute Ray or user-provided context.
5
+ # http://docs.python.org/library/logging.html#logrecord-attributes
6
+ LOGRECORD_STANDARD_ATTRS = {
7
+ "args",
8
+ "asctime",
9
+ "created",
10
+ "exc_info",
11
+ "exc_text",
12
+ "filename",
13
+ "funcName",
14
+ "levelname",
15
+ "levelno",
16
+ "lineno",
17
+ "message",
18
+ "module",
19
+ "msecs",
20
+ "msg",
21
+ "name",
22
+ "pathname",
23
+ "process",
24
+ "processName",
25
+ "relativeCreated",
26
+ "stack_info",
27
+ "thread",
28
+ "threadName",
29
+ "taskName",
30
+ }
31
+
32
+ LOGGER_FLATTEN_KEYS = {
33
+ "ray_serve_extra_fields",
34
+ }
35
+
36
+
37
+ class LogKey(str, Enum):
38
+ # Core context
39
+ JOB_ID = "job_id"
40
+ WORKER_ID = "worker_id"
41
+ NODE_ID = "node_id"
42
+ ACTOR_ID = "actor_id"
43
+ TASK_ID = "task_id"
44
+ ACTOR_NAME = "actor_name"
45
+ TASK_NAME = "task_name"
46
+ TASK_FUNCTION_NAME = "task_func_name"
47
+
48
+ # Logger built-in context
49
+ ASCTIME = "asctime"
50
+ LEVELNAME = "levelname"
51
+ MESSAGE = "message"
52
+ FILENAME = "filename"
53
+ LINENO = "lineno"
54
+ EXC_TEXT = "exc_text"
55
+
56
+ # Ray logging context
57
+ TIMESTAMP_NS = "timestamp_ns"
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/default_impl.py ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ def get_logging_configurator():
2
+ from ray._private.ray_logging.logging_config import DefaultLoggingConfigurator
3
+
4
+ return DefaultLoggingConfigurator()
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/filters.py ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import ray
3
+ from ray._private.ray_logging.constants import LogKey
4
+
5
+
6
+ class CoreContextFilter(logging.Filter):
7
+ def filter(self, record):
8
+ if not ray.is_initialized():
9
+ # There is no additional context if ray is not initialized
10
+ return True
11
+
12
+ runtime_context = ray.get_runtime_context()
13
+ setattr(record, LogKey.JOB_ID.value, runtime_context.get_job_id())
14
+ setattr(record, LogKey.WORKER_ID.value, runtime_context.get_worker_id())
15
+ setattr(record, LogKey.NODE_ID.value, runtime_context.get_node_id())
16
+ if runtime_context.worker.mode == ray.WORKER_MODE:
17
+ actor_id = runtime_context.get_actor_id()
18
+ if actor_id is not None:
19
+ setattr(record, LogKey.ACTOR_ID.value, actor_id)
20
+ task_id = runtime_context.get_task_id()
21
+ if task_id is not None:
22
+ setattr(record, LogKey.TASK_ID.value, task_id)
23
+ task_name = runtime_context.get_task_name()
24
+ if task_name is not None:
25
+ setattr(record, LogKey.TASK_NAME.value, task_name)
26
+ task_function_name = runtime_context.get_task_function_name()
27
+ if task_function_name is not None:
28
+ setattr(record, LogKey.TASK_FUNCTION_NAME.value, task_function_name)
29
+ actor_name = runtime_context.get_actor_name()
30
+ if actor_name is not None:
31
+ setattr(record, LogKey.ACTOR_NAME.value, actor_name)
32
+ return True
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/formatters.py ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import logging
2
+ import json
3
+ from ray._private.log import INTERNAL_TIMESTAMP_LOG_KEY
4
+ from ray._private.ray_logging.constants import (
5
+ LogKey,
6
+ LOGRECORD_STANDARD_ATTRS,
7
+ LOGGER_FLATTEN_KEYS,
8
+ )
9
+ from ray._private.ray_constants import LOGGER_FORMAT
10
+ from typing import Any, Dict
11
+
12
+
13
+ def _append_flatten_attributes(formatted_attrs: Dict[str, Any], key: str, value: Any):
14
+ """Flatten the dictionary values for special keys and append the values in place.
15
+
16
+ If the key is in `LOGGER_FLATTEN_KEYS`, the value will be flattened and appended
17
+ to the `formatted_attrs` dictionary. Otherwise, the key-value pair will be appended
18
+ directly.
19
+ """
20
+ if key in LOGGER_FLATTEN_KEYS:
21
+ if not isinstance(value, dict):
22
+ raise ValueError(
23
+ f"Expected a dictionary passing into {key}, but got {type(value)}"
24
+ )
25
+ for k, v in value.items():
26
+ if k in formatted_attrs:
27
+ raise KeyError(f"Found duplicated key in the log record: {k}")
28
+ formatted_attrs[k] = v
29
+ else:
30
+ formatted_attrs[key] = value
31
+
32
+
33
+ def generate_record_format_attrs(
34
+ formatter: logging.Formatter,
35
+ record: logging.LogRecord,
36
+ exclude_standard_attrs,
37
+ ) -> dict:
38
+ record_format_attrs = {}
39
+
40
+ # If `exclude_standard_attrs` is False, include the standard attributes.
41
+ # Otherwise, include only Ray and user-provided context.
42
+ if not exclude_standard_attrs:
43
+ record_format_attrs.update(
44
+ {
45
+ LogKey.ASCTIME.value: formatter.formatTime(record),
46
+ LogKey.LEVELNAME.value: record.levelname,
47
+ LogKey.MESSAGE.value: record.getMessage(),
48
+ LogKey.FILENAME.value: record.filename,
49
+ LogKey.LINENO.value: record.lineno,
50
+ }
51
+ )
52
+ if record.exc_info:
53
+ if not record.exc_text:
54
+ record.exc_text = formatter.formatException(record.exc_info)
55
+ record_format_attrs[LogKey.EXC_TEXT.value] = record.exc_text
56
+
57
+ for key, value in record.__dict__.items():
58
+ # Both Ray and user-provided context are stored in `record_format`.
59
+ if key not in LOGRECORD_STANDARD_ATTRS:
60
+ _append_flatten_attributes(record_format_attrs, key, value)
61
+
62
+ # Format the internal timestamp to the standardized `timestamp_ns` key.
63
+ if INTERNAL_TIMESTAMP_LOG_KEY in record_format_attrs:
64
+ record_format_attrs[LogKey.TIMESTAMP_NS.value] = record_format_attrs.pop(
65
+ INTERNAL_TIMESTAMP_LOG_KEY
66
+ )
67
+
68
+ return record_format_attrs
69
+
70
+
71
+ class JSONFormatter(logging.Formatter):
72
+ def format(self, record):
73
+ record_format_attrs = generate_record_format_attrs(
74
+ self, record, exclude_standard_attrs=False
75
+ )
76
+ return json.dumps(record_format_attrs)
77
+
78
+
79
+ class TextFormatter(logging.Formatter):
80
+ def __init__(self) -> None:
81
+ self._inner_formatter = logging.Formatter(LOGGER_FORMAT)
82
+
83
+ def format(self, record: logging.LogRecord) -> str:
84
+ s = self._inner_formatter.format(record)
85
+ record_format_attrs = generate_record_format_attrs(
86
+ self, record, exclude_standard_attrs=True
87
+ )
88
+
89
+ additional_attrs = " ".join(
90
+ [f"{key}={value}" for key, value in record_format_attrs.items()]
91
+ )
92
+ return f"{s} {additional_attrs}"
.venv/lib/python3.11/site-packages/ray/_private/ray_logging/logging_config.py ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from abc import ABC, abstractmethod
2
+ from typing import Set
3
+
4
+ from ray._private.ray_logging import default_impl
5
+ from ray._private.ray_logging.formatters import TextFormatter
6
+ from ray._private.ray_logging.filters import CoreContextFilter
7
+ from ray.util.annotations import PublicAPI
8
+
9
+ from dataclasses import dataclass
10
+
11
+ import logging
12
+
13
+
14
+ class LoggingConfigurator(ABC):
15
+ @abstractmethod
16
+ def get_supported_encodings(self) -> Set[str]:
17
+ raise NotImplementedError
18
+
19
+ @abstractmethod
20
+ def configure_logging(self, encoding: str, log_level: str):
21
+ raise NotImplementedError
22
+
23
+
24
+ class DefaultLoggingConfigurator(LoggingConfigurator):
25
+ def __init__(self):
26
+ self._encoding_to_formatter = {
27
+ "TEXT": TextFormatter(),
28
+ }
29
+
30
+ def get_supported_encodings(self) -> Set[str]:
31
+ return self._encoding_to_formatter.keys()
32
+
33
+ def configure_logging(self, encoding: str, log_level: str):
34
+ formatter = self._encoding_to_formatter[encoding]
35
+ core_context_filter = CoreContextFilter()
36
+ handler = logging.StreamHandler()
37
+ handler.setLevel(log_level)
38
+ handler.setFormatter(formatter)
39
+ handler.addFilter(core_context_filter)
40
+
41
+ root_logger = logging.getLogger()
42
+ root_logger.setLevel(log_level)
43
+ root_logger.addHandler(handler)
44
+
45
+ ray_logger = logging.getLogger("ray")
46
+ ray_logger.setLevel(log_level)
47
+ # Remove all existing handlers added by `ray/__init__.py`.
48
+ for h in ray_logger.handlers[:]:
49
+ ray_logger.removeHandler(h)
50
+ ray_logger.addHandler(handler)
51
+ ray_logger.propagate = False
52
+
53
+
54
+ _logging_configurator: LoggingConfigurator = default_impl.get_logging_configurator()
55
+
56
+
57
+ @PublicAPI(stability="alpha")
58
+ @dataclass
59
+ class LoggingConfig:
60
+ encoding: str = "TEXT"
61
+ log_level: str = "INFO"
62
+
63
+ def __post_init__(self):
64
+ if self.encoding not in _logging_configurator.get_supported_encodings():
65
+ raise ValueError(
66
+ f"Invalid encoding type: {self.encoding}. "
67
+ "Valid encoding types are: "
68
+ f"{list(_logging_configurator.get_supported_encodings())}"
69
+ )
70
+
71
+ def _configure_logging(self):
72
+ """Set up the logging configuration for the current process."""
73
+ _logging_configurator.configure_logging(self.encoding, self.log_level)
74
+
75
+ def _apply(self):
76
+ """Set up the logging configuration."""
77
+ self._configure_logging()
78
+
79
+
80
+ LoggingConfig.__doc__ = f"""
81
+ Logging configuration for a Ray job. These configurations are used to set up the
82
+ root logger of the driver process and all Ray tasks and actor processes that belong
83
+ to the job.
84
+
85
+ Examples:
86
+ .. testcode::
87
+
88
+ import ray
89
+ import logging
90
+
91
+ ray.init(
92
+ logging_config=ray.LoggingConfig(encoding="TEXT", log_level="INFO")
93
+ )
94
+
95
+ @ray.remote
96
+ def f():
97
+ logger = logging.getLogger(__name__)
98
+ logger.info("This is a Ray task")
99
+
100
+ ray.get(f.remote())
101
+
102
+ .. testoutput::
103
+ :options: +MOCK
104
+
105
+ 2024-06-03 07:53:50,815 INFO test.py:11 -- This is a Ray task job_id=01000000 worker_id=0dbbbd0f17d5343bbeee8228fa5ff675fe442445a1bc06ec899120a8 node_id=577706f1040ea8ebd76f7cf5a32338d79fe442e01455b9e7110cddfc task_id=c8ef45ccd0112571ffffffffffffffffffffffff01000000
106
+
107
+ Args:
108
+ encoding: Encoding type for the logs. The valid values are
109
+ {list(_logging_configurator.get_supported_encodings())}
110
+ log_level: Log level for the logs. Defaults to 'INFO'. You can set
111
+ it to 'DEBUG' to receive more detailed debug logs.
112
+ """ # noqa: E501
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/LICENSE ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ A. HISTORY OF THE SOFTWARE
2
+ ==========================
3
+
4
+ Python was created in the early 1990s by Guido van Rossum at Stichting
5
+ Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands
6
+ as a successor of a language called ABC. Guido remains Python's
7
+ principal author, although it includes many contributions from others.
8
+
9
+ In 1995, Guido continued his work on Python at the Corporation for
10
+ National Research Initiatives (CNRI, see https://www.cnri.reston.va.us)
11
+ in Reston, Virginia where he released several versions of the
12
+ software.
13
+
14
+ In May 2000, Guido and the Python core development team moved to
15
+ BeOpen.com to form the BeOpen PythonLabs team. In October of the same
16
+ year, the PythonLabs team moved to Digital Creations, which became
17
+ Zope Corporation. In 2001, the Python Software Foundation (PSF, see
18
+ https://www.python.org/psf/) was formed, a non-profit organization
19
+ created specifically to own Python-related Intellectual Property.
20
+ Zope Corporation was a sponsoring member of the PSF.
21
+
22
+ All Python releases are Open Source (see https://opensource.org for
23
+ the Open Source Definition). Historically, most, but not all, Python
24
+ releases have also been GPL-compatible; the table below summarizes
25
+ the various releases.
26
+
27
+ Release Derived Year Owner GPL-
28
+ from compatible? (1)
29
+
30
+ 0.9.0 thru 1.2 1991-1995 CWI yes
31
+ 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes
32
+ 1.6 1.5.2 2000 CNRI no
33
+ 2.0 1.6 2000 BeOpen.com no
34
+ 1.6.1 1.6 2001 CNRI yes (2)
35
+ 2.1 2.0+1.6.1 2001 PSF no
36
+ 2.0.1 2.0+1.6.1 2001 PSF yes
37
+ 2.1.1 2.1+2.0.1 2001 PSF yes
38
+ 2.1.2 2.1.1 2002 PSF yes
39
+ 2.1.3 2.1.2 2002 PSF yes
40
+ 2.2 and above 2.1.1 2001-now PSF yes
41
+
42
+ Footnotes:
43
+
44
+ (1) GPL-compatible doesn't mean that we're distributing Python under
45
+ the GPL. All Python licenses, unlike the GPL, let you distribute
46
+ a modified version without making your changes open source. The
47
+ GPL-compatible licenses make it possible to combine Python with
48
+ other software that is released under the GPL; the others don't.
49
+
50
+ (2) According to Richard Stallman, 1.6.1 is not GPL-compatible,
51
+ because its license has a choice of law clause. According to
52
+ CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1
53
+ is "not incompatible" with the GPL.
54
+
55
+ Thanks to the many outside volunteers who have worked under Guido's
56
+ direction to make these releases possible.
57
+
58
+
59
+ B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON
60
+ ===============================================================
61
+
62
+ Python software and documentation are licensed under the
63
+ Python Software Foundation License Version 2.
64
+
65
+ Starting with Python 3.8.6, examples, recipes, and other code in
66
+ the documentation are dual licensed under the PSF License Version 2
67
+ and the Zero-Clause BSD license.
68
+
69
+ Some software incorporated into Python is under different licenses.
70
+ The licenses are listed with code falling under that license.
71
+
72
+
73
+ PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
74
+ --------------------------------------------
75
+
76
+ 1. This LICENSE AGREEMENT is between the Python Software Foundation
77
+ ("PSF"), and the Individual or Organization ("Licensee") accessing and
78
+ otherwise using this software ("Python") in source or binary form and
79
+ its associated documentation.
80
+
81
+ 2. Subject to the terms and conditions of this License Agreement, PSF hereby
82
+ grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
83
+ analyze, test, perform and/or display publicly, prepare derivative works,
84
+ distribute, and otherwise use Python alone or in any derivative version,
85
+ provided, however, that PSF's License Agreement and PSF's notice of copyright,
86
+ i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
87
+ 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation;
88
+ All Rights Reserved" are retained in Python alone or in any derivative version
89
+ prepared by Licensee.
90
+
91
+ 3. In the event Licensee prepares a derivative work that is based on
92
+ or incorporates Python or any part thereof, and wants to make
93
+ the derivative work available to others as provided herein, then
94
+ Licensee hereby agrees to include in any such work a brief summary of
95
+ the changes made to Python.
96
+
97
+ 4. PSF is making Python available to Licensee on an "AS IS"
98
+ basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
99
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
100
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
101
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
102
+ INFRINGE ANY THIRD PARTY RIGHTS.
103
+
104
+ 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
105
+ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
106
+ A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
107
+ OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
108
+
109
+ 6. This License Agreement will automatically terminate upon a material
110
+ breach of its terms and conditions.
111
+
112
+ 7. Nothing in this License Agreement shall be deemed to create any
113
+ relationship of agency, partnership, or joint venture between PSF and
114
+ Licensee. This License Agreement does not grant permission to use PSF
115
+ trademarks or trade name in a trademark sense to endorse or promote
116
+ products or services of Licensee, or any third party.
117
+
118
+ 8. By copying, installing or otherwise using Python, Licensee
119
+ agrees to be bound by the terms and conditions of this License
120
+ Agreement.
121
+
122
+
123
+ BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0
124
+ -------------------------------------------
125
+
126
+ BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1
127
+
128
+ 1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an
129
+ office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the
130
+ Individual or Organization ("Licensee") accessing and otherwise using
131
+ this software in source or binary form and its associated
132
+ documentation ("the Software").
133
+
134
+ 2. Subject to the terms and conditions of this BeOpen Python License
135
+ Agreement, BeOpen hereby grants Licensee a non-exclusive,
136
+ royalty-free, world-wide license to reproduce, analyze, test, perform
137
+ and/or display publicly, prepare derivative works, distribute, and
138
+ otherwise use the Software alone or in any derivative version,
139
+ provided, however, that the BeOpen Python License is retained in the
140
+ Software, alone or in any derivative version prepared by Licensee.
141
+
142
+ 3. BeOpen is making the Software available to Licensee on an "AS IS"
143
+ basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
144
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND
145
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
146
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT
147
+ INFRINGE ANY THIRD PARTY RIGHTS.
148
+
149
+ 4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE
150
+ SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS
151
+ AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY
152
+ DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
153
+
154
+ 5. This License Agreement will automatically terminate upon a material
155
+ breach of its terms and conditions.
156
+
157
+ 6. This License Agreement shall be governed by and interpreted in all
158
+ respects by the law of the State of California, excluding conflict of
159
+ law provisions. Nothing in this License Agreement shall be deemed to
160
+ create any relationship of agency, partnership, or joint venture
161
+ between BeOpen and Licensee. This License Agreement does not grant
162
+ permission to use BeOpen trademarks or trade names in a trademark
163
+ sense to endorse or promote products or services of Licensee, or any
164
+ third party. As an exception, the "BeOpen Python" logos available at
165
+ http://www.pythonlabs.com/logos.html may be used according to the
166
+ permissions granted on that web page.
167
+
168
+ 7. By copying, installing or otherwise using the software, Licensee
169
+ agrees to be bound by the terms and conditions of this License
170
+ Agreement.
171
+
172
+
173
+ CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1
174
+ ---------------------------------------
175
+
176
+ 1. This LICENSE AGREEMENT is between the Corporation for National
177
+ Research Initiatives, having an office at 1895 Preston White Drive,
178
+ Reston, VA 20191 ("CNRI"), and the Individual or Organization
179
+ ("Licensee") accessing and otherwise using Python 1.6.1 software in
180
+ source or binary form and its associated documentation.
181
+
182
+ 2. Subject to the terms and conditions of this License Agreement, CNRI
183
+ hereby grants Licensee a nonexclusive, royalty-free, world-wide
184
+ license to reproduce, analyze, test, perform and/or display publicly,
185
+ prepare derivative works, distribute, and otherwise use Python 1.6.1
186
+ alone or in any derivative version, provided, however, that CNRI's
187
+ License Agreement and CNRI's notice of copyright, i.e., "Copyright (c)
188
+ 1995-2001 Corporation for National Research Initiatives; All Rights
189
+ Reserved" are retained in Python 1.6.1 alone or in any derivative
190
+ version prepared by Licensee. Alternately, in lieu of CNRI's License
191
+ Agreement, Licensee may substitute the following text (omitting the
192
+ quotes): "Python 1.6.1 is made available subject to the terms and
193
+ conditions in CNRI's License Agreement. This Agreement together with
194
+ Python 1.6.1 may be located on the internet using the following
195
+ unique, persistent identifier (known as a handle): 1895.22/1013. This
196
+ Agreement may also be obtained from a proxy server on the internet
197
+ using the following URL: http://hdl.handle.net/1895.22/1013".
198
+
199
+ 3. In the event Licensee prepares a derivative work that is based on
200
+ or incorporates Python 1.6.1 or any part thereof, and wants to make
201
+ the derivative work available to others as provided herein, then
202
+ Licensee hereby agrees to include in any such work a brief summary of
203
+ the changes made to Python 1.6.1.
204
+
205
+ 4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS"
206
+ basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
207
+ IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND
208
+ DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
209
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT
210
+ INFRINGE ANY THIRD PARTY RIGHTS.
211
+
212
+ 5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON
213
+ 1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
214
+ A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1,
215
+ OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
216
+
217
+ 6. This License Agreement will automatically terminate upon a material
218
+ breach of its terms and conditions.
219
+
220
+ 7. This License Agreement shall be governed by the federal
221
+ intellectual property law of the United States, including without
222
+ limitation the federal copyright law, and, to the extent such
223
+ U.S. federal law does not apply, by the law of the Commonwealth of
224
+ Virginia, excluding Virginia's conflict of law provisions.
225
+ Notwithstanding the foregoing, with regard to derivative works based
226
+ on Python 1.6.1 that incorporate non-separable material that was
227
+ previously distributed under the GNU General Public License (GPL), the
228
+ law of the Commonwealth of Virginia shall govern this License
229
+ Agreement only as to issues arising under or with respect to
230
+ Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this
231
+ License Agreement shall be deemed to create any relationship of
232
+ agency, partnership, or joint venture between CNRI and Licensee. This
233
+ License Agreement does not grant permission to use CNRI trademarks or
234
+ trade name in a trademark sense to endorse or promote products or
235
+ services of Licensee, or any third party.
236
+
237
+ 8. By clicking on the "ACCEPT" button where indicated, or by copying,
238
+ installing or otherwise using Python 1.6.1, Licensee agrees to be
239
+ bound by the terms and conditions of this License Agreement.
240
+
241
+ ACCEPT
242
+
243
+
244
+ CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2
245
+ --------------------------------------------------
246
+
247
+ Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam,
248
+ The Netherlands. All rights reserved.
249
+
250
+ Permission to use, copy, modify, and distribute this software and its
251
+ documentation for any purpose and without fee is hereby granted,
252
+ provided that the above copyright notice appear in all copies and that
253
+ both that copyright notice and this permission notice appear in
254
+ supporting documentation, and that the name of Stichting Mathematisch
255
+ Centrum or CWI not be used in advertising or publicity pertaining to
256
+ distribution of the software without specific, written prior
257
+ permission.
258
+
259
+ STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
260
+ THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
261
+ FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
262
+ FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
263
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
264
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
265
+ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
266
+
267
+ ZERO-CLAUSE BSD LICENSE FOR CODE IN THE PYTHON DOCUMENTATION
268
+ ----------------------------------------------------------------------
269
+
270
+ Permission to use, copy, modify, and/or distribute this software for any
271
+ purpose with or without fee is hereby granted.
272
+
273
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
274
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
275
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
276
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
277
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
278
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
279
+ PERFORMANCE OF THIS SOFTWARE.
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/METADATA ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: aiohappyeyeballs
3
+ Version: 2.4.4
4
+ Summary: Happy Eyeballs for asyncio
5
+ Home-page: https://github.com/aio-libs/aiohappyeyeballs
6
+ License: PSF-2.0
7
+ Author: J. Nick Koston
8
+ Author-email: nick@koston.org
9
+ Requires-Python: >=3.8
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: Python Software Foundation License
13
+ Classifier: License :: Other/Proprietary License
14
+ Classifier: Natural Language :: English
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.8
18
+ Classifier: Programming Language :: Python :: 3.9
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Software Development :: Libraries
24
+ Project-URL: Bug Tracker, https://github.com/aio-libs/aiohappyeyeballs/issues
25
+ Project-URL: Changelog, https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md
26
+ Project-URL: Documentation, https://aiohappyeyeballs.readthedocs.io
27
+ Project-URL: Repository, https://github.com/aio-libs/aiohappyeyeballs
28
+ Description-Content-Type: text/markdown
29
+
30
+ # aiohappyeyeballs
31
+
32
+ <p align="center">
33
+ <a href="https://github.com/aio-libs/aiohappyeyeballs/actions/workflows/ci.yml?query=branch%3Amain">
34
+ <img src="https://img.shields.io/github/actions/workflow/status/aio-libs/aiohappyeyeballs/ci-cd.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >
35
+ </a>
36
+ <a href="https://aiohappyeyeballs.readthedocs.io">
37
+ <img src="https://img.shields.io/readthedocs/aiohappyeyeballs.svg?logo=read-the-docs&logoColor=fff&style=flat-square" alt="Documentation Status">
38
+ </a>
39
+ <a href="https://codecov.io/gh/aio-libs/aiohappyeyeballs">
40
+ <img src="https://img.shields.io/codecov/c/github/aio-libs/aiohappyeyeballs.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">
41
+ </a>
42
+ </p>
43
+ <p align="center">
44
+ <a href="https://python-poetry.org/">
45
+ <img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">
46
+ </a>
47
+ <a href="https://github.com/astral-sh/ruff">
48
+ <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff">
49
+ </a>
50
+ <a href="https://github.com/pre-commit/pre-commit">
51
+ <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
52
+ </a>
53
+ </p>
54
+ <p align="center">
55
+ <a href="https://pypi.org/project/aiohappyeyeballs/">
56
+ <img src="https://img.shields.io/pypi/v/aiohappyeyeballs.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">
57
+ </a>
58
+ <img src="https://img.shields.io/pypi/pyversions/aiohappyeyeballs.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">
59
+ <img src="https://img.shields.io/pypi/l/aiohappyeyeballs.svg?style=flat-square" alt="License">
60
+ </p>
61
+
62
+ ---
63
+
64
+ **Documentation**: <a href="https://aiohappyeyeballs.readthedocs.io" target="_blank">https://aiohappyeyeballs.readthedocs.io </a>
65
+
66
+ **Source Code**: <a href="https://github.com/aio-libs/aiohappyeyeballs" target="_blank">https://github.com/aio-libs/aiohappyeyeballs </a>
67
+
68
+ ---
69
+
70
+ [Happy Eyeballs](https://en.wikipedia.org/wiki/Happy_Eyeballs)
71
+ ([RFC 8305](https://www.rfc-editor.org/rfc/rfc8305.html))
72
+
73
+ ## Use case
74
+
75
+ This library exists to allow connecting with
76
+ [Happy Eyeballs](https://en.wikipedia.org/wiki/Happy_Eyeballs)
77
+ ([RFC 8305](https://www.rfc-editor.org/rfc/rfc8305.html))
78
+ when you
79
+ already have a list of addrinfo and not a DNS name.
80
+
81
+ The stdlib version of `loop.create_connection()`
82
+ will only work when you pass in an unresolved name which
83
+ is not a good fit when using DNS caching or resolving
84
+ names via another method such as `zeroconf`.
85
+
86
+ ## Installation
87
+
88
+ Install this via pip (or your favourite package manager):
89
+
90
+ `pip install aiohappyeyeballs`
91
+
92
+ ## License
93
+
94
+ [aiohappyeyeballs is licensed under the same terms as cpython itself.](https://github.com/python/cpython/blob/main/LICENSE)
95
+
96
+ ## Example usage
97
+
98
+ ```python
99
+
100
+ addr_infos = await loop.getaddrinfo("example.org", 80)
101
+
102
+ socket = await start_connection(addr_infos)
103
+ socket = await start_connection(addr_infos, local_addr_infos=local_addr_infos, happy_eyeballs_delay=0.2)
104
+
105
+ transport, protocol = await loop.create_connection(
106
+ MyProtocol, sock=socket, ...)
107
+
108
+ # Remove the first address for each family from addr_info
109
+ pop_addr_infos_interleave(addr_info, 1)
110
+
111
+ # Remove all matching address from addr_info
112
+ remove_addr_infos(addr_info, "dead::beef::")
113
+
114
+ # Convert a local_addr to local_addr_infos
115
+ local_addr_infos = addr_to_addr_infos(("127.0.0.1",0))
116
+ ```
117
+
118
+ ## Credits
119
+
120
+ This package contains code from cpython and is licensed under the same terms as cpython itself.
121
+
122
+ This package was created with
123
+ [Copier](https://copier.readthedocs.io/) and the
124
+ [browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template)
125
+ project template.
126
+
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/RECORD ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ aiohappyeyeballs-2.4.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ aiohappyeyeballs-2.4.4.dist-info/LICENSE,sha256=Oy-B_iHRgcSZxZolbI4ZaEVdZonSaaqFNzv7avQdo78,13936
3
+ aiohappyeyeballs-2.4.4.dist-info/METADATA,sha256=CT9LuDMNOove0oCR6kFFKMoLkA-D_XuBVr_w4uCpcpY,6070
4
+ aiohappyeyeballs-2.4.4.dist-info/RECORD,,
5
+ aiohappyeyeballs-2.4.4.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
6
+ aiohappyeyeballs/__init__.py,sha256=64CUKZ1vpW6MnkJIyy-CHBU7o6c_TbKO7f6WAViSl9s,317
7
+ aiohappyeyeballs/__pycache__/__init__.cpython-311.pyc,,
8
+ aiohappyeyeballs/__pycache__/_staggered.cpython-311.pyc,,
9
+ aiohappyeyeballs/__pycache__/impl.cpython-311.pyc,,
10
+ aiohappyeyeballs/__pycache__/types.cpython-311.pyc,,
11
+ aiohappyeyeballs/__pycache__/utils.cpython-311.pyc,,
12
+ aiohappyeyeballs/_staggered.py,sha256=LbTGSjib2cb11QDE4RlSVQNUauK3X9p1avCR9YuJF7s,6723
13
+ aiohappyeyeballs/impl.py,sha256=qrAnR-7xaxh6W7mg0i-9ozAJpzvCm7w-P3Yhy_LaTaM,8109
14
+ aiohappyeyeballs/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
+ aiohappyeyeballs/types.py,sha256=iYPiBTl5J7YEjnIqEOVUTRPzz2DwqSHBRhvbAlM0zv0,234
16
+ aiohappyeyeballs/utils.py,sha256=on9GxIR0LhEfZu8P6Twi9hepX9zDanuZM20MWsb3xlQ,3028
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs-2.4.4.dist-info/WHEEL ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 1.9.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (6.24 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/client.cpython-311.pyc ADDED
Binary file (58.3 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/hdrs.cpython-311.pyc ADDED
Binary file (10.6 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/helpers.cpython-311.pyc ADDED
Binary file (46.5 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/http.cpython-311.pyc ADDED
Binary file (2.15 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/http_parser.cpython-311.pyc ADDED
Binary file (39.5 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/log.cpython-311.pyc ADDED
Binary file (744 Bytes). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/streams.cpython-311.pyc ADDED
Binary file (32.6 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__pycache__/web_middlewares.cpython-311.pyc ADDED
Binary file (6.05 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_websocket/mask.cpython-311-x86_64-linux-gnu.so ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:86adda1dee59565e4434546d6978d9712adb4be213070a868049de195a61635c
3
+ size 245952
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/attr/__pycache__/_make.cpython-311.pyc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b9f7584ed793a219388b2a29d569aa8e1dcac9bf86768b5ef9327ffa19f175ce
3
+ size 105734
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__init__.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from .core import (
2
+ IDNABidiError,
3
+ IDNAError,
4
+ InvalidCodepoint,
5
+ InvalidCodepointContext,
6
+ alabel,
7
+ check_bidi,
8
+ check_hyphen_ok,
9
+ check_initial_combiner,
10
+ check_label,
11
+ check_nfc,
12
+ decode,
13
+ encode,
14
+ ulabel,
15
+ uts46_remap,
16
+ valid_contextj,
17
+ valid_contexto,
18
+ valid_label_length,
19
+ valid_string_length,
20
+ )
21
+ from .intranges import intranges_contain
22
+ from .package_data import __version__
23
+
24
+ __all__ = [
25
+ "__version__",
26
+ "IDNABidiError",
27
+ "IDNAError",
28
+ "InvalidCodepoint",
29
+ "InvalidCodepointContext",
30
+ "alabel",
31
+ "check_bidi",
32
+ "check_hyphen_ok",
33
+ "check_initial_combiner",
34
+ "check_label",
35
+ "check_nfc",
36
+ "decode",
37
+ "encode",
38
+ "intranges_contain",
39
+ "ulabel",
40
+ "uts46_remap",
41
+ "valid_contextj",
42
+ "valid_contexto",
43
+ "valid_label_length",
44
+ "valid_string_length",
45
+ ]
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (1.13 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/codec.cpython-311.pyc ADDED
Binary file (5.81 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/compat.cpython-311.pyc ADDED
Binary file (1.05 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/core.cpython-311.pyc ADDED
Binary file (19.3 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/intranges.cpython-311.pyc ADDED
Binary file (3.01 kB). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/__pycache__/package_data.cpython-311.pyc ADDED
Binary file (248 Bytes). View file
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/codec.py ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import codecs
2
+ import re
3
+ from typing import Any, Optional, Tuple
4
+
5
+ from .core import IDNAError, alabel, decode, encode, ulabel
6
+
7
+ _unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]")
8
+
9
+
10
+ class Codec(codecs.Codec):
11
+ def encode(self, data: str, errors: str = "strict") -> Tuple[bytes, int]:
12
+ if errors != "strict":
13
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
14
+
15
+ if not data:
16
+ return b"", 0
17
+
18
+ return encode(data), len(data)
19
+
20
+ def decode(self, data: bytes, errors: str = "strict") -> Tuple[str, int]:
21
+ if errors != "strict":
22
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
23
+
24
+ if not data:
25
+ return "", 0
26
+
27
+ return decode(data), len(data)
28
+
29
+
30
+ class IncrementalEncoder(codecs.BufferedIncrementalEncoder):
31
+ def _buffer_encode(self, data: str, errors: str, final: bool) -> Tuple[bytes, int]:
32
+ if errors != "strict":
33
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
34
+
35
+ if not data:
36
+ return b"", 0
37
+
38
+ labels = _unicode_dots_re.split(data)
39
+ trailing_dot = b""
40
+ if labels:
41
+ if not labels[-1]:
42
+ trailing_dot = b"."
43
+ del labels[-1]
44
+ elif not final:
45
+ # Keep potentially unfinished label until the next call
46
+ del labels[-1]
47
+ if labels:
48
+ trailing_dot = b"."
49
+
50
+ result = []
51
+ size = 0
52
+ for label in labels:
53
+ result.append(alabel(label))
54
+ if size:
55
+ size += 1
56
+ size += len(label)
57
+
58
+ # Join with U+002E
59
+ result_bytes = b".".join(result) + trailing_dot
60
+ size += len(trailing_dot)
61
+ return result_bytes, size
62
+
63
+
64
+ class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
65
+ def _buffer_decode(self, data: Any, errors: str, final: bool) -> Tuple[str, int]:
66
+ if errors != "strict":
67
+ raise IDNAError('Unsupported error handling "{}"'.format(errors))
68
+
69
+ if not data:
70
+ return ("", 0)
71
+
72
+ if not isinstance(data, str):
73
+ data = str(data, "ascii")
74
+
75
+ labels = _unicode_dots_re.split(data)
76
+ trailing_dot = ""
77
+ if labels:
78
+ if not labels[-1]:
79
+ trailing_dot = "."
80
+ del labels[-1]
81
+ elif not final:
82
+ # Keep potentially unfinished label until the next call
83
+ del labels[-1]
84
+ if labels:
85
+ trailing_dot = "."
86
+
87
+ result = []
88
+ size = 0
89
+ for label in labels:
90
+ result.append(ulabel(label))
91
+ if size:
92
+ size += 1
93
+ size += len(label)
94
+
95
+ result_str = ".".join(result) + trailing_dot
96
+ size += len(trailing_dot)
97
+ return (result_str, size)
98
+
99
+
100
+ class StreamWriter(Codec, codecs.StreamWriter):
101
+ pass
102
+
103
+
104
+ class StreamReader(Codec, codecs.StreamReader):
105
+ pass
106
+
107
+
108
+ def search_function(name: str) -> Optional[codecs.CodecInfo]:
109
+ if name != "idna2008":
110
+ return None
111
+ return codecs.CodecInfo(
112
+ name=name,
113
+ encode=Codec().encode,
114
+ decode=Codec().decode,
115
+ incrementalencoder=IncrementalEncoder,
116
+ incrementaldecoder=IncrementalDecoder,
117
+ streamwriter=StreamWriter,
118
+ streamreader=StreamReader,
119
+ )
120
+
121
+
122
+ codecs.register(search_function)
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/compat.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Any, Union
2
+
3
+ from .core import decode, encode
4
+
5
+
6
+ def ToASCII(label: str) -> bytes:
7
+ return encode(label)
8
+
9
+
10
+ def ToUnicode(label: Union[bytes, bytearray]) -> str:
11
+ return decode(label)
12
+
13
+
14
+ def nameprep(s: Any) -> None:
15
+ raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol")
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/core.py ADDED
@@ -0,0 +1,437 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import bisect
2
+ import re
3
+ import unicodedata
4
+ from typing import Optional, Union
5
+
6
+ from . import idnadata
7
+ from .intranges import intranges_contain
8
+
9
+ _virama_combining_class = 9
10
+ _alabel_prefix = b"xn--"
11
+ _unicode_dots_re = re.compile("[\u002e\u3002\uff0e\uff61]")
12
+
13
+
14
+ class IDNAError(UnicodeError):
15
+ """Base exception for all IDNA-encoding related problems"""
16
+
17
+ pass
18
+
19
+
20
+ class IDNABidiError(IDNAError):
21
+ """Exception when bidirectional requirements are not satisfied"""
22
+
23
+ pass
24
+
25
+
26
+ class InvalidCodepoint(IDNAError):
27
+ """Exception when a disallowed or unallocated codepoint is used"""
28
+
29
+ pass
30
+
31
+
32
+ class InvalidCodepointContext(IDNAError):
33
+ """Exception when the codepoint is not valid in the context it is used"""
34
+
35
+ pass
36
+
37
+
38
+ def _combining_class(cp: int) -> int:
39
+ v = unicodedata.combining(chr(cp))
40
+ if v == 0:
41
+ if not unicodedata.name(chr(cp)):
42
+ raise ValueError("Unknown character in unicodedata")
43
+ return v
44
+
45
+
46
+ def _is_script(cp: str, script: str) -> bool:
47
+ return intranges_contain(ord(cp), idnadata.scripts[script])
48
+
49
+
50
+ def _punycode(s: str) -> bytes:
51
+ return s.encode("punycode")
52
+
53
+
54
+ def _unot(s: int) -> str:
55
+ return "U+{:04X}".format(s)
56
+
57
+
58
+ def valid_label_length(label: Union[bytes, str]) -> bool:
59
+ if len(label) > 63:
60
+ return False
61
+ return True
62
+
63
+
64
+ def valid_string_length(label: Union[bytes, str], trailing_dot: bool) -> bool:
65
+ if len(label) > (254 if trailing_dot else 253):
66
+ return False
67
+ return True
68
+
69
+
70
+ def check_bidi(label: str, check_ltr: bool = False) -> bool:
71
+ # Bidi rules should only be applied if string contains RTL characters
72
+ bidi_label = False
73
+ for idx, cp in enumerate(label, 1):
74
+ direction = unicodedata.bidirectional(cp)
75
+ if direction == "":
76
+ # String likely comes from a newer version of Unicode
77
+ raise IDNABidiError("Unknown directionality in label {} at position {}".format(repr(label), idx))
78
+ if direction in ["R", "AL", "AN"]:
79
+ bidi_label = True
80
+ if not bidi_label and not check_ltr:
81
+ return True
82
+
83
+ # Bidi rule 1
84
+ direction = unicodedata.bidirectional(label[0])
85
+ if direction in ["R", "AL"]:
86
+ rtl = True
87
+ elif direction == "L":
88
+ rtl = False
89
+ else:
90
+ raise IDNABidiError("First codepoint in label {} must be directionality L, R or AL".format(repr(label)))
91
+
92
+ valid_ending = False
93
+ number_type: Optional[str] = None
94
+ for idx, cp in enumerate(label, 1):
95
+ direction = unicodedata.bidirectional(cp)
96
+
97
+ if rtl:
98
+ # Bidi rule 2
99
+ if direction not in [
100
+ "R",
101
+ "AL",
102
+ "AN",
103
+ "EN",
104
+ "ES",
105
+ "CS",
106
+ "ET",
107
+ "ON",
108
+ "BN",
109
+ "NSM",
110
+ ]:
111
+ raise IDNABidiError("Invalid direction for codepoint at position {} in a right-to-left label".format(idx))
112
+ # Bidi rule 3
113
+ if direction in ["R", "AL", "EN", "AN"]:
114
+ valid_ending = True
115
+ elif direction != "NSM":
116
+ valid_ending = False
117
+ # Bidi rule 4
118
+ if direction in ["AN", "EN"]:
119
+ if not number_type:
120
+ number_type = direction
121
+ else:
122
+ if number_type != direction:
123
+ raise IDNABidiError("Can not mix numeral types in a right-to-left label")
124
+ else:
125
+ # Bidi rule 5
126
+ if direction not in ["L", "EN", "ES", "CS", "ET", "ON", "BN", "NSM"]:
127
+ raise IDNABidiError("Invalid direction for codepoint at position {} in a left-to-right label".format(idx))
128
+ # Bidi rule 6
129
+ if direction in ["L", "EN"]:
130
+ valid_ending = True
131
+ elif direction != "NSM":
132
+ valid_ending = False
133
+
134
+ if not valid_ending:
135
+ raise IDNABidiError("Label ends with illegal codepoint directionality")
136
+
137
+ return True
138
+
139
+
140
+ def check_initial_combiner(label: str) -> bool:
141
+ if unicodedata.category(label[0])[0] == "M":
142
+ raise IDNAError("Label begins with an illegal combining character")
143
+ return True
144
+
145
+
146
+ def check_hyphen_ok(label: str) -> bool:
147
+ if label[2:4] == "--":
148
+ raise IDNAError("Label has disallowed hyphens in 3rd and 4th position")
149
+ if label[0] == "-" or label[-1] == "-":
150
+ raise IDNAError("Label must not start or end with a hyphen")
151
+ return True
152
+
153
+
154
+ def check_nfc(label: str) -> None:
155
+ if unicodedata.normalize("NFC", label) != label:
156
+ raise IDNAError("Label must be in Normalization Form C")
157
+
158
+
159
+ def valid_contextj(label: str, pos: int) -> bool:
160
+ cp_value = ord(label[pos])
161
+
162
+ if cp_value == 0x200C:
163
+ if pos > 0:
164
+ if _combining_class(ord(label[pos - 1])) == _virama_combining_class:
165
+ return True
166
+
167
+ ok = False
168
+ for i in range(pos - 1, -1, -1):
169
+ joining_type = idnadata.joining_types.get(ord(label[i]))
170
+ if joining_type == ord("T"):
171
+ continue
172
+ elif joining_type in [ord("L"), ord("D")]:
173
+ ok = True
174
+ break
175
+ else:
176
+ break
177
+
178
+ if not ok:
179
+ return False
180
+
181
+ ok = False
182
+ for i in range(pos + 1, len(label)):
183
+ joining_type = idnadata.joining_types.get(ord(label[i]))
184
+ if joining_type == ord("T"):
185
+ continue
186
+ elif joining_type in [ord("R"), ord("D")]:
187
+ ok = True
188
+ break
189
+ else:
190
+ break
191
+ return ok
192
+
193
+ if cp_value == 0x200D:
194
+ if pos > 0:
195
+ if _combining_class(ord(label[pos - 1])) == _virama_combining_class:
196
+ return True
197
+ return False
198
+
199
+ else:
200
+ return False
201
+
202
+
203
+ def valid_contexto(label: str, pos: int, exception: bool = False) -> bool:
204
+ cp_value = ord(label[pos])
205
+
206
+ if cp_value == 0x00B7:
207
+ if 0 < pos < len(label) - 1:
208
+ if ord(label[pos - 1]) == 0x006C and ord(label[pos + 1]) == 0x006C:
209
+ return True
210
+ return False
211
+
212
+ elif cp_value == 0x0375:
213
+ if pos < len(label) - 1 and len(label) > 1:
214
+ return _is_script(label[pos + 1], "Greek")
215
+ return False
216
+
217
+ elif cp_value == 0x05F3 or cp_value == 0x05F4:
218
+ if pos > 0:
219
+ return _is_script(label[pos - 1], "Hebrew")
220
+ return False
221
+
222
+ elif cp_value == 0x30FB:
223
+ for cp in label:
224
+ if cp == "\u30fb":
225
+ continue
226
+ if _is_script(cp, "Hiragana") or _is_script(cp, "Katakana") or _is_script(cp, "Han"):
227
+ return True
228
+ return False
229
+
230
+ elif 0x660 <= cp_value <= 0x669:
231
+ for cp in label:
232
+ if 0x6F0 <= ord(cp) <= 0x06F9:
233
+ return False
234
+ return True
235
+
236
+ elif 0x6F0 <= cp_value <= 0x6F9:
237
+ for cp in label:
238
+ if 0x660 <= ord(cp) <= 0x0669:
239
+ return False
240
+ return True
241
+
242
+ return False
243
+
244
+
245
+ def check_label(label: Union[str, bytes, bytearray]) -> None:
246
+ if isinstance(label, (bytes, bytearray)):
247
+ label = label.decode("utf-8")
248
+ if len(label) == 0:
249
+ raise IDNAError("Empty Label")
250
+
251
+ check_nfc(label)
252
+ check_hyphen_ok(label)
253
+ check_initial_combiner(label)
254
+
255
+ for pos, cp in enumerate(label):
256
+ cp_value = ord(cp)
257
+ if intranges_contain(cp_value, idnadata.codepoint_classes["PVALID"]):
258
+ continue
259
+ elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTJ"]):
260
+ try:
261
+ if not valid_contextj(label, pos):
262
+ raise InvalidCodepointContext(
263
+ "Joiner {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label))
264
+ )
265
+ except ValueError:
266
+ raise IDNAError(
267
+ "Unknown codepoint adjacent to joiner {} at position {} in {}".format(
268
+ _unot(cp_value), pos + 1, repr(label)
269
+ )
270
+ )
271
+ elif intranges_contain(cp_value, idnadata.codepoint_classes["CONTEXTO"]):
272
+ if not valid_contexto(label, pos):
273
+ raise InvalidCodepointContext(
274
+ "Codepoint {} not allowed at position {} in {}".format(_unot(cp_value), pos + 1, repr(label))
275
+ )
276
+ else:
277
+ raise InvalidCodepoint(
278
+ "Codepoint {} at position {} of {} not allowed".format(_unot(cp_value), pos + 1, repr(label))
279
+ )
280
+
281
+ check_bidi(label)
282
+
283
+
284
+ def alabel(label: str) -> bytes:
285
+ try:
286
+ label_bytes = label.encode("ascii")
287
+ ulabel(label_bytes)
288
+ if not valid_label_length(label_bytes):
289
+ raise IDNAError("Label too long")
290
+ return label_bytes
291
+ except UnicodeEncodeError:
292
+ pass
293
+
294
+ check_label(label)
295
+ label_bytes = _alabel_prefix + _punycode(label)
296
+
297
+ if not valid_label_length(label_bytes):
298
+ raise IDNAError("Label too long")
299
+
300
+ return label_bytes
301
+
302
+
303
+ def ulabel(label: Union[str, bytes, bytearray]) -> str:
304
+ if not isinstance(label, (bytes, bytearray)):
305
+ try:
306
+ label_bytes = label.encode("ascii")
307
+ except UnicodeEncodeError:
308
+ check_label(label)
309
+ return label
310
+ else:
311
+ label_bytes = label
312
+
313
+ label_bytes = label_bytes.lower()
314
+ if label_bytes.startswith(_alabel_prefix):
315
+ label_bytes = label_bytes[len(_alabel_prefix) :]
316
+ if not label_bytes:
317
+ raise IDNAError("Malformed A-label, no Punycode eligible content found")
318
+ if label_bytes.decode("ascii")[-1] == "-":
319
+ raise IDNAError("A-label must not end with a hyphen")
320
+ else:
321
+ check_label(label_bytes)
322
+ return label_bytes.decode("ascii")
323
+
324
+ try:
325
+ label = label_bytes.decode("punycode")
326
+ except UnicodeError:
327
+ raise IDNAError("Invalid A-label")
328
+ check_label(label)
329
+ return label
330
+
331
+
332
+ def uts46_remap(domain: str, std3_rules: bool = True, transitional: bool = False) -> str:
333
+ """Re-map the characters in the string according to UTS46 processing."""
334
+ from .uts46data import uts46data
335
+
336
+ output = ""
337
+
338
+ for pos, char in enumerate(domain):
339
+ code_point = ord(char)
340
+ try:
341
+ uts46row = uts46data[code_point if code_point < 256 else bisect.bisect_left(uts46data, (code_point, "Z")) - 1]
342
+ status = uts46row[1]
343
+ replacement: Optional[str] = None
344
+ if len(uts46row) == 3:
345
+ replacement = uts46row[2]
346
+ if (
347
+ status == "V"
348
+ or (status == "D" and not transitional)
349
+ or (status == "3" and not std3_rules and replacement is None)
350
+ ):
351
+ output += char
352
+ elif replacement is not None and (
353
+ status == "M" or (status == "3" and not std3_rules) or (status == "D" and transitional)
354
+ ):
355
+ output += replacement
356
+ elif status != "I":
357
+ raise IndexError()
358
+ except IndexError:
359
+ raise InvalidCodepoint(
360
+ "Codepoint {} not allowed at position {} in {}".format(_unot(code_point), pos + 1, repr(domain))
361
+ )
362
+
363
+ return unicodedata.normalize("NFC", output)
364
+
365
+
366
+ def encode(
367
+ s: Union[str, bytes, bytearray],
368
+ strict: bool = False,
369
+ uts46: bool = False,
370
+ std3_rules: bool = False,
371
+ transitional: bool = False,
372
+ ) -> bytes:
373
+ if not isinstance(s, str):
374
+ try:
375
+ s = str(s, "ascii")
376
+ except UnicodeDecodeError:
377
+ raise IDNAError("should pass a unicode string to the function rather than a byte string.")
378
+ if uts46:
379
+ s = uts46_remap(s, std3_rules, transitional)
380
+ trailing_dot = False
381
+ result = []
382
+ if strict:
383
+ labels = s.split(".")
384
+ else:
385
+ labels = _unicode_dots_re.split(s)
386
+ if not labels or labels == [""]:
387
+ raise IDNAError("Empty domain")
388
+ if labels[-1] == "":
389
+ del labels[-1]
390
+ trailing_dot = True
391
+ for label in labels:
392
+ s = alabel(label)
393
+ if s:
394
+ result.append(s)
395
+ else:
396
+ raise IDNAError("Empty label")
397
+ if trailing_dot:
398
+ result.append(b"")
399
+ s = b".".join(result)
400
+ if not valid_string_length(s, trailing_dot):
401
+ raise IDNAError("Domain too long")
402
+ return s
403
+
404
+
405
+ def decode(
406
+ s: Union[str, bytes, bytearray],
407
+ strict: bool = False,
408
+ uts46: bool = False,
409
+ std3_rules: bool = False,
410
+ ) -> str:
411
+ try:
412
+ if not isinstance(s, str):
413
+ s = str(s, "ascii")
414
+ except UnicodeDecodeError:
415
+ raise IDNAError("Invalid ASCII in A-label")
416
+ if uts46:
417
+ s = uts46_remap(s, std3_rules, False)
418
+ trailing_dot = False
419
+ result = []
420
+ if not strict:
421
+ labels = _unicode_dots_re.split(s)
422
+ else:
423
+ labels = s.split(".")
424
+ if not labels or labels == [""]:
425
+ raise IDNAError("Empty domain")
426
+ if not labels[-1]:
427
+ del labels[-1]
428
+ trailing_dot = True
429
+ for label in labels:
430
+ s = ulabel(label)
431
+ if s:
432
+ result.append(s)
433
+ else:
434
+ raise IDNAError("Empty label")
435
+ if trailing_dot:
436
+ result.append("")
437
+ return ".".join(result)
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/idnadata.py ADDED
@@ -0,0 +1,4243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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": (0x200C0000200E,),
4235
+ "CONTEXTO": (
4236
+ 0xB7000000B8,
4237
+ 0x37500000376,
4238
+ 0x5F3000005F5,
4239
+ 0x6600000066A,
4240
+ 0x6F0000006FA,
4241
+ 0x30FB000030FC,
4242
+ ),
4243
+ }
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/intranges.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+
12
+ def intranges_from_list(list_: List[int]) -> Tuple[int, ...]:
13
+ """Represent a list of integers as a sequence of ranges:
14
+ ((start_0, end_0), (start_1, end_1), ...), such that the original
15
+ integers are exactly those x such that start_i <= x < end_i for some i.
16
+
17
+ Ranges are encoded as single integers (start << 32 | end), not as tuples.
18
+ """
19
+
20
+ sorted_list = sorted(list_)
21
+ ranges = []
22
+ last_write = -1
23
+ for i in range(len(sorted_list)):
24
+ if i + 1 < len(sorted_list):
25
+ if sorted_list[i] == sorted_list[i + 1] - 1:
26
+ continue
27
+ current_range = sorted_list[last_write + 1 : i + 1]
28
+ ranges.append(_encode_range(current_range[0], current_range[-1] + 1))
29
+ last_write = i
30
+
31
+ return tuple(ranges)
32
+
33
+
34
+ def _encode_range(start: int, end: int) -> int:
35
+ return (start << 32) | end
36
+
37
+
38
+ def _decode_range(r: int) -> Tuple[int, int]:
39
+ return (r >> 32), (r & ((1 << 32) - 1))
40
+
41
+
42
+ def intranges_contain(int_: int, ranges: Tuple[int, ...]) -> bool:
43
+ """Determine if `int_` falls into one of the ranges in `ranges`."""
44
+ tuple_ = _encode_range(int_, 0)
45
+ pos = bisect.bisect_left(ranges, tuple_)
46
+ # we could be immediately ahead of a tuple (start, end)
47
+ # with start < int_ <= end
48
+ if pos > 0:
49
+ left, right = _decode_range(ranges[pos - 1])
50
+ if left <= int_ < right:
51
+ return True
52
+ # or we could be immediately behind a tuple (int_, end)
53
+ if pos < len(ranges):
54
+ left, _ = _decode_range(ranges[pos])
55
+ if left == int_:
56
+ return True
57
+ return False
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/package_data.py ADDED
@@ -0,0 +1 @@
 
 
1
+ __version__ = "3.10"
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/py.typed ADDED
File without changes
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/idna/uts46data.py ADDED
The diff for this file is too large to render. See raw diff
 
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/INSTALLER ADDED
@@ -0,0 +1 @@
 
 
1
+ pip
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/LICENSE ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Copyright 2016 Andrew Svetlov and aio-libs contributors
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/METADATA ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Metadata-Version: 2.1
2
+ Name: multidict
3
+ Version: 6.1.0
4
+ Summary: multidict implementation
5
+ Home-page: https://github.com/aio-libs/multidict
6
+ Author: Andrew Svetlov
7
+ Author-email: andrew.svetlov@gmail.com
8
+ License: Apache 2
9
+ Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
10
+ Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
11
+ Project-URL: CI: GitHub, https://github.com/aio-libs/multidict/actions
12
+ Project-URL: Code of Conduct, https://github.com/aio-libs/.github/blob/master/CODE_OF_CONDUCT.md
13
+ Project-URL: Coverage: codecov, https://codecov.io/github/aio-libs/multidict
14
+ Project-URL: Docs: Changelog, https://multidict.aio-libs.org/en/latest/changes/
15
+ Project-URL: Docs: RTD, https://multidict.aio-libs.org
16
+ Project-URL: GitHub: issues, https://github.com/aio-libs/multidict/issues
17
+ Project-URL: GitHub: repo, https://github.com/aio-libs/multidict
18
+ Classifier: Development Status :: 5 - Production/Stable
19
+ Classifier: Intended Audience :: Developers
20
+ Classifier: License :: OSI Approved :: Apache Software License
21
+ Classifier: Programming Language :: Python
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Requires-Python: >=3.8
30
+ Description-Content-Type: text/x-rst
31
+ License-File: LICENSE
32
+ Requires-Dist: typing-extensions >=4.1.0 ; python_version < "3.11"
33
+
34
+ =========
35
+ multidict
36
+ =========
37
+
38
+ .. image:: https://github.com/aio-libs/multidict/actions/workflows/ci-cd.yml/badge.svg
39
+ :target: https://github.com/aio-libs/multidict/actions
40
+ :alt: GitHub status for master branch
41
+
42
+ .. image:: https://codecov.io/gh/aio-libs/multidict/branch/master/graph/badge.svg
43
+ :target: https://codecov.io/gh/aio-libs/multidict
44
+ :alt: Coverage metrics
45
+
46
+ .. image:: https://img.shields.io/pypi/v/multidict.svg
47
+ :target: https://pypi.org/project/multidict
48
+ :alt: PyPI
49
+
50
+ .. image:: https://readthedocs.org/projects/multidict/badge/?version=latest
51
+ :target: https://multidict.aio-libs.org
52
+ :alt: Read The Docs build status badge
53
+
54
+ .. image:: https://img.shields.io/pypi/pyversions/multidict.svg
55
+ :target: https://pypi.org/project/multidict
56
+ :alt: Python versions
57
+
58
+ .. image:: https://img.shields.io/matrix/aio-libs:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
59
+ :target: https://matrix.to/#/%23aio-libs:matrix.org
60
+ :alt: Matrix Room — #aio-libs:matrix.org
61
+
62
+ .. image:: https://img.shields.io/matrix/aio-libs-space:matrix.org?label=Discuss%20on%20Matrix%20at%20%23aio-libs-space%3Amatrix.org&logo=matrix&server_fqdn=matrix.org&style=flat
63
+ :target: https://matrix.to/#/%23aio-libs-space:matrix.org
64
+ :alt: Matrix Space — #aio-libs-space:matrix.org
65
+
66
+ Multidict is dict-like collection of *key-value pairs* where key
67
+ might occur more than once in the container.
68
+
69
+ Introduction
70
+ ------------
71
+
72
+ *HTTP Headers* and *URL query string* require specific data structure:
73
+ *multidict*. It behaves mostly like a regular ``dict`` but it may have
74
+ several *values* for the same *key* and *preserves insertion ordering*.
75
+
76
+ The *key* is ``str`` (or ``istr`` for case-insensitive dictionaries).
77
+
78
+ ``multidict`` has four multidict classes:
79
+ ``MultiDict``, ``MultiDictProxy``, ``CIMultiDict``
80
+ and ``CIMultiDictProxy``.
81
+
82
+ Immutable proxies (``MultiDictProxy`` and
83
+ ``CIMultiDictProxy``) provide a dynamic view for the
84
+ proxied multidict, the view reflects underlying collection changes. They
85
+ implement the ``collections.abc.Mapping`` interface.
86
+
87
+ Regular mutable (``MultiDict`` and ``CIMultiDict``) classes
88
+ implement ``collections.abc.MutableMapping`` and allows them to change
89
+ their own content.
90
+
91
+
92
+ *Case insensitive* (``CIMultiDict`` and
93
+ ``CIMultiDictProxy``) assume the *keys* are case
94
+ insensitive, e.g.::
95
+
96
+ >>> dct = CIMultiDict(key='val')
97
+ >>> 'Key' in dct
98
+ True
99
+ >>> dct['Key']
100
+ 'val'
101
+
102
+ *Keys* should be ``str`` or ``istr`` instances.
103
+
104
+ The library has optional C Extensions for speed.
105
+
106
+
107
+ License
108
+ -------
109
+
110
+ Apache 2
111
+
112
+ Library Installation
113
+ --------------------
114
+
115
+ .. code-block:: bash
116
+
117
+ $ pip install multidict
118
+
119
+ The library is Python 3 only!
120
+
121
+ PyPI contains binary wheels for Linux, Windows and MacOS. If you want to install
122
+ ``multidict`` on another operating system (or *Alpine Linux* inside a Docker) the
123
+ tarball will be used to compile the library from source. It requires a C compiler and
124
+ Python headers to be installed.
125
+
126
+ To skip the compilation, please use the `MULTIDICT_NO_EXTENSIONS` environment variable,
127
+ e.g.:
128
+
129
+ .. code-block:: bash
130
+
131
+ $ MULTIDICT_NO_EXTENSIONS=1 pip install multidict
132
+
133
+ Please note, the pure Python (uncompiled) version is about 20-50 times slower depending on
134
+ the usage scenario!!!
135
+
136
+
137
+
138
+ Changelog
139
+ ---------
140
+ See `RTD page <http://multidict.aio-libs.org/en/latest/changes>`_.
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/RECORD ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ multidict-6.1.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ multidict-6.1.0.dist-info/LICENSE,sha256=k9Ealo4vDzY3PECBH_bSDhc_WMPKtYhM1mF7v9eVSSo,611
3
+ multidict-6.1.0.dist-info/METADATA,sha256=OnCx5DR4XPf64GIDK4XmcA2e7HLQ_784vMfEQy287kM,4979
4
+ multidict-6.1.0.dist-info/RECORD,,
5
+ multidict-6.1.0.dist-info/WHEEL,sha256=1pYTe4_OeXMoiAzbCCjVEUIQIlCH_vOwKRWEjMaDcV0,151
6
+ multidict-6.1.0.dist-info/top_level.txt,sha256=-euDElkk5_qkmfIJ7WiqCab02ZlSFZWynejKg59qZQQ,10
7
+ multidict/__init__.py,sha256=p60Ag5UVACSli1txazSi85foCmHN-cg3qZDCuWdOKng,928
8
+ multidict/__init__.pyi,sha256=SbgC2ew1NvNXWlRKs9o0KhW4moozgMqgQ0OA4Re5JQQ,4840
9
+ multidict/__pycache__/__init__.cpython-311.pyc,,
10
+ multidict/__pycache__/_abc.cpython-311.pyc,,
11
+ multidict/__pycache__/_compat.cpython-311.pyc,,
12
+ multidict/__pycache__/_multidict_base.cpython-311.pyc,,
13
+ multidict/__pycache__/_multidict_py.cpython-311.pyc,,
14
+ multidict/_abc.py,sha256=Zvnrn4SBkrv4QTD7-ZzqNcoxw0f8KStLMPzGvBuGT2w,1190
15
+ multidict/_compat.py,sha256=uCNUpVHJSFOiKUJmRcz3SDqMpkb37C_csc29ijr8Evo,352
16
+ multidict/_multidict.cpython-311-x86_64-linux-gnu.so,sha256=SUGf_kAmhQxhn861-jiCa0e51oNCqlgThx6k3IOgwqs,410592
17
+ multidict/_multidict_base.py,sha256=ZndtnZ5oc1sODKmXsv6F9kWvVNCda9xAEEFXkaPoFoA,3979
18
+ multidict/_multidict_py.py,sha256=57h4sYrRIu7EjMX4YpHVIZVrV9-q1KCW3F6rao10D3U,15050
19
+ multidict/py.typed,sha256=e9bmbH3UFxsabQrnNFPG9qxIXztwbcM6IKDYnvZwprY,15
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/WHEEL ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (74.1.2)
3
+ Root-Is-Purelib: false
4
+ Tag: cp311-cp311-manylinux_2_17_x86_64
5
+ Tag: cp311-cp311-manylinux2014_x86_64
6
+
.venv/lib/python3.11/site-packages/ray/_private/runtime_env/agent/thirdparty_files/multidict-6.1.0.dist-info/top_level.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ multidict